From 0984461aeb32d7de6abf09ffbec17b9f619eb346 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 25 Sep 2017 08:53:25 -0400 Subject: [PATCH 001/174] Start decomp of easy_chat --- asm/easy_chat.s | 257 ------------------------------------------------ include/rom4.h | 1 + ld_script.txt | 1 + src/easy_chat.c | 141 ++++++++++++++++++++++++++ 4 files changed, 143 insertions(+), 257 deletions(-) create mode 100644 src/easy_chat.c diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 20bf327ac2..bfeef4514c 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,263 +5,6 @@ .text - thumb_func_start sub_811A20C -sub_811A20C: @ 811A20C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - adds r6, r0, 0 - mov r8, r1 - mov r9, r2 - adds r5, r3, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - bl ResetTasks - ldr r0, =sub_811A2C0 - movs r1, 0 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0xA] - strh r5, [r0, 0x16] - adds r0, r4, 0 - movs r1, 0x2 - mov r2, r8 - bl SetWordTaskArg - adds r0, r4, 0 - movs r1, 0x4 - mov r2, r9 - bl SetWordTaskArg - ldr r0, =sub_811A278 - bl SetMainCallback2 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811A20C - - thumb_func_start sub_811A278 -sub_811A278: @ 811A278 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_811A278 - - thumb_func_start sub_811A290 -sub_811A290: @ 811A290 - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - pop {r0} - bx r0 - thumb_func_end sub_811A290 - - thumb_func_start sub_811A2A4 -sub_811A2A4: @ 811A2A4 - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - str r1, [r2] - movs r0, 0 - strh r0, [r2, 0x8] - bx lr - .pool - thumb_func_end sub_811A2A4 - - thumb_func_start sub_811A2C0 -sub_811A2C0: @ 811A2C0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl is_c1_link_related_active - cmp r0, 0 - bne _0811A2DC -_0811A2CE: - adds r0, r4, 0 - bl sub_811A428 - lsls r0, 24 - cmp r0, 0 - bne _0811A2CE - b _0811A2EA -_0811A2DC: - adds r0, r4, 0 - bl sub_811A428 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0811A2F2 -_0811A2EA: - ldr r1, =sub_811A2FC - adds r0, r4, 0 - bl sub_811A2A4 -_0811A2F2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811A2C0 - - thumb_func_start sub_811A2FC -sub_811A2FC: @ 811A2FC - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x5 - bls _0811A318 - b _0811A41C -_0811A318: - lsls r0, 2 - ldr r1, =_0811A32C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0811A32C: - .4byte _0811A344 - .4byte _0811A370 - .4byte _0811A3CC - .4byte _0811A3D4 - .4byte _0811A3EC - .4byte _0811A40C -_0811A344: - ldr r0, =sub_811A290 - bl SetVBlankCallback - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - adds r1, r4, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x5 - b _0811A41A - .pool -_0811A370: - bl sub_811AAAC - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - adds r0, r4, 0 - bl sub_811A88C - cmp r0, 0 - beq _0811A39E - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x3 - strh r0, [r5] - strh r4, [r5, 0xC] - b _0811A41C -_0811A39E: - cmp r4, 0x18 - bne _0811A3B6 - movs r1, 0x1 - negs r1, r1 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x4 - b _0811A41A -_0811A3B6: - cmp r6, 0 - beq _0811A41C - movs r0, 0x5 - bl PlaySE - adds r0, r6, 0 - bl sub_811C158 - ldrh r0, [r5] - adds r0, 0x1 - b _0811A41A -_0811A3CC: - bl sub_811C170 - lsls r0, 24 - b _0811A414 -_0811A3D4: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811A41C - ldrh r0, [r5, 0xC] - bl sub_811A8A4 - b _0811A41C - .pool -_0811A3EC: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811A41C - adds r0, r2, 0 - movs r1, 0x4 - bl GetWordTaskArg - bl sub_811A4D0 - b _0811A41C - .pool -_0811A40C: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 -_0811A414: - cmp r0, 0 - bne _0811A41C - movs r0, 0x1 -_0811A41A: - strh r0, [r5] -_0811A41C: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811A2FC - thumb_func_start sub_811A428 sub_811A428: @ 811A428 push {r4-r6,lr} diff --git a/include/rom4.h b/include/rom4.h index e19d277a63..9f214cfee6 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -29,5 +29,6 @@ const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8); void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); void sub_8086230(void); void c2_exit_to_overworld_2_switch(void); +bool32 is_c1_link_related_active(void); #endif //GUARD_ROM4_H diff --git a/ld_script.txt b/ld_script.txt index b2e996ff5f..d839bb922a 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -166,6 +166,7 @@ SECTIONS { asm/item_use.o(.text); asm/battle_anim_80FE840.o(.text); asm/bike.o(.text); + src/easy_chat.o(.text); asm/easy_chat.o(.text); asm/mon_markings.o(.text); asm/mauville_old_man.o(.text); diff --git a/src/easy_chat.c b/src/easy_chat.c new file mode 100644 index 0000000000..edfab86b74 --- /dev/null +++ b/src/easy_chat.c @@ -0,0 +1,141 @@ + +// Includes +#include "global.h" +#include "songs.h" +#include "sound.h" +#include "rom4.h" +#include "task.h" +#include "main.h" +#include "palette.h" +#include "easy_chat.h" + +// Static type declarations + +// Static RAM declarations +static void sub_811A2C0(u8); +static void sub_811A278(void); +/*static*/ bool8 sub_811A428(u8); +static void sub_811A2FC(u8); +/*static*/ u16 sub_811AAAC(void); +/*static*/ bool32 sub_811A88C(u16); +/*static*/ void sub_811C158(u16); +/*static*/ bool8 sub_811C170(void); +/*static*/ void sub_811A8A4(u16); +/*static*/ void sub_811A4D0(u32); + +// Static ROM declarations + +// .rodata + +// .text + +void sub_811A20C(u8 a0, u32 a1, u32 a2, u8 a3) +{ + u8 taskId; + + ResetTasks(); + taskId = CreateTask(sub_811A2C0, 0); + gTasks[taskId].data[1] = a0; + gTasks[taskId].data[7] = a3; + SetWordTaskArg(taskId, 0x02, a1); + SetWordTaskArg(taskId, 0x04, a2); + SetMainCallback2(sub_811A278); +} + +static void sub_811A278(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +static void sub_811A290(void) +{ + TransferPlttBuffer(); + LoadOam(); + ProcessSpriteCopyRequests(); +} + +static void sub_811A2A4(u8 taskId, TaskFunc taskFunc) +{ + gTasks[taskId].func = taskFunc; + gTasks[taskId].data[0] = 0; +} + +static void sub_811A2C0(u8 taskId) +{ + if (!is_c1_link_related_active()) + { + while (sub_811A428(taskId)); + } + else + { + if (sub_811A428(taskId) == TRUE) + { + return; + } + } + sub_811A2A4(taskId, sub_811A2FC); +} + +static void sub_811A2FC(u8 taskId) +{ + u16 v0; + s16 *data; + + data = gTasks[taskId].data; + switch (data[0]) + { + case 0: + SetVBlankCallback(sub_811A290); + BlendPalettes(-1, 16, 0); + BeginNormalPaletteFade(-1, -1, 16, 0, 0); + data[0] = 5; + break; + case 1: + v0 = sub_811AAAC(); + if (sub_811A88C(v0)) + { + BeginNormalPaletteFade(-1, -2, 0, 16, 0); + data[0] = 3; + data[6] = v0; + } + else if (v0 == 0x18) + { + BeginNormalPaletteFade(-1, -1, 0, 16, 0); + data[0] = 4; + } + else if (v0 != 0) + { + PlaySE(SE_SELECT); + sub_811C158(v0); + data[0] ++; + } + break; + case 2: + if (!sub_811C170()) + { + data[0] = 1; + } + break; + case 3: + if (!gPaletteFade.active) + { + sub_811A8A4(data[6]); + } + break; + case 4: + if (!gPaletteFade.active) + { + sub_811A4D0(GetWordTaskArg(taskId, 0x04)); + } + break; + case 5: + if (!gPaletteFade.active) + { + data[0] = 1; + } + break; + } +} From cdfdd2a29a100e1cf3e070df24a28cf6d3e4667d Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 25 Sep 2017 17:22:51 -0400 Subject: [PATCH 002/174] sub_811A428 --- asm/easy_chat.s | 79 ------------------------------------------------- src/easy_chat.c | 50 ++++++++++++++++++++++++++++++- 2 files changed, 49 insertions(+), 80 deletions(-) diff --git a/asm/easy_chat.s b/asm/easy_chat.s index bfeef4514c..5d7a02a84a 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,85 +5,6 @@ .text - thumb_func_start sub_811A428 -sub_811A428: @ 811A428 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x4 - bhi _0811A4BC - lsls r0, 2 - ldr r1, =_0811A454 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0811A454: - .4byte _0811A468 - .4byte _0811A47C - .4byte _0811A482 - .4byte _0811A498 - .4byte _0811A4B0 -_0811A468: - movs r0, 0 - bl SetVBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetPaletteFade - b _0811A4C0 -_0811A47C: - bl sub_811F28C - b _0811A49C -_0811A482: - ldrb r4, [r6, 0x2] - adds r0, r5, 0 - movs r1, 0x2 - bl GetWordTaskArg - adds r1, r0, 0 - ldrb r2, [r6, 0xE] - adds r0, r4, 0 - bl sub_811A95C - b _0811A49C -_0811A498: - bl sub_811BF8C -_0811A49C: - lsls r0, 24 - cmp r0, 0 - bne _0811A4C0 - adds r0, r5, 0 - movs r1, 0x4 - bl GetWordTaskArg - bl sub_811A4D0 - b _0811A4C0 -_0811A4B0: - bl sub_811BFA4 - lsls r0, 24 - cmp r0, 0 - beq _0811A4C0 - b _0811A4C6 -_0811A4BC: - movs r0, 0 - b _0811A4C8 -_0811A4C0: - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] -_0811A4C6: - movs r0, 0x1 -_0811A4C8: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_811A428 - thumb_func_start sub_811A4D0 sub_811A4D0: @ 811A4D0 push {r4,lr} diff --git a/src/easy_chat.c b/src/easy_chat.c index edfab86b74..8ee46e2156 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -14,7 +14,7 @@ // Static RAM declarations static void sub_811A2C0(u8); static void sub_811A278(void); -/*static*/ bool8 sub_811A428(u8); +static bool8 sub_811A428(u8); static void sub_811A2FC(u8); /*static*/ u16 sub_811AAAC(void); /*static*/ bool32 sub_811A88C(u16); @@ -22,6 +22,10 @@ static void sub_811A2FC(u8); /*static*/ bool8 sub_811C170(void); /*static*/ void sub_811A8A4(u16); /*static*/ void sub_811A4D0(u32); +bool8 sub_811F28C(void); +bool8 sub_811A95C(u8, u32, u8); +bool8 sub_811BF8C(void); +bool8 sub_811BFA4(void); // Static ROM declarations @@ -139,3 +143,47 @@ static void sub_811A2FC(u8 taskId) break; } } + +static bool8 sub_811A428(u8 taskId) +{ + s16 *data; + + data = gTasks[taskId].data; + switch (data[0]) + { + case 0: + SetVBlankCallback(NULL); + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetPaletteFade(); + break; + case 1: + if (!sub_811F28C()) + { + sub_811A4D0(GetWordTaskArg(taskId, 0x04)); + } + break; + case 2: + if (!sub_811A95C(data[1], GetWordTaskArg(taskId, 0x02), data[7])) + { + sub_811A4D0(GetWordTaskArg(taskId, 0x04)); + } + break; + case 3: + if (!sub_811BF8C()) + { + sub_811A4D0(GetWordTaskArg(taskId, 0x04)); + } + break; + case 4: + if (sub_811BFA4()) + { + return TRUE; + } + break; + default: + return FALSE; + } + data[0] ++; + return TRUE; +} From b62b67e4284b2204ac575698f9199584fe484606 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 25 Sep 2017 17:30:49 -0400 Subject: [PATCH 003/174] sub_811A4D0; constants for ezchat task data offsets --- asm/easy_chat.s | 15 ----------- src/easy_chat.c | 66 ++++++++++++++++++++++++++++++++----------------- 2 files changed, 43 insertions(+), 38 deletions(-) diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 5d7a02a84a..8455decfe7 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,21 +5,6 @@ .text - thumb_func_start sub_811A4D0 -sub_811A4D0: @ 811A4D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_811C13C - bl sub_811AA90 - bl sub_811F2B8 - bl FreeAllWindowBuffers - adds r0, r4, 0 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_811A4D0 - thumb_func_start easy_chat_input_maybe easy_chat_input_maybe: @ 811A4F0 push {r4,r5,lr} diff --git a/src/easy_chat.c b/src/easy_chat.c index 8ee46e2156..1ff0ccc336 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -6,11 +6,19 @@ #include "rom4.h" #include "task.h" #include "main.h" +#include "window.h" #include "palette.h" #include "easy_chat.h" // Static type declarations +#define EZCHAT_TASK_STATE 0 +#define EZCHAT_TASK_UNK01 1 +#define EZCHAT_TASK_UNK02 2 +#define EZCHAT_TASK_MAINCALLBACK 4 +#define EZCHAT_TASK_UNK06 6 +#define EZCHAT_TASK_UNK07 7 + // Static RAM declarations static void sub_811A2C0(u8); static void sub_811A278(void); @@ -21,11 +29,14 @@ static void sub_811A2FC(u8); /*static*/ void sub_811C158(u16); /*static*/ bool8 sub_811C170(void); /*static*/ void sub_811A8A4(u16); -/*static*/ void sub_811A4D0(u32); +/*static*/ void sub_811A4D0(MainCallback); bool8 sub_811F28C(void); bool8 sub_811A95C(u8, u32, u8); bool8 sub_811BF8C(void); bool8 sub_811BFA4(void); +void sub_811C13C(void); +void sub_811AA90(void); +void sub_811F2B8(void); // Static ROM declarations @@ -33,16 +44,16 @@ bool8 sub_811BFA4(void); // .text -void sub_811A20C(u8 a0, u32 a1, u32 a2, u8 a3) +void sub_811A20C(u8 a0, u32 a1, MainCallback callback, u8 a3) { u8 taskId; ResetTasks(); taskId = CreateTask(sub_811A2C0, 0); - gTasks[taskId].data[1] = a0; - gTasks[taskId].data[7] = a3; - SetWordTaskArg(taskId, 0x02, a1); - SetWordTaskArg(taskId, 0x04, a2); + gTasks[taskId].data[EZCHAT_TASK_UNK01] = a0; + gTasks[taskId].data[EZCHAT_TASK_UNK07] = a3; + SetWordTaskArg(taskId, EZCHAT_TASK_UNK02, a1); + SetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK, (u32)callback); SetMainCallback2(sub_811A278); } @@ -64,7 +75,7 @@ static void sub_811A290(void) static void sub_811A2A4(u8 taskId, TaskFunc taskFunc) { gTasks[taskId].func = taskFunc; - gTasks[taskId].data[0] = 0; + gTasks[taskId].data[EZCHAT_TASK_STATE] = 0; } static void sub_811A2C0(u8 taskId) @@ -89,56 +100,56 @@ static void sub_811A2FC(u8 taskId) s16 *data; data = gTasks[taskId].data; - switch (data[0]) + switch (data[EZCHAT_TASK_STATE]) { case 0: SetVBlankCallback(sub_811A290); BlendPalettes(-1, 16, 0); BeginNormalPaletteFade(-1, -1, 16, 0, 0); - data[0] = 5; + data[EZCHAT_TASK_STATE] = 5; break; case 1: v0 = sub_811AAAC(); if (sub_811A88C(v0)) { BeginNormalPaletteFade(-1, -2, 0, 16, 0); - data[0] = 3; - data[6] = v0; + data[EZCHAT_TASK_STATE] = 3; + data[EZCHAT_TASK_UNK06] = v0; } else if (v0 == 0x18) { BeginNormalPaletteFade(-1, -1, 0, 16, 0); - data[0] = 4; + data[EZCHAT_TASK_STATE] = 4; } else if (v0 != 0) { PlaySE(SE_SELECT); sub_811C158(v0); - data[0] ++; + data[EZCHAT_TASK_STATE] ++; } break; case 2: if (!sub_811C170()) { - data[0] = 1; + data[EZCHAT_TASK_STATE] = 1; } break; case 3: if (!gPaletteFade.active) { - sub_811A8A4(data[6]); + sub_811A8A4(data[EZCHAT_TASK_UNK06]); } break; case 4: if (!gPaletteFade.active) { - sub_811A4D0(GetWordTaskArg(taskId, 0x04)); + sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); } break; case 5: if (!gPaletteFade.active) { - data[0] = 1; + data[EZCHAT_TASK_STATE] = 1; } break; } @@ -149,7 +160,7 @@ static bool8 sub_811A428(u8 taskId) s16 *data; data = gTasks[taskId].data; - switch (data[0]) + switch (data[EZCHAT_TASK_STATE]) { case 0: SetVBlankCallback(NULL); @@ -160,19 +171,19 @@ static bool8 sub_811A428(u8 taskId) case 1: if (!sub_811F28C()) { - sub_811A4D0(GetWordTaskArg(taskId, 0x04)); + sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); } break; case 2: - if (!sub_811A95C(data[1], GetWordTaskArg(taskId, 0x02), data[7])) + if (!sub_811A95C(data[EZCHAT_TASK_UNK01], GetWordTaskArg(taskId, EZCHAT_TASK_UNK02), data[EZCHAT_TASK_UNK07])) { - sub_811A4D0(GetWordTaskArg(taskId, 0x04)); + sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); } break; case 3: if (!sub_811BF8C()) { - sub_811A4D0(GetWordTaskArg(taskId, 0x04)); + sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); } break; case 4: @@ -184,6 +195,15 @@ static bool8 sub_811A428(u8 taskId) default: return FALSE; } - data[0] ++; + data[EZCHAT_TASK_STATE] ++; return TRUE; } + +void sub_811A4D0(MainCallback callback) +{ + sub_811C13C(); + sub_811AA90(); + sub_811F2B8(); + FreeAllWindowBuffers(); + SetMainCallback2(callback); +} From 0e75d957d675564977b2e442c16822bab390aa2c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 25 Sep 2017 19:57:44 -0400 Subject: [PATCH 004/174] Update offset comments in save block 1 --- include/global.h | 60 +++++++++++++++++++-------------------- src/easy_chat.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+), 30 deletions(-) diff --git a/include/global.h b/include/global.h index 4014c6dde8..9793ddcf24 100644 --- a/include/global.h +++ b/include/global.h @@ -534,14 +534,14 @@ struct MailStruct struct UnkMauvilleOldManStruct { - u8 unk_2D94; - u8 unk_2D95; - /*0x2D96*/ u16 mauvilleOldMan_ecArray[6]; - /*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6]; - /*0x2DAE*/ u8 playerName[8]; - /*0x2DB6*/ u8 filler_2DB6[0x3]; - /*0x2DB9*/ u8 playerTrainerId[4]; - u8 unk_2DBD; + u8 unk_2E28; + u8 unk_2E29; + /*0x2E2A*/ u16 mauvilleOldMan_ecArray[6]; + /*0x2E36*/ u16 mauvilleOldMan_ecArray2[6]; + /*0x2E42*/ u8 playerName[8]; + /*0x2E4A*/ u8 filler_2E4A[0x3]; + /*0x2E4B*/ u8 playerTrainerId[4]; + u8 unk_2E4F; }; /*size = 0x2C*/ struct UnkMauvilleOldManStruct2 @@ -579,24 +579,24 @@ struct UnknownSaveStruct2ABC struct GabbyAndTyData { - /*2b10*/ u16 mon1; - /*2b12*/ u16 mon2; - /*2b14*/ u16 lastMove; - /*2b16*/ u16 quote; - /*2b18*/ u8 mapnum; - /*2b19*/ u8 battleNum; - /*2b1a*/ u8 valA_0:1; - /*2b1a*/ u8 valA_1:1; - /*2b1a*/ u8 valA_2:1; - /*2b1a*/ u8 valA_3:1; - /*2b1a*/ u8 valA_4:1; - /*2b1a*/ u8 valA_5:3; - /*2b1b*/ u8 valB_0:1; - /*2b1b*/ u8 valB_1:1; - /*2b1b*/ u8 valB_2:1; - /*2b1b*/ u8 valB_3:1; - /*2b1b*/ u8 valB_4:1; - /*2b1b*/ u8 valB_5:3; + /*2ba4*/ u16 mon1; + /*2ba6*/ u16 mon2; + /*2ba8*/ u16 lastMove; + /*2baa*/ u16 quote; + /*2bac*/ u8 mapnum; + /*2bad*/ u8 battleNum; + /*2bae*/ u8 valA_0:1; + /*2bae*/ u8 valA_1:1; + /*2bae*/ u8 valA_2:1; + /*2bae*/ u8 valA_3:1; + /*2bae*/ u8 valA_4:1; + /*2bae*/ u8 valA_5:3; + /*2baf*/ u8 valB_0:1; + /*2baf*/ u8 valB_1:1; + /*2baf*/ u8 valB_2:1; + /*2baf*/ u8 valB_3:1; + /*2baf*/ u8 valB_4:1; + /*2baf*/ u8 valB_5:3; }; struct RecordMixing_UnknownStructSub @@ -787,10 +787,10 @@ struct SaveBlock1 /*0x????*/ u8 outbreakPokemonProbability; /*0x????*/ u16 outbreakUnk5; /*0x2BA4*/ struct GabbyAndTyData gabbyAndTyData; - /*0x????*/ u16 unk2B1C[6]; - /*0x????*/ u16 unk2B28[6]; - /*0x????*/ u16 unk2B34[6]; - /*0x????*/ u16 unk2B3A[3]; + /*0x2BB0*/ u16 unk2BB0[6]; + /*0x2BBC*/ u16 unk2BBC[6]; + /*0x2BC8*/ u16 unk2BC8[6]; + /*0x2BD4*/ u16 unk2BD4[3]; /*0x2BE0*/ struct MailStruct mail[16]; /*0x2E20*/ u8 additionalPhrases[5]; // bitfield for 33 additional phrases in easy chat system /*0x2E25*/ u8 unk2E25[3]; // possibly padding? diff --git a/src/easy_chat.c b/src/easy_chat.c index 1ff0ccc336..dd490ddf88 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -8,6 +8,7 @@ #include "main.h" #include "window.h" #include "palette.h" +#include "event_data.h" #include "easy_chat.h" // Static type declarations @@ -207,3 +208,76 @@ void sub_811A4D0(MainCallback callback) FreeAllWindowBuffers(); SetMainCallback2(callback); } +// +//void easy_chat_input_maybe(void) +//{ +// u16 i; +// u16 *words; +// OldMan *oldMan; +// u8 sizeParam = 3; +// switch (gSpecialVar_0x8004) +// { +// case 0: +// words = gSaveBlock1Ptr->unk2BB0; +// break; +// case 1: +// words = gSaveBlock1Ptr->unk2BBC; +// break; +// case 2: +// words = gSaveBlock1Ptr->unk2BC8; +// break; +// case 3: +// words = gSaveBlock1Ptr->unk2BD4; +// break; +// case 4: +// words = gSaveBlock1Ptr->mail[gSpecialVar_0x8005].words; +// break; +// case 6: +// oldMan = &gSaveBlock1Ptr->oldMan; +// for (i=0; i<6; i++) +// { +// oldMan->oldMan1.mauvilleOldMan_ecArray2[i] = oldMan->oldMan1.mauvilleOldMan_ecArray[i]; +// } +// words = oldMan->oldMan1.mauvilleOldMan_ecArray2; +// break; +// case 5: +// words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.var04; +// sizeParam = gSpecialVar_0x8006; +// break; +// case 7: +// words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.var1C[gSpecialVar_0x8006]; +// sizeParam = 1; +// break; +// case 8: +// words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].recentHappenings.var02; +// sizeParam = 0; +// break; +// case 9: +// words = NULL; +// break; +// case 10: +// words = &gSaveBlock1Ptr->gabbyAndTyData.quote; +// *words = -1; +// sizeParam = 1; +// break; +// case 11: +// words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.var04[gSpecialVar_0x8006]; +// sizeParam = 0; +// break; +// case 12: +// words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.var18; +// sizeParam = 1; +// break; +// case 13: +// words = (u16 *)gStringVar3; +// sub_811F88C(words, 2); +// break; +// case 14: +// words = +// default: +// return; +// } +// overworld_free_bg_tilemaps(); +// sub_811A20C(gSpecialVar_0x8004, words, sub_80861B0, sizeParam); +//} + From 01d6114da230e8526b21cbd3ae449d87fc2ba548 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 19:26:14 -0400 Subject: [PATCH 005/174] easy_chat_input_maybe --- asm/easy_chat.s | 278 -------------------------------------------- include/global.h | 13 ++- include/global.tv.h | 4 +- include/link.h | 1 + include/overworld.h | 2 + src/easy_chat.c | 183 ++++++++++++++++------------- src/lilycove_lady.c | 22 ++-- 7 files changed, 126 insertions(+), 377 deletions(-) diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 92aa1ea0fe..206f2d9c41 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,284 +5,6 @@ .text - thumb_func_start easy_chat_input_maybe -easy_chat_input_maybe: @ 811A4F0 - push {r4,r5,lr} - movs r5, 0x3 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0x14 - bls _0811A4FE - b _0811A7D4 -_0811A4FE: - lsls r0, 2 - ldr r1, =_0811A510 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0811A510: - .4byte _0811A564 - .4byte _0811A578 - .4byte _0811A58C - .4byte _0811A5A0 - .4byte _0811A5B4 - .4byte _0811A604 - .4byte _0811A5D8 - .4byte _0811A630 - .4byte _0811A664 - .4byte _0811A688 - .4byte _0811A6B4 - .4byte _0811A6D4 - .4byte _0811A708 - .4byte _0811A72C - .4byte _0811A73C - .4byte _0811A770 - .4byte _0811A7D4 - .4byte _0811A784 - .4byte _0811A798 - .4byte _0811A7AC - .4byte _0811A7BC -_0811A564: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002bb0 - adds r4, r0, r1 - b _0811A7C2 - .pool -_0811A578: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00002bbc - adds r4, r0, r2 - b _0811A7C2 - .pool -_0811A58C: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00002bc8 - adds r4, r0, r3 - b _0811A7C2 - .pool -_0811A5A0: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002bd4 - adds r4, r0, r1 - b _0811A7C2 - .pool -_0811A5B4: - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r3, =0x00002be0 - adds r0, r3 - ldr r1, [r2] - adds r4, r1, r0 - b _0811A7C2 - .pool -_0811A5D8: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00002e36 - adds r1, r0, r2 - ldr r3, =0x00002e2a - adds r2, r0, r3 - movs r3, 0x5 -_0811A5E6: - ldrh r0, [r2] - strh r0, [r2, 0xC] - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _0811A5E6 - adds r4, r1, 0 - b _0811A7C2 - .pool -_0811A604: - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, [r2] - adds r0, r1 - ldr r1, =0x000027d0 - adds r4, r0, r1 - ldr r0, =gSpecialVar_0x8006 - ldrb r5, [r0] - b _0811A7C2 - .pool -_0811A630: - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r3, =0x000027cc - adds r0, r3 - ldr r1, [r2] - adds r1, r0 - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - lsls r0, 1 - adds r0, 0x1C - adds r4, r1, r0 - movs r5, 0x1 - b _0811A7C2 - .pool -_0811A664: - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, [r2] - adds r0, r1 - ldr r1, =0x000027ce - adds r4, r0, r1 - movs r5, 0 - b _0811A7C2 - .pool -_0811A688: - ldr r4, =gStringVar3 - ldr r1, =gSaveBlock1Ptr - ldr r0, [r1] - ldr r2, =0x00002e6c - adds r0, r2 - ldrh r0, [r0] - strh r0, [r4] - ldr r0, [r1] - ldr r3, =0x00002e6e - adds r0, r3 - ldrh r0, [r0] - strh r0, [r4, 0x2] - b _0811A7C2 - .pool -_0811A6B4: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002baa - adds r4, r0, r1 - ldr r2, =0x0000ffff - adds r0, r2, 0 - strh r0, [r4] - movs r5, 0x1 - b _0811A7C2 - .pool -_0811A6D4: - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r3, =0x000027cc - adds r0, r3 - ldr r1, [r2] - adds r1, r0 - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - lsls r0, 1 - adds r0, 0x4 - adds r4, r1, r0 - movs r5, 0 - b _0811A7C2 - .pool -_0811A708: - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, [r2] - adds r0, r1 - ldr r1, =0x000027e4 - adds r4, r0, r1 - movs r5, 0x1 - b _0811A7C2 - .pool -_0811A72C: - ldr r4, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl InitializeEasyChatWordArray - b _0811A7C2 - .pool -_0811A73C: - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r3, =0x000027cc - adds r0, r3 - ldr r1, [r2] - adds r1, r0 - adds r4, r1, 0 - adds r4, 0x14 - ldr r2, =0x0000ffff - adds r0, r2, 0 - strh r0, [r1, 0x14] - movs r5, 0x2 - b _0811A7C2 - .pool -_0811A770: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00003b6e - adds r4, r0, r3 - b _0811A7C2 - .pool -_0811A784: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b5a - adds r4, r0, r1 - b _0811A7C2 - .pool -_0811A798: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b6c - adds r4, r0, r2 - b _0811A7C2 - .pool -_0811A7AC: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r3, 0x82 - lsls r3, 1 - adds r4, r0, r3 - b _0811A7C2 - .pool -_0811A7BC: - bl sub_801B058 - adds r4, r0, 0 -_0811A7C2: - bl overworld_free_bg_tilemaps - ldr r0, =gSpecialVar_0x8004 - ldrb r0, [r0] - ldr r2, =sub_80861B0 - adds r1, r4, 0 - adds r3, r5, 0 - bl sub_811A20C -_0811A7D4: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end easy_chat_input_maybe - thumb_func_start sub_811A7E4 sub_811A7E4: @ 811A7E4 push {lr} diff --git a/include/global.h b/include/global.h index 16a621568e..f818f15b16 100644 --- a/include/global.h +++ b/include/global.h @@ -192,7 +192,9 @@ struct SaveBlock2 /*0xAC*/ u32 encryptionKey; // TODO: fix and verify labels - /*0xB0*/ u8 field_B0[316]; + /*0xB0*/ u8 field_B0[0x54]; + /*0x104*/ u16 unk_104[1]; + /*0x106*/ u8 filler_106[0xe6]; /*0x1EC*/ struct BerryCrush berryCrush; /*0x1FC*/ struct PokemonJumpResults pokeJump; /*0x20C*/ struct BerryPickingResults berryPick; @@ -460,8 +462,8 @@ struct LilycoveLadyQuiz /*0x000*/ u8 id; /*0x001*/ u8 phase; /*0x002*/ u16 unk_002[9]; - /*0x014*/ u16 unk_014; - /*0x016*/ u16 unk_016; + /*0x014*/ u16 unk_014[1]; + /*0x016*/ u16 unk_016[1]; /*0x018*/ u8 playerName[8]; /*0x020*/ u16 playerTrainerId[4]; /*0x028*/ u16 itemId; @@ -496,7 +498,7 @@ struct LilycoveLadyContest /*0x00e*/ u8 language; }; -typedef union // TODO +typedef union // 3b58 { struct LilycoveLadyQuiz quiz; struct LilycoveLadyFavour favour; @@ -579,13 +581,12 @@ struct SaveBlock1 /*0x2BB0*/ u16 unk2BB0[6]; /*0x2BBC*/ u16 unk2BBC[6]; /*0x2BC8*/ u16 unk2BC8[6]; - /*0x2BD4*/ u16 unk2BD4[3]; + /*0x2BD4*/ u16 unk2BD4[6]; /*0x2BE0*/ struct MailStruct mail[16]; /*0x2E20*/ u8 additionalPhrases[5]; // bitfield for 33 additional phrases in easy chat system /*0x2E25*/ u8 unk2E25[3]; // possibly padding? /*0x2E28*/ OldMan oldMan; /*0x2e64*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff - /*0x2e8c*/ u8 filler_2E8C[0x4]; /*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum /*0x3030*/ struct DaycareData daycare; /*0x3150*/ struct LinkBattleRecord linkBattleRecords[5]; diff --git a/include/global.tv.h b/include/global.tv.h index 5f65aa8e0a..97ac546607 100644 --- a/include/global.tv.h +++ b/include/global.tv.h @@ -91,7 +91,7 @@ typedef union // size = 0x24 /*0x0E*/ u8 pokemonNameLanguage; /*0x0F*/ u8 filler_0F[1]; /*0x10*/ u8 nickname[8]; - /*0x18*/ u8 filler_18[4]; + /*0x18*/ u16 words18[2]; /*0x1C*/ u16 words[4]; } fanclubOpinions; @@ -99,7 +99,7 @@ typedef union // size = 0x24 struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u8 pad02[4]; + /*0x02*/ u16 words[2]; /*0x06*/ u16 var06; /*0x08*/ u8 pad_08[3]; /*0x0b*/ u8 string_0b[12]; diff --git a/include/link.h b/include/link.h index 7a6563144a..c242b55cfb 100644 --- a/include/link.h +++ b/include/link.h @@ -192,5 +192,6 @@ void sub_8011BD0(void); u8 sub_800ABAC(void); u8 sub_800ABBC(void); void sub_800AC34(void); +u16 *sub_801B058(void); #endif // GUARD_LINK_H diff --git a/include/overworld.h b/include/overworld.h index 19bcaaf014..68aa12f0f9 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -64,5 +64,7 @@ void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpNum); void c2_load_new_map(void); void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); void mapldr_default(void); +void overworld_free_bg_tilemaps(void); +void sub_80861B0(void); #endif //GUARD_ROM4_H diff --git a/src/easy_chat.c b/src/easy_chat.c index 24f1a2b57e..0d02e0d5ae 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -6,6 +6,7 @@ #include "overworld.h" #include "task.h" #include "main.h" +#include "link.h" #include "window.h" #include "palette.h" #include "event_data.h" @@ -14,11 +15,11 @@ // Static type declarations #define EZCHAT_TASK_STATE 0 -#define EZCHAT_TASK_UNK01 1 -#define EZCHAT_TASK_UNK02 2 +#define EZCHAT_TASK_KIND 1 +#define EZCHAT_TASK_WORDS 2 #define EZCHAT_TASK_MAINCALLBACK 4 #define EZCHAT_TASK_UNK06 6 -#define EZCHAT_TASK_UNK07 7 +#define EZCHAT_TASK_SIZE 7 // Static RAM declarations static void sub_811A2C0(u8); @@ -45,15 +46,15 @@ void sub_811F2B8(void); // .text -void sub_811A20C(u8 a0, u32 a1, MainCallback callback, u8 a3) +void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { u8 taskId; ResetTasks(); taskId = CreateTask(sub_811A2C0, 0); - gTasks[taskId].data[EZCHAT_TASK_UNK01] = a0; - gTasks[taskId].data[EZCHAT_TASK_UNK07] = a3; - SetWordTaskArg(taskId, EZCHAT_TASK_UNK02, a1); + gTasks[taskId].data[EZCHAT_TASK_KIND] = kind; + gTasks[taskId].data[EZCHAT_TASK_SIZE] = sizeParam; + SetWordTaskArg(taskId, EZCHAT_TASK_WORDS, (u32)words); SetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK, (u32)callback); SetMainCallback2(sub_811A278); } @@ -176,7 +177,7 @@ static bool8 sub_811A428(u8 taskId) } break; case 2: - if (!sub_811A95C(data[EZCHAT_TASK_UNK01], GetWordTaskArg(taskId, EZCHAT_TASK_UNK02), data[EZCHAT_TASK_UNK07])) + if (!sub_811A95C(data[EZCHAT_TASK_KIND], GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) { sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); } @@ -208,76 +209,98 @@ void sub_811A4D0(MainCallback callback) FreeAllWindowBuffers(); SetMainCallback2(callback); } -// -//void easy_chat_input_maybe(void) -//{ -// u16 i; -// u16 *words; -// OldMan *oldMan; -// u8 sizeParam = 3; -// switch (gSpecialVar_0x8004) -// { -// case 0: -// words = gSaveBlock1Ptr->unk2BB0; -// break; -// case 1: -// words = gSaveBlock1Ptr->unk2BBC; -// break; -// case 2: -// words = gSaveBlock1Ptr->unk2BC8; -// break; -// case 3: -// words = gSaveBlock1Ptr->unk2BD4; -// break; -// case 4: -// words = gSaveBlock1Ptr->mail[gSpecialVar_0x8005].words; -// break; -// case 6: -// oldMan = &gSaveBlock1Ptr->oldMan; -// for (i=0; i<6; i++) -// { -// oldMan->oldMan1.mauvilleOldMan_ecArray2[i] = oldMan->oldMan1.mauvilleOldMan_ecArray[i]; -// } -// words = oldMan->oldMan1.mauvilleOldMan_ecArray2; -// break; -// case 5: -// words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.var04; -// sizeParam = gSpecialVar_0x8006; -// break; -// case 7: -// words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.var1C[gSpecialVar_0x8006]; -// sizeParam = 1; -// break; -// case 8: -// words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].recentHappenings.var02; -// sizeParam = 0; -// break; -// case 9: -// words = NULL; -// break; -// case 10: -// words = &gSaveBlock1Ptr->gabbyAndTyData.quote; -// *words = -1; -// sizeParam = 1; -// break; -// case 11: -// words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.var04[gSpecialVar_0x8006]; -// sizeParam = 0; -// break; -// case 12: -// words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.var18; -// sizeParam = 1; -// break; -// case 13: -// words = (u16 *)gStringVar3; -// sub_811F88C(words, 2); -// break; -// case 14: -// words = -// default: -// return; -// } -// overworld_free_bg_tilemaps(); -// sub_811A20C(gSpecialVar_0x8004, words, sub_80861B0, sizeParam); -//} + +void easy_chat_input_maybe(void) +{ + int i; + u16 *words; + OldMan *oldMan; + u8 sizeParam = 3; + switch (gSpecialVar_0x8004) + { + case 0: + words = gSaveBlock1Ptr->unk2BB0; + break; + case 1: + words = gSaveBlock1Ptr->unk2BBC; + break; + case 2: + words = gSaveBlock1Ptr->unk2BC8; + break; + case 3: + words = gSaveBlock1Ptr->unk2BD4; + break; + case 4: + words = gSaveBlock1Ptr->mail[gSpecialVar_0x8005].words; + break; + case 6: + oldMan = &gSaveBlock1Ptr->oldMan; + for (i = 0; i < 6; i ++) + { + oldMan->oldMan1.mauvilleOldMan_ecArray2[i] = oldMan->oldMan1.mauvilleOldMan_ecArray[i]; + } + words = oldMan->oldMan1.mauvilleOldMan_ecArray2; + break; + case 5: + words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words; + sizeParam = gSpecialVar_0x8006; + break; + case 7: + words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words[gSpecialVar_0x8006]; + sizeParam = 1; + break; + case 8: + words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].unkShow04.words; + sizeParam = 0; + break; + case 9: + words = (u16 *)gStringVar3; + words[0] = gSaveBlock1Ptr->easyChatPairs[0].words[0]; + words[1] = gSaveBlock1Ptr->easyChatPairs[0].words[1]; + break; + case 10: + words = gSaveBlock1Ptr->gabbyAndTyData.quote; + *words = -1; + sizeParam = 1; + break; + case 11: + words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words[gSpecialVar_0x8006]; + sizeParam = 0; + break; + case 12: + words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words18; + sizeParam = 1; + break; + case 13: + words = (u16 *)gStringVar3; + InitializeEasyChatWordArray(words, 2); + break; + case 14: + words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanClubSpecial.words; + words[0] = -1; + sizeParam = 2; + break; + case 15: + words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_016; + break; + case 16: + return; + case 17: + words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_002; + break; + case 18: + words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_014; + break; + case 19: + words = gSaveBlock2Ptr->unk_104; + break; + case 20: + words = sub_801B058(); + break; + default: + return; + } + overworld_free_bg_tilemaps(); + sub_811A20C(gSpecialVar_0x8004, words, sub_80861B0, sizeParam); +} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 3b7ae49f2e..356b1a4b75 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -508,7 +508,7 @@ static void sub_818DF00(void) { gUnknown_0203CD68->unk_002[i] = gUnknown_0860B1A4[v0][i]; } - gUnknown_0203CD68->unk_014 = gUnknown_0860B1E4[v0]; + gUnknown_0203CD68->unk_014[0] = gUnknown_0860B1E4[v0]; gUnknown_0203CD68->itemId = gUnknown_0860B204[v0]; gUnknown_0203CD68->unk_02b = v0; gUnknown_0203CD68->playerName[0] = EOS; @@ -525,8 +525,8 @@ static void SetLilycoveQuizLady(void) { gUnknown_0203CD68->unk_002[i] = -1; } - gUnknown_0203CD68->unk_014 = -1; - gUnknown_0203CD68->unk_016 = -1; + gUnknown_0203CD68->unk_014[0] = -1; + gUnknown_0203CD68->unk_016[0] = -1; for (i = 0; i < 4; i ++) { gUnknown_0203CD68->playerTrainerId[i] = 0; @@ -544,7 +544,7 @@ static void sub_818E004(void) gUnknown_0203CD68->id = LILYCOVE_LADY_QUIZ; gUnknown_0203CD68->phase = 0; gUnknown_0203CD68->unk_02a = 0; - gUnknown_0203CD68->unk_016 = -1; + gUnknown_0203CD68->unk_016[0] = -1; } u8 sub_818E038(void) @@ -572,7 +572,7 @@ u8 sub_818E06C(void) struct LilycoveLadyQuiz *quiz; quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (sub_811F8D8(quiz->unk_014) == 0) + if (sub_811F8D8(quiz->unk_014[0]) == 0) { i = quiz->unk_02b; do @@ -586,7 +586,7 @@ u8 sub_818E06C(void) { quiz->unk_002[j] = gUnknown_0860B1A4[i][j]; } - quiz->unk_014 = gUnknown_0860B1E4[i]; + quiz->unk_014[0] = gUnknown_0860B1E4[i]; quiz->itemId = gUnknown_0860B204[i]; quiz->unk_02b = i; quiz->playerName[0] = EOS; @@ -777,8 +777,8 @@ void sub_818E2FC(void) bool8 sub_818E308(void) { gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - CopyEasyChatWord(gStringVar1, gUnknown_0203CD68->unk_014); - CopyEasyChatWord(gStringVar2, gUnknown_0203CD68->unk_016); + CopyEasyChatWord(gStringVar1, gUnknown_0203CD68->unk_014[0]); + CopyEasyChatWord(gStringVar2, gUnknown_0203CD68->unk_016[0]); return StringCompare(gStringVar1, gStringVar2) ? FALSE : TRUE; } @@ -803,7 +803,7 @@ void sub_818E39C(void) void sub_818E3BC(void) { gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - gUnknown_0203CD68->unk_016 = -1; + gUnknown_0203CD68->unk_016[0] = -1; } void sub_818E3E0(void) @@ -834,7 +834,7 @@ void sub_818E430(void) { gUnknown_0203CD68->unk_002[i] = -1; } - gUnknown_0203CD68->unk_014 = -1; + gUnknown_0203CD68->unk_014[0] = -1; } void sub_818E47C(void) @@ -871,7 +871,7 @@ void sub_818E510(void) void sub_818E538(void) { gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - CopyEasyChatWord(gStringVar3, gUnknown_0203CD68->unk_014); + CopyEasyChatWord(gStringVar3, gUnknown_0203CD68->unk_014[0]); } void sub_818E564(void) From 46068c0a6fd520f9dd0823729c5b88b7ae021f59 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 19:34:19 -0400 Subject: [PATCH 006/174] sub_811A7E4 --- asm/easy_chat.s | 61 ------------------------------------------------- src/easy_chat.c | 43 ++++++++++++++++++++++++++++------ 2 files changed, 36 insertions(+), 68 deletions(-) diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 206f2d9c41..d35d441da9 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,67 +5,6 @@ .text - thumb_func_start sub_811A7E4 -sub_811A7E4: @ 811A7E4 - push {lr} - bl UpdatePaletteFade - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0811A804 - cmp r0, 0x1 - beq _0811A80E - b _0811A840 - .pool -_0811A804: - movs r0, 0x1 - movs r1, 0 - bl fade_screen - b _0811A840 -_0811A80E: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811A84E - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - ldr r1, =0x0000ffff - strh r1, [r0, 0x16] - bl overworld_free_bg_tilemaps - bl sub_811A8F0 - b _0811A84E - .pool -_0811A840: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0811A84E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_811A7E4 - - thumb_func_start sub_811A858 -sub_811A858: @ 811A858 - push {lr} - ldr r0, =sub_811A7E4 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_811A858 - thumb_func_start sub_811A868 sub_811A868: @ 811A868 push {lr} diff --git a/src/easy_chat.c b/src/easy_chat.c index 0d02e0d5ae..c2da4dc8a7 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -7,6 +7,7 @@ #include "task.h" #include "main.h" #include "link.h" +#include "field_weather.h" #include "window.h" #include "palette.h" #include "event_data.h" @@ -26,18 +27,19 @@ static void sub_811A2C0(u8); static void sub_811A278(void); static bool8 sub_811A428(u8); static void sub_811A2FC(u8); -/*static*/ u16 sub_811AAAC(void); -/*static*/ bool32 sub_811A88C(u16); -/*static*/ void sub_811C158(u16); -/*static*/ bool8 sub_811C170(void); -/*static*/ void sub_811A8A4(u16); /*static*/ void sub_811A4D0(MainCallback); -bool8 sub_811F28C(void); +/*static*/ bool32 sub_811A88C(u16); +/*static*/ void sub_811A8A4(u16); +void sub_811A8F0(void); bool8 sub_811A95C(u8, u32, u8); +void sub_811AA90(void); +/*static*/ u16 sub_811AAAC(void); bool8 sub_811BF8C(void); bool8 sub_811BFA4(void); void sub_811C13C(void); -void sub_811AA90(void); +/*static*/ void sub_811C158(u16); +/*static*/ bool8 sub_811C170(void); +bool8 sub_811F28C(void); void sub_811F2B8(void); // Static ROM declarations @@ -304,3 +306,30 @@ void easy_chat_input_maybe(void) sub_811A20C(gSpecialVar_0x8004, words, sub_80861B0, sizeParam); } +static void sub_811A7E4(void) +{ + LilycoveLady *lilycoveLady; + + UpdatePaletteFade(); + switch (gMain.state) + { + case 0: + fade_screen(1, 0); + break; + case 1: + if (!gPaletteFade.active) + { + lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; + lilycoveLady->quiz.unk_016[0] = -1; + overworld_free_bg_tilemaps(); + sub_811A8F0(); + } + return; + } + gMain.state ++; +} + +void sub_811A858(void) +{ + SetMainCallback2(sub_811A7E4); +} From 85eb28ba42f035bbf5ee2e2ffd2fecee1bf55990 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 19:44:03 -0400 Subject: [PATCH 007/174] through sub_811A8A4 --- asm/easy_chat.s | 58 ------------------------------------------------- src/easy_chat.c | 37 +++++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 60 deletions(-) diff --git a/asm/easy_chat.s b/asm/easy_chat.s index d35d441da9..5c89b1528d 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,64 +5,6 @@ .text - thumb_func_start sub_811A868 -sub_811A868: @ 811A868 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0 - ldr r1, =gUnknown_08597530 -_0811A872: - ldrh r3, [r1] - cmp r2, r3 - beq _0811A884 - adds r1, 0x8 - adds r0, 0x1 - cmp r0, 0x3 - bls _0811A872 - movs r0, 0x1 - negs r0, r0 -_0811A884: - pop {r1} - bx r1 - .pool - thumb_func_end sub_811A868 - - thumb_func_start sub_811A88C -sub_811A88C: @ 811A88C - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_811A868 - adds r1, r0, 0 - mvns r1, r1 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r1} - bx r1 - thumb_func_end sub_811A88C - - thumb_func_start sub_811A8A4 -sub_811A8A4: @ 811A8A4 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_811A868 - adds r4, r0, 0 - bl ResetTasks - ldr r0, =gUnknown_08597530 - lsls r4, 3 - adds r0, 0x4 - adds r4, r0 - ldr r0, [r4] - bl sub_811A4D0 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811A8A4 - thumb_func_start sub_811A8CC sub_811A8CC: @ 811A8CC push {lr} diff --git a/src/easy_chat.c b/src/easy_chat.c index c2da4dc8a7..de66fb9eb5 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -28,8 +28,8 @@ static void sub_811A278(void); static bool8 sub_811A428(u8); static void sub_811A2FC(u8); /*static*/ void sub_811A4D0(MainCallback); -/*static*/ bool32 sub_811A88C(u16); -/*static*/ void sub_811A8A4(u16); +static bool32 sub_811A88C(u16); +static void sub_811A8A4(u16); void sub_811A8F0(void); bool8 sub_811A95C(u8, u32, u8); void sub_811AA90(void); @@ -46,6 +46,11 @@ void sub_811F2B8(void); // .rodata +extern const struct { + u16 word; + MainCallback callback; +} gUnknown_08597530[4]; + // .text void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) @@ -333,3 +338,31 @@ void sub_811A858(void) { SetMainCallback2(sub_811A7E4); } + +static int sub_811A868(u16 word) +{ + int i; + + for (i = 0; i < ARRAY_COUNT(gUnknown_08597530); i ++) + { + if (word == gUnknown_08597530[i].word) + { + return i; + } + } + return -1; +} + +static bool32 sub_811A88C(u16 word) +{ + return sub_811A868(word) == -1 ? FALSE : TRUE; +} + +static void sub_811A8A4(u16 word) +{ + int i; + + i = sub_811A868(word); + ResetTasks(); + sub_811A4D0(gUnknown_08597530[i].callback); +} From 1049cd670d115c114f616e9118bc0fc9fb5fac64 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 19:48:43 -0400 Subject: [PATCH 008/174] through sub_811A938 --- asm/easy_chat.s | 64 ------------------------------------------------- src/easy_chat.c | 22 ++++++++++++++++- 2 files changed, 21 insertions(+), 65 deletions(-) diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 5c89b1528d..2e2284aac1 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,70 +5,6 @@ .text - thumb_func_start sub_811A8CC -sub_811A8CC: @ 811A8CC - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b6e - adds r1, r0 - ldr r2, =sub_80861B0 - movs r0, 0xF - movs r3, 0x3 - bl sub_811A20C - pop {r0} - bx r0 - .pool - thumb_func_end sub_811A8CC - - thumb_func_start sub_811A8F0 -sub_811A8F0: @ 811A8F0 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b5a - adds r1, r0 - ldr r2, =sub_80861B0 - movs r0, 0x10 - movs r3, 0x3 - bl sub_811A20C - pop {r0} - bx r0 - .pool - thumb_func_end sub_811A8F0 - - thumb_func_start sub_811A914 -sub_811A914: @ 811A914 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b6c - adds r1, r0 - ldr r2, =sub_80861B0 - movs r0, 0x12 - movs r3, 0x3 - bl sub_811A20C - pop {r0} - bx r0 - .pool - thumb_func_end sub_811A914 - - thumb_func_start sub_811A938 -sub_811A938: @ 811A938 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b5a - adds r1, r0 - ldr r2, =sub_80861B0 - movs r0, 0x11 - movs r3, 0x3 - bl sub_811A20C - pop {r0} - bx r0 - .pool - thumb_func_end sub_811A938 - thumb_func_start sub_811A95C sub_811A95C: @ 811A95C push {r4-r7,lr} diff --git a/src/easy_chat.c b/src/easy_chat.c index de66fb9eb5..c1a68f4e25 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -30,7 +30,7 @@ static void sub_811A2FC(u8); /*static*/ void sub_811A4D0(MainCallback); static bool32 sub_811A88C(u16); static void sub_811A8A4(u16); -void sub_811A8F0(void); +static void sub_811A8F0(void); bool8 sub_811A95C(u8, u32, u8); void sub_811AA90(void); /*static*/ u16 sub_811AAAC(void); @@ -366,3 +366,23 @@ static void sub_811A8A4(u16 word) ResetTasks(); sub_811A4D0(gUnknown_08597530[i].callback); } + +static void sub_811A8CC(void) +{ + sub_811A20C(0xF, gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, sub_80861B0, 3); +} + +static void sub_811A8F0(void) +{ + sub_811A20C(0x10, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, sub_80861B0, 3); +} + +static void sub_811A914(void) +{ + sub_811A20C(0x12, gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, sub_80861B0, 3); +} + +static void sub_811A938(void) +{ + sub_811A20C(0x11, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, sub_80861B0, 3); +} From 881d222621a0f92d8548ba70bb1c5dbdfcf0555f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 20:37:03 -0400 Subject: [PATCH 009/174] sub_811A95C --- asm/easy_chat.s | 153 ------------------------------------------------ src/easy_chat.c | 96 ++++++++++++++++++++++++++++-- 2 files changed, 92 insertions(+), 157 deletions(-) diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 2e2284aac1..efd27ccf7e 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,159 +5,6 @@ .text - thumb_func_start sub_811A95C -sub_811A95C: @ 811A95C - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r1 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r4, =gUnknown_0203A118 - movs r0, 0x50 - bl Alloc - str r0, [r4] - cmp r0, 0 - bne _0811A984 - movs r0, 0 - b _0811AA7E - .pool -_0811A984: - movs r7, 0 - strb r5, [r0] - ldr r0, [r4] - mov r1, r8 - str r1, [r0, 0x38] - strb r7, [r0, 0x5] - ldr r0, [r4] - strb r7, [r0, 0x6] - ldr r0, [r4] - strb r7, [r0, 0x9] - ldr r0, [r4] - strb r6, [r0, 0x12] - ldr r0, [r4] - strb r7, [r0, 0x13] - adds r0, r5, 0 - bl sub_811BCC8 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r5, 0x10 - bne _0811A9C6 - ldr r0, [r4] - adds r0, 0x14 - bl sub_811BDF0 - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x14 - str r1, [r0, 0x34] - movs r1, 0x7 - strb r1, [r0, 0x4] - lsls r0, r6, 1 - b _0811A9DE -_0811A9C6: - ldr r0, [r4] - strb r7, [r0, 0x4] - ldr r3, [r4] - ldr r1, =gUnknown_08597550 - lsls r2, r6, 1 - adds r0, r2, r6 - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - str r0, [r3, 0x34] - adds r0, r2, 0 -_0811A9DE: - ldr r3, =gUnknown_0203A118 - ldr r2, [r3] - ldr r1, =gUnknown_08597550 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x1] - strb r1, [r2, 0x2] - ldr r1, [r3] - ldrb r0, [r0, 0x2] - strb r0, [r1, 0x3] - ldr r0, [r3] - ldrb r2, [r0, 0x2] - ldrb r1, [r0, 0x3] - adds r4, r2, 0 - muls r4, r1 - adds r1, r4, 0 - strb r1, [r0, 0x7] - ldr r0, [r3] - strb r6, [r0, 0x1] - ldr r1, [r3] - ldrb r0, [r1, 0x7] - adds r4, r3, 0 - cmp r0, 0x9 - bls _0811AA14 - movs r0, 0x9 - strb r0, [r1, 0x7] -_0811AA14: - mov r0, r8 - cmp r0, 0 - beq _0811AA34 - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x3C - ldrb r2, [r0, 0x7] - mov r0, r8 - bl CpuSet - b _0811AA64 - .pool -_0811AA34: - movs r3, 0 - ldr r0, [r4] - ldrb r0, [r0, 0x7] - cmp r3, r0 - bge _0811AA5C - adds r6, r4, 0 - ldr r1, =0x0000ffff - adds r5, r1, 0 -_0811AA44: - ldr r2, [r6] - lsls r0, r3, 1 - adds r1, r2, 0 - adds r1, 0x3C - adds r1, r0 - ldrh r0, [r1] - orrs r0, r5 - strh r0, [r1] - adds r3, 0x1 - ldrb r2, [r2, 0x7] - cmp r3, r2 - blt _0811AA44 -_0811AA5C: - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x3C - str r0, [r1, 0x38] -_0811AA64: - bl sub_811F3AC - ldr r1, =gUnknown_0203A118 - ldr r2, [r1] - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0x1 - strb r0, [r2, 0xD] - movs r0, 0x1 -_0811AA7E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_811A95C - thumb_func_start sub_811AA90 sub_811AA90: @ 811AA90 push {r4,lr} diff --git a/src/easy_chat.c b/src/easy_chat.c index c1a68f4e25..6a04d6514b 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1,6 +1,7 @@ // Includes #include "global.h" +#include "malloc.h" #include "songs.h" #include "sound.h" #include "overworld.h" @@ -23,6 +24,31 @@ #define EZCHAT_TASK_SIZE 7 // Static RAM declarations + +EWRAM_DATA struct { + u8 kind; + u8 unk_01; + u8 unk_02; + u8 unk_03; + u8 unk_04; + u8 unk_05; + u8 unk_06; + u8 unk_07; + u8 unk_08; + u8 unk_09; + u8 filler_0a[0x3]; + u8 unk_0d; + u8 unk_0e[0x4]; + u8 sizeParam; + u8 unk_13; + u8 unk_14[0x20]; + const u8 *src; + const u16 *words; + u16 ecWordBuffer[9]; +} *gUnknown_0203A118 = NULL; + +// Static ROM declarations + static void sub_811A2C0(u8); static void sub_811A278(void); static bool8 sub_811A428(u8); @@ -31,9 +57,11 @@ static void sub_811A2FC(u8); static bool32 sub_811A88C(u16); static void sub_811A8A4(u16); static void sub_811A8F0(void); -bool8 sub_811A95C(u8, u32, u8); +static bool8 sub_811A95C(u8, u16 *, u8); void sub_811AA90(void); /*static*/ u16 sub_811AAAC(void); +u8 sub_811BCC8(u8); +void sub_811BDF0(u8 *); bool8 sub_811BF8C(void); bool8 sub_811BFA4(void); void sub_811C13C(void); @@ -41,8 +69,7 @@ void sub_811C13C(void); /*static*/ bool8 sub_811C170(void); bool8 sub_811F28C(void); void sub_811F2B8(void); - -// Static ROM declarations +u8 sub_811F3AC(void); // .rodata @@ -50,6 +77,14 @@ extern const struct { u16 word; MainCallback callback; } gUnknown_08597530[4]; +extern const struct { + u8 unk_00; + u8 unk_01; + u8 unk_02; + u8 unk_03; + u8 *data; + u8 filler_08[16]; +} gUnknown_08597550[]; // .text @@ -184,7 +219,7 @@ static bool8 sub_811A428(u8 taskId) } break; case 2: - if (!sub_811A95C(data[EZCHAT_TASK_KIND], GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) + if (!sub_811A95C(data[EZCHAT_TASK_KIND], (u16 *)GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) { sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); } @@ -386,3 +421,56 @@ static void sub_811A938(void) { sub_811A20C(0x11, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, sub_80861B0, 3); } + +static bool8 sub_811A95C(u8 kind, u16 *words, u8 sizeParam) +{ + u8 r6; + int i; + + gUnknown_0203A118 = malloc(sizeof(*gUnknown_0203A118)); + if (gUnknown_0203A118 == NULL) + { + return FALSE; + } + gUnknown_0203A118->kind = kind; + gUnknown_0203A118->words = words; + gUnknown_0203A118->unk_05 = 0; + gUnknown_0203A118->unk_06 = 0; + gUnknown_0203A118->unk_09 = 0; + gUnknown_0203A118->sizeParam = sizeParam; + gUnknown_0203A118->unk_13 = 0; + r6 = sub_811BCC8(kind); + if (kind == 0x10) + { + sub_811BDF0(gUnknown_0203A118->unk_14); + gUnknown_0203A118->src = gUnknown_0203A118->unk_14; + gUnknown_0203A118->unk_04 = 7; + } + else + { + gUnknown_0203A118->unk_04 = 0; + gUnknown_0203A118->src = gUnknown_08597550[r6].data; + } + gUnknown_0203A118->unk_02 = gUnknown_08597550[r6].unk_01; + gUnknown_0203A118->unk_03 = gUnknown_08597550[r6].unk_02; + gUnknown_0203A118->unk_07 = gUnknown_0203A118->unk_02 * gUnknown_0203A118->unk_03; + gUnknown_0203A118->unk_01 = r6; + if (gUnknown_0203A118->unk_07 > 9) + { + gUnknown_0203A118->unk_07 = 9; + } + if (words != NULL) + { + CpuCopy16(words, gUnknown_0203A118->ecWordBuffer, gUnknown_0203A118->unk_07 * sizeof(u16)); + } + else + { + for (i = 0; i < gUnknown_0203A118->unk_07; i ++) + { + gUnknown_0203A118->ecWordBuffer[i] = -1; + } + gUnknown_0203A118->words = gUnknown_0203A118->ecWordBuffer; + } + gUnknown_0203A118->unk_0d = (sub_811F3AC() - 1) / 2 + 1; + return TRUE; +} From 42c1164d721ad4fa8bd0583d142b8eea77724475 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 20:51:13 -0400 Subject: [PATCH 010/174] sub_811AAAC --- asm/easy_chat.s | 87 ------------------------------------------------- src/easy_chat.c | 66 ++++++++++++++++++++++++++++++++----- 2 files changed, 58 insertions(+), 95 deletions(-) diff --git a/asm/easy_chat.s b/asm/easy_chat.s index efd27ccf7e..5cb89246c1 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,93 +5,6 @@ .text - thumb_func_start sub_811AA90 -sub_811AA90: @ 811AA90 - push {r4,lr} - ldr r4, =gUnknown_0203A118 - ldr r0, [r4] - cmp r0, 0 - beq _0811AAA2 - bl Free - movs r0, 0 - str r0, [r4] -_0811AAA2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811AA90 - - thumb_func_start sub_811AAAC -sub_811AAAC: @ 811AAAC - push {lr} - ldr r0, =gUnknown_0203A118 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0xA - bhi _0811AB3E - lsls r0, 2 - ldr r1, =_0811AACC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0811AACC: - .4byte _0811AAF8 - .4byte _0811AAFE - .4byte _0811AB04 - .4byte _0811AB0A - .4byte _0811AB10 - .4byte _0811AB16 - .4byte _0811AB1C - .4byte _0811AB22 - .4byte _0811AB28 - .4byte _0811AB2E - .4byte _0811AB34 -_0811AAF8: - bl sub_811AB68 - b _0811AB38 -_0811AAFE: - bl sub_811ACDC - b _0811AB38 -_0811AB04: - bl sub_811AE44 - b _0811AB38 -_0811AB0A: - bl sub_811AF00 - b _0811AB38 -_0811AB10: - bl sub_811AF8C - b _0811AB38 -_0811AB16: - bl sub_811B040 - b _0811AB38 -_0811AB1C: - bl sub_811AFEC - b _0811AB38 -_0811AB22: - bl sub_811B08C - b _0811AB38 -_0811AB28: - bl sub_811B0BC - b _0811AB38 -_0811AB2E: - bl sub_811B0E8 - b _0811AB38 -_0811AB34: - bl sub_811B0F8 -_0811AB38: - lsls r0, 16 - lsrs r0, 16 - b _0811AB40 -_0811AB3E: - movs r0, 0 -_0811AB40: - pop {r1} - bx r1 - thumb_func_end sub_811AAAC - thumb_func_start sub_811AB44 sub_811AB44: @ 811AB44 push {lr} diff --git a/src/easy_chat.c b/src/easy_chat.c index 6a04d6514b..26f1f08b0f 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -53,13 +53,24 @@ static void sub_811A2C0(u8); static void sub_811A278(void); static bool8 sub_811A428(u8); static void sub_811A2FC(u8); -/*static*/ void sub_811A4D0(MainCallback); +static void sub_811A4D0(MainCallback); static bool32 sub_811A88C(u16); static void sub_811A8A4(u16); static void sub_811A8F0(void); -static bool8 sub_811A95C(u8, u16 *, u8); -void sub_811AA90(void); -/*static*/ u16 sub_811AAAC(void); +static bool8 EasyChat_AllocateResources(u8, u16 *, u8); +static void EasyChat_FreeResources(void); +static u16 sub_811AAAC(void); +u16 sub_811AB68(void); +u16 sub_811ACDC(void); +u16 sub_811AE44(void); +u16 sub_811AF00(void); +u16 sub_811AF8C(void); +u16 sub_811B040(void); +u16 sub_811AFEC(void); +u16 sub_811B08C(void); +u16 sub_811B0BC(void); +u16 sub_811B0E8(void); +u16 sub_811B0F8(void); u8 sub_811BCC8(u8); void sub_811BDF0(u8 *); bool8 sub_811BF8C(void); @@ -219,7 +230,7 @@ static bool8 sub_811A428(u8 taskId) } break; case 2: - if (!sub_811A95C(data[EZCHAT_TASK_KIND], (u16 *)GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) + if (!EasyChat_AllocateResources(data[EZCHAT_TASK_KIND], (u16 *)GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) { sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); } @@ -243,10 +254,10 @@ static bool8 sub_811A428(u8 taskId) return TRUE; } -void sub_811A4D0(MainCallback callback) +static void sub_811A4D0(MainCallback callback) { sub_811C13C(); - sub_811AA90(); + EasyChat_FreeResources(); sub_811F2B8(); FreeAllWindowBuffers(); SetMainCallback2(callback); @@ -422,7 +433,7 @@ static void sub_811A938(void) sub_811A20C(0x11, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, sub_80861B0, 3); } -static bool8 sub_811A95C(u8 kind, u16 *words, u8 sizeParam) +static bool8 EasyChat_AllocateResources(u8 kind, u16 *words, u8 sizeParam) { u8 r6; int i; @@ -474,3 +485,42 @@ static bool8 sub_811A95C(u8 kind, u16 *words, u8 sizeParam) gUnknown_0203A118->unk_0d = (sub_811F3AC() - 1) / 2 + 1; return TRUE; } + +static void EasyChat_FreeResources(void) +{ + if (gUnknown_0203A118 != NULL) + { + free(gUnknown_0203A118); + gUnknown_0203A118 = NULL; + } +} + +static u16 sub_811AAAC(void) +{ + switch (gUnknown_0203A118->unk_04) + { + case 0: + return sub_811AB68(); + case 1: + return sub_811ACDC(); + case 2: + return sub_811AE44(); + case 3: + return sub_811AF00(); + case 4: + return sub_811AF8C(); + case 5: + return sub_811B040(); + case 6: + return sub_811AFEC(); + case 7: + return sub_811B08C(); + case 8: + return sub_811B0BC(); + case 9: + return sub_811B0E8(); + case 10: + return sub_811B0F8(); + } + return 0; +} From 293dfc4823d6c984adc221b40be4e3705a3fa65b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 20:54:13 -0400 Subject: [PATCH 011/174] sub_811AB44 --- asm/easy_chat.s | 24 ------------------------ src/easy_chat.c | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 25 deletions(-) diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 5cb89246c1..764ed8b8e1 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,30 +5,6 @@ .text - thumb_func_start sub_811AB44 -sub_811AB44: @ 811AB44 - push {lr} - bl sub_811BA68 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _0811AB5E - cmp r0, 0x2 - blt _0811AB62 - cmp r0, 0x8 - bgt _0811AB62 - cmp r0, 0x7 - blt _0811AB62 -_0811AB5E: - movs r0, 0x1 - b _0811AB64 -_0811AB62: - movs r0, 0 -_0811AB64: - pop {r1} - bx r1 - thumb_func_end sub_811AB44 - thumb_func_start sub_811AB68 sub_811AB68: @ 811AB68 push {r4-r7,lr} diff --git a/src/easy_chat.c b/src/easy_chat.c index 26f1f08b0f..9b69f1d0ae 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -65,12 +65,13 @@ u16 sub_811ACDC(void); u16 sub_811AE44(void); u16 sub_811AF00(void); u16 sub_811AF8C(void); -u16 sub_811B040(void); u16 sub_811AFEC(void); +u16 sub_811B040(void); u16 sub_811B08C(void); u16 sub_811B0BC(void); u16 sub_811B0E8(void); u16 sub_811B0F8(void); +u8 sub_811BA68(void); u8 sub_811BCC8(u8); void sub_811BDF0(u8 *); bool8 sub_811BF8C(void); @@ -524,3 +525,15 @@ static u16 sub_811AAAC(void) } return 0; } + +bool8 sub_811AB44(void) +{ + switch (sub_811BA68()) + { + case 2: + case 7: + case 8: + return TRUE; + } + return FALSE; +} From 6b84feaaf2ba492bef23a42c28603bbaa3ccd2e6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Nov 2017 13:19:06 -0500 Subject: [PATCH 012/174] nonmatching sub_811AB68 --- asm/easy_chat.s | 190 -------------------------------- src/easy_chat.c | 282 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 277 insertions(+), 195 deletions(-) diff --git a/asm/easy_chat.s b/asm/easy_chat.s index f1aee4b982..abc2e3429e 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -5,196 +5,6 @@ .text - thumb_func_start sub_811AB68 -sub_811AB68: @ 811AB68 - push {r4-r7,lr} - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0811ABB8 - bl sub_811BF78 - ldr r1, =gUnknown_0203A118 - ldr r3, [r1] - movs r2, 0 - movs r0, 0x2 - strb r0, [r3, 0x4] - ldr r0, [r1] - strb r2, [r0, 0xA] - ldr r0, [r1] - strb r2, [r0, 0xB] - ldr r0, [r1] - strb r2, [r0, 0xC] - movs r0, 0x9 - b _0811ACCC - .pool -_0811AB9C: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0811AC68 - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811AC58 - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0811AC48 - movs r0, 0 - b _0811ACCC -_0811ABB8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0811AC78 - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0811AC7E - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0811AB9C - ldr r2, =gUnknown_0203A118 - ldr r1, [r2] - ldrb r0, [r1, 0x6] - subs r0, 0x1 -_0811ABD8: - strb r0, [r1, 0x6] -_0811ABDA: - adds r7, r2, 0 - adds r4, r7, 0 - ldr r2, [r4] - movs r0, 0x6 - ldrsb r0, [r2, r0] - ldr r6, =gUnknown_08597550 - cmp r0, 0 - bge _0811ABF8 - ldrb r0, [r2, 0x1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - ldrb r0, [r1, 0x2] - strb r0, [r2, 0x6] -_0811ABF8: - ldr r3, [r4] - movs r2, 0x6 - ldrsb r2, [r3, r2] - adds r5, r6, 0 - ldrb r1, [r3, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - ldrb r0, [r0, 0x2] - cmp r2, r0 - ble _0811AC14 - movs r0, 0 - strb r0, [r3, 0x6] -_0811AC14: - ldr r3, [r4] - movs r2, 0x6 - ldrsb r2, [r3, r2] - ldrb r1, [r3, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r1, r0, r5 - ldrb r0, [r1, 0x2] - cmp r2, r0 - bne _0811AC88 - movs r0, 0x5 - ldrsb r0, [r3, r0] - cmp r0, 0x2 - ble _0811AC36 - movs r0, 0x2 - strb r0, [r3, 0x5] -_0811AC36: - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x4] - movs r0, 0x3 - b _0811ACCC - .pool -_0811AC48: - ldr r2, =gUnknown_0203A118 - ldr r1, [r2] - ldrb r0, [r1, 0x5] - adds r0, 0x1 - strb r0, [r1, 0x5] - b _0811ABDA - .pool -_0811AC58: - ldr r2, =gUnknown_0203A118 - ldr r1, [r2] - ldrb r0, [r1, 0x6] - adds r0, 0x1 - b _0811ABD8 - .pool -_0811AC68: - ldr r2, =gUnknown_0203A118 - ldr r1, [r2] - ldrb r0, [r1, 0x5] - subs r0, 0x1 - strb r0, [r1, 0x5] - b _0811ABDA - .pool -_0811AC78: - bl sub_811B150 - b _0811AC82 -_0811AC7E: - bl sub_811B1B4 -_0811AC82: - lsls r0, 16 - lsrs r0, 16 - b _0811ACCC -_0811AC88: - movs r0, 0x5 - ldrsb r0, [r3, r0] - cmp r0, 0 - bge _0811AC96 - ldrb r0, [r1, 0x1] - subs r0, 0x1 - strb r0, [r3, 0x5] -_0811AC96: - ldr r3, [r4] - movs r2, 0x5 - ldrsb r2, [r3, r2] - ldrb r1, [r3, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldrb r0, [r0, 0x1] - cmp r2, r0 - blt _0811ACB0 - movs r0, 0 - strb r0, [r3, 0x5] -_0811ACB0: - bl sub_811AB44 - cmp r0, 0 - beq _0811ACCA - ldr r2, [r7] - ldr r0, [r2, 0x4] - ldr r1, =0x00ffff00 - ands r0, r1 - ldr r1, =0x00040100 - cmp r0, r1 - bne _0811ACCA - movs r0, 0 - strb r0, [r2, 0x5] -_0811ACCA: - movs r0, 0x2 -_0811ACCC: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_811AB68 - thumb_func_start sub_811ACDC sub_811ACDC: @ 811ACDC push {r4-r6,lr} diff --git a/src/easy_chat.c b/src/easy_chat.c index 9b69f1d0ae..0ed5bdea97 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -31,12 +31,14 @@ EWRAM_DATA struct { u8 unk_02; u8 unk_03; u8 unk_04; - u8 unk_05; - u8 unk_06; + s8 unk_05; + s8 unk_06; u8 unk_07; u8 unk_08; u8 unk_09; - u8 filler_0a[0x3]; + u8 unk_0a; + u8 unk_0b; + u8 unk_0c; u8 unk_0d; u8 unk_0e[0x4]; u8 sizeParam; @@ -60,7 +62,7 @@ static void sub_811A8F0(void); static bool8 EasyChat_AllocateResources(u8, u16 *, u8); static void EasyChat_FreeResources(void); static u16 sub_811AAAC(void); -u16 sub_811AB68(void); +static u16 sub_811AB68(void); u16 sub_811ACDC(void); u16 sub_811AE44(void); u16 sub_811AF00(void); @@ -71,9 +73,12 @@ u16 sub_811B08C(void); u16 sub_811B0BC(void); u16 sub_811B0E8(void); u16 sub_811B0F8(void); +u16 sub_811B150(void); +u16 sub_811B1B4(void); u8 sub_811BA68(void); u8 sub_811BCC8(u8); void sub_811BDF0(u8 *); +void sub_811BF78(void); bool8 sub_811BF8C(void); bool8 sub_811BFA4(void); void sub_811C13C(void); @@ -526,7 +531,7 @@ static u16 sub_811AAAC(void) return 0; } -bool8 sub_811AB44(void) +bool32 sub_811AB44(void) { switch (sub_811BA68()) { @@ -537,3 +542,270 @@ bool8 sub_811AB44(void) } return FALSE; } + +#ifdef NONMATCHING +static u16 sub_811AB68(void) +{ + if (gMain.newKeys & A_BUTTON) + { + sub_811BF78(); + gUnknown_0203A118->unk_04 = 2; + gUnknown_0203A118->unk_0a = 0; + gUnknown_0203A118->unk_0b = 0; + gUnknown_0203A118->unk_0c = 0; + return 9; + } + else if (gMain.newKeys & B_BUTTON) + { // FIXME: See note below + return sub_811B150(); + } + else if (gMain.newKeys & START_BUTTON) + { // FIXME: See note below + return sub_811B1B4(); + } + else if (gMain.newKeys & DPAD_UP) + { + gUnknown_0203A118->unk_06--; + } + else if (gMain.newKeys & DPAD_LEFT) + { // FIXME: See note below + gUnknown_0203A118->unk_05--; + } + else if (gMain.newKeys & DPAD_DOWN) + { // FIXME: See note below + gUnknown_0203A118->unk_06++; + } + else if (gMain.newKeys & DPAD_RIGHT) + { // FIXME: See note below + gUnknown_0203A118->unk_05++; + } + else + { + return 0; + } + if (gUnknown_0203A118->unk_06 < 0) + { + gUnknown_0203A118->unk_06 = gUnknown_08597550[gUnknown_0203A118->unk_01].unk_02; + } + if (gUnknown_0203A118->unk_06 > gUnknown_08597550[gUnknown_0203A118->unk_01].unk_02) + { + gUnknown_0203A118->unk_06 = 0; + } + if (gUnknown_0203A118->unk_06 == gUnknown_08597550[gUnknown_0203A118->unk_01].unk_02) + { + if (gUnknown_0203A118->unk_05 > 2) + { + gUnknown_0203A118->unk_05 = 2; + } + gUnknown_0203A118->unk_04 = 1; + return 3; + } + /* + * FIXME: right, down, left, b, and start + * should be inserted here, but aren't + */ + if (gUnknown_0203A118->unk_05 < 0) + { + gUnknown_0203A118->unk_05 = gUnknown_08597550[gUnknown_0203A118->unk_01].unk_01 - 1; + } + if (gUnknown_0203A118->unk_05 >= gUnknown_08597550[gUnknown_0203A118->unk_01].unk_01) + { + gUnknown_0203A118->unk_05 = 0; + } + if (sub_811AB44() && gUnknown_0203A118->unk_05 == 1 && gUnknown_0203A118->unk_06 == 4) + { + gUnknown_0203A118->unk_05 = 0; + } + return 2; +} +#else +__attribute__((naked)) static u16 sub_811AB68(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tldr r0, =gMain\n" + "\tldrh r1, [r0, 0x2E]\n" + "\tmovs r0, 0x1\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _0811ABB8\n" + "\tbl sub_811BF78\n" + "\tldr r1, =gUnknown_0203A118\n" + "\tldr r3, [r1]\n" + "\tmovs r2, 0\n" + "\tmovs r0, 0x2\n" + "\tstrb r0, [r3, 0x4]\n" + "\tldr r0, [r1]\n" + "\tstrb r2, [r0, 0xA]\n" + "\tldr r0, [r1]\n" + "\tstrb r2, [r0, 0xB]\n" + "\tldr r0, [r1]\n" + "\tstrb r2, [r0, 0xC]\n" + "\tmovs r0, 0x9\n" + "\tb _0811ACCC_return_r0\n" + "\t.pool\n" + "_0811AB9C:\n" + "\tmovs r0, 0x20\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbne _0811AC68_dpad_left\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbne _0811AC58_dpad_down\n" + "\tmovs r0, 0x10\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbne _0811AC48_dpad_right\n" + "\tmovs r0, 0\n" + "\tb _0811ACCC_return_r0\n" + "_0811ABB8:\n" + "\tmovs r0, 0x2\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbne _0811AC78_b_button\n" + "\tmovs r0, 0x8\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbne _0811AC7E_start_button\n" + "\tmovs r0, 0x40\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _0811AB9C\n" + "\tldr r2, =gUnknown_0203A118\n" + "\tldr r1, [r2]\n" + "\tldrb r0, [r1, 0x6]\n" + "\tsubs r0, 0x1\n" + "_0811ABD8:\n" + "\tstrb r0, [r1, 0x6]\n" + "_0811ABDA:\n" + "\tadds r7, r2, 0\n" + "\tadds r4, r7, 0\n" + "\tldr r2, [r4]\n" + "\tmovs r0, 0x6\n" + "\tldrsb r0, [r2, r0]\n" + "\tldr r6, =gUnknown_08597550\n" + "\tcmp r0, 0\n" + "\tbge _0811ABF8\n" + "\tldrb r0, [r2, 0x1]\n" + "\tlsls r1, r0, 1\n" + "\tadds r1, r0\n" + "\tlsls r1, 3\n" + "\tadds r1, r6\n" + "\tldrb r0, [r1, 0x2]\n" + "\tstrb r0, [r2, 0x6]\n" + "_0811ABF8:\n" + "\tldr r3, [r4]\n" + "\tmovs r2, 0x6\n" + "\tldrsb r2, [r3, r2]\n" + "\tadds r5, r6, 0\n" + "\tldrb r1, [r3, 0x1]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r0, r5\n" + "\tldrb r0, [r0, 0x2]\n" + "\tcmp r2, r0\n" + "\tble _0811AC14\n" + "\tmovs r0, 0\n" + "\tstrb r0, [r3, 0x6]\n" + "_0811AC14:\n" + "\tldr r3, [r4]\n" + "\tmovs r2, 0x6\n" + "\tldrsb r2, [r3, r2]\n" + "\tldrb r1, [r3, 0x1]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r1, r0, r5\n" + "\tldrb r0, [r1, 0x2]\n" + "\tcmp r2, r0\n" + "\tbne _0811AC88\n" + "\tmovs r0, 0x5\n" + "\tldrsb r0, [r3, r0]\n" + "\tcmp r0, 0x2\n" + "\tble _0811AC36\n" + "\tmovs r0, 0x2\n" + "\tstrb r0, [r3, 0x5]\n" + "_0811AC36:\n" + "\tldr r1, [r4]\n" + "\tmovs r0, 0x1\n" + "\tstrb r0, [r1, 0x4]\n" + "\tmovs r0, 0x3\n" + "\tb _0811ACCC_return_r0\n" + "\t.pool\n" + "_0811AC48_dpad_right:\n" + "\tldr r2, =gUnknown_0203A118\n" + "\tldr r1, [r2]\n" + "\tldrb r0, [r1, 0x5]\n" + "\tadds r0, 0x1\n" + "\tstrb r0, [r1, 0x5]\n" + "\tb _0811ABDA\n" + "\t.pool\n" + "_0811AC58_dpad_down:\n" + "\tldr r2, =gUnknown_0203A118\n" + "\tldr r1, [r2]\n" + "\tldrb r0, [r1, 0x6]\n" + "\tadds r0, 0x1\n" + "\tb _0811ABD8\n" + "\t.pool\n" + "_0811AC68_dpad_left:\n" + "\tldr r2, =gUnknown_0203A118\n" + "\tldr r1, [r2]\n" + "\tldrb r0, [r1, 0x5]\n" + "\tsubs r0, 0x1\n" + "\tstrb r0, [r1, 0x5]\n" + "\tb _0811ABDA\n" + "\t.pool\n" + "_0811AC78_b_button:\n" + "\tbl sub_811B150\n" + "\tb _0811AC82\n" + "_0811AC7E_start_button:\n" + "\tbl sub_811B1B4\n" + "_0811AC82:\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tb _0811ACCC_return_r0\n" + "_0811AC88:\n" + "\tmovs r0, 0x5\n" + "\tldrsb r0, [r3, r0]\n" + "\tcmp r0, 0\n" + "\tbge _0811AC96\n" + "\tldrb r0, [r1, 0x1]\n" + "\tsubs r0, 0x1\n" + "\tstrb r0, [r3, 0x5]\n" + "_0811AC96:\n" + "\tldr r3, [r4]\n" + "\tmovs r2, 0x5\n" + "\tldrsb r2, [r3, r2]\n" + "\tldrb r1, [r3, 0x1]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r0, r6\n" + "\tldrb r0, [r0, 0x1]\n" + "\tcmp r2, r0\n" + "\tblt _0811ACB0\n" + "\tmovs r0, 0\n" + "\tstrb r0, [r3, 0x5]\n" + "_0811ACB0:\n" + "\tbl sub_811AB44\n" + "\tcmp r0, 0\n" + "\tbeq _0811ACCA\n" + "\tldr r2, [r7]\n" + "\tldr r0, [r2, 0x4]\n" + "\tldr r1, =0x00ffff00\n" + "\tands r0, r1\n" + "\tldr r1, =0x00040100\n" + "\tcmp r0, r1\n" + "\tbne _0811ACCA\n" + "\tmovs r0, 0\n" + "\tstrb r0, [r2, 0x5]\n" + "_0811ACCA:\n" + "\tmovs r0, 0x2\n" + "_0811ACCC_return_r0:\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1\n" + "\t.pool"); +} +#endif From 75b07292c99bdae7efe539bbe797aa4c381c880e Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Wed, 28 Mar 2018 19:20:20 +0200 Subject: [PATCH 013/174] Translate first functions of learn move --- asm/learn_move.s | 14 ++++-- graphics/pokedex/arrows.png | Bin 0 -> 303 bytes include/learn_move.h | 36 ++++++++++++++++ src/learn_move.c | 83 ++++++++++++++++++++++++++++++++++++ 4 files changed, 130 insertions(+), 3 deletions(-) create mode 100644 graphics/pokedex/arrows.png create mode 100644 include/learn_move.h create mode 100644 src/learn_move.c diff --git a/asm/learn_move.s b/asm/learn_move.s index a33bd11b65..1faff56373 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -5,6 +5,7 @@ .text +/* thumb_func_start sub_8160624 sub_8160624: @ 8160624 push {lr} @@ -14,7 +15,9 @@ sub_8160624: @ 8160624 pop {r0} bx r0 thumb_func_end sub_8160624 +*/ +/* thumb_func_start sub_8160638 sub_8160638: @ 8160638 push {lr} @@ -35,7 +38,9 @@ sub_8160638: @ 8160638 bx r0 .pool thumb_func_end sub_8160638 +*/ +/* thumb_func_start sub_8160664 sub_8160664: @ 8160664 push {r4,lr} @@ -60,7 +65,9 @@ _08160688: bx r0 .pool thumb_func_end sub_8160664 +*/ +/* thumb_func_start sub_81606A0 sub_81606A0: @ 81606A0 push {r4-r6,lr} @@ -75,7 +82,7 @@ sub_81606A0: @ 81606A0 str r0, [r6] ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] - adds r0, 0x44 + adds r0, 0x44 partymon movs r5, 0 strb r1, [r0] ldr r0, =sub_8160624 @@ -100,8 +107,8 @@ sub_81606A0: @ 81606A0 bl ListMenuInit ldr r1, [r6] movs r2, 0x89 - lsls r2, 1 - adds r1, r2 + lsls r2, 1 //0x112 + adds r1, r2 //partymon + 0x112 strb r0, [r1] movs r0, 0 movs r1, 0 @@ -114,6 +121,7 @@ sub_81606A0: @ 81606A0 bx r0 .pool thumb_func_end sub_81606A0 +*/ thumb_func_start sub_8160740 sub_8160740: @ 8160740 diff --git a/graphics/pokedex/arrows.png b/graphics/pokedex/arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..2abf39366e45e76afedc93ae41fc57b59253f68b GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^96+4F!VDxYwdwT(DT4r?5Lbr(K*;cnf#E6x!%?6h z4si4+Nb>*x|MI(%ZGfy@o-U3d5>sm@9OOEpz~jPxe%*bAo!kG{e__@+F>iaop4a9% zYFoRPZjh6E<)fx};BQNF1gB-k)C;Q@eT)?8owg`LNApLuRom{UwTu2G_zU}STYaoj zYrB`rw>NC#!ynPUv#Lwy&TKx^RN45{j-5B$VTY6MJ*mX|{=(B4^_XMWcJLHP-db_d zG^ZfYdwO|iL<1xHa^A;IJI~k&b_&noaNqm0=G1|2nw-)G4<3g4Nk5&f|9ppartyMon = gSpecialVar_0x8004; + + SetVBlankCallback(sub_8160624); + sub_81607EC(); + sub_81D2824(0); + + //pointer to ? + (&gUnknown_0203BC38)[0] = 0; + (&gUnknown_0203BC38)[2] = 0; + (&gUnknown_0203BC38)[4] = 0; + + sub_8161280(); + LoadSpriteSheet(&gUnknown_085CEBB0); + LoadSpritePalette(&gUnknown_085CEBB8); + sub_81610B8(); + + ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); + FillPalette(0, 0, 2); + SetMainCallback2(sub_816082C); +} From 990784a6d91a9b119ff974e3594a7bd5070549fc Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Wed, 28 Mar 2018 21:45:35 +0200 Subject: [PATCH 014/174] Improve comments --- src/learn_move.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/learn_move.c b/src/learn_move.c index 3a1ac72f45..36bf76eff9 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -14,7 +14,7 @@ extern void (*gFieldCallback)(void); extern struct LearnMoveStruct *gUnknown_0203BC34; -// Ew, just copied from poeruby... +// Ew, just copied from pokeruby... const u16 gDexArrows_Pal[] = INCBIN_U16("graphics/pokedex/arrows.gbapal"); const u8 gDexArrows_Gfx[] = INCBIN_U8("graphics/pokedex/arrows.4bpp"); const struct SpritePalette gUnknown_085CEBB8 = {gDexArrows_Pal, 5526}; @@ -50,6 +50,7 @@ void sub_8160664(u8 taskId) void sub_81606A0(void) //CB2_InitLearnMove { + //Less calls than pokeruby, is it normal ? ResetSpriteData(); FreeAllSpritePalettes(); ResetTasks(); @@ -57,17 +58,17 @@ void sub_81606A0(void) //CB2_InitLearnMove //LearnMoveStruct** - gUnknown_0203BC34 = AllocZeroed(0x118);//gUnknown_0203BC34 is a global pointer to LearnMoveStruct ? //r1 = &gSpecialVar_0x8004; //What is this global ? //u8* partyMon = gUnknown_0203BC34 + 0x44 //partyMon ? //*partyMon = r1; + gUnknown_0203BC34 = AllocZeroed(0x118);//gUnknown_0203BC34 is a global pointer to LearnMoveStruct ? gUnknown_0203BC34->partyMon = gSpecialVar_0x8004; SetVBlankCallback(sub_8160624); sub_81607EC(); sub_81D2824(0); - //pointer to ? + //gUnknown_0203BC38 ? (&gUnknown_0203BC38)[0] = 0; (&gUnknown_0203BC38)[2] = 0; (&gUnknown_0203BC38)[4] = 0; From cfacd23248ba56f5bca30895154625a06761ab45 Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Thu, 29 Mar 2018 11:56:10 +0200 Subject: [PATCH 015/174] Fix temporarily --- include/learn_move.h | 8 +++++++- src/learn_move.c | 18 +++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/include/learn_move.h b/include/learn_move.h index 951cd6cb0b..da03fe5ae8 100644 --- a/include/learn_move.h +++ b/include/learn_move.h @@ -31,6 +31,12 @@ struct LearnMoveStruct *gUnknown_0203BC34 = NULL; void sub_8160624(void); void sub_8160638(void); -const struct SpritePalette gUnknown_08402D88 = {gDexArrows_Pal, 5526}; +// Ew, just copied from pokeruby... +//const u16 gDexArrows_Pal[] = INCBIN_U16("graphics/pokedex/arrows.gbapal"); +//const u8 gDexArrows_Gfx[] = INCBIN_U8("graphics/pokedex/arrows.4bpp"); +//const struct SpritePalette gUnknown_085CEBB8 = {gDexArrows_Pal, 5526}; +//const struct SpriteSheet gUnknown_085CEBB0 = {gDexArrows_Gfx, sizeof(gDexArrows_Gfx), 5525}; + +void *gUnknown_0203BC38 = (void*)0x0203BC38; #endif //GUARD_LEAN_MOVE_H diff --git a/src/learn_move.c b/src/learn_move.c index 36bf76eff9..d75e0a4604 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -14,12 +14,6 @@ extern void (*gFieldCallback)(void); extern struct LearnMoveStruct *gUnknown_0203BC34; -// Ew, just copied from pokeruby... -const u16 gDexArrows_Pal[] = INCBIN_U16("graphics/pokedex/arrows.gbapal"); -const u8 gDexArrows_Gfx[] = INCBIN_U8("graphics/pokedex/arrows.4bpp"); -const struct SpritePalette gUnknown_085CEBB8 = {gDexArrows_Pal, 5526}; -const struct SpriteSheet gUnknown_085CEBB0 = {gDexArrows_Gfx, sizeof(gDexArrows_Gfx), 5525}; - static struct LearnMoveStruct *sLearnMoveStruct; static void sub_8160664(u8 taskId); void sub_81606A0(void); //CB2_InitLearnMove @@ -50,6 +44,12 @@ void sub_8160664(u8 taskId) void sub_81606A0(void) //CB2_InitLearnMove { + //FIXME + void (*sub_81607EC)(void) = (void*)0x081607EC; + void (*sub_81D2824)(void*) = (void*)0x081D2824; + void (*sub_81610B8)(void) = (void*)0x081610B8; + void (*sub_8161280)(void) = (void*)0x08161280; + //Less calls than pokeruby, is it normal ? ResetSpriteData(); FreeAllSpritePalettes(); @@ -74,11 +74,11 @@ void sub_81606A0(void) //CB2_InitLearnMove (&gUnknown_0203BC38)[4] = 0; sub_8161280(); - LoadSpriteSheet(&gUnknown_085CEBB0); - LoadSpritePalette(&gUnknown_085CEBB8); + LoadSpriteSheet(/*FIXME &gUnknown_085CEBB0*/(void*)0x085CEBB0); + LoadSpritePalette(/*FIXME &gUnknown_085CEBB8*/(void*)0x085CEBB8); sub_81610B8(); ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); FillPalette(0, 0, 2); - SetMainCallback2(sub_816082C); + SetMainCallback2(/*FIXME sub_816082C*/(void*)0x0816082C); } From 17b9f5d892ad34e4af3b407e2ee44a83506ee2f3 Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Thu, 29 Mar 2018 15:46:10 +0200 Subject: [PATCH 016/174] Fix compile error --- asm/learn_move.s | 4 ++-- include/learn_move.h | 6 +++--- ld_script.txt | 1 + src/learn_move.c | 16 +++++++++++++++- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/asm/learn_move.s b/asm/learn_move.s index 1faff56373..ab3c84ec23 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -82,7 +82,7 @@ sub_81606A0: @ 81606A0 str r0, [r6] ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] - adds r0, 0x44 partymon + adds r0, 0x44 movs r5, 0 strb r1, [r0] ldr r0, =sub_8160624 @@ -129,7 +129,7 @@ sub_8160740: @ 8160740 bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks - bl clear_scheduled_bg_copies_to_vram + bl clear_scheduled_bg_copies_to_vram // ldr r5, =gUnknown_0203BC34 movs r0, 0x8C lsls r0, 1 diff --git a/include/learn_move.h b/include/learn_move.h index da03fe5ae8..ed95b62060 100644 --- a/include/learn_move.h +++ b/include/learn_move.h @@ -1,5 +1,5 @@ -#ifndef GUARD_LEAN_MOVE_H -#define GUARD_LEAN_MOVE_H +#ifndef GUARD_LEARN_MOVE_H +#define GUARD_LEARN_MOVE_H struct LearnMoveStruct { @@ -39,4 +39,4 @@ void sub_8160638(void); void *gUnknown_0203BC38 = (void*)0x0203BC38; -#endif //GUARD_LEAN_MOVE_H +#endif //GUARD_LEARN_MOVE_H diff --git a/ld_script.txt b/ld_script.txt index 7ead2a863b..cbc58dc8df 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -210,6 +210,7 @@ SECTIONS { src/fldeff_sweetscent.o(.text); asm/battle_anim_815A0D4.o(.text); asm/learn_move.o(.text); + src/learn_move.o(.text); src/fldeff_softboiled.o(.text); src/decoration_inventory.o(.text); src/roamer.o(.text); diff --git a/src/learn_move.c b/src/learn_move.c index d75e0a4604..f837076249 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -17,6 +17,7 @@ extern struct LearnMoveStruct *gUnknown_0203BC34; static struct LearnMoveStruct *sLearnMoveStruct; static void sub_8160664(u8 taskId); void sub_81606A0(void); //CB2_InitLearnMove +void sub_8160740(void); void sub_8160624(void) //VBlankCB_LearnMove { @@ -56,7 +57,6 @@ void sub_81606A0(void) //CB2_InitLearnMove ResetTasks(); clear_scheduled_bg_copies_to_vram(); - //LearnMoveStruct** //r1 = &gSpecialVar_0x8004; //What is this global ? //u8* partyMon = gUnknown_0203BC34 + 0x44 //partyMon ? @@ -82,3 +82,17 @@ void sub_81606A0(void) //CB2_InitLearnMove FillPalette(0, 0, 2); SetMainCallback2(/*FIXME sub_816082C*/(void*)0x0816082C); } + +/* +void sub_8160740(void) +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + + gUnknown_0203BC34 = AllocZeroed(0x118);//gUnknown_0203BC34 is a global pointer to LearnMoveStruct ? + gUnknown_0203BC34->partyMon = gSpecialVar_0x8004; + gUnknown_0203BC34->unk2C6 = gSpecialVar_0x8005; +} +*/ From 6e919da4aad94338e5d8132c3808f122bf5b7c79 Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Thu, 29 Mar 2018 20:41:29 +0200 Subject: [PATCH 017/174] Change order in ld_script.txt --- ld_script.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ld_script.txt b/ld_script.txt index cbc58dc8df..464dc78413 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -209,8 +209,8 @@ SECTIONS { src/battle_controller_safari.o(.text); src/fldeff_sweetscent.o(.text); asm/battle_anim_815A0D4.o(.text); - asm/learn_move.o(.text); src/learn_move.o(.text); + asm/learn_move.o(.text); src/fldeff_softboiled.o(.text); src/decoration_inventory.o(.text); src/roamer.o(.text); From 09e29a5cf8695cf43fe8ac18004049b07a59ccc5 Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Sun, 1 Apr 2018 18:22:09 +0200 Subject: [PATCH 018/174] Fix three functions to have the right checksum --- asm/learn_move.s | 6 +- include/learn_move.h | 2 +- src/learn_move.c | 129 +++++++++++++++++++++++++------------------ 3 files changed, 78 insertions(+), 59 deletions(-) diff --git a/asm/learn_move.s b/asm/learn_move.s index ab3c84ec23..5fd507c2d9 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -67,7 +67,6 @@ _08160688: thumb_func_end sub_8160664 */ -/* thumb_func_start sub_81606A0 sub_81606A0: @ 81606A0 push {r4-r6,lr} @@ -121,7 +120,6 @@ sub_81606A0: @ 81606A0 bx r0 .pool thumb_func_end sub_81606A0 -*/ thumb_func_start sub_8160740 sub_8160740: @ 8160740 @@ -148,7 +146,7 @@ sub_8160740: @ 8160740 adds r0, 0x45 strb r1, [r0] ldr r0, =sub_8160624 - bl SetVBlankCallback + bl SetVBlankCallback // bl sub_81607EC ldr r4, =gUnknown_0203BC38 ldrb r0, [r4, 0x4] @@ -157,7 +155,7 @@ sub_8160740: @ 8160740 ldr r0, =gUnknown_085CEBB0 bl LoadSpriteSheet ldr r0, =gUnknown_085CEBB8 - bl LoadSpritePalette + bl LoadSpritePalette // bl sub_81610B8 ldr r0, =gMultiuseListMenuTemplate ldrh r1, [r4] diff --git a/include/learn_move.h b/include/learn_move.h index ed95b62060..7779e85a0f 100644 --- a/include/learn_move.h +++ b/include/learn_move.h @@ -37,6 +37,6 @@ void sub_8160638(void); //const struct SpritePalette gUnknown_085CEBB8 = {gDexArrows_Pal, 5526}; //const struct SpriteSheet gUnknown_085CEBB0 = {gDexArrows_Gfx, sizeof(gDexArrows_Gfx), 5525}; -void *gUnknown_0203BC38 = (void*)0x0203BC38; +u8 *gUnknown_0203BC38 = (void*)0x0203BC38; #endif //GUARD_LEARN_MOVE_H diff --git a/src/learn_move.c b/src/learn_move.c index f837076249..faa73a2d0b 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -30,7 +30,7 @@ void sub_8160638(void) //TeachMoveTutorMove { ScriptContext2_Enable(); CreateTask(sub_8160664, 0xA); - BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); } void sub_8160664(u8 taskId) @@ -43,56 +43,77 @@ void sub_8160664(u8 taskId) } } -void sub_81606A0(void) //CB2_InitLearnMove -{ - //FIXME - void (*sub_81607EC)(void) = (void*)0x081607EC; - void (*sub_81D2824)(void*) = (void*)0x081D2824; - void (*sub_81610B8)(void) = (void*)0x081610B8; - void (*sub_8161280)(void) = (void*)0x08161280; - - //Less calls than pokeruby, is it normal ? - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); - - //LearnMoveStruct** - //r1 = &gSpecialVar_0x8004; //What is this global ? - //u8* partyMon = gUnknown_0203BC34 + 0x44 //partyMon ? - //*partyMon = r1; - gUnknown_0203BC34 = AllocZeroed(0x118);//gUnknown_0203BC34 is a global pointer to LearnMoveStruct ? - gUnknown_0203BC34->partyMon = gSpecialVar_0x8004; - - SetVBlankCallback(sub_8160624); - sub_81607EC(); - sub_81D2824(0); - - //gUnknown_0203BC38 ? - (&gUnknown_0203BC38)[0] = 0; - (&gUnknown_0203BC38)[2] = 0; - (&gUnknown_0203BC38)[4] = 0; - - sub_8161280(); - LoadSpriteSheet(/*FIXME &gUnknown_085CEBB0*/(void*)0x085CEBB0); - LoadSpritePalette(/*FIXME &gUnknown_085CEBB8*/(void*)0x085CEBB8); - sub_81610B8(); - - ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); - FillPalette(0, 0, 2); - SetMainCallback2(/*FIXME sub_816082C*/(void*)0x0816082C); -} - -/* -void sub_8160740(void) -{ - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); - - gUnknown_0203BC34 = AllocZeroed(0x118);//gUnknown_0203BC34 is a global pointer to LearnMoveStruct ? - gUnknown_0203BC34->partyMon = gSpecialVar_0x8004; - gUnknown_0203BC34->unk2C6 = gSpecialVar_0x8005; -} -*/ +// void sub_81606A0(void) //CB2_InitLearnMove +// { +// //FIXME +// void (*sub_81607EC)(void) = (void*)0x081607EC; +// void (*sub_81D2824)(u16) = (void*)0x081D2824; +// void (*sub_81610B8)(void) = (void*)0x081610B8; +// void (*sub_8161280)(void) = (void*)0x08161280; +// +// //Less calls than pokeruby, is it normal ? +// ResetSpriteData(); +// FreeAllSpritePalettes(); +// ResetTasks(); +// clear_scheduled_bg_copies_to_vram(); +// +// //LearnMoveStruct** +// //r1 = &gSpecialVar_0x8004; //What is this global ? +// //u8* partyMon = gUnknown_0203BC34 + 0x44 //partyMon ? +// //*partyMon = r1; +// gUnknown_0203BC34 = AllocZeroed(0x118);//gUnknown_0203BC34 is a global pointer to LearnMoveStruct ? +// gUnknown_0203BC34->partyMon = gSpecialVar_0x8004; +// +// SetVBlankCallback(sub_8160624); +// sub_81607EC(); +// sub_81D2824(0); +// +// //gUnknown_0203BC38 ? +// (gUnknown_0203BC38)[0] = 0; +// (gUnknown_0203BC38)[2] = 0; +// (gUnknown_0203BC38)[4] = 0; +// +// sub_8161280(); +// LoadSpriteSheet(/*FIXME &gUnknown_085CEBB0*/(void*)0x085CEBB0); +// LoadSpritePalette(/*FIXME &gUnknown_085CEBB8*/(void*)0x085CEBB8); +// sub_81610B8(); +// +// ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); +// FillPalette(0, 0, 2); +// SetMainCallback2(/*FIXME sub_816082C*/(void*)0x0816082C); +// } +// +// void sub_8160740(void) +// { +// void (*sub_81607EC)(void) = (void*)0x081607EC; +// void (*sub_81D2824)(u16) = (void*)0x081D2824; +// void (*sub_81610B8)(void) = (void*)0x081610B8; +// void (*sub_8161280)(void) = (void*)0x08161280; +// +// u8 data; +// +// ResetSpriteData(); +// FreeAllSpritePalettes(); +// ResetTasks(); +// clear_scheduled_bg_copies_to_vram(); +// +// gUnknown_0203BC34 = AllocZeroed(0x118);//gUnknown_0203BC34 is a global pointer to LearnMoveStruct ? +// gUnknown_0203BC34->partyMon = gSpecialVar_0x8004; //gUnknown_0203BC34 + 68 +// gUnknown_0203BC34->unk2C6 = gSpecialVar_0x8005; //gUnknown_0203BC34 + 69 +// +// SetVBlankCallback(sub_8160624); +// sub_81607EC(); +// +// //gUnknown_0203BC38 ? +// sub_81D2824(*((u8*)&gUnknown_0203BC38 + 4)); +// sub_8161280(); +// +// LoadSpriteSheet(/*FIXME &gUnknown_085CEBB0*/(void*)0x085CEBB0); +// LoadSpritePalette(/*FIXME &gUnknown_085CEBB8*/(void*)0x085CEBB8); +// +// data = ListMenuInit(&gMultiuseListMenuTemplate, *gUnknown_0203BC38, *((u8*)gUnknown_0203BC38 + 2)); +// *(u8*)(gUnknown_0203BC34 + 274) = data; +// FillPalette(0, 0, 2); +// SetMainCallback2(/*FIXME sub_816082C*/(void*)0x0816082C); +// } +// */ From b2e8ee836d6334e525df3163d7b018b64f68ec95 Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Mon, 2 Apr 2018 20:06:40 +0200 Subject: [PATCH 019/174] sub_81607EC and sub_816082C --- asm/learn_move.s | 4 ++ include/learn_move.h | 9 +++- ld_script.txt | 1 + src/learn_move.c | 100 ++++++++++++++++++++++++++++++++----------- sym_ewram.txt | 11 ++--- 5 files changed, 90 insertions(+), 35 deletions(-) diff --git a/asm/learn_move.s b/asm/learn_move.s index 5fd507c2d9..4f0a6abb4b 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -178,6 +178,7 @@ sub_8160740: @ 8160740 .pool thumb_func_end sub_8160740 +/* thumb_func_start sub_81607EC sub_81607EC: @ 81607EC push {lr} @@ -204,7 +205,9 @@ sub_81607EC: @ 81607EC bx r0 .pool thumb_func_end sub_81607EC +*/ +/* thumb_func_start sub_816082C sub_816082C: @ 816082C push {lr} @@ -217,6 +220,7 @@ sub_816082C: @ 816082C pop {r0} bx r0 thumb_func_end sub_816082C +*/ thumb_func_start sub_816084C sub_816084C: @ 816084C diff --git a/include/learn_move.h b/include/learn_move.h index 7779e85a0f..6ab2ba6f48 100644 --- a/include/learn_move.h +++ b/include/learn_move.h @@ -1,6 +1,7 @@ #ifndef GUARD_LEARN_MOVE_H #define GUARD_LEARN_MOVE_H +//this struct is probably wrong struct LearnMoveStruct { u8 state; @@ -26,7 +27,9 @@ struct LearnMoveStruct u8 unk2C6; }; -struct LearnMoveStruct *gUnknown_0203BC34 = NULL; +//struct LearnMoveStruct *gUnknown_0203BC34 = NULL; + +//extern u8 *gUnknown_0203BC34; void sub_8160624(void); void sub_8160638(void); @@ -37,6 +40,8 @@ void sub_8160638(void); //const struct SpritePalette gUnknown_085CEBB8 = {gDexArrows_Pal, 5526}; //const struct SpriteSheet gUnknown_085CEBB0 = {gDexArrows_Gfx, sizeof(gDexArrows_Gfx), 5525}; -u8 *gUnknown_0203BC38 = (void*)0x0203BC38; +//u8 *gUnknown_0203BC38 = (void*)0x0203BC38; +//extern u8 gUnknown_0203BC38[8]; +//u8 gUnknown_0203BC38; #endif //GUARD_LEARN_MOVE_H diff --git a/ld_script.txt b/ld_script.txt index 464dc78413..ac1c80c22f 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -490,6 +490,7 @@ SECTIONS { src/battle_controller_safari.o(.rodata); data/battle_anim_815A0D4.o(.rodata); data/learn_move.o(.rodata); + src/learn_move.o(.rodata); src/roamer.o(.rodata); data/battle_tower.o(.rodata); src/use_pokeblock.o(.rodata); diff --git a/src/learn_move.c b/src/learn_move.c index faa73a2d0b..0f5063faeb 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -5,20 +5,34 @@ #include "sprite.h" #include "palette.h" #include "menu.h" +#include "menu_helpers.h" #include "list_menu.h" #include "malloc.h" #include "field_screen.h" #include "event_data.h" +#include "bg.h" +#include "gpu_regs.h" #include "learn_move.h" -extern void (*gFieldCallback)(void); -extern struct LearnMoveStruct *gUnknown_0203BC34; +EWRAM_DATA u8 *gUnknown_0203BC34 = 0; +EWRAM_DATA u8 gUnknown_0203BC38[8] = {0}; + +extern void (*gFieldCallback)(void); +extern const struct SpritePalette gUnknown_085CEBB8; +extern const struct SpriteSheet gUnknown_085CEBB0; +extern const struct BgTemplate gUnknown_085CEC28; +extern void sub_81D2824(u16); +//extern struct LearnMoveStruct *gUnknown_0203BC34; + +//static struct LearnMoveStruct *sLearnMoveStruct; -static struct LearnMoveStruct *sLearnMoveStruct; static void sub_8160664(u8 taskId); void sub_81606A0(void); //CB2_InitLearnMove void sub_8160740(void); +void sub_81607EC(void); +void sub_816082C(void); + void sub_8160624(void) //VBlankCB_LearnMove { LoadOam(); @@ -45,12 +59,9 @@ void sub_8160664(u8 taskId) // void sub_81606A0(void) //CB2_InitLearnMove // { -// //FIXME -// void (*sub_81607EC)(void) = (void*)0x081607EC; -// void (*sub_81D2824)(u16) = (void*)0x081D2824; -// void (*sub_81610B8)(void) = (void*)0x081610B8; -// void (*sub_8161280)(void) = (void*)0x08161280; -// +// //AGBPrint("test\n"); +// //AGBPrintFlush(); +// //NoCashGBAPrint("test\n"); // //Less calls than pokeruby, is it normal ? // ResetSpriteData(); // FreeAllSpritePalettes(); @@ -58,34 +69,46 @@ void sub_8160664(u8 taskId) // clear_scheduled_bg_copies_to_vram(); // // //LearnMoveStruct** -// //r1 = &gSpecialVar_0x8004; //What is this global ? -// //u8* partyMon = gUnknown_0203BC34 + 0x44 //partyMon ? -// //*partyMon = r1; // gUnknown_0203BC34 = AllocZeroed(0x118);//gUnknown_0203BC34 is a global pointer to LearnMoveStruct ? -// gUnknown_0203BC34->partyMon = gSpecialVar_0x8004; +// //gUnknown_0203BC34->movesToLearn[0] = gSpecialVar_0x8004; +// ((u8*)gUnknown_0203BC34)[68] = gSpecialVar_0x8004; // // SetVBlankCallback(sub_8160624); +// //SetVBlankCallback(/*FIXME sub_8160624*/ (void()(u16))0x081D2824); // sub_81607EC(); // sub_81D2824(0); // // //gUnknown_0203BC38 ? +// // weird instruction // (gUnknown_0203BC38)[0] = 0; // (gUnknown_0203BC38)[2] = 0; // (gUnknown_0203BC38)[4] = 0; // -// sub_8161280(); -// LoadSpriteSheet(/*FIXME &gUnknown_085CEBB0*/(void*)0x085CEBB0); -// LoadSpritePalette(/*FIXME &gUnknown_085CEBB8*/(void*)0x085CEBB8); -// sub_81610B8(); +// //FIXME +// //sub_8161280(); +// __asm__("bl sub_8161280"); // -// ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); +// //LoadSpriteSheet(/*FIXME &gUnknown_085CEBB0*/(void*)0x085CEBB0); +// //LoadSpritePalette(/*FIXME &gUnknown_085CEBB8*/(void*)0x085CEBB8); +// LoadSpriteSheet(&gUnknown_085CEBB0); +// LoadSpritePalette(&gUnknown_085CEBB8); +// //sub_81610B8(); +// //FIXME +// __asm__("bl sub_81610B8"); +// +// ((u8*)gUnknown_0203BC34)[274] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203BC38[0], gUnknown_0203BC38[2]); // FillPalette(0, 0, 2); -// SetMainCallback2(/*FIXME sub_816082C*/(void*)0x0816082C); +// //SetMainCallback2(sub_816082C/*(void*)0x0816082C()*/); +// //SetMainCallback2(sub_816082C/*(void*)0x0816082C()*/); +// //FIXME +// __asm__( +// "ldr r0, =sub_816082C", +// "bl SetMainCallback2" +// ); // } -// + // void sub_8160740(void) // { -// void (*sub_81607EC)(void) = (void*)0x081607EC; // void (*sub_81D2824)(u16) = (void*)0x081D2824; // void (*sub_81610B8)(void) = (void*)0x081610B8; // void (*sub_8161280)(void) = (void*)0x08161280; @@ -105,15 +128,42 @@ void sub_8160664(u8 taskId) // sub_81607EC(); // // //gUnknown_0203BC38 ? -// sub_81D2824(*((u8*)&gUnknown_0203BC38 + 4)); +// sub_81D2824(gUnknown_0203BC38[4]); // sub_8161280(); // -// LoadSpriteSheet(/*FIXME &gUnknown_085CEBB0*/(void*)0x085CEBB0); -// LoadSpritePalette(/*FIXME &gUnknown_085CEBB8*/(void*)0x085CEBB8); +// LoadSpriteSheet(&gUnknown_085CEBB0); +// LoadSpritePalette(&gUnknown_085CEBB8); +// //LoadSpriteSheet(/*FIXME &gUnknown_085CEBB0*/(void*)0x085CEBB0); +// //LoadSpritePalette(/*FIXME &gUnknown_085CEBB8*/(void*)0x085CEBB8); // // data = ListMenuInit(&gMultiuseListMenuTemplate, *gUnknown_0203BC38, *((u8*)gUnknown_0203BC38 + 2)); // *(u8*)(gUnknown_0203BC34 + 274) = data; // FillPalette(0, 0, 2); // SetMainCallback2(/*FIXME sub_816082C*/(void*)0x0816082C); // } -// */ + +void sub_81607EC(void) +{ + ResetVramOamAndBgCntRegs(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, &gUnknown_085CEC28, 2); + ResetAllBgsCoordinates(); + SetGpuReg(0, 0x1040); + ShowBg(0); + ShowBg(1); + SetGpuReg(0x50, 0); +} +void sub_816082C(void) +{ + //FIXME + //sub_8160868(); + //void(*sub_8160868)(void) = (void (*)(void))0x08160868; + //sub_8160868(); + __asm__("bl sub_8160868"); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); + +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 96862ccd55..b88df9b0f7 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -784,19 +784,14 @@ gUnknown_0203ABB8: @ 203ABB8 .space 0x4 .include "src/save.o" - + .space 0x4 /*unused var?*/ .include "src/mystery_event_script.o" -gUnknown_0203BC34: @ 203BC34 - .space 0x4 - -gUnknown_0203BC38: @ 203BC38 - .space 0x8 - + .include "src/learn_move.o" .include "src/decoration_inventory.o" - .include "src/roamer.o" + .include "src/roamer.o" gUnknown_0203BC88: @ 203BC88 .space 0x4 From 2f96282c7f56ae90bc62b2710c8430abd2b345f3 Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Tue, 3 Apr 2018 00:07:55 +0200 Subject: [PATCH 020/174] cleaner --- asm/learn_move.s | 10 ++- include/learn_move.h | 40 ----------- src/learn_move.c | 154 +++++++++++++++++-------------------------- 3 files changed, 69 insertions(+), 135 deletions(-) diff --git a/asm/learn_move.s b/asm/learn_move.s index 4f0a6abb4b..5500f5a587 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -67,6 +67,7 @@ _08160688: thumb_func_end sub_8160664 */ +/* thumb_func_start sub_81606A0 sub_81606A0: @ 81606A0 push {r4-r6,lr} @@ -120,14 +121,16 @@ sub_81606A0: @ 81606A0 bx r0 .pool thumb_func_end sub_81606A0 +*/ +/* thumb_func_start sub_8160740 sub_8160740: @ 8160740 push {r4,r5,lr} bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks - bl clear_scheduled_bg_copies_to_vram // + bl clear_scheduled_bg_copies_to_vram ldr r5, =gUnknown_0203BC34 movs r0, 0x8C lsls r0, 1 @@ -146,7 +149,7 @@ sub_8160740: @ 8160740 adds r0, 0x45 strb r1, [r0] ldr r0, =sub_8160624 - bl SetVBlankCallback // + bl SetVBlankCallback bl sub_81607EC ldr r4, =gUnknown_0203BC38 ldrb r0, [r4, 0x4] @@ -155,7 +158,7 @@ sub_8160740: @ 8160740 ldr r0, =gUnknown_085CEBB0 bl LoadSpriteSheet ldr r0, =gUnknown_085CEBB8 - bl LoadSpritePalette // + bl LoadSpritePalette bl sub_81610B8 ldr r0, =gMultiuseListMenuTemplate ldrh r1, [r4] @@ -177,6 +180,7 @@ sub_8160740: @ 8160740 bx r0 .pool thumb_func_end sub_8160740 +*/ /* thumb_func_start sub_81607EC diff --git a/include/learn_move.h b/include/learn_move.h index 6ab2ba6f48..034d689d42 100644 --- a/include/learn_move.h +++ b/include/learn_move.h @@ -1,47 +1,7 @@ #ifndef GUARD_LEARN_MOVE_H #define GUARD_LEARN_MOVE_H -//this struct is probably wrong -struct LearnMoveStruct -{ - u8 state; - u8 filler1; - u8 unk2; - u8 spriteIDs[20]; - u8 filler17[1]; - u8 unk18; - u8 unk19; - u8 numMenuChoices; - u8 menuSelection; - u8 unk1C; - bool8 unk1D; - u8 unk1E; - u8 filler1F; - /*0x020*/ u16 movesToLearn[20]; - u8 filler48[0x52-0x48]; - u8 moveNames[6][0x19]; - u8 fillerE8[0x2C3-0xE8]; - bool8 unk2C3; - bool8 showContestInfo; - /*0x2C5*/ u8 partyMon; - u8 unk2C6; -}; - -//struct LearnMoveStruct *gUnknown_0203BC34 = NULL; - -//extern u8 *gUnknown_0203BC34; - void sub_8160624(void); void sub_8160638(void); -// Ew, just copied from pokeruby... -//const u16 gDexArrows_Pal[] = INCBIN_U16("graphics/pokedex/arrows.gbapal"); -//const u8 gDexArrows_Gfx[] = INCBIN_U8("graphics/pokedex/arrows.4bpp"); -//const struct SpritePalette gUnknown_085CEBB8 = {gDexArrows_Pal, 5526}; -//const struct SpriteSheet gUnknown_085CEBB0 = {gDexArrows_Gfx, sizeof(gDexArrows_Gfx), 5525}; - -//u8 *gUnknown_0203BC38 = (void*)0x0203BC38; -//extern u8 gUnknown_0203BC38[8]; -//u8 gUnknown_0203BC38; - #endif //GUARD_LEARN_MOVE_H diff --git a/src/learn_move.c b/src/learn_move.c index 0f5063faeb..addae6a385 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -22,14 +22,15 @@ extern const struct SpritePalette gUnknown_085CEBB8; extern const struct SpriteSheet gUnknown_085CEBB0; extern const struct BgTemplate gUnknown_085CEC28; extern void sub_81D2824(u16); -//extern struct LearnMoveStruct *gUnknown_0203BC34; -//static struct LearnMoveStruct *sLearnMoveStruct; +void sub_8160868(void); +void sub_8161280(void); +void sub_81610B8(void); +void sub_816082C(void); static void sub_8160664(u8 taskId); void sub_81606A0(void); //CB2_InitLearnMove void sub_8160740(void); - void sub_81607EC(void); void sub_816082C(void); @@ -57,90 +58,63 @@ void sub_8160664(u8 taskId) } } -// void sub_81606A0(void) //CB2_InitLearnMove -// { -// //AGBPrint("test\n"); -// //AGBPrintFlush(); -// //NoCashGBAPrint("test\n"); -// //Less calls than pokeruby, is it normal ? -// ResetSpriteData(); -// FreeAllSpritePalettes(); -// ResetTasks(); -// clear_scheduled_bg_copies_to_vram(); -// -// //LearnMoveStruct** -// gUnknown_0203BC34 = AllocZeroed(0x118);//gUnknown_0203BC34 is a global pointer to LearnMoveStruct ? -// //gUnknown_0203BC34->movesToLearn[0] = gSpecialVar_0x8004; -// ((u8*)gUnknown_0203BC34)[68] = gSpecialVar_0x8004; -// -// SetVBlankCallback(sub_8160624); -// //SetVBlankCallback(/*FIXME sub_8160624*/ (void()(u16))0x081D2824); -// sub_81607EC(); -// sub_81D2824(0); -// -// //gUnknown_0203BC38 ? -// // weird instruction -// (gUnknown_0203BC38)[0] = 0; -// (gUnknown_0203BC38)[2] = 0; -// (gUnknown_0203BC38)[4] = 0; -// -// //FIXME -// //sub_8161280(); -// __asm__("bl sub_8161280"); -// -// //LoadSpriteSheet(/*FIXME &gUnknown_085CEBB0*/(void*)0x085CEBB0); -// //LoadSpritePalette(/*FIXME &gUnknown_085CEBB8*/(void*)0x085CEBB8); -// LoadSpriteSheet(&gUnknown_085CEBB0); -// LoadSpritePalette(&gUnknown_085CEBB8); -// //sub_81610B8(); -// //FIXME -// __asm__("bl sub_81610B8"); -// -// ((u8*)gUnknown_0203BC34)[274] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203BC38[0], gUnknown_0203BC38[2]); -// FillPalette(0, 0, 2); -// //SetMainCallback2(sub_816082C/*(void*)0x0816082C()*/); -// //SetMainCallback2(sub_816082C/*(void*)0x0816082C()*/); -// //FIXME -// __asm__( -// "ldr r0, =sub_816082C", -// "bl SetMainCallback2" -// ); -// } +// Doesn't match +void sub_81606A0(void) //CB2_InitLearnMove +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); -// void sub_8160740(void) -// { -// void (*sub_81D2824)(u16) = (void*)0x081D2824; -// void (*sub_81610B8)(void) = (void*)0x081610B8; -// void (*sub_8161280)(void) = (void*)0x08161280; -// -// u8 data; -// -// ResetSpriteData(); -// FreeAllSpritePalettes(); -// ResetTasks(); -// clear_scheduled_bg_copies_to_vram(); -// -// gUnknown_0203BC34 = AllocZeroed(0x118);//gUnknown_0203BC34 is a global pointer to LearnMoveStruct ? -// gUnknown_0203BC34->partyMon = gSpecialVar_0x8004; //gUnknown_0203BC34 + 68 -// gUnknown_0203BC34->unk2C6 = gSpecialVar_0x8005; //gUnknown_0203BC34 + 69 -// -// SetVBlankCallback(sub_8160624); -// sub_81607EC(); -// -// //gUnknown_0203BC38 ? -// sub_81D2824(gUnknown_0203BC38[4]); -// sub_8161280(); -// -// LoadSpriteSheet(&gUnknown_085CEBB0); -// LoadSpritePalette(&gUnknown_085CEBB8); -// //LoadSpriteSheet(/*FIXME &gUnknown_085CEBB0*/(void*)0x085CEBB0); -// //LoadSpritePalette(/*FIXME &gUnknown_085CEBB8*/(void*)0x085CEBB8); -// -// data = ListMenuInit(&gMultiuseListMenuTemplate, *gUnknown_0203BC38, *((u8*)gUnknown_0203BC38 + 2)); -// *(u8*)(gUnknown_0203BC34 + 274) = data; -// FillPalette(0, 0, 2); -// SetMainCallback2(/*FIXME sub_816082C*/(void*)0x0816082C); -// } + gUnknown_0203BC34 = AllocZeroed(0x118); //gUnknown_0203BC34 ? + gUnknown_0203BC34[68] = gSpecialVar_0x8004; + + SetVBlankCallback(sub_8160624); + sub_81607EC(); + sub_81D2824(0); + + //gUnknown_0203BC38 ? + gUnknown_0203BC38[0] = 0; + gUnknown_0203BC38[2] = 0; + gUnknown_0203BC38[4] = 0; + + sub_8161280(); + + LoadSpriteSheet(&gUnknown_085CEBB0); + LoadSpritePalette(&gUnknown_085CEBB8); + sub_81610B8(); + + gUnknown_0203BC34[274] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203BC38[0], gUnknown_0203BC38[2]); + FillPalette(0, 0, 2); + SetMainCallback2(sub_816082C); +} + +// Doesn't match +void sub_8160740(void) +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + + gUnknown_0203BC34 = AllocZeroed(0x118); //gUnknown_0203BC34 ? + gUnknown_0203BC34[68] = gSpecialVar_0x8004; + gUnknown_0203BC34[69] = gSpecialVar_0x8005; + + SetVBlankCallback(sub_8160624); + sub_81607EC(); + + //gUnknown_0203BC38 ? + sub_81D2824(gUnknown_0203BC38[4]); + sub_8161280(); + + LoadSpriteSheet(&gUnknown_085CEBB0); + LoadSpritePalette(&gUnknown_085CEBB8); + + gUnknown_0203BC34[274] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203BC38[0], gUnknown_0203BC38[2]); + FillPalette(0, 0, 2); + SetMainCallback2(sub_816082C); +} void sub_81607EC(void) { @@ -153,17 +127,13 @@ void sub_81607EC(void) ShowBg(1); SetGpuReg(0x50, 0); } + void sub_816082C(void) { - //FIXME - //sub_8160868(); - //void(*sub_8160868)(void) = (void (*)(void))0x08160868; - //sub_8160868(); - __asm__("bl sub_8160868"); + sub_8160868(); RunTasks(); AnimateSprites(); BuildOamBuffer(); do_scheduled_bg_tilemap_copies_to_vram(); UpdatePaletteFade(); - } From 4b1e30434d9c86964bf9735a392f4b3c2d7b1dcd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 1 May 2018 19:47:11 -0400 Subject: [PATCH 021/174] Through sub_80D787C --- asm/contest.s | 510 +++++------------------------- asm/contest_ai.s | 30 +- asm/contest_link_80F57C4.s | 90 +++--- asm/contest_link_80FC4F4.s | 26 +- asm/contest_link_81D9DE4.s | 16 +- asm/script_pokemon_util_80F87D8.s | 40 +-- data/graphics.s | 4 +- include/contest.h | 384 +++++++++++++++++++++- ld_script.txt | 1 + src/contest.c | 196 ++++++++++++ src/tv.c | 4 +- sym_ewram.txt | 39 +-- 12 files changed, 755 insertions(+), 585 deletions(-) create mode 100644 src/contest.c diff --git a/asm/contest.s b/asm/contest.s index 327a80d75e..85299a8f7b 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,352 +5,6 @@ .text - thumb_func_start TaskDummy1 -TaskDummy1: @ 80D7668 - bx lr - thumb_func_end TaskDummy1 - - thumb_func_start ResetLinkContestBoolean -ResetLinkContestBoolean: @ 80D766C - ldr r1, =gUnknown_02039F2A - movs r0, 0 - strb r0, [r1] - bx lr - .pool - thumb_func_end ResetLinkContestBoolean - - thumb_func_start sub_80D7678 -sub_80D7678: @ 80D7678 - push {r4,lr} - movs r0, 0 - movs r1, 0x40 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - ldr r4, =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - movs r1, 0xFE - lsls r1, 7 - movs r0, 0 - bl SetGpuRegBits - ldr r0, =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG0_Y - strh r1, [r0] - ldr r0, =gBattle_BG1_X - strh r1, [r0] - ldr r0, =gBattle_BG1_Y - strh r1, [r0] - ldr r0, =gBattle_BG2_X - strh r1, [r0] - ldr r0, =gBattle_BG2_Y - strh r1, [r0] - ldr r0, =gBattle_BG3_X - strh r1, [r0] - ldr r0, =gBattle_BG3_Y - strh r1, [r0] - ldr r0, =gBattle_WIN0H - strh r1, [r0] - ldr r0, =gBattle_WIN0V - strh r1, [r0] - ldr r0, =gBattle_WIN1H - strh r1, [r0] - ldr r0, =gBattle_WIN1V - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D7678 - - thumb_func_start LoadContestBgAfterMoveAnim -LoadContestBgAfterMoveAnim: @ 80D7724 - push {r4,r5,lr} - ldr r0, =gUnknown_08C17AB0 - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - ldr r0, =gUnknown_08C1850C - ldr r1, =0x06002000 - bl LZDecompressVram - ldr r1, =gUnknown_08C16FA8 - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_08C16E90 - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadCompressedPalette - bl sub_80D782C - movs r4, 0 - movs r5, 0xA0 -_080D775E: - ldr r0, =0x0201a004 - adds r0, r5, r0 - ldr r1, =gUnknown_02039F26 - adds r1, r4, r1 - ldrb r1, [r1] - adds r1, 0x5 - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - adds r5, 0x20 - adds r4, 0x1 - cmp r4, 0x3 - ble _080D775E - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end LoadContestBgAfterMoveAnim - - thumb_func_start sub_80D779C -sub_80D779C: @ 80D779C - push {r4,lr} - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_08587F34 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - movs r0, 0x3 - movs r1, 0x6 - movs r2, 0x1 - bl SetBgAttribute - movs r4, 0 -_080D77BA: - lsls r0, r4, 24 - lsrs r0, 24 - ldr r1, =gContestResources - ldr r1, [r1] - lsls r2, r4, 2 - adds r1, 0x24 - adds r1, r2 - ldr r1, [r1] - bl SetBgTilemapBuffer - adds r4, 0x1 - cmp r4, 0x3 - ble _080D77BA - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D779C - - thumb_func_start sub_80D77E4 -sub_80D77E4: @ 80D77E4 - push {lr} - ldr r0, =gUnknown_08587F44 - bl InitWindows - bl DeactivateAllTextPrinters - ldr r0, =gUnknown_02039F2A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D7818 - ldr r2, =gTextFlags - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _080D7822 - .pool -_080D7818: - ldr r0, =gTextFlags - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] -_080D7822: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D77E4 - - thumb_func_start sub_80D782C -sub_80D782C: @ 80D782C - push {r4,r5,lr} - ldr r0, =gUnknown_08587C30 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - bl FillPalette - movs r5, 0xA - movs r4, 0xFA - lsls r4, 16 -_080D7848: - lsrs r1, r4, 16 - ldr r0, =gPlttBufferUnfaded + 0x1E2 - movs r2, 0x2 - bl LoadPalette - movs r0, 0x80 - lsls r0, 9 - adds r4, r0 - adds r5, 0x1 - cmp r5, 0xD - ble _080D7848 - ldr r0, =0x00007e3f - movs r1, 0xF3 - movs r2, 0x2 - bl FillPalette - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D782C - - thumb_func_start sub_80D787C -sub_80D787C: @ 80D787C - push {r4-r7,lr} - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0] - movs r1, 0 - movs r2, 0x5C - bl memset - movs r5, 0 - movs r2, 0xFF -_080D7890: - ldr r0, [r4] - ldr r1, [r0] - adds r1, 0x2 - adds r1, r5 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - adds r5, 0x1 - cmp r5, 0x3 - ble _080D7890 - movs r4, 0 - ldr r6, =gContestResources - movs r5, 0x3 -_080D78AA: - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r0, r4, r0 - movs r1, 0 - movs r2, 0x1C - bl memset - adds r4, 0x1C - subs r5, 0x1 - cmp r5, 0 - bge _080D78AA - ldr r4, =gContestResources - movs r7, 0x4 - negs r7, r7 - movs r6, 0xFF - movs r3, 0 - movs r5, 0x3 -_080D78CC: - ldr r0, [r4] - ldr r1, [r0, 0x4] - adds r1, r3, r1 - ldrb r2, [r1, 0xB] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1, 0xB] - ldr r0, [r4] - ldr r1, [r0, 0x4] - adds r1, r3, r1 - ldrb r0, [r1, 0x13] - orrs r0, r6 - strb r0, [r1, 0x13] - ldr r0, [r4] - ldr r1, [r0, 0x4] - adds r1, r3, r1 - ldrb r0, [r1, 0x14] - orrs r0, r6 - strb r0, [r1, 0x14] - adds r3, 0x1C - subs r5, 0x1 - cmp r5, 0 - bge _080D78CC - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0, 0x8] - movs r1, 0 - movs r2, 0x14 - bl memset - ldr r0, [r4] - ldr r0, [r0, 0xC] - movs r1, 0 - movs r2, 0x44 - bl memset - ldr r2, [r4] - ldr r1, [r2, 0x10] - movs r0, 0 - str r0, [r1] - ldr r0, [r2, 0x14] - movs r1, 0 - movs r2, 0x10 - bl memset - ldr r0, =gUnknown_02039F2A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080D7938 - movs r0, 0 - bl sub_80DCE58 -_080D7938: - movs r5, 0 - adds r2, r4, 0 - movs r6, 0xFF - movs r3, 0 - ldr r4, =gUnknown_02039F26 -_080D7942: - ldr r0, [r2] - ldr r1, [r0, 0x4] - adds r1, r3, r1 - ldrb r0, [r1, 0x19] - orrs r0, r6 - strb r0, [r1, 0x19] - ldr r0, [r2] - ldr r1, [r0] - adds r1, 0x14 - adds r1, r5 - adds r0, r5, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r3, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080D7942 - bl sub_80DD590 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x1C] - movs r1, 0 - movs r2, 0x40 - bl memset - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D787C - thumb_func_start sub_80D7988 sub_80D7988: @ 80D7988 push {r4,r5,lr} @@ -634,7 +288,7 @@ _080D7C04: strb r0, [r1, 0x8] ldr r0, =sub_80D823C bl SetMainCallback2 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x2 ands r0, r1 @@ -683,7 +337,7 @@ sub_80D7CB4: @ 80D7CB4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -755,7 +409,7 @@ _080D7D3A: movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x2 ands r0, r1 @@ -917,14 +571,14 @@ _080D7E84: b _080D80AE .pool _080D7EC8: - ldr r0, =gUnknown_08C17AB0 + ldr r0, =gContestMiscGfx movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram b _080D80AE .pool _080D7ED8: - ldr r0, =gUnknown_08C1850C + ldr r0, =gContestAudienceGfx ldr r4, =0x06002000 adds r1, r4, 0 bl LZDecompressVram @@ -997,7 +651,7 @@ _080D7F7C: mov r1, sp adds r2, r6, 0 bl CpuSet - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex mov r9, r0 ldrb r0, [r0] adds r0, 0x5 @@ -1409,7 +1063,7 @@ sub_80D833C: @ 80D833C movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] bl sub_80DBCA8 lsls r0, 24 @@ -1474,7 +1128,7 @@ sub_80D8424: @ 80D8424 _080D843C: movs r0, 0x5 bl PlaySE - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] bl sub_80DBCA8 lsls r0, 24 @@ -1523,9 +1177,9 @@ sub_80D8490: @ 80D8490 ldr r0, =gBattle_BG2_Y strh r1, [r0] movs r6, 0 - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex mov r8, r0 - ldr r2, =gUnknown_02039E00 + 30 + ldr r2, =gContestMons + 30 mov r10, r2 ldr r7, =gContestResources _080D84B8: @@ -1639,12 +1293,12 @@ _080D856C: lsls r0, 24 asrs r0, 24 bl sub_80D880C - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r0, [r4] ldr r0, [r0] ldrb r1, [r0] lsls r1, 1 - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] lsls r0, 6 adds r1, r0 @@ -1678,8 +1332,8 @@ sub_80D8610: @ 80D8610 lsrs r7, r0, 24 movs r6, 0 ldr r3, =gMain - ldr r1, =gUnknown_02039E00 - ldr r0, =gUnknown_02039F25 + ldr r1, =gContestMons + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] lsls r0, 6 adds r1, 0x1E @@ -1746,7 +1400,7 @@ _080D868E: movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] bl sub_80DBCA8 lsls r0, 24 @@ -1811,12 +1465,12 @@ _080D8756: lsls r0, 24 asrs r0, 24 bl sub_80D880C - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r0, [r4] ldr r0, [r0] ldrb r1, [r0] lsls r1, 1 - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] lsls r0, 6 adds r1, r0 @@ -1858,12 +1512,12 @@ _080D87C4: lsls r0, 24 asrs r0, 24 bl sub_80D880C - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r0, [r4] ldr r0, [r0] ldrb r1, [r0] lsls r1, 1 - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] lsls r0, 6 adds r1, r0 @@ -1958,13 +1612,13 @@ sub_80D8894: @ 80D8894 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D890C - ldr r4, =gUnknown_02039F25 + ldr r4, =gContestPlayerMonIndex ldrb r0, [r4] bl sub_80DB8B8 ldr r1, =gContestResources @@ -2194,7 +1848,7 @@ sub_80D8A88: @ 80D8A88 ldr r0, =gRngValue ldr r0, [r0] str r0, [r1, 0x18] - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -2374,7 +2028,7 @@ _080D8C9C: ldr r0, [r4] ldr r2, [r0] ldrb r6, [r2, 0x11] - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r5, 0x1 adds r0, r5, 0 @@ -2513,7 +2167,7 @@ _080D8DD0: ldr r0, [r0] ldrb r0, [r0, 0x11] bl sub_80DE9DC - ldr r4, =gUnknown_02039E00 + ldr r4, =gContestMons ldr r0, [r5] ldr r0, [r0] ldrb r3, [r0, 0x11] @@ -2624,7 +2278,7 @@ _080D8EF2: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E00 + 2 + ldr r2, =gContestMons + 2 adds r1, r2 bl StringCopy mov r2, r9 @@ -3562,7 +3216,7 @@ _080D96D4: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E00 + 2 + ldr r2, =gContestMons + 2 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 @@ -3671,7 +3325,7 @@ _080D97DC: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E00 + 2 + ldr r2, =gContestMons + 2 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 @@ -3809,7 +3463,7 @@ _080D9904: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E00 + 2 + ldr r2, =gContestMons + 2 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 @@ -4010,7 +3664,7 @@ _080D9AD2: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E00 + 2 + ldr r2, =gContestMons + 2 adds r1, r2 bl StringCopy ldr r4, =gContestResources @@ -4381,7 +4035,7 @@ _080D9DD4: lsls r1, 20 lsrs r1, 29 lsls r1, 6 - ldr r4, =gUnknown_02039E00 + 2 + ldr r4, =gContestMons + 2 adds r1, r4 bl StringCopy ldr r0, =gStringVar1 @@ -4476,7 +4130,7 @@ _080D9EDC: bl sub_80DC9B4 ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E00 + 2 + ldr r2, =gContestMons + 2 adds r1, r2 bl StringCopy ldr r0, =gStringVar2 @@ -4626,7 +4280,7 @@ _080DA038: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E00 + 2 + ldr r2, =gContestMons + 2 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 @@ -4822,7 +4476,7 @@ _080DA1C0: beq _080DA248 b _080DA250 _080DA1C6: - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r6, 0x1 adds r0, r6, 0 @@ -5084,7 +4738,7 @@ sub_80DA3CC: @ 80DA3CC bne _080DA448 ldr r0, =gContestResources ldr r0, [r0] - ldr r5, =gUnknown_02039F25 + ldr r5, =gContestPlayerMonIndex ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 3 @@ -5096,7 +4750,7 @@ sub_80DA3CC: @ 80DA3CC ldr r0, =gStringVar1 ldrb r1, [r5] lsls r1, 6 - ldr r2, =gUnknown_02039E00 + 2 + ldr r2, =gContestMons + 2 adds r1, r2 bl StringCopy ldr r5, =gStringVar4 @@ -5344,7 +4998,7 @@ _080DA600: bge _080DA600 bl sub_80DBD18 bl sub_80DB89C - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -5352,7 +5006,7 @@ _080DA600: bne _080DA65C ldr r0, =gContestResources ldr r2, [r0] - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 3 @@ -5479,7 +5133,7 @@ sub_80DA740: @ 80DA740 ble _080DA794 movs r0, 0 strh r0, [r4, 0x8] - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r0, [r0] movs r1, 0x1 ands r1, r0 @@ -5608,13 +5262,13 @@ sub_80DA874: @ 80DA874 thumb_func_start sub_80DA884 sub_80DA884: @ 80DA884 push {lr} - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080DA898 - ldr r1, =gUnknown_02039F25 + ldr r1, =gContestPlayerMonIndex movs r0, 0x3 strb r0, [r1] _080DA898: @@ -5626,7 +5280,7 @@ _080DA898: thumb_func_start sub_80DA8A4 sub_80DA8A4: @ 80DA8A4 push {lr} - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldr r1, =gUnknown_02039F2B ldrb r0, [r0] ldrb r1, [r1] @@ -5655,7 +5309,7 @@ sub_80DA8C8: @ 80DA8C8 ldr r1, [r6] mov r0, sp bl StringCopy - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -5664,10 +5318,10 @@ sub_80DA8C8: @ 80DA8C8 mov r0, sp bl sub_80DF9D4 _080DA8F2: - ldr r5, =gUnknown_02039F25 + ldr r5, =gContestPlayerMonIndex ldrb r0, [r5] lsls r0, 6 - ldr r4, =gUnknown_02039E00 + 13 + ldr r4, =gContestMons + 13 adds r0, r4 mov r1, sp movs r2, 0x8 @@ -5689,8 +5343,8 @@ _080DA928: movs r1, 0xD9 _080DA930: strb r1, [r0, 0x8] - ldr r7, =gUnknown_02039E00 - ldr r6, =gUnknown_02039F25 + ldr r7, =gContestMons + ldr r6, =gContestPlayerMonIndex ldrb r0, [r6] lsls r0, 6 adds r1, r7, 0 @@ -5721,7 +5375,7 @@ _080DA930: bl GetMonData mov r0, sp bl StringGetEnd10 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -5934,8 +5588,8 @@ _080DAB36: ble _080DAB40 movs r4, 0xFF _080DAB40: - ldr r2, =gUnknown_02039E00 - ldr r1, =gUnknown_02039F25 + ldr r2, =gContestMons + ldr r1, =gContestPlayerMonIndex ldrb r0, [r1] lsls r0, 6 adds r0, r2 @@ -5989,7 +5643,7 @@ sub_80DAB8C: @ 80DAB8C lsls r0, 24 cmp r0, 0 beq _080DABC0 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -6079,7 +5733,7 @@ _080DAC50: bl __modsi3 lsls r0, 16 lsrs r0, 16 - ldr r1, =gUnknown_02039E00 + ldr r1, =gContestMons lsls r2, r5, 6 adds r2, r1 mov r1, sp @@ -6221,7 +5875,7 @@ _080DAD56: subs r0, r1 cmp r5, r0 bge _080DADF6 - ldr r3, =gUnknown_02039E00 + ldr r3, =gContestMons mov r8, r3 mov r6, r9 movs r0, 0x2 @@ -6451,7 +6105,7 @@ sub_80DAF1C: @ 80DAF1C add r0, sp, 0x4 bl StringCopy lsls r1, r5, 6 - ldr r0, =gUnknown_02039E00 + 13 + ldr r0, =gContestMons + 13 adds r1, r0 add r0, sp, 0x4 bl StringAppend @@ -6508,7 +6162,7 @@ sub_80DAFA0: @ 80DAFA0 lsls r1, 24 lsrs r1, 24 lsls r0, r4, 6 - ldr r2, =gUnknown_02039E00 + 2 + ldr r2, =gContestMons + 2 adds r0, r2 bl sub_80DAED4 ldr r0, =gUnknown_02039F26 @@ -6550,7 +6204,7 @@ _080DAFFC: .4byte _080DB050 .4byte _080DB06C _080DB010: - ldr r0, =gUnknown_02039E00 + ldr r0, =gContestMons lsls r2, 6 adds r1, r2, r0 adds r3, r1, 0 @@ -6562,7 +6216,7 @@ _080DB010: b _080DB07E .pool _080DB028: - ldr r0, =gUnknown_02039E00 + ldr r0, =gContestMons lsls r2, 6 adds r1, r2, r0 adds r3, r1, 0 @@ -6574,7 +6228,7 @@ _080DB028: b _080DB07E .pool _080DB040: - ldr r1, =gUnknown_02039E00 + ldr r1, =gContestMons lsls r2, 6 adds r3, r2, r1 adds r0, r3, 0 @@ -6582,7 +6236,7 @@ _080DB040: b _080DB05A .pool _080DB050: - ldr r1, =gUnknown_02039E00 + ldr r1, =gContestMons lsls r2, 6 adds r3, r2, r1 adds r0, r3, 0 @@ -6597,7 +6251,7 @@ _080DB05A: b _080DB080 .pool _080DB06C: - ldr r0, =gUnknown_02039E00 + ldr r0, =gContestMons lsls r2, 6 adds r1, r2, r0 adds r3, r1, 0 @@ -6734,7 +6388,7 @@ sub_80DB174: @ 80DB174 adds r0, r5, 0 bl sub_80DE84C adds r5, r0, 0 - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] cmp r4, r0 bne _080DB1B8 @@ -7632,7 +7286,7 @@ sub_80DB8B8: @ 80DB8B8 movs r0, 0 b _080DB90A _080DB8D0: - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] cmp r4, r0 beq _080DB8F4 @@ -7640,13 +7294,13 @@ _080DB8D0: bl sub_81562C4 bl sub_8156324 lsls r0, 24 - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons lsrs r0, 23 lsls r1, r4, 6 b _080DB902 .pool _080DB8F4: - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0] @@ -8415,7 +8069,7 @@ _080DBE90: ble _080DBE06 movs r6, 0 mov r9, r6 - ldr r2, =gUnknown_02039F20 + ldr r2, =gContestFinalStandings ldr r1, [sp, 0x6C] _080DBEA2: ldr r0, [r1] @@ -8442,7 +8096,7 @@ _080DBEA2: thumb_func_start sub_80DBED4 sub_80DBED4: @ 80DBED4 push {lr} - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -8450,8 +8104,8 @@ sub_80DBED4: @ 80DBED4 beq _080DBF0E ldr r0, =gSaveBlock2Ptr ldr r2, [r0] - ldr r1, =gUnknown_02039F20 - ldr r0, =gUnknown_02039F25 + ldr r1, =gContestFinalStandings + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -11173,7 +10827,7 @@ sub_80DD45C: @ 80DD45C lsrs r6, r1, 24 ldr r0, =gStringVar1 lsls r1, r4, 6 - ldr r2, =gUnknown_02039E00 + 2 + ldr r2, =gContestMons + 2 adds r1, r2 bl StringCopy ldr r0, =gStringVar2 @@ -13165,7 +12819,7 @@ _080DE4E2: b _080DE5B4 .pool _080DE52C: - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r0, [r0] ands r1, r0 cmp r1, 0 @@ -13594,7 +13248,7 @@ sub_80DE864: @ 80DE864 bl sub_80DE834 lsls r0, 16 lsrs r5, r0, 16 - ldr r1, =gUnknown_02039E00 + ldr r1, =gContestMons lsls r0, r7, 6 adds r0, r1 ldrh r0, [r0] @@ -13675,7 +13329,7 @@ _080DE920: lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x1B] - ldr r5, =gUnknown_02039E00 + ldr r5, =gContestMons lsls r4, 6 adds r0, r4, r5 ldrh r0, [r0] @@ -13767,7 +13421,7 @@ sub_80DE9DC: @ 80DE9DC ldr r0, [r6] ldr r0, [r0, 0x18] strb r4, [r0, 0x5] - ldr r5, =gUnknown_02039E00 + ldr r5, =gContestMons lsls r4, 6 adds r0, r4, r5 ldrh r0, [r0] @@ -14057,7 +13711,7 @@ sub_80DEC30: @ 80DEC30 bl AddTextPrinter b _080DECA4 _080DEC80: - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 @@ -14236,7 +13890,7 @@ sub_80DEDA8: @ 80DEDA8 lsrs r0, 24 mov r8, r0 movs r5, 0 - ldr r1, =gUnknown_02039F20 + ldr r1, =gContestFinalStandings ldrb r0, [r1] cmp r0, 0 beq _080DEDE6 @@ -14252,7 +13906,7 @@ _080DEDE6: ldr r0, [sp] cmp r0, 0xFF bne _080DEE00 - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] cmp r5, r0 beq _080DEE00 @@ -14316,7 +13970,7 @@ _080DEE54: ldr r6, =0x00002e90 adds r2, r0, r6 adds r2, r7 - ldr r4, =gUnknown_02039E00 + ldr r4, =gContestMons lsls r5, 6 adds r1, r4, 0 adds r1, 0x38 @@ -14351,7 +14005,7 @@ _080DEE54: adds r5, r4 adds r1, r5, 0 bl StringCopy - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -14404,7 +14058,7 @@ _080DEF34: .pool _080DEF50: ldr r6, =gUnknown_02039F3C - ldr r4, =gUnknown_02039E00 + ldr r4, =gContestMons lsls r5, 6 adds r0, r4, 0 adds r0, 0x38 @@ -14820,7 +14474,7 @@ sub_80DF250: @ 80DF250 mov r7, sp adds r7, 0x2 str r7, [sp, 0x24] - ldr r5, =gUnknown_02039F20 + ldr r5, =gContestFinalStandings movs r2, 0 movs r3, 0x80 lsls r3, 17 @@ -14921,7 +14575,7 @@ _080DF322: _080DF336: cmp r5, 0x4 bne _080DF354 - ldr r1, =gUnknown_02039F20 + ldr r1, =gContestFinalStandings adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 @@ -15156,8 +14810,8 @@ sub_80DF4F8: @ 80DF4F8 mov r5, r8 push {r5-r7} sub sp, 0xC - ldr r1, =gUnknown_02039F20 - ldr r0, =gUnknown_02039F25 + ldr r1, =gContestFinalStandings + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] diff --git a/asm/contest_ai.s b/asm/contest_ai.s index 3438107eb1..217044e9fc 100644 --- a/asm/contest_ai.s +++ b/asm/contest_ai.s @@ -39,7 +39,7 @@ _081562DE: strb r1, [r0] ldr r0, [r2] ldr r2, [r0, 0xC] - ldr r1, =gUnknown_02039E00 + ldr r1, =gContestMons adds r0, r2, 0 adds r0, 0x41 ldrb r0, [r0] @@ -144,7 +144,7 @@ sub_81563B0: @ 81563B0 beq _081564A0 adds r7, r5, 0 ldr r6, =gAIScriptPtr - ldr r0, =gUnknown_02039E00 + 30 + ldr r0, =gContestMons + 30 mov r8, r0 _081563CC: ldr r0, [r7] @@ -1436,7 +1436,7 @@ _08156D9C: thumb_func_start sub_8156DA0 sub_8156DA0: @ 8156DA0 push {r4,lr} - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r4, =gContestResources ldr r0, [r4] ldr r0, [r0, 0xC] @@ -1615,7 +1615,7 @@ _08156EFC: thumb_func_start sub_8156F04 sub_8156F04: @ 8156F04 - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r0, =gContestResources ldr r0, [r0] ldr r3, [r0, 0xC] @@ -1714,7 +1714,7 @@ _08156FC8: thumb_func_start sub_8156FCC sub_8156FCC: @ 8156FCC - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r0, =gContestResources ldr r0, [r0] ldr r3, [r0, 0xC] @@ -1818,7 +1818,7 @@ _0815709C: thumb_func_start sub_81570A0 sub_81570A0: @ 81570A0 push {r4-r7,lr} - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r5, =gContestResources ldr r0, [r5] ldr r1, [r0, 0xC] @@ -1923,7 +1923,7 @@ _0815716C: thumb_func_start sub_8157174 sub_8157174: @ 8157174 push {r4-r7,lr} - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r5, =gContestResources ldr r0, [r5] ldr r1, [r0, 0xC] @@ -2028,7 +2028,7 @@ _08157240: thumb_func_start sub_8157248 sub_8157248: @ 8157248 push {r4,lr} - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r0, =gContestResources ldr r0, [r0] ldr r4, [r0, 0xC] @@ -2208,7 +2208,7 @@ _081573B0: thumb_func_start sub_81573B4 sub_81573B4: @ 81573B4 push {r4,lr} - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r0, =gContestResources ldr r0, [r0] ldr r4, [r0, 0xC] @@ -2388,7 +2388,7 @@ _0815751C: thumb_func_start sub_8157520 sub_8157520: @ 8157520 push {r4,r5,lr} - ldr r3, =gUnknown_02039E00 + ldr r3, =gContestMons ldr r5, =gContestResources ldr r4, [r5] ldr r1, [r4, 0xC] @@ -2575,7 +2575,7 @@ _08157684: sub_8157688: @ 8157688 push {r4-r6,lr} movs r3, 0 - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] @@ -2711,7 +2711,7 @@ _08157788: sub_8157790: @ 8157790 push {r4-r6,lr} movs r3, 0 - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r0, =gContestResources ldr r0, [r0] ldr r0, [r0, 0xC] @@ -2846,7 +2846,7 @@ _08157890: sub_8157898: @ 8157898 push {r4-r6,lr} movs r5, 0 - ldr r3, =gUnknown_02039E00 + ldr r3, =gContestMons ldr r6, =gContestResources ldr r4, [r6] ldr r1, [r4, 0xC] @@ -5030,7 +5030,7 @@ sub_8158948: @ 8158948 push {r4-r6,lr} movs r5, 0 movs r4, 0 - ldr r6, =gUnknown_02039E00 + 30 + ldr r6, =gContestMons + 30 _08158950: lsls r1, r4, 1 ldr r0, =gContestResources @@ -5156,7 +5156,7 @@ sub_8158A34: @ 8158A34 lsls r0, 8 orrs r5, r0 movs r4, 0 - ldr r0, =gUnknown_02039E00 + ldr r0, =gContestMons mov r12, r0 ldr r2, =gContestResources ldr r0, [r2] diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s index 450a235d5b..88629fb832 100644 --- a/asm/contest_link_80F57C4.s +++ b/asm/contest_link_80F57C4.s @@ -276,10 +276,10 @@ sub_80F5A74: @ 80F5A74 lsrs r0, 24 adds r5, r0, 0 lsls r1, r5, 6 - ldr r0, =gUnknown_02039E00 + ldr r0, =gContestMons adds r7, r1, r0 ldr r6, =gDisplayedStringBattle - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] cmp r5, r0 bne _080F5A96 @@ -398,7 +398,7 @@ sub_80F5B00: @ 80F5B00 movs r1, 0x14 bl CreateTask bl sub_80F7880 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x2 ands r0, r1 @@ -503,7 +503,7 @@ sub_80F5CE4: @ 80F5CE4 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r3, =gUnknown_02039F2A + ldr r3, =gIsLinkContest ldrb r1, [r3] movs r0, 0x1 ands r0, r1 @@ -535,8 +535,8 @@ _080F5D20: b _080F5E2E _080F5D2A: bl sub_80DBED4 - ldr r1, =gUnknown_02039F20 - ldr r0, =gUnknown_02039F25 + ldr r1, =gContestFinalStandings + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -648,7 +648,7 @@ _080F5E2E: lsls r0, 3 adds r4, r0, r1 strh r2, [r4, 0x8] - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r5, 0x1 adds r0, r5, 0 @@ -663,8 +663,8 @@ _080F5E2E: _080F5E78: movs r0, 0x24 bl IncrementGameStat - ldr r1, =gUnknown_02039F20 - ldr r0, =gUnknown_02039F25 + ldr r1, =gContestFinalStandings + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -1160,7 +1160,7 @@ _080F6298: adds r1, r0 lsls r1, 3 adds r1, r7 - ldr r0, =gUnknown_02039F20 + ldr r0, =gContestFinalStandings adds r0, r4, r0 ldrb r0, [r0] strh r0, [r1, 0x8] @@ -1201,7 +1201,7 @@ _080F62F2: adds r0, 0x1 strh r0, [r4, 0x8] movs r4, 0 - ldr r1, =gUnknown_02039F20 + ldr r1, =gContestFinalStandings ldrb r0, [r1] cmp r0, 0 beq _080F631C @@ -1236,10 +1236,10 @@ _080F6334: movs r0, 0 strh r0, [r2, 0xA] movs r4, 0 - ldr r1, =gUnknown_02039F20 + ldr r1, =gContestFinalStandings ldrb r0, [r1] ldr r7, =gStringVar1 - ldr r2, =gUnknown_02039E00 + 13 + ldr r2, =gContestMons + 13 mov r8, r2 cmp r0, 0 beq _080F636E @@ -1355,12 +1355,12 @@ _080F6454: adds r0, r3, 0 strh r0, [r1] movs r2, 0 - ldr r1, =gUnknown_02039F20 + ldr r1, =gContestFinalStandings ldrb r0, [r1] lsls r4, r7, 2 mov r10, r4 - ldr r3, =gUnknown_02039E00 - ldr r4, =gUnknown_02039F25 + ldr r3, =gContestMons + ldr r4, =gContestPlayerMonIndex mov r9, r4 ldr r4, =gMonFrontPicTable mov r12, r4 @@ -1623,14 +1623,14 @@ sub_80F66B4: @ 80F66B4 ands r0, r1 cmp r0, 0 beq _080F6702 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 lsls r6, r7, 2 cmp r0, 0 bne _080F66F2 - ldr r5, =gUnknown_02039E00 + ldr r5, =gContestMons movs r4, 0x3 _080F66DA: ldrh r0, [r5] @@ -1664,7 +1664,7 @@ sub_80F671C: @ 80F671C push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -1710,7 +1710,7 @@ sub_80F677C: @ 80F677C ldrb r0, [r0] cmp r0, 0 bne _080F67AC - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x2 ands r0, r1 @@ -1739,14 +1739,14 @@ task_repel: @ 80F67C4 sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080F67E6 - ldr r1, =gUnknown_02039F20 - ldr r0, =gUnknown_02039F25 + ldr r1, =gContestFinalStandings + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -1980,7 +1980,7 @@ sub_80F69B8: @ 80F69B8 lsrs r5, r2, 24 lsls r3, 24 lsrs r6, r3, 24 - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex movs r2, 0 ldrb r0, [r0] cmp r4, r0 @@ -2059,7 +2059,7 @@ sub_80F6A64: @ 80F6A64 lsls r1, 24 lsrs r6, r1, 24 movs r5, 0 - ldr r4, =gUnknown_02039E00 + ldr r4, =gContestMons _080F6A74: ldrh r0, [r4] lsls r1, r5, 24 @@ -2088,7 +2088,7 @@ sub_80F6A9C: @ 80F6A9C movs r5, 0xA0 lsls r5, 16 _080F6AA6: - ldr r1, =gUnknown_02039E00 + ldr r1, =gContestMons lsls r0, r4, 6 adds r0, r1 ldrh r0, [r0] @@ -2119,7 +2119,7 @@ _080F6AA6: thumb_func_start sub_80F6AE8 sub_80F6AE8: @ 80F6AE8 push {r4,lr} - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x2 ands r0, r1 @@ -2955,7 +2955,7 @@ sub_80F71C8: @ 80F71C8 sub sp, 0xC movs r5, 0x5 movs r4, 0x1 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] adds r0, r4, 0 ands r0, r1 @@ -3322,7 +3322,7 @@ sub_80F74BC: @ 80F74BC lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r1, =gUnknown_02039F20 + ldr r1, =gContestFinalStandings ldrb r0, [r1] ldr r6, =gUnknown_0203A034 cmp r0, 0 @@ -3729,7 +3729,7 @@ sub_80F77E0: @ 80F77E0 adds r1, r2 strh r4, [r1, 0x8] strh r5, [r1, 0xA] - ldr r0, =gUnknown_02039E00 + ldr r0, =gContestMons lsls r4, 6 adds r4, r0 ldrh r0, [r4] @@ -3765,7 +3765,7 @@ sub_80F7824: @ 80F7824 strh r0, [r4, 0x1C] ldrh r0, [r4, 0xC] ldrb r2, [r4, 0x1E] - ldr r1, =gUnknown_02039E00 + ldr r1, =gContestMons lsls r3, r5, 6 adds r1, 0x38 adds r3, r1 @@ -3987,7 +3987,7 @@ _080F79CC: negs r0, r0 _080F7A02: strb r0, [r1, 0x12] - ldr r0, =gUnknown_02039F20 + ldr r0, =gContestFinalStandings add r0, r8 ldrb r0, [r0] cmp r0, 0 @@ -4721,8 +4721,8 @@ _080F7FEE: sub_80F7FFC: @ 80F7FFC push {r4-r7,lr} sub sp, 0x4 - ldr r1, =gUnknown_02039F20 - ldr r0, =gUnknown_02039F25 + ldr r1, =gContestFinalStandings + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -4994,7 +4994,7 @@ sub_80F8264: @ 80F8264 ldr r0, =gSpecialVar_0x8006 ldrh r1, [r0] lsls r1, 6 - ldr r0, =gUnknown_02039E00 + 13 + ldr r0, =gContestMons + 13 adds r1, r0 adds r0, r4, 0 bl StringCopy @@ -5013,7 +5013,7 @@ sub_80F8290: @ 80F8290 ldr r1, =gSpecialVar_0x8006 ldrh r1, [r1] lsls r1, 6 - ldr r2, =gUnknown_02039E00 + 2 + ldr r2, =gContestMons + 2 adds r1, r2 bl StringCopy pop {r0} @@ -5075,7 +5075,7 @@ sub_80F82FC: @ 80F82FC sub_80F831C: @ 80F831C push {lr} movs r1, 0 - ldr r2, =gUnknown_02039F20 + ldr r2, =gContestFinalStandings ldrb r0, [r2] ldr r3, =gSpecialVar_0x8005 cmp r0, 0 @@ -5101,10 +5101,10 @@ _080F833C: sub_80F834C: @ 80F834C push {r4,lr} movs r1, 0 - ldr r2, =gUnknown_02039F20 + ldr r2, =gContestFinalStandings ldrb r0, [r2] ldr r4, =gStringVar3 - ldr r3, =gUnknown_02039E00 + 13 + ldr r3, =gContestMons + 13 cmp r0, 0 beq _080F836E _080F835C: @@ -5134,10 +5134,10 @@ _080F836E: sub_80F8390: @ 80F8390 push {r4,lr} movs r1, 0 - ldr r2, =gUnknown_02039F20 + ldr r2, =gContestFinalStandings ldrb r0, [r2] ldr r4, =gStringVar1 - ldr r3, =gUnknown_02039E00 + 2 + ldr r3, =gContestMons + 2 cmp r0, 0 beq _080F83B2 _080F83A0: @@ -5216,7 +5216,7 @@ sub_80F840C: @ 80F840C thumb_func_start sub_80F8438 sub_80F8438: @ 80F8438 ldr r2, =gSpecialVar_0x8004 - ldr r1, =gUnknown_02039E00 + ldr r1, =gContestMons ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] lsls r0, 6 @@ -5272,7 +5272,7 @@ sub_80F8484: @ 80F8484 thumb_func_start sub_80F84B0 sub_80F84B0: @ 80F84B0 ldr r0, =gSpecialVar_0x8004 - ldr r1, =gUnknown_02039F25 + ldr r1, =gContestPlayerMonIndex ldrb r1, [r1] strh r1, [r0] bx lr @@ -5314,7 +5314,7 @@ sub_80F8508: @ 80F8508 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x4 ands r0, r1 @@ -5578,7 +5578,7 @@ sub_80F8714: @ 80F8714 b _080F877E .pool _080F8748: - ldr r5, =gUnknown_02039E00 + 2 + ldr r5, =gContestMons + 2 movs r4, 0x3 _080F874C: adds r0, r5, 0 diff --git a/asm/contest_link_80FC4F4.s b/asm/contest_link_80FC4F4.s index 621e260384..3ba383f0bd 100644 --- a/asm/contest_link_80FC4F4.s +++ b/asm/contest_link_80FC4F4.s @@ -139,12 +139,12 @@ sub_80FC5DC: @ 80FC5DC cmp r0, 0 beq _080FC650 bl GetMultiplayerId - ldr r1, =gUnknown_02039F25 + ldr r1, =gContestPlayerMonIndex strb r0, [r1] bl GetLinkPlayerCount ldr r4, =gUnknown_02039F30 strb r0, [r4] - ldr r1, =gUnknown_02039F2A + ldr r1, =gIsLinkContest movs r0, 0x1 strb r0, [r1] ldr r0, =gWirelessCommType @@ -182,7 +182,7 @@ _080FC63A: ldrb r6, [r6] cmp r3, r6 bge _080FC64A - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 @@ -201,7 +201,7 @@ _080FC650: sub_80FC670: @ 80FC670 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x4 ands r0, r1 @@ -285,10 +285,10 @@ _080FC6FE: cmp r0, 0 beq _080FC7F4 ldr r0, =gBlockSendBuffer - ldr r1, =gUnknown_02039F25 + ldr r1, =gContestPlayerMonIndex ldrb r1, [r1] lsls r1, 6 - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons adds r1, r2 movs r2, 0x40 bl memcpy @@ -298,10 +298,10 @@ _080FC6FE: .pool _080FC738: ldr r0, =gBlockSendBuffer - ldr r1, =gUnknown_02039F25 + ldr r1, =gContestPlayerMonIndex ldrb r1, [r1] lsls r1, 6 - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons adds r1, r2 movs r2, 0x40 bl memcpy @@ -321,7 +321,7 @@ _080FC758: ldr r6, =gLinkPlayers _080FC770: lsls r4, r5, 6 - ldr r0, =gUnknown_02039E00 + ldr r0, =gContestMons adds r4, r0 lsls r1, r5, 8 ldr r0, =gBlockRecvBuffer @@ -603,7 +603,7 @@ _080FC9C4: lsls r0, 24 cmp r0, 0 beq _080FC9F0 - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex movs r1, 0x1 bl sub_80FC4F4 cmp r0, 0x1 @@ -659,7 +659,7 @@ _080FCA30: beq _080FCAB2 ldr r0, =gContestResources ldr r2, [r0] - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] lsls r1, r0, 3 subs r1, r0 @@ -860,7 +860,7 @@ _080FCC08: lsls r0, 24 cmp r0, 0 beq _080FCC82 - ldr r0, =gUnknown_02039F20 + ldr r0, =gContestFinalStandings movs r1, 0x4 _080FCC16: bl sub_80FC4F4 @@ -881,7 +881,7 @@ _080FCC38: lsls r0, 24 cmp r0, 0 beq _080FCC82 - ldr r0, =gUnknown_02039F20 + ldr r0, =gContestFinalStandings ldr r1, =gUnknown_02039F2B ldrb r1, [r1] lsls r1, 8 diff --git a/asm/contest_link_81D9DE4.s b/asm/contest_link_81D9DE4.s index 12eb159f71..4f392587a4 100644 --- a/asm/contest_link_81D9DE4.s +++ b/asm/contest_link_81D9DE4.s @@ -88,8 +88,8 @@ _081D9EA4: _081D9EB4: bl GetMonData strb r0, [r4] - ldr r5, =gUnknown_02039E00 - ldr r4, =gUnknown_02039F25 + ldr r5, =gContestMons + ldr r4, =gContestPlayerMonIndex ldrb r0, [r4] lsls r0, 6 adds r0, r5 @@ -266,7 +266,7 @@ _081DA02A: lsls r0, 24 cmp r0, 0 bne _081DA0B8 - ldr r0, =gUnknown_02039E00 + ldr r0, =gContestMons adds r1, r0, 0 adds r1, 0x2C ldrb r2, [r1] @@ -438,10 +438,10 @@ _081DA1A4: lsls r0, 24 cmp r0, 0 beq _081DA224 - ldr r0, =gUnknown_02039F25 + ldr r0, =gContestPlayerMonIndex ldrb r0, [r0] lsls r0, 6 - ldr r1, =gUnknown_02039E00 + ldr r1, =gContestMons adds r0, r1 movs r1, 0x40 bl sub_80FC4F4 @@ -466,7 +466,7 @@ _081DA1D4: ldr r6, =gLinkPlayers _081DA1EC: lsls r4, r5, 6 - ldr r0, =gUnknown_02039E00 + ldr r0, =gContestMons adds r4, r0 lsls r1, r5, 8 ldr r0, =gBlockRecvBuffer @@ -823,7 +823,7 @@ _081DA4CC: ldr r0, =gUnknown_02039F30 ldrb r2, [r0] lsls r0, r2, 6 - ldr r1, =gUnknown_02039E00 + ldr r1, =gContestMons adds r0, r1 movs r1, 0x4 subs r1, r2 @@ -847,7 +847,7 @@ _081DA50C: ldr r4, =gUnknown_02039F30 ldrb r3, [r4] lsls r0, r3, 6 - ldr r5, =gUnknown_02039E00 + ldr r5, =gContestMons adds r0, r5 ldr r1, =gBlockRecvBuffer movs r2, 0x4 diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s index b241e3778e..eeb50cd847 100644 --- a/asm/script_pokemon_util_80F87D8.s +++ b/asm/script_pokemon_util_80F87D8.s @@ -10,7 +10,7 @@ sub_80F87D8: @ 80F87D8 push {r4,lr} ldr r0, =gSaveBlock1Ptr ldr r2, [r0] - ldr r1, =gUnknown_02039E00 + ldr r1, =gContestMons ldrb r3, [r1, 0x15] ldr r4, =0x000013bc adds r0, r2, r4 @@ -150,8 +150,8 @@ sub_80F88DC: @ 80F88DC thumb_func_start sub_80F88E8 sub_80F88E8: @ 80F88E8 push {lr} - ldr r0, =gUnknown_02039F20 - ldr r1, =gUnknown_02039F25 + ldr r0, =gContestFinalStandings + ldr r1, =gContestPlayerMonIndex ldrb r2, [r1] adds r0, r2, r0 ldrb r0, [r0] @@ -222,7 +222,7 @@ sub_80F8970: @ 80F8970 mov r12, r0 ldr r1, =gSpecialVar_0x8006 mov r9, r1 - ldr r2, =gUnknown_02039E00 + 2 + ldr r2, =gContestMons + 2 mov r10, r2 mov r2, r12 mov r1, sp @@ -413,7 +413,7 @@ ShowContestWinner: @ 80F8ADC thumb_func_start sub_80F8AFC sub_80F8AFC: @ 80F8AFC push {r4,r5,lr} - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -422,7 +422,7 @@ sub_80F8AFC: @ 80F8AFC movs r3, 0 ldr r0, =gUnknown_02039F30 adds r4, r0, 0 - ldr r5, =gUnknown_02039E00 + ldr r5, =gContestMons ldrb r0, [r4] cmp r3, r0 bge _080F8B50 @@ -482,7 +482,7 @@ sub_80F8B94: @ 80F8B94 ldr r1, =gReservedSpritePaletteCount movs r0, 0xC strb r0, [r1] - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -594,8 +594,8 @@ sub_80F8C7C: @ 80F8C7C strb r0, [r1] cmp r0, 0 bne _080F8D18 - ldr r0, =gUnknown_02039F20 - ldr r1, =gUnknown_02039F25 + ldr r0, =gContestFinalStandings + ldr r1, =gContestPlayerMonIndex ldrb r2, [r1] adds r0, r2, r0 ldrb r0, [r0] @@ -675,7 +675,7 @@ _080F8D44: mov r9, r0 movs r1, 0x3 mov r10, r1 - ldr r2, =gUnknown_02039E00 + ldr r2, =gContestMons ldr r4, =gSpecialVar_0x8006 ldrh r1, [r4] lsls r1, 6 @@ -702,7 +702,7 @@ _080F8D44: movs r1, 0 strh r1, [r0, 0x8] strh r6, [r0, 0xA] - ldr r1, =gUnknown_02039F25 + ldr r1, =gContestPlayerMonIndex ldrh r0, [r4] ldrb r1, [r1] cmp r0, r1 @@ -758,7 +758,7 @@ _080F8DD8: bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -938,7 +938,7 @@ _080F8F98: thumb_func_start sub_80F8FA0 sub_80F8FA0: @ 80F8FA0 push {r4,lr} - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -973,7 +973,7 @@ _080F8FDE: thumb_func_start sub_80F8FE8 sub_80F8FE8: @ 80F8FE8 push {r4,lr} - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -1022,7 +1022,7 @@ sub_80F903C: @ 80F903C thumb_func_start sub_80F905C sub_80F905C: @ 80F905C push {lr} - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x2 ands r0, r1 @@ -1087,7 +1087,7 @@ _080F90D4: thumb_func_start sub_80F90DC sub_80F90DC: @ 80F90DC push {lr} - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x2 ands r0, r1 @@ -1110,7 +1110,7 @@ _080F90FE: thumb_func_start sub_80F910C sub_80F910C: @ 80F910C push {lr} - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x2 ands r0, r1 @@ -1130,7 +1130,7 @@ _080F9126: thumb_func_start sub_80F9134 sub_80F9134: @ 80F9134 push {lr} - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x4 ands r0, r1 @@ -1148,7 +1148,7 @@ _080F914E: thumb_func_start sub_80F9154 sub_80F9154: @ 80F9154 - ldr r1, =gUnknown_02039F2A + ldr r1, =gIsLinkContest movs r0, 0 strb r0, [r1] bx lr @@ -1158,7 +1158,7 @@ sub_80F9154: @ 80F9154 thumb_func_start sub_80F9160 sub_80F9160: @ 80F9160 push {lr} - ldr r0, =gUnknown_02039F2A + ldr r0, =gIsLinkContest ldrb r1, [r0] movs r0, 0x2 ands r0, r1 diff --git a/data/graphics.s b/data/graphics.s index 8527e570d0..9a348d9ee5 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1241,11 +1241,11 @@ gUnknown_08C17980:: @ 8C17980 .incbin "graphics/unknown/unknown_C17980.bin.lz" .align 2 -gUnknown_08C17AB0:: @ 8C17AB0 +gContestMiscGfx:: @ 8C17AB0 .incbin "graphics/contest/misc.4bpp.lz" .align 2 -gUnknown_08C1850C:: @ 8C1850C +gContestAudienceGfx:: @ 8C1850C .incbin "graphics/contest/audience.4bpp.lz" .align 2 diff --git a/include/contest.h b/include/contest.h index d920117f3e..7b49e71a90 100644 --- a/include/contest.h +++ b/include/contest.h @@ -1,21 +1,241 @@ #ifndef GUARD_CONTEST_H #define GUARD_CONTEST_H -struct ContestStruct_02039E00 +enum { - u16 unk_00; - u8 unk_02[11]; - u8 unk_0d[8]; - u8 filler_15[9]; - u8 filler_1E[34]; + CONTEST_CATEGORY_COOL, + CONTEST_CATEGORY_BEAUTY, + CONTEST_CATEGORY_CUTE, + CONTEST_CATEGORY_SMART, + CONTEST_CATEGORY_TOUGH, }; -extern struct ContestStruct_02039E00 gUnknown_02039E00[4]; +enum +{ + CONTEST_EFFECT_HIGHLY_APPEALING, + CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, + CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, + CONTEST_EFFECT_REPETITION_NOT_BORING, + CONTEST_EFFECT_AVOID_STARTLE_ONCE, + CONTEST_EFFECT_AVOID_STARTLE, + CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY, + CONTEST_EFFECT_USER_LESS_EASILY_STARTLED, + CONTEST_EFFECT_STARTLE_FRONT_MON, + CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS, + CONTEST_EFFECT_STARTLE_PREV_MON, + CONTEST_EFFECT_STARTLE_PREV_MONS, + CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + CONTEST_EFFECT_STARTLE_PREV_MON_2, + CONTEST_EFFECT_STARTLE_PREV_MONS_2, + CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, + CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, + CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL, + CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL, + CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL, + CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL, + CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL, + CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS, + CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, + CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION, + CONTEST_EFFECT_BETTER_IF_FIRST, + CONTEST_EFFECT_BETTER_IF_LAST, + CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, + CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, + CONTEST_EFFECT_BETTER_WHEN_LATER, + CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, + CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + CONTEST_EFFECT_BETTER_IF_DIFF_TYPE, + CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, + CONTEST_EFFECT_NEXT_APPEAL_EARLIER, + CONTEST_EFFECT_NEXT_APPEAL_LATER, + CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER, + CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, + CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, + CONTEST_EFFECT_DONT_EXCITE_AUDIENCE +}; + +enum +{ + COMBO_STARTER_RAIN_DANCE = 1, + COMBO_STARTER_RAGE, + COMBO_STARTER_FOCUS_ENERGY, + COMBO_STARTER_HYPNOSIS, + COMBO_STARTER_ENDURE, + COMBO_STARTER_HORN_ATTACK, + COMBO_STARTER_SWORDS_DANCE, + COMBO_STARTER_STOCKPILE, + COMBO_STARTER_SUNNY_DAY, + COMBO_STARTER_REST, + COMBO_STARTER_VICE_GRIP, + COMBO_STARTER_DEFENSE_CURL, + COMBO_STARTER_CHARGE, + COMBO_STARTER_ROCK_THROW, + COMBO_STARTER_YAWN, + COMBO_STARTER_SCARY_FACE, + COMBO_STARTER_POWDER_SNOW, + COMBO_STARTER_LOCK_ON, + COMBO_STARTER_SOFT_BOILED, + COMBO_STARTER_MEAN_LOOK, + COMBO_STARTER_SCRATCH, + COMBO_STARTER_GROWTH, + COMBO_STARTER_HAIL, + COMBO_STARTER_SANDSTORM, + COMBO_STARTER_BELLY_DRUM, + COMBO_STARTER_MIND_READER, + COMBO_STARTER_DRAGON_BREATH, + COMBO_STARTER_DRAGON_RAGE, + COMBO_STARTER_DRAGON_DANCE, + COMBO_STARTER_SURF, + COMBO_STARTER_DIVE, + COMBO_STARTER_STRING_SHOT, + COMBO_STARTER_LEER, + COMBO_STARTER_TAUNT, + COMBO_STARTER_CHARM, + COMBO_STARTER_HARDEN, + COMBO_STARTER_SING, + COMBO_STARTER_EARTHQUAKE, + COMBO_STARTER_DOUBLE_TEAM, + COMBO_STARTER_CURSE, + COMBO_STARTER_SWEET_SCENT, + COMBO_STARTER_SLUDGE, + COMBO_STARTER_SLUDGE_BOMB, + COMBO_STARTER_THUNDER_PUNCH, + COMBO_STARTER_FIRE_PUNCH, + COMBO_STARTER_ICE_PUNCH, + COMBO_STARTER_PECK, + COMBO_STARTER_METAL_SOUND, + COMBO_STARTER_MUD_SPORT, + COMBO_STARTER_WATER_SPORT, + COMBO_STARTER_BONE_CLUB, + COMBO_STARTER_BONEMERANG, + COMBO_STARTER_BONE_RUSH, + COMBO_STARTER_SAND_ATTACK, + COMBO_STARTER_MUD_SLAP, + COMBO_STARTER_FAKE_OUT, + COMBO_STARTER_PSYCHIC, + COMBO_STARTER_KINESIS, + COMBO_STARTER_CONFUSION, + COMBO_STARTER_POUND, + COMBO_STARTER_SMOG, + COMBO_STARTER_CALM_MIND +}; + +enum +{ + CONTEST_STRING_MORE_CONSCIOUS, + CONTEST_STRING_NO_APPEAL, + CONTEST_STRING_SETTLE_DOWN, + CONTEST_STRING_OBLIVIOUS_TO_OTHERS, + CONTEST_STRING_LESS_AWARE, + CONTEST_STRING_STOPPED_CARING, + CONTEST_STRING_STARTLE_ATTEMPT, + CONTEST_STRING_DAZZLE_ATTEMPT, + CONTEST_STRING_JUDGE_LOOK_AWAY2, + CONTEST_STRING_UNNERVE_ATTEMPT, + CONTEST_STRING_NERVOUS, + CONTEST_STRING_UNNERVE_WAITING, + CONTEST_STRING_TAUNT_WELL, + CONTEST_STRING_REGAINED_FORM, + CONTEST_STRING_JAM_WELL, + CONTEST_STRING_HUSTLE_STANDOUT, + CONTEST_STRING_WORK_HARD_UNNOTICED, + CONTEST_STRING_WORK_BEFORE, + CONTEST_STRING_APPEAL_NOT_WELL, + CONTEST_STRING_WORK_PRECEDING, + CONTEST_STRING_APPEAL_NOT_WELL2, + CONTEST_STRING_APPEAL_NOT_SHOWN_WELL, + CONTEST_STRING_APPEAL_SLIGHTLY_WELL, + CONTEST_STRING_APPEAL_PRETTY_WELL, + CONTEST_STRING_APPEAL_EXCELLENTLY, + CONTEST_STRING_APPEAL_DUD, + CONTEST_STRING_APPEAL_NOT_VERY_WELL, + CONTEST_STRING_APPEAL_SLIGHTLY_WELL2, + CONTEST_STRING_APPEAL_PRETTY_WELL2, + CONTEST_STRING_APPEAL_VERY_WELL, + CONTEST_STRING_APPEAL_EXCELLENTLY2, + CONTEST_STRING_SAME_TYPE_GOOD, + CONTEST_STRING_DIFF_TYPE_GOOD, + CONTEST_STRING_STOOD_OUT_AS_MUCH, + CONTEST_STRING_NOT_AS_WELL, + CONTEST_STRING_CONDITION_ROSE, + CONTEST_STRING_HOT_STATUS, + CONTEST_STRING_MOVE_UP_LINE, + CONTEST_STRING_MOVE_BACK_LINE, + CONTEST_STRING_SCRAMBLE_ORDER, + CONTEST_STRING_JUDGE_EXPECTANTLY2, + CONTEST_STRING_WENT_OVER_WELL, + CONTEST_STRING_WENT_OVER_VERY_WELL, + CONTEST_STRING_APPEAL_COMBO_EXCELLENTLY, + CONTEST_STRING_AVERT_GAZE, + CONTEST_STRING_AVOID_SEEING, + CONTEST_STRING_NOT_FAZED, + CONTEST_STRING_LITTLE_DISTRACTED, + CONTEST_STRING_ATTEMPT_STARTLE, + CONTEST_STRING_LOOKED_DOWN, + CONTEST_STRING_TURNED_BACK, + CONTEST_STRING_UTTER_CRY, + CONTEST_STRING_LEAPT_UP, + CONTEST_STRING_TRIPPED_OVER, + CONTEST_STRING_MESSED_UP2, + CONTEST_STRING_FAILED_TARGET_NERVOUS, + CONTEST_STRING_FAILED_ANYONE_NERVOUS, + CONTEST_STRING_IGNORED, + CONTEST_STRING_NO_CONDITION_IMPROVE, + CONTEST_STRING_BAD_CONDITION_WEAK_APPEAL, + CONTEST_STRING_UNAFFECTED, + CONTEST_STRING_ATTRACTED_ATTENTION, + CONTEST_STRING_NONE = 255 +}; + +struct ContestPokemon +{ + /*0x00*/ u16 species; + /*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; + /*0x0D*/ u8 trainerName[8]; + /*0x15*/ u8 trainerGfxId; + /*0x18*/ u32 flags; + /*0x1C*/ u8 whichRank:2; + u8 aiPool_Cool:1; + u8 aiPool_Beauty:1; + u8 aiPool_Cute:1; + u8 aiPool_Smart:1; + u8 aiPool_Tough:1; + /*0x1E*/ u16 moves[4]; // moves + /*0x26*/ u8 cool; // cool + /*0x27*/ u8 beauty; // beauty + /*0x28*/ u8 cute; // cute + /*0x29*/ u8 smart; // smart + /*0x2A*/ u8 tough; // tough + /*0x2B*/ u8 sheen; // sheen + /*0x2C*/ u8 unk2C[12]; + /*0x38*/ u32 personality; // personality + /*0x3C*/ u32 otId; // otId +}; // wow + +extern struct ContestPokemon gContestMons[4]; extern u8 gUnknown_02039F24; extern u16 gSpecialVar_ContestCategory; -extern u8 gSpecialVar_ContestRank; +extern u16 gSpecialVar_ContestRank; extern u8 gUnknown_02039F30; +struct Shared18000 +{ + /*0x18000*/ u8 unk18000; + /*0x18001*/ u8 filler18001[3]; + /*0x18004*/ u16 unk18004[16][16]; + /*0x18204*/ u16 unk18204[0x200]; + /*0x18604*/ u16 unk18604[0x200]; + /*0x18A04*/ u8 unk18A04[0x800]; +}; + struct ContestStruct_field_18 { // unknown size @@ -28,17 +248,153 @@ struct ContestStruct_field_18 u32 field_10; }; +struct Contest +{ + /*0x19204*/ u8 playerMoveChoice; + /*0x19205*/ u8 turnNumber; + /*0x19206*/ u8 unk19206[4]; // seems to only be used by an unref function + /*0x1920A*/ u16 unk1920A_0:1; // Task active flags? + u16 unk1920A_1:1; + u16 unk1920A_2:1; + u16 unk1920A_3:1; + u16 unk1920A_4:1; + u16 unk1920A_5:1; + u16 unk1920A_6:1; + u16 unk1920A_7:1; + /*0x1920B*/ u16 unk1920B_0:1; + u16 unk1920B_1:1; + u16 unk1920B_2:1; + /*0x1920C*/ u8 mainTaskId; + /*0x1920D*/ u8 unk1920D[4]; + /*0x19211*/ u8 unk19211; + /*0x19212*/ u8 unk19212; + /*0x19213*/ u8 filler19213; + /*0x19214*/ u8 unk19214; + /*0x19215*/ u8 unk19215; + /*0x19216*/ u8 unk19216; // sprite ID + /*0x19217*/ s8 applauseLevel; + /*0x19218*/ u8 unk19218[4]; + /*0x1921C*/ u32 unk1921C; // saved RNG value? + u16 unk19220[5][4]; // move history? + u8 unk19248[5][4]; // excitement history + u8 applauseMeterSpriteId; // sprite ID + /*0x1925D*/ u8 unk1925D; + /*0x1925E*/ u8 unk1925E; +}; + +struct ContestantStatus +{ + /*0x00*/ s16 appeal1; // move appeal? + /*0x02*/ s16 appeal2; // final appeal after end of turn, maybe? + /*0x04*/ s16 unk4; + /*0x06*/ u16 currMove; + /*0x08*/ u16 prevMove; + /*0x0A*/ u8 moveCategory; + /*0x0B*/ u8 unkB_0:2; + u8 unkB_2:2; + u8 moveRepeatCount:3; + u8 noMoreTurns:1; // used a one-time move? + /*0x0C*/ u8 nervous:1; + u8 numTurnsSkipped:2; + /*0x0D*/ s8 condition; + /*0x0E*/ u8 jam; + /*0x0F*/ u8 jamReduction; + + // Flags set by move effect + /*0x10*/ u8 resistant:1; + u8 immune:1; + u8 moreEasilyStartled:1; + u8 usedRepeatableMove:1; + u8 conditionMod:2; // 1: just raised condition; 2: appeal greatly improved by condition + u8 turnOrderMod:2; // 1: defined; 2: random + /*0x11*/ u8 turnOrderModAction:2; // 1: made first; 2: made last; 3: made random + u8 turnSkipped:1; + u8 exploded:1; + u8 overrideCategoryExcitementMod:1; + u8 appealTripleCondition:1; + + /*0x12*/ u8 jamSafetyCount; + /*0x13*/ u8 effectStringId; // status action? + /*0x14*/ u8 effectStringId2; + /*0x15*/ u8 disappointedRepeat:1; + u8 unk15_1:1; + u8 unk15_2:1; + u8 unk15_3:1; + u8 hasJudgesAttention:1; + u8 judgesAttentionWasRemoved:1; + u8 unk15_6:1; + /*0x16*/ u8 unk16; + /*0x17*/ u8 unk17; + /*0x18*/ u8 unk18; + /*0x19*/ u8 nextTurnOrder; // turn position + /*0x1A*/ u8 attentionLevel; // How much the Pokemon "stood out" + /*0x1B*/ u8 unk1B; +}; + +struct UnknownContestStruct7 +{ + u8 turnOrder[4]; + s16 jam; + s16 jam2; + u8 jamQueue[5]; + u8 unnervedPokes[4]; + u8 contestant; +}; + +struct ContestAIInfo { + /*0x00*/ u8 aiState; + /*0x02*/ u16 unk2; + /*0x04*/ u8 unk4; + /*0x05*/ u8 unk5[4]; + /*0x09*/ u8 aiAction; + /*0x0A*/ u8 fillerA[0x6]; // TODO: don't know what's here + /*0x10*/ u8 unk10; + /*0x14*/ u32 flags; + /*0x18*/ s16 scriptResult; + /*0x1A*/ s16 scriptArr[3]; + /*0x20*/ u32 stack[8]; + /*0x40*/ u8 unk40; + /*0x41*/ u8 unk41; +}; + +struct UnknownContestStruct5 +{ + s8 bits_0; // current move excitement? + u8 excitementFrozen:1; + u8 excitementFreezer:3; + s8 unk2; +}; + +struct UnknownContestStruct4 +{ + u8 unk0; // sprite ID + u8 unk1; // sprite ID + u8 unk2_0:1; + u8 unk2_1:1; + u8 unk2_2:1; +}; + +struct ContestResourcesField1C +{ + u8 filler_00[0x40]; +}; + struct ContestResources { - void *field_0; - void *field_4; - void *field_8; - void *field_C; - void *field_10; - void *field_14; + struct Contest *field_0; + struct ContestantStatus *field_4; + struct UnknownContestStruct7 *field_8; + struct ContestAIInfo *field_C; + struct UnknownContestStruct5 *field_10; + struct UnknownContestStruct4 (*field_14)[4]; struct ContestStruct_field_18 *field_18; + struct ContestResourcesField1C * field_1c; + u8 filler_20[4]; + u8 * field_24[4]; }; +#define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000)) + extern struct ContestResources *gContestResources; bool8 IsSpeciesNotUnown(u16 species); diff --git a/ld_script.txt b/ld_script.txt index 2832bcada4..b241de2631 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -138,6 +138,7 @@ SECTIONS { asm/battle_anim_80D51AC.o(.text); src/item.o(.text); asm/item.o(.text); + src/contest.o(.text); asm/contest.o(.text); asm/shop.o(.text); src/berry.o(.text); diff --git a/src/contest.c b/src/contest.c new file mode 100644 index 0000000000..08d4f9b577 --- /dev/null +++ b/src/contest.c @@ -0,0 +1,196 @@ +#include "global.h" +#include "gpu_regs.h" +#include "bg.h" +#include "malloc.h" +#include "constants/items.h" +#include "constants/map_objects.h" +#include "constants/moves.h" +#include "constants/songs.h" +#include "constants/species.h" +#include "battle.h" +#include "battle_anim.h" +#include "blend_palette.h" +#include "contest.h" +#include "data2.h" +#include "decompress.h" +#include "graphics.h" +#include "link.h" +#include "m4a.h" +#include "main.h" +#include "menu.h" +#include "overworld.h" +#include "palette.h" +#include "random.h" +#include "script.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "task.h" +#include "text.h" +#include "tv.h" +#include "scanline_effect.h" +#include "util.h" + +void sub_80DD590(void); +void sub_80D782C(void); +void sub_80DCE58(u8); + +EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; +EWRAM_DATA s16 gUnknown_02039F00[4] = {0}; +EWRAM_DATA s16 gUnknown_02039F08[4] = {0}; +EWRAM_DATA s16 gUnknown_02039F10[4] = {0}; +EWRAM_DATA s16 gUnknown_02039F18[4] = {0}; +EWRAM_DATA u8 gContestFinalStandings[4] = {0}; +EWRAM_DATA u8 gUnknown_02039F24 = 0; +EWRAM_DATA u8 gContestPlayerMonIndex = 0; +EWRAM_DATA u8 gUnknown_02039F26[4] = {0}; +EWRAM_DATA bool8 gIsLinkContest = FALSE; +EWRAM_DATA u8 gUnknown_02039F2B = 0; +EWRAM_DATA u16 gSpecialVar_ContestCategory = 0; +EWRAM_DATA u16 gSpecialVar_ContestRank = 0; + +extern u16 gBattle_BG0_X; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG1_X; +extern u16 gBattle_BG1_Y; +extern u16 gBattle_BG2_X; +extern u16 gBattle_BG2_Y; +extern u16 gBattle_BG3_X; +extern u16 gBattle_BG3_Y; +extern u16 gBattle_WIN0H; +extern u16 gBattle_WIN0V; +extern u16 gBattle_WIN1H; +extern u16 gBattle_WIN1V; + +extern const u8 gContestMiscGfx[]; +extern const u8 gContestAudienceGfx[]; +extern const u8 gUnknown_08C16FA8[]; +extern const u8 gUnknown_08C16E90[]; +extern const struct BgTemplate gUnknown_08587F34[4]; +extern const struct WindowTemplate gUnknown_08587F44[]; +extern const u16 gUnknown_08587C30[]; + +void TaskDummy1(u8 taskId) +{ +} + +void ResetLinkContestBoolean(void) +{ + gIsLinkContest = FALSE; +} + +void sub_80D7678(void) +{ + u16 savedIme; + + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + SetGpuReg(REG_OFFSET_WININ, 0x3F3F); + SetGpuReg(REG_OFFSET_WINOUT, 0x3F3F); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); + + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + gBattle_BG2_X = 0; + gBattle_BG2_Y = 0; + gBattle_BG3_X = 0; + gBattle_BG3_Y = 0; + gBattle_WIN0H = 0; + gBattle_WIN0V = 0; + gBattle_WIN1H = 0; + gBattle_WIN1V = 0; +} + +void LoadContestBgAfterMoveAnim(void) +{ + s32 i; + + LZDecompressVram(gContestMiscGfx, (void *)VRAM); + LZDecompressVram(gContestAudienceGfx, (void *)(VRAM + 0x2000)); + CopyToBgTilemapBuffer(3, gUnknown_08C16FA8, 0, 0); + CopyBgTilemapBufferToVram(3); + LoadCompressedPalette(gUnknown_08C16E90, 0, 0x200); + sub_80D782C(); + for (i = 0; i < 4; i++) + { + u32 var = 5 + i; + + LoadPalette(shared18000.unk18004[var], 16 * (5 + gUnknown_02039F26[i]), 16 * sizeof(u16)); + } +} + +void sub_80D779C(void) +{ + s32 i; + + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_08587F34, ARRAY_COUNT(gUnknown_08587F34)); + SetBgAttribute(3, BG_CTRL_ATTR_PRIORITY, 1); + for (i = 0; i < 4; i++) + { + SetBgTilemapBuffer(i, gContestResources->field_24[i]); + } +} + +void sub_80D77E4(void) +{ + InitWindows(gUnknown_08587F44); + DeactivateAllTextPrinters(); + if (gIsLinkContest & 1) + { + gTextFlags.flag_0 = FALSE; + } + else + { + gTextFlags.flag_0 = TRUE; + } +} + +void sub_80D782C(void) +{ + s32 i; + + LoadPalette(gUnknown_08587C30, 0xf0, 0x20); + FillPalette(0, 0, 2); + for (i = 10; i < 14; i++) + LoadPalette(gPlttBufferUnfaded + 241, 240 + i, 2); + FillPalette(0x7E3F, 0xF3, 2); +} + +void sub_80D787C(void) +{ + s32 i; + + *gContestResources->field_0 = (struct Contest){}; + for (i = 0; i < 4; i++) + { + gContestResources->field_0->unk19206[i] = 0xFF; + } + for (i = 0; i < 4; i++) + { + gContestResources->field_4[i] = (struct ContestantStatus){}; + } + for (i = 0; i < 4; i++) + { + gContestResources->field_4[i].unkB_0 = 0; + gContestResources->field_4[i].effectStringId = CONTEST_STRING_NONE; + gContestResources->field_4[i].effectStringId2 = CONTEST_STRING_NONE; + } + *gContestResources->field_8 = (struct UnknownContestStruct7){}; + *gContestResources->field_C = (struct ContestAIInfo){}; + *gContestResources->field_10 = (struct UnknownContestStruct5){}; + memset(gContestResources->field_14, 0, 4 * sizeof(struct UnknownContestStruct4)); + if (!(gIsLinkContest & 1)) + sub_80DCE58(0); + for (i = 0; i < 4; i++) + { + gContestResources->field_4[i].nextTurnOrder = 0xFF; + gContestResources->field_0->unk19218[i] = gUnknown_02039F26[i]; + } + sub_80DD590(); + *gContestResources->field_1c = (struct ContestResourcesField1C){}; +} diff --git a/src/tv.c b/src/tv.c index b7c2812fe2..769bd50804 100644 --- a/src/tv.c +++ b/src/tv.c @@ -1448,8 +1448,8 @@ void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.winningSpecies = gUnknown_02039E00[a1].unk_00; - StringCopy(show->contestLiveUpdates.winningTrainerName, gUnknown_02039E00[a1].unk_0d); + show->contestLiveUpdates.winningSpecies = gContestMons[a1].species; + StringCopy(show->contestLiveUpdates.winningTrainerName, gContestMons[a1].trainerName); StripExtCtrlCodes(show->contestLiveUpdates.winningTrainerName); show->contestLiveUpdates.appealFlags2 = a0; if (a1 + 1 > gUnknown_02039F30) diff --git a/sym_ewram.txt b/sym_ewram.txt index 9bf04d2018..6ac45e6457 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -419,44 +419,7 @@ gUnknown_02039DD0: @ 2039DD0 gBagPockets: @ 2039DD8 .space 0x28 -gUnknown_02039E00: @ 2039E00 - .space 0x100 - -gUnknown_02039F00: @ 2039F00 - .space 0x8 - -gUnknown_02039F08: @ 2039F08 - .space 0x8 - -gUnknown_02039F10: @ 2039F10 - .space 0x8 - -gUnknown_02039F18: @ 2039F18 - .space 0x8 - -gUnknown_02039F20: @ 2039F20 - .space 0x4 - -gUnknown_02039F24: @ 2039F24 - .space 0x1 - -gUnknown_02039F25: @ 2039F25 - .space 0x1 - -gUnknown_02039F26: @ 2039F26 - .space 0x4 - -gUnknown_02039F2A: @ 2039F2A - .space 0x1 - -gUnknown_02039F2B: @ 2039F2B - .space 0x1 - -gSpecialVar_ContestCategory: @ 2039F2C - .space 0x2 - -gSpecialVar_ContestRank: @ 2039F2E - .space 0x2 + .include "src/contest.o" gUnknown_02039F30: @ 2039F30 .space 0x1 From ef29d17c4128b674897c056a37aa424b21afe35c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 1 May 2018 21:27:24 -0400 Subject: [PATCH 022/174] through sub_80D7B24 --- asm/contest.s | 300 ---------------------------------------------- include/contest.h | 12 +- src/contest.c | 115 ++++++++++++++++++ sym_ewram.txt | 13 +- 4 files changed, 126 insertions(+), 314 deletions(-) diff --git a/asm/contest.s b/asm/contest.s index 85299a8f7b..2a72e9f729 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,306 +5,6 @@ .text - thumb_func_start sub_80D7988 -sub_80D7988: @ 80D7988 - push {r4,r5,lr} - ldr r4, =gContestResources - movs r0, 0x40 - bl AllocZeroed - str r0, [r4] - movs r0, 0x5C - bl AllocZeroed - ldr r1, [r4] - str r0, [r1] - movs r0, 0x70 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x4] - movs r0, 0x14 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x8] - movs r0, 0x44 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0xC] - movs r0, 0x10 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x10] - movs r0, 0x10 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x14] - movs r0, 0x14 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x18] - movs r0, 0x40 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x1C] - movs r0, 0xC - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x20] - movs r5, 0x80 - lsls r5, 5 - adds r0, r5, 0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x24] - adds r0, r5, 0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x28] - adds r0, r5, 0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x2C] - adds r0, r5, 0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x30] - movs r5, 0x80 - lsls r5, 4 - adds r0, r5, 0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x34] - adds r0, r5, 0 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x38] - movs r0, 0x80 - lsls r0, 6 - bl AllocZeroed - ldr r2, [r4] - str r0, [r2, 0x3C] - ldr r1, =gUnknown_0202305C - str r0, [r1] - ldr r1, =gUnknown_02023060 - ldr r0, [r2, 0x28] - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D7988 - - thumb_func_start sub_80D7A5C -sub_80D7A5C: @ 80D7A5C - push {r4,r5,lr} - ldr r5, =gContestResources - ldr r0, [r5] - ldr r0, [r0] - bl Free - ldr r0, [r5] - movs r4, 0 - str r4, [r0] - ldr r0, [r0, 0x4] - bl Free - ldr r0, [r5] - str r4, [r0, 0x4] - ldr r0, [r0, 0x8] - bl Free - ldr r0, [r5] - str r4, [r0, 0x8] - ldr r0, [r0, 0xC] - bl Free - ldr r0, [r5] - str r4, [r0, 0xC] - ldr r0, [r0, 0x10] - bl Free - ldr r0, [r5] - str r4, [r0, 0x10] - ldr r0, [r0, 0x14] - bl Free - ldr r0, [r5] - str r4, [r0, 0x14] - ldr r0, [r0, 0x18] - bl Free - ldr r0, [r5] - str r4, [r0, 0x18] - ldr r0, [r0, 0x1C] - bl Free - ldr r0, [r5] - str r4, [r0, 0x1C] - ldr r0, [r0, 0x20] - bl Free - ldr r0, [r5] - str r4, [r0, 0x20] - ldr r0, [r0, 0x24] - bl Free - ldr r0, [r5] - str r4, [r0, 0x24] - ldr r0, [r0, 0x28] - bl Free - ldr r0, [r5] - str r4, [r0, 0x28] - ldr r0, [r0, 0x2C] - bl Free - ldr r0, [r5] - str r4, [r0, 0x2C] - ldr r0, [r0, 0x30] - bl Free - ldr r0, [r5] - str r4, [r0, 0x30] - ldr r0, [r0, 0x34] - bl Free - ldr r0, [r5] - str r4, [r0, 0x34] - ldr r0, [r0, 0x38] - bl Free - ldr r0, [r5] - str r4, [r0, 0x38] - ldr r0, [r0, 0x3C] - bl Free - ldr r0, [r5] - str r4, [r0, 0x3C] - bl Free - str r4, [r5] - ldr r0, =gUnknown_0202305C - str r4, [r0] - ldr r0, =gUnknown_02023060 - str r4, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D7A5C - - thumb_func_start sub_80D7B24 -sub_80D7B24: @ 80D7B24 - push {r4-r6,lr} - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r6, r0, r1 - ldrb r5, [r6] - cmp r5, 0x1 - beq _080D7BD4 - cmp r5, 0x1 - bgt _080D7B44 - cmp r5, 0 - beq _080D7B4E - b _080D7C56 - .pool -_080D7B44: - cmp r5, 0x2 - beq _080D7BDA - cmp r5, 0x3 - beq _080D7C04 - b _080D7C56 -_080D7B4E: - ldr r0, =gUnknown_02039F38 - strb r5, [r0] - bl sub_80D7988 - bl AllocateMonSpritesGfx - ldr r4, =gMonSpritesGfxPtr - ldr r0, [r4] - ldr r0, [r0] - bl Free - ldr r0, [r4] - str r5, [r0] - movs r0, 0x80 - lsls r0, 7 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1] - movs r0, 0 - bl SetVBlankCallback - bl sub_80D779C - bl sub_80D77E4 - bl sub_80D7678 - bl ScanlineEffect_Clear - bl ResetPaletteFade - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - ldr r1, =gReservedSpritePaletteCount - movs r0, 0x4 - strb r0, [r1] - ldr r0, =0x02000000 - movs r1, 0xD0 - lsls r1, 9 - adds r0, r1 - strb r5, [r0] - bl ClearBattleMonForms - bl sub_80D787C - b _080D7BF6 - .pool -_080D7BD4: - movs r0, 0x2 - strb r0, [r6] - b _080D7C56 -_080D7BDA: - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0] - adds r0, 0x59 - bl sub_80D7E44 - lsls r0, 24 - cmp r0, 0 - beq _080D7C56 - ldr r0, [r4] - ldr r0, [r0] - adds r0, 0x59 - movs r1, 0 - strb r1, [r0] -_080D7BF6: - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _080D7C56 - .pool -_080D7C04: - bl sub_80DE224 - ldr r0, =gBattle_BG1_X - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG1_Y - strh r1, [r0] - movs r0, 0x2 - bl BeginFastPaletteFade - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, =vblank_cb_battle - bl SetVBlankCallback - ldr r0, =sub_80D7C7C - movs r1, 0xA - bl CreateTask - ldr r1, =gContestResources - ldr r1, [r1] - ldr r1, [r1] - strb r0, [r1, 0x8] - ldr r0, =sub_80D823C - bl SetMainCallback2 - ldr r0, =gIsLinkContest - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D7C56 - bl sub_800E0E8 - movs r0, 0x8 - movs r1, 0x8 - bl CreateWirelessStatusIndicatorSprite -_080D7C56: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D7B24 - thumb_func_start sub_80D7C7C sub_80D7C7C: @ 80D7C7C push {lr} diff --git a/include/contest.h b/include/contest.h index 7b49e71a90..80b681cefe 100644 --- a/include/contest.h +++ b/include/contest.h @@ -379,6 +379,11 @@ struct ContestResourcesField1C u8 filler_00[0x40]; }; +struct ContestResourcesField20 +{ + u8 filler_00[0x0C]; +}; + struct ContestResources { struct Contest *field_0; @@ -386,11 +391,14 @@ struct ContestResources struct UnknownContestStruct7 *field_8; struct ContestAIInfo *field_C; struct UnknownContestStruct5 *field_10; - struct UnknownContestStruct4 (*field_14)[4]; + struct UnknownContestStruct4 *field_14; struct ContestStruct_field_18 *field_18; struct ContestResourcesField1C * field_1c; - u8 filler_20[4]; + struct ContestResourcesField20 * field_20; u8 * field_24[4]; + void * field_34; + void * field_38; + void * field_3c; }; #define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000)) diff --git a/src/contest.c b/src/contest.c index 08d4f9b577..2e61b46294 100644 --- a/src/contest.c +++ b/src/contest.c @@ -31,9 +31,18 @@ #include "scanline_effect.h" #include "util.h" +#define DESTROY_POINTER(ptr) \ + free(ptr); \ + ptr = NULL; + void sub_80DD590(void); void sub_80D782C(void); void sub_80DCE58(u8); +bool8 sub_80D7E44(u8 *); +void sub_80DE224(void); +void sub_80D7C7C(u8 taskId); +void sub_80D823C(void); +void vblank_cb_battle(void); EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; EWRAM_DATA s16 gUnknown_02039F00[4] = {0}; @@ -48,6 +57,10 @@ EWRAM_DATA bool8 gIsLinkContest = FALSE; EWRAM_DATA u8 gUnknown_02039F2B = 0; EWRAM_DATA u16 gSpecialVar_ContestCategory = 0; EWRAM_DATA u16 gSpecialVar_ContestRank = 0; +EWRAM_DATA u8 gUnknown_02039F30 = 0; +EWRAM_DATA u8 gUnknown_02039F31 = 0; +EWRAM_DATA struct ContestResources * gContestResources = NULL; +EWRAM_DATA u8 gUnknown_02039F38 = 0; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; @@ -194,3 +207,105 @@ void sub_80D787C(void) sub_80DD590(); *gContestResources->field_1c = (struct ContestResourcesField1C){}; } + +void sub_80D7988(void) +{ + gContestResources = AllocZeroed(sizeof(struct ContestResources)); + gContestResources->field_0 = AllocZeroed(sizeof(struct Contest)); + gContestResources->field_4 = AllocZeroed(sizeof(struct ContestantStatus) * 4); + gContestResources->field_8 = AllocZeroed(sizeof(struct UnknownContestStruct7)); + gContestResources->field_C = AllocZeroed(sizeof(struct ContestAIInfo)); + gContestResources->field_10 = AllocZeroed(sizeof(struct UnknownContestStruct5) * 4); + gContestResources->field_14 = AllocZeroed(sizeof(struct UnknownContestStruct4) * 4); + gContestResources->field_18 = AllocZeroed(sizeof(struct ContestStruct_field_18)); + gContestResources->field_1c = AllocZeroed(sizeof(struct ContestResourcesField1C)); + gContestResources->field_20 = AllocZeroed(sizeof(struct ContestResourcesField20)); + gContestResources->field_24[0] = AllocZeroed(0x1000); + gContestResources->field_24[1] = AllocZeroed(0x1000); + gContestResources->field_24[2] = AllocZeroed(0x1000); + gContestResources->field_24[3] = AllocZeroed(0x1000); + gContestResources->field_34 = AllocZeroed(0x800); + gContestResources->field_38 = AllocZeroed(0x800); + gContestResources->field_3c = AllocZeroed(0x2000); + gUnknown_0202305C = gContestResources->field_3c; + gUnknown_02023060 = gContestResources->field_24[1]; +} + +void sub_80D7A5C(void) +{ + DESTROY_POINTER(gContestResources->field_0); + DESTROY_POINTER(gContestResources->field_4); + DESTROY_POINTER(gContestResources->field_8); + DESTROY_POINTER(gContestResources->field_C); + DESTROY_POINTER(gContestResources->field_10); + DESTROY_POINTER(gContestResources->field_14); + DESTROY_POINTER(gContestResources->field_18); + DESTROY_POINTER(gContestResources->field_1c); + DESTROY_POINTER(gContestResources->field_20); + DESTROY_POINTER(gContestResources->field_24[0]); + DESTROY_POINTER(gContestResources->field_24[1]); + DESTROY_POINTER(gContestResources->field_24[2]); + DESTROY_POINTER(gContestResources->field_24[3]); + DESTROY_POINTER(gContestResources->field_34); + DESTROY_POINTER(gContestResources->field_38); + DESTROY_POINTER(gContestResources->field_3c); + DESTROY_POINTER(gContestResources); + gUnknown_0202305C = NULL; + gUnknown_02023060 = NULL; +} + +void sub_80D7B24(void) +{ + switch (gMain.state) + { + case 0: + gUnknown_02039F38 = 0; + sub_80D7988(); + AllocateMonSpritesGfx(); + DESTROY_POINTER(gMonSpritesGfxPtr->firstDecompressed); + gMonSpritesGfxPtr->firstDecompressed = AllocZeroed(0x4000); + SetVBlankCallback(NULL); + sub_80D779C(); + sub_80D77E4(); + sub_80D7678(); + ScanlineEffect_Clear(); + ResetPaletteFade(); + gPaletteFade.bufferTransferDisabled = TRUE; + ResetSpriteData(); + ResetTasks(); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 4; + //shared18000.unk18000 = 0; + gHeap[0x1a000] = 0; + ClearBattleMonForms(); + sub_80D787C(); + gMain.state++; + break; + case 1: + gMain.state++; + break; + case 2: + if (sub_80D7E44(&gContestResources->field_0->unk1925D)) + { + gContestResources->field_0->unk1925D = 0; + gMain.state++; + } + break; + case 3: + sub_80DE224(); + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + BeginFastPaletteFade(2); + gPaletteFade.bufferTransferDisabled = FALSE; + SetVBlankCallback(vblank_cb_battle); + gContestResources->field_0->mainTaskId = CreateTask(sub_80D7C7C, 10); + SetMainCallback2(sub_80D823C); + if (gIsLinkContest & 2) + { + sub_800E0E8(); + CreateWirelessStatusIndicatorSprite(8, 8); + } + break; + } +} + diff --git a/sym_ewram.txt b/sym_ewram.txt index 6ac45e6457..d4a2ba4b63 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -421,18 +421,7 @@ gBagPockets: @ 2039DD8 .include "src/contest.o" -gUnknown_02039F30: @ 2039F30 - .space 0x1 - -gUnknown_02039F31: @ 2039F31 - .space 0x3 - -gContestResources: @ 2039F34 - .space 0x4 - -gUnknown_02039F38: @ 2039F38 - .space 0x4 - + .align 2 gUnknown_02039F3C: @ 2039F3C .space 0x20 From 4bf09504216c1c9668843cc93b5392cd1022a4c1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 2 May 2018 08:43:27 -0400 Subject: [PATCH 023/174] through sub_80D7DE8 --- asm/contest.s | 212 +----------------------------- asm/contest_link_80FC4F4.s | 2 +- asm/contest_link_81D9DE4.s | 2 +- asm/script_pokemon_util_80F87D8.s | 4 +- common_syms/contest.txt | 1 + include/contest.h | 2 + include/contest_link_80F57C4.h | 1 + src/contest.c | 97 +++++++++++++- src/item.c | 2 + sym_common.txt | 4 +- sym_ewram.txt | 9 +- 11 files changed, 105 insertions(+), 231 deletions(-) create mode 100644 common_syms/contest.txt diff --git a/asm/contest.s b/asm/contest.s index 2a72e9f729..0fa75185c8 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,216 +5,6 @@ .text - thumb_func_start sub_80D7C7C -sub_80D7C7C: @ 80D7C7C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080D7CA2 - ldr r0, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - strh r2, [r1, 0x8] - ldr r0, =sub_80D7CB4 - str r0, [r1] -_080D7CA2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D7C7C - - thumb_func_start sub_80D7CB4 -sub_80D7CB4: @ 80D7CB4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gIsLinkContest - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D7D90 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D7D3A - ldr r2, =gTasks - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r4, r0, r2 - movs r2, 0x8 - ldrsh r0, [r4, r2] - adds r6, r1, 0 - cmp r0, 0x1 - beq _080D7D04 - cmp r0, 0x1 - bgt _080D7CF4 - cmp r0, 0 - beq _080D7CFA - b _080D7D3A - .pool -_080D7CF4: - cmp r0, 0x2 - beq _080D7D28 - b _080D7D3A -_080D7CFA: - bl sub_80DBF68 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080D7D04: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _080D7D9E - bl sub_800ADF8 - ldr r0, =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080D7D9E - .pool -_080D7D28: - bl sub_800A520 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D7D9E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080D7D3A: - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080D7D9E - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, =gIsLinkContest - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080D7D62 - bl sub_80DBF68 -_080D7D62: - ldr r0, =sub_80D7DAC - movs r1, 0 - bl CreateTask - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x8] - ldr r1, =TaskDummy1 - str r1, [r0] - b _080D7D9E - .pool -_080D7D90: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80D80C8 - str r0, [r1] -_080D7D9E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D7CB4 - - thumb_func_start sub_80D7DAC -sub_80D7DAC: @ 80D7DAC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =sub_80FC998 - ldr r2, =sub_80D7DC8 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D7DAC - - thumb_func_start sub_80D7DC8 -sub_80D7DC8: @ 80D7DC8 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x1 - strh r0, [r1, 0x8] - ldr r0, =sub_80D7DE8 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_80D7DC8 - - thumb_func_start sub_80D7DE8 -sub_80D7DE8: @ 80D7DE8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r5 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - cmp r1, 0 - bgt _080D7E2A - bl GetMultiplayerId - adds r0, r4, 0 - bl DestroyTask - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, 0x8] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - ldr r1, =sub_80D80C8 - str r1, [r0] - ldr r1, =gRngValue - ldr r0, =gUnknown_030060B8 - ldr r0, [r0] - str r0, [r1] -_080D7E2A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D7DE8 - thumb_func_start sub_80D7E44 sub_80D7E44: @ 80D7E44 push {r4-r7,lr} @@ -4722,7 +4512,7 @@ _080DA65C: bl sub_80DF4F8 bl sub_80DF750 _080DA668: - ldr r1, =gUnknown_030060B8 + ldr r1, =gContestRngValue ldr r0, =gRngValue ldr r0, [r0] str r0, [r1] diff --git a/asm/contest_link_80FC4F4.s b/asm/contest_link_80FC4F4.s index 3ba383f0bd..3912731ecc 100644 --- a/asm/contest_link_80FC4F4.s +++ b/asm/contest_link_80FC4F4.s @@ -434,7 +434,7 @@ _080FC858: adds r1, r4, 0 movs r2, 0x4 bl memcpy - ldr r0, =gUnknown_030060B8 + ldr r0, =gContestRngValue adds r1, r4, 0 movs r2, 0x4 bl memcpy diff --git a/asm/contest_link_81D9DE4.s b/asm/contest_link_81D9DE4.s index 4f392587a4..35191e10f7 100644 --- a/asm/contest_link_81D9DE4.s +++ b/asm/contest_link_81D9DE4.s @@ -558,7 +558,7 @@ _081DA2AC: adds r1, r4, 0 movs r2, 0x4 bl memcpy - ldr r0, =gUnknown_030060B8 + ldr r0, =gContestRngValue adds r1, r4, 0 movs r2, 0x4 bl memcpy diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s index eeb50cd847..917d02cd0e 100644 --- a/asm/script_pokemon_util_80F87D8.s +++ b/asm/script_pokemon_util_80F87D8.s @@ -979,7 +979,7 @@ sub_80F8FE8: @ 80F8FE8 ands r0, r1 cmp r0, 0 beq _080F9020 - ldr r2, =gUnknown_030060B8 + ldr r2, =gContestRngValue ldr r1, [r2] ldr r0, =0x41c64e6d muls r0, r1 @@ -1007,7 +1007,7 @@ _080F902A: thumb_func_start sub_80F903C sub_80F903C: @ 80F903C - ldr r2, =gUnknown_030060B8 + ldr r2, =gContestRngValue ldr r1, [r2] ldr r0, =0x41c64e6d muls r0, r1 diff --git a/common_syms/contest.txt b/common_syms/contest.txt new file mode 100644 index 0000000000..6a519fb463 --- /dev/null +++ b/common_syms/contest.txt @@ -0,0 +1 @@ +gContestRngValue diff --git a/include/contest.h b/include/contest.h index 80b681cefe..250929de7b 100644 --- a/include/contest.h +++ b/include/contest.h @@ -405,6 +405,8 @@ struct ContestResources extern struct ContestResources *gContestResources; +extern u32 gContestRngValue; + bool8 IsSpeciesNotUnown(u16 species); void LoadContestBgAfterMoveAnim(void); diff --git a/include/contest_link_80F57C4.h b/include/contest_link_80F57C4.h index 98523c1750..3c12e5e538 100644 --- a/include/contest_link_80F57C4.h +++ b/include/contest_link_80F57C4.h @@ -4,5 +4,6 @@ void sub_80F840C(void); void sub_80F8484(void); void sub_80F84C4(u8); +void sub_80FC998(u8 taskId); #endif // GUARD_CONTEST_LINK_80F57C4_H diff --git a/src/contest.c b/src/contest.c index 2e61b46294..2c56eb14cc 100644 --- a/src/contest.c +++ b/src/contest.c @@ -30,18 +30,25 @@ #include "tv.h" #include "scanline_effect.h" #include "util.h" +#include "contest_link_80F57C4.h" #define DESTROY_POINTER(ptr) \ free(ptr); \ ptr = NULL; -void sub_80DD590(void); void sub_80D782C(void); +void sub_80D7C7C(u8 taskId); +void sub_80D7CB4(u8 taskId); +void sub_80D7DAC(u8 taskId); +void sub_80D7DC8(u8 taskId); +void sub_80D7DE8(u8 taskId); +void sub_80D80C8(u8 taskId); +void sub_80D823C(void); +void sub_80DBF68(void); void sub_80DCE58(u8); +void sub_80DD590(void); bool8 sub_80D7E44(u8 *); void sub_80DE224(void); -void sub_80D7C7C(u8 taskId); -void sub_80D823C(void); void vblank_cb_battle(void); EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; @@ -53,7 +60,9 @@ EWRAM_DATA u8 gContestFinalStandings[4] = {0}; EWRAM_DATA u8 gUnknown_02039F24 = 0; EWRAM_DATA u8 gContestPlayerMonIndex = 0; EWRAM_DATA u8 gUnknown_02039F26[4] = {0}; -EWRAM_DATA bool8 gIsLinkContest = FALSE; +EWRAM_DATA u8 gIsLinkContest = 0; +// Bit 0: Is a link contest +// Bit 1: Link contest uses wireless adapter EWRAM_DATA u8 gUnknown_02039F2B = 0; EWRAM_DATA u16 gSpecialVar_ContestCategory = 0; EWRAM_DATA u16 gSpecialVar_ContestRank = 0; @@ -61,6 +70,9 @@ EWRAM_DATA u8 gUnknown_02039F30 = 0; EWRAM_DATA u8 gUnknown_02039F31 = 0; EWRAM_DATA struct ContestResources * gContestResources = NULL; EWRAM_DATA u8 gUnknown_02039F38 = 0; +EWRAM_DATA struct ContestWinner gUnknown_02039F3C = {0}; + +u32 gContestRngValue; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; @@ -89,7 +101,7 @@ void TaskDummy1(u8 taskId) void ResetLinkContestBoolean(void) { - gIsLinkContest = FALSE; + gIsLinkContest = 0; } void sub_80D7678(void) @@ -309,3 +321,78 @@ void sub_80D7B24(void) } } +void sub_80D7C7C(u8 taskId) +{ + if (!gPaletteFade.active) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_80D7CB4; + } +} + +void sub_80D7CB4(u8 taskId) +{ + if (gIsLinkContest & 1) + { + if (gIsLinkContest & 2) + { + switch (gTasks[taskId].data[0]) + { + case 0: + sub_80DBF68(); + gTasks[taskId].data[0]++; + // fallthrough + case 1: + if (sub_800A520()) + { + sub_800ADF8(); + gTasks[taskId].data[0]++; + } + return; + case 2: + if (sub_800A520() != TRUE) + return; + gTasks[taskId].data[0]++; + break; + } + } + + if (!gPaletteFade.active) + { + gPaletteFade.bufferTransferDisabled = FALSE; + if (!(gIsLinkContest & 2)) + sub_80DBF68(); + CreateTask(sub_80D7DAC, 0); + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = TaskDummy1; + } + } + else + { + gTasks[taskId].func = sub_80D80C8; + } +} + +void sub_80D7DAC(u8 taskId) +{ + SetTaskFuncWithFollowupFunc(taskId, sub_80FC998, sub_80D7DC8); +} + +void sub_80D7DC8(u8 taskId) +{ + gTasks[taskId].data[0] = 1; + gTasks[taskId].func = sub_80D7DE8; +} + +void sub_80D7DE8(u8 taskId) +{ + gTasks[taskId].data[0]--; + if (gTasks[taskId].data[0] <= 0) + { + GetMultiplayerId(); // unused return value + DestroyTask(taskId); + gTasks[gContestResources->field_0->mainTaskId].func = sub_80D80C8; + gRngValue = gContestRngValue; + } +} + diff --git a/src/item.c b/src/item.c index a17599db91..0c60c417d8 100644 --- a/src/item.c +++ b/src/item.c @@ -25,6 +25,8 @@ enum KEYITEMS_POCKET }; +EWRAM_DATA struct BagPocket gBagPockets[5] = {}; + u16 GetBagItemQuantity(u16* quantity) { return gSaveBlock2Ptr->encryptionKey ^ *quantity; diff --git a/sym_common.txt b/sym_common.txt index b0548a84cb..c59c301028 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -83,9 +83,7 @@ gUnknown_030060B0: @ 30060B0 gUnknown_030060B4: @ 30060B4 .space 0x4 -gUnknown_030060B8: @ 30060B8 - .space 0x4 - + .include "contest.o" .include "tv.o" gUnknown_03006130: @ 3006130 diff --git a/sym_ewram.txt b/sym_ewram.txt index d4a2ba4b63..ad1757eaaa 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -414,17 +414,10 @@ gUnknown_02039DD0: @ 2039DD0 .space 0x4 .include "src/map_name_popup.o" - .space 0x3 - -gBagPockets: @ 2039DD8 - .space 0x28 - + .include "src/item.o" .include "src/contest.o" .align 2 -gUnknown_02039F3C: @ 2039F3C - .space 0x20 - gUnknown_02039F5C: @ 2039F5C .space 0x1 From f9230e80aa1fd32d0428af9b684dcf4395148fc3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 2 May 2018 19:59:00 -0400 Subject: [PATCH 024/174] through vblank_cb_battle --- asm/contest.s | 514 +------------------------------------------- include/contest.h | 1 + include/gba/types.h | 11 + src/contest.c | 200 ++++++++++++++++- 4 files changed, 204 insertions(+), 522 deletions(-) diff --git a/asm/contest.s b/asm/contest.s index 0fa75185c8..4862bdb62e 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,518 +5,6 @@ .text - thumb_func_start sub_80D7E44 -sub_80D7E44: @ 80D7E44 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x40 - mov r10, r0 - ldrb r0, [r0] - cmp r0, 0x6 - bls _080D7E5A - b _080D80A4 -_080D7E5A: - lsls r0, 2 - ldr r1, =_080D7E68 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080D7E68: - .4byte _080D7E84 - .4byte _080D7EC8 - .4byte _080D7ED8 - .4byte _080D7F28 - .4byte _080D7F40 - .4byte _080D7F7C - .4byte _080D8004 -_080D7E84: - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - movs r1, 0xC0 - lsls r1, 19 - movs r4, 0x80 - lsls r4, 8 - movs r0, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl RequestDma3Fill - ldr r1, =0x06008000 - movs r0, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl RequestDma3Fill - ldr r1, =0x06010000 - movs r0, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl RequestDma3Fill - b _080D80AE - .pool -_080D7EC8: - ldr r0, =gContestMiscGfx - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - b _080D80AE - .pool -_080D7ED8: - ldr r0, =gContestAudienceGfx - ldr r4, =0x06002000 - adds r1, r4, 0 - bl LZDecompressVram - ldr r3, =0x02018000 - movs r5, 0x80 - lsls r5, 6 - ldr r1, =0x040000d4 - ldr r6, =0x84000400 - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x84 - lsls r7, 24 -_080D7EF4: - str r4, [r1] - str r3, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r4, r2 - adds r3, r2 - subs r5, r2 - cmp r5, r2 - bhi _080D7EF4 - str r4, [r1] - str r3, [r1, 0x4] - lsrs r0, r5, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - b _080D80AE - .pool -_080D7F28: - ldr r1, =gUnknown_08C16FA8 - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _080D80AE - .pool -_080D7F40: - ldr r1, =gUnknown_08C17170 - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0x2C] - ldr r2, =0x0201aa04 - ldr r0, =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, =0x84000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080D80AE - .pool -_080D7F7C: - ldr r0, =gUnknown_08C16E90 - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadCompressedPalette - ldr r5, =gPlttBufferUnfaded + 0x100 - ldr r6, =0x04000008 - adds r0, r5, 0 - mov r1, sp - adds r2, r6, 0 - bl CpuSet - ldr r0, =gContestPlayerMonIndex - mov r9, r0 - ldrb r0, [r0] - adds r0, 0x5 - lsls r0, 5 - ldr r1, =0xffffff00 - adds r1, r5 - mov r8, r1 - add r0, r8 - add r4, sp, 0x20 - adds r1, r4, 0 - adds r2, r6, 0 - bl CpuSet - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CpuSet - mov r2, r9 - ldrb r1, [r2] - adds r1, 0x5 - lsls r1, 5 - add r1, r8 - mov r0, sp - adds r2, r6, 0 - bl CpuSet - ldr r1, =0x0201a004 - ldr r0, =0x040000d4 - mov r2, r8 - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, =0x84000080 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_80D782C - b _080D80AE - .pool -_080D8004: - bl sub_80DD04C - bl sub_80DBF90 - bl sub_80DB2BC - bl sub_80DB120 - ldr r1, =gContestResources - ldr r1, [r1] - ldr r1, [r1] - movs r4, 0 - strb r0, [r1, 0x12] - bl sub_80DC2BC - bl sub_80DC4F0 - bl sub_80DC594 - bl sub_80DC5E8 - bl sub_80DC7EC - ldr r1, =gBattlerPositions - strb r4, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r3, 0x3 - strb r3, [r1, 0x2] - movs r2, 0x2 - strb r2, [r1, 0x3] - ldr r0, =gBattleTypeFlags - str r4, [r0] - ldr r4, =gBattlerAttacker - strb r2, [r4] - ldr r0, =gBattlerTarget - strb r3, [r0] - bl sub_80DB0C4 - ldr r2, =gBattlerSpriteIds - ldrb r1, [r4] - adds r1, r2 - strb r0, [r1] - bl sub_80DEA20 - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x3 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - b _080D80AE - .pool -_080D80A4: - movs r0, 0 - mov r1, r10 - strb r0, [r1] - movs r0, 0x1 - b _080D80B8 -_080D80AE: - mov r2, r10 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r0, 0 -_080D80B8: - add sp, 0x40 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80D7E44 - - thumb_func_start sub_80D80C8 -sub_80D80C8: @ 80D80C8 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, =gPaletteFade - ldrb r2, [r1, 0x8] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1, 0x8] - ldrb r1, [r1, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080D80F8 - ldr r0, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - strh r2, [r1, 0x8] - strh r2, [r1, 0xA] - ldr r0, =sub_80D8108 - str r0, [r1] -_080D80F8: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D80C8 - - thumb_func_start sub_80D8108 -sub_80D8108: @ 80D8108 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bhi _080D8208 - lsls r0, 2 - ldr r1, =_080D8138 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080D8138: - .4byte _080D814C - .4byte _080D8176 - .4byte _080D8194 - .4byte _080D81B0 - .4byte _080D8208 -_080D814C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0xA] - adds r1, r0, 0x1 - strh r1, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080D822C - movs r0, 0 - strh r0, [r4, 0xA] - movs r0, 0x61 - movs r1, 0 - bl PlaySE12WithPanning - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D822C -_080D8176: - ldr r1, =gBattle_BG1_Y - ldrh r0, [r1] - adds r0, 0x7 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA0 - ble _080D822C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - b _080D81FA - .pool -_080D8194: - bl sub_80DE350 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080D822C - .pool -_080D81B0: - movs r0, 0x8 - bl GetGpuReg - mov r1, sp - strh r0, [r1] - movs r0, 0xC - bl GetGpuReg - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - mov r3, sp - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - ldrb r0, [r4] - ands r1, r0 - strb r1, [r4] - mov r0, sp - ldrh r1, [r0] - movs r0, 0x8 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0xC - bl SetGpuReg - bl sub_80DDB0C - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 -_080D81FA: - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080D822C - .pool -_080D8208: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, 0x6] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080D822C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - strh r1, [r0, 0x8] - strh r1, [r0, 0xA] - ldr r1, =sub_80D833C - str r1, [r0] -_080D822C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D8108 - - thumb_func_start sub_80D823C -sub_80D823C: @ 80D823C - push {r4,r5,lr} - bl AnimateSprites - bl RunTasks - bl BuildOamBuffer - bl UpdatePaletteFade - movs r4, 0 -_080D8250: - ldr r5, =gUnknown_02039F38 - ldrb r0, [r5] - asrs r0, r4 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8266 - lsls r0, r4, 24 - lsrs r0, 24 - bl CopyBgTilemapBufferToVram -_080D8266: - adds r4, 0x1 - cmp r4, 0x3 - ble _080D8250 - movs r0, 0 - strb r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D823C - - thumb_func_start vblank_cb_battle -vblank_cb_battle: @ 80D827C - push {lr} - ldr r0, =gBattle_BG0_X - ldrh r1, [r0] - movs r0, 0x10 - bl SetGpuReg - ldr r0, =gBattle_BG0_Y - ldrh r1, [r0] - movs r0, 0x12 - bl SetGpuReg - ldr r0, =gBattle_BG1_X - ldrh r1, [r0] - movs r0, 0x14 - bl SetGpuReg - ldr r0, =gBattle_BG1_Y - ldrh r1, [r0] - movs r0, 0x16 - bl SetGpuReg - ldr r0, =gBattle_BG2_X - ldrh r1, [r0] - movs r0, 0x18 - bl SetGpuReg - ldr r0, =gBattle_BG2_Y - ldrh r1, [r0] - movs r0, 0x1A - bl SetGpuReg - ldr r0, =gBattle_BG3_X - ldrh r1, [r0] - movs r0, 0x1C - bl SetGpuReg - ldr r0, =gBattle_BG3_Y - ldrh r1, [r0] - movs r0, 0x1E - bl SetGpuReg - ldr r0, =gBattle_WIN0H - ldrh r1, [r0] - movs r0, 0x40 - bl SetGpuReg - ldr r0, =gBattle_WIN0V - ldrh r1, [r0] - movs r0, 0x44 - bl SetGpuReg - ldr r0, =gBattle_WIN1H - ldrh r1, [r0] - movs r0, 0x42 - bl SetGpuReg - ldr r0, =gBattle_WIN1V - ldrh r1, [r0] - movs r0, 0x46 - bl SetGpuReg - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .pool - thumb_func_end vblank_cb_battle - thumb_func_start sub_80D833C sub_80D833C: @ 80D833C push {r4,r5,lr} @@ -13321,7 +12809,7 @@ sub_80DED4C: @ 80DED4C thumb_func_start sub_80DED60 sub_80DED60: @ 80DED60 - ldr r2, =gUnknown_02039F38 + ldr r2, =sContestBgCopyFlags movs r1, 0x1 lsls r1, r0 ldrb r0, [r2] diff --git a/include/contest.h b/include/contest.h index 250929de7b..45fc9b4779 100644 --- a/include/contest.h +++ b/include/contest.h @@ -401,6 +401,7 @@ struct ContestResources void * field_3c; }; +#define shared15800 (gHeap + 0x18000) #define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000)) extern struct ContestResources *gContestResources; diff --git a/include/gba/types.h b/include/gba/types.h index 9f63489aa9..a7dbf3e030 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -28,6 +28,17 @@ typedef u8 bool8; typedef u16 bool16; typedef u32 bool32; +struct BgCnt +{ + u16 priority:2; + u16 charBaseBlock:2; + u16 dummy:4; + u16 screenBaseBlock:5; + u16 areaOverflowMode:1; + u16 screenSize:2; +}; +typedef volatile struct BgCnt vBgCnt; + struct PlttData { u16 r:5; // red diff --git a/src/contest.c b/src/contest.c index 2c56eb14cc..6d9bfe460e 100644 --- a/src/contest.c +++ b/src/contest.c @@ -31,6 +31,7 @@ #include "scanline_effect.h" #include "util.h" #include "contest_link_80F57C4.h" +#include "dma3.h" #define DESTROY_POINTER(ptr) \ free(ptr); \ @@ -42,14 +43,29 @@ void sub_80D7CB4(u8 taskId); void sub_80D7DAC(u8 taskId); void sub_80D7DC8(u8 taskId); void sub_80D7DE8(u8 taskId); -void sub_80D80C8(u8 taskId); -void sub_80D823C(void); -void sub_80DBF68(void); -void sub_80DCE58(u8); -void sub_80DD590(void); bool8 sub_80D7E44(u8 *); +void sub_80D80C8(u8 taskId); +void sub_80D8108(u8 taskId); +void sub_80DE350(void); +void sub_80DDB0C(void); +void sub_80D833C(u8 taskId); +void sub_80D823C(void); +u8 sub_80DB0C4(void); +u8 sub_80DB120(void); +void sub_80DB2BC(void); +void sub_80DBF68(void); +void sub_80DBF90(void); +void sub_80DC2BC(void); +void sub_80DC4F0(void); +void sub_80DC594(void); +void sub_80DC5E8(void); +void sub_80DC7EC(void); +void sub_80DCE58(u8); +void sub_80DD04C(void); +void sub_80DD590(void); void sub_80DE224(void); void vblank_cb_battle(void); +void sub_80DEA20(void); EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; EWRAM_DATA s16 gUnknown_02039F00[4] = {0}; @@ -69,7 +85,7 @@ EWRAM_DATA u16 gSpecialVar_ContestRank = 0; EWRAM_DATA u8 gUnknown_02039F30 = 0; EWRAM_DATA u8 gUnknown_02039F31 = 0; EWRAM_DATA struct ContestResources * gContestResources = NULL; -EWRAM_DATA u8 gUnknown_02039F38 = 0; +EWRAM_DATA u8 sContestBgCopyFlags = 0; EWRAM_DATA struct ContestWinner gUnknown_02039F3C = {0}; u32 gContestRngValue; @@ -77,7 +93,7 @@ u32 gContestRngValue; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; extern u16 gBattle_BG1_X; -extern u16 gBattle_BG1_Y; +extern s16 gBattle_BG1_Y; extern u16 gBattle_BG2_X; extern u16 gBattle_BG2_Y; extern u16 gBattle_BG3_X; @@ -91,9 +107,10 @@ extern const u8 gContestMiscGfx[]; extern const u8 gContestAudienceGfx[]; extern const u8 gUnknown_08C16FA8[]; extern const u8 gUnknown_08C16E90[]; +extern const u8 gUnknown_08C17170[]; +extern const u16 gUnknown_08587C30[]; extern const struct BgTemplate gUnknown_08587F34[4]; extern const struct WindowTemplate gUnknown_08587F44[]; -extern const u16 gUnknown_08587C30[]; void TaskDummy1(u8 taskId) { @@ -271,7 +288,7 @@ void sub_80D7B24(void) switch (gMain.state) { case 0: - gUnknown_02039F38 = 0; + sContestBgCopyFlags = 0; sub_80D7988(); AllocateMonSpritesGfx(); DESTROY_POINTER(gMonSpritesGfxPtr->firstDecompressed); @@ -396,3 +413,168 @@ void sub_80D7DE8(u8 taskId) } } +u8 sub_80D7E44(u8 *a) +{ + u16 sp0[16]; + u16 sp20[16]; + + switch (*a) + { + case 0: + gPaletteFade.bufferTransferDisabled = TRUE; + RequestDma3Fill(0, (void *)VRAM, 0x8000, 1); + RequestDma3Fill(0, (void *)VRAM + 0x8000, 0x8000, 1); + RequestDma3Fill(0, (void *)VRAM + 0x10000, 0x8000, 1); + break; + case 1: + LZDecompressVram(gContestMiscGfx, (void *)VRAM); + break; + case 2: + LZDecompressVram(gContestAudienceGfx, (void *)(VRAM + 0x2000)); + DmaCopyLarge32(3, (void *)(VRAM + 0x2000), shared15800, 0x2000, 0x1000); + break; + case 3: + CopyToBgTilemapBuffer(3, gUnknown_08C16FA8, 0, 0); + CopyBgTilemapBufferToVram(3); + break; + case 4: + CopyToBgTilemapBuffer(2, gUnknown_08C17170, 0, 0); + CopyBgTilemapBufferToVram(2); + DmaCopy32Defvars(3, gContestResources->field_24[2], shared18000.unk18A04, 0x800); + break; + case 5: + LoadCompressedPalette(gUnknown_08C16E90, 0, 0x200); + CpuCopy32(gPlttBufferUnfaded + 128, sp0, 16 * sizeof(u16)); + CpuCopy32(gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, sp20, 16 * sizeof(u16)); + CpuCopy32(sp20, gPlttBufferUnfaded + 128, 16 * sizeof(u16)); + CpuCopy32(sp0, gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, 16 * sizeof(u16)); + DmaCopy32Defvars(3, gPlttBufferUnfaded, shared18000.unk18004, 0x200); + sub_80D782C(); + break; + case 6: + sub_80DD04C(); + sub_80DBF90(); + sub_80DB2BC(); + gContestResources->field_0->unk19216 = sub_80DB120(); + sub_80DC2BC(); + sub_80DC4F0(); + sub_80DC594(); + sub_80DC5E8(); + sub_80DC7EC(); + gBattlerPositions[0] = 0; + gBattlerPositions[1] = 1; + gBattlerPositions[2] = 3; + gBattlerPositions[3] = 2; + gBattleTypeFlags = 0; + gBattlerAttacker = 2; + gBattlerTarget = 3; + gBattlerSpriteIds[gBattlerAttacker] = sub_80DB0C4(); + sub_80DEA20(); + CopyBgTilemapBufferToVram(3); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + ShowBg(3); + ShowBg(2); + ShowBg(0); + ShowBg(1); + break; + default: + *a = 0; + return 1; + } + + (*a)++; + return 0; +} + +void sub_80D80C8(u8 taskId) +{ + gPaletteFade.bufferTransferDisabled = FALSE; + if (!gPaletteFade.active) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].func = sub_80D8108; + } +} + + +void sub_80D8108(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (gTasks[taskId].data[1]++ <= 60) + break; + gTasks[taskId].data[1] = 0; + PlaySE12WithPanning(SE_C_MAKU_U, 0); + gTasks[taskId].data[0]++; + break; + case 1: + if ((gBattle_BG1_Y += 7) <= 160) + break; + gTasks[taskId].data[0]++; + break; + case 2: + sub_80DE350(); + gTasks[taskId].data[0]++; + break; + case 3: + { + u16 bg0Cnt = GetGpuReg(REG_OFFSET_BG0CNT); + u16 bg2Cnt = GetGpuReg(REG_OFFSET_BG2CNT); + ((struct BgCnt *)&bg0Cnt)->priority = 0; + ((struct BgCnt *)&bg2Cnt)->priority = 0; + SetGpuReg(REG_OFFSET_BG0CNT, bg0Cnt); + SetGpuReg(REG_OFFSET_BG2CNT, bg2Cnt); + sub_80DDB0C(); + gTasks[taskId].data[0]++; + break; + } + case 4: + default: + if (gContestResources->field_0->unk1920A_6) + break; + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].func = sub_80D833C; + break; + } +} + +void sub_80D823C(void) +{ + s32 i; + + AnimateSprites(); + RunTasks(); + BuildOamBuffer(); + UpdatePaletteFade(); + + for (i = 0; i < 4; i++) + { + if ((sContestBgCopyFlags >> i) & 1) + CopyBgTilemapBufferToVram(i); + } + sContestBgCopyFlags = 0; +} + +void vblank_cb_battle(void) +{ + SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X); + SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y); + SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); + SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); + SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X); + SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y); + SetGpuReg(REG_OFFSET_BG3HOFS, gBattle_BG3_X); + SetGpuReg(REG_OFFSET_BG3VOFS, gBattle_BG3_Y); + SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H); + SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V); + SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN1H); + SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN1V); + TransferPlttBuffer(); + LoadOam(); + ProcessSpriteCopyRequests(); + ScanlineEffect_InitHBlankDmaTransfer(); +} From 7d446a9ef7737874f772f7537de97a8b8be2d7d4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 3 May 2018 08:51:52 -0400 Subject: [PATCH 025/174] through sub_80D8490 --- asm/contest.s | 298 --------------------------------------- include/contest_effect.h | 14 ++ include/event_scripts.h | 4 + include/strings.h | 2 + src/contest.c | 111 ++++++++++++++- 5 files changed, 127 insertions(+), 302 deletions(-) create mode 100644 include/contest_effect.h diff --git a/asm/contest.s b/asm/contest.s index 4862bdb62e..e3c917422a 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,304 +5,6 @@ .text - thumb_func_start sub_80D833C -sub_80D833C: @ 80D833C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _080D840C - ldr r0, =gBattle_BG0_Y - strh r1, [r0] - ldr r0, =gBattle_BG2_Y - strh r1, [r0] - bl sub_80DCD48 - ldr r1, =gPlttBufferUnfaded - ldr r2, =0x0201a204 - ldr r0, =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, =0x84000100 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, =gStringVar1 - ldr r1, =gContestResources - ldr r1, [r1] - ldr r1, [r1] - ldrb r1, [r1, 0x1] - adds r1, 0x1 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r0, =gContestPlayerMonIndex - ldrb r0, [r0] - bl sub_80DBCA8 - lsls r0, 24 - cmp r0, 0 - bne _080D83CC - ldr r0, =gDisplayedStringBattle - ldr r1, =gText_0827D507 - bl StringCopy - b _080D83D4 - .pool -_080D83CC: - ldr r0, =gDisplayedStringBattle - ldr r1, =gText_0827D531 - bl StringCopy -_080D83D4: - bl sub_80DB89C - ldr r4, =gStringVar4 - ldr r1, =gDisplayedStringBattle - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80DEC30 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080D841A - .pool -_080D840C: - bl sub_80DED4C - cmp r0, 0 - bne _080D841A - strh r0, [r4, 0x8] - ldr r0, =sub_80D8424 - str r0, [r4] -_080D841A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D833C - - thumb_func_start sub_80D8424 -sub_80D8424: @ 80D8424 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080D843C - cmp r1, 0x2 - bne _080D8482 -_080D843C: - movs r0, 0x5 - bl PlaySE - ldr r0, =gContestPlayerMonIndex - ldrb r0, [r0] - bl sub_80DBCA8 - lsls r0, 24 - cmp r0, 0 - bne _080D8474 - movs r0, 0x1 - bl sub_80DC490 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80D8490 - b _080D8480 - .pool -_080D8474: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80D8894 -_080D8480: - str r0, [r1] -_080D8482: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D8424 - - thumb_func_start sub_80D8490 -sub_80D8490: @ 80D8490 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, =gBattle_BG0_Y - movs r1, 0xA0 - strh r1, [r0] - ldr r0, =gBattle_BG2_Y - strh r1, [r0] - movs r6, 0 - ldr r0, =gContestPlayerMonIndex - mov r8, r0 - ldr r2, =gContestMons + 30 - mov r10, r2 - ldr r7, =gContestResources -_080D84B8: - lsls r1, r6, 1 - mov r0, r8 - ldrb r2, [r0] - lsls r0, r2, 6 - adds r1, r0 - add r1, r10 - ldrh r4, [r1] - add r5, sp, 0x4 - ldr r0, [r7] - ldr r1, [r0, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x8] - cmp r0, 0 - beq _080D853C - adds r0, r2, 0 - bl sub_80DE1E8 - lsls r0, 24 - cmp r0, 0 - beq _080D853C - ldr r0, [r7] - mov r2, r8 - ldrb r1, [r2] - ldr r2, [r0, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x8] - adds r1, r4, 0 - bl AreMovesContestCombo - lsls r0, 24 - cmp r0, 0 - beq _080D853C - ldr r0, [r7] - mov r2, r8 - ldrb r1, [r2] - ldr r2, [r0, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D853C - add r0, sp, 0x4 - ldr r1, =gText_ColorLightShadowDarkGrey - b _080D8566 - .pool -_080D853C: - cmp r4, 0 - beq _080D856C - ldr r0, [r7] - mov r2, r8 - ldrb r1, [r2] - ldr r2, [r0, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x8] - cmp r0, r4 - bne _080D856C - ldr r0, =gContestMoves - lsls r1, r4, 3 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x3 - beq _080D856C - add r0, sp, 0x4 - ldr r1, =gText_ColorBlue -_080D8566: - bl StringCopy - adds r5, r0, 0 -_080D856C: - movs r0, 0xD - adds r1, r4, 0 - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - adds r0, r5, 0 - bl StringCopy - adds r4, r6, 0x5 - lsls r0, r4, 24 - lsrs r0, 24 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x7 - str r0, [sp] - adds r0, r4, 0 - add r1, sp, 0x4 - movs r2, 0x5 - movs r3, 0x1 - bl sub_80DEBD0 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _080D84B8 - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bl sub_80D880C - ldr r2, =gContestMons - ldr r0, [r4] - ldr r0, [r0] - ldrb r1, [r0] - lsls r1, 1 - ldr r0, =gContestPlayerMonIndex - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - bl prints_contest_move_description - ldr r1, =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_80D8610 - str r1, [r0] - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D8490 - thumb_func_start sub_80D8610 sub_80D8610: @ 80D8610 push {r4-r7,lr} diff --git a/include/contest_effect.h b/include/contest_effect.h new file mode 100644 index 0000000000..4d680be9e8 --- /dev/null +++ b/include/contest_effect.h @@ -0,0 +1,14 @@ +#ifndef GUARD_CONTEST_EFFECT_H +#define GUARD_CONTEST_EFFECT_H + +struct ContestMove +{ + u8 effect; + u8 contestCategory:3; + u8 comboStarterId; + u8 comboMoves[4]; +}; + +extern const struct ContestMove gContestMoves[]; + +#endif //GUARD_CONTEST_EFFECT_H diff --git a/include/event_scripts.h b/include/event_scripts.h index eb523a4878..b26d1c1644 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -394,4 +394,8 @@ extern const u8 Route111_EventScript_2907F0[]; extern const u8 LittlerootTown_BrendansHouse_2F_EventScript_1F863F[]; extern const u8 LittlerootTown_MaysHouse_2F_EventScript_1F958F[]; +//contest_strings +extern const u8 gText_0827D507[]; +extern const u8 gText_0827D531[]; + #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/strings.h b/include/strings.h index 7c81dbcfba..7a96dc0365 100644 --- a/include/strings.h +++ b/include/strings.h @@ -429,5 +429,7 @@ extern const u8 gText_TooImportantToToss[]; extern const u8 gText_ConfirmTossItems[]; extern const u8 gText_MoveVar1Where[]; +extern const u8 gText_ColorLightShadowDarkGrey[]; +extern const u8 gText_ColorBlue[]; #endif //GUARD_STRINGS_H diff --git a/src/contest.c b/src/contest.c index 6d9bfe460e..95efd62e0b 100644 --- a/src/contest.c +++ b/src/contest.c @@ -32,6 +32,10 @@ #include "util.h" #include "contest_link_80F57C4.h" #include "dma3.h" +#include "battle_message.h" +#include "event_scripts.h" +#include "strings.h" +#include "contest_effect.h" #define DESTROY_POINTER(ptr) \ free(ptr); \ @@ -46,26 +50,42 @@ void sub_80D7DE8(u8 taskId); bool8 sub_80D7E44(u8 *); void sub_80D80C8(u8 taskId); void sub_80D8108(u8 taskId); -void sub_80DE350(void); -void sub_80DDB0C(void); -void sub_80D833C(u8 taskId); +void vblank_cb_battle(void); void sub_80D823C(void); +void sub_80D833C(u8 taskId); +void sub_80D8424(u8); +bool8 AreMovesContestCombo(u16, u16); +void sub_80D8610(u8); +void sub_80D880C(s8); +void prints_contest_move_description(u16); +void sub_80D8490(u8); +void sub_80D8894(u8); u8 sub_80DB0C4(void); u8 sub_80DB120(void); void sub_80DB2BC(void); +void sub_80DB89C(void); +bool8 sub_80DBCA8(u8); void sub_80DBF68(void); void sub_80DBF90(void); void sub_80DC2BC(void); +void sub_80DC490(bool8); void sub_80DC4F0(void); void sub_80DC594(void); void sub_80DC5E8(void); void sub_80DC7EC(void); +void sub_80DCD48(void); void sub_80DCE58(u8); void sub_80DD04C(void); void sub_80DD590(void); +void sub_80DDB0C(void); +bool8 sub_80DE1E8(u8); void sub_80DE224(void); -void vblank_cb_battle(void); +void sub_80DE350(void); void sub_80DEA20(void); +void sub_80DEBD0(u32, u8 *, u8, u8, u8); +void sub_80DEC30(u8 *, u8); +bool32 sub_80DED4C(void); + EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; EWRAM_DATA s16 gUnknown_02039F00[4] = {0}; @@ -578,3 +598,86 @@ void vblank_cb_battle(void) ProcessSpriteCopyRequests(); ScanlineEffect_InitHBlankDmaTransfer(); } + +void sub_80D833C(u8 taskId) +{ + if (gTasks[taskId].data[0] == 0) + { + gBattle_BG0_Y = 0; + gBattle_BG2_Y = 0; + sub_80DCD48(); + DmaCopy32Defvars(3, gPlttBufferUnfaded, shared18000.unk18204, 0x400); + ConvertIntToDecimalStringN(gStringVar1, gContestResources->field_0->turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); + if (!sub_80DBCA8(gContestPlayerMonIndex)) + StringCopy(gDisplayedStringBattle, gText_0827D507); + else + StringCopy(gDisplayedStringBattle, gText_0827D531); + sub_80DB89C(); + StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle); + sub_80DEC30(gStringVar4, 1); + gTasks[taskId].data[0]++; + } + else + { + if (!sub_80DED4C()) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_80D8424; + } + } +} + +void sub_80D8424(u8 taskId) +{ + if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys == B_BUTTON)) + { + PlaySE(SE_SELECT); + if (!sub_80DBCA8(gContestPlayerMonIndex)) + { + sub_80DC490(TRUE); + gTasks[taskId].func = sub_80D8490; + } + else + { + gTasks[taskId].func = sub_80D8894; + } + } +} + +void sub_80D8490(u8 taskId) +{ + u8 i; + u8 sp8[32]; + + gBattle_BG0_Y = 0xA0; + gBattle_BG2_Y = 0xA0; + + for (i = 0; i < 4; i++) + { + u16 move = gContestMons[gContestPlayerMonIndex].moves[i]; + u8 *r5 = sp8; + + if (gContestResources->field_4[gContestPlayerMonIndex].prevMove != MOVE_NONE + && sub_80DE1E8(gContestPlayerMonIndex) + && AreMovesContestCombo(gContestResources->field_4[gContestPlayerMonIndex].prevMove, move) != 0 + && gContestResources->field_4[gContestPlayerMonIndex].hasJudgesAttention) + { + r5 = StringCopy(sp8, gText_ColorLightShadowDarkGrey); + } + else if (move != 0 + && gContestResources->field_4[gContestPlayerMonIndex].prevMove == move + && gContestMoves[move].effect != CONTEST_EFFECT_REPETITION_NOT_BORING) + { + // Gray the text because it is a repeated move + r5 = StringCopy(sp8, gText_ColorBlue); + } + r5 = StringCopy(r5, gMoveNames[move]); + + FillWindowPixelBuffer(i + 5, 0); + sub_80DEBD0(i + 5, sp8, 5, 1, 7); + } + + sub_80D880C(gContestResources->field_0->playerMoveChoice); + prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]); + gTasks[taskId].func = sub_80D8610; +} From 210cedd077d175937b5b12930d6a1cce2a367166 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 3 May 2018 21:01:22 -0400 Subject: [PATCH 026/174] through sub_80D883C --- asm/contest.s | 282 -------------------------------------------------- src/contest.c | 83 ++++++++++++++- 2 files changed, 80 insertions(+), 285 deletions(-) diff --git a/asm/contest.s b/asm/contest.s index e3c917422a..fc579783cc 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,288 +5,6 @@ .text - thumb_func_start sub_80D8610 -sub_80D8610: @ 80D8610 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - ldr r3, =gMain - ldr r1, =gContestMons - ldr r0, =gContestPlayerMonIndex - ldrb r0, [r0] - lsls r0, 6 - adds r1, 0x1E - adds r1, r0, r1 - movs r2, 0x3 -_080D8628: - ldrh r0, [r1] - cmp r0, 0 - beq _080D8634 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080D8634: - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _080D8628 - ldrh r0, [r3, 0x2E] - movs r5, 0x1 - ands r5, r0 - cmp r5, 0 - beq _080D8670 - movs r0, 0x5 - bl PlaySE - ldr r0, =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80D8894 - str r0, [r1] - b _080D87FA - .pool -_080D8670: - ldrh r0, [r3, 0x30] - cmp r0, 0x20 - bne _080D8678 - b _080D87FA -_080D8678: - cmp r0, 0x20 - bgt _080D8682 - cmp r0, 0x2 - beq _080D868E - b _080D87FA -_080D8682: - cmp r0, 0x40 - beq _080D8730 - cmp r0, 0x80 - bne _080D868C - b _080D879C -_080D868C: - b _080D87FA -_080D868E: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_80DC490 - ldr r0, =gStringVar1 - ldr r1, =gContestResources - ldr r1, [r1] - ldr r1, [r1] - ldrb r1, [r1, 0x1] - adds r1, 0x1 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r0, =gContestPlayerMonIndex - ldrb r0, [r0] - bl sub_80DBCA8 - lsls r0, 24 - cmp r0, 0 - bne _080D86DC - ldr r0, =gDisplayedStringBattle - ldr r1, =gText_0827D507 - bl StringCopy - b _080D86E4 - .pool -_080D86DC: - ldr r0, =gDisplayedStringBattle - ldr r1, =gText_0827D531 - bl StringCopy -_080D86E4: - bl sub_80DB89C - ldr r4, =gStringVar4 - ldr r1, =gDisplayedStringBattle - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_80DEC30 - ldr r0, =gBattle_BG0_Y - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG2_Y - strh r1, [r0] - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_80D8424 - str r1, [r0] - b _080D87FA - .pool -_080D8730: - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bl sub_80D883C - ldr r0, [r4] - ldr r1, [r0] - ldrb r0, [r1] - cmp r0, 0 - bne _080D8754 - subs r0, r6, 0x1 - b _080D8756 - .pool -_080D8754: - subs r0, 0x1 -_080D8756: - strb r0, [r1] - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bl sub_80D880C - ldr r2, =gContestMons - ldr r0, [r4] - ldr r0, [r0] - ldrb r1, [r0] - lsls r1, 1 - ldr r0, =gContestPlayerMonIndex - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - bl prints_contest_move_description - cmp r6, 0x1 - bls _080D87FA - movs r0, 0x5 - bl PlaySE - b _080D87FA - .pool -_080D879C: - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bl sub_80D883C - ldr r0, [r4] - ldr r1, [r0] - ldrb r2, [r1] - subs r0, r6, 0x1 - cmp r2, r0 - bne _080D87C0 - strb r5, [r1] - b _080D87C4 - .pool -_080D87C0: - adds r0, r2, 0x1 - strb r0, [r1] -_080D87C4: - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bl sub_80D880C - ldr r2, =gContestMons - ldr r0, [r4] - ldr r0, [r0] - ldrb r1, [r0] - lsls r1, 1 - ldr r0, =gContestPlayerMonIndex - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - bl prints_contest_move_description - cmp r6, 0x1 - bls _080D87FA - movs r0, 0x5 - bl PlaySE -_080D87FA: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D8610 - - thumb_func_start sub_80D880C -sub_80D880C: @ 80D880C - push {lr} - sub sp, 0x10 - adds r3, r0, 0 - lsls r3, 25 - movs r0, 0xF8 - lsls r0, 21 - adds r3, r0 - lsrs r3, 24 - movs r0, 0x2 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x37 - movs r2, 0 - bl sub_80DECB8 - add sp, 0x10 - pop {r0} - bx r0 - thumb_func_end sub_80D880C - - thumb_func_start sub_80D883C -sub_80D883C: @ 80D883C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - adds r4, r0, 0 - lsls r4, 24 - asrs r4, 23 - adds r3, r4, 0 - adds r3, 0x1F - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - mov r8, r0 - str r0, [sp] - movs r5, 0x1 - str r5, [sp, 0x4] - movs r6, 0x11 - str r6, [sp, 0x8] - str r5, [sp, 0xC] - movs r1, 0xB - movs r2, 0 - bl sub_80DECB8 - adds r4, 0x20 - lsls r4, 24 - lsrs r4, 24 - mov r0, r8 - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r5, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xB - movs r2, 0 - adds r3, r4, 0 - bl sub_80DECB8 - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D883C - thumb_func_start sub_80D8894 sub_80D8894: @ 80D8894 push {r4,r5,lr} diff --git a/src/contest.c b/src/contest.c index 95efd62e0b..4ff6cd4d3c 100644 --- a/src/contest.c +++ b/src/contest.c @@ -54,11 +54,10 @@ void vblank_cb_battle(void); void sub_80D823C(void); void sub_80D833C(u8 taskId); void sub_80D8424(u8); -bool8 AreMovesContestCombo(u16, u16); void sub_80D8610(u8); -void sub_80D880C(s8); -void prints_contest_move_description(u16); void sub_80D8490(u8); +void sub_80D880C(s8); +void sub_80D883C(s8); void sub_80D8894(u8); u8 sub_80DB0C4(void); u8 sub_80DB120(void); @@ -85,6 +84,9 @@ void sub_80DEA20(void); void sub_80DEBD0(u32, u8 *, u8, u8, u8); void sub_80DEC30(u8 *, u8); bool32 sub_80DED4C(void); +bool8 AreMovesContestCombo(u16, u16); +void prints_contest_move_description(u16); +void sub_80DECB8(u8, u16, u8, u8, u8, u8, u8, u8); EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; @@ -681,3 +683,78 @@ void sub_80D8490(u8 taskId) prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]); gTasks[taskId].func = sub_80D8610; } + +void sub_80D8610(u8 taskId) +{ + u8 numMoves = 0; + s32 i; + + for (i = 0; i < 4; i++) + { + if (gContestMons[gContestPlayerMonIndex].moves[i] != MOVE_NONE) + numMoves++; + } + + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gTasks[taskId].func = sub_80D8894; + } + else + { + switch (gMain.newAndRepeatedKeys) + { + case B_BUTTON: + PlaySE(SE_SELECT); + sub_80DC490(FALSE); + ConvertIntToDecimalStringN(gStringVar1, gContestResources->field_0->turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); + if (!sub_80DBCA8(gContestPlayerMonIndex)) + StringCopy(gDisplayedStringBattle, gText_0827D507); + else + StringCopy(gDisplayedStringBattle, gText_0827D531); + sub_80DB89C(); + StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle); + sub_80DEC30(gStringVar4, 0); + gBattle_BG0_Y = 0; + gBattle_BG2_Y = 0; + gTasks[taskId].func = sub_80D8424; + break; + case DPAD_LEFT: + case DPAD_RIGHT: + break; + case DPAD_UP: + sub_80D883C(gContestResources->field_0->playerMoveChoice); + if (gContestResources->field_0->playerMoveChoice == 0) + gContestResources->field_0->playerMoveChoice = numMoves - 1; + else + gContestResources->field_0->playerMoveChoice--; + sub_80D880C(gContestResources->field_0->playerMoveChoice); + prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]); + if (numMoves > 1) + PlaySE(SE_SELECT); + break; + case DPAD_DOWN: + sub_80D883C(gContestResources->field_0->playerMoveChoice); + if (gContestResources->field_0->playerMoveChoice == numMoves - 1) + gContestResources->field_0->playerMoveChoice = 0; + else + gContestResources->field_0->playerMoveChoice++; + sub_80D880C(gContestResources->field_0->playerMoveChoice); + prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]); + if (numMoves > 1) + PlaySE(SE_SELECT); + break; + } + } +} + +void sub_80D880C(s8 a0) +{ + sub_80DECB8(2, 55, 0, 31 + a0 * 2, 2, 2, 17, 1); +} + +void sub_80D883C(s8 a0) +{ + sub_80DECB8(2, 11, 0, 31 + a0 * 2, 2, 1, 17, 1); + sub_80DECB8(2, 11, 0, 32 + a0 * 2, 2, 1, 17, 1); +} From f05acd88d57f6059d0cb479312bf11ffaa9774c5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 3 May 2018 22:29:53 -0400 Subject: [PATCH 027/174] sub_80D8A88 --- asm/contest.s | 295 -------------------------------------------------- src/contest.c | 114 ++++++++++++++++++- 2 files changed, 109 insertions(+), 300 deletions(-) diff --git a/asm/contest.s b/asm/contest.s index fc579783cc..f233849a75 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,301 +5,6 @@ .text - thumb_func_start sub_80D8894 -sub_80D8894: @ 80D8894 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gIsLinkContest - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D890C - ldr r4, =gContestPlayerMonIndex - ldrb r0, [r4] - bl sub_80DB8B8 - ldr r1, =gContestResources - ldr r1, [r1] - ldrb r2, [r4] - ldr r3, [r1, 0x4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r3 - strh r0, [r1, 0x6] - ldr r4, =sub_80FC9F8 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =sub_80D892C - adds r1, r4, 0 - bl SetTaskFuncWithFollowupFunc - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =TaskDummy1 - str r1, [r0] - bl sub_80DBF68 - movs r0, 0 - bl sub_80DC490 - b _080D891E - .pool -_080D890C: - bl sub_80DB918 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80D895C - str r0, [r1] -_080D891E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D8894 - - thumb_func_start sub_80D892C -sub_80D892C: @ 80D892C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r2, =gTasks - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, 0x8] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_80D895C - str r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D892C - - thumb_func_start sub_80D895C -sub_80D895C: @ 80D895C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - bl sub_80DB89C - ldr r0, =gBattle_BG0_Y - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG2_Y - strh r1, [r0] - movs r0, 0 - bl sub_80DC490 - movs r6, 0 - movs r5, 0xA0 - lsls r5, 19 -_080D897C: - lsrs r4, r5, 24 - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x80 - lsls r0, 17 - adds r5, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _080D897C - movs r0, 0 - bl sub_80DED60 - ldr r1, =gPlttBufferFaded - ldr r0, =0x0201a604 - movs r2, 0x80 - lsls r2, 3 - ldr r4, =0x040000d4 - str r1, [r4] - str r0, [r4, 0x4] - lsrs r1, r2, 2 - movs r3, 0x84 - lsls r3, 24 - orrs r1, r3 - str r1, [r4, 0x8] - ldr r1, [r4, 0x8] - ldr r1, =0xfffffc00 - adds r0, r1 - movs r1, 0 - bl LoadPalette - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - strh r1, [r0, 0xA] - ldr r1, =sub_80D8A04 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D895C - - thumb_func_start sub_80D8A04 -sub_80D8A04: @ 80D8A04 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080D8A42 - movs r0, 0 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080D8A42 - bl sub_80DDBE8 - movs r0, 0x1 - bl sub_80DE69C - ldr r0, =sub_80D8A50 - str r0, [r4] -_080D8A42: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D8A04 - - thumb_func_start sub_80D8A50 -sub_80D8A50: @ 80D8A50 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0, 0x6] - movs r0, 0x90 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _080D8A76 - ldr r0, =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80D8A88 - str r0, [r1] -_080D8A76: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D8A50 - - thumb_func_start sub_80D8A88 -sub_80D8A88: @ 80D8A88 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gTasks - lsls r3, r6, 2 - adds r1, r3, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080D8B18 - ldr r2, =gContestResources - ldr r0, [r2] - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x10] - ldr r0, [r2] - ldr r1, [r0] - ldr r0, =gRngValue - ldr r0, [r0] - str r0, [r1, 0x18] - ldr r0, =gIsLinkContest - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - adds r7, r3, 0 - cmp r0, 0 - beq _080D8B08 - bl sub_80DA8A4 - lsls r0, 24 - cmp r0, 0 - beq _080D8B08 - movs r4, 0 - ldr r1, =gUnknown_02039F30 - ldrb r0, [r1] - cmp r0, 0x3 - bgt _080D8B08 - adds r5, r1, 0 -_080D8ADE: - ldrb r0, [r5] - adds r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl sub_80DB8B8 - ldr r1, =gContestResources - ldr r1, [r1] - ldrb r2, [r5] - adds r2, r4 - ldr r3, [r1, 0x4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r3 - strh r0, [r1, 0x6] - adds r4, 0x1 - ldrb r0, [r5] - adds r0, r4, r0 - cmp r0, 0x3 - ble _080D8ADE -_080D8B08: - ldr r1, =gTasks - adds r0, r7, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, =sub_80D8B38 - str r1, [r0] -_080D8B18: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80D8A88 - thumb_func_start sub_80D8B38 sub_80D8B38: @ 80D8B38 push {r4-r7,lr} diff --git a/src/contest.c b/src/contest.c index 4ff6cd4d3c..6d4fbae4f9 100644 --- a/src/contest.c +++ b/src/contest.c @@ -53,16 +53,25 @@ void sub_80D8108(u8 taskId); void vblank_cb_battle(void); void sub_80D823C(void); void sub_80D833C(u8 taskId); -void sub_80D8424(u8); -void sub_80D8610(u8); -void sub_80D8490(u8); +void sub_80D8424(u8 taskId); +void sub_80D8610(u8 taskId); +void sub_80D8490(u8 taskId); void sub_80D880C(s8); void sub_80D883C(s8); -void sub_80D8894(u8); +void sub_80D8894(u8 taskId); +void sub_80D892C(u8 taskId); +void sub_80D895C(u8 taskId); +void sub_80D8A04(u8 taskId); +void sub_80D8A50(u8 taskId); +void sub_80D8A88(u8 taskId); +void sub_80D8B38(u8 taskId); +bool8 sub_80DA8A4(void); u8 sub_80DB0C4(void); u8 sub_80DB120(void); void sub_80DB2BC(void); void sub_80DB89C(void); +u16 sub_80DB8B8(u8); +void sub_80DB918(void); bool8 sub_80DBCA8(u8); void sub_80DBF68(void); void sub_80DBF90(void); @@ -77,16 +86,20 @@ void sub_80DCE58(u8); void sub_80DD04C(void); void sub_80DD590(void); void sub_80DDB0C(void); +void sub_80DDBE8(void); bool8 sub_80DE1E8(u8); void sub_80DE224(void); void sub_80DE350(void); +void sub_80DE69C(u8); void sub_80DEA20(void); void sub_80DEBD0(u32, u8 *, u8, u8, u8); void sub_80DEC30(u8 *, u8); +void sub_80DECB8(u8, u16, u8, u8, u8, u8, u8, u8); bool32 sub_80DED4C(void); +void sub_80DED60(u32); +void sub_80FC9F8(u8); bool8 AreMovesContestCombo(u16, u16); void prints_contest_move_description(u16); -void sub_80DECB8(u8, u16, u8, u8, u8, u8, u8, u8); EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; @@ -758,3 +771,94 @@ void sub_80D883C(s8 a0) sub_80DECB8(2, 11, 0, 31 + a0 * 2, 2, 1, 17, 1); sub_80DECB8(2, 11, 0, 32 + a0 * 2, 2, 1, 17, 1); } + +void sub_80D8894(u8 taskId) +{ + if (gIsLinkContest & 1) + { + u16 var = sub_80DB8B8(gContestPlayerMonIndex); + u8 taskId2; + + gContestResources->field_4[gContestPlayerMonIndex].currMove = var; + taskId2 = CreateTask(sub_80FC9F8, 0); + SetTaskFuncWithFollowupFunc(taskId2, sub_80FC9F8, sub_80D892C); + gTasks[taskId].func = TaskDummy1; + sub_80DBF68(); + sub_80DC490(FALSE); + } + else + { + sub_80DB918(); + gTasks[taskId].func = sub_80D895C; + } +} + +void sub_80D892C(u8 taskId) +{ + DestroyTask(taskId); + gTasks[gContestResources->field_0->mainTaskId].func = sub_80D895C; +} + +void sub_80D895C(u8 taskId) +{ + s32 i; + + sub_80DB89C(); + gBattle_BG0_Y = 0; + gBattle_BG2_Y = 0; + sub_80DC490(FALSE); + + for (i = 0; i < 4; i++) + { + FillWindowPixelBuffer(5 + i, 0); + PutWindowTilemap(5 + i); + CopyWindowToVram(5 + i, 2); + } + sub_80DED60(0); + + DmaCopy32Defvars(3, gPlttBufferFaded, shared18000.unk18604, 0x400); + LoadPalette(shared18000.unk18204, 0, 0x400); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].func = sub_80D8A04; +} + +void sub_80D8A04(u8 taskId) +{ + if (++gTasks[taskId].data[0] > 2) + { + gTasks[taskId].data[0] = 0; + if (++gTasks[taskId].data[1] == 2) + { + sub_80DDBE8(); + sub_80DE69C(1); + gTasks[taskId].func = sub_80D8A50; + } + } +} + +void sub_80D8A50(u8 taskId) +{ + if (!gContestResources->field_0->unk1920A_6 && !gContestResources->field_0->unk1920B_1) + gTasks[taskId].func = sub_80D8A88; +} + +void sub_80D8A88(u8 taskId) +{ + if (++gTasks[taskId].data[0] > 19) + { + gContestResources->field_0->unk19214 = 0; + gContestResources->field_0->unk1921C = gRngValue; + if ((gIsLinkContest & 1) && sub_80DA8A4()) + { + s32 i; + + for (i = 0; i + gUnknown_02039F30 < 4; i++) + { + gContestResources->field_4[gUnknown_02039F30 + i].currMove = sub_80DB8B8(gUnknown_02039F30 + i); + } + } + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_80D8B38; + } +} From e6cca1523286e9f730db0ed36b9945047bde7bc6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 4 May 2018 18:59:59 -0400 Subject: [PATCH 028/174] sub_80D8B38 --- asm/contest.s | 2472 -------------------------------- include/constants/moves.h | 1 + include/contest_link_80FC4F4.h | 7 + src/contest.c | 757 +++++++++- 4 files changed, 764 insertions(+), 2473 deletions(-) create mode 100644 include/contest_link_80FC4F4.h diff --git a/asm/contest.s b/asm/contest.s index f233849a75..8292760b80 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,2478 +5,6 @@ .text - thumb_func_start sub_80D8B38 -sub_80D8B38: @ 80D8B38 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, =gContestResources - ldr r0, [r2] - ldr r0, [r0] - ldrb r6, [r0, 0x11] - ldr r1, =gTasks - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r4, 0x8 - ldrsh r0, [r0, r4] - mov r9, r2 - adds r4, r1, 0 - cmp r0, 0x3B - bls _080D8B6E - bl _080DA100 -_080D8B6E: - lsls r0, 2 - ldr r1, =_080D8B84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080D8B84: - .4byte _080D8C74 - .4byte _080D8D30 - .4byte _080D8D56 - .4byte _080D8DC4 - .4byte _080D8E7C - .4byte _080D8EC8 - .4byte _080D8F84 - .4byte _080D8FB8 - .4byte _080D9010 - .4byte _080D908C - .4byte _080D9FC0 - .4byte _080D9FEC - .4byte _080D9238 - .4byte _080D926C - .4byte _080D9774 - .4byte _080D9864 - .4byte _080D98D4 - .4byte _080D9904 - .4byte _080D99EC - .4byte _080D999E - .4byte _080DA024 - .4byte _080DA0A0 - .4byte _080DA0C2 - .4byte _080D90B4 - .4byte _080D9180 - .4byte _080D9388 - .4byte _080D939E - .4byte _080D947C - .4byte _080D94A0 - .4byte _080D9508 - .4byte _080D95EC - .4byte _080DA038 - .4byte _080DA080 - .4byte _080D9EBC - .4byte _080D9F48 - .4byte _080D929A - .4byte _080D92D0 - .4byte _080D92F6 - .4byte _080D9334 - .4byte _080D955C - .4byte _080D95C4 - .4byte _080D9A2C - .4byte _080DA100 - .4byte _080D9DAC - .4byte _080DA100 - .4byte _080D9830 - .4byte _080D997C - .4byte _080D921A - .4byte _080D91A4 - .4byte _080D91F4 - .4byte _080D935C - .4byte _080D9690 - .4byte _080D971C - .4byte _080D9BAA - .4byte _080D9C68 - .4byte _080D9F68 - .4byte _080D9F84 - .4byte _080D9DD4 - .4byte _080D9E60 - .4byte _080D9EA0 -_080D8C74: - bl sub_80DCD48 - movs r7, 0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0] - ldr r0, [r0, 0x8] - ldrb r1, [r1, 0x10] - mov r5, r8 - lsls r5, 2 - mov r10, r5 - ldrb r2, [r0] - cmp r1, r2 - beq _080D8C9C - adds r2, r0, 0 -_080D8C92: - adds r7, 0x1 - adds r0, r2, r7 - ldrb r0, [r0] - cmp r1, r0 - bne _080D8C92 -_080D8C9C: - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0] - strb r7, [r0, 0x11] - ldr r0, [r4] - ldr r2, [r0] - ldrb r6, [r2, 0x11] - ldr r0, =gIsLinkContest - ldrb r1, [r0] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080D8D14 - ldrb r0, [r2, 0x7] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x7] - bl sub_80DA8A4 - lsls r0, 24 - cmp r0, 0 - beq _080D8CD4 - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0, 0x11] - bl sub_80DD080 -_080D8CD4: - ldr r4, =sub_80FCC88 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =sub_80DA110 - adds r1, r4, 0 - bl SetTaskFuncWithFollowupFunc - bl sub_80DBF68 - ldr r1, =gTasks - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - bl _080DA100 - .pool -_080D8D14: - adds r0, r6, 0 - bl sub_80DD080 - ldr r0, =gTasks - mov r1, r10 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x2 - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D8D30: - mov r3, r9 - ldr r0, [r3] - ldr r0, [r0] - ldrb r1, [r0, 0x7] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080D8D44 - bl _080DA100 -_080D8D44: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x8] - bl _080DA100 -_080D8D56: - adds r0, r6, 0 - bl sub_80DF080 - bl sub_80DF750 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r2, r0, r1 - ldrb r1, [r2, 0xC] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080D8D86 - ldrb r1, [r2, 0xB] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _080D8DA4 -_080D8D86: - ldr r0, =gTasks - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1F - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D8DA4: - bl sub_80DB89C - ldr r0, =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - strh r6, [r1, 0x1C] - movs r0, 0x3 - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D8DC4: - mov r4, r8 - lsls r4, 2 - mov r10, r4 - ldr r1, =gBattleMonForms - movs r2, 0 - adds r0, r1, 0x3 -_080D8DD0: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _080D8DD0 - movs r7, 0x4 - mov r5, r9 - ldr r0, [r5] - ldr r0, [r0, 0x18] - movs r1, 0 - movs r2, 0x14 - bl memset - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, 0x11] - bl sub_80DE9DC - ldr r4, =gContestMons - ldr r0, [r5] - ldr r0, [r0] - ldrb r3, [r0, 0x11] - lsls r2, r3, 6 - adds r0, r2, r4 - ldrh r0, [r0] - adds r1, r4, 0 - adds r1, 0x3C - adds r1, r2, r1 - ldr r1, [r1] - adds r4, 0x38 - adds r2, r4 - ldr r2, [r2] - bl sub_80DB174 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, =gSprites - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r3, r0, r2 - movs r1, 0x78 - strh r1, [r3, 0x24] - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_80DA134 - str r1, [r0] - ldr r0, =gTasks - mov r4, r10 - add r4, r8 - lsls r4, 3 - adds r4, r0 - strh r5, [r4, 0xC] - ldr r1, =gBattlerSpriteIds - ldr r0, =gBattlerAttacker - ldrb r0, [r0] - adds r0, r1 - strb r5, [r0] - mov r1, r9 - ldr r0, [r1] - ldr r0, [r0] - ldrb r0, [r0, 0x11] - bl sub_80DC9EC - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_80DCBE8 - strh r7, [r4, 0x8] - bl _080DA100 - .pool -_080D8E7C: - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r2, r0, r4 - ldrb r5, [r2, 0xC] - ldr r1, =gSprites - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, =SpriteCallbackDummy - cmp r1, r0 - beq _080D8EA0 - bl _080DA100 -_080D8EA0: - mov r3, r9 - ldr r0, [r3] - ldr r1, [r0, 0x14] - lsls r0, r6, 2 - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D8EB8 - bl _080DA100 -_080D8EB8: - movs r0, 0x5 - strh r0, [r2, 0x8] - bl _080DA100 - .pool -_080D8EC8: - mov r5, r9 - ldr r0, [r5] - ldr r1, [r0, 0x4] - lsls r0, r6, 3 - subs r0, r6 - lsls r5, r0, 2 - adds r1, r5, r1 - ldrb r1, [r1, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8EF2 - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - movs r1, 0x21 - strh r1, [r0, 0x8] - bl _080DA100 -_080D8EF2: - bl sub_80DB89C - ldr r0, =gStringVar1 - lsls r1, r6, 6 - ldr r2, =gContestMons + 2 - adds r1, r2 - bl StringCopy - mov r2, r9 - ldr r0, [r2] - ldr r0, [r0, 0x4] - adds r3, r5, r0 - ldrh r1, [r3, 0x6] - movs r0, 0xB1 - lsls r0, 1 - cmp r1, r0 - bhi _080D8F38 - ldr r0, =gStringVar2 - adds r2, r1, 0 - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - b _080D8F48 - .pool -_080D8F38: - ldr r0, =gStringVar2 - ldr r2, =gUnknown_08587F1C - ldrb r1, [r3, 0xA] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy -_080D8F48: - ldr r4, =gStringVar4 - ldr r1, =gText_0827D55A - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80DEC30 - ldr r1, =gTasks - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x6 - strh r1, [r0, 0x8] - bl _080DA100 - .pool -_080D8F84: - bl sub_80DED4C - adds r1, r0, 0 - cmp r1, 0 - beq _080D8F92 - bl _080DA100 -_080D8F92: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0] - adds r0, 0x5A - strb r1, [r0] - ldr r1, =gTasks - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x7 - strh r1, [r0, 0x8] - bl _080DA100 - .pool -_080D8FB8: - mov r5, r9 - ldr r1, [r5] - ldr r0, [r1] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x6] - bl sub_80DE834 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, 0x11] - bl sub_80DE864 - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, 0x11] - bl sub_80DE9DC - adds r0, r4, 0 - bl sub_80DEAA8 - adds r0, r4, 0 - bl DoMoveAnim - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - strh r1, [r0, 0x8] - bl _080DA100 - .pool -_080D9010: - ldr r0, =gAnimScriptCallback - ldr r0, [r0] - bl _call_via_r0 - ldr r0, =gAnimScriptActive - ldrb r4, [r0] - cmp r4, 0 - beq _080D9024 - bl _080DA100 -_080D9024: - adds r0, r6, 0 - bl sub_80DE9B0 - ldr r0, =gContestResources - ldr r1, [r0] - ldr r0, [r1] - adds r0, 0x5A - ldrb r0, [r0] - cmp r0, 0 - beq _080D9060 - ldr r0, =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - strh r4, [r1, 0x1C] - movs r0, 0x9 - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D9060: - ldr r1, [r1, 0x4] - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080D907A - adds r0, r6, 0 - bl sub_80DC674 -_080D907A: - bl sub_80DE12C - ldr r0, =gTasks - mov r4, r8 - lsls r1, r4, 2 - b _080D9192 - .pool -_080D908C: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r2, r0, r4 - ldrh r0, [r2, 0x1C] - adds r1, r0, 0x1 - strh r1, [r2, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - bgt _080D90A8 - bl _080DA100 -_080D90A8: - movs r0, 0 - strh r0, [r2, 0x1C] - movs r0, 0x7 - strh r0, [r2, 0x8] - bl _080DA100 -_080D90B4: - mov r0, r8 - lsls r2, r0, 2 - adds r0, r2, r0 - lsls r0, 3 - adds r7, r0, r4 - movs r0, 0 - strh r0, [r7, 0xA] - mov r1, r9 - ldr r0, [r1] - ldr r0, [r0, 0x4] - mov r12, r0 - lsls r1, r6, 3 - subs r0, r1, r6 - lsls r5, r0, 2 - mov r0, r12 - adds r3, r5, r0 - ldrb r0, [r3, 0x13] - mov r10, r2 - str r1, [sp, 0x4] - cmp r0, 0xFF - beq _080D90FA - ldrb r1, [r3, 0x13] - adds r0, r6, 0 - bl sub_80DD45C - mov r1, r9 - ldr r0, [r1] - ldr r0, [r0, 0x4] - adds r0, r5, r0 - movs r1, 0xFF - strb r1, [r0, 0x13] - movs r0, 0x18 - strh r0, [r7, 0x8] - bl _080DA100 -_080D90FA: - ldrb r0, [r3, 0x14] - cmp r0, 0xFF - beq _080D9178 - movs r7, 0 - cmp r7, r6 - beq _080D910E - mov r2, r12 - ldrb r0, [r2, 0x13] - cmp r0, 0xFF - bne _080D912C -_080D910E: - adds r7, 0x1 - cmp r7, 0x3 - bgt _080D912C - cmp r7, r6 - beq _080D910E - mov r3, r9 - ldr r0, [r3] - ldr r1, [r0, 0x4] - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x13] - cmp r0, 0xFF - beq _080D910E -_080D912C: - cmp r7, 0x4 - bne _080D9168 - mov r4, r9 - ldr r0, [r4] - ldr r0, [r0, 0x4] - ldr r5, [sp, 0x4] - subs r4, r5, r6 - lsls r4, 2 - adds r0, r4, r0 - ldrb r1, [r0, 0x14] - adds r0, r6, 0 - bl sub_80DD45C - mov r1, r9 - ldr r0, [r1] - ldr r0, [r0, 0x4] - adds r4, r0 - movs r0, 0xFF - strb r0, [r4, 0x14] - ldr r1, =gTasks - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x18 - strh r1, [r0, 0x8] - bl _080DA100 - .pool -_080D9168: - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r0, r4 - movs r1, 0x30 - strh r1, [r0, 0x8] - bl _080DA100 -_080D9178: - movs r0, 0x30 - strh r0, [r7, 0x8] - bl _080DA100 -_080D9180: - bl sub_80DED4C - cmp r0, 0 - beq _080D918C - bl _080DA100 -_080D918C: - ldr r0, =gTasks - mov r2, r8 - lsls r1, r2, 2 -_080D9192: - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x17 - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D91A4: - mov r3, r9 - ldr r0, [r3] - ldr r1, [r0, 0x4] - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x11] - movs r3, 0x3 - ands r3, r0 - cmp r3, 0x1 - bne _080D91C4 - movs r0, 0x5 - bl sub_80DD720 - b _080D91DA -_080D91C4: - cmp r3, 0x2 - bne _080D91D0 - movs r0, 0x6 - bl sub_80DD720 - b _080D91DA -_080D91D0: - cmp r3, 0x3 - bne _080D9208 - movs r0, 0x7 - bl sub_80DD720 -_080D91DA: - ldr r0, =gTasks - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x31 - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D91F4: - mov r3, r9 - ldr r0, [r3] - ldr r0, [r0] - ldrb r1, [r0, 0x6] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D9208 - bl _080DA100 -_080D9208: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2F - strh r1, [r0, 0x8] - bl _080DA100 -_080D921A: - movs r0, 0x1 - bl sub_80DE008 - ldr r0, =gTasks - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0xC - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D9238: - mov r3, r9 - ldr r0, [r3] - ldr r1, [r0, 0x4] - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r0, r1 - movs r4, 0x2 - ldrsh r1, [r0, r4] - movs r0, 0 - adds r2, r6, 0 - bl sub_80DC028 - ldr r1, =gTasks - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0xD - strh r1, [r0, 0x8] - bl _080DA100 - .pool -_080D926C: - mov r0, r9 - ldr r1, [r0] - ldr r0, [r1] - ldrb r0, [r0, 0x11] - ldr r1, [r1, 0x14] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080D9288 - bl _080DA100 -_080D9288: - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - movs r1, 0x23 - strh r1, [r0, 0x8] - bl _080DA100 -_080D929A: - mov r2, r9 - ldr r0, [r2] - ldr r1, [r0, 0x4] - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0x10 - bne _080D92B8 - movs r0, 0x8 - bl sub_80DD720 -_080D92B8: - ldr r0, =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x24 - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D92D0: - mov r5, r9 - ldr r0, [r5] - ldr r0, [r0] - ldrb r1, [r0, 0x6] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D92E4 - bl _080DA100 -_080D92E4: - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - movs r1, 0x25 - strh r1, [r0, 0x8] - bl _080DA100 -_080D92F6: - adds r0, r6, 0 - movs r1, 0x1 - bl sub_80DB5B8 - lsls r0, 24 - cmp r0, 0 - beq _080D9320 - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - movs r1, 0x26 - strh r1, [r0, 0x8] - bl _080DA100 - .pool -_080D9320: - ldr r0, =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - b _080D9354 - .pool -_080D9334: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r4 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - strh r0, [r1, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bgt _080D9350 - bl _080DA100 -_080D9350: - movs r0, 0 - strh r0, [r1, 0x1C] -_080D9354: - movs r0, 0x32 - strh r0, [r1, 0x8] - bl _080DA100 -_080D935C: - adds r0, r6, 0 - bl sub_80DB798 - lsls r0, 24 - cmp r0, 0 - beq _080D936E - movs r0, 0x63 - bl PlaySE -_080D936E: - ldr r0, =gTasks - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x19 - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D9388: - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - movs r1, 0 - strh r1, [r0, 0xA] - movs r1, 0x1A - strh r1, [r0, 0x8] - bl _080DA100 -_080D939E: - movs r3, 0 - movs r5, 0 - str r5, [sp] - mov r0, r8 - lsls r1, r0, 2 - adds r0, r1, r0 - lsls r0, 3 - adds r0, r4 - movs r2, 0xA - ldrsh r7, [r0, r2] - mov r10, r1 - cmp r7, 0x3 - bgt _080D9418 - ldr r5, =gUnknown_02039F26 - ldr r2, =gContestResources -_080D93BC: - movs r3, 0 - str r3, [sp] - adds r0, r3, 0 - cmp r0, r6 - beq _080D93E4 - ldrb r0, [r5] - cmp r0, r7 - bne _080D93E4 - ldr r0, [r2] - ldr r0, [r0, 0x4] - ldrb r0, [r0, 0x13] - cmp r0, 0xFF - beq _080D93E4 - movs r1, 0x1 - str r1, [sp] - b _080D940C - .pool -_080D93E4: - adds r3, 0x1 - cmp r3, 0x3 - bgt _080D940C - cmp r3, r6 - beq _080D93E4 - adds r0, r3, r5 - ldrb r0, [r0] - cmp r0, r7 - bne _080D93E4 - ldr r0, [r2] - ldr r1, [r0, 0x4] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x13] - cmp r0, 0xFF - beq _080D93E4 - movs r0, 0x1 - str r0, [sp] -_080D940C: - ldr r1, [sp] - cmp r1, 0 - bne _080D9422 - adds r7, 0x1 - cmp r7, 0x3 - ble _080D93BC -_080D9418: - ldr r2, [sp] - lsls r0, r2, 24 - asrs r2, r0, 24 - cmp r2, 0 - beq _080D9464 -_080D9422: - mov r5, r10 - add r5, r8 - lsls r5, 3 - adds r5, r4 - ldr r0, =gUnknown_02039F26 - adds r0, r3, r0 - ldrb r0, [r0] - strh r0, [r5, 0xA] - lsls r0, r3, 24 - lsrs r0, 24 - mov r4, r9 - ldr r1, [r4] - ldr r1, [r1, 0x4] - lsls r4, r3, 3 - subs r4, r3 - lsls r4, 2 - adds r1, r4, r1 - ldrb r1, [r1, 0x13] - bl sub_80DD45C - mov r1, r9 - ldr r0, [r1] - ldr r0, [r0, 0x4] - adds r4, r0 - movs r0, 0xFF - strb r0, [r4, 0x13] - movs r0, 0x1B - strh r0, [r5, 0x8] - bl _080DA100 - .pool -_080D9464: - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r0, r4 - strh r2, [r0, 0xA] - strh r2, [r0, 0x1C] - movs r1, 0x33 - strh r1, [r0, 0x8] - bl sub_80DB884 - bl _080DA100 -_080D947C: - bl sub_80DED4C - cmp r0, 0 - beq _080D9488 - bl _080DA100 -_080D9488: - ldr r0, =gTasks - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1C - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D94A0: - movs r7, 0 - mov r3, r8 - lsls r0, r3, 2 - adds r1, r0, r3 - lsls r1, 3 - adds r1, r4 - movs r4, 0xA - ldrsh r2, [r1, r4] - ldr r1, =gUnknown_02039F26 - mov r10, r0 - adds r5, r1, 0 - ldrb r0, [r5] - cmp r2, r0 - beq _080D94CA - adds r1, r2, 0 - adds r2, r5, 0 -_080D94C0: - adds r7, 0x1 - adds r0, r7, r2 - ldrb r0, [r0] - cmp r1, r0 - bne _080D94C0 -_080D94CA: - mov r1, r9 - ldr r0, [r1] - ldr r1, [r0, 0x4] - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0xE] - ldrh r0, [r0, 0x2] - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - negs r1, r1 - lsls r2, r7, 24 - lsrs r2, 24 - bl sub_80DC028 - ldr r1, =gTasks - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1D - strh r1, [r0, 0x8] - bl _080DA100 - .pool -_080D9508: - movs r7, 0 - mov r2, r8 - lsls r0, r2, 2 - adds r1, r0, r2 - lsls r1, 3 - adds r1, r4 - movs r5, 0xA - ldrsh r3, [r1, r5] - ldr r1, =gUnknown_02039F26 - mov r10, r0 - adds r5, r1, 0 - ldrb r0, [r5] - cmp r3, r0 - beq _080D952E -_080D9524: - adds r7, 0x1 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r3, r0 - bne _080D9524 -_080D952E: - mov r1, r9 - ldr r0, [r1] - ldr r1, [r0, 0x14] - lsls r0, r7, 2 - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080D9546 - bl _080DA100 -_080D9546: - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r0, r4 - movs r1, 0x27 - strh r1, [r0, 0x8] - bl _080DA100 - .pool -_080D955C: - movs r7, 0 - mov r2, r8 - lsls r0, r2, 2 - adds r1, r0, r2 - lsls r1, 3 - adds r1, r4 - movs r3, 0xA - ldrsh r2, [r1, r3] - ldr r1, =gUnknown_02039F26 - mov r10, r0 - adds r5, r1, 0 - ldrb r4, [r5] - cmp r2, r4 - beq _080D9586 - adds r1, r2, 0 - adds r2, r5, 0 -_080D957C: - adds r7, 0x1 - adds r0, r7, r2 - ldrb r0, [r0] - cmp r1, r0 - bne _080D957C -_080D9586: - lsls r0, r7, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_80DB5B8 - lsls r0, 24 - cmp r0, 0 - beq _080D95B4 - ldr r1, =gTasks - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - movs r1, 0x28 - strh r1, [r0, 0x8] - bl _080DA100 - .pool -_080D95B4: - ldr r0, =gTasks - mov r1, r10 - add r1, r8 - lsls r1, 3 - adds r1, r0 - b _080D95E4 - .pool -_080D95C4: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r4 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - strh r0, [r1, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bgt _080D95E0 - bl _080DA100 -_080D95E0: - movs r0, 0 - strh r0, [r1, 0x1C] -_080D95E4: - movs r0, 0x1E - strh r0, [r1, 0x8] - bl _080DA100 -_080D95EC: - movs r7, 0 - ldr r2, =gUnknown_02039F26 - ldrb r3, [r2] - mov r0, r8 - lsls r1, r0, 2 - adds r0, r1, r0 - lsls r0, 3 - adds r4, r0, r4 - movs r5, 0xA - ldrsh r0, [r4, r5] - mov r10, r1 - adds r5, r2, 0 - cmp r3, r0 - beq _080D961E - adds r3, r5, 0 - adds r2, r4, 0 -_080D960C: - adds r7, 0x1 - cmp r7, 0x3 - bgt _080D961E - adds r0, r7, r3 - ldrb r1, [r0] - movs r4, 0xA - ldrsh r0, [r2, r4] - cmp r1, r0 - bne _080D960C -_080D961E: - lsls r4, r7, 24 - lsrs r0, r4, 24 - bl sub_80DB798 - lsls r0, 24 - adds r6, r4, 0 - cmp r0, 0 - beq _080D963C - movs r0, 0x63 - bl PlaySE - b _080D9642 - .pool -_080D963C: - movs r0, 0x64 - bl PlaySE -_080D9642: - ldr r5, =gContestResources - ldr r0, [r5] - ldr r1, [r0, 0x4] - lsls r0, r7, 3 - subs r0, r7 - lsls r4, r0, 2 - adds r1, r4, r1 - ldrb r1, [r1, 0x15] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080D9670 - lsrs r0, r6, 24 - bl sub_80DC674 - ldr r0, [r5] - ldr r1, [r0, 0x4] - adds r1, r4, r1 - ldrb r2, [r1, 0x15] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x15] -_080D9670: - ldr r0, =gTasks - mov r1, r10 - add r1, r8 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - movs r0, 0x1A - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D9690: - mov r5, r8 - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r4, r0, r4 - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - mov r10, r2 - cmp r0, 0x9 - bgt _080D96AE - bl _080DA100 -_080D96AE: - movs r0, 0 - strh r0, [r4, 0x1C] - mov r1, r9 - ldr r0, [r1] - ldr r1, [r0, 0x4] - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r2, r0, r1 - ldrb r1, [r2, 0xC] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080D96D4 - ldrb r1, [r2, 0x11] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080D96F6 -_080D96D4: - bl sub_80DB89C - ldr r0, =gStringVar1 - lsls r1, r6, 6 - ldr r2, =gContestMons + 2 - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gText_0827E793 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80DEC30 -_080D96F6: - ldr r0, =gTasks - mov r1, r10 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x34 - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D971C: - bl sub_80DED4C - cmp r0, 0 - beq _080D9728 - bl _080DA100 -_080D9728: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x15] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080D975C - ldr r0, =gTasks - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x11 - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D975C: - ldr r0, =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0xE - strh r0, [r1, 0x8] - bl _080DA100 - .pool -_080D9774: - mov r4, r9 - ldr r0, [r4] - ldr r1, [r0, 0x4] - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x16] - lsls r4, r0, 24 - lsrs r5, r4, 24 - cmp r5, 0 - beq _080D97DC - bl sub_80DB89C - asrs r0, r4, 24 - cmp r0, 0x1 - bne _080D97A0 - ldr r0, =gText_0827E32E - b _080D97A6 - .pool -_080D97A0: - cmp r0, 0x2 - bne _080D97B4 - ldr r0, =gText_0827E35B -_080D97A6: - movs r1, 0x1 - bl sub_80DEC30 - b _080D97BC - .pool -_080D97B4: - ldr r0, =gText_0827E38D - movs r1, 0x1 - bl sub_80DEC30 -_080D97BC: - movs r0, 0x3 - bl sub_80DD720 - ldr r1, =gTasks - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - b _080D9812 - .pool -_080D97DC: - bl sub_80DB89C - ldr r0, =gStringVar1 - lsls r1, r6, 6 - ldr r2, =gContestMons + 2 - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gText_0827E2FE - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80DEC30 - movs r0, 0x2 - bl sub_80DD720 - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] -_080D9812: - movs r1, 0x2D - strh r1, [r0, 0x8] - bl _080DA100 - .pool -_080D9830: - mov r3, r9 - ldr r0, [r3] - ldr r2, [r0] - ldrb r1, [r2, 0x6] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D9844 - bl _080DA100 -_080D9844: - ldrb r0, [r2, 0x11] - bl sub_80DC9B4 - ldr r1, =gTasks - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0xF - strh r1, [r0, 0x8] - bl _080DA100 - .pool -_080D9864: - bl sub_80DED4C - cmp r0, 0 - beq _080D9870 - bl _080DA100 -_080D9870: - ldr r1, =gTasks - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - bgt _080D988E - bl _080DA100 -_080D988E: - ldr r7, =gContestResources - ldr r0, [r7] - ldr r1, [r0, 0x4] - lsls r0, r6, 3 - subs r0, r6 - lsls r5, r0, 2 - adds r2, r5, r1 - ldrb r1, [r2, 0x15] - movs r0, 0x10 - mov r8, r0 - ands r0, r1 - cmp r0, 0 - bne _080D98C2 - movs r1, 0x2 - ldrsh r0, [r2, r1] - ldrb r1, [r2, 0x17] - adds r2, r6, 0 - bl sub_80DC028 - ldr r0, [r7] - ldr r1, [r0, 0x4] - adds r1, r5, r1 - ldrh r0, [r1, 0x2] - ldrb r2, [r1, 0x17] - adds r0, r2 - strh r0, [r1, 0x2] -_080D98C2: - mov r3, r8 - strh r3, [r4, 0x8] - bl _080DA100 - .pool -_080D98D4: - mov r5, r9 - ldr r0, [r5] - ldr r1, [r0, 0x14] - lsls r0, r6, 2 - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080D98F0 - bl _080DA100 -_080D98F0: - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - strh r1, [r0, 0x1C] - movs r1, 0x11 - strh r1, [r0, 0x8] - bl _080DA100 -_080D9904: - mov r3, r9 - ldr r0, [r3] - ldr r1, [r0, 0x4] - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x15] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D996C - bl sub_80DB89C - ldr r0, =gStringVar1 - lsls r1, r6, 6 - ldr r2, =gContestMons + 2 - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gText_0827E6E3 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80DEC30 - ldr r0, =gTasks - mov r5, r8 - lsls r4, r5, 2 - add r4, r8 - lsls r4, 3 - adds r4, r0 - movs r0, 0 - strh r0, [r4, 0x1C] - bl sub_80DD720 - movs r0, 0x2E - strh r0, [r4, 0x8] - b _080DA100 - .pool -_080D996C: - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - movs r1, 0x29 - strh r1, [r0, 0x8] - b _080DA100 -_080D997C: - mov r2, r9 - ldr r0, [r2] - ldr r0, [r0] - ldrb r1, [r0, 0x6] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D998E - b _080DA100 -_080D998E: - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - movs r1, 0x13 - strh r1, [r0, 0x8] - b _080DA100 -_080D999E: - bl sub_80DED4C - cmp r0, 0 - beq _080D99A8 - b _080DA100 -_080D99A8: - ldr r5, =gContestResources - ldr r0, [r5] - ldr r1, [r0, 0x4] - lsls r4, r6, 3 - subs r4, r6 - lsls r4, 2 - adds r1, r4, r1 - movs r2, 0x2 - ldrsh r0, [r1, r2] - ldrb r1, [r1, 0x18] - negs r1, r1 - adds r2, r6, 0 - bl sub_80DC028 - ldr r0, [r5] - ldr r0, [r0, 0x4] - adds r4, r0 - ldrb r1, [r4, 0x18] - ldrh r0, [r4, 0x2] - subs r0, r1 - strh r0, [r4, 0x2] - ldr r1, =gTasks - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x12 - strh r1, [r0, 0x8] - b _080DA100 - .pool -_080D99EC: - bl sub_80DCD48 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0x14] - lsls r0, r6, 2 - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080D9A0A - b _080DA100 -_080D9A0A: - ldr r0, =gTasks - mov r5, r8 - lsls r4, r5, 2 - add r4, r8 - lsls r4, 3 - adds r4, r0 - strh r3, [r4, 0x1C] - bl sub_80DB89C - movs r0, 0x29 - strh r0, [r4, 0x8] - b _080DA100 - .pool -_080D9A2C: - mov r1, r9 - ldr r0, [r1] - ldr r2, [r0, 0x10] - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D9A56 - ldr r0, [r2] - lsls r0, 20 - lsrs r0, 29 - cmp r6, r0 - beq _080D9A56 - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - movs r1, 0x39 - strh r1, [r0, 0x8] - b _080DA100 -_080D9A56: - mov r3, r9 - ldr r1, [r3] - ldr r0, [r1, 0x10] - ldrb r0, [r0] - str r0, [sp] - ldr r1, [r1, 0x4] - lsls r2, r6, 3 - subs r0, r2, r6 - lsls r0, 2 - adds r5, r0, r1 - ldrb r1, [r5, 0x11] - movs r0, 0x10 - ands r0, r1 - str r2, [sp, 0x4] - cmp r0, 0 - beq _080D9A94 - movs r4, 0x1 - str r4, [sp] - ldr r0, =gStringVar3 - ldrh r2, [r5, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - b _080D9AAE - .pool -_080D9A94: - ldr r0, =gStringVar3 - ldr r3, =gUnknown_08587F08 - ldr r2, =gContestMoves - ldrh r1, [r5, 0x6] - lsls r1, 3 - adds r1, r2 - ldrb r1, [r1, 0x1] - lsls r1, 29 - lsrs r1, 27 - adds r1, r3 - ldr r1, [r1] - bl StringCopy -_080D9AAE: - ldr r5, [sp] - lsls r0, r5, 24 - cmp r0, 0 - ble _080D9AD2 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0x4] - ldr r2, [sp, 0x4] - subs r0, r2, r6 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x15] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D9AD2 - movs r3, 0 - str r3, [sp] -_080D9AD2: - bl sub_80DB89C - ldr r0, =gStringVar1 - lsls r1, r6, 6 - ldr r2, =gContestMons + 2 - adds r1, r2 - bl StringCopy - ldr r4, =gContestResources - ldr r0, [r4] - ldr r1, [r0] - ldrb r0, [r1, 0x13] - ldr r5, [sp] - lsls r2, r5, 24 - asrs r3, r2, 24 - adds r0, r3, r0 - strb r0, [r1, 0x13] - ldr r0, [r4] - ldr r1, [r0] - movs r0, 0x13 - ldrsb r0, [r1, r0] - adds r5, r2, 0 - cmp r0, 0 - bge _080D9B06 - movs r0, 0 - strb r0, [r1, 0x13] -_080D9B06: - cmp r3, 0 - bne _080D9B30 - ldr r0, =gTasks - mov r2, r8 - lsls r1, r2, 2 - b _080D9F58 - .pool -_080D9B30: - cmp r3, 0 - bge _080D9B48 - ldr r0, =gStringVar4 - ldr r1, =gText_0827E73C - bl StringExpandPlaceholders - b _080D9B74 - .pool -_080D9B48: - cmp r3, 0 - ble _080D9B6C - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0, 0x13] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bgt _080D9B6C - ldr r0, =gStringVar4 - ldr r1, =gText_0827E717 - bl StringExpandPlaceholders - b _080D9B74 - .pool -_080D9B6C: - ldr r0, =gStringVar4 - ldr r1, =gText_0827E76A - bl StringExpandPlaceholders -_080D9B74: - ldr r0, =gStringVar4 - movs r1, 0x1 - bl sub_80DEC30 - ldr r1, =gTasks - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - movs r0, 0 - strh r0, [r1, 0x1C] - strh r0, [r1, 0x1E] - cmp r5, 0 - bge _080D9BA4 - movs r0, 0x35 - strh r0, [r1, 0x8] - b _080DA100 - .pool -_080D9BA4: - movs r0, 0x36 - strh r0, [r1, 0x8] - b _080DA100 -_080D9BAA: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r4, r0, r4 - movs r0, 0x1C - ldrsh r3, [r4, r0] - cmp r3, 0x1 - beq _080D9BE8 - cmp r3, 0x1 - bgt _080D9BC6 - cmp r3, 0 - beq _080D9BD0 - b _080DA100 -_080D9BC6: - cmp r3, 0x2 - beq _080D9C0C - cmp r3, 0x3 - beq _080D9C46 - b _080DA100 -_080D9BD0: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x1 - bl sub_80DDED0 - ldr r0, =0x00000187 - bl PlayFanfare - b _080D9C3E - .pool -_080D9BE8: - mov r1, r9 - ldr r0, [r1] - ldr r0, [r0] - ldrb r0, [r0, 0x7] - ands r3, r0 - cmp r3, 0 - beq _080D9BF8 - b _080DA100 -_080D9BF8: - bl sub_80DED4C - cmp r0, 0 - beq _080D9C02 - b _080DA100 -_080D9C02: - movs r0, 0x1 - negs r0, r0 - bl sub_80DDCDC - b _080D9C3E -_080D9C0C: - mov r2, r9 - ldr r0, [r2] - ldr r0, [r0] - ldrb r1, [r0, 0x6] - movs r0, 0x20 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080D9C22 - b _080DA100 -_080D9C22: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1D - bgt _080D9C32 - b _080DA100 -_080D9C32: - strh r2, [r4, 0x1E] - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 - bl sub_80DDED0 -_080D9C3E: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - b _080DA100 -_080D9C46: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080D9C58 - b _080DA100 -_080D9C58: - strh r0, [r4, 0x1C] - strh r0, [r4, 0x1E] - movs r0, 0x2B - strh r0, [r4, 0x8] - b _080DA100 - .pool -_080D9C68: - mov r3, r8 - lsls r1, r3, 2 - adds r0, r1, r3 - lsls r0, 3 - adds r0, r4 - movs r5, 0x1C - ldrsh r0, [r0, r5] - mov r10, r1 - cmp r0, 0x4 - bls _080D9C7E - b _080DA100 -_080D9C7E: - lsls r0, 2 - ldr r1, =_080D9C8C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080D9C8C: - .4byte _080D9CA0 - .4byte _080D9CB0 - .4byte _080D9CD4 - .4byte _080D9D3E - .4byte _080D9D84 -_080D9CA0: - bl sub_80DED4C - cmp r0, 0 - beq _080D9CAA - b _080DA100 -_080D9CAA: - movs r0, 0x1 - movs r1, 0x1 - b _080D9D68 -_080D9CB0: - mov r1, r9 - ldr r0, [r1] - ldr r0, [r0] - ldrb r1, [r0, 0x7] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D9CC2 - b _080DA100 -_080D9CC2: - bl sub_80DDE0C - movs r0, 0xDF - bl PlaySE - movs r0, 0x1 - bl sub_80DDCDC - b _080D9D6C -_080D9CD4: - mov r3, r9 - ldr r2, [r3] - ldr r0, [r2] - ldrb r1, [r0, 0x6] - movs r0, 0x20 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080D9CEA - b _080DA100 -_080D9CEA: - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r5, r0, r4 - ldrh r0, [r5, 0x1E] - adds r1, r0, 0x1 - strh r1, [r5, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1D - bgt _080D9D02 - b _080DA100 -_080D9D02: - strh r3, [r5, 0x1E] - ldr r0, [r2, 0x4] - lsls r4, r6, 3 - subs r4, r6 - lsls r4, 2 - adds r0, r4, r0 - movs r1, 0x2 - ldrsh r0, [r0, r1] - ldr r1, [r2, 0x10] - ldrb r1, [r1, 0x2] - lsls r1, 24 - asrs r1, 24 - adds r2, r6, 0 - bl sub_80DC028 - mov r2, r9 - ldr r1, [r2] - ldr r0, [r1, 0x4] - adds r4, r0 - ldr r0, [r1, 0x10] - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - ldrh r3, [r4, 0x2] - adds r0, r3 - strh r0, [r4, 0x2] - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - b _080DA100 -_080D9D3E: - mov r4, r9 - ldr r2, [r4] - ldr r1, [r2, 0x14] - lsls r0, r6, 2 - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080D9D54 - b _080DA100 -_080D9D54: - ldr r0, [r2] - ldrb r1, [r0, 0x6] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080D9D62 - b _080DA100 -_080D9D62: - movs r1, 0x1 - negs r1, r1 - movs r0, 0x1 -_080D9D68: - bl sub_80DDED0 -_080D9D6C: - ldr r0, =gTasks - mov r1, r10 - add r1, r8 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - strh r0, [r1, 0x1C] - b _080DA100 - .pool -_080D9D84: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080D9D96 - b _080DA100 -_080D9D96: - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r0, r4 - strh r3, [r0, 0x1C] - strh r3, [r0, 0x1E] - movs r1, 0x2B - strh r1, [r0, 0x8] - b _080DA100 - .pool -_080D9DAC: - mov r5, r9 - ldr r0, [r5] - ldr r1, [r0, 0x14] - lsls r0, r6, 2 - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080D9DC2 - b _080DA100 -_080D9DC2: - bl sub_80DB89C - ldr r0, =gTasks - mov r2, r8 - lsls r1, r2, 2 - b _080D9F58 - .pool -_080D9DD4: - bl sub_80DB89C - ldr r0, =gStringVar3 - ldr r5, =gContestResources - ldr r1, [r5] - ldr r1, [r1, 0x10] - ldr r1, [r1] - lsls r1, 20 - lsrs r1, 29 - lsls r1, 6 - ldr r4, =gContestMons + 2 - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar1 - lsls r1, r6, 6 - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar2 - ldr r1, [r5] - ldr r2, [r1, 0x4] - lsls r1, r6, 3 - subs r1, r6 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gText_0827E7EA - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80DEC30 - ldr r1, =gTasks - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3A - strh r1, [r0, 0x8] - b _080DA100 - .pool -_080D9E60: - bl sub_80DED4C - cmp r0, 0 - beq _080D9E6A - b _080DA100 -_080D9E6A: - bl sub_80DB89C - ldr r4, =gStringVar4 - ldr r1, =gText_0827E817 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80DEC30 - ldr r1, =gTasks - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3B - strh r1, [r0, 0x8] - b _080DA100 - .pool -_080D9EA0: - bl sub_80DED4C - cmp r0, 0 - beq _080D9EAA - b _080DA100 -_080D9EAA: - bl sub_80DB89C - ldr r0, =gTasks - mov r5, r8 - lsls r1, r5, 2 - b _080D9F58 - .pool -_080D9EBC: - mov r1, r9 - ldr r0, [r1] - ldr r1, [r0, 0x4] - lsls r0, r6, 3 - subs r0, r6 - lsls r4, r0, 2 - adds r2, r4, r1 - ldrb r1, [r2, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D9EDC - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x15] -_080D9EDC: - adds r0, r6, 0 - bl sub_80DC9B4 - ldr r0, =gStringVar1 - lsls r1, r6, 6 - ldr r2, =gContestMons + 2 - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar2 - mov r2, r9 - ldr r1, [r2] - ldr r1, [r1, 0x4] - adds r1, r4, r1 - ldrh r2, [r1, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gText_0827E58A - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80DEC30 - ldr r1, =gTasks - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x22 - strh r1, [r0, 0x8] - b _080DA100 - .pool -_080D9F48: - bl sub_80DED4C - cmp r0, 0 - beq _080D9F52 - b _080DA100 -_080D9F52: - ldr r0, =gTasks - mov r4, r8 - lsls r1, r4, 2 -_080D9F58: - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x37 - strh r0, [r1, 0x8] - b _080DA100 - .pool -_080D9F68: - bl sub_80DDBE8 - ldr r0, =gTasks - mov r5, r8 - lsls r1, r5, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x38 - strh r0, [r1, 0x8] - b _080DA100 - .pool -_080D9F84: - mov r1, r9 - ldr r0, [r1] - ldr r2, [r0] - ldrb r1, [r2, 0x6] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080D9F9A - b _080DA100 -_080D9F9A: - movs r0, 0x13 - ldrsb r0, [r2, r0] - cmp r0, 0x4 - ble _080D9FA8 - strb r1, [r2, 0x13] - bl sub_80DD940 -_080D9FA8: - ldr r0, =gTasks - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0xA - strh r0, [r1, 0x8] - b _080DA100 - .pool -_080D9FC0: - mov r3, r8 - lsls r2, r3, 2 - add r2, r8 - lsls r2, 3 - adds r2, r4 - ldrb r5, [r2, 0xC] - ldr r1, =gSprites - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80DA164 - str r1, [r0] - movs r0, 0xB - strh r0, [r2, 0x8] - b _080DA100 - .pool -_080D9FEC: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r4, r0, r4 - ldrb r5, [r4, 0xC] - ldr r1, =gSprites - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r6, r0, r1 - adds r0, r6, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _080DA100 - adds r0, r6, 0 - bl FreeSpriteOamMatrix - adds r0, r6, 0 - bl DestroySprite - movs r0, 0x14 - strh r0, [r4, 0x8] - b _080DA100 - .pool -_080DA024: - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - movs r1, 0 - strh r1, [r0, 0x1C] - movs r1, 0x15 - strh r1, [r0, 0x8] - b _080DA100 -_080DA038: - bl sub_80DB89C - ldr r0, =gStringVar1 - lsls r1, r6, 6 - ldr r2, =gContestMons + 2 - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gText_0827D56F - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80DEC30 - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x20 - strh r1, [r0, 0x8] - b _080DA100 - .pool -_080DA080: - bl sub_80DED4C - cmp r0, 0 - bne _080DA100 - ldr r0, =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x15 - strh r0, [r1, 0x8] - b _080DA100 - .pool -_080DA0A0: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r4 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - strh r0, [r1, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080DA100 - movs r0, 0 - strh r0, [r1, 0x1C] - movs r0, 0x16 - strh r0, [r1, 0x8] - b _080DA100 -_080DA0C2: - mov r1, r9 - ldr r0, [r1] - ldr r1, [r0] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1, 0x10] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080DA0F4 - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - strh r2, [r0, 0x8] - strh r2, [r0, 0xA] - strh r2, [r0, 0xC] - ldr r1, =sub_80DA198 - str r1, [r0] - b _080DA100 - .pool -_080DA0F4: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - adds r0, r4 - strh r2, [r0, 0x8] -_080DA100: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D8B38 - thumb_func_start sub_80DA110 sub_80DA110: @ 80DA110 push {lr} diff --git a/include/constants/moves.h b/include/constants/moves.h index f3a3acb902..aaa5c3ab9a 100644 --- a/include/constants/moves.h +++ b/include/constants/moves.h @@ -358,5 +358,6 @@ #define MOVE_PSYCHO_BOOST 354 #define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST +#define NUM_MOVES LAST_MOVE_INDEX + 1 #endif // GUARD_CONSTANTS_MOVES_H diff --git a/include/contest_link_80FC4F4.h b/include/contest_link_80FC4F4.h new file mode 100644 index 0000000000..16ec1fbd20 --- /dev/null +++ b/include/contest_link_80FC4F4.h @@ -0,0 +1,7 @@ +#ifndef GUARD_CONTEST_LINK_80FC4F4_H +#define GUARD_CONTEST_LINK_80FC4F4_H + +void sub_80FCC88(u8); +void sub_80FCC88(u8); + +#endif //GUARD_CONTEST_LINK_80FC4F4_H diff --git a/src/contest.c b/src/contest.c index 6d4fbae4f9..7ac548a9c4 100644 --- a/src/contest.c +++ b/src/contest.c @@ -36,6 +36,7 @@ #include "event_scripts.h" #include "strings.h" #include "contest_effect.h" +#include "contest_link_80FC4F4.h" #define DESTROY_POINTER(ptr) \ free(ptr); \ @@ -93,7 +94,7 @@ void sub_80DE350(void); void sub_80DE69C(u8); void sub_80DEA20(void); void sub_80DEBD0(u32, u8 *, u8, u8, u8); -void sub_80DEC30(u8 *, u8); +void sub_80DEC30(const u8 *, u8); void sub_80DECB8(u8, u16, u8, u8, u8, u8, u8, u8); bool32 sub_80DED4C(void); void sub_80DED60(u32); @@ -102,6 +103,36 @@ bool8 AreMovesContestCombo(u16, u16); void prints_contest_move_description(u16); +void sub_80DD080(u8); +void sub_80DA110(u8); +void sub_80DF080(u8); +void sub_80DF750(void); +void sub_80DE9DC(u8); +u8 sub_80DB174(u16, u32, u32, u32); +void sub_80DA134(struct Sprite *); +void sub_80DCBE8(u8, u8); +u8 sub_80DC9EC(u8); +u16 sub_80DE834(u16); +void sub_80DE864(u8); +void sub_80DEAA8(u16); +void sub_80DE9B0(u8); +void sub_80DC674(u8); +void sub_80DE12C(void); +void sub_80DD45C(u8, u8); +void sub_80DD720(u8); +void sub_80DE008(bool8); +void sub_80DC028(s16, s16, u8); +bool8 sub_80DB5B8(u8, u8); +bool8 sub_80DB798(u8); +void sub_80DB884(void); +void sub_80DC9B4(u8); +void sub_80DDED0(s8, s8); +void sub_80DDCDC(s8); +void sub_80DDE0C(void); +void sub_80DD940(void); +void sub_80DA164(struct Sprite *); +void sub_80DA198(u8); + EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; EWRAM_DATA s16 gUnknown_02039F00[4] = {0}; EWRAM_DATA s16 gUnknown_02039F08[4] = {0}; @@ -147,6 +178,24 @@ extern const u16 gUnknown_08587C30[]; extern const struct BgTemplate gUnknown_08587F34[4]; extern const struct WindowTemplate gUnknown_08587F44[]; +extern const u8 *const gUnknown_08587F08[]; +extern const u8 *const gUnknown_08587F1C[]; +extern const u8 gText_0827D55A[]; +extern const u8 gText_0827E793[]; +extern const u8 gText_0827E32E[]; +extern const u8 gText_0827E35B[]; +extern const u8 gText_0827E38D[]; +extern const u8 gText_0827E2FE[]; +extern const u8 gText_0827E6E3[]; +extern const u8 gText_0827E73C[]; +extern const u8 gText_0827E717[]; +extern const u8 gText_0827E76A[]; +extern const u8 gText_0827E7EA[]; +extern const u8 gText_0827E817[]; +extern const u8 gText_0827E58A[]; +extern const u8 gText_0827D56F[]; + + void TaskDummy1(u8 taskId) { } @@ -862,3 +911,709 @@ void sub_80D8A88(u8 taskId) gTasks[taskId].func = sub_80D8B38; } } + +void sub_80D8B38(u8 taskId) +{ + u8 spriteId; + s32 i; + u8 r6 = gContestResources->field_0->unk19215; + s8 r3; + + switch (gTasks[taskId].data[0]) + { + case 0: + sub_80DCD48(); + for (i = 0; gContestResources->field_0->unk19214 != gContestResources->field_8->turnOrder[i]; i++) + ; + gContestResources->field_0->unk19215 = i; + r6 = gContestResources->field_0->unk19215; + if (gIsLinkContest & 1) + { + u8 taskId2; + + gContestResources->field_0->unk1920B_2 = 1; + if (sub_80DA8A4()) + sub_80DD080(gContestResources->field_0->unk19215); + taskId2 = CreateTask(sub_80FCC88, 0); + SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110); + sub_80DBF68(); + gTasks[taskId].data[0] = 1; + } + else + { + sub_80DD080(gContestResources->field_0->unk19215); + gTasks[taskId].data[0] = 2; + } + return; + case 1: + if (!gContestResources->field_0->unk1920B_2) + gTasks[taskId].data[0] = 2; + return; + case 2: + sub_80DF080(r6); + sub_80DF750(); + if (gContestResources->field_4[r6].numTurnsSkipped != 0 + || gContestResources->field_4[r6].noMoreTurns) + { + gTasks[taskId].data[0] = 31; + } + else + { + sub_80DB89C(); + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 3; + } + return; + case 3: + for (i = 0; i < 4; i++) + gBattleMonForms[i] = 0; + memset(gContestResources->field_18, 0, sizeof(*gContestResources->field_18)); + sub_80DE9DC(gContestResources->field_0->unk19215); + spriteId = sub_80DB174( + gContestMons[gContestResources->field_0->unk19215].species, + gContestMons[gContestResources->field_0->unk19215].otId, + gContestMons[gContestResources->field_0->unk19215].personality, + gContestResources->field_0->unk19215); + gSprites[spriteId].pos2.x = 120; + gSprites[spriteId].callback = sub_80DA134; + gTasks[taskId].data[2] = spriteId; + gBattlerSpriteIds[gBattlerAttacker] = spriteId; + sub_80DCBE8(sub_80DC9EC(gContestResources->field_0->unk19215), FALSE); + gTasks[taskId].data[0] = 4; + return; + case 4: + spriteId = gTasks[taskId].data[2]; + if (gSprites[spriteId].callback == SpriteCallbackDummy) + { + if (!gContestResources->field_14[r6].unk2_1) + gTasks[taskId].data[0] = 5; + } + return; + case 5: + if (gContestResources->field_4[r6].nervous) + { + gTasks[taskId].data[0] = 33; + } + else + { + sub_80DB89C(); + StringCopy(gStringVar1, gContestMons[r6].nickname); + if (gContestResources->field_4[r6].currMove < NUM_MOVES) + StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]); + else + StringCopy(gStringVar2, gUnknown_08587F1C[gContestResources->field_4[r6].moveCategory]); + StringExpandPlaceholders(gStringVar4, gText_0827D55A); + sub_80DEC30(gStringVar4, 1); + gTasks[taskId].data[0] = 6; + } + return; + case 6: + if (!sub_80DED4C()) + { + gContestResources->field_0->unk1925E = 0; + gTasks[taskId].data[0] = 7; + } + return; + case 7: + { + u16 move = sub_80DE834(gContestResources->field_4[gContestResources->field_0->unk19215].currMove); + + sub_80DE864(gContestResources->field_0->unk19215); + sub_80DE9DC(gContestResources->field_0->unk19215); + sub_80DEAA8(move); + DoMoveAnim(move); + gTasks[taskId].data[0] = 8; + } + return; + case 8: + gAnimScriptCallback(); + if (!gAnimScriptActive) + { + sub_80DE9B0(r6); + if (gContestResources->field_0->unk1925E != 0) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 9; + } + else + { + if (!gContestResources->field_4[r6].hasJudgesAttention) + sub_80DC674(r6); + sub_80DE12C(); + gTasks[taskId].data[0] = 23; + } + } + return; + case 9: + if (gTasks[taskId].data[10]++ > 30) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 7; + } + return; + case 23: + gTasks[taskId].data[1] = 0; + if (gContestResources->field_4[r6].effectStringId != CONTEST_STRING_NONE) + { + sub_80DD45C(r6, gContestResources->field_4[r6].effectStringId); + gContestResources->field_4[r6].effectStringId = CONTEST_STRING_NONE; + gTasks[taskId].data[0] = 24; + } + else + { + if (gContestResources->field_4[r6].effectStringId2 != CONTEST_STRING_NONE) + { + for (i = 0; i < 4; i++) + { + if (i != r6 && gContestResources->field_4[i].effectStringId != CONTEST_STRING_NONE) + break; + } + if (i == 4) + { + sub_80DD45C(r6, gContestResources->field_4[r6].effectStringId2); + gContestResources->field_4[r6].effectStringId2 = CONTEST_STRING_NONE; + gTasks[taskId].data[0] = 24; + } + else + { + gTasks[taskId].data[0] = 48; + } + } + else + { + gTasks[taskId].data[0] = 48; + } + } + return; + case 24: + if (!sub_80DED4C()) + gTasks[taskId].data[0] = 23; + return; + case 48: + if (gContestResources->field_4[r6].turnOrderModAction == 1) + { + sub_80DD720(5); + } + else if (gContestResources->field_4[r6].turnOrderModAction == 2) + { + sub_80DD720(6); + } + else if (gContestResources->field_4[r6].turnOrderModAction == 3) + { + sub_80DD720(7); + } + else + { + gTasks[taskId].data[0] = 47; + return; + } + gTasks[taskId].data[0] = 49; + return; + case 49: + if (!gContestResources->field_0->unk1920A_4) + gTasks[taskId].data[0] = 47; + return; + case 47: + sub_80DE008(TRUE); + gTasks[taskId].data[0] = 12; + return; + case 12: + sub_80DC028(0, gContestResources->field_4[r6].appeal2, r6); + gTasks[taskId].data[0] = 13; + return; + case 13: + if (!gContestResources->field_14[gContestResources->field_0->unk19215].unk2_2) + gTasks[taskId].data[0] = 35; + return; + case 35: + if (gContestResources->field_4[r6].conditionMod == 1) + sub_80DD720(8); + gTasks[taskId].data[0] = 36; + return; + case 36: + if (!gContestResources->field_0->unk1920A_4) + gTasks[taskId].data[0] = 37; + return; + case 37: + if (sub_80DB5B8(r6, 1)) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 38; + } + else + { + gTasks[taskId].data[0] = 50; + } + return; + case 38: + if (++gTasks[taskId].data[10] > 20) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 50; + } + return; + case 50: + if (sub_80DB798(r6)) + PlaySE(SE_C_PASI); + gTasks[taskId].data[0] = 25; + return; + case 25: + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[0] = 26; + return; + case 26: + { + s32 r2 = 0; + + r3 = 0; + for (i = gTasks[taskId].data[1]; i < 4; i++) + { + r3 = 0; + for (r2 = 0; r2 < 4; r2++) + { + if (r2 != r6 && gUnknown_02039F26[r2] == i + && gContestResources->field_4[r2].effectStringId != CONTEST_STRING_NONE) + { + r3 = 1; + break; + } + } + if (r3 != 0) + break; + } + if (r3) + { + gTasks[taskId].data[1] = gUnknown_02039F26[r2]; + sub_80DD45C(r2, gContestResources->field_4[r2].effectStringId); + gContestResources->field_4[r2].effectStringId = CONTEST_STRING_NONE; + gTasks[taskId].data[0] = 27; + } + else + { + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 51; + sub_80DB884(); + } + } + return; + case 27: + if (!sub_80DED4C()) + gTasks[taskId].data[0] = 28; + return; + case 28: + for (i = 0; gTasks[taskId].data[1] != gUnknown_02039F26[i]; i++) + ; + sub_80DC028(gContestResources->field_4[i].appeal2 + gContestResources->field_4[i].jam, -gContestResources->field_4[i].jam, i); + gTasks[taskId].data[0] = 29; + return; + case 29: + for (i = 0; gTasks[taskId].data[1] != gUnknown_02039F26[i]; i++) + ; + if (!gContestResources->field_14[i].unk2_2) + gTasks[taskId].data[0] = 39; + return; + case 39: + for (i = 0; gTasks[taskId].data[1] != gUnknown_02039F26[i]; i++) + ; + if (sub_80DB5B8(i, 1)) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 40; + } + else + { + gTasks[taskId].data[0] = 30; + } + return; + case 40: + if (++gTasks[taskId].data[10] > 20) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 30; + } + return; + case 30: + for (i = 0; i < 4; i++) + { + if (gUnknown_02039F26[i] == gTasks[taskId].data[1]) + break; + } + if (sub_80DB798(i)) + PlaySE(SE_C_PASI); + else + PlaySE(SE_C_SYU); + if (gContestResources->field_4[i].judgesAttentionWasRemoved) + { + sub_80DC674(i); + gContestResources->field_4[i].judgesAttentionWasRemoved = 0; + } + gTasks[taskId].data[1]++; + gTasks[taskId].data[0] = 26; + return; + case 51: + if (gTasks[taskId].data[10]++ > 9) + { + gTasks[taskId].data[10] = 0; + if (gContestResources->field_4[r6].numTurnsSkipped != 0 + || gContestResources->field_4[r6].turnSkipped) + { + sub_80DB89C(); + StringCopy(gStringVar1, gContestMons[r6].nickname); + StringExpandPlaceholders(gStringVar4, gText_0827E793); + sub_80DEC30(gStringVar4, 1); + } + gTasks[taskId].data[0] = 52; + } + return; + case 52: + if (!sub_80DED4C()) + { + if (!gContestResources->field_4[r6].unk15_6) + gTasks[taskId].data[0] = 17; + else + gTasks[taskId].data[0] = 14; + } + return; + case 14: + r3 = gContestResources->field_4[r6].unk16; + if (gContestResources->field_4[r6].unk16 != 0) + { + sub_80DB89C(); + if (r3 == 1) + sub_80DEC30(gText_0827E32E, 1); + else if (r3 == 2) + sub_80DEC30(gText_0827E35B, 1); + else + sub_80DEC30(gText_0827E38D, 1); + sub_80DD720(3); + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 45; + } + else + { + sub_80DB89C(); + StringCopy(gStringVar1, gContestMons[r6].nickname); + StringExpandPlaceholders(gStringVar4, gText_0827E2FE); + sub_80DEC30(gStringVar4, 1); + sub_80DD720(2); + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 45; + } + return; + case 45: + if (!gContestResources->field_0->unk1920A_4) + { + sub_80DC9B4(gContestResources->field_0->unk19215); + gTasks[taskId].data[0] = 15; + } + return; + case 15: + if (!sub_80DED4C()) + { + if (++gTasks[taskId].data[10] > 50) + { + if (!gContestResources->field_4[r6].hasJudgesAttention) + { + sub_80DC028( + gContestResources->field_4[r6].appeal2, + gContestResources->field_4[r6].unk17, + r6); + gContestResources->field_4[r6].appeal2 += gContestResources->field_4[r6].unk17; + } + gTasks[taskId].data[0] = 16; + } + } + return; + case 16: + if (!gContestResources->field_14[r6].unk2_2) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 17; + } + return; + case 17: + if (gContestResources->field_4[r6].disappointedRepeat) + { + sub_80DB89C(); + StringCopy(gStringVar1, gContestMons[r6].nickname); + StringExpandPlaceholders(gStringVar4, gText_0827E6E3); + sub_80DEC30(gStringVar4, 1); + gTasks[taskId].data[10] = 0; + sub_80DD720(0); + gTasks[taskId].data[0] = 46; + } + else + { + gTasks[taskId].data[0] = 41; + } + return; + case 46: + if (!gContestResources->field_0->unk1920A_4) + gTasks[taskId].data[0] = 19; + return; + case 19: + if (!sub_80DED4C()) + { + sub_80DC028(gContestResources->field_4[r6].appeal2, -gContestResources->field_4[r6].unk18, r6); + gContestResources->field_4[r6].appeal2 -= gContestResources->field_4[r6].unk18; + gTasks[taskId].data[0] = 18; + } + return; + case 18: + sub_80DCD48(); + if (!gContestResources->field_14[r6].unk2_2) + { + gTasks[taskId].data[10] = 0; + sub_80DB89C(); + gTasks[taskId].data[0] = 41; + } + return; + case 41: + if (gContestResources->field_10->excitementFrozen && r6 != gContestResources->field_10->excitementFreezer) + { + gTasks[taskId].data[0] = 57; + } + else + { + r3 = gContestResources->field_10->bits_0; + if (gContestResources->field_4[r6].overrideCategoryExcitementMod) + { + r3 = 1; + StringCopy(gStringVar3, gMoveNames[gContestResources->field_4[r6].currMove]); + } + else + { + StringCopy(gStringVar3, gUnknown_08587F08[gContestMoves[gContestResources->field_4[r6].currMove].contestCategory]); + } + if (r3 > 0) + { + if (gContestResources->field_4[r6].disappointedRepeat) + r3 = 0; + } + sub_80DB89C(); + StringCopy(gStringVar1, gContestMons[r6].nickname); + gContestResources->field_0->applauseLevel += r3; + if (gContestResources->field_0->applauseLevel < 0) + gContestResources->field_0->applauseLevel = 0; + if (r3 == 0) + { + gTasks[taskId].data[0] = 55; + } + else + { + if (r3 < 0) + StringExpandPlaceholders(gStringVar4, gText_0827E73C); + else if (r3 > 0 && gContestResources->field_0->applauseLevel <= 4) + StringExpandPlaceholders(gStringVar4, gText_0827E717); + else + StringExpandPlaceholders(gStringVar4, gText_0827E76A); + sub_80DEC30(gStringVar4, 1); + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[11] = 0; + if (r3 < 0) + gTasks[taskId].data[0] = 53; + else + gTasks[taskId].data[0] = 54; + } + } + return; + case 53: + switch (gTasks[taskId].data[10]) + { + case 0: + sub_80DDED0(-1, 1); + PlayFanfare(MUS_ME_ZANNEN); + gTasks[taskId].data[10]++; + break; + case 1: + if (!gContestResources->field_0->unk1920B_0 && !sub_80DED4C()) + { + sub_80DDCDC(-1); + gTasks[taskId].data[10]++; + } + break; + case 2: + if (!gContestResources->field_0->unk1920A_5) + { + if (gTasks[taskId].data[11]++ > 29) + { + gTasks[taskId].data[11] = 0; + sub_80DDED0(-1, -1); + gTasks[taskId].data[10]++; + } + } + break; + case 3: + if (!gPaletteFade.active) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[11] = 0; + gTasks[taskId].data[0] = 43; + } + break; + } + return; + case 54: + switch (gTasks[taskId].data[10]) + { + case 0: + if (!sub_80DED4C()) + { + sub_80DDED0(1, 1); + gTasks[taskId].data[10]++; + } + break; + case 1: + if (!gContestResources->field_0->unk1920B_0) + { + sub_80DDE0C(); + PlaySE(SE_W227B); + sub_80DDCDC(1); + gTasks[taskId].data[10]++; + } + break; + case 2: + if (!gContestResources->field_0->unk1920A_5) + { + if (gTasks[taskId].data[11]++ > 29) + { + gTasks[taskId].data[11] = 0; + sub_80DC028(gContestResources->field_4[r6].appeal2, gContestResources->field_10->unk2, r6); + gContestResources->field_4[r6].appeal2 += gContestResources->field_10->unk2; + gTasks[taskId].data[10]++; + } + } + break; + case 3: + if (!gContestResources->field_14[r6].unk2_2) + { + if (!gContestResources->field_0->unk1920A_7) + { + sub_80DDED0(1, -1); + gTasks[taskId].data[10]++; + } + } + break; + case 4: + if (!gPaletteFade.active) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[11] = 0; + gTasks[taskId].data[0] = 43; + } + break; + } + return; + case 43: + if (!gContestResources->field_14[r6].unk2_2) + { + sub_80DB89C(); + gTasks[taskId].data[0] = 55; + } + return; + case 57: + sub_80DB89C(); + StringCopy(gStringVar3, gContestMons[gContestResources->field_10->excitementFreezer].nickname); + StringCopy(gStringVar1, gContestMons[r6].nickname); + StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]); + StringExpandPlaceholders(gStringVar4, gText_0827E7EA); + sub_80DEC30(gStringVar4, 1); + gTasks[taskId].data[0] = 58; + return; + case 58: + if (!sub_80DED4C()) + { + sub_80DB89C(); + StringExpandPlaceholders(gStringVar4, gText_0827E817); + sub_80DEC30(gStringVar4, 1); + gTasks[taskId].data[0] = 59; + } + return; + case 59: + if (!sub_80DED4C()) + { + sub_80DB89C(); + gTasks[taskId].data[0] = 55; + } + return; + case 33: + if (gContestResources->field_4[r6].hasJudgesAttention) + gContestResources->field_4[r6].hasJudgesAttention = 0; + sub_80DC9B4(r6); + StringCopy(gStringVar1, gContestMons[r6].nickname); + StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]); + StringExpandPlaceholders(gStringVar4, gText_0827E58A); + sub_80DEC30(gStringVar4, 1); + gTasks[taskId].data[0] = 34; + return; + case 34: + if (!sub_80DED4C()) + gTasks[taskId].data[0] = 55; + return; + case 55: + sub_80DDBE8(); + gTasks[taskId].data[0] = 56; + return; + case 56: + if (!gContestResources->field_0->unk1920A_6) + { + if (gContestResources->field_0->applauseLevel > 4) + { + gContestResources->field_0->applauseLevel = 0; + sub_80DD940(); + } + gTasks[taskId].data[0] = 10; + } + return; + case 10: + spriteId = gTasks[taskId].data[2]; + gSprites[spriteId].callback = sub_80DA164; + gTasks[taskId].data[0] = 11; + return; + case 11: + spriteId = gTasks[taskId].data[2]; + if (gSprites[spriteId].invisible) + { + FreeSpriteOamMatrix(&gSprites[spriteId]); + DestroySprite(&gSprites[spriteId]); + gTasks[taskId].data[0] = 20; + } + return; + case 20: + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 21; + return; + case 31: + sub_80DB89C(); + StringCopy(gStringVar1, gContestMons[r6].nickname); + StringExpandPlaceholders(gStringVar4, gText_0827D56F); + sub_80DEC30(gStringVar4, 1); + gTasks[taskId].data[0] = 32; + return; + case 32: + if (!sub_80DED4C()) + gTasks[taskId].data[0] = 21; + return; + case 21: + if (++gTasks[taskId].data[10] > 29) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 22; + } + return; + case 22: + if (++gContestResources->field_0->unk19214 == 4) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = 0; + gTasks[taskId].func = sub_80DA198; + } + else + { + gTasks[taskId].data[0] = 0; + } + return; + } +} From e8bb464de91bf4abf4998d7700ca44e0e4fd39cd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 7 May 2018 19:46:48 -0400 Subject: [PATCH 029/174] through sub_80DA4F4 --- asm/contest.s | 503 ---------------------------------------------- include/contest.h | 11 +- src/contest.c | 212 ++++++++++++++++++- 3 files changed, 216 insertions(+), 510 deletions(-) diff --git a/asm/contest.s b/asm/contest.s index 8292760b80..b0436b0c09 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,509 +5,6 @@ .text - thumb_func_start sub_80DA110 -sub_80DA110: @ 80DA110 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gContestResources - ldr r1, [r1] - ldr r3, [r1] - ldrb r2, [r3, 0x7] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r3, 0x7] - bl DestroyTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA110 - - thumb_func_start sub_80DA134 -sub_80DA134: @ 80DA134 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x24] - movs r3, 0x24 - ldrsh r2, [r1, r3] - cmp r2, 0 - beq _080DA148 - subs r0, 0x2 - strh r0, [r1, 0x24] - b _080DA15C -_080DA148: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080DA15C - strh r2, [r1, 0x2E] - ldr r0, =SpriteCallbackDummy - str r0, [r1, 0x1C] -_080DA15C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA134 - - thumb_func_start sub_80DA164 -sub_80DA164: @ 80DA164 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x24] - subs r0, 0x6 - strh r0, [r2, 0x24] - movs r1, 0x20 - ldrsh r0, [r2, r1] - movs r3, 0x24 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080DA18E - ldr r0, =SpriteCallbackDummy - str r0, [r2, 0x1C] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080DA18E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA164 - - thumb_func_start sub_80DA198 -sub_80DA198: @ 80DA198 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080DA22E - cmp r0, 0x1 - bgt _080DA1C0 - cmp r0, 0 - beq _080DA1C6 - b _080DA250 - .pool -_080DA1C0: - cmp r0, 0x2 - beq _080DA248 - b _080DA250 -_080DA1C6: - ldr r0, =gIsLinkContest - ldrb r1, [r0] - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _080DA224 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0] - ldrb r0, [r2, 0x7] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x7] - bl sub_80DA8A4 - lsls r0, 24 - cmp r0, 0 - beq _080DA1F4 - bl sub_80DB944 - bl sub_80DBA18 -_080DA1F4: - ldr r4, =sub_80FCC88 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =sub_80DA110 - adds r1, r4, 0 - bl SetTaskFuncWithFollowupFunc - bl sub_80DBF68 - strh r6, [r5, 0x8] - b _080DA250 - .pool -_080DA224: - bl sub_80DB944 - bl sub_80DBA18 - b _080DA23E -_080DA22E: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, 0x7] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080DA250 -_080DA23E: - movs r0, 0x2 - strh r0, [r5, 0x8] - b _080DA250 - .pool -_080DA248: - movs r0, 0 - strh r0, [r5, 0x8] - ldr r0, =sub_80DA25C - str r0, [r5] -_080DA250: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA198 - - thumb_func_start sub_80DA25C -sub_80DA25C: @ 80DA25C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80DE008 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - strh r1, [r0, 0xA] - ldr r1, =sub_80DA28C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA25C - - thumb_func_start sub_80DA28C -sub_80DA28C: @ 80DA28C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080DA2D2 - cmp r5, 0x1 - bgt _080DA2B4 - cmp r5, 0 - beq _080DA2BA - b _080DA312 - .pool -_080DA2B4: - cmp r5, 0x2 - beq _080DA304 - b _080DA312 -_080DA2BA: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080DA312 - movs r0, 0x2 - bl sub_80DE69C - strh r5, [r4, 0xA] - b _080DA2F6 -_080DA2D2: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, 0x7] - movs r0, 0x2 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080DA312 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080DA312 - strh r1, [r4, 0xA] -_080DA2F6: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DA312 - .pool -_080DA304: - bl sub_80DC3AC - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - ldr r0, =sub_80DA31C - str r0, [r4] -_080DA312: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA28C - - thumb_func_start sub_80DA31C -sub_80DA31C: @ 80DA31C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80DC3C4 - lsls r0, 24 - cmp r0, 0 - beq _080DA33A - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80DA348 - str r0, [r1] -_080DA33A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA31C - - thumb_func_start sub_80DA348 -sub_80DA348: @ 80DA348 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =0x0201a204 - ldr r3, =gPlttBufferUnfaded - ldr r1, =0x040000d4 - str r2, [r1] - str r3, [r1, 0x4] - ldr r2, =0x84000100 - str r2, [r1, 0x8] - ldr r1, [r1, 0x8] - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - movs r0, 0x2 - strh r0, [r1, 0xA] - ldr r0, =sub_80DA38C - str r0, [r1] - bx lr - .pool - thumb_func_end sub_80DA348 - - thumb_func_start sub_80DA38C -sub_80DA38C: @ 80DA38C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080DA3BE - movs r0, 0 - strh r0, [r1, 0x8] - ldrh r0, [r1, 0xA] - subs r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _080DA3BE - ldr r0, =sub_80DA3CC - str r0, [r1] -_080DA3BE: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA38C - - thumb_func_start sub_80DA3CC -sub_80DA3CC: @ 80DA3CC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r6, r1, r2 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080DA448 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r5, =gContestPlayerMonIndex - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r4, [r0, 0x1A] - bl sub_80DB89C - ldr r0, =gStringVar1 - ldrb r1, [r5] - lsls r1, 6 - ldr r2, =gContestMons + 2 - adds r1, r2 - bl StringCopy - ldr r5, =gStringVar4 - ldr r0, =gUnknown_08587D90 - lsls r4, 2 - adds r4, r0 - ldr r1, [r4] - adds r0, r5, 0 - bl StringExpandPlaceholders - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80DEC30 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - b _080DA45A - .pool -_080DA448: - bl sub_80DED4C - cmp r0, 0 - bne _080DA45A - strh r0, [r6, 0x8] - ldr r0, =sub_80DA464 - str r0, [r6] - bl sub_80DCD48 -_080DA45A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA3CC - - thumb_func_start sub_80DA464 -sub_80DA464: @ 80DA464 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r1, r0, 0x1 - strh r1, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080DA48E - movs r0, 0 - strh r0, [r4, 0x8] - bl sub_80DC3AC - ldr r0, =sub_80DA49C - str r0, [r4] -_080DA48E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA464 - - thumb_func_start sub_80DA49C -sub_80DA49C: @ 80DA49C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80DC3C4 - lsls r0, 24 - cmp r0, 0 - beq _080DA4BE - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, =sub_80DA4CC - str r1, [r0] -_080DA4BE: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA49C - - thumb_func_start sub_80DA4CC -sub_80DA4CC: @ 80DA4CC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80DE224 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_80DE424 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA4CC - - thumb_func_start sub_80DA4F4 -sub_80DA4F4: @ 80DA4F4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80DE350 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_80DA51C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA4F4 - thumb_func_start sub_80DA51C sub_80DA51C: @ 80DA51C push {r4,r5,lr} diff --git a/include/contest.h b/include/contest.h index 45fc9b4779..b7324e26b5 100644 --- a/include/contest.h +++ b/include/contest.h @@ -401,11 +401,18 @@ struct ContestResources void * field_3c; }; +extern struct ContestResources *gContestResources; + +#define sContest (*gContestResources->field_0) +#define sContestantStatus (gContestResources->field_4) +#define shared192D0 (*gContestResources->field_8) +#define eContestAI (*gContestResources->field_C) +#define shared19328 (*gContestResources->field_10) +#define shared19338 (*gContestResources->field_14) + #define shared15800 (gHeap + 0x18000) #define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000)) -extern struct ContestResources *gContestResources; - extern u32 gContestRngValue; bool8 IsSpeciesNotUnown(u16 species); diff --git a/src/contest.c b/src/contest.c index 7ac548a9c4..8bf3816071 100644 --- a/src/contest.c +++ b/src/contest.c @@ -66,6 +66,21 @@ void sub_80D8A04(u8 taskId); void sub_80D8A50(u8 taskId); void sub_80D8A88(u8 taskId); void sub_80D8B38(u8 taskId); +void sub_80DA110(u8); +void sub_80DA134(struct Sprite *); +void sub_80DA164(struct Sprite *); +void sub_80DA198(u8); +void sub_80DA25C(u8); +void sub_80DA28C(u8); +void sub_80DA31C(u8); +void sub_80DA348(u8); +void sub_80DA38C(u8); +void sub_80DA3CC(u8); +void sub_80DA464(u8); +void sub_80DA49C(u8); +void sub_80DA4CC(u8); +void sub_80DE424(u8); +void sub_80DA51C(u8); bool8 sub_80DA8A4(void); u8 sub_80DB0C4(void); u8 sub_80DB120(void); @@ -104,12 +119,10 @@ void prints_contest_move_description(u16); void sub_80DD080(u8); -void sub_80DA110(u8); void sub_80DF080(u8); void sub_80DF750(void); void sub_80DE9DC(u8); u8 sub_80DB174(u16, u32, u32, u32); -void sub_80DA134(struct Sprite *); void sub_80DCBE8(u8, u8); u8 sub_80DC9EC(u8); u16 sub_80DE834(u16); @@ -130,8 +143,10 @@ void sub_80DDED0(s8, s8); void sub_80DDCDC(s8); void sub_80DDE0C(void); void sub_80DD940(void); -void sub_80DA164(struct Sprite *); -void sub_80DA198(u8); +void sub_80DB944(void); +void sub_80DBA18(void); +void sub_80DC3AC(void); +bool8 sub_80DC3C4(void); EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; EWRAM_DATA s16 gUnknown_02039F00[4] = {0}; @@ -177,7 +192,7 @@ extern const u8 gUnknown_08C17170[]; extern const u16 gUnknown_08587C30[]; extern const struct BgTemplate gUnknown_08587F34[4]; extern const struct WindowTemplate gUnknown_08587F44[]; - +extern const u8 *const gUnknown_08587D90[]; extern const u8 *const gUnknown_08587F08[]; extern const u8 *const gUnknown_08587F1C[]; extern const u8 gText_0827D55A[]; @@ -1617,3 +1632,190 @@ void sub_80D8B38(u8 taskId) return; } } + +void sub_80DA110(u8 taskId) +{ + sContest.unk1920B_2 = 0; + DestroyTask(taskId); +} + +void sub_80DA134(struct Sprite *sprite) +{ + if (sprite->pos2.x != 0) + { + sprite->pos2.x -= 2; + } + else + { + if (++sprite->data[0] == 31) + { + sprite->data[0] = 0; + sprite->callback = SpriteCallbackDummy; + } + } +} + +void sub_80DA164(struct Sprite *sprite) +{ + sprite->pos2.x -= 6; + if (sprite->pos1.x + sprite->pos2.x < -32) + { + sprite->callback = SpriteCallbackDummy; + sprite->invisible = TRUE; + } +} + +void sub_80DA198(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (gIsLinkContest & 1) + { + u8 taskId2; + + sContest.unk1920B_2 = 1; + if (sub_80DA8A4()) + { + sub_80DB944(); + sub_80DBA18(); + } + taskId2 = CreateTask(sub_80FCC88, 0); + SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110); + sub_80DBF68(); + gTasks[taskId].data[0] = 1; + } + else + { + sub_80DB944(); + sub_80DBA18(); + gTasks[taskId].data[0] = 2; + } + break; + case 1: + if (!sContest.unk1920B_2) + gTasks[taskId].data[0] = 2; + break; + case 2: + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_80DA25C; + break; + } +} + +void sub_80DA25C(u8 taskId) +{ + sub_80DE008(FALSE); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].func = sub_80DA28C; +} + +void sub_80DA28C(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (++gTasks[taskId].data[1] > 20) + { + sub_80DE69C(2); + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[0]++; + } + break; + case 1: + if (!sContest.unk1920B_1) + { + if (++gTasks[taskId].data[1] > 20) + { + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[0]++; + } + } + break; + case 2: + sub_80DC3AC(); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].func = sub_80DA31C; + break; + } +} + +void sub_80DA31C(u8 taskId) +{ + if (sub_80DC3C4()) + gTasks[taskId].func = sub_80DA348; +} + +void sub_80DA348(u8 taskId) +{ + DmaCopy32Defvars(3, shared18000.unk18204, gPlttBufferUnfaded, 0x400); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 2; + gTasks[taskId].func = sub_80DA38C; +} + +void sub_80DA38C(u8 taskId) +{ + if (++gTasks[taskId].data[0] > 2) + { + gTasks[taskId].data[0] = 0; + if (--gTasks[taskId].data[1] == 0) + gTasks[taskId].func = sub_80DA3CC; + } +} + +void sub_80DA3CC(u8 taskId) +{ + if (gTasks[taskId].data[0] == 0) + { + u8 r4 = sContestantStatus[gContestPlayerMonIndex].attentionLevel; + + sub_80DB89C(); + StringCopy(gStringVar1, gContestMons[gContestPlayerMonIndex].nickname); + StringExpandPlaceholders(gStringVar4, gUnknown_08587D90[r4]); + sub_80DEC30(gStringVar4, 1); + gTasks[taskId].data[0]++; + } + else + { + if (!sub_80DED4C()) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_80DA464; + sub_80DCD48(); + } + } +} + +void sub_80DA464(u8 taskId) +{ + if (gTasks[taskId].data[0]++ > 29) + { + gTasks[taskId].data[0] = 0; + sub_80DC3AC(); + gTasks[taskId].func = sub_80DA49C; + } +} + +void sub_80DA49C(u8 taskId) +{ + if (sub_80DC3C4()) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_80DA4CC; + } +} + +void sub_80DA4CC(u8 taskId) +{ + sub_80DE224(); + gTasks[taskId].func = sub_80DE424; +} + +void sub_80DA4F4(u8 taskId) +{ + sub_80DE350(); + gTasks[taskId].func = sub_80DA51C; +} From f6fbecbc4124dead542bd6ab2a4461d3f4bb3151 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 7 May 2018 20:49:23 -0400 Subject: [PATCH 030/174] through sub_80DA874 --- asm/contest.s | 382 --------------------------------- include/contest_link_80FC4F4.h | 1 + include/tv.h | 1 + src/contest.c | 147 ++++++++++++- 4 files changed, 147 insertions(+), 384 deletions(-) diff --git a/asm/contest.s b/asm/contest.s index b0436b0c09..574ddf86e7 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,388 +5,6 @@ .text - thumb_func_start sub_80DA51C -sub_80DA51C: @ 80DA51C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x8 - bl GetGpuReg - mov r1, sp - strh r0, [r1] - movs r0, 0xC - bl GetGpuReg - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - mov r3, sp - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - ldrb r0, [r4] - ands r1, r0 - strb r1, [r4] - mov r0, sp - ldrh r1, [r0] - movs r0, 0x8 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0xC - bl SetGpuReg - ldr r2, =gContestResources - ldr r0, [r2] - ldr r1, [r0] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - ldr r0, [r2] - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x5 - bne _080DA590 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80DA5E8 - b _080DA5A0 - .pool -_080DA590: - bl sub_80DDB0C - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80DA5B4 -_080DA5A0: - str r0, [r1] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA51C - - thumb_func_start sub_80DA5B4 -sub_80DA5B4: @ 80DA5B4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, 0x6] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080DA5D8 - ldr r0, =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80D833C - str r0, [r1] -_080DA5D8: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA5B4 - - thumb_func_start sub_80DA5E8 -sub_80DA5E8: @ 80DA5E8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gBattle_BG0_Y - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG2_Y - strh r1, [r0] - ldr r4, =gContestResources - movs r3, 0 - ldr r2, =gUnknown_02039F10 - movs r1, 0x3 -_080DA600: - ldr r0, [r4] - ldr r0, [r0, 0x4] - adds r0, r3, r0 - ldrh r0, [r0, 0x4] - strh r0, [r2] - adds r3, 0x1C - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080DA600 - bl sub_80DBD18 - bl sub_80DB89C - ldr r0, =gIsLinkContest - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080DA65C - ldr r0, =gContestResources - ldr r2, [r0] - ldr r0, =gContestPlayerMonIndex - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x8] - bl BravoTrainerPokemonProfile_BeforeInterview1 - b _080DA668 - .pool -_080DA65C: - bl sub_80DF250 - bl sub_80DF4F8 - bl sub_80DF750 -_080DA668: - ldr r1, =gContestRngValue - ldr r0, =gRngValue - ldr r0, [r0] - str r0, [r1] - ldr r4, =gStringVar4 - ldr r1, =gText_0827D597 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80DEC30 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, =sub_80DA6B4 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA5E8 - - thumb_func_start sub_80DA6B4 -sub_80DA6B4: @ 80DA6B4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_80DED4C - adds r4, r0, 0 - cmp r4, 0 - bne _080DA6EA - bl sub_80DE224 - ldr r0, =gBattle_BG1_X - strh r4, [r0] - ldr r1, =gBattle_BG1_Y - movs r0, 0xA0 - strh r0, [r1] - movs r0, 0x62 - movs r1, 0 - bl PlaySE12WithPanning - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x8] - ldr r1, =sub_80DA700 - str r1, [r0] -_080DA6EA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA6B4 - - thumb_func_start sub_80DA700 -sub_80DA700: @ 80DA700 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, =gBattle_BG1_Y - ldrh r0, [r1] - subs r0, 0x7 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bge _080DA718 - movs r0, 0 - strh r0, [r1] -_080DA718: - ldrh r2, [r1] - cmp r2, 0 - bne _080DA72E - ldr r0, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80DA740 - str r0, [r1] - strh r2, [r1, 0x8] -_080DA72E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA700 - - thumb_func_start sub_80DA740 -sub_80DA740: @ 80DA740 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r1, r0, 0x1 - strh r1, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x31 - ble _080DA794 - movs r0, 0 - strh r0, [r4, 0x8] - ldr r0, =gIsLinkContest - ldrb r0, [r0] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080DA780 - ldr r0, =sub_80DA7A0 - b _080DA792 - .pool -_080DA780: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =sub_80DA830 -_080DA792: - str r0, [r4] -_080DA794: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA740 - - thumb_func_start sub_80DA7A0 -sub_80DA7A0: @ 80DA7A0 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =sub_80FCACC - adds r0, r5, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =sub_80DA7EC - adds r1, r5, 0 - bl SetTaskFuncWithFollowupFunc - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =TaskDummy1 - str r1, [r0] - bl sub_80DBF68 - movs r0, 0 - bl sub_80DC490 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA7A0 - - thumb_func_start sub_80DA7EC -sub_80DA7EC: @ 80DA7EC - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r2, =gTasks - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0] - ldrb r1, [r0, 0x8] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_80DA830 - str r1, [r0] - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA7EC - - thumb_func_start sub_80DA830 -sub_80DA830: @ 80DA830 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080DA860 - adds r0, r2, 0 - bl DestroyTask - ldr r0, =gFieldCallback - ldr r1, =sub_80DA874 - str r1, [r0] - bl FreeAllWindowBuffers - bl sub_80D7A5C - bl FreeMonSpritesGfx - ldr r0, =CB2_ReturnToField - bl SetMainCallback2 -_080DA860: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA830 - - thumb_func_start sub_80DA874 -sub_80DA874: @ 80DA874 - push {lr} - bl ScriptContext2_Disable - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80DA874 - thumb_func_start sub_80DA884 sub_80DA884: @ 80DA884 push {lr} diff --git a/include/contest_link_80FC4F4.h b/include/contest_link_80FC4F4.h index 16ec1fbd20..6f3bab97dd 100644 --- a/include/contest_link_80FC4F4.h +++ b/include/contest_link_80FC4F4.h @@ -3,5 +3,6 @@ void sub_80FCC88(u8); void sub_80FCC88(u8); +void sub_80FCACC(u8); #endif //GUARD_CONTEST_LINK_80FC4F4_H diff --git a/include/tv.h b/include/tv.h index 19c900ba82..ea296a3275 100644 --- a/include/tv.h +++ b/include/tv.h @@ -45,5 +45,6 @@ void PutPokemonTodayCaughtOnAir(void); void TV_PutSecretBaseVisitOnTheAir(void); bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language); void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlayer, u16 speciesOpponent); +void BravoTrainerPokemonProfile_BeforeInterview1(u16 move); #endif //GUARD_TV_H diff --git a/src/contest.c b/src/contest.c index 8bf3816071..ac3f120a33 100644 --- a/src/contest.c +++ b/src/contest.c @@ -42,6 +42,8 @@ free(ptr); \ ptr = NULL; +extern void (*gFieldCallback)(void); + void sub_80D782C(void); void sub_80D7C7C(u8 taskId); void sub_80D7CB4(u8 taskId); @@ -79,8 +81,17 @@ void sub_80DA3CC(u8); void sub_80DA464(u8); void sub_80DA49C(u8); void sub_80DA4CC(u8); -void sub_80DE424(u8); void sub_80DA51C(u8); +void sub_80DA5B4(u8); +void sub_80DA5E8(u8); +void sub_80DA6B4(u8); +void sub_80DA700(u8); +void sub_80DA740(u8); +void sub_80DA7A0(u8); +void sub_80DA7EC(u8); +void sub_80DA830(u8); +void sub_80DA874(void); +void sub_80DE424(u8); bool8 sub_80DA8A4(void); u8 sub_80DB0C4(void); u8 sub_80DB120(void); @@ -116,7 +127,9 @@ void sub_80DED60(u32); void sub_80FC9F8(u8); bool8 AreMovesContestCombo(u16, u16); void prints_contest_move_description(u16); - +void sub_80DBD18(void); +void sub_80DF250(void); +void sub_80DF4F8(void); void sub_80DD080(u8); void sub_80DF080(u8); @@ -209,6 +222,7 @@ extern const u8 gText_0827E7EA[]; extern const u8 gText_0827E817[]; extern const u8 gText_0827E58A[]; extern const u8 gText_0827D56F[]; +extern const u8 gText_0827D597[]; void TaskDummy1(u8 taskId) @@ -1819,3 +1833,132 @@ void sub_80DA4F4(u8 taskId) sub_80DE350(); gTasks[taskId].func = sub_80DA51C; } + +void sub_80DA51C(u8 taskId) +{ + vu16 sp0 = GetGpuReg(REG_OFFSET_BG0CNT); + vu16 sp2 = GetGpuReg(REG_OFFSET_BG2CNT); + ((vBgCnt *)&sp0)->priority = 0; + ((vBgCnt *)&sp2)->priority = 0; + SetGpuReg(REG_OFFSET_BG0CNT, sp0); + SetGpuReg(REG_OFFSET_BG2CNT, sp2); + sContest.turnNumber++; + if (sContest.turnNumber == 5) + { + gTasks[taskId].func = sub_80DA5E8; + } + else + { + sub_80DDB0C(); + gTasks[taskId].func = sub_80DA5B4; + } +} + +void sub_80DA5B4(u8 taskId) +{ + if (!sContest.unk1920A_6) + gTasks[taskId].func = sub_80D833C; +} + +void sub_80DA5E8(u8 taskId) +{ + s32 i; + + gBattle_BG0_Y = 0; + gBattle_BG2_Y = 0; + for (i = 0; i < 4; i++) + gUnknown_02039F10[i] = sContestantStatus[i].unk4; + sub_80DBD18(); + sub_80DB89C(); + if (!(gIsLinkContest & 1)) + BravoTrainerPokemonProfile_BeforeInterview1(sContestantStatus[gContestPlayerMonIndex].prevMove); + else + { + sub_80DF250(); + sub_80DF4F8(); + sub_80DF750(); + } + gContestRngValue = gRngValue; + StringExpandPlaceholders(gStringVar4, gText_0827D597); + sub_80DEC30(gStringVar4, 1); + gTasks[taskId].data[2] = 0; + gTasks[taskId].func = sub_80DA6B4; +} + +void sub_80DA6B4(u8 taskId) +{ + if (!sub_80DED4C()) + { + sub_80DE224(); + gBattle_BG1_X = 0; + gBattle_BG1_Y = 160; + PlaySE12WithPanning(SE_C_MAKU_D, 0); + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_80DA700; + } +} + +void sub_80DA700(u8 taskId) +{ + gBattle_BG1_Y -= 7; + if (gBattle_BG1_Y < 0) + gBattle_BG1_Y = 0; + if (*(u16 *)&gBattle_BG1_Y == 0) // Why cast? + { + gTasks[taskId].func = sub_80DA740; + gTasks[taskId].data[0] = 0; + } +} + +void sub_80DA740(u8 taskId) +{ + if (gTasks[taskId].data[0]++ >= 50) + { + gTasks[taskId].data[0] = 0; + if (gIsLinkContest & 1) + { + gTasks[taskId].func = sub_80DA7A0; + } + else + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gTasks[taskId].func = sub_80DA830; + } + } +} + +void sub_80DA7A0(u8 taskId) +{ + u8 taskId2 = CreateTask(sub_80FCACC, 0); + + SetTaskFuncWithFollowupFunc(taskId2, sub_80FCACC, sub_80DA7EC); + gTasks[taskId].func = TaskDummy1; + sub_80DBF68(); + sub_80DC490(FALSE); +} + +void sub_80DA7EC(u8 taskId) +{ + DestroyTask(taskId); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gTasks[sContest.mainTaskId].func = sub_80DA830; +} + +void sub_80DA830(u8 taskId) +{ + if (!gPaletteFade.active) + { + DestroyTask(taskId); + gFieldCallback = sub_80DA874; + FreeAllWindowBuffers(); + sub_80D7A5C(); + FreeMonSpritesGfx(); + SetMainCallback2(CB2_ReturnToField); + } +} + +void sub_80DA874(void) +{ + ScriptContext2_Disable(); + EnableBothScriptContexts(); +} From 5efe8f3a0d0db0228fd0980c90013a4602c731b3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 8 May 2018 19:00:23 -0400 Subject: [PATCH 031/174] through sub_80DAB8C --- asm/contest.s | 520 +------------------------------------------------ data/contest.s | 2 +- src/contest.c | 159 ++++++++++++++- 3 files changed, 159 insertions(+), 522 deletions(-) diff --git a/asm/contest.s b/asm/contest.s index 574ddf86e7..2b19b9b662 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,522 +5,6 @@ .text - thumb_func_start sub_80DA884 -sub_80DA884: @ 80DA884 - push {lr} - ldr r0, =gIsLinkContest - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080DA898 - ldr r1, =gContestPlayerMonIndex - movs r0, 0x3 - strb r0, [r1] -_080DA898: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA884 - - thumb_func_start sub_80DA8A4 -sub_80DA8A4: @ 80DA8A4 - push {lr} - ldr r0, =gContestPlayerMonIndex - ldr r1, =gUnknown_02039F2B - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080DA8C0 - movs r0, 0 - b _080DA8C2 - .pool -_080DA8C0: - movs r0, 0x1 -_080DA8C2: - pop {r1} - bx r1 - thumb_func_end sub_80DA8A4 - - thumb_func_start sub_80DA8C8 -sub_80DA8C8: @ 80DA8C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, =gSaveBlock2Ptr - ldr r1, [r6] - mov r0, sp - bl StringCopy - ldr r0, =gIsLinkContest - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DA8F2 - mov r0, sp - bl sub_80DF9D4 -_080DA8F2: - ldr r5, =gContestPlayerMonIndex - ldrb r0, [r5] - lsls r0, 6 - ldr r4, =gContestMons + 13 - adds r0, r4 - mov r1, sp - movs r2, 0x8 - bl memcpy - ldr r0, [r6] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080DA928 - ldrb r0, [r5] - lsls r0, 6 - adds r0, r4, r0 - movs r1, 0xD8 - b _080DA930 - .pool -_080DA928: - ldrb r0, [r5] - lsls r0, 6 - adds r0, r4, r0 - movs r1, 0xD9 -_080DA930: - strb r1, [r0, 0x8] - ldr r7, =gContestMons - ldr r6, =gContestPlayerMonIndex - ldrb r0, [r6] - lsls r0, 6 - adds r1, r7, 0 - adds r1, 0x18 - adds r0, r1 - movs r1, 0 - str r1, [r0] - ldrb r0, [r6] - lsls r0, 6 - adds r0, r7 - adds r0, 0x2C - strb r1, [r0] - movs r0, 0x64 - mov r1, r8 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r1, r7 - strh r0, [r1] - adds r0, r5, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - ldr r0, =gIsLinkContest - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DA994 - adds r0, r5, 0 - movs r1, 0x3 - bl GetMonData - adds r1, r0, 0 - mov r0, sp - bl sub_80DF9E0 -_080DA994: - ldrb r0, [r6] - lsls r0, 6 - adds r4, r7, 0x2 - adds r0, r4 - mov r1, sp - movs r2, 0xB - bl memcpy - ldrb r0, [r6] - lsls r0, 6 - adds r0, r4 - mov r1, sp - bl StringCopy - adds r0, r5, 0 - movs r1, 0x16 - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r1, r7 - adds r1, 0x26 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x17 - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r1, r7 - adds r1, 0x27 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x18 - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r1, r7 - adds r1, 0x28 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x21 - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r1, r7 - adds r1, 0x29 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x2F - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r1, r7 - adds r1, 0x2A - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x30 - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r1, r7 - adds r1, 0x2B - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0xD - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r1, r7 - strh r0, [r1, 0x1E] - adds r0, r5, 0 - movs r1, 0xE - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r1, r7 - strh r0, [r1, 0x20] - adds r0, r5, 0 - movs r1, 0xF - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r1, r7 - strh r0, [r1, 0x22] - adds r0, r5, 0 - movs r1, 0x10 - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r1, r7 - strh r0, [r1, 0x24] - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r2, r7, 0 - adds r2, 0x38 - adds r1, r2 - str r0, [r1] - adds r0, r5, 0 - movs r1, 0x1 - bl GetMonData - ldrb r1, [r6] - lsls r1, 6 - adds r2, r7, 0 - adds r2, 0x3C - adds r1, r2 - str r0, [r1] - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r6] - lsls r0, 6 - adds r1, r0, r7 - adds r0, r1, 0 - adds r0, 0x26 - ldrb r3, [r0] - adds r0, 0x1 - ldrb r5, [r0] - adds r0, 0x1 - ldrb r6, [r0] - adds r0, 0x1 - ldrb r7, [r0] - adds r0, 0x1 - ldrb r4, [r0] - cmp r2, 0xFE - bne _080DAAC4 - adds r3, 0x14 - b _080DAB12 - .pool -_080DAAC4: - cmp r2, 0xFF - bne _080DAAD4 - lsls r0, r5, 16 - movs r1, 0xA0 - lsls r1, 13 - adds r0, r1 - lsrs r5, r0, 16 - b _080DAB12 -_080DAAD4: - movs r0, 0x80 - lsls r0, 1 - cmp r2, r0 - bne _080DAAE8 - lsls r0, r6, 16 - movs r1, 0xA0 - lsls r1, 13 - adds r0, r1 - lsrs r6, r0, 16 - b _080DAB12 -_080DAAE8: - ldr r0, =0x00000101 - cmp r2, r0 - bne _080DAB00 - lsls r0, r7, 16 - movs r1, 0xA0 - lsls r1, 13 - adds r0, r1 - lsrs r7, r0, 16 - b _080DAB12 - .pool -_080DAB00: - movs r0, 0x81 - lsls r0, 1 - cmp r2, r0 - bne _080DAB12 - lsls r0, r4, 16 - movs r1, 0xA0 - lsls r1, 13 - adds r0, r1 - lsrs r4, r0, 16 -_080DAB12: - cmp r3, 0xFF - ble _080DAB18 - movs r3, 0xFF -_080DAB18: - lsls r0, r5, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080DAB22 - movs r5, 0xFF -_080DAB22: - lsls r0, r6, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080DAB2C - movs r6, 0xFF -_080DAB2C: - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080DAB36 - movs r7, 0xFF -_080DAB36: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080DAB40 - movs r4, 0xFF -_080DAB40: - ldr r2, =gContestMons - ldr r1, =gContestPlayerMonIndex - ldrb r0, [r1] - lsls r0, 6 - adds r0, r2 - adds r0, 0x26 - strb r3, [r0] - ldrb r0, [r1] - lsls r0, 6 - adds r0, r2 - adds r0, 0x27 - strb r5, [r0] - ldrb r0, [r1] - lsls r0, 6 - adds r0, r2 - adds r0, 0x28 - strb r6, [r0] - ldrb r0, [r1] - lsls r0, 6 - adds r0, r2 - adds r0, 0x29 - strb r7, [r0] - ldrb r0, [r1] - lsls r0, 6 - adds r0, r2 - adds r0, 0x2A - strb r4, [r0] - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DA8C8 - - thumb_func_start sub_80DAB8C -sub_80DAB8C: @ 80DAB8C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x64 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r6, 0 - movs r7, 0 - bl sub_80DA884 - ldr r0, =0x00000864 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080DABC0 - ldr r0, =gIsLinkContest - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080DABC0 - movs r7, 0x1 -_080DABC0: - movs r5, 0 - ldr r2, =gUnknown_085880A4 - ldr r3, =gUnknown_085898A4 -_080DABC6: - ldrb r0, [r2, 0x1C] - lsls r0, 30 - lsrs r0, 30 - cmp r8, r0 - bne _080DAC3A - cmp r7, 0x1 - bne _080DABEC - ldrb r0, [r3] - cmp r0, 0x1 - beq _080DAC3A - b _080DABF2 - .pool -_080DABEC: - ldrb r0, [r3] - cmp r0, 0x2 - beq _080DAC3A -_080DABF2: - cmp r4, 0 - bne _080DABFE - ldrb r0, [r2, 0x1C] - lsls r0, 29 - cmp r0, 0 - blt _080DAC2E -_080DABFE: - cmp r4, 0x1 - bne _080DAC0A - ldrb r0, [r2, 0x1C] - lsls r0, 28 - cmp r0, 0 - blt _080DAC2E -_080DAC0A: - cmp r4, 0x2 - bne _080DAC16 - ldrb r0, [r2, 0x1C] - lsls r0, 27 - cmp r0, 0 - blt _080DAC2E -_080DAC16: - cmp r4, 0x3 - bne _080DAC22 - ldrb r0, [r2, 0x1C] - lsls r0, 26 - cmp r0, 0 - blt _080DAC2E -_080DAC22: - cmp r4, 0x4 - bne _080DAC3A - ldrb r0, [r2, 0x1C] - lsls r0, 25 - cmp r0, 0 - bge _080DAC3A -_080DAC2E: - adds r0, r6, 0 - adds r1, r0, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - add r0, sp - strb r5, [r0] -_080DAC3A: - adds r2, 0x40 - adds r3, 0x1 - adds r5, 0x1 - cmp r5, 0x5F - bls _080DABC6 - mov r0, sp - adds r1, r0, r6 - movs r0, 0xFF - strb r0, [r1] - movs r5, 0 - ldr r7, =gUnknown_085880A4 -_080DAC50: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gContestMons - lsls r2, r5, 6 - adds r2, r1 - mov r1, sp - adds r4, r1, r0 - ldrb r1, [r4] - lsls r1, 6 - adds r1, r7 - adds r0, r2, 0 - movs r2, 0x40 - bl memcpy - ldrb r0, [r4] - adds r2, r5, 0x1 - subs r1, r6, 0x1 - cmp r0, 0xFF - beq _080DAC92 - adds r3, r4, 0 -_080DAC86: - ldrb r0, [r3, 0x1] - strb r0, [r3] - adds r3, 0x1 - ldrb r0, [r3] - cmp r0, 0xFF - bne _080DAC86 -_080DAC92: - lsls r0, r1, 24 - lsrs r6, r0, 24 - adds r5, r2, 0 - cmp r5, 0x2 - ble _080DAC50 - ldr r0, =gUnknown_02039F24 - ldrb r0, [r0] - bl sub_80DA8C8 - add sp, 0x64 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DAB8C - thumb_func_start sub_80DACBC sub_80DACBC: @ 80DACBC push {r4-r7,lr} @@ -542,7 +26,7 @@ sub_80DACBC: @ 80DACBC b _080DADF6 _080DACDE: movs r5, 0 - ldr r3, =gUnknown_085880A4 + ldr r3, =gContestOpponents ldr r6, =gUnknown_085898A4 _080DACE4: ldrb r0, [r3, 0x1C] @@ -640,7 +124,7 @@ _080DAD82: adds r0, r5 lsls r0, 6 add r0, r8 - ldr r2, =gUnknown_085880A4 + ldr r2, =gContestOpponents mov r3, sp adds r4, r3, r1 ldrb r1, [r4] diff --git a/data/contest.s b/data/contest.s index 357a95d1d6..eaf3f8c951 100644 --- a/data/contest.s +++ b/data/contest.s @@ -352,7 +352,7 @@ gUnknown_08587FA4:: @ 8587FA4 .align 2 -gUnknown_085880A4:: @ 85880A4 +gContestOpponents:: @ 85880A4 .include "data/contest_opponents.inc" gUnknown_085898A4:: @ 85898A4 diff --git a/src/contest.c b/src/contest.c index ac3f120a33..bd9fc04032 100644 --- a/src/contest.c +++ b/src/contest.c @@ -7,6 +7,7 @@ #include "constants/moves.h" #include "constants/songs.h" #include "constants/species.h" +#include "constants/flags.h" #include "battle.h" #include "battle_anim.h" #include "blend_palette.h" @@ -34,6 +35,7 @@ #include "dma3.h" #include "battle_message.h" #include "event_scripts.h" +#include "event_data.h" #include "strings.h" #include "contest_effect.h" #include "contest_link_80FC4F4.h" @@ -91,8 +93,8 @@ void sub_80DA7A0(u8); void sub_80DA7EC(u8); void sub_80DA830(u8); void sub_80DA874(void); -void sub_80DE424(u8); bool8 sub_80DA8A4(void); +void sub_80DE424(u8); u8 sub_80DB0C4(void); u8 sub_80DB120(void); void sub_80DB2BC(void); @@ -130,7 +132,6 @@ void prints_contest_move_description(u16); void sub_80DBD18(void); void sub_80DF250(void); void sub_80DF4F8(void); - void sub_80DD080(u8); void sub_80DF080(u8); void sub_80DF750(void); @@ -160,6 +161,8 @@ void sub_80DB944(void); void sub_80DBA18(void); void sub_80DC3AC(void); bool8 sub_80DC3C4(void); +void sub_80DF9D4(u8 *); +void sub_80DF9E0(u8 *, s32); EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; EWRAM_DATA s16 gUnknown_02039F00[4] = {0}; @@ -223,7 +226,8 @@ extern const u8 gText_0827E817[]; extern const u8 gText_0827E58A[]; extern const u8 gText_0827D56F[]; extern const u8 gText_0827D597[]; - +extern const struct ContestPokemon gContestOpponents[96]; +extern const u8 gUnknown_085898A4[96]; void TaskDummy1(u8 taskId) { @@ -1962,3 +1966,152 @@ void sub_80DA874(void) ScriptContext2_Disable(); EnableBothScriptContexts(); } + +void sub_80DA884(void) +{ + if (!(gIsLinkContest & 1)) + gContestPlayerMonIndex = 3; +} + +bool8 sub_80DA8A4(void) +{ + if (gContestPlayerMonIndex == gUnknown_02039F2B) + return TRUE; + return FALSE; +} + + +void sub_80DA8C8(u8 partyIndex) +{ + u8 name[20]; + u16 heldItem; + s16 cool; + s16 beauty; + s16 cute; + s16 smart; + s16 tough; + + StringCopy(name, gSaveBlock2Ptr->playerName); + if (gIsLinkContest & 1) + { + sub_80DF9D4(name); + } + memcpy(gContestMons[gContestPlayerMonIndex].trainerName, name, 8); + if (gSaveBlock2Ptr->playerGender == MALE) + gContestMons[gContestPlayerMonIndex].trainerGfxId = MAP_OBJ_GFX_LINK_BRENDAN; + else + gContestMons[gContestPlayerMonIndex].trainerGfxId = MAP_OBJ_GFX_LINK_MAY; + gContestMons[gContestPlayerMonIndex].flags = 0; + gContestMons[gContestPlayerMonIndex].unk2C[0] = 0; + gContestMons[gContestPlayerMonIndex].species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES); + GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, name); + StringGetEnd10(name); + if (gIsLinkContest & 1) + { + sub_80DF9E0(name, GetMonData(&gPlayerParty[partyIndex], MON_DATA_LANGUAGE)); + } + memcpy(gContestMons[gContestPlayerMonIndex].nickname, name, 11); + StringCopy(gContestMons[gContestPlayerMonIndex].nickname, name); + gContestMons[gContestPlayerMonIndex].cool = GetMonData(&gPlayerParty[partyIndex], MON_DATA_COOL); + gContestMons[gContestPlayerMonIndex].beauty = GetMonData(&gPlayerParty[partyIndex], MON_DATA_BEAUTY); + gContestMons[gContestPlayerMonIndex].cute = GetMonData(&gPlayerParty[partyIndex], MON_DATA_CUTE); + gContestMons[gContestPlayerMonIndex].smart = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SMART); + gContestMons[gContestPlayerMonIndex].tough = GetMonData(&gPlayerParty[partyIndex], MON_DATA_TOUGH); + gContestMons[gContestPlayerMonIndex].sheen = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SHEEN); + gContestMons[gContestPlayerMonIndex].moves[0] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE1); + gContestMons[gContestPlayerMonIndex].moves[1] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE2); + gContestMons[gContestPlayerMonIndex].moves[2] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE3); + gContestMons[gContestPlayerMonIndex].moves[3] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE4); + gContestMons[gContestPlayerMonIndex].personality = GetMonData(&gPlayerParty[partyIndex], MON_DATA_PERSONALITY); + gContestMons[gContestPlayerMonIndex].otId = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_ID); + + heldItem = GetMonData(&gPlayerParty[partyIndex], MON_DATA_HELD_ITEM); + cool = gContestMons[gContestPlayerMonIndex].cool; + beauty = gContestMons[gContestPlayerMonIndex].beauty; + cute = gContestMons[gContestPlayerMonIndex].cute; + smart = gContestMons[gContestPlayerMonIndex].smart; + tough = gContestMons[gContestPlayerMonIndex].tough; + if (heldItem == ITEM_RED_SCARF) + cool += 20; + else if (heldItem == ITEM_BLUE_SCARF) + beauty += 20; + else if (heldItem == ITEM_PINK_SCARF) + cute += 20; + else if (heldItem == ITEM_GREEN_SCARF) + smart += 20; + else if (heldItem == ITEM_YELLOW_SCARF) + tough += 20; + if (cool > 255) + cool = 255; + if (beauty > 255) + beauty = 255; + if (cute > 255) + cute = 255; + if (smart > 255) + smart = 255; + if (tough > 255) + tough = 255; + gContestMons[gContestPlayerMonIndex].cool = cool; + gContestMons[gContestPlayerMonIndex].beauty = beauty; + gContestMons[gContestPlayerMonIndex].cute = cute; + gContestMons[gContestPlayerMonIndex].smart = smart; + gContestMons[gContestPlayerMonIndex].tough = tough; +} + +void sub_80DAB8C(u8 contestType, u8 rank) +{ + s32 i; + u8 opponentsCount = 0; + u8 opponents[100]; + bool8 r7 = FALSE; + const u8 * r3; + + sub_80DA884(); + + if (FlagGet(FLAG_SYS_GAME_CLEAR) && !(gIsLinkContest & 1)) + r7 = TRUE; + + // Find all suitable opponents + r3 = gUnknown_085898A4; + for (i = 0; i < ARRAY_COUNT(gContestOpponents); i++) + { + if (rank == gContestOpponents[i].whichRank) + { + if (r7 == TRUE) + { + if (r3[i] == 1) + continue; + } + else + { + if (r3[i] == 2) + continue; + } + if (contestType == 0 && gContestOpponents[i].aiPool_Cool) + opponents[opponentsCount++] = i; + else if (contestType == 1 && gContestOpponents[i].aiPool_Beauty) + opponents[opponentsCount++] = i; + else if (contestType == 2 && gContestOpponents[i].aiPool_Cute) + opponents[opponentsCount++] = i; + else if (contestType == 3 && gContestOpponents[i].aiPool_Smart) + opponents[opponentsCount++] = i; + else if (contestType == 4 && gContestOpponents[i].aiPool_Tough) + opponents[opponentsCount++] = i; + } + } + opponents[opponentsCount] = 0xFF; + + // Choose three random opponents from the list + for (i = 0; i < 3; i++) + { + u16 rnd = Random() % opponentsCount; + s32 j; + + gContestMons[i] = gContestOpponents[opponents[rnd]]; + for (j = rnd; opponents[j] != 0xFF; j++) + opponents[j] = opponents[j + 1]; + opponentsCount--; + } + + sub_80DA8C8(gUnknown_02039F24); +} From 7fdebe0d15754d315386a5bb308d5b7a2eaf648f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 10 May 2018 17:54:30 -0400 Subject: [PATCH 032/174] through sub_80DAE0C --- asm/contest.s | 254 ----------------------- include/global.h | 2 +- include/script_pokemon_util_80F87D8.h | 7 + src/battle_anim_sound_tasks.c | 2 +- src/battle_interface.c | 2 +- src/battle_main.c | 2 +- src/battle_script_commands.c | 2 +- src/battle_tv.c | 2 +- src/bg.c | 6 +- src/contest.c | 280 +++++++++++++++++++++++++- src/decompress.c | 2 +- src/fossil_specials.c | 2 +- src/item.c | 2 +- src/link_rfu.c | 10 +- src/map_name_popup.c | 2 +- src/match_call.c | 4 +- src/pokemon_summary_screen.c | 12 +- src/recorded_battle.c | 2 +- src/rotating_gate.c | 2 +- src/text.c | 6 +- src/tv.c | 2 +- src/util.c | 2 +- 22 files changed, 315 insertions(+), 292 deletions(-) create mode 100644 include/script_pokemon_util_80F87D8.h diff --git a/asm/contest.s b/asm/contest.s index 2b19b9b662..1d2388e53e 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,260 +5,6 @@ .text - thumb_func_start sub_80DACBC -sub_80DACBC: @ 80DACBC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x64 - mov r8, r2 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - movs r7, 0 - ldr r0, =gUnknown_02039F30 - ldrb r1, [r0] - mov r9, r0 - cmp r1, 0x4 - bne _080DACDE - b _080DADF6 -_080DACDE: - movs r5, 0 - ldr r3, =gContestOpponents - ldr r6, =gUnknown_085898A4 -_080DACE4: - ldrb r0, [r3, 0x1C] - lsls r0, 30 - lsrs r0, 30 - cmp r2, r0 - bne _080DAD56 - mov r0, r8 - cmp r0, 0x1 - bne _080DAD08 - ldrb r0, [r6] - cmp r0, 0x1 - beq _080DAD56 - b _080DAD0E - .pool -_080DAD08: - ldrb r0, [r6] - cmp r0, 0x2 - beq _080DAD56 -_080DAD0E: - cmp r4, 0 - bne _080DAD1A - ldrb r0, [r3, 0x1C] - lsls r0, 29 - cmp r0, 0 - blt _080DAD4A -_080DAD1A: - cmp r4, 0x1 - bne _080DAD26 - ldrb r0, [r3, 0x1C] - lsls r0, 28 - cmp r0, 0 - blt _080DAD4A -_080DAD26: - cmp r4, 0x2 - bne _080DAD32 - ldrb r0, [r3, 0x1C] - lsls r0, 27 - cmp r0, 0 - blt _080DAD4A -_080DAD32: - cmp r4, 0x3 - bne _080DAD3E - ldrb r0, [r3, 0x1C] - lsls r0, 26 - cmp r0, 0 - blt _080DAD4A -_080DAD3E: - cmp r4, 0x4 - bne _080DAD56 - ldrb r0, [r3, 0x1C] - lsls r0, 25 - cmp r0, 0 - bge _080DAD56 -_080DAD4A: - adds r0, r7, 0 - adds r1, r0, 0x1 - lsls r1, 24 - lsrs r7, r1, 24 - add r0, sp - strb r5, [r0] -_080DAD56: - adds r3, 0x40 - adds r6, 0x1 - adds r5, 0x1 - cmp r5, 0x5F - bls _080DACE4 - mov r3, sp - adds r1, r3, r7 - movs r0, 0xFF - strb r0, [r1] - movs r5, 0 - mov r0, r9 - ldrb r1, [r0] - movs r0, 0x4 - subs r0, r1 - cmp r5, r0 - bge _080DADF6 - ldr r3, =gContestMons - mov r8, r3 - mov r6, r9 - movs r0, 0x2 - add r0, r8 - mov r9, r0 -_080DAD82: - bl sub_80F903C - lsls r0, 16 - lsrs r0, 16 - adds r1, r7, 0 - bl __modsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldrb r0, [r6] - adds r0, r5 - lsls r0, 6 - add r0, r8 - ldr r2, =gContestOpponents - mov r3, sp - adds r4, r3, r1 - ldrb r1, [r4] - lsls r1, 6 - adds r1, r2 - movs r2, 0x40 - bl memcpy - ldrb r0, [r6] - adds r0, r5 - lsls r0, 6 - mov r1, r8 - adds r1, 0xD - adds r0, r1 - bl sub_80DF9D4 - ldrb r0, [r6] - adds r0, r5 - lsls r0, 6 - add r0, r9 - movs r1, 0x2 - bl sub_80DF9E0 - ldrb r0, [r4] - adds r3, r5, 0x1 - subs r1, r7, 0x1 - cmp r0, 0xFF - beq _080DADE6 - adds r2, r4, 0 -_080DADDA: - ldrb r0, [r2, 0x1] - strb r0, [r2] - adds r2, 0x1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080DADDA -_080DADE6: - lsls r0, r1, 24 - lsrs r7, r0, 24 - adds r5, r3, 0 - ldrb r1, [r6] - movs r0, 0x4 - subs r0, r1 - cmp r5, r0 - blt _080DAD82 -_080DADF6: - add sp, 0x64 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DACBC - - thumb_func_start sub_80DAE0C -sub_80DAE0C: @ 80DAE0C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _080DAE1E - movs r0, 0x3 - b _080DAE9A -_080DAE1E: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080DAE2E - movs r0, 0x4 - b _080DAE9A -_080DAE2E: - ldr r0, =gSpecialVar_ContestCategory - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080DAE82 - lsls r0, 2 - ldr r1, =_080DAE48 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080DAE48: - .4byte _080DAE5C - .4byte _080DAE62 - .4byte _080DAE68 - .4byte _080DAE6E - .4byte _080DAE74 -_080DAE5C: - adds r0, r4, 0 - movs r1, 0x32 - b _080DAE78 -_080DAE62: - adds r0, r4, 0 - movs r1, 0x33 - b _080DAE78 -_080DAE68: - adds r0, r4, 0 - movs r1, 0x34 - b _080DAE78 -_080DAE6E: - adds r0, r4, 0 - movs r1, 0x35 - b _080DAE78 -_080DAE74: - adds r0, r4, 0 - movs r1, 0x36 -_080DAE78: - bl GetMonData - lsls r0, 24 - lsrs r1, r0, 24 - b _080DAE86 -_080DAE82: - movs r0, 0 - b _080DAE9A -_080DAE86: - ldr r0, =gSpecialVar_ContestRank - adds r2, r1, 0 - ldrh r1, [r0] - movs r0, 0x2 - cmp r2, r1 - bhi _080DAE9A - movs r0, 0 - cmp r2, r1 - bcc _080DAE9A - movs r0, 0x1 -_080DAE9A: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80DAE0C - thumb_func_start sub_80DAEA4 sub_80DAEA4: @ 80DAEA4 push {r4,r5,lr} diff --git a/include/global.h b/include/global.h index ec636bb074..b73baf2ce4 100644 --- a/include/global.h +++ b/include/global.h @@ -11,7 +11,7 @@ // to help in decompiling #define asm_comment(x) asm volatile("@ -- " x " -- ") #define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided") -#define ASM_DIRECT __attribute__((naked)) +#define NAKED __attribute__((naked)) // IDE support #if defined (__APPLE__) || defined (__CYGWIN__) diff --git a/include/script_pokemon_util_80F87D8.h b/include/script_pokemon_util_80F87D8.h new file mode 100644 index 0000000000..555b3428b7 --- /dev/null +++ b/include/script_pokemon_util_80F87D8.h @@ -0,0 +1,7 @@ + +#ifndef GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H +#define GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H + +u16 sub_80F903C(void); + +#endif // GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index e956fd44f6..2316b97590 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -386,7 +386,7 @@ void sub_8159308(u8 taskId) DestroyAnimVisualTask(taskId); } #else -ASM_DIRECT +NAKED void sub_8159308(u8 taskId) { asm_unified(" push {r4,r5,lr}\n\ diff --git a/src/battle_interface.c b/src/battle_interface.c index 0a8bf3ed7e..9ef45020df 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -648,7 +648,7 @@ static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2) } #else -ASM_DIRECT +NAKED static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2) { asm(".syntax unified\n\ diff --git a/src/battle_main.c b/src/battle_main.c index 70eebed854..55845f2d11 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3591,7 +3591,7 @@ static void BattleIntroOpponent1SendsOutMonAnimation(void) gBattleMainFunc = BattleIntroRecordMonsToDex; } #else -ASM_DIRECT +NAKED static void BattleIntroOpponent1SendsOutMonAnimation(void) { asm(".syntax unified\n\ diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index d1a18e38f0..7552d48724 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -3608,7 +3608,7 @@ static void atk24(void) } } #else -ASM_DIRECT +NAKED static void atk24(void) { asm("\n\ diff --git a/src/battle_tv.c b/src/battle_tv.c index 777b4846ff..e5d97be304 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -812,7 +812,7 @@ void TryPutLinkBattleTvShowOnAir(void) } #else -ASM_DIRECT +NAKED void TryPutLinkBattleTvShowOnAir(void) { asm_unified( diff --git a/src/bg.c b/src/bg.c index 975c72a942..2f4cdc8564 100644 --- a/src/bg.c +++ b/src/bg.c @@ -463,7 +463,7 @@ bool8 IsDma3ManagerBusyWithBgCopy(void) return FALSE; } #else -ASM_DIRECT +NAKED bool8 IsDma3ManagerBusyWithBgCopy(void) { asm("push {r4-r7,lr}\n\ @@ -1048,7 +1048,7 @@ void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 } } }*/ -ASM_DIRECT +NAKED void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2) { asm("push {r4-r7,lr}\n\ @@ -1495,7 +1495,7 @@ void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 pal *dest = test; } #else -ASM_DIRECT +NAKED void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2) { asm("push {r4-r6,lr}\n\ diff --git a/src/contest.c b/src/contest.c index bd9fc04032..82547e4284 100644 --- a/src/contest.c +++ b/src/contest.c @@ -39,6 +39,7 @@ #include "strings.h" #include "contest_effect.h" #include "contest_link_80FC4F4.h" +#include "script_pokemon_util_80F87D8.h" #define DESTROY_POINTER(ptr) \ free(ptr); \ @@ -2087,15 +2088,15 @@ void sub_80DAB8C(u8 contestType, u8 rank) if (r3[i] == 2) continue; } - if (contestType == 0 && gContestOpponents[i].aiPool_Cool) + if (contestType == CONTEST_CATEGORY_COOL && gContestOpponents[i].aiPool_Cool) opponents[opponentsCount++] = i; - else if (contestType == 1 && gContestOpponents[i].aiPool_Beauty) + else if (contestType == CONTEST_CATEGORY_BEAUTY && gContestOpponents[i].aiPool_Beauty) opponents[opponentsCount++] = i; - else if (contestType == 2 && gContestOpponents[i].aiPool_Cute) + else if (contestType == CONTEST_CATEGORY_CUTE && gContestOpponents[i].aiPool_Cute) opponents[opponentsCount++] = i; - else if (contestType == 3 && gContestOpponents[i].aiPool_Smart) + else if (contestType == CONTEST_CATEGORY_SMART && gContestOpponents[i].aiPool_Smart) opponents[opponentsCount++] = i; - else if (contestType == 4 && gContestOpponents[i].aiPool_Tough) + else if (contestType == CONTEST_CATEGORY_TOUGH && gContestOpponents[i].aiPool_Tough) opponents[opponentsCount++] = i; } } @@ -2115,3 +2116,272 @@ void sub_80DAB8C(u8 contestType, u8 rank) sub_80DA8C8(gUnknown_02039F24); } + +#ifdef NONMATCHING +void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame) +{ + s32 i; + u8 opponentsCount = 0; + u8 opponents[100]; + const u8 * r6; + + if (gUnknown_02039F30 == 4) + return; + + r6 = gUnknown_085898A4; + for (i = 0; i < ARRAY_COUNT(gContestOpponents); i++) + { + if (rank != gContestOpponents[i].whichRank) + continue; + if (isPostgame == TRUE) + { + if (r6[i] == 1) + continue; + } + else + { + if (r6[i] == 2) + continue; + } + if (contestType == CONTEST_CATEGORY_COOL && gContestOpponents[i].aiPool_Cool) + opponents[opponentsCount++] = i; + else if (contestType == CONTEST_CATEGORY_BEAUTY && gContestOpponents[i].aiPool_Beauty) + opponents[opponentsCount++] = i; + else if (contestType == CONTEST_CATEGORY_CUTE && gContestOpponents[i].aiPool_Cute) + opponents[opponentsCount++] = i; + else if (contestType == CONTEST_CATEGORY_SMART && gContestOpponents[i].aiPool_Smart) + opponents[opponentsCount++] = i; + else if (contestType == CONTEST_CATEGORY_TOUGH && gContestOpponents[i].aiPool_Tough) + opponents[opponentsCount++] = i; + } + opponents[opponentsCount] = 0xFF; + for (i = 0; i < 4 - gUnknown_02039F30; i++) + { + u16 rnd = sub_80F903C() % opponentsCount; + s32 j; + + gContestMons[gUnknown_02039F30 + i] = gContestOpponents[opponents[rnd]]; + sub_80DF9D4(gContestMons[gUnknown_02039F30 + i].trainerName); + sub_80DF9E0(gContestMons[gUnknown_02039F30 + i].nickname, GAME_LANGUAGE); + for (j = rnd; opponents[j] != 0xFF; j++) + opponents[j] = opponents[j + 1]; + opponentsCount--; + } +} +#else +NAKED void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r9\n" + "\tmov r6, r8\n" + "\tpush {r6,r7}\n" + "\tsub sp, 0x64\n" + "\tmov r8, r2\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tlsls r1, 24\n" + "\tlsrs r2, r1, 24\n" + "\tmovs r7, 0\n" + "\tldr r0, =gUnknown_02039F30\n" + "\tldrb r1, [r0]\n" + "\tmov r9, r0\n" + "\tcmp r1, 0x4\n" + "\tbne _080DACDE\n" + "\tb _080DADF6\n" + "_080DACDE:\n" + "\tmovs r5, 0\n" + "\tldr r3, =gContestOpponents\n" + "\tldr r6, =gUnknown_085898A4\n" + "_080DACE4:\n" + "\tldrb r0, [r3, 0x1C]\n" + "\tlsls r0, 30\n" + "\tlsrs r0, 30\n" + "\tcmp r2, r0\n" + "\tbne _080DAD56\n" + "\tmov r0, r8\n" + "\tcmp r0, 0x1\n" + "\tbne _080DAD08\n" + "\tldrb r0, [r6]\n" + "\tcmp r0, 0x1\n" + "\tbeq _080DAD56\n" + "\tb _080DAD0E\n" + "\t.pool\n" + "_080DAD08:\n" + "\tldrb r0, [r6]\n" + "\tcmp r0, 0x2\n" + "\tbeq _080DAD56\n" + "_080DAD0E:\n" + "\tcmp r4, 0\n" + "\tbne _080DAD1A\n" + "\tldrb r0, [r3, 0x1C]\n" + "\tlsls r0, 29\n" + "\tcmp r0, 0\n" + "\tblt _080DAD4A\n" + "_080DAD1A:\n" + "\tcmp r4, 0x1\n" + "\tbne _080DAD26\n" + "\tldrb r0, [r3, 0x1C]\n" + "\tlsls r0, 28\n" + "\tcmp r0, 0\n" + "\tblt _080DAD4A\n" + "_080DAD26:\n" + "\tcmp r4, 0x2\n" + "\tbne _080DAD32\n" + "\tldrb r0, [r3, 0x1C]\n" + "\tlsls r0, 27\n" + "\tcmp r0, 0\n" + "\tblt _080DAD4A\n" + "_080DAD32:\n" + "\tcmp r4, 0x3\n" + "\tbne _080DAD3E\n" + "\tldrb r0, [r3, 0x1C]\n" + "\tlsls r0, 26\n" + "\tcmp r0, 0\n" + "\tblt _080DAD4A\n" + "_080DAD3E:\n" + "\tcmp r4, 0x4\n" + "\tbne _080DAD56\n" + "\tldrb r0, [r3, 0x1C]\n" + "\tlsls r0, 25\n" + "\tcmp r0, 0\n" + "\tbge _080DAD56\n" + "_080DAD4A:\n" + "\tadds r0, r7, 0\n" + "\tadds r1, r0, 0x1\n" + "\tlsls r1, 24\n" + "\tlsrs r7, r1, 24\n" + "\tadd r0, sp\n" + "\tstrb r5, [r0]\n" + "_080DAD56:\n" + "\tadds r3, 0x40\n" + "\tadds r6, 0x1\n" + "\tadds r5, 0x1\n" + "\tcmp r5, 0x5F\n" + "\tbls _080DACE4\n" + "\tmov r3, sp\n" + "\tadds r1, r3, r7\n" + "\tmovs r0, 0xFF\n" + "\tstrb r0, [r1]\n" + "\tmovs r5, 0\n" + "\tmov r0, r9\n" + "\tldrb r1, [r0]\n" + "\tmovs r0, 0x4\n" + "\tsubs r0, r1\n" + "\tcmp r5, r0\n" + "\tbge _080DADF6\n" + "\tldr r3, =gContestMons\n" + "\tmov r8, r3\n" + "\tmov r6, r9\n" + "\tmovs r0, 0x2\n" + "\tadd r0, r8\n" + "\tmov r9, r0\n" + "_080DAD82:\n" + "\tbl sub_80F903C\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tadds r1, r7, 0\n" + "\tbl __modsi3\n" + "\tadds r1, r0, 0\n" + "\tlsls r1, 16\n" + "\tlsrs r1, 16\n" + "\tldrb r0, [r6]\n" + "\tadds r0, r5\n" + "\tlsls r0, 6\n" + "\tadd r0, r8\n" + "\tldr r2, =gContestOpponents\n" + "\tmov r3, sp\n" + "\tadds r4, r3, r1\n" + "\tldrb r1, [r4]\n" + "\tlsls r1, 6\n" + "\tadds r1, r2\n" + "\tmovs r2, 0x40\n" + "\tbl memcpy\n" + "\tldrb r0, [r6]\n" + "\tadds r0, r5\n" + "\tlsls r0, 6\n" + "\tmov r1, r8\n" + "\tadds r1, 0xD\n" + "\tadds r0, r1\n" + "\tbl sub_80DF9D4\n" + "\tldrb r0, [r6]\n" + "\tadds r0, r5\n" + "\tlsls r0, 6\n" + "\tadd r0, r9\n" + "\tmovs r1, 0x2\n" + "\tbl sub_80DF9E0\n" + "\tldrb r0, [r4]\n" + "\tadds r3, r5, 0x1\n" + "\tsubs r1, r7, 0x1\n" + "\tcmp r0, 0xFF\n" + "\tbeq _080DADE6\n" + "\tadds r2, r4, 0\n" + "_080DADDA:\n" + "\tldrb r0, [r2, 0x1]\n" + "\tstrb r0, [r2]\n" + "\tadds r2, 0x1\n" + "\tldrb r0, [r2]\n" + "\tcmp r0, 0xFF\n" + "\tbne _080DADDA\n" + "_080DADE6:\n" + "\tlsls r0, r1, 24\n" + "\tlsrs r7, r0, 24\n" + "\tadds r5, r3, 0\n" + "\tldrb r1, [r6]\n" + "\tmovs r0, 0x4\n" + "\tsubs r0, r1\n" + "\tcmp r5, r0\n" + "\tblt _080DAD82\n" + "_080DADF6:\n" + "\tadd sp, 0x64\n" + "\tpop {r3,r4}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.pool"); +} +#endif + +// GetContestAvailability? +u8 sub_80DAE0C(struct Pokemon *pkmn) +{ + u8 ribbon; + u8 retVal; + + if (GetMonData(pkmn, MON_DATA_IS_EGG)) + return 3; + if (GetMonData(pkmn, MON_DATA_HP) == 0) + return 4; + switch (gSpecialVar_ContestCategory) + { + case CONTEST_CATEGORY_COOL: + ribbon = GetMonData(pkmn, MON_DATA_COOL_RIBBON); + break; + case CONTEST_CATEGORY_BEAUTY: + ribbon = GetMonData(pkmn, MON_DATA_BEAUTY_RIBBON); + break; + case CONTEST_CATEGORY_CUTE: + ribbon = GetMonData(pkmn, MON_DATA_CUTE_RIBBON); + break; + case CONTEST_CATEGORY_SMART: + ribbon = GetMonData(pkmn, MON_DATA_SMART_RIBBON); + break; + case CONTEST_CATEGORY_TOUGH: + ribbon = GetMonData(pkmn, MON_DATA_TOUGH_RIBBON); + break; + default: + return 0; + } + + // Couldn't get this to match any other way. + // Returns 2, 1, or 0 respectively if ribbon's rank is above, equal, or below + // the current contest rank. + if (ribbon > gSpecialVar_ContestRank) + retVal = 2; + else if (ribbon >= gSpecialVar_ContestRank) + retVal = 1; + else + retVal = 0; + return retVal; +} diff --git a/src/decompress.c b/src/decompress.c index fb288bf4a4..1d4165d753 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -117,7 +117,7 @@ void Unused_LZDecompressWramIndirect(const void **src, void *dest) } // This one (unused) function is really challenging, won't even try to decompile it. -ASM_DIRECT +NAKED void sub_803471C() { asm(".syntax unified\n\ diff --git a/src/fossil_specials.c b/src/fossil_specials.c index 95fafc17bf..060915fa64 100644 --- a/src/fossil_specials.c +++ b/src/fossil_specials.c @@ -335,7 +335,7 @@ static void sub_81BED50(u8 taskId) } #else -ASM_DIRECT +NAKED static void sub_81BED50(u8 taskId) { asm("\n\ diff --git a/src/item.c b/src/item.c index 975fef3aea..319d167fc7 100644 --- a/src/item.c +++ b/src/item.c @@ -234,7 +234,7 @@ bool8 CheckBagHasSpace(u16 itemId, u16 count) } } #else -ASM_DIRECT +NAKED bool8 CheckBagHasSpace(u16 itemId, u16 count) { asm_unified("push {r4-r7,lr}\n\ diff --git a/src/link_rfu.c b/src/link_rfu.c index a1917ed244..37aa20950b 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -2051,7 +2051,7 @@ u8 sub_800DD1C(u8 maxFlags) return 0; } #else -ASM_DIRECT u8 sub_800DD1C(u8 maxFlags) +NAKED u8 sub_800DD1C(u8 maxFlags) { asm_unified("\tpush {r4-r7,lr}\n" "\tlsls r0, 24\n" @@ -2897,7 +2897,7 @@ void sub_800EFB0(void) CpuFill16(0, gRecvCmds, sizeof gRecvCmds); } #else -ASM_DIRECT void sub_800EFB0(void) +NAKED void sub_800EFB0(void) { asm_unified("\tpush {r4-r7,lr}\n" "\tsub sp, 0x4\n" @@ -3233,7 +3233,7 @@ void sub_800F638(u8 unused, u32 flags) } } #else -ASM_DIRECT void sub_800F638(u8 unused, u32 flags) +NAKED void sub_800F638(u8 unused, u32 flags) { asm_unified("\tpush {r4-r7,lr}\n" "\tmov r7, r10\n" @@ -3601,7 +3601,7 @@ void sub_800FD14(u16 command) } } #else -ASM_DIRECT void sub_800FD14(u16 command) +NAKED void sub_800FD14(u16 command) { asm_unified("\tpush {r4,r5,lr}\n" "\tlsls r0, 16\n" @@ -4699,7 +4699,7 @@ void sub_801120C(u8 a0) } } #else -ASM_DIRECT void sub_801120C(u8 a0) +NAKED void sub_801120C(u8 a0) { asm_unified("\tpush {r4-r7,lr}\n" "\tmov r7, r10\n" diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 59b1622ebf..1782e9af82 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -276,7 +276,7 @@ static void sub_80D4A78(u8 bg, u8 x, u8 y, u8 deltaX, u8 deltaY, u8 unused) } } #else -ASM_DIRECT +NAKED static void sub_80D4A78(u8 bg, u8 x, u8 y, u8 deltaX, u8 deltaY, u8 unused) { asm("\n\ diff --git a/src/match_call.c b/src/match_call.c index 9c1e02947d..aa6945161a 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -980,7 +980,7 @@ static void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest) } } #else -static ASM_DIRECT void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest) +static NAKED void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest) { asm_unified("\tpush {r4-r7,lr}\n" "\tmov r7, r10\n" @@ -1163,7 +1163,7 @@ const u8 *sub_81D1B40(u32 idx, u32 offset) return NULL; } #else -ASM_DIRECT const u8 *sub_81D1B40(u32 idx, u32 offset) +NAKED const u8 *sub_81D1B40(u32 idx, u32 offset) { asm_unified("\tpush {r4-r7,lr}\n" "\tmov r7, r9\n" diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index f77b7c38c9..bf3e9aeee3 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1417,7 +1417,7 @@ void sub_81C14BC(struct Pokemon *mon, u8 swappingFromId, u8 swappingToId) *ppBonusesPtr = localPpBonuses; } #else -ASM_DIRECT +NAKED void sub_81C14BC(struct Pokemon *mon, u8 swappingFromId, u8 swappingToId) { asm(".syntax unified\n\ @@ -1628,7 +1628,7 @@ void sub_81C15EC(struct BoxPokemon *mon, u8 swappingFromId, u8 swappingToId) *ppBonusesPtr = localPpBonuses; } #else -ASM_DIRECT +NAKED void sub_81C15EC(struct BoxPokemon *mon, u8 swappingFromId, u8 swappingToId) { asm(".syntax unified\n\ @@ -2039,7 +2039,7 @@ void sub_81C1CB0(struct UnkStruct_61CC04 *a, u16 *b, u8 c, u8 d) Free(alloced); } #else -ASM_DIRECT +NAKED void sub_81C1CB0(struct UnkStruct_61CC04 *a, u16 *b, u8 c, u8 d) { asm(".syntax unified\n\ @@ -2341,7 +2341,7 @@ void sub_81C2194(u16 *a, u16 b, u8 c) } } #else -ASM_DIRECT +NAKED void sub_81C2194(u16 *a, u16 b, u8 c) { asm(".syntax unified\n\ @@ -3026,7 +3026,7 @@ void sub_81C335C() sub_81C25A4(r4, gText_FiveMarks, r5, 1, 0, 1); } #else -ASM_DIRECT +NAKED void sub_81C335C() { asm(".syntax unified\n\ @@ -3369,7 +3369,7 @@ void sub_81C3B08(u8 a) sub_81C25A4(sp, text, offset, (a<<4), 0, r5); } #else -ASM_DIRECT +NAKED void sub_81C3B08(u8 a) { asm(".syntax unified\n\ diff --git a/src/recorded_battle.c b/src/recorded_battle.c index 4cb2eab497..eb48ab15a3 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -475,7 +475,7 @@ u32 MoveRecordedBattleToSaveData(void) } #else -ASM_DIRECT +NAKED u32 MoveRecordedBattleToSaveData(void) { asm(".syntax unified\n\ diff --git a/src/rotating_gate.c b/src/rotating_gate.c index db5935fc30..a16401fa23 100644 --- a/src/rotating_gate.c +++ b/src/rotating_gate.c @@ -925,7 +925,7 @@ static s32 RotatingGate_CanRotate(u8 gateId, s16 rotationDirection) } #else -ASM_DIRECT +NAKED static s32 RotatingGate_CanRotate(u8 a, s16 rotationDirection) { asm(".syntax unified\n\ diff --git a/src/text.c b/src/text.c index eacfd2a1f9..a902844e8d 100644 --- a/src/text.c +++ b/src/text.c @@ -375,7 +375,7 @@ void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor) *(current++) = (shadowColor << 12) | (shadowColor << 8) | (shadowColor << 4) | shadowColor; } #else -ASM_DIRECT +NAKED void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor) { asm("push {r4-r7,lr}\n\ @@ -871,7 +871,7 @@ void DecompressGlyphTile(const u16 *src, u16 *dest) *(dest) = (gFontHalfRowLookupTable[gFontHalfRowOffsets[src[1] & 0xFF]] << 16) | gFontHalfRowLookupTable[gFontHalfRowOffsets[src[1] >> 8]]; } #else -ASM_DIRECT +NAKED void DecompressGlyphTile(const u16 *src, u16 *dest) { asm("push {r4-r7,lr}\n\ @@ -1052,7 +1052,7 @@ u8 GetLastTextColor(u8 colorType) } } -ASM_DIRECT +NAKED void CopyGlyphToWindow(struct TextPrinter *x) { asm("push {r4-r7,lr}\n\ diff --git a/src/tv.c b/src/tv.c index 4b6e682bd1..13d522f107 100644 --- a/src/tv.c +++ b/src/tv.c @@ -3931,7 +3931,7 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans } } #else -ASM_DIRECT static void sub_80F0708(void) +NAKED static void sub_80F0708(void) { asm_unified("\tpush {r4-r7,lr}\n" "\tmov r7, r9\n" diff --git a/src/util.c b/src/util.c index 4f9241b212..88be4e4a13 100644 --- a/src/util.c +++ b/src/util.c @@ -230,7 +230,7 @@ void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) } #else -ASM_DIRECT void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) +NAKED void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) { asm("\n\ .syntax unified\n\ From 508a8e51824e4d9d09a5122576c3b69f43cb2cbf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 10 May 2018 18:16:58 -0400 Subject: [PATCH 033/174] through sub_80DAFA0 --- asm/contest.s | 152 ---------------------------------------------- include/strings.h | 2 + src/contest.c | 60 +++++++++++++++++- 3 files changed, 60 insertions(+), 154 deletions(-) diff --git a/asm/contest.s b/asm/contest.s index 1d2388e53e..a21aa29e87 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,158 +5,6 @@ .text - thumb_func_start sub_80DAEA4 -sub_80DAEA4: @ 80DAEA4 - push {r4,r5,lr} - movs r5, 0 -_080DAEA8: - ldr r0, =gUnknown_02039F26 - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - lsls r4, r5, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80DAF04 - adds r0, r4, 0 - bl sub_80DAF88 - adds r5, 0x1 - cmp r5, 0x3 - ble _080DAEA8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DAEA4 - - thumb_func_start sub_80DAED4 -sub_80DAED4: @ 80DAED4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r0, =gDisplayedStringBattle - ldr r1, =gText_ColorTransparent - bl StringCopy - adds r1, r0, 0 - subs r0, r1, 0x1 - strb r4, [r0] - adds r0, r1, 0 - adds r1, r5, 0 - bl StringCopy - adds r1, r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80DAED4 - - thumb_func_start sub_80DAF04 -sub_80DAF04: @ 80DAF04 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r0, r1, 24 - movs r2, 0xA0 - lsls r2, 20 - adds r1, r2 - lsrs r1, 24 - bl sub_80DAF1C - pop {r0} - bx r0 - thumb_func_end sub_80DAF04 - - thumb_func_start sub_80DAF1C -sub_80DAF1C: @ 80DAF1C - push {r4,r5,lr} - sub sp, 0x24 - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =gText_Slash - add r0, sp, 0x4 - bl StringCopy - lsls r1, r5, 6 - ldr r0, =gContestMons + 13 - adds r1, r0 - add r0, sp, 0x4 - bl StringAppend - add r0, sp, 0x4 - adds r1, r4, 0 - bl sub_80DAED4 - ldr r4, =gDisplayedStringBattle - movs r0, 0x7 - adds r1, r4, 0 - movs r2, 0x60 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - cmp r2, 0x37 - ble _080DAF5C - movs r2, 0x37 -_080DAF5C: - ldr r0, =gUnknown_02039F26 - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, 0x7 - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_80DEBD0 - add sp, 0x24 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DAF1C - - thumb_func_start sub_80DAF88 -sub_80DAF88: @ 80DAF88 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r0, r1, 24 - movs r2, 0xA0 - lsls r2, 20 - adds r1, r2 - lsrs r1, 24 - bl sub_80DAFA0 - pop {r0} - bx r0 - thumb_func_end sub_80DAF88 - - thumb_func_start sub_80DAFA0 -sub_80DAFA0: @ 80DAFA0 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r4, 6 - ldr r2, =gContestMons + 2 - adds r0, r2 - bl sub_80DAED4 - ldr r0, =gUnknown_02039F26 - adds r4, r0 - ldrb r0, [r4] - ldr r1, =gDisplayedStringBattle - movs r2, 0x7 - str r2, [sp] - movs r2, 0x5 - movs r3, 0x1 - bl sub_80DEBD0 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DAFA0 - thumb_func_start sub_80DAFE0 sub_80DAFE0: @ 80DAFE0 push {r4,r5,lr} diff --git a/include/strings.h b/include/strings.h index e5459c3209..f3a4fafbe7 100644 --- a/include/strings.h +++ b/include/strings.h @@ -445,5 +445,7 @@ extern const u8 gText_FiveMarks[]; extern const u8 gText_TotalRecordWLD[]; extern const u8 gText_PlayersBattleResults[]; extern const u8 gText_WinLoseDraw[]; +extern const u8 gText_ColorTransparent[]; +extern const u8 gText_Slash[]; #endif //GUARD_STRINGS_H diff --git a/src/contest.c b/src/contest.c index 82547e4284..18e66714e6 100644 --- a/src/contest.c +++ b/src/contest.c @@ -40,6 +40,7 @@ #include "contest_effect.h" #include "contest_link_80FC4F4.h" #include "script_pokemon_util_80F87D8.h" +#include "international_string_util.h" #define DESTROY_POINTER(ptr) \ free(ptr); \ @@ -95,7 +96,10 @@ void sub_80DA7EC(u8); void sub_80DA830(u8); void sub_80DA874(void); bool8 sub_80DA8A4(void); -void sub_80DE424(u8); +void sub_80DAF04(u8); +void sub_80DAF1C(u8 a0, u8 a1); +void sub_80DAF88(u8); +void sub_80DAFA0(u8, u8); u8 sub_80DB0C4(void); u8 sub_80DB120(void); void sub_80DB2BC(void); @@ -120,9 +124,10 @@ void sub_80DDBE8(void); bool8 sub_80DE1E8(u8); void sub_80DE224(void); void sub_80DE350(void); +void sub_80DE424(u8); void sub_80DE69C(u8); void sub_80DEA20(void); -void sub_80DEBD0(u32, u8 *, u8, u8, u8); +void sub_80DEBD0(u32, u8 *, s32, u8, u8); void sub_80DEC30(const u8 *, u8); void sub_80DECB8(u8, u16, u8, u8, u8, u8, u8, u8); bool32 sub_80DED4C(void); @@ -2385,3 +2390,54 @@ u8 sub_80DAE0C(struct Pokemon *pkmn) retVal = 0; return retVal; } + +void sub_80DAEA4(void) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + FillWindowPixelBuffer(gUnknown_02039F26[i], 0); + sub_80DAF04(i); + sub_80DAF88(i); + } +} + +u8 * sub_80DAED4(const u8 * src, u8 color) +{ + u8 * ptr = StringCopy(gDisplayedStringBattle, gText_ColorTransparent); + ptr[-1] = color; + ptr = StringCopy(ptr, src); + + return ptr; +} + +void sub_80DAF04(u8 a0) +{ + sub_80DAF1C(a0, a0 + 10); +} + +void sub_80DAF1C(u8 a0, u8 a1) +{ + u8 buffer[32]; + s32 offset; + + StringCopy(buffer, gText_Slash); + StringAppend(buffer, gContestMons[a0].trainerName); + sub_80DAED4(buffer, a1); + offset = GetStringRightAlignXOffset(7, gDisplayedStringBattle, 0x60); + if (offset > 55) + offset = 55; + sub_80DEBD0(gUnknown_02039F26[a0], gDisplayedStringBattle, offset, 1, 7); +} + +void sub_80DAF88(u8 a0) +{ + sub_80DAFA0(a0, a0 + 10); +} + +void sub_80DAFA0(u8 a0, u8 a1) +{ + sub_80DAED4(gContestMons[a0].nickname, a1); + sub_80DEBD0(gUnknown_02039F26[a0], gDisplayedStringBattle, 5, 1, 7); +} From 9bee601b163ff9fcfebba6021ea162880b6fed92 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 10 May 2018 19:28:52 -0400 Subject: [PATCH 034/174] through sub_80DB174 --- asm/contest.s | 340 +----------------------------- asm/contest_ai.s | 4 +- asm/contest_link_80F57C4.s | 8 +- asm/contest_link_80FC4F4.s | 4 +- asm/script_pokemon_util_80F87D8.s | 2 +- include/battle_anim.h | 2 + include/data2.h | 4 +- src/contest.c | 113 +++++++++- 8 files changed, 133 insertions(+), 344 deletions(-) diff --git a/asm/contest.s b/asm/contest.s index a21aa29e87..6524f7a905 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,330 +5,6 @@ .text - thumb_func_start sub_80DAFE0 -sub_80DAFE0: @ 80DAFE0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r0, r1, 24 - cmp r0, 0x4 - bhi _080DB06C - lsls r0, 2 - ldr r1, =_080DAFFC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080DAFFC: - .4byte _080DB010 - .4byte _080DB028 - .4byte _080DB040 - .4byte _080DB050 - .4byte _080DB06C -_080DB010: - ldr r0, =gContestMons - lsls r2, 6 - adds r1, r2, r0 - adds r3, r1, 0 - adds r3, 0x26 - ldrb r5, [r3] - adds r3, 0x4 - ldrb r4, [r3] - adds r1, 0x27 - b _080DB07E - .pool -_080DB028: - ldr r0, =gContestMons - lsls r2, 6 - adds r1, r2, r0 - adds r3, r1, 0 - adds r3, 0x27 - ldrb r5, [r3] - subs r3, 0x1 - ldrb r4, [r3] - adds r1, 0x28 - b _080DB07E - .pool -_080DB040: - ldr r1, =gContestMons - lsls r2, 6 - adds r3, r2, r1 - adds r0, r3, 0 - adds r0, 0x28 - b _080DB05A - .pool -_080DB050: - ldr r1, =gContestMons - lsls r2, 6 - adds r3, r2, r1 - adds r0, r3, 0 - adds r0, 0x29 -_080DB05A: - ldrb r5, [r0] - subs r0, 0x1 - ldrb r4, [r0] - adds r0, 0x2 - ldrb r3, [r0] - adds r0, r1, 0 - b _080DB080 - .pool -_080DB06C: - ldr r0, =gContestMons - lsls r2, 6 - adds r1, r2, r0 - adds r3, r1, 0 - adds r3, 0x2A - ldrb r5, [r3] - subs r3, 0x1 - ldrb r4, [r3] - adds r1, 0x26 -_080DB07E: - ldrb r3, [r1] -_080DB080: - adds r1, r2, r0 - adds r1, 0x2B - adds r0, r4, r3 - ldrb r1, [r1] - adds r0, r1 - asrs r0, 1 - adds r0, r5, r0 - lsls r0, 16 - lsrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80DAFE0 - - thumb_func_start sub_80DB09C -sub_80DB09C: @ 80DB09C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r5, =gUnknown_02039F00 -_080DB0A6: - lsls r0, r4, 24 - lsrs r0, 24 - adds r1, r6, 0 - bl sub_80DAFE0 - strh r0, [r5] - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _080DB0A6 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DB09C - - thumb_func_start sub_80DB0C4 -sub_80DB0C4: @ 80DB0C4 - push {r4,r5,lr} - ldr r0, =gUnknown_08587C00 - bl LoadCompressedObjectPic - ldr r0, =gContest2Pal - movs r1, 0x88 - lsls r1, 1 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r0, =gSpriteTemplate_8587BE8 - movs r1, 0x70 - movs r2, 0x24 - movs r3, 0x1E - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r5, r2, r4 - ldrb r3, [r5, 0x5] - movs r1, 0xF - ands r1, r3 - movs r3, 0x10 - orrs r1, r3 - strb r1, [r5, 0x5] - adds r4, 0x1C - adds r2, r4 - ldr r1, =SpriteCallbackDummy - str r1, [r2] - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80DB0C4 - - thumb_func_start sub_80DB120 -sub_80DB120: @ 80DB120 - push {lr} - ldr r0, =gUnknown_08587C08 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_08587C10 - bl LoadCompressedObjectPalette - ldr r0, =gSpriteTemplate_8587C18 - movs r1, 0x60 - movs r2, 0xA - movs r3, 0x1D - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - movs r1, 0x3E - adds r1, r2 - mov r12, r1 - ldrb r1, [r1] - movs r3, 0x4 - orrs r1, r3 - mov r3, r12 - strb r1, [r3] - ldrh r1, [r2, 0x4] - lsls r1, 22 - lsrs r1, 22 - strh r1, [r2, 0x2E] - pop {r1} - bx r1 - .pool - thumb_func_end sub_80DB120 - - thumb_func_start sub_80DB174 -sub_80DB174: @ 80DB174 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - adds r6, r2, 0 - adds r4, r3, 0 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r5, 0 - bl sub_80DE84C - adds r5, r0, 0 - ldr r0, =gContestPlayerMonIndex - ldrb r0, [r0] - cmp r4, r0 - bne _080DB1B8 - lsls r0, r5, 3 - ldr r1, =gMonBackPicTable - adds r0, r1 - ldr r1, =gMonSpritesGfxPtr - ldr r1, [r1] - ldr r1, [r1, 0x4] - adds r2, r5, 0 - adds r3, r6, 0 - bl HandleLoadSpecialPokePic_2 - b _080DB1CC - .pool -_080DB1B8: - lsls r0, r5, 3 - ldr r1, =gMonBackPicTable - adds r0, r1 - ldr r1, =gMonSpritesGfxPtr - ldr r1, [r1] - ldr r1, [r1, 0x4] - adds r2, r5, 0 - adds r3, r6, 0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys -_080DB1CC: - adds r0, r5, 0 - adds r1, r7, 0 - adds r2, r6, 0 - bl GetFrontSpritePalFromSpeciesAndPersonality - movs r1, 0x90 - lsls r1, 1 - movs r2, 0x20 - bl LoadCompressedPalette - adds r0, r5, 0 - movs r1, 0 - bl sub_806A068 - ldr r4, =gUnknown_0202499C - movs r0, 0x2 - adds r1, r5, 0 - movs r2, 0 - bl sub_80A600C - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - movs r1, 0x70 - movs r3, 0x1E - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gSprites - mov r8, r0 - lsls r0, r7, 4 - adds r0, r7 - lsls r6, r0, 2 - mov r0, r8 - adds r4, r6, r0 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - movs r1, 0xD - negs r1, r1 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r4, 0x5] - movs r0, 0x2 - bl sub_80A82E4 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - mov r0, r8 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, =SpriteCallbackDummy - str r1, [r0] - ldrb r0, [r4, 0x5] - lsrs r0, 4 - strh r0, [r4, 0x2E] - strh r5, [r4, 0x32] - adds r0, r5, 0 - bl IsSpeciesNotUnown - lsls r0, 24 - cmp r0, 0 - beq _080DB278 - mov r0, r8 - adds r0, 0x10 - adds r0, r6, r0 - ldr r1, =gUnknown_082FF6C0 - b _080DB280 - .pool -_080DB278: - mov r0, r8 - adds r0, 0x10 - adds r0, r6, r0 - ldr r1, =gUnknown_082FF694 -_080DB280: - str r1, [r0] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r1, 0 - bl StartSpriteAffineAnim - adds r0, r7, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80DB174 - thumb_func_start IsSpeciesNotUnown IsSpeciesNotUnown: @ 80DB2A8 push {lr} @@ -1675,7 +1351,7 @@ sub_80DBCE0: @ 80DBCE0 strh r0, [r1] ldr r2, =gUnknown_02039F08 adds r2, r4, r2 - ldr r1, =gUnknown_02039F00 + ldr r1, =gContestMonConditions adds r4, r1 ldrh r4, [r4] adds r0, r4 @@ -1785,7 +1461,7 @@ _080DBDB8: mov r4, sp ldr r6, =gUnknown_02039F08 ldr r2, [sp, 0x64] - ldr r5, =gUnknown_02039F00 + ldr r5, =gContestMonConditions ldr r3, [sp, 0x68] _080DBDD2: mov r7, r9 @@ -3918,7 +3594,7 @@ _080DCECC: movs r4, 0 cmp r4, r5 bge _080DCF48 - ldr r7, =gUnknown_02039F00 + ldr r7, =gContestMonConditions mov r9, r7 lsls r0, r5, 1 adds r1, r0, 0 @@ -8374,11 +8050,11 @@ _080DF2EE: strb r0, [r2, 0xD] _080DF30A: movs r5, 0 - ldr r2, =gUnknown_02039F00 + ldr r2, =gContestMonConditions add r2, r10 movs r6, 0 ldrsh r1, [r2, r6] - ldr r7, =gUnknown_02039F00 + ldr r7, =gContestMonConditions movs r3, 0 ldrsh r0, [r7, r3] cmp r1, r0 @@ -8417,12 +8093,12 @@ _080DF354: mov r12, r3 mov r8, r3 movs r5, 0 - ldr r0, =gUnknown_02039F00 + ldr r0, =gContestMonConditions add r0, r10 movs r7, 0 ldrsh r6, [r0, r7] str r6, [sp, 0x34] - ldr r2, =gUnknown_02039F00 + ldr r2, =gContestMonConditions ldr r0, =gUnknown_02039F18 mov r1, r10 adds r6, r1, r0 @@ -8665,7 +8341,7 @@ _080DF528: lsls r2, r7, 1 lsls r4, r7, 4 mov r8, r4 - ldr r1, =gUnknown_02039F00 + ldr r1, =gContestMonConditions adds r0, r2, r1 movs r6, 0 ldrsh r5, [r0, r6] diff --git a/asm/contest_ai.s b/asm/contest_ai.s index 217044e9fc..ff48661f08 100644 --- a/asm/contest_ai.s +++ b/asm/contest_ai.s @@ -1167,7 +1167,7 @@ sub_8156B88: @ 8156B88 ldr r0, =gContestResources ldr r0, [r0] ldr r2, [r0, 0xC] - ldr r1, =gUnknown_02039F00 + ldr r1, =gContestMonConditions adds r0, r2, 0 adds r0, 0x41 ldrb r0, [r0] @@ -3729,7 +3729,7 @@ sub_8157F5C: @ 8157F5C ldr r1, =gContestResources ldr r1, [r1] ldr r3, [r1, 0xC] - ldr r2, =gUnknown_02039F00 + ldr r2, =gContestMonConditions lsrs r0, 23 adds r0, r2 adds r1, r3, 0 diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s index 88629fb832..53f653bdf1 100644 --- a/asm/contest_link_80F57C4.s +++ b/asm/contest_link_80F57C4.s @@ -3104,7 +3104,7 @@ sub_80F7310: @ 80F7310 lsls r0, 24 lsls r1, 24 lsrs r5, r1, 24 - ldr r1, =gUnknown_02039F00 + ldr r1, =gContestMonConditions lsrs r0, 23 adds r0, r1 movs r1, 0 @@ -3847,7 +3847,7 @@ _080F78E4: mov r8, r5 mov r10, r5 _080F78EA: - ldr r0, =gUnknown_02039F00 + ldr r0, =gContestMonConditions mov r1, r8 lsls r7, r1, 1 adds r0, r7, r0 @@ -5027,7 +5027,7 @@ sub_80F82B4: @ 80F82B4 movs r1, 0 movs r2, 0 ldr r5, =gSpecialVar_0x8004 - ldr r4, =gUnknown_02039F00 + ldr r4, =gContestMonConditions ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] lsls r0, 1 @@ -5060,7 +5060,7 @@ _080F82DC: thumb_func_start sub_80F82FC sub_80F82FC: @ 80F82FC ldr r2, =gSpecialVar_0x8004 - ldr r1, =gUnknown_02039F00 + ldr r1, =gContestMonConditions ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] lsls r0, 1 diff --git a/asm/contest_link_80FC4F4.s b/asm/contest_link_80FC4F4.s index 3912731ecc..1af07908e4 100644 --- a/asm/contest_link_80FC4F4.s +++ b/asm/contest_link_80FC4F4.s @@ -1262,7 +1262,7 @@ _080FCF80: lsls r0, 24 cmp r0, 0 beq _080FCFBE - ldr r0, =gUnknown_02039F00 + ldr r0, =gContestMonConditions movs r1, 0x8 bl sub_80FC4F4 cmp r0, 0x1 @@ -1274,7 +1274,7 @@ _080FCF9C: lsls r0, 24 cmp r0, 0 beq _080FCFBE - ldr r0, =gUnknown_02039F00 + ldr r0, =gContestMonConditions ldr r1, =gUnknown_02039F2B ldrb r1, [r1] lsls r1, 8 diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s index 917d02cd0e..80c80c323e 100644 --- a/asm/script_pokemon_util_80F87D8.s +++ b/asm/script_pokemon_util_80F87D8.s @@ -218,7 +218,7 @@ sub_80F8970: @ 80F8970 mov r5, r8 push {r5-r7} sub sp, 0x8 - ldr r0, =gUnknown_02039F00 + ldr r0, =gContestMonConditions mov r12, r0 ldr r1, =gSpecialVar_0x8006 mov r9, r1 diff --git a/include/battle_anim.h b/include/battle_anim.h index d6d4c05d66..f690cf10cc 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -107,4 +107,6 @@ u8 ItemIdToBallId(u16 itemId); u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId); u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId); +u8 sub_80A600C(u8, u16, u8); + #endif // GUARD_BATTLE_ANIM_H diff --git a/include/data2.h b/include/data2.h index d71958201f..2cc13d88e1 100644 --- a/include/data2.h +++ b/include/data2.h @@ -1,6 +1,8 @@ #ifndef GUARD_DATA2_H #define GUARD_DATA2_H +#include "constants/species.h" + struct MonCoords { // This would use a bitfield, but some function @@ -17,6 +19,6 @@ extern const u8 gMoveNames[][13]; extern struct CompressedSpriteSheet gUnknown_0831C620; extern struct CompressedSpritePalette gUnknown_0831C628; extern const struct SpriteTemplate gUnknown_0831C688; - +extern const struct CompressedSpriteSheet gMonBackPicTable[NUM_SPECIES]; #endif // GUARD_DATA2_H diff --git a/src/contest.c b/src/contest.c index 18e66714e6..1ce90fd454 100644 --- a/src/contest.c +++ b/src/contest.c @@ -41,6 +41,7 @@ #include "contest_link_80FC4F4.h" #include "script_pokemon_util_80F87D8.h" #include "international_string_util.h" +#include "data2.h" #define DESTROY_POINTER(ptr) \ free(ptr); \ @@ -102,6 +103,8 @@ void sub_80DAF88(u8); void sub_80DAFA0(u8, u8); u8 sub_80DB0C4(void); u8 sub_80DB120(void); +u8 sub_80DB174(u16, u32, u32, u32); +u16 sub_80DE84C(u16); void sub_80DB2BC(void); void sub_80DB89C(void); u16 sub_80DB8B8(u8); @@ -142,7 +145,6 @@ void sub_80DD080(u8); void sub_80DF080(u8); void sub_80DF750(void); void sub_80DE9DC(u8); -u8 sub_80DB174(u16, u32, u32, u32); void sub_80DCBE8(u8, u8); u8 sub_80DC9EC(u8); u16 sub_80DE834(u16); @@ -171,7 +173,7 @@ void sub_80DF9D4(u8 *); void sub_80DF9E0(u8 *, s32); EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; -EWRAM_DATA s16 gUnknown_02039F00[4] = {0}; +EWRAM_DATA s16 gContestMonConditions[4] = {0}; EWRAM_DATA s16 gUnknown_02039F08[4] = {0}; EWRAM_DATA s16 gUnknown_02039F10[4] = {0}; EWRAM_DATA s16 gUnknown_02039F18[4] = {0}; @@ -234,6 +236,14 @@ extern const u8 gText_0827D56F[]; extern const u8 gText_0827D597[]; extern const struct ContestPokemon gContestOpponents[96]; extern const u8 gUnknown_085898A4[96]; +extern const struct CompressedSpriteSheet gUnknown_08587C00; +extern const u8 gContest2Pal[]; +extern const struct SpriteTemplate gSpriteTemplate_8587BE8; +extern const struct CompressedSpriteSheet gUnknown_08587C08; +extern const struct CompressedSpritePalette gUnknown_08587C10; +extern const struct SpriteTemplate gSpriteTemplate_8587C18; +extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; +extern const union AffineAnimCmd *const gUnknown_082FF694[]; void TaskDummy1(u8 taskId) { @@ -2441,3 +2451,102 @@ void sub_80DAFA0(u8 a0, u8 a1) sub_80DAED4(gContestMons[a0].nickname, a1); sub_80DEBD0(gUnknown_02039F26[a0], gDisplayedStringBattle, 5, 1, 7); } + +u16 sub_80DAFE0(u8 who, u8 contestCategory) +{ + u8 statMain; + u8 statSub1; + u8 statSub2; + + switch (contestCategory) + { + case CONTEST_CATEGORY_COOL: + statMain = gContestMons[who].cool; + statSub1 = gContestMons[who].tough; + statSub2 = gContestMons[who].beauty; + break; + case CONTEST_CATEGORY_BEAUTY: + statMain = gContestMons[who].beauty; + statSub1 = gContestMons[who].cool; + statSub2 = gContestMons[who].cute; + break; + case CONTEST_CATEGORY_CUTE: + statMain = gContestMons[who].cute; + statSub1 = gContestMons[who].beauty; + statSub2 = gContestMons[who].smart; + break; + case CONTEST_CATEGORY_SMART: + statMain = gContestMons[who].smart; + statSub1 = gContestMons[who].cute; + statSub2 = gContestMons[who].tough; + break; + case CONTEST_CATEGORY_TOUGH: + default: + statMain = gContestMons[who].tough; + statSub1 = gContestMons[who].smart; + statSub2 = gContestMons[who].cool; + break; + } + return statMain + (statSub1 + statSub2 + gContestMons[who].sheen) / 2; +} + +void sub_80DB09C(u8 a0) +{ + s32 i; + + for (i = 0; i < 4; i++) + gContestMonConditions[i] = sub_80DAFE0(i, a0); +} + +u8 sub_80DB0C4(void) +{ + u8 spriteId; + + LoadCompressedObjectPic(&gUnknown_08587C00); + LoadCompressedPalette(gContest2Pal, 0x110, 32); + spriteId = CreateSprite(&gSpriteTemplate_8587BE8, 112, 36, 30); + gSprites[spriteId].oam.paletteNum = 1; + gSprites[spriteId].callback = SpriteCallbackDummy; + return spriteId; +} + +u8 sub_80DB120(void) +{ + u8 spriteId; + + LoadCompressedObjectPic(&gUnknown_08587C08); + LoadCompressedObjectPalette(&gUnknown_08587C10); + spriteId = CreateSprite(&gSpriteTemplate_8587C18, 96, 10, 29); + gSprites[spriteId].invisible = TRUE; + gSprites[spriteId].data[0] = gSprites[spriteId].oam.tileNum; + return spriteId; +} + +u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index) +{ + u8 spriteId; + species = sub_80DE84C(species); + + if (index == gContestPlayerMonIndex) + HandleLoadSpecialPokePic_2(gMonBackPicTable + species, gMonSpritesGfxPtr->sprites[0], species, personality); + else + HandleLoadSpecialPokePic_DontHandleDeoxys(gMonBackPicTable + species, gMonSpritesGfxPtr->sprites[0], species, personality); + + LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20); + sub_806A068(species, 0); + + spriteId = CreateSprite(&gUnknown_0202499C, 0x70, sub_80A600C(2, species, 0), 30); + gSprites[spriteId].oam.paletteNum = 2; + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].subpriority = sub_80A82E4(2); + gSprites[spriteId].callback = SpriteCallbackDummy; + gSprites[spriteId].data[0] = gSprites[spriteId].oam.paletteNum; + gSprites[spriteId].data[2] = species; + if (IsSpeciesNotUnown(species)) + gSprites[spriteId].affineAnims = gUnknown_082FF6C0; + else + gSprites[spriteId].affineAnims = gUnknown_082FF694; + StartSpriteAffineAnim(gSprites + spriteId, 0); + + return spriteId; +} From c15b50ac686632130512de37d01037bff6e10cd2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 11 May 2018 08:44:21 -0400 Subject: [PATCH 035/174] through prints_contest_move_description --- asm/contest.s | 261 ----------------------------------- include/contest_effect.h | 8 ++ src/contest.c | 88 +++++++++++- src/pokemon_summary_screen.c | 17 +-- 4 files changed, 95 insertions(+), 279 deletions(-) diff --git a/asm/contest.s b/asm/contest.s index 6524f7a905..69060422e1 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,267 +5,6 @@ .text - thumb_func_start IsSpeciesNotUnown -IsSpeciesNotUnown: @ 80DB2A8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xC9 - beq _080DB2B6 - movs r0, 0x1 - b _080DB2B8 -_080DB2B6: - movs r0, 0 -_080DB2B8: - pop {r1} - bx r1 - thumb_func_end IsSpeciesNotUnown - - thumb_func_start sub_80DB2BC -sub_80DB2BC: @ 80DB2BC - push {r4-r6,lr} - ldr r5, =gContestResources - ldr r0, [r5] - ldr r0, [r0, 0x24] - movs r4, 0xA0 - lsls r4, 3 - adds r1, r0, r4 - movs r6, 0xA0 - lsls r6, 1 - adds r2, r6, 0 - bl CpuSet - ldr r0, [r5] - ldr r0, [r0, 0x2C] - adds r4, r0, r4 - adds r1, r4, 0 - adds r2, r6, 0 - bl CpuSet - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DB2BC - - thumb_func_start sub_80DB2EC -sub_80DB2EC: @ 80DB2EC - push {lr} - lsls r0, 16 - lsls r1, 24 - lsrs r3, r1, 24 - ldr r2, =gContestEffects - ldr r1, =gContestMoves - lsrs r0, 13 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x8 - bhi _080DB354 - lsls r0, 2 - ldr r1, =_080DB320 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080DB320: - .4byte _080DB344 - .4byte _080DB344 - .4byte _080DB34C - .4byte _080DB34C - .4byte _080DB354 - .4byte _080DB354 - .4byte _080DB354 - .4byte _080DB354 - .4byte _080DB344 -_080DB344: - ldr r0, =0x00009082 - b _080DB356 - .pool -_080DB34C: - ldr r0, =0x00009088 - b _080DB356 - .pool -_080DB354: - ldr r0, =0x00009086 -_080DB356: - lsls r1, r3, 12 - movs r2, 0x90 - lsls r2, 8 - adds r1, r2 - lsls r0, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80DB2EC - - thumb_func_start prints_contest_move_description -prints_contest_move_description: @ 80DB370 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r1, =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 29 - ldr r7, =0x00004040 - cmp r0, 0 - beq _080DB3A4 - adds r7, 0x5 - cmp r0, 0x1 - beq _080DB3A4 - adds r7, 0x5 - cmp r0, 0x2 - beq _080DB3A4 - adds r7, 0x40 - cmp r0, 0x3 - bne _080DB3A4 - subs r7, 0x20 -_080DB3A4: - movs r6, 0x5 - str r6, [sp] - movs r4, 0x1 - str r4, [sp, 0x4] - movs r5, 0x11 - str r5, [sp, 0x8] - str r4, [sp, 0xC] - movs r0, 0 - adds r1, r7, 0 - movs r2, 0xB - movs r3, 0x1F - bl sub_80DECB8 - adds r1, r7, 0 - adds r1, 0x10 - str r6, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - str r4, [sp, 0xC] - movs r0, 0 - movs r2, 0xB - movs r3, 0x20 - bl sub_80DECB8 - ldr r2, =gContestEffects - ldr r0, =gContestMoves - mov r3, r8 - lsls r1, r3, 3 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x1] - adds r7, r1, 0 - cmp r0, 0xFF - bne _080DB3FC - movs r6, 0 - b _080DB408 - .pool -_080DB3FC: - ldrb r0, [r2, 0x1] - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r6, r0, 24 -_080DB408: - cmp r6, 0x8 - bls _080DB40E - movs r6, 0x8 -_080DB40E: - ldr r1, =0x00005035 - movs r0, 0x8 - str r0, [sp] - movs r5, 0x1 - str r5, [sp, 0x4] - movs r4, 0x11 - str r4, [sp, 0x8] - movs r0, 0 - movs r2, 0x15 - movs r3, 0x1F - bl sub_80DED10 - ldr r1, =0x00005012 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0 - movs r2, 0x15 - movs r3, 0x1F - bl sub_80DED10 - ldr r1, =gContestEffects - ldr r0, =gContestMoves - adds r0, r7, r0 - ldrb r0, [r0] - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x2] - cmp r0, 0xFF - bne _080DB460 - movs r6, 0 - b _080DB46C - .pool -_080DB460: - ldrb r0, [r1, 0x2] - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r6, r0, 24 -_080DB46C: - cmp r6, 0x8 - bls _080DB472 - movs r6, 0x8 -_080DB472: - ldr r1, =0x00005036 - movs r0, 0x8 - str r0, [sp] - movs r5, 0x1 - str r5, [sp, 0x4] - movs r4, 0x11 - str r4, [sp, 0x8] - movs r0, 0 - movs r2, 0x15 - movs r3, 0x20 - bl sub_80DED10 - ldr r1, =0x00005014 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0 - movs r2, 0x15 - movs r3, 0x20 - bl sub_80DED10 - movs r0, 0xA - movs r1, 0 - bl FillWindowPixelBuffer - ldr r1, =gContestEffectDescriptionPointers - ldr r0, =gContestMoves - adds r0, r7, r0 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0xA - bl sub_80DEB70 - ldr r1, =gText_Slash - movs r0, 0x9 - bl sub_80DEB70 - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end prints_contest_move_description - thumb_func_start sub_80DB4E0 sub_80DB4E0: @ 80DB4E0 push {r4-r7,lr} diff --git a/include/contest_effect.h b/include/contest_effect.h index 4d680be9e8..3484ca5df8 100644 --- a/include/contest_effect.h +++ b/include/contest_effect.h @@ -9,6 +9,14 @@ struct ContestMove u8 comboMoves[4]; }; +struct ContestEffect +{ + u8 effectType; + u8 appeal; + u8 jam; +}; + extern const struct ContestMove gContestMoves[]; +extern struct ContestEffect gContestEffects[]; #endif //GUARD_CONTEST_EFFECT_H diff --git a/src/contest.c b/src/contest.c index 1ce90fd454..b4e71d82b7 100644 --- a/src/contest.c +++ b/src/contest.c @@ -104,8 +104,9 @@ void sub_80DAFA0(u8, u8); u8 sub_80DB0C4(void); u8 sub_80DB120(void); u8 sub_80DB174(u16, u32, u32, u32); -u16 sub_80DE84C(u16); void sub_80DB2BC(void); +void prints_contest_move_description(u16); +u16 sub_80DE84C(u16); void sub_80DB89C(void); u16 sub_80DB8B8(u8); void sub_80DB918(void); @@ -137,7 +138,6 @@ bool32 sub_80DED4C(void); void sub_80DED60(u32); void sub_80FC9F8(u8); bool8 AreMovesContestCombo(u16, u16); -void prints_contest_move_description(u16); void sub_80DBD18(void); void sub_80DF250(void); void sub_80DF4F8(void); @@ -171,6 +171,8 @@ void sub_80DC3AC(void); bool8 sub_80DC3C4(void); void sub_80DF9D4(u8 *); void sub_80DF9E0(u8 *, s32); +void sub_80DED10(u8, u16, u8, u8, u8, u8, u8); +void sub_80DEB70(u8, const u8 *); EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; EWRAM_DATA s16 gContestMonConditions[4] = {0}; @@ -244,6 +246,7 @@ extern const struct CompressedSpritePalette gUnknown_08587C10; extern const struct SpriteTemplate gSpriteTemplate_8587C18; extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; extern const union AffineAnimCmd *const gUnknown_082FF694[]; +extern const u8 *const gContestEffectDescriptionPointers[]; void TaskDummy1(u8 taskId) { @@ -2550,3 +2553,84 @@ u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index) return spriteId; } + +bool8 IsSpeciesNotUnown(u16 species) +{ + if (species == SPECIES_UNOWN) + return FALSE; + else + return TRUE; +} + +void sub_80DB2BC(void) +{ + CpuCopy16(gContestResources->field_24[0], gContestResources->field_24[0] + 0x500, 0x280); + CpuCopy16(gContestResources->field_24[2], gContestResources->field_24[2] + 0x500, 0x280); +} + +u16 sub_80DB2EC(u16 a0, u8 a1) +{ + u16 var; + + switch (gContestEffects[gContestMoves[a0].effect].effectType) + { + case 0: + case 1: + case 8: + var = 0x9082; + break; + case 2: + case 3: + var = 0x9088; + break; + default: + var = 0x9086; + break; + } + var += 0x9000 + (a1 << 12); + return var; +} + +void prints_contest_move_description(u16 a) +{ + u8 category; + u16 categoryTile; + u8 numHearts; + + category = gContestMoves[a].contestCategory; + if (category == CONTEST_CATEGORY_COOL) + categoryTile = 0x4040; + else if (category == CONTEST_CATEGORY_BEAUTY) + categoryTile = 0x4045; + else if (category == CONTEST_CATEGORY_CUTE) + categoryTile = 0x404A; + else if (category == CONTEST_CATEGORY_SMART) + categoryTile = 0x406A; + else + categoryTile = 0x408A; + + sub_80DECB8(0, categoryTile, 0x0b, 0x1f, 0x05, 0x01, 0x11, 0x01); + sub_80DECB8(0, categoryTile + 0x10, 0x0b, 0x20, 0x05, 0x01, 0x11, 0x01); + + if (gContestEffects[gContestMoves[a].effect].appeal == 0xFF) + numHearts = 0; + else + numHearts = gContestEffects[gContestMoves[a].effect].appeal / 10; + if (numHearts > 8) + numHearts = 8; + sub_80DED10(0, 0x5035, 0x15, 0x1f, 0x08, 0x01, 0x11); + sub_80DED10(0, 0x5012, 0x15, 0x1f, numHearts, 0x01, 0x11); + + if (gContestEffects[gContestMoves[a].effect].jam == 0xFF) + numHearts = 0; + else + numHearts = gContestEffects[gContestMoves[a].effect].jam / 10; + if (numHearts > 8) + numHearts = 8; + sub_80DED10(0, 0x5036, 0x15, 0x20, 0x08, 0x01, 0x11); + sub_80DED10(0, 0x5014, 0x15, 0x20, numHearts, 0x01, 0x11); + + FillWindowPixelBuffer(10, 0); + sub_80DEB70(10, gContestEffectDescriptionPointers[gContestMoves[a].effect]); + sub_80DEB70(9, gText_Slash); +} diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index bf3e9aeee3..ee0a7f2888 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -27,21 +27,7 @@ #include "scanline_effect.h" #include "menu_helpers.h" #include "daycare.h" - -struct ContestMove -{ - u8 effect; - u8 type; - u8 comboID; - u8 combo[4]; -}; - -struct ContestEffect -{ - u8 type; - u8 appeal; - u8 jam; -}; +#include "contest_effect.h" extern struct UnkSummaryStruct* gUnknown_0203CF1C; extern struct BgTemplate gUnknown_0861CBB4; @@ -54,7 +40,6 @@ extern struct UnkStruct_61CC04 gUnknown_0861CC10; extern struct UnkStruct_61CC04 gUnknown_0861CBEC; extern struct UnkStruct_61CC04 gUnknown_0861CBF8; extern u16 gSummaryScreenWindow_Tilemap[]; -extern struct ContestMove gContestMoves[]; extern struct ContestEffect gContestEffects[]; extern struct WindowTemplate gUnknown_0861CC24; extern u8 gUnknown_0861CD2C[][3]; From 8d0da7d8e006beda6c72c437545bca9f20086b28 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 11 May 2018 09:41:32 -0400 Subject: [PATCH 036/174] Propagate ASM_DIRECT --> NAKED renaming --- include/global.h | 5 +++++ src/field_effect.c | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/include/global.h b/include/global.h index b73baf2ce4..5e742d732e 100644 --- a/include/global.h +++ b/include/global.h @@ -12,6 +12,11 @@ #define asm_comment(x) asm volatile("@ -- " x " -- ") #define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided") #define NAKED __attribute__((naked)) +// While this nomenclature change is being rolled out, the following +// redundant define will be used to prevent build errors when merging +// from master. +// TODO: Remove this before merging the pull request. +#define ASM_DIRECT NAKED // IDE support #if defined (__APPLE__) || defined (__CYGWIN__) diff --git a/src/field_effect.c b/src/field_effect.c index 6783473ebb..692090779b 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -566,7 +566,7 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y) return spriteId; } #else -ASM_DIRECT +NAKED u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y) { asm_unified("push {r4,r5,lr}\n\ @@ -669,7 +669,7 @@ void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) gPlttBufferFaded[i] = RGB(curRed, curGreen, curBlue); } #else -ASM_DIRECT +NAKED void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) { asm(".syntax unified\n" @@ -744,7 +744,7 @@ void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) ".syntax divided"); } -ASM_DIRECT +NAKED void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) { asm(".syntax unified\n" @@ -2684,7 +2684,7 @@ bool8 sub_80B8B38(struct Task *task) return FALSE; } #else -ASM_DIRECT +NAKED bool8 sub_80B8B38(struct Task *task) { asm_unified("\tpush {r4-r7,lr}\n" @@ -2997,7 +2997,7 @@ u8 sub_80B8F98(void) return spriteId; } #else -ASM_DIRECT +NAKED u8 sub_80B8F98(void) { asm_unified("push {r4-r7,lr}\n\ From 5539e282a39c34a278d1ea2fdc53ee46ffe154d5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 11 May 2018 10:51:38 -0400 Subject: [PATCH 037/174] through sub_80DB798 --- asm/contest.s | 559 ++++---------------------------------------------- src/contest.c | 234 ++++++++++++++++----- 2 files changed, 223 insertions(+), 570 deletions(-) diff --git a/asm/contest.s b/asm/contest.s index 69060422e1..78660871c9 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,481 +5,6 @@ .text - thumb_func_start sub_80DB4E0 -sub_80DB4E0: @ 80DB4E0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, =gUnknown_02039F26 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, 0x2 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - bl sub_80DBCA8 - lsls r0, 24 - cmp r0, 0 - bne _080DB560 - cmp r5, 0 - beq _080DB560 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80DB2EC - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x2 - mov r8, r0 - str r0, [sp] - movs r5, 0x1 - str r5, [sp, 0x4] - movs r6, 0x11 - str r6, [sp, 0x8] - str r5, [sp, 0xC] - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x14 - adds r3, r7, 0 - bl sub_80DECB8 - adds r4, 0x10 - lsls r4, 16 - lsrs r4, 16 - adds r3, r7, 0x1 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r5, [sp, 0xC] - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x14 - bl sub_80DECB8 - b _080DB576 - .pool -_080DB560: - movs r0, 0x2 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x14 - adds r3, r7, 0 - bl sub_80DED10 -_080DB576: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80DB4E0 - - thumb_func_start sub_80DB584 -sub_80DB584: @ 80DB584 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_080DB58A: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x4] - adds r0, r5, r0 - ldrh r0, [r0, 0x6] - lsls r1, r4, 24 - lsrs r1, 24 - bl sub_80DB4E0 - adds r5, 0x1C - adds r4, 0x1 - cmp r4, 0x3 - ble _080DB58A - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DB584 - - thumb_func_start sub_80DB5B0 -sub_80DB5B0: @ 80DB5B0 - ldr r0, =0x00002034 - bx lr - .pool - thumb_func_end sub_80DB5B0 - - thumb_func_start sub_80DB5B8 -sub_80DB5B8: @ 80DB5B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - mov r10, r8 - ldr r0, =gContestResources - mov r9, r0 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r7, r0, 2 - adds r3, r7, r1 - ldrb r0, [r3, 0x10] - movs r5, 0x30 - ands r5, r0 - cmp r5, 0 - bne _080DB5F4 - movs r0, 0 - b _080DB68A - .pool -_080DB5F4: - ldr r0, =gUnknown_02039F26 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, 0x2 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0xD - ldrsb r0, [r3, r0] - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - asrs r4, r0, 24 - cmp r5, 0x10 - bne _080DB648 - bl sub_80DB5B0 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1 - str r0, [sp] - lsls r0, r4, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r2, 0x13 - adds r3, r6, 0 - bl sub_80DED10 - mov r1, r8 - cmp r1, 0 - beq _080DB688 - movs r0, 0x5B - b _080DB672 - .pool -_080DB648: - adds r3, r6, r4 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x3 - subs r0, r4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x13 - bl sub_80DED10 - mov r0, r10 - cmp r0, 0 - beq _080DB688 - movs r0, 0x26 -_080DB672: - bl PlaySE - mov r1, r9 - ldr r0, [r1] - ldr r1, [r0, 0x4] - adds r1, r7, r1 - ldrb r2, [r1, 0x10] - movs r0, 0x31 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x10] -_080DB688: - movs r0, 0x1 -_080DB68A: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80DB5B8 - - thumb_func_start sub_80DB69C -sub_80DB69C: @ 80DB69C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r7, 0 - movs r0, 0x1 - mov r10, r0 - movs r1, 0x11 - mov r9, r1 - movs r0, 0 - mov r8, r0 -_080DB6B6: - ldr r0, =gUnknown_02039F26 - adds r0, r7, r0 - ldrb r0, [r0] - lsls r4, r0, 2 - adds r4, r0 - adds r4, 0x2 - lsls r4, 24 - lsrs r4, 24 - bl sub_80DB5B0 - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x4] - add r0, r8 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - mov r1, r10 - str r1, [sp] - asrs r6, r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - mov r0, r9 - str r0, [sp, 0x8] - movs r0, 0 - adds r1, r5, 0 - movs r2, 0x13 - adds r3, r4, 0 - bl sub_80DED10 - adds r4, r6 - lsls r4, 24 - lsrs r4, 24 - mov r1, r10 - str r1, [sp] - movs r0, 0x3 - subs r0, r6 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - mov r0, r9 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x13 - adds r3, r4, 0 - bl sub_80DED10 - movs r1, 0x1C - add r8, r1 - adds r7, 0x1 - cmp r7, 0x3 - ble _080DB6B6 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80DB69C - - thumb_func_start sub_80DB748 -sub_80DB748: @ 80DB748 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0 - cmp r1, 0x4 - bhi _080DB78A - lsls r0, r1, 2 - ldr r1, =_080DB764 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080DB764: - .4byte _080DB778 - .4byte _080DB77C - .4byte _080DB780 - .4byte _080DB784 - .4byte _080DB788 -_080DB778: - movs r0, 0x80 - b _080DB78A -_080DB77C: - movs r0, 0x84 - b _080DB78A -_080DB780: - movs r0, 0x86 - b _080DB78A -_080DB784: - movs r0, 0x88 - b _080DB78A -_080DB788: - movs r0, 0x82 -_080DB78A: - movs r1, 0x90 - lsls r1, 8 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80DB748 - - thumb_func_start sub_80DB798 -sub_80DB798: @ 80DB798 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - mov r9, r1 - movs r1, 0 - mov r8, r1 - ldr r1, =gUnknown_02039F26 - adds r1, r0, r1 - ldrb r2, [r1] - lsls r1, r2, 2 - adds r1, r2 - adds r1, 0x2 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r1, =gContestResources - ldr r1, [r1] - ldr r2, [r1, 0x4] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r2, r1, r2 - ldr r0, [r2, 0x10] - ldr r1, =0x00ff0003 - ands r0, r1 - cmp r0, 0 - bne _080DB7DC - ldrb r0, [r2, 0xF] - cmp r0, 0 - beq _080DB7EC -_080DB7DC: - movs r0, 0 - b _080DB80E - .pool -_080DB7EC: - ldrb r1, [r2, 0xC] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - beq _080DB7FA - movs r0, 0x1 - b _080DB80E -_080DB7FA: - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080DB80C - ldrb r1, [r2, 0xB] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080DB81A -_080DB80C: - movs r0, 0x2 -_080DB80E: - bl sub_80DB748 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - b _080DB81E -_080DB81A: - movs r0, 0 - mov r9, r0 -_080DB81E: - mov r1, r9 - cmp r1, 0 - beq _080DB85E - movs r6, 0x2 - str r6, [sp] - movs r4, 0x1 - str r4, [sp, 0x4] - movs r5, 0x11 - str r5, [sp, 0x8] - str r4, [sp, 0xC] - movs r0, 0 - mov r1, r8 - movs r2, 0x14 - adds r3, r7, 0 - bl sub_80DECB8 - mov r1, r8 - adds r1, 0x10 - lsls r1, 16 - lsrs r1, 16 - adds r3, r7, 0x1 - lsls r3, 24 - lsrs r3, 24 - str r6, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - str r4, [sp, 0xC] - movs r0, 0 - movs r2, 0x14 - bl sub_80DECB8 - b _080DB874 -_080DB85E: - movs r0, 0x2 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x14 - adds r3, r7, 0 - bl sub_80DED10 -_080DB874: - mov r0, r9 - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80DB798 - thumb_func_start sub_80DB884 sub_80DB884: @ 80DB884 push {r4,lr} @@ -506,7 +31,7 @@ sub_80DB89C: @ 80DB89C movs r1, 0x2 bl CopyWindowToVram movs r0, 0 - bl sub_80DED60 + bl Contest_SetBgCopyFlags pop {r0} bx r0 thumb_func_end sub_80DB89C @@ -1417,7 +942,7 @@ sub_80DBF68: @ 80DBF68 bl sub_80DB89C ldr r0, =gUnknown_0827E8DA movs r1, 0 - bl sub_80DEC30 + bl Contest_StartTextPrinter pop {r0} bx r0 .pool @@ -1441,7 +966,7 @@ _080DBF9A: movs r0, 0 movs r1, 0 movs r2, 0x16 - bl sub_80DED10 + bl ContestBG_FillBoxWithTile movs r0, 0xA0 lsls r0, 19 adds r5, r0 @@ -1778,7 +1303,7 @@ _080DC226: str r0, [sp, 0x8] movs r0, 0 adds r1, r6, 0 - bl sub_80DED10 + bl ContestBG_FillBoxWithTile mov r3, r8 cmp r3, 0 ble _080DC284 @@ -3207,7 +2732,7 @@ _080DCDBC: add r1, sp, 0x4 movs r2, 0x37 movs r3, 0x1 - bl sub_80DEBD0 + bl Contest_PrintTextToBg0WindowAt adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -3250,7 +2775,7 @@ _080DCE14: add r1, sp, 0x4 movs r2, 0x5 movs r3, 0x1 - bl sub_80DEBD0 + bl Contest_PrintTextToBg0WindowAt adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -4146,7 +3671,7 @@ _080DD52C: bl sub_80DB89C adds r0, r4, 0 movs r1, 0x1 - bl sub_80DEC30 + bl Contest_StartTextPrinter pop {r4-r6} pop {r0} bx r0 @@ -5640,7 +5165,7 @@ _080DE146: adds r1, r4, 0 movs r2, 0x14 adds r3, r6, 0 - bl sub_80DECB8 + bl ContestBG_FillBoxWithIncrementingTile adds r4, 0x10 lsls r4, 16 lsrs r4, 16 @@ -5659,7 +5184,7 @@ _080DE146: adds r1, r4, 0 movs r2, 0x14 adds r3, r5, 0 - bl sub_80DECB8 + bl ContestBG_FillBoxWithIncrementingTile movs r0, 0x63 bl PlaySE _080DE1CA: @@ -5800,7 +5325,7 @@ sub_80DE224: @ 80DE224 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x1 - bl sub_80DED60 + bl Contest_SetBgCopyFlags movs r5, 0 ldr r7, =gSprites movs r6, 0x4 @@ -5863,7 +5388,7 @@ sub_80DE350: @ 80DE350 mov r0, sp bl CpuSet movs r0, 0x1 - bl sub_80DED60 + bl Contest_SetBgCopyFlags movs r0, 0xA bl GetGpuReg add r3, sp, 0x4 @@ -6812,8 +6337,8 @@ _080DEB64: .pool thumb_func_end sub_80DEAA8 - thumb_func_start sub_80DEB70 -sub_80DEB70: @ 80DEB70 + thumb_func_start Contest_PrintTextToBg0WindowStd +Contest_PrintTextToBg0WindowStd: @ 80DEB70 push {r4,lr} sub sp, 0x10 adds r4, r0, 0 @@ -6853,15 +6378,15 @@ sub_80DEB70: @ 80DEB70 adds r0, r4, 0 bl PutWindowTilemap movs r0, 0 - bl sub_80DED60 + bl Contest_SetBgCopyFlags add sp, 0x10 pop {r4} pop {r0} bx r0 - thumb_func_end sub_80DEB70 + thumb_func_end Contest_PrintTextToBg0WindowStd - thumb_func_start sub_80DEBD0 -sub_80DEBD0: @ 80DEBD0 + thumb_func_start Contest_PrintTextToBg0WindowAt +Contest_PrintTextToBg0WindowAt: @ 80DEBD0 push {r4,r5,lr} sub sp, 0x10 adds r5, r0, 0 @@ -6901,15 +6426,15 @@ sub_80DEBD0: @ 80DEBD0 adds r0, r5, 0 bl PutWindowTilemap movs r0, 0 - bl sub_80DED60 + bl Contest_SetBgCopyFlags add sp, 0x10 pop {r4,r5} pop {r0} bx r0 - thumb_func_end sub_80DEBD0 + thumb_func_end Contest_PrintTextToBg0WindowAt - thumb_func_start sub_80DEC30 -sub_80DEC30: @ 80DEC30 + thumb_func_start Contest_StartTextPrinter +Contest_StartTextPrinter: @ 80DEC30 push {r4,r5,lr} sub sp, 0x10 str r0, [sp] @@ -6971,15 +6496,15 @@ _080DECA4: movs r0, 0x4 bl PutWindowTilemap movs r0, 0 - bl sub_80DED60 + bl Contest_SetBgCopyFlags add sp, 0x10 pop {r4,r5} pop {r0} bx r0 - thumb_func_end sub_80DEC30 + thumb_func_end Contest_StartTextPrinter - thumb_func_start sub_80DECB8 -sub_80DECB8: @ 80DECB8 + thumb_func_start ContestBG_FillBoxWithIncrementingTile +ContestBG_FillBoxWithIncrementingTile: @ 80DECB8 push {r4-r7,lr} mov r7, r8 push {r7} @@ -7014,17 +6539,17 @@ sub_80DECB8: @ 80DECB8 mov r0, r8 bl WriteSequenceToBgTilemapBuffer mov r0, r8 - bl sub_80DED60 + bl Contest_SetBgCopyFlags add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_80DECB8 + thumb_func_end ContestBG_FillBoxWithIncrementingTile - thumb_func_start sub_80DED10 -sub_80DED10: @ 80DED10 + thumb_func_start ContestBG_FillBoxWithTile +ContestBG_FillBoxWithTile: @ 80DED10 push {r4-r6,lr} sub sp, 0x10 ldr r4, [sp, 0x20] @@ -7049,15 +6574,15 @@ sub_80DED10: @ 80DED10 str r6, [sp, 0x8] movs r4, 0 str r4, [sp, 0xC] - bl sub_80DECB8 + bl ContestBG_FillBoxWithIncrementingTile add sp, 0x10 pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_80DED10 + thumb_func_end ContestBG_FillBoxWithTile - thumb_func_start sub_80DED4C -sub_80DED4C: @ 80DED4C + thumb_func_start Contest_RunTextPrinters +Contest_RunTextPrinters: @ 80DED4C push {lr} bl RunTextPrinters movs r0, 0x4 @@ -7066,10 +6591,10 @@ sub_80DED4C: @ 80DED4C lsrs r0, 16 pop {r1} bx r1 - thumb_func_end sub_80DED4C + thumb_func_end Contest_RunTextPrinters - thumb_func_start sub_80DED60 -sub_80DED60: @ 80DED60 + thumb_func_start Contest_SetBgCopyFlags +Contest_SetBgCopyFlags: @ 80DED60 ldr r2, =sContestBgCopyFlags movs r1, 0x1 lsls r1, r0 @@ -7078,7 +6603,7 @@ sub_80DED60: @ 80DED60 strb r1, [r2] bx lr .pool - thumb_func_end sub_80DED60 + thumb_func_end Contest_SetBgCopyFlags thumb_func_start ResetContestLinkResults ResetContestLinkResults: @ 80DED74 @@ -8411,7 +7936,7 @@ _080DF7AE: add r1, sp, 0x4 movs r2, 0x5 movs r3, 0x1 - bl sub_80DEBD0 + bl Contest_PrintTextToBg0WindowAt ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x1C] @@ -8469,7 +7994,7 @@ _080DF80A: mov r1, r9 movs r2, 0x5 movs r3, 0x1 - bl sub_80DEBD0 + bl Contest_PrintTextToBg0WindowAt ldrb r0, [r4] mov r1, sp adds r1, r5 @@ -8478,7 +8003,7 @@ _080DF80A: str r2, [sp] movs r2, 0x37 movs r3, 0x1 - bl sub_80DEBD0 + bl Contest_PrintTextToBg0WindowAt mov r1, r8 lsls r0, r1, 24 lsrs r7, r0, 24 @@ -8557,7 +8082,7 @@ _080DF8CC: mov r1, r9 movs r2, 0x5 movs r3, 0x1 - bl sub_80DEBD0 + bl Contest_PrintTextToBg0WindowAt ldrb r0, [r4] mov r1, sp adds r1, r5 @@ -8566,7 +8091,7 @@ _080DF8CC: str r2, [sp] movs r2, 0x37 movs r3, 0x1 - bl sub_80DEBD0 + bl Contest_PrintTextToBg0WindowAt mov r1, r8 lsls r0, r1, 24 lsrs r7, r0, 24 diff --git a/src/contest.c b/src/contest.c index b4e71d82b7..4303c56cab 100644 --- a/src/contest.c +++ b/src/contest.c @@ -131,11 +131,11 @@ void sub_80DE350(void); void sub_80DE424(u8); void sub_80DE69C(u8); void sub_80DEA20(void); -void sub_80DEBD0(u32, u8 *, s32, u8, u8); -void sub_80DEC30(const u8 *, u8); -void sub_80DECB8(u8, u16, u8, u8, u8, u8, u8, u8); -bool32 sub_80DED4C(void); -void sub_80DED60(u32); +void Contest_PrintTextToBg0WindowAt(u32, u8 *, s32, u8, u8); +void Contest_StartTextPrinter(const u8 *, u8); +void ContestBG_FillBoxWithIncrementingTile(u8, u16, u8, u8, u8, u8, u8, u8); +bool32 Contest_RunTextPrinters(void); +void Contest_SetBgCopyFlags(u32); void sub_80FC9F8(u8); bool8 AreMovesContestCombo(u16, u16); void sub_80DBD18(void); @@ -171,8 +171,8 @@ void sub_80DC3AC(void); bool8 sub_80DC3C4(void); void sub_80DF9D4(u8 *); void sub_80DF9E0(u8 *, s32); -void sub_80DED10(u8, u16, u8, u8, u8, u8, u8); -void sub_80DEB70(u8, const u8 *); +void ContestBG_FillBoxWithTile(u8, u16, u8, u8, u8, u8, u8); +void Contest_PrintTextToBg0WindowStd(u8, const u8 *); EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; EWRAM_DATA s16 gContestMonConditions[4] = {0}; @@ -730,12 +730,12 @@ void sub_80D833C(u8 taskId) StringCopy(gDisplayedStringBattle, gText_0827D531); sub_80DB89C(); StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle); - sub_80DEC30(gStringVar4, 1); + Contest_StartTextPrinter(gStringVar4, 1); gTasks[taskId].data[0]++; } else { - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) { gTasks[taskId].data[0] = 0; gTasks[taskId].func = sub_80D8424; @@ -790,7 +790,7 @@ void sub_80D8490(u8 taskId) r5 = StringCopy(r5, gMoveNames[move]); FillWindowPixelBuffer(i + 5, 0); - sub_80DEBD0(i + 5, sp8, 5, 1, 7); + Contest_PrintTextToBg0WindowAt(i + 5, sp8, 5, 1, 7); } sub_80D880C(gContestResources->field_0->playerMoveChoice); @@ -828,7 +828,7 @@ void sub_80D8610(u8 taskId) StringCopy(gDisplayedStringBattle, gText_0827D531); sub_80DB89C(); StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle); - sub_80DEC30(gStringVar4, 0); + Contest_StartTextPrinter(gStringVar4, 0); gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; gTasks[taskId].func = sub_80D8424; @@ -864,13 +864,13 @@ void sub_80D8610(u8 taskId) void sub_80D880C(s8 a0) { - sub_80DECB8(2, 55, 0, 31 + a0 * 2, 2, 2, 17, 1); + ContestBG_FillBoxWithIncrementingTile(2, 55, 0, 31 + a0 * 2, 2, 2, 17, 1); } void sub_80D883C(s8 a0) { - sub_80DECB8(2, 11, 0, 31 + a0 * 2, 2, 1, 17, 1); - sub_80DECB8(2, 11, 0, 32 + a0 * 2, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 31 + a0 * 2, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 32 + a0 * 2, 2, 1, 17, 1); } void sub_80D8894(u8 taskId) @@ -915,7 +915,7 @@ void sub_80D895C(u8 taskId) PutWindowTilemap(5 + i); CopyWindowToVram(5 + i, 2); } - sub_80DED60(0); + Contest_SetBgCopyFlags(0); DmaCopy32Defvars(3, gPlttBufferFaded, shared18000.unk18604, 0x400); LoadPalette(shared18000.unk18204, 0, 0x400); @@ -1055,12 +1055,12 @@ void sub_80D8B38(u8 taskId) else StringCopy(gStringVar2, gUnknown_08587F1C[gContestResources->field_4[r6].moveCategory]); StringExpandPlaceholders(gStringVar4, gText_0827D55A); - sub_80DEC30(gStringVar4, 1); + Contest_StartTextPrinter(gStringVar4, 1); gTasks[taskId].data[0] = 6; } return; case 6: - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) { gContestResources->field_0->unk1925E = 0; gTasks[taskId].data[0] = 7; @@ -1138,7 +1138,7 @@ void sub_80D8B38(u8 taskId) } return; case 24: - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) gTasks[taskId].data[0] = 23; return; case 48: @@ -1250,7 +1250,7 @@ void sub_80D8B38(u8 taskId) } return; case 27: - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) gTasks[taskId].data[0] = 28; return; case 28: @@ -1313,13 +1313,13 @@ void sub_80D8B38(u8 taskId) sub_80DB89C(); StringCopy(gStringVar1, gContestMons[r6].nickname); StringExpandPlaceholders(gStringVar4, gText_0827E793); - sub_80DEC30(gStringVar4, 1); + Contest_StartTextPrinter(gStringVar4, 1); } gTasks[taskId].data[0] = 52; } return; case 52: - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) { if (!gContestResources->field_4[r6].unk15_6) gTasks[taskId].data[0] = 17; @@ -1333,11 +1333,11 @@ void sub_80D8B38(u8 taskId) { sub_80DB89C(); if (r3 == 1) - sub_80DEC30(gText_0827E32E, 1); + Contest_StartTextPrinter(gText_0827E32E, 1); else if (r3 == 2) - sub_80DEC30(gText_0827E35B, 1); + Contest_StartTextPrinter(gText_0827E35B, 1); else - sub_80DEC30(gText_0827E38D, 1); + Contest_StartTextPrinter(gText_0827E38D, 1); sub_80DD720(3); gTasks[taskId].data[10] = 0; gTasks[taskId].data[0] = 45; @@ -1347,7 +1347,7 @@ void sub_80D8B38(u8 taskId) sub_80DB89C(); StringCopy(gStringVar1, gContestMons[r6].nickname); StringExpandPlaceholders(gStringVar4, gText_0827E2FE); - sub_80DEC30(gStringVar4, 1); + Contest_StartTextPrinter(gStringVar4, 1); sub_80DD720(2); gTasks[taskId].data[10] = 0; gTasks[taskId].data[0] = 45; @@ -1361,7 +1361,7 @@ void sub_80D8B38(u8 taskId) } return; case 15: - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) { if (++gTasks[taskId].data[10] > 50) { @@ -1390,7 +1390,7 @@ void sub_80D8B38(u8 taskId) sub_80DB89C(); StringCopy(gStringVar1, gContestMons[r6].nickname); StringExpandPlaceholders(gStringVar4, gText_0827E6E3); - sub_80DEC30(gStringVar4, 1); + Contest_StartTextPrinter(gStringVar4, 1); gTasks[taskId].data[10] = 0; sub_80DD720(0); gTasks[taskId].data[0] = 46; @@ -1405,7 +1405,7 @@ void sub_80D8B38(u8 taskId) gTasks[taskId].data[0] = 19; return; case 19: - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) { sub_80DC028(gContestResources->field_4[r6].appeal2, -gContestResources->field_4[r6].unk18, r6); gContestResources->field_4[r6].appeal2 -= gContestResources->field_4[r6].unk18; @@ -1460,7 +1460,7 @@ void sub_80D8B38(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_0827E717); else StringExpandPlaceholders(gStringVar4, gText_0827E76A); - sub_80DEC30(gStringVar4, 1); + Contest_StartTextPrinter(gStringVar4, 1); gTasks[taskId].data[10] = 0; gTasks[taskId].data[11] = 0; if (r3 < 0) @@ -1479,7 +1479,7 @@ void sub_80D8B38(u8 taskId) gTasks[taskId].data[10]++; break; case 1: - if (!gContestResources->field_0->unk1920B_0 && !sub_80DED4C()) + if (!gContestResources->field_0->unk1920B_0 && !Contest_RunTextPrinters()) { sub_80DDCDC(-1); gTasks[taskId].data[10]++; @@ -1510,7 +1510,7 @@ void sub_80D8B38(u8 taskId) switch (gTasks[taskId].data[10]) { case 0: - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) { sub_80DDED0(1, 1); gTasks[taskId].data[10]++; @@ -1570,20 +1570,20 @@ void sub_80D8B38(u8 taskId) StringCopy(gStringVar1, gContestMons[r6].nickname); StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]); StringExpandPlaceholders(gStringVar4, gText_0827E7EA); - sub_80DEC30(gStringVar4, 1); + Contest_StartTextPrinter(gStringVar4, 1); gTasks[taskId].data[0] = 58; return; case 58: - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) { sub_80DB89C(); StringExpandPlaceholders(gStringVar4, gText_0827E817); - sub_80DEC30(gStringVar4, 1); + Contest_StartTextPrinter(gStringVar4, 1); gTasks[taskId].data[0] = 59; } return; case 59: - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) { sub_80DB89C(); gTasks[taskId].data[0] = 55; @@ -1596,11 +1596,11 @@ void sub_80D8B38(u8 taskId) StringCopy(gStringVar1, gContestMons[r6].nickname); StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]); StringExpandPlaceholders(gStringVar4, gText_0827E58A); - sub_80DEC30(gStringVar4, 1); + Contest_StartTextPrinter(gStringVar4, 1); gTasks[taskId].data[0] = 34; return; case 34: - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) gTasks[taskId].data[0] = 55; return; case 55: @@ -1640,11 +1640,11 @@ void sub_80D8B38(u8 taskId) sub_80DB89C(); StringCopy(gStringVar1, gContestMons[r6].nickname); StringExpandPlaceholders(gStringVar4, gText_0827D56F); - sub_80DEC30(gStringVar4, 1); + Contest_StartTextPrinter(gStringVar4, 1); gTasks[taskId].data[0] = 32; return; case 32: - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) gTasks[taskId].data[0] = 21; return; case 21: @@ -1812,12 +1812,12 @@ void sub_80DA3CC(u8 taskId) sub_80DB89C(); StringCopy(gStringVar1, gContestMons[gContestPlayerMonIndex].nickname); StringExpandPlaceholders(gStringVar4, gUnknown_08587D90[r4]); - sub_80DEC30(gStringVar4, 1); + Contest_StartTextPrinter(gStringVar4, 1); gTasks[taskId].data[0]++; } else { - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) { gTasks[taskId].data[0] = 0; gTasks[taskId].func = sub_80DA464; @@ -1903,14 +1903,14 @@ void sub_80DA5E8(u8 taskId) } gContestRngValue = gRngValue; StringExpandPlaceholders(gStringVar4, gText_0827D597); - sub_80DEC30(gStringVar4, 1); + Contest_StartTextPrinter(gStringVar4, 1); gTasks[taskId].data[2] = 0; gTasks[taskId].func = sub_80DA6B4; } void sub_80DA6B4(u8 taskId) { - if (!sub_80DED4C()) + if (!Contest_RunTextPrinters()) { sub_80DE224(); gBattle_BG1_X = 0; @@ -2441,7 +2441,7 @@ void sub_80DAF1C(u8 a0, u8 a1) offset = GetStringRightAlignXOffset(7, gDisplayedStringBattle, 0x60); if (offset > 55) offset = 55; - sub_80DEBD0(gUnknown_02039F26[a0], gDisplayedStringBattle, offset, 1, 7); + Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[a0], gDisplayedStringBattle, offset, 1, 7); } void sub_80DAF88(u8 a0) @@ -2452,7 +2452,7 @@ void sub_80DAF88(u8 a0) void sub_80DAFA0(u8 a0, u8 a1) { sub_80DAED4(gContestMons[a0].nickname, a1); - sub_80DEBD0(gUnknown_02039F26[a0], gDisplayedStringBattle, 5, 1, 7); + Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[a0], gDisplayedStringBattle, 5, 1, 7); } u16 sub_80DAFE0(u8 who, u8 contestCategory) @@ -2609,8 +2609,8 @@ void prints_contest_move_description(u16 a) else categoryTile = 0x408A; - sub_80DECB8(0, categoryTile, 0x0b, 0x1f, 0x05, 0x01, 0x11, 0x01); - sub_80DECB8(0, categoryTile + 0x10, 0x0b, 0x20, 0x05, 0x01, 0x11, 0x01); + ContestBG_FillBoxWithIncrementingTile(0, categoryTile, 0x0b, 0x1f, 0x05, 0x01, 0x11, 0x01); + ContestBG_FillBoxWithIncrementingTile(0, categoryTile + 0x10, 0x0b, 0x20, 0x05, 0x01, 0x11, 0x01); if (gContestEffects[gContestMoves[a].effect].appeal == 0xFF) numHearts = 0; @@ -2618,8 +2618,8 @@ void prints_contest_move_description(u16 a) numHearts = gContestEffects[gContestMoves[a].effect].appeal / 10; if (numHearts > 8) numHearts = 8; - sub_80DED10(0, 0x5035, 0x15, 0x1f, 0x08, 0x01, 0x11); - sub_80DED10(0, 0x5012, 0x15, 0x1f, numHearts, 0x01, 0x11); + ContestBG_FillBoxWithTile(0, 0x5035, 0x15, 0x1f, 0x08, 0x01, 0x11); + ContestBG_FillBoxWithTile(0, 0x5012, 0x15, 0x1f, numHearts, 0x01, 0x11); if (gContestEffects[gContestMoves[a].effect].jam == 0xFF) numHearts = 0; @@ -2627,10 +2627,138 @@ void prints_contest_move_description(u16 a) numHearts = gContestEffects[gContestMoves[a].effect].jam / 10; if (numHearts > 8) numHearts = 8; - sub_80DED10(0, 0x5036, 0x15, 0x20, 0x08, 0x01, 0x11); - sub_80DED10(0, 0x5014, 0x15, 0x20, numHearts, 0x01, 0x11); + ContestBG_FillBoxWithTile(0, 0x5036, 0x15, 0x20, 0x08, 0x01, 0x11); + ContestBG_FillBoxWithTile(0, 0x5014, 0x15, 0x20, numHearts, 0x01, 0x11); FillWindowPixelBuffer(10, 0); - sub_80DEB70(10, gContestEffectDescriptionPointers[gContestMoves[a].effect]); - sub_80DEB70(9, gText_Slash); + Contest_PrintTextToBg0WindowStd(10, gContestEffectDescriptionPointers[gContestMoves[a].effect]); + Contest_PrintTextToBg0WindowStd(9, gText_Slash); +} + +void sub_80DB4E0(u16 move, u8 b) +{ + u8 r7 = gUnknown_02039F26[b] * 5 + 2; + + if (!sub_80DBCA8(b) && move != MOVE_NONE) + { + u16 tile = sub_80DB2EC(move, b); + + ContestBG_FillBoxWithIncrementingTile(0, tile, 20, r7, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(0, tile + 16, 20, r7 + 1, 2, 1, 17, 1); + } + else + { + ContestBG_FillBoxWithTile(0, 0, 20, r7, 2, 2, 17); + } +} + +void sub_80DB584(void) +{ + s32 i; + + for (i = 0; i < 4; i++) + sub_80DB4E0(gContestResources->field_4[i].currMove, i); +} + +u16 sub_80DB5B0(void) +{ + return 0x2034; +} + +bool8 sub_80DB5B8(u8 contestantIdx, bool8 resetMod) +{ + u8 r6; + s32 r4; + + if (sContestantStatus[contestantIdx].conditionMod == 0) + return FALSE; + r6 = gUnknown_02039F26[contestantIdx] * 5 + 2; + r4 = sContestantStatus[contestantIdx].condition / 10; + if (sContestantStatus[contestantIdx].conditionMod == 1) + { + ContestBG_FillBoxWithTile(0, sub_80DB5B0(), 19, r6, 1, r4, 17); + if (resetMod) + { + PlaySE(SE_EXPMAX); + sContestantStatus[contestantIdx].conditionMod = 0; + } + } + else + { + ContestBG_FillBoxWithTile(0, 0, 19, r6 + r4, 1, 3 - r4, 17); + if (resetMod) + { + PlaySE(SE_FU_ZAKU2); + sContestantStatus[contestantIdx].conditionMod = 0; + } + } + return TRUE; +} + +void sub_80DB69C(void) +{ + s32 i; + s32 r6; + + for (i = 0; i < 4; i++) + { + u8 r4 = gUnknown_02039F26[i] * 5 + 2; + u16 r5 = sub_80DB5B0(); + + r6 = sContestantStatus[i].condition / 10; + ContestBG_FillBoxWithTile(0, r5, 19, r4, 1, r6, 17); + ContestBG_FillBoxWithTile(0, 0, 19, r4 + r6, 1, 3 - r6, 17); + } +} + +u16 sub_80DB748(u8 status) +{ + u16 var = 0; + + switch (status) + { + case 0: + var = 0x80; + break; + case 1: + var = 0x84; + break; + case 2: + var = 0x86; + break; + case 3: + var = 0x88; + break; + case 4: + var = 0x82; + break; + } + var += 0x9000; + return var; +} + +bool8 sub_80DB798(u8 a) +{ + bool8 r9 = TRUE; + u16 r8 = 0; + u8 r7 = gUnknown_02039F26[a] * 5 + 2; + + if (sContestantStatus[a].resistant != 0 || sContestantStatus[a].immune != 0 || sContestantStatus[a].jamSafetyCount != 0 || sContestantStatus[a].jamReduction != 0) + r8 = sub_80DB748(0); + else if (sContestantStatus[a].nervous) + r8 = sub_80DB748(1); + else if (sContestantStatus[a].numTurnsSkipped != 0 || sContestantStatus[a].noMoreTurns) + r8 = sub_80DB748(2); + else + r9 = FALSE; + if (r9) + { + ContestBG_FillBoxWithIncrementingTile(0, r8, 20, r7, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(0, r8 + 16, 20, r7 + 1, 2, 1, 17, 1); + } + else + { + ContestBG_FillBoxWithTile(0, 0, 20, r7, 2, 2, 17); + } + return r9; } From 13ed20c6e3cc2a5029d33df39cffbcc219fbacf1 Mon Sep 17 00:00:00 2001 From: garakmon Date: Sat, 16 Jun 2018 18:49:27 -0400 Subject: [PATCH 038/174] compiler fixes The compiler flag -s is not necessary and causes build failure on some systems (macOS, clang compilers) due to it being deprecated. Additionally, on those same systems, tools/aif2pcm/main.c failed to compile due to an overly cautious compiler not liking some struct declarations. These changes afaik do not affect other builds. --- tools/aif2pcm/Makefile | 2 +- tools/aif2pcm/main.c | 4 ++-- tools/bin2c/Makefile | 2 +- tools/gbagfx/Makefile | 2 +- tools/mid2agb/Makefile | 2 +- tools/preproc/Makefile | 2 +- tools/ramscrgen/Makefile | 2 +- tools/rsfont/Makefile | 2 +- tools/scaninc/Makefile | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tools/aif2pcm/Makefile b/tools/aif2pcm/Makefile index 967930c598..e5cb6ad319 100644 --- a/tools/aif2pcm/Makefile +++ b/tools/aif2pcm/Makefile @@ -1,6 +1,6 @@ CC = gcc -CFLAGS = -Wall -Wextra -Wno-switch -Werror -std=c11 -O2 -s +CFLAGS = -Wall -Wextra -Wno-switch -Werror -std=c11 -O2 LIBS = -lm diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c index fbb024a1d4..b6287a1dd0 100644 --- a/tools/aif2pcm/main.c +++ b/tools/aif2pcm/main.c @@ -469,12 +469,12 @@ do { \ void aif2pcm(const char *aif_filename, const char *pcm_filename, bool compress) { struct Bytes *aif = read_bytearray(aif_filename); - AifData aif_data = {0}; + AifData aif_data; read_aif(aif, &aif_data); int header_size = 0x10; struct Bytes *pcm; - struct Bytes output = {0}; + struct Bytes output; if (compress) { diff --git a/tools/bin2c/Makefile b/tools/bin2c/Makefile index 4cc23a25a3..73f78980ec 100644 --- a/tools/bin2c/Makefile +++ b/tools/bin2c/Makefile @@ -1,6 +1,6 @@ CC = gcc -CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s +CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 .PHONY: clean diff --git a/tools/gbagfx/Makefile b/tools/gbagfx/Makefile index d791dabb55..6f11b1b3f5 100644 --- a/tools/gbagfx/Makefile +++ b/tools/gbagfx/Makefile @@ -1,6 +1,6 @@ CC = gcc -CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s -DPNG_SKIP_SETJMP_CHECK +CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK LIBS = -lpng -lz diff --git a/tools/mid2agb/Makefile b/tools/mid2agb/Makefile index f27f2cad40..7fd5d5fc83 100644 --- a/tools/mid2agb/Makefile +++ b/tools/mid2agb/Makefile @@ -1,6 +1,6 @@ CXX := g++ -CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror +CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror SRCS := agb.cpp error.cpp main.cpp midi.cpp tables.cpp diff --git a/tools/preproc/Makefile b/tools/preproc/Makefile index ec4a5f365e..3d32758193 100644 --- a/tools/preproc/Makefile +++ b/tools/preproc/Makefile @@ -1,6 +1,6 @@ CXX := g++ -CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror +CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror SRCS := asm_file.cpp c_file.cpp charmap.cpp preproc.cpp string_parser.cpp \ utf8.cpp diff --git a/tools/ramscrgen/Makefile b/tools/ramscrgen/Makefile index cc6d458ba1..9aa309aa16 100644 --- a/tools/ramscrgen/Makefile +++ b/tools/ramscrgen/Makefile @@ -1,6 +1,6 @@ CXX := g++ -CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror +CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror SRCS := main.cpp sym_file.cpp elf.cpp diff --git a/tools/rsfont/Makefile b/tools/rsfont/Makefile index a78beca505..582be7b888 100644 --- a/tools/rsfont/Makefile +++ b/tools/rsfont/Makefile @@ -1,6 +1,6 @@ CC = gcc -CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s -DPNG_SKIP_SETJMP_CHECK +CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK LIBS = -lpng -lz diff --git a/tools/scaninc/Makefile b/tools/scaninc/Makefile index 3e1c031a88..367a3350b8 100644 --- a/tools/scaninc/Makefile +++ b/tools/scaninc/Makefile @@ -1,6 +1,6 @@ CXX = g++ -CXXFLAGS = -Wall -Werror -std=c++11 -O2 -s +CXXFLAGS = -Wall -Werror -std=c++11 -O2 SRCS = scaninc.cpp c_file.cpp asm_file.cpp From 0b574eb01cafb2af8827a4fcb4202146cfa0e84d Mon Sep 17 00:00:00 2001 From: garakmon Date: Sat, 16 Jun 2018 18:49:53 -0400 Subject: [PATCH 039/174] adding macOS install instructions While the procedure here is similar to the Linux one, there are some Mac-specific quirks that I thought warranted some more detail. --- INSTALL.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 59 insertions(+), 4 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index cd8f4b185b..3eb980eb63 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -8,16 +8,22 @@ Make sure that there is an environment variable called DEVKITARM with the path o Then get the compiler from https://github.com/pret/agbcc and run the following commands. - ./build.sh - ./install.sh PATH_OF_POKEEMERALD_DIRECTORY +``` +./build.sh +./install.sh PATH_OF_POKEEMERALD_DIRECTORY +``` Then in the pokeemerald directory, build the tools. - ./build_tools.sh +``` +./build_tools.sh +``` Finally, build the rom. - make +``` +make +``` # Windows @@ -26,3 +32,52 @@ Install [**devkitARM**](http://devkitpro.org/wiki/Getting_Started/devkitARM). Then get the compiled tools from https://github.com/pret/pokeruby-tools. Copy the `tools/` folder over the `tools/` folder in your pokeemerald directory. You can then build pokeemerald using `make` in the MSYS environment provided with devkitARM. + +# Mac + +Installing pokeemerald on a Mac requires macOS >= 10.12 (Sierra or higher). + +To get pokeemerald up and running, run the following commands in Terminal: + +Make sure you have the right compilers. + +``` +xcode-select --install +``` + +Download a [devkitPRO pacman](https://github.com/devkitPro/pacman/releases/tag/v1.0.0) package (`.pkg`) and install using the native Installer. + +This will install the devkitPRO package in `/opt/devkitpro`. + +You must install devkitARM using + +``` +sudo dkp-pacman -S devkitARM +``` + +Then set environment variables + +``` +export DEVKITPRO=/opt/devkitpro +echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc +export DEVKITARM=$DEVKITPRO/devkitARM +echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc +``` + +Now download and install the game's compiler from . You should download and unpack the `.zip` and move the folder to the same folder holding pokeemerald. + +``` +cd /PATH/TO/agbcc/ +./build.sh +./install.sh /PATH/TO/pokeemerald +``` + +Build the necessary tools +``` +cd /PATH/TO/pokeemerald +./build_tools.sh +``` +And finally the ROM should be ready to build +``` +make +``` From 9766108fbc343dec01d3690c1ed8e38daa84d131 Mon Sep 17 00:00:00 2001 From: garakmon Date: Sat, 16 Jun 2018 19:03:20 -0400 Subject: [PATCH 040/174] adding agbcc include path For some reason the headers for agbcc are being installed in tools/agbcc instead of tools/agbcc/include. This is a simple (potentially temporary) workaround. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 2afb830cf3..1f4514f7b1 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ ASFLAGS := -mcpu=arm7tdmi CC1 := tools/agbcc/bin/agbcc override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm -CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef +CPPFLAGS := -I tools/agbcc/include -I tools/agbcc -iquote include -nostdinc -undef LDFLAGS = -Map ../../$(MAP) From 9acd55ae4f9e455a92765aaee5929240097f9f8f Mon Sep 17 00:00:00 2001 From: garakmon Date: Sat, 16 Jun 2018 19:20:10 -0400 Subject: [PATCH 041/174] re-initializing structs in tools/aif2pcm/main.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit initializing all fields because clang doesn’t understand {0} --- tools/aif2pcm/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c index b6287a1dd0..51dbf1bb9a 100644 --- a/tools/aif2pcm/main.c +++ b/tools/aif2pcm/main.c @@ -469,12 +469,12 @@ do { \ void aif2pcm(const char *aif_filename, const char *pcm_filename, bool compress) { struct Bytes *aif = read_bytearray(aif_filename); - AifData aif_data; + AifData aif_data = {0,0,0,0,0,0,0}; read_aif(aif, &aif_data); int header_size = 0x10; struct Bytes *pcm; - struct Bytes output; + struct Bytes output = {0,0}; if (compress) { From 1ab872c68e951837b6925dbbdf25c4e8d0b63c82 Mon Sep 17 00:00:00 2001 From: garakmon Date: Wed, 18 Jul 2018 15:06:18 -0400 Subject: [PATCH 042/174] Allow make compare to work on all platforms --- Makefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 25dd876d6d..58a93bb55c 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,13 @@ LDFLAGS = -Map ../../$(MAP) LIB := -L ../../tools/agbcc/lib -lgcc -lc -SHA1 := sha1sum -c +ifeq ($(OS),Windows_NT) + SHA1 := sha1sum -c +else ifeq ($(shell uname -s),Darwin) + SHA1 := shasum -c +else + SHA1 := sha1sum -c +endif GFX := tools/gbagfx/gbagfx AIF := tools/aif2pcm/aif2pcm From 9bb23388a53b552abadfc81d5672887523f6e932 Mon Sep 17 00:00:00 2001 From: MCboy Date: Thu, 19 Jul 2018 20:51:40 +0430 Subject: [PATCH 043/174] Fixed a typo i couldnt find a function for 15 minutes because of this :( --- asm/field_player_avatar.s | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index c0becc6da6..b3e06c0a01 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -67,7 +67,7 @@ player_step: @ 808A9C0 adds r0, r5, 0 bl npc_clear_strange_bits bl DoPlayerAvatarTransition - bl TryDoMetatileBehaviorForcedMovment + bl TryDoMetatileBehaviorForcedMovement lsls r0, 24 cmp r0, 0 bne _0808AA26 @@ -211,9 +211,9 @@ _0808AB0A: .pool thumb_func_end PlayerAllowForcedMovementIfMovingSameDirection - thumb_func_start TryDoMetatileBehaviorForcedMovment -@ bool8 TryDoMetatileBehaviorForcedMovment() -TryDoMetatileBehaviorForcedMovment: @ 808AB14 + thumb_func_start TryDoMetatileBehaviorForcedMovement +@ bool8 TryDoMetatileBehaviorForcedMovement() +TryDoMetatileBehaviorForcedMovement: @ 808AB14 push {r4,lr} ldr r4, =gUnknown_08497444 bl GetForcedMovementByMetatileBehavior @@ -228,7 +228,7 @@ TryDoMetatileBehaviorForcedMovment: @ 808AB14 pop {r1} bx r1 .pool - thumb_func_end TryDoMetatileBehaviorForcedMovment + thumb_func_end TryDoMetatileBehaviorForcedMovement thumb_func_start GetForcedMovementByMetatileBehavior @ u8 GetForcedMovementByMetatileBehavior() @@ -3305,6 +3305,7 @@ sub_808C228: @ 808C228 thumb_func_end sub_808C228 thumb_func_start sub_808C280 +@ void sub_808C280(struct EventObject *playerEventObj); sub_808C280: @ 808C280 push {r4-r7,lr} mov r7, r9 From 663bb3112ae4000d679d22468cf25524d2136cff Mon Sep 17 00:00:00 2001 From: MCboy Date: Thu, 19 Jul 2018 21:15:35 +0430 Subject: [PATCH 044/174] add player_field_avatar.c --- ld_script.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/ld_script.txt b/ld_script.txt index 6d5e31a25a..35029ce6ec 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -91,6 +91,7 @@ SECTIONS { src/metatile_behavior.o(.text); src/field_camera.o(.text); src/field_door.o(.text); + src/field_player_avatar.o(.text); asm/field_player_avatar.o(.text); src/event_object_movement.o(.text); src/field_message_box.o(.text); From 34e3638f6c95ad11b83f5cefc701563eba025407 Mon Sep 17 00:00:00 2001 From: MCboy Date: Thu, 19 Jul 2018 21:17:27 +0430 Subject: [PATCH 045/174] decompile field_player_avatar.s --- asm/field_player_avatar.s | 80 --------------------------------------- 1 file changed, 80 deletions(-) diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index b3e06c0a01..765daed00a 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -5,86 +5,6 @@ .text - thumb_func_start MovementType_Player -@ void MovementType_Player(struct obj *object) -MovementType_Player: @ 808A998 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gEventObjects - adds r0, r2 - ldr r2, =EventObjectCB2_NoMovement2 - bl UpdateEventObjectCurrentMovement - pop {r0} - bx r0 - .pool - thumb_func_end MovementType_Player - - thumb_func_start EventObjectCB2_NoMovement2 -EventObjectCB2_NoMovement2: @ 808A9BC - movs r0, 0 - bx lr - thumb_func_end EventObjectCB2_NoMovement2 - - thumb_func_start player_step -@ void player_step(int dpad_direction, int buttons_new, int buttons_held) -player_step: @ 808A9C0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - ldr r4, =gPlayerAvatar - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gEventObjects - adds r5, r0, r1 - adds r0, r5, 0 - bl sub_808C280 - ldrb r0, [r4, 0x6] - cmp r0, 0 - bne _0808AA26 - adds r0, r7, 0 - adds r1, r6, 0 - bl Bike_TryAcroBikeHistoryUpdate - adds r0, r5, 0 - mov r1, r8 - bl TryInterruptEventObjectSpecialAnim - lsls r0, 24 - cmp r0, 0 - bne _0808AA26 - adds r0, r5, 0 - bl npc_clear_strange_bits - bl DoPlayerAvatarTransition - bl TryDoMetatileBehaviorForcedMovement - lsls r0, 24 - cmp r0, 0 - bne _0808AA26 - mov r0, r8 - adds r1, r7, 0 - adds r2, r6, 0 - bl MovePlayerAvatarUsingKeypadInput - bl PlayerAllowForcedMovementIfMovingSameDirection -_0808AA26: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end player_step - thumb_func_start TryInterruptEventObjectSpecialAnim @ bool8 TryInterruptEventObjectSpecialAnim(struct npc_state *eventObject, u8 direction) TryInterruptEventObjectSpecialAnim: @ 808AA38 From e3a82bd2c51054511da14e325cea104512e8a4ea Mon Sep 17 00:00:00 2001 From: MCboy Date: Thu, 19 Jul 2018 21:18:09 +0430 Subject: [PATCH 046/174] decompile player_field_avatar.s --- src/player_field_effect.c | 46 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/player_field_effect.c diff --git a/src/player_field_effect.c b/src/player_field_effect.c new file mode 100644 index 0000000000..b0d703e251 --- /dev/null +++ b/src/player_field_effect.c @@ -0,0 +1,46 @@ +#include "global.h" +#include "global.fieldmap.h" +#include "sprite.h" +#include "event_object_movement.h" +#include "bike.h" + +static u8 EventObjectCB2_NoMovement2(); +void sub_808C280(struct EventObject *); //struct EventObject *playerEventObj +bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *, u8); +void npc_clear_strange_bits(struct EventObject *); +void DoPlayerAvatarTransition(void); +bool8 TryDoMetatileBehaviorForcedMovement(); +void MovePlayerAvatarUsingKeypadInput(u8, u16, u16); +void PlayerAllowForcedMovementIfMovingSameDirection(); + +void MovementType_Player(struct Sprite *sprite) +{ + // ((Sprite->data[0] << 3) + Sprite->data[0]) << 2 + UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, EventObjectCB2_NoMovement2); +} + +static u8 EventObjectCB2_NoMovement2() +{ + return 0; +} + +void player_step(u8 direction, u16 newKeys, u16 heldKeys) +{ + struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; + + sub_808C280(playerEventObj); + if (gPlayerAvatar.preventStep == FALSE) + { + Bike_TryAcroBikeHistoryUpdate(newKeys, heldKeys); + if (TryInterruptEventObjectSpecialAnim(playerEventObj, direction) == 0) + { + npc_clear_strange_bits(playerEventObj); + DoPlayerAvatarTransition(); + if (TryDoMetatileBehaviorForcedMovement() == 0) + { + MovePlayerAvatarUsingKeypadInput(direction, newKeys, heldKeys); + PlayerAllowForcedMovementIfMovingSameDirection(); + } + } + } +} From a8f9adeaf54c855f4afdd23257df75f6270733fb Mon Sep 17 00:00:00 2001 From: MCboy Date: Thu, 19 Jul 2018 21:22:35 +0430 Subject: [PATCH 047/174] decompile player_field_avatar --- src/field_player_avatar.c | 46 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/field_player_avatar.c diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c new file mode 100644 index 0000000000..b0d703e251 --- /dev/null +++ b/src/field_player_avatar.c @@ -0,0 +1,46 @@ +#include "global.h" +#include "global.fieldmap.h" +#include "sprite.h" +#include "event_object_movement.h" +#include "bike.h" + +static u8 EventObjectCB2_NoMovement2(); +void sub_808C280(struct EventObject *); //struct EventObject *playerEventObj +bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *, u8); +void npc_clear_strange_bits(struct EventObject *); +void DoPlayerAvatarTransition(void); +bool8 TryDoMetatileBehaviorForcedMovement(); +void MovePlayerAvatarUsingKeypadInput(u8, u16, u16); +void PlayerAllowForcedMovementIfMovingSameDirection(); + +void MovementType_Player(struct Sprite *sprite) +{ + // ((Sprite->data[0] << 3) + Sprite->data[0]) << 2 + UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, EventObjectCB2_NoMovement2); +} + +static u8 EventObjectCB2_NoMovement2() +{ + return 0; +} + +void player_step(u8 direction, u16 newKeys, u16 heldKeys) +{ + struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; + + sub_808C280(playerEventObj); + if (gPlayerAvatar.preventStep == FALSE) + { + Bike_TryAcroBikeHistoryUpdate(newKeys, heldKeys); + if (TryInterruptEventObjectSpecialAnim(playerEventObj, direction) == 0) + { + npc_clear_strange_bits(playerEventObj); + DoPlayerAvatarTransition(); + if (TryDoMetatileBehaviorForcedMovement() == 0) + { + MovePlayerAvatarUsingKeypadInput(direction, newKeys, heldKeys); + PlayerAllowForcedMovementIfMovingSameDirection(); + } + } + } +} From 416db8e75106d6d7355e706904922a4248708de5 Mon Sep 17 00:00:00 2001 From: MCboy Date: Thu, 19 Jul 2018 21:23:45 +0430 Subject: [PATCH 048/174] oops --- src/player_field_effect.c | 46 --------------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 src/player_field_effect.c diff --git a/src/player_field_effect.c b/src/player_field_effect.c deleted file mode 100644 index b0d703e251..0000000000 --- a/src/player_field_effect.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "global.h" -#include "global.fieldmap.h" -#include "sprite.h" -#include "event_object_movement.h" -#include "bike.h" - -static u8 EventObjectCB2_NoMovement2(); -void sub_808C280(struct EventObject *); //struct EventObject *playerEventObj -bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *, u8); -void npc_clear_strange_bits(struct EventObject *); -void DoPlayerAvatarTransition(void); -bool8 TryDoMetatileBehaviorForcedMovement(); -void MovePlayerAvatarUsingKeypadInput(u8, u16, u16); -void PlayerAllowForcedMovementIfMovingSameDirection(); - -void MovementType_Player(struct Sprite *sprite) -{ - // ((Sprite->data[0] << 3) + Sprite->data[0]) << 2 - UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, EventObjectCB2_NoMovement2); -} - -static u8 EventObjectCB2_NoMovement2() -{ - return 0; -} - -void player_step(u8 direction, u16 newKeys, u16 heldKeys) -{ - struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; - - sub_808C280(playerEventObj); - if (gPlayerAvatar.preventStep == FALSE) - { - Bike_TryAcroBikeHistoryUpdate(newKeys, heldKeys); - if (TryInterruptEventObjectSpecialAnim(playerEventObj, direction) == 0) - { - npc_clear_strange_bits(playerEventObj); - DoPlayerAvatarTransition(); - if (TryDoMetatileBehaviorForcedMovement() == 0) - { - MovePlayerAvatarUsingKeypadInput(direction, newKeys, heldKeys); - PlayerAllowForcedMovementIfMovingSameDirection(); - } - } - } -} From 43fa9da52a4a204d6e75640b17b2416648f1ddc0 Mon Sep 17 00:00:00 2001 From: MCboy Date: Fri, 20 Jul 2018 03:44:20 +0430 Subject: [PATCH 049/174] decompile more code 1 non matching need help --- src/field_player_avatar.c | 81 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index b0d703e251..191fc8aa4f 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -8,10 +8,13 @@ static u8 EventObjectCB2_NoMovement2(); void sub_808C280(struct EventObject *); //struct EventObject *playerEventObj bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *, u8); void npc_clear_strange_bits(struct EventObject *); +u8 EventObjectGetHeldMovementActionId(struct EventObject *); void DoPlayerAvatarTransition(void); bool8 TryDoMetatileBehaviorForcedMovement(); void MovePlayerAvatarUsingKeypadInput(u8, u16, u16); void PlayerAllowForcedMovementIfMovingSameDirection(); +void MovePlayerNotOnBike(u8 a, u16 b); +u8 sub_808B028(u8); void MovementType_Player(struct Sprite *sprite) { @@ -44,3 +47,81 @@ void player_step(u8 direction, u16 newKeys, u16 heldKeys) } } } + +NAKED +bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *eventObject, u8 direction) +{ + asm_unified("push {r4-r6,lr}\n\ + adds r4, r0, 0\n\ + lsls r1, 24\n\ + lsrs r5, r1, 24\n\ + adds r6, r5, 0\n\ + bl EventObjectIsMovementOverridden\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0808AA92\n\ + adds r0, r4, 0\n\ + bl EventObjectClearHeldMovementIfFinished\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _0808AA92\n\ + adds r0, r4, 0\n\ + bl EventObjectGetHeldMovementActionId\n\ + lsls r0, 24\n\ + movs r1, 0xE7\n\ + lsls r1, 24\n\ + adds r0, r1\n\ + lsrs r0, 24\n\ + cmp r0, 0x3\n\ + bhi _0808AA70\n\ + cmp r5, 0\n\ + bne _0808AA74\n\ +_0808AA70:\n\ + movs r0, 0x1\n\ + b _0808AA94\n\ +_0808AA74:\n\ + ldrb r0, [r4, 0x18]\n\ + lsrs r0, 4\n\ + cmp r0, r5\n\ + beq _0808AA84\n\ +_0808AA7C:\n\ + adds r0, r4, 0\n\ + bl EventObjectClearHeldMovement\n\ + b _0808AA92\n\ +_0808AA84:\n\ + adds r0, r6, 0\n\ + bl sub_808B028\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0808AA7C\n\ + b _0808AA70\n\ +_0808AA92:\n\ + movs r0, 0\n\ +_0808AA94:\n\ + pop {r4-r6}\n\ + pop {r1}\n\ + bx r1"); +} + +void npc_clear_strange_bits(struct EventObject *eventObj) +{ + eventObj->inanimate = 0; + eventObj->disableAnim = 0; + eventObj->facingDirectionLocked = 0; + gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_DASH; +} + +void MovePlayerAvatarUsingKeypadInput(u8 direction, u16 newKeys, u16 heldKeys) +{ + if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE) + || (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE)) + MovePlayerOnBike(direction, newKeys, heldKeys); + else + MovePlayerNotOnBike(direction, heldKeys); +} + +void PlayerAllowForcedMovementIfMovingSameDirection(void) +{ + if (gPlayerAvatar.runningState == MOVING) + gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5; +} From 62a4193f8f16ceb1ee192d7939114c622cc67db1 Mon Sep 17 00:00:00 2001 From: MCboy Date: Fri, 20 Jul 2018 03:46:55 +0430 Subject: [PATCH 050/174] Update field_player_avatar.s --- asm/field_player_avatar.s | 126 -------------------------------------- 1 file changed, 126 deletions(-) diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index 765daed00a..df429af5d6 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -5,132 +5,6 @@ .text - thumb_func_start TryInterruptEventObjectSpecialAnim -@ bool8 TryInterruptEventObjectSpecialAnim(struct npc_state *eventObject, u8 direction) -TryInterruptEventObjectSpecialAnim: @ 808AA38 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - adds r6, r5, 0 - bl EventObjectIsMovementOverridden - lsls r0, 24 - cmp r0, 0 - beq _0808AA92 - adds r0, r4, 0 - bl EventObjectClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - bne _0808AA92 - adds r0, r4, 0 - bl EventObjectGetHeldMovementActionId - lsls r0, 24 - movs r1, 0xE7 - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x3 - bhi _0808AA70 - cmp r5, 0 - bne _0808AA74 -_0808AA70: - movs r0, 0x1 - b _0808AA94 -_0808AA74: - ldrb r0, [r4, 0x18] - lsrs r0, 4 - cmp r0, r5 - beq _0808AA84 -_0808AA7C: - adds r0, r4, 0 - bl EventObjectClearHeldMovement - b _0808AA92 -_0808AA84: - adds r0, r6, 0 - bl sub_808B028 - lsls r0, 24 - cmp r0, 0 - beq _0808AA7C - b _0808AA70 -_0808AA92: - movs r0, 0 -_0808AA94: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end TryInterruptEventObjectSpecialAnim - - thumb_func_start npc_clear_strange_bits -@ void npc_clear_strange_bits(struct npc_state *eventObject) -npc_clear_strange_bits: @ 808AA9C - ldrb r2, [r0, 0x1] - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - movs r2, 0x5 - negs r2, r2 - ands r1, r2 - adds r2, 0x2 - ands r1, r2 - strb r1, [r0, 0x1] - ldr r2, =gPlayerAvatar - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bx lr - .pool - thumb_func_end npc_clear_strange_bits - - thumb_func_start MovePlayerAvatarUsingKeypadInput -@ void MovePlayerAvatarUsingKeypadInput(int dpad_direction, int buttons_new, int buttons_held) -MovePlayerAvatarUsingKeypadInput: @ 808AAC0 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r0, =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - beq _0808AAE8 - adds r0, r3, 0 - adds r1, r4, 0 - bl MovePlayerOnBike - b _0808AAF0 - .pool -_0808AAE8: - adds r0, r3, 0 - adds r1, r2, 0 - bl MovePlayerNotOnBike -_0808AAF0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end MovePlayerAvatarUsingKeypadInput - - thumb_func_start PlayerAllowForcedMovementIfMovingSameDirection -@ void PlayerAllowForcedMovementIfMovingSameDirection() -PlayerAllowForcedMovementIfMovingSameDirection: @ 808AAF8 - push {lr} - ldr r2, =gPlayerAvatar - ldrb r0, [r2, 0x2] - cmp r0, 0x2 - bne _0808AB0A - ldrb r1, [r2] - movs r0, 0xDF - ands r0, r1 - strb r0, [r2] -_0808AB0A: - pop {r0} - bx r0 - .pool - thumb_func_end PlayerAllowForcedMovementIfMovingSameDirection - thumb_func_start TryDoMetatileBehaviorForcedMovement @ bool8 TryDoMetatileBehaviorForcedMovement() TryDoMetatileBehaviorForcedMovement: @ 808AB14 From 201fb6f818e8c3a380bfc04edb62d6e9749b4c1b Mon Sep 17 00:00:00 2001 From: MCboy Date: Sat, 21 Jul 2018 03:06:40 +0430 Subject: [PATCH 051/174] ported code over from pokeruby --- src/field_player_avatar.c | 187 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 191fc8aa4f..81e7976764 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -4,6 +4,16 @@ #include "event_object_movement.h" #include "bike.h" +extern bool8 (*const gUnknown_08497444[])(void); +extern bool8 (*const gUnknown_084973FC[])(u8); + +void sub_808C5B0(void); +void sub_808C4D8(void); +void PlayerJumpLedge(u8); +u8 CheckForPlayerAvatarCollision(u8); +void PlayerGoSpeed1(u8); +void PlayerGoSpeed2(u8); +void PlayerGoSpeed3(u8); static u8 EventObjectCB2_NoMovement2(); void sub_808C280(struct EventObject *); //struct EventObject *playerEventObj bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *, u8); @@ -15,6 +25,7 @@ void MovePlayerAvatarUsingKeypadInput(u8, u16, u16); void PlayerAllowForcedMovementIfMovingSameDirection(); void MovePlayerNotOnBike(u8 a, u16 b); u8 sub_808B028(u8); +u8 GetForcedMovementByMetatileBehavior(); void MovementType_Player(struct Sprite *sprite) { @@ -125,3 +136,179 @@ void PlayerAllowForcedMovementIfMovingSameDirection(void) if (gPlayerAvatar.runningState == MOVING) gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5; } + +bool8 TryDoMetatileBehaviorForcedMovement() +{ + return gUnknown_08497444[GetForcedMovementByMetatileBehavior()](); +} + +u8 GetForcedMovementByMetatileBehavior(void) +{ + u8 i; + + if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_5)) + { + u8 metatileBehavior = gEventObjects[gPlayerAvatar.eventObjectId].currentMetatileBehavior; + + for (i = 0; i < 18; i++) + { + if (gUnknown_084973FC[i](metatileBehavior)) + return i + 1; + } + } + return 0; +} + +bool8 ForcedMovement_None(void) +{ + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6) + { + struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; + + playerEventObj->facingDirectionLocked = 0; + playerEventObj->enableAnim = 1; + SetEventObjectDirection(playerEventObj, playerEventObj->facingDirection); + gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_6; + } + return FALSE; +} + +static u8 DoForcedMovement(u8 direction, void (*b)(u8)) +{ + struct PlayerAvatar *playerAvatar = &gPlayerAvatar; + u8 collisionType = CheckForPlayerAvatarCollision(direction); + + playerAvatar->flags |= PLAYER_AVATAR_FLAG_6; + if (collisionType != 0) + { + ForcedMovement_None(); + if (collisionType <= 4) + { + return 0; + } + else + { + if (collisionType == COLLISION_LEDGE_JUMP) + PlayerJumpLedge(direction); + playerAvatar->flags |= PLAYER_AVATAR_FLAG_6; + playerAvatar->runningState = MOVING; + return 1; + } + } + else + { + playerAvatar->runningState = MOVING; + b(direction); + return 1; + } +} + +u8 DoForcedMovementInCurrentDirection(void (*a)(u8)) +{ + struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; + + playerEventObj->disableAnim = 1; + return DoForcedMovement(playerEventObj->movementDirection, a); +} + +bool8 ForcedMovement_Slip(void) +{ + return DoForcedMovementInCurrentDirection(PlayerGoSpeed2); +} + +bool8 ForcedMovement_WalkSouth(void) +{ + return DoForcedMovement(DIR_SOUTH, PlayerGoSpeed1); +} + +bool8 ForcedMovement_WalkNorth(void) +{ + return DoForcedMovement(DIR_NORTH, PlayerGoSpeed1); +} + +bool8 ForcedMovement_WalkWest(void) +{ + return DoForcedMovement(DIR_WEST, PlayerGoSpeed1); +} + +bool8 ForcedMovement_WalkEast(void) +{ + return DoForcedMovement(DIR_EAST, PlayerGoSpeed1); +} + +bool8 ForcedMovement_PushedSouthByCurrent(void) +{ + return DoForcedMovement(DIR_SOUTH, PlayerGoSpeed3); +} + +bool8 ForcedMovement_PushedNorthByCurrent(void) +{ + return DoForcedMovement(DIR_NORTH, PlayerGoSpeed3); +} + +bool8 ForcedMovement_PushedWestByCurrent(void) +{ + return DoForcedMovement(DIR_WEST, PlayerGoSpeed3); +} + +bool8 ForcedMovement_PushedEastByCurrent(void) +{ + return DoForcedMovement(DIR_EAST, PlayerGoSpeed3); +} + +u8 ForcedMovement_Slide(u8 direction, void (*b)(u8)) +{ + struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; + + playerEventObj->disableAnim = 1; + playerEventObj->facingDirectionLocked = 1; + return DoForcedMovement(direction, b); +} + +bool8 ForcedMovement_SlideSouth(void) +{ + return ForcedMovement_Slide(DIR_SOUTH, PlayerGoSpeed2); +} + +bool8 ForcedMovement_SlideNorth(void) +{ + return ForcedMovement_Slide(DIR_NORTH, PlayerGoSpeed2); +} + +bool8 ForcedMovement_SlideWest(void) +{ + return ForcedMovement_Slide(DIR_WEST, PlayerGoSpeed2); +} + +bool8 ForcedMovement_SlideEast(void) +{ + return ForcedMovement_Slide(DIR_EAST, PlayerGoSpeed2); +} + +bool8 ForcedMovement_0xBB(void) +{ + sub_808C4D8(); + return TRUE; +} + +bool8 ForcedMovement_0xBC(void) +{ + sub_808C5B0(); + return TRUE; +} + +bool8 ForcedMovement_MuddySlope(void) +{ + struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; + + if (playerEventObj->movementDirection != DIR_NORTH || GetPlayerSpeed() <= 3) + { + Bike_UpdateBikeCounterSpeed(0); + playerEventObj->facingDirectionLocked = 1; + return DoForcedMovement(1, PlayerGoSpeed2); + } + else + { + return FALSE; + } +} From 05c5469f61bc4f0295738ec8b470c1904faf03d1 Mon Sep 17 00:00:00 2001 From: MCboy Date: Sat, 21 Jul 2018 03:07:19 +0430 Subject: [PATCH 052/174] Update field_player_avatar.s --- asm/field_player_avatar.s | 446 -------------------------------------- 1 file changed, 446 deletions(-) diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index df429af5d6..11c4881cdf 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -5,452 +5,6 @@ .text - thumb_func_start TryDoMetatileBehaviorForcedMovement -@ bool8 TryDoMetatileBehaviorForcedMovement() -TryDoMetatileBehaviorForcedMovement: @ 808AB14 - push {r4,lr} - ldr r4, =gUnknown_08497444 - bl GetForcedMovementByMetatileBehavior - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end TryDoMetatileBehaviorForcedMovement - - thumb_func_start GetForcedMovementByMetatileBehavior -@ u8 GetForcedMovementByMetatileBehavior() -GetForcedMovementByMetatileBehavior: @ 808AB38 - push {r4-r6,lr} - ldr r3, =gPlayerAvatar - ldrb r1, [r3] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0808AB8A - ldr r2, =gEventObjects - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r5, [r0, 0x1E] - movs r4, 0 - ldr r6, =gUnknown_084973FC -_0808AB58: - lsls r0, r4, 2 - adds r0, r6 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - beq _0808AB80 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r0, 24 - b _0808AB8C - .pool -_0808AB80: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x11 - bls _0808AB58 -_0808AB8A: - movs r0, 0 -_0808AB8C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetForcedMovementByMetatileBehavior - - thumb_func_start ForcedMovement_None -ForcedMovement_None: @ 808AB94 - push {r4,lr} - ldr r4, =gPlayerAvatar - ldrb r1, [r4] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0808ABCE - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gEventObjects - adds r0, r1 - ldrb r2, [r0, 0x1] - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x1] - ldrb r1, [r0, 0x18] - lsls r1, 28 - lsrs r1, 28 - bl SetEventObjectDirection - ldrb r1, [r4] - movs r0, 0xBF - ands r0, r1 - strb r0, [r4] -_0808ABCE: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_None - - thumb_func_start DoForcedMovement -DoForcedMovement: @ 808ABE0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, =gPlayerAvatar - adds r0, r5, 0 - bl CheckForPlayerAvatarCollision - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - ldrb r0, [r6] - movs r1, 0x40 - mov r10, r1 - movs r1, 0 - mov r8, r1 - mov r1, r10 - orrs r0, r1 - strb r0, [r6] - cmp r4, 0 - beq _0808AC3C - bl ForcedMovement_None - cmp r4, 0x4 - bhi _0808AC24 - movs r0, 0 - b _0808AC48 - .pool -_0808AC24: - cmp r7, 0x6 - bne _0808AC2E - adds r0, r5, 0 - bl PlayerJumpLedge -_0808AC2E: - ldrb r0, [r6] - mov r1, r10 - orrs r0, r1 - strb r0, [r6] - movs r0, 0x2 - strb r0, [r6, 0x2] - b _0808AC46 -_0808AC3C: - movs r0, 0x2 - strb r0, [r6, 0x2] - adds r0, r5, 0 - bl _call_via_r9 -_0808AC46: - movs r0, 0x1 -_0808AC48: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end DoForcedMovement - - thumb_func_start DoForcedMovementInCurrentDirection -DoForcedMovementInCurrentDirection: @ 808AC58 - push {lr} - adds r1, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r2, [r0, 0x5] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, =gEventObjects - adds r0, r2 - ldrb r2, [r0, 0x1] - movs r3, 0x4 - orrs r2, r3 - strb r2, [r0, 0x1] - ldrb r0, [r0, 0x18] - lsrs r0, 4 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end DoForcedMovementInCurrentDirection - - thumb_func_start ForcedMovement_Slip -ForcedMovement_Slip: @ 808AC8C - push {lr} - ldr r0, =PlayerGoSpeed2 - bl DoForcedMovementInCurrentDirection - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_Slip - - thumb_func_start ForcedMovement_WalkSouth -ForcedMovement_WalkSouth: @ 808ACA0 - push {lr} - ldr r1, =PlayerGoSpeed1 - movs r0, 0x1 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_WalkSouth - - thumb_func_start ForcedMovement_WalkNorth -ForcedMovement_WalkNorth: @ 808ACB8 - push {lr} - ldr r1, =PlayerGoSpeed1 - movs r0, 0x2 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_WalkNorth - - thumb_func_start ForcedMovement_WalkWest -ForcedMovement_WalkWest: @ 808ACD0 - push {lr} - ldr r1, =PlayerGoSpeed1 - movs r0, 0x3 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_WalkWest - - thumb_func_start ForcedMovement_WalkEast -ForcedMovement_WalkEast: @ 808ACE8 - push {lr} - ldr r1, =PlayerGoSpeed1 - movs r0, 0x4 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_WalkEast - - thumb_func_start ForcedMovement_PushedSouthByCurrent -ForcedMovement_PushedSouthByCurrent: @ 808AD00 - push {lr} - ldr r1, =PlayerGoSpeed3 - movs r0, 0x1 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_PushedSouthByCurrent - - thumb_func_start ForcedMovement_PushedNorthByCurrent -ForcedMovement_PushedNorthByCurrent: @ 808AD18 - push {lr} - ldr r1, =PlayerGoSpeed3 - movs r0, 0x2 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_PushedNorthByCurrent - - thumb_func_start ForcedMovement_PushedWestByCurrent -ForcedMovement_PushedWestByCurrent: @ 808AD30 - push {lr} - ldr r1, =PlayerGoSpeed3 - movs r0, 0x3 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_PushedWestByCurrent - - thumb_func_start ForcedMovement_PushedEastByCurrent -ForcedMovement_PushedEastByCurrent: @ 808AD48 - push {lr} - ldr r1, =PlayerGoSpeed3 - movs r0, 0x4 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_PushedEastByCurrent - - thumb_func_start ForcedMovement_Slide -ForcedMovement_Slide: @ 808AD60 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gPlayerAvatar - ldrb r3, [r2, 0x5] - lsls r2, r3, 3 - adds r2, r3 - lsls r2, 2 - ldr r3, =gEventObjects - adds r2, r3 - ldrb r3, [r2, 0x1] - movs r4, 0x4 - orrs r3, r4 - movs r4, 0x2 - orrs r3, r4 - strb r3, [r2, 0x1] - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_Slide - - thumb_func_start ForcedMovement_SlideSouth -ForcedMovement_SlideSouth: @ 808AD98 - push {lr} - ldr r1, =PlayerGoSpeed2 - movs r0, 0x1 - bl ForcedMovement_Slide - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_SlideSouth - - thumb_func_start ForcedMovement_SlideNorth -ForcedMovement_SlideNorth: @ 808ADB0 - push {lr} - ldr r1, =PlayerGoSpeed2 - movs r0, 0x2 - bl ForcedMovement_Slide - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_SlideNorth - - thumb_func_start ForcedMovement_SlideWest -ForcedMovement_SlideWest: @ 808ADC8 - push {lr} - ldr r1, =PlayerGoSpeed2 - movs r0, 0x3 - bl ForcedMovement_Slide - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_SlideWest - - thumb_func_start ForcedMovement_SlideEast -ForcedMovement_SlideEast: @ 808ADE0 - push {lr} - ldr r1, =PlayerGoSpeed2 - movs r0, 0x4 - bl ForcedMovement_Slide - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end ForcedMovement_SlideEast - - thumb_func_start ForcedMovement_0xBB -ForcedMovement_0xBB: @ 808ADF8 - push {lr} - bl sub_808C4D8 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end ForcedMovement_0xBB - - thumb_func_start ForcedMovement_0xBC -ForcedMovement_0xBC: @ 808AE04 - push {lr} - bl sub_808C5B0 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end ForcedMovement_0xBC - - thumb_func_start ForcedMovement_MuddySlope -ForcedMovement_MuddySlope: @ 808AE10 - push {r4,lr} - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gEventObjects - adds r4, r0, r1 - ldrb r1, [r4, 0x18] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0x20 - bne _0808AE36 - bl GetPlayerSpeed - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bgt _0808AE60 -_0808AE36: - movs r0, 0 - bl Bike_UpdateBikeCounterSpeed - ldrb r0, [r4, 0x1] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r1, =PlayerGoSpeed2 - movs r0, 0x1 - bl DoForcedMovement - lsls r0, 24 - lsrs r0, 24 - b _0808AE62 - .pool -_0808AE60: - movs r0, 0 -_0808AE62: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ForcedMovement_MuddySlope - thumb_func_start MovePlayerNotOnBike @ void MovePlayerNotOnBike(u8 direction, u8 heldKeys) MovePlayerNotOnBike: @ 808AE68 From 82d88479ce94d79515c5152e669dbdc4acd5b9f4 Mon Sep 17 00:00:00 2001 From: MCboy Date: Tue, 24 Jul 2018 16:59:52 +0430 Subject: [PATCH 053/174] decompiled a bunch of functions i also made TryInterruptEventObjectSpecialAnim functionally equivalent tho its still nonmatching so i need help with that --- src/field_player_avatar.c | 361 +++++++++++++++++++++++++++++++++++++- 1 file changed, 354 insertions(+), 7 deletions(-) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 81e7976764..1be9ab73e1 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -3,10 +3,51 @@ #include "sprite.h" #include "event_object_movement.h" #include "bike.h" +#include "metatile_behavior.h" +#include "metatile_behaviors.h" +#include "constants/flags.h" +#include "event_data.h" +#include "fieldmap.h" +#include "overworld.h" +#include "rotating_gate.h" -extern bool8 (*const gUnknown_08497444[])(void); -extern bool8 (*const gUnknown_084973FC[])(u8); +bool8 ForcedMovement_None(void); +bool8 ForcedMovement_Slip(void); +bool8 ForcedMovement_WalkSouth(void); +bool8 ForcedMovement_WalkNorth(void); +bool8 ForcedMovement_WalkWest(void); +bool8 ForcedMovement_WalkEast(void); +bool8 ForcedMovement_PushedSouthByCurrent(void); +bool8 ForcedMovement_PushedNorthByCurrent(void); +bool8 ForcedMovement_PushedWestByCurrent(void); +bool8 ForcedMovement_PushedEastByCurrent(void); +bool8 ForcedMovement_SlideSouth(void); +bool8 ForcedMovement_SlideNorth(void); +bool8 ForcedMovement_SlideWest(void); +bool8 ForcedMovement_SlideEast(void); +bool8 ForcedMovement_0xBB(void); +bool8 ForcedMovement_0xBC(void); +bool8 ForcedMovement_MuddySlope(void); +void task_add_bump_boulder(u8, u8); +u8 GetLedgeJumpDirection(s16 x, s16 y, u8 z); +bool32 CheckForRotatingGatePuzzleCollisionWithoutAnimation(u8, s16, s16); // from rotating_gate.c +bool8 ShouldJumpLedge(s16, s16, u8); +bool8 sub_808B1BC(s16, s16, u8); +u8 sub_808B164(struct EventObject *, s16, s16, u8, u8); +u8 CheckForEventObjectCollision(struct EventObject *, s16, s16, u8, u8); +u8 sub_808B238(s16, s16, u8); +void check_acro_bike_metatile(s16, s16, u8, u8 *); +void PlayerNotOnBikeCollide(u8); +void PlayerNotOnBikeCollideWithFarawayIslandMew(u8); +bool8 IsPlayerCollidingWithFarawayIslandMew(u8); +void PlayerRun(u8); +void PlayerTurnInPlace(u8); +void PlayerFaceDirection(u8); +u8 GetPlayerFacingDirection(void); +void MovePlayerNotOnBike(u8, u16); +u8 CheckMovementInputNotOnBike(u8); +u8 GetPlayerMovementDirection(void); void sub_808C5B0(void); void sub_808C4D8(void); void PlayerJumpLedge(u8); @@ -26,10 +67,73 @@ void PlayerAllowForcedMovementIfMovingSameDirection(); void MovePlayerNotOnBike(u8 a, u16 b); u8 sub_808B028(u8); u8 GetForcedMovementByMetatileBehavior(); +void PlayerNotOnBikeNotMoving(u8, u16); +void PlayerNotOnBikeTurningInPlace(u8, u16); +void PlayerNotOnBikeMoving(u8, u16); +void sub_808C750(u8); + +static bool8 (*const gUnknown_084973FC[])(u8) = +{ + MetatileBehavior_IsTrickHouseSlipperyFloor, + MetatileBehavior_IsIce_2, + MetatileBehavior_IsWalkSouth, + MetatileBehavior_IsWalkNorth, + MetatileBehavior_IsWalkWest, + MetatileBehavior_IsWalkEast, + MetatileBehavior_IsSouthwardCurrent, + MetatileBehavior_IsNorthwardCurrent, + MetatileBehavior_IsWestwardCurrent, + MetatileBehavior_IsEastwardCurrent, + MetatileBehavior_IsSlideSouth, + MetatileBehavior_IsSlideNorth, + MetatileBehavior_IsSlideWest, + MetatileBehavior_IsSlideEast, + MetatileBehavior_IsWaterfall, + MetatileBehavior_IsSecretBaseJumpMat, + MetatileBehavior_IsSecretBaseSpinMat, + MetatileBehavior_IsMuddySlope, +}; +static bool8 (*const gUnknown_08497444[])(void) = +{ + ForcedMovement_None, + ForcedMovement_Slip, + ForcedMovement_Slip, + ForcedMovement_WalkSouth, + ForcedMovement_WalkNorth, + ForcedMovement_WalkWest, + ForcedMovement_WalkEast, + ForcedMovement_PushedSouthByCurrent, + ForcedMovement_PushedNorthByCurrent, + ForcedMovement_PushedWestByCurrent, + ForcedMovement_PushedEastByCurrent, + ForcedMovement_SlideSouth, + ForcedMovement_SlideNorth, + ForcedMovement_SlideWest, + ForcedMovement_SlideEast, + ForcedMovement_PushedSouthByCurrent, + ForcedMovement_0xBB, + ForcedMovement_0xBC, + ForcedMovement_MuddySlope, +}; +static void (*const gUnknown_08497490[])(u8, u16) = +{ + PlayerNotOnBikeNotMoving, + PlayerNotOnBikeTurningInPlace, + PlayerNotOnBikeMoving, +}; + +static bool8 (*const gUnknown_0849749C[])(u8) = +{ + MetatileBehavior_IsBumpySlope, + MetatileBehavior_IsIsolatedVerticalRail, + MetatileBehavior_IsIsolatedHorizontalRail, + MetatileBehavior_IsVerticalRail, + MetatileBehavior_IsHorizontalRail, +}; +static const u8 gUnknown_084974B0[] = {9, 10, 11, 12, 13, 0, 0, 0}; void MovementType_Player(struct Sprite *sprite) { - // ((Sprite->data[0] << 3) + Sprite->data[0]) << 2 UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, EventObjectCB2_NoMovement2); } @@ -58,11 +162,46 @@ void player_step(u8 direction, u16 newKeys, u16 heldKeys) } } } - -NAKED -bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *eventObject, u8 direction) +#ifdef NONMATCHING +bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 direction) { - asm_unified("push {r4-r6,lr}\n\ + if (EventObjectIsMovementOverridden(playerEventObj) + && !EventObjectClearHeldMovementIfFinished(playerEventObj)) + { + u8 heldMovementActionId = EventObjectGetHeldMovementActionId(playerEventObj); + if (heldMovementActionId > 24 && heldMovementActionId < 29) + { + if(direction == DIR_NONE) + { + EventObjectClearHeldMovement(playerEventObj); + return FALSE; + } + else if(playerEventObj->movementDirection != direction) + { + return TRUE; + } + else if(sub_808B028(direction) == FALSE) + { + EventObjectClearHeldMovement(playerEventObj); + return FALSE; + } + else + { + return TRUE; + } + } + else + { + return TRUE; + } + } + return FALSE; +} +#else +NAKED +bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 direction) +{ + asm_unified("push {r4-r6,lr}\n\ adds r4, r0, 0\n\ lsls r1, 24\n\ lsrs r5, r1, 24\n\ @@ -113,6 +252,7 @@ _0808AA94:\n\ pop {r1}\n\ bx r1"); } +#endif void npc_clear_strange_bits(struct EventObject *eventObj) { @@ -312,3 +452,210 @@ bool8 ForcedMovement_MuddySlope(void) return FALSE; } } + +void MovePlayerNotOnBike(u8 direction, u16 heldKeys) +{ + gUnknown_08497490[CheckMovementInputNotOnBike(direction)](direction, heldKeys); +} + +u8 CheckMovementInputNotOnBike(u8 direction) +{ + if (direction == DIR_NONE) + { + gPlayerAvatar.runningState = NOT_MOVING; + return 0; + } + else if (direction != GetPlayerMovementDirection() && gPlayerAvatar.runningState != MOVING) + { + gPlayerAvatar.runningState = TURN_DIRECTION; + return 1; + } + else + { + gPlayerAvatar.runningState = MOVING; + return 2; + } +} + +void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys) +{ + PlayerFaceDirection(GetPlayerFacingDirection()); +} + +void PlayerNotOnBikeTurningInPlace(u8 direction, u16 heldKeys) +{ + PlayerTurnInPlace(direction); +} + +void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) +{ + u8 r0 = CheckForPlayerAvatarCollision(direction); + + if(r0 != 0) + { + if(r0 == 6) + { + PlayerJumpLedge(direction); + return; + } + else if(r0 == 4 && IsPlayerCollidingWithFarawayIslandMew(direction) != 0) + { + PlayerNotOnBikeCollideWithFarawayIslandMew(direction); + return; + } + else + { + u8 r4 = r0 - 5; + + if(r4 > 3) + { + PlayerNotOnBikeCollide(direction); + return; + } + else + { + return; + } + } + } + + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) + { + // speed 2 is fast, same speed as running + PlayerGoSpeed2(direction); + return; + } + + if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_4) && (heldKeys & B_BUTTON) && FlagGet(FLAG_SYS_B_DASH) + && IsRunningDisallowed(gEventObjects[gPlayerAvatar.eventObjectId].currentMetatileBehavior) == 0) + { + PlayerRun(direction); + gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_DASH; + return; + } + else + { + PlayerGoSpeed1(direction); + } +} + +u8 CheckForPlayerAvatarCollision(u8 direction) +{ + s16 x, y; + struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; + + x = playerEventObj->currentCoords.x; + y = playerEventObj->currentCoords.y; + MoveCoords(direction, &x, &y); + return CheckForEventObjectCollision(playerEventObj, x, y, direction, MapGridGetMetatileBehaviorAt(x, y)); +} + +u8 sub_808B028(u8 direction) +{ + s16 x, y; + struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; + + x = playerEventObj->currentCoords.x; + y = playerEventObj->currentCoords.y; + MoveCoords(direction, &x, &y); + return sub_808B164(playerEventObj, x, y, direction, MapGridGetMetatileBehaviorAt(x, y)); +} + +u8 CheckForEventObjectCollision(struct EventObject *a, s16 x, s16 y, u8 direction, u8 e) +{ + u8 collision; + + collision = GetCollisionAtCoords(a, x, y, direction); + if (collision == 3 && sub_808B1BC(x, y, direction)) + return 5; + if (ShouldJumpLedge(x, y, direction)) + { + IncrementGameStat(GAME_STAT_JUMPED_DOWN_LEDGES); + return COLLISION_LEDGE_JUMP; + } + if (collision == 4 && sub_808B238(x, y, direction)) + return 7; + + if (collision == 0) + { + if (CheckForRotatingGatePuzzleCollision(direction, x, y)) + return 8; + check_acro_bike_metatile(x, y, e, &collision); + } + return collision; +} + +u8 sub_808B164(struct EventObject *a, s16 x, s16 y, u8 direction, u8 e) +{ + u8 collision = GetCollisionAtCoords(a, x, y, direction); + + if (collision == 0) + { + if (CheckForRotatingGatePuzzleCollisionWithoutAnimation(direction, x, y) != 0) + return 8; + check_acro_bike_metatile(x, y, e, &collision); + } + return collision; +} + +bool8 sub_808B1BC(s16 x, s16 y, u8 direction) +{ + if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) + && MapGridGetZCoordAt(x, y) == 3 + && GetEventObjectIdByXYZ(x, y, 3) == 16) + { + sub_808C750(direction); + return 1; + } + else + { + return 0; + } +} + +bool8 ShouldJumpLedge(s16 x, s16 y, u8 z) +{ + if (GetLedgeJumpDirection(x, y, z) != 0) + return 1; + else + return 0; +} + +u8 sub_808B238(s16 x, s16 y, u8 direction) +{ + if (FlagGet(FLAG_SYS_USE_STRENGTH)) + { + u8 eventObjectId = GetEventObjectIdByXY(x, y); + + if (eventObjectId != 16) + { + if (gEventObjects[eventObjectId].graphicsId == 0x57) + { + x = gEventObjects[eventObjectId].currentCoords.x; + y = gEventObjects[eventObjectId].currentCoords.y; + MoveCoords(direction, &x, &y); + if (GetCollisionAtCoords(&gEventObjects[eventObjectId], x, y, direction) == 0 + && MetatileBehavior_IsNonAnimDoor(MapGridGetMetatileBehaviorAt(x, y)) == 0) + { + task_add_bump_boulder(eventObjectId, direction); + return 1; + } + } + } + } + return 0; +} + +void check_acro_bike_metatile(s16 unused1, s16 unused2, u8 c, u8 *d) +{ + u8 i; + + for (i = 0; i < 5; i++) + { + if (gUnknown_0849749C[i](c)) + { + *d = gUnknown_084974B0[i]; + return; + } + } +} From ed3a698b98e75424a1d37f3b43edeffe4e34bdec Mon Sep 17 00:00:00 2001 From: MCboy Date: Tue, 24 Jul 2018 17:01:44 +0430 Subject: [PATCH 054/174] Update field_player_avatar.s --- asm/field_player_avatar.s | 621 -------------------------------------- 1 file changed, 621 deletions(-) diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index 11c4881cdf..a1f1153769 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -5,627 +5,6 @@ .text - thumb_func_start MovePlayerNotOnBike -@ void MovePlayerNotOnBike(u8 direction, u8 heldKeys) -MovePlayerNotOnBike: @ 808AE68 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r6, =gUnknown_08497490 - adds r0, r4, 0 - bl CheckMovementInputNotOnBike - lsls r0, 24 - lsrs r0, 22 - adds r0, r6 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl _call_via_r2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end MovePlayerNotOnBike - - thumb_func_start CheckMovementInputNotOnBike -@ u8 CheckMovementInputNotOnBike(u8 direction) -CheckMovementInputNotOnBike: @ 808AE98 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0808AEB0 - ldr r0, =gPlayerAvatar - strb r4, [r0, 0x2] - movs r0, 0 - b _0808AED2 - .pool -_0808AEB0: - bl GetPlayerMovementDirection - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - beq _0808AECC - ldr r1, =gPlayerAvatar - ldrb r0, [r1, 0x2] - cmp r0, 0x2 - beq _0808AECC - movs r0, 0x1 - b _0808AED0 - .pool -_0808AECC: - ldr r1, =gPlayerAvatar - movs r0, 0x2 -_0808AED0: - strb r0, [r1, 0x2] -_0808AED2: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end CheckMovementInputNotOnBike - - thumb_func_start PlayerNotOnBikeNotMoving -@ void PlayerNotOnBikeNotMoving(u8 direction, u8 heldKeys) -PlayerNotOnBikeNotMoving: @ 808AEDC - push {lr} - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - bl PlayerFaceDirection - pop {r0} - bx r0 - thumb_func_end PlayerNotOnBikeNotMoving - - thumb_func_start PlayerNotOnBikeTurningInPlace -@ void PlayerNotOnBikeTurningInPlace(u8 direction, u8 heldKeys) -PlayerNotOnBikeTurningInPlace: @ 808AEF0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl PlayerTurnInPlace - pop {r0} - bx r0 - thumb_func_end PlayerNotOnBikeTurningInPlace - - thumb_func_start PlayerNotOnBikeMoving -@ void PlayerNotOnBikeMoving(u8 direction, u8 heldKeys) -PlayerNotOnBikeMoving: @ 808AF00 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 16 - lsrs r6, r1, 16 - adds r0, r5, 0 - bl CheckForPlayerAvatarCollision - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0808AF4E - cmp r4, 0x6 - bne _0808AF24 - adds r0, r5, 0 - bl PlayerJumpLedge - b _0808AFB6 -_0808AF24: - cmp r4, 0x4 - bne _0808AF3C - adds r0, r5, 0 - bl IsPlayerCollidingWithFarawayIslandMew - lsls r0, 24 - cmp r0, 0 - beq _0808AF3C - adds r0, r5, 0 - bl PlayerNotOnBikeCollideWithFarawayIslandMew - b _0808AFB6 -_0808AF3C: - subs r0, r4, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _0808AFB6 - adds r0, r5, 0 - bl PlayerNotOnBikeCollide - b _0808AFB6 -_0808AF4E: - ldr r4, =gPlayerAvatar - ldrb r1, [r4] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0808AF68 - adds r0, r5, 0 - bl PlayerGoSpeed2 - b _0808AFB6 - .pool -_0808AF68: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0808AFB0 - movs r0, 0x2 - ands r6, r0 - cmp r6, 0 - beq _0808AFB0 - movs r0, 0x8C - lsls r0, 4 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0808AFB0 - ldr r2, =gEventObjects - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1E] - bl IsRunningDisallowed - cmp r0, 0 - bne _0808AFB0 - adds r0, r5, 0 - bl PlayerRun - ldrb r1, [r4] - movs r0, 0x80 - orrs r0, r1 - strb r0, [r4] - b _0808AFB6 - .pool -_0808AFB0: - adds r0, r5, 0 - bl PlayerGoSpeed1 -_0808AFB6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end PlayerNotOnBikeMoving - - thumb_func_start CheckForPlayerAvatarCollision -CheckForPlayerAvatarCollision: @ 808AFBC - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, =gEventObjects - adds r4, r0 - ldrh r1, [r4, 0x10] - add r0, sp, 0x4 - strh r1, [r0] - ldrh r0, [r4, 0x12] - mov r5, sp - adds r5, 0x6 - strh r0, [r5] - adds r0, r6, 0 - add r1, sp, 0x4 - adds r2, r5, 0 - bl MoveCoords - add r0, sp, 0x4 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - add r1, sp, 0x4 - movs r3, 0 - ldrsh r1, [r1, r3] - movs r3, 0 - ldrsh r2, [r5, r3] - str r0, [sp] - adds r0, r4, 0 - adds r3, r6, 0 - bl CheckForEventObjectCollision - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end CheckForPlayerAvatarCollision - - thumb_func_start sub_808B028 -sub_808B028: @ 808B028 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, =gEventObjects - adds r4, r0 - ldrh r1, [r4, 0x10] - add r0, sp, 0x4 - strh r1, [r0] - ldrh r0, [r4, 0x12] - mov r5, sp - adds r5, 0x6 - strh r0, [r5] - adds r0, r6, 0 - add r1, sp, 0x4 - adds r2, r5, 0 - bl MoveCoords - add r0, sp, 0x4 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - add r1, sp, 0x4 - movs r3, 0 - ldrsh r1, [r1, r3] - movs r3, 0 - ldrsh r2, [r5, r3] - str r0, [sp] - adds r0, r4, 0 - adds r3, r6, 0 - bl sub_808B164 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_808B028 - - thumb_func_start CheckForEventObjectCollision -@ u8 CheckForEventObjectCollision(struct npc_state *eventObject, u16 x, u16 y, u8 direction, u8 metatileBehavior) -CheckForEventObjectCollision: @ 808B094 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - lsls r1, 16 - lsls r2, 16 - lsls r3, 24 - lsrs r6, r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - lsrs r7, r1, 16 - asrs r5, r1, 16 - lsrs r1, r2, 16 - mov r9, r1 - asrs r4, r2, 16 - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl GetCollisionAtCoords - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - cmp r0, 0x3 - bne _0808B0E4 - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_808B1BC - lsls r0, 24 - cmp r0, 0 - beq _0808B0E4 - movs r0, 0x5 - b _0808B152 -_0808B0E4: - lsls r5, r7, 16 - asrs r0, r5, 16 - mov r8, r0 - mov r1, r9 - lsls r4, r1, 16 - asrs r7, r4, 16 - adds r1, r7, 0 - adds r2, r6, 0 - bl ShouldJumpLedge - lsls r0, 24 - cmp r0, 0 - beq _0808B108 - movs r0, 0x2B - bl IncrementGameStat - movs r0, 0x6 - b _0808B152 -_0808B108: - mov r0, sp - ldrb r0, [r0] - cmp r0, 0x4 - bne _0808B124 - mov r0, r8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_808B238 - lsls r0, 24 - cmp r0, 0 - beq _0808B124 - movs r0, 0x7 - b _0808B152 -_0808B124: - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - bne _0808B14E - asrs r5, 16 - asrs r4, 16 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl CheckForRotatingGatePuzzleCollision - cmp r0, 0 - beq _0808B142 - movs r0, 0x8 - b _0808B152 -_0808B142: - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, r10 - mov r3, sp - bl check_acro_bike_metatile -_0808B14E: - mov r0, sp - ldrb r0, [r0] -_0808B152: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CheckForEventObjectCollision - - thumb_func_start sub_808B164 -sub_808B164: @ 808B164 - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, [sp, 0x18] - lsls r3, 24 - lsrs r6, r3, 24 - lsls r4, 24 - lsrs r7, r4, 24 - lsls r1, 16 - asrs r5, r1, 16 - lsls r2, 16 - asrs r4, r2, 16 - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl GetCollisionAtCoords - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - cmp r0, 0 - bne _0808B1AE - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl CheckForRotatingGatePuzzleCollisionWithoutAnimation - cmp r0, 0 - beq _0808B1A2 - movs r0, 0x8 - b _0808B1B2 -_0808B1A2: - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r7, 0 - mov r3, sp - bl check_acro_bike_metatile -_0808B1AE: - mov r0, sp - ldrb r0, [r0] -_0808B1B2: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808B164 - - thumb_func_start sub_808B1BC -@ bool8 sub_808B1BC(u16 x, u16 y, u8 direction) -sub_808B1BC: @ 808B1BC - push {r4-r6,lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r0, =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0808B20C - lsls r5, r3, 16 - asrs r0, r5, 16 - lsls r4, 16 - asrs r1, r4, 16 - bl MapGridGetZCoordAt - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0808B20C - lsrs r0, r5, 16 - lsrs r1, r4, 16 - movs r2, 0x3 - bl GetEventObjectIdByXYZ - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - bne _0808B20C - adds r0, r6, 0 - bl sub_808C750 - movs r0, 0x1 - b _0808B20E - .pool -_0808B20C: - movs r0, 0 -_0808B20E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_808B1BC - - thumb_func_start ShouldJumpLedge -@ bool8 ShouldJumpLedge(s16 x, s16 y, u8 direction) -ShouldJumpLedge: @ 808B214 - push {lr} - lsls r2, 24 - lsrs r2, 24 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl GetLedgeJumpDirection - lsls r0, 24 - cmp r0, 0 - bne _0808B230 - movs r0, 0 - b _0808B232 -_0808B230: - movs r0, 0x1 -_0808B232: - pop {r1} - bx r1 - thumb_func_end ShouldJumpLedge - - thumb_func_start sub_808B238 -sub_808B238: @ 808B238 - push {r4-r7,lr} - sub sp, 0x4 - mov r3, sp - strh r0, [r3] - mov r5, sp - adds r5, 0x2 - strh r1, [r5] - lsls r2, 24 - lsrs r7, r2, 24 - ldr r0, =0x00000889 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0808B2D8 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl GetEventObjectIdByXY - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x10 - beq _0808B2D8 - ldr r0, =gEventObjects - lsls r1, r6, 3 - adds r1, r6 - lsls r1, 2 - adds r4, r1, r0 - ldrb r0, [r4, 0x5] - cmp r0, 0x57 - bne _0808B2D8 - ldrh r1, [r4, 0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r4, 0x12] - strh r0, [r5] - adds r0, r7, 0 - mov r1, sp - adds r2, r5, 0 - bl MoveCoords - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0 - ldrsh r2, [r5, r0] - adds r0, r4, 0 - adds r3, r7, 0 - bl GetCollisionAtCoords - lsls r0, 24 - cmp r0, 0 - bne _0808B2D8 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsNonAnimDoor - lsls r0, 24 - cmp r0, 0 - bne _0808B2D8 - adds r0, r6, 0 - adds r1, r7, 0 - bl task_add_bump_boulder - movs r0, 0x1 - b _0808B2DA - .pool -_0808B2D8: - movs r0, 0 -_0808B2DA: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808B238 - - thumb_func_start check_acro_bike_metatile -@ void check_acro_bike_metatile(s16 x, s16 y, u8 metatileBehavior, u8 *returnValue) -check_acro_bike_metatile: @ 808B2E4 - push {r4-r7,lr} - adds r6, r3, 0 - lsls r2, 24 - lsrs r5, r2, 24 - movs r4, 0 - ldr r7, =gUnknown_0849749C -_0808B2F0: - lsls r0, r4, 2 - adds r0, r7 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - beq _0808B314 - ldr r0, =gUnknown_084974B0 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r6] - b _0808B31E - .pool -_0808B314: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _0808B2F0 -_0808B31E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end check_acro_bike_metatile - thumb_func_start IsPlayerCollidingWithFarawayIslandMew @ bool8 IsPlayerCollidingWithFarawayIslandMew(u8 direction) IsPlayerCollidingWithFarawayIslandMew: @ 808B324 From 64f40bbfee9f6ef8fc1f8f1d815c398f260453fe Mon Sep 17 00:00:00 2001 From: MCboy Date: Tue, 24 Jul 2018 17:03:16 +0430 Subject: [PATCH 055/174] Add field_player_avatar to rodata --- ld_script.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/ld_script.txt b/ld_script.txt index 35029ce6ec..6768cbc190 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -396,6 +396,7 @@ SECTIONS { src/fieldmap.o(.rodata); src/metatile_behavior.o(.rodata); src/field_door.o(.rodata); + src/field_player_avatar.o(.rodata); data/field_player_avatar.o(.rodata); src/event_object_movement.o(.rodata); src/text_window.o(.rodata); From 1b3d7a5bef5ff2be7761aedd6b41c9f9cd00fe03 Mon Sep 17 00:00:00 2001 From: MCboy Date: Tue, 24 Jul 2018 17:04:02 +0430 Subject: [PATCH 056/174] Update field_player_avatar.s --- data/field_player_avatar.s | 58 -------------------------------------- 1 file changed, 58 deletions(-) diff --git a/data/field_player_avatar.s b/data/field_player_avatar.s index c2e0d729de..cc3ff24479 100644 --- a/data/field_player_avatar.s +++ b/data/field_player_avatar.s @@ -6,63 +6,6 @@ .section .rodata .align 2, 0 - -gUnknown_084973FC:: @ 84973FC - .4byte MetatileBehavior_IsTrickHouseSlipperyFloor - .4byte MetatileBehavior_IsIce_2 - .4byte MetatileBehavior_IsWalkSouth - .4byte MetatileBehavior_IsWalkNorth - .4byte MetatileBehavior_IsWalkWest - .4byte MetatileBehavior_IsWalkEast - .4byte MetatileBehavior_IsSouthwardCurrent - .4byte MetatileBehavior_IsNorthwardCurrent - .4byte MetatileBehavior_IsWestwardCurrent - .4byte MetatileBehavior_IsEastwardCurrent - .4byte MetatileBehavior_IsSlideSouth - .4byte MetatileBehavior_IsSlideNorth - .4byte MetatileBehavior_IsSlideWest - .4byte MetatileBehavior_IsSlideEast - .4byte MetatileBehavior_IsWaterfall - .4byte MetatileBehavior_IsSecretBaseJumpMat - .4byte MetatileBehavior_IsSecretBaseSpinMat - .4byte MetatileBehavior_IsMuddySlope - -gUnknown_08497444:: @ 8497444 - .4byte ForcedMovement_None - .4byte ForcedMovement_Slip - .4byte ForcedMovement_Slip - .4byte ForcedMovement_WalkSouth - .4byte ForcedMovement_WalkNorth - .4byte ForcedMovement_WalkWest - .4byte ForcedMovement_WalkEast - .4byte ForcedMovement_PushedSouthByCurrent - .4byte ForcedMovement_PushedNorthByCurrent - .4byte ForcedMovement_PushedWestByCurrent - .4byte ForcedMovement_PushedEastByCurrent - .4byte ForcedMovement_SlideSouth - .4byte ForcedMovement_SlideNorth - .4byte ForcedMovement_SlideWest - .4byte ForcedMovement_SlideEast - .4byte ForcedMovement_PushedSouthByCurrent - .4byte ForcedMovement_0xBB - .4byte ForcedMovement_0xBC - .4byte ForcedMovement_MuddySlope - -gUnknown_08497490:: @ 8497490 - .4byte PlayerNotOnBikeNotMoving - .4byte PlayerNotOnBikeTurningInPlace - .4byte PlayerNotOnBikeMoving - -gUnknown_0849749C:: @ 849749C - .4byte MetatileBehavior_IsBumpySlope - .4byte MetatileBehavior_IsIsolatedVerticalRail - .4byte MetatileBehavior_IsIsolatedHorizontalRail - .4byte MetatileBehavior_IsVerticalRail - .4byte MetatileBehavior_IsHorizontalRail - -gUnknown_084974B0:: @ 84974B0 - .byte 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x00, 0x00, 0x00 - gUnknown_084974B8:: @ 84974B8 .4byte PlayerAvatarTransition_Normal .4byte PlayerAvatarTransition_MachBike @@ -158,4 +101,3 @@ gUnknown_084975B0:: @ 84975B0 gUnknown_084975BC:: @ 84975BC .byte 0x01, 0x03, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00 - From 94a5f8d5291eb42febbf689cea0e8dec357a0b90 Mon Sep 17 00:00:00 2001 From: MCboy Date: Wed, 25 Jul 2018 17:18:49 +0430 Subject: [PATCH 057/174] made file better ? --- src/field_player_avatar.c | 112 +++++++++++--------------------------- 1 file changed, 31 insertions(+), 81 deletions(-) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 1be9ab73e1..a8eb835a36 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -162,101 +162,51 @@ void player_step(u8 direction, u16 newKeys, u16 heldKeys) } } } -#ifdef NONMATCHING + bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 direction) { + #ifdef NONMATCHING + u8 r5 = direction; + u8 r6 = direction; + #else + u8 r5 = direction; + register u8 r6 asm("r6") = direction; + #endif + //a very bad HACK + if (EventObjectIsMovementOverridden(playerEventObj) && !EventObjectClearHeldMovementIfFinished(playerEventObj)) { u8 heldMovementActionId = EventObjectGetHeldMovementActionId(playerEventObj); if (heldMovementActionId > 24 && heldMovementActionId < 29) { - if(direction == DIR_NONE) + if (direction == DIR_NONE) + { + return TRUE; + } + + if (playerEventObj->movementDirection != r5) { EventObjectClearHeldMovement(playerEventObj); return FALSE; } - else if(playerEventObj->movementDirection != direction) - { - return TRUE; - } - else if(sub_808B028(direction) == FALSE) + + if (!sub_808B028(r6)) { EventObjectClearHeldMovement(playerEventObj); return FALSE; } - else - { - return TRUE; - } - } - else - { - return TRUE; } + + return TRUE; } + return FALSE; } -#else -NAKED -bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 direction) -{ - asm_unified("push {r4-r6,lr}\n\ - adds r4, r0, 0\n\ - lsls r1, 24\n\ - lsrs r5, r1, 24\n\ - adds r6, r5, 0\n\ - bl EventObjectIsMovementOverridden\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0808AA92\n\ - adds r0, r4, 0\n\ - bl EventObjectClearHeldMovementIfFinished\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _0808AA92\n\ - adds r0, r4, 0\n\ - bl EventObjectGetHeldMovementActionId\n\ - lsls r0, 24\n\ - movs r1, 0xE7\n\ - lsls r1, 24\n\ - adds r0, r1\n\ - lsrs r0, 24\n\ - cmp r0, 0x3\n\ - bhi _0808AA70\n\ - cmp r5, 0\n\ - bne _0808AA74\n\ -_0808AA70:\n\ - movs r0, 0x1\n\ - b _0808AA94\n\ -_0808AA74:\n\ - ldrb r0, [r4, 0x18]\n\ - lsrs r0, 4\n\ - cmp r0, r5\n\ - beq _0808AA84\n\ -_0808AA7C:\n\ - adds r0, r4, 0\n\ - bl EventObjectClearHeldMovement\n\ - b _0808AA92\n\ -_0808AA84:\n\ - adds r0, r6, 0\n\ - bl sub_808B028\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0808AA7C\n\ - b _0808AA70\n\ -_0808AA92:\n\ - movs r0, 0\n\ -_0808AA94:\n\ - pop {r4-r6}\n\ - pop {r1}\n\ - bx r1"); -} -#endif void npc_clear_strange_bits(struct EventObject *eventObj) { - eventObj->inanimate = 0; + eventObj->inanimate = 0; eventObj->disableAnim = 0; eventObj->facingDirectionLocked = 0; gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_DASH; @@ -491,14 +441,14 @@ void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) { u8 r0 = CheckForPlayerAvatarCollision(direction); - if(r0 != 0) + if (r0 != 0) { - if(r0 == 6) + if (r0 == 6) { PlayerJumpLedge(direction); return; } - else if(r0 == 4 && IsPlayerCollidingWithFarawayIslandMew(direction) != 0) + else if (r0 == 4 && IsPlayerCollidingWithFarawayIslandMew(direction) != 0) { PlayerNotOnBikeCollideWithFarawayIslandMew(direction); return; @@ -507,7 +457,7 @@ void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) { u8 r4 = r0 - 5; - if(r4 > 3) + if (r4 > 3) { PlayerNotOnBikeCollide(direction); return; @@ -521,7 +471,7 @@ void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) { - // speed 2 is fast, same speed as running + // speed 2 is fast, same speed as running PlayerGoSpeed2(direction); return; } @@ -605,20 +555,20 @@ bool8 sub_808B1BC(s16 x, s16 y, u8 direction) && GetEventObjectIdByXYZ(x, y, 3) == 16) { sub_808C750(direction); - return 1; + return TRUE; } else { - return 0; + return FALSE; } } bool8 ShouldJumpLedge(s16 x, s16 y, u8 z) { if (GetLedgeJumpDirection(x, y, z) != 0) - return 1; + return TRUE; else - return 0; + return FALSE; } u8 sub_808B238(s16 x, s16 y, u8 direction) From 3a15012085227ff5986c0e73d11c19b827794947 Mon Sep 17 00:00:00 2001 From: MCboy Date: Wed, 25 Jul 2018 17:28:25 +0430 Subject: [PATCH 058/174] Update field_player_avatar.c --- src/field_player_avatar.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index a8eb835a36..9cdbf9956f 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -577,9 +577,7 @@ u8 sub_808B238(s16 x, s16 y, u8 direction) { u8 eventObjectId = GetEventObjectIdByXY(x, y); - if (eventObjectId != 16) - { - if (gEventObjects[eventObjectId].graphicsId == 0x57) + if (eventObjectId != 16 && gEventObjects[eventObjectId].graphicsId == 0x57) { x = gEventObjects[eventObjectId].currentCoords.x; y = gEventObjects[eventObjectId].currentCoords.y; @@ -591,7 +589,6 @@ u8 sub_808B238(s16 x, s16 y, u8 direction) return 1; } } - } } return 0; } From 6c365fdc94f0adca78ce3533745b75f389ccc9f2 Mon Sep 17 00:00:00 2001 From: MCboy Date: Wed, 25 Jul 2018 17:47:04 +0430 Subject: [PATCH 059/174] Update field_player_avatar.c --- src/field_player_avatar.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 9cdbf9956f..3289c19856 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -10,6 +10,7 @@ #include "fieldmap.h" #include "overworld.h" #include "rotating_gate.h" +#include "constants/event_object_movement_constants.h" bool8 ForcedMovement_None(void); bool8 ForcedMovement_Slip(void); @@ -178,7 +179,7 @@ bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 && !EventObjectClearHeldMovementIfFinished(playerEventObj)) { u8 heldMovementActionId = EventObjectGetHeldMovementActionId(playerEventObj); - if (heldMovementActionId > 24 && heldMovementActionId < 29) + if (heldMovementActionId > MOVEMENT_ACTION_WALK_FAST_RIGHT && heldMovementActionId < MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN) { if (direction == DIR_NONE) { From 45b730e4747df42c5bd2dd775d34cdaed51b4045 Mon Sep 17 00:00:00 2001 From: garak Date: Tue, 7 Aug 2018 23:05:48 -0400 Subject: [PATCH 060/174] copy heal_location changes from pokeruby --- include/heal_location.h | 17 +++----- src/heal_location.c | 96 ++++++++++++++++------------------------- src/overworld.c | 6 +-- 3 files changed, 45 insertions(+), 74 deletions(-) diff --git a/include/heal_location.h b/include/heal_location.h index 1f966f1aea..94dac24173 100644 --- a/include/heal_location.h +++ b/include/heal_location.h @@ -1,12 +1,7 @@ #ifndef GUARD_HEAL_LOCATION_H #define GUARD_HEAL_LOCATION_H -// Exported type declarations - -struct UnkStruct_0859F534 { - const union AffineAnimCmd *const *const affineAnims; - void (* callback)(struct Sprite *sprite); -}; +#include "sprite.h" struct HealLocation { @@ -16,10 +11,8 @@ struct HealLocation u16 y; }; -// Exported RAM declarations +u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum); +const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum); +const struct HealLocation *GetHealLocation(u32 index); -// Exported ROM declarations - -const struct HealLocation *GetHealLocationPointer(u32 loc); - -#endif //GUARD_HEAL_LOCATION_H +#endif // GUARD_HEAL_LOCATION_H diff --git a/src/heal_location.c b/src/heal_location.c index aa90fe1ae7..41b9898feb 100644 --- a/src/heal_location.c +++ b/src/heal_location.c @@ -1,83 +1,61 @@ - -// Includes #include "global.h" -#include "constants/maps.h" #include "heal_location.h" +#include "constants/maps.h" -#define HEAL_LOCATION(map, x, y) {MAP_GROUP(map), MAP_NUM(map), x, y} - -// Static type declarations - -// Static RAM declarations - -// Static ROM declarations - -// .rodata - -static const struct HealLocation sHealLocations[] = { - HEAL_LOCATION(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 4, 2), - HEAL_LOCATION(LITTLEROOT_TOWN_MAYS_HOUSE_2F, 4, 2), - HEAL_LOCATION(PETALBURG_CITY, 20, 17), - HEAL_LOCATION(SLATEPORT_CITY, 19, 20), - HEAL_LOCATION(MAUVILLE_CITY, 22, 6), - HEAL_LOCATION(RUSTBORO_CITY, 16, 39), - HEAL_LOCATION(FORTREE_CITY, 5, 7), - HEAL_LOCATION(LILYCOVE_CITY, 24, 15), - HEAL_LOCATION(MOSSDEEP_CITY, 28, 17), - HEAL_LOCATION(SOOTOPOLIS_CITY, 43, 32), - HEAL_LOCATION(EVER_GRANDE_CITY, 27, 49), - HEAL_LOCATION(LITTLEROOT_TOWN, 5, 9), - HEAL_LOCATION(LITTLEROOT_TOWN, 14, 9), - HEAL_LOCATION(OLDALE_TOWN, 6, 17), - HEAL_LOCATION(DEWFORD_TOWN, 2, 11), - HEAL_LOCATION(LAVARIDGE_TOWN, 9, 7), - HEAL_LOCATION(FALLARBOR_TOWN, 14, 8), - HEAL_LOCATION(VERDANTURF_TOWN, 16, 4), - HEAL_LOCATION(PACIFIDLOG_TOWN, 8, 16), - HEAL_LOCATION(EVER_GRANDE_CITY, 18, 6), - HEAL_LOCATION(SOUTHERN_ISLAND_EXTERIOR, 15, 20), - HEAL_LOCATION(BATTLE_FRONTIER_OUTSIDE_EAST, 3, 52) +static const struct HealLocation sHealLocations[] = +{ + {MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), 4, 2}, + {MAP_GROUP(LITTLEROOT_TOWN_MAYS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_2F), 4, 2}, + {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 20, 17}, + {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 19, 20}, + {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 22, 6}, + {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 16, 39}, + {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 5, 7}, + {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 24, 15}, + {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 28, 17}, + {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 43, 32}, + {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 27, 49}, + {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 5, 9}, + {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 14, 9}, + {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 6, 17}, + {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 2, 11}, + {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 9, 7}, + {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 14, 8}, + {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 16, 4}, + {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 8, 16}, + {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 18, 6}, + {MAP_GROUP(SOUTHERN_ISLAND_EXTERIOR), MAP_NUM(SOUTHERN_ISLAND_EXTERIOR), 15, 20}, + {MAP_GROUP(BATTLE_FRONTIER_OUTSIDE_EAST), MAP_NUM(BATTLE_FRONTIER_OUTSIDE_EAST), 3, 52}, }; -#define NUM_HEAL_LOCATIONS (ARRAY_COUNT(sHealLocations)) - -// .text - -static u32 GetHealLocationIndexFromMapGroupAndNum(u16 mapGroup, u16 mapNum) +u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum) { u32 i; - for (i = 0; i < NUM_HEAL_LOCATIONS; i++) + for (i = 0; i < ARRAY_COUNT(sHealLocations); i++) { if (sHealLocations[i].group == mapGroup && sHealLocations[i].map == mapNum) - { return i + 1; - } } return 0; } -const struct HealLocation *GetHealLocationPointerFromMapGroupAndNum(u16 mapGroup, u16 mapNum) +const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum) { - u32 loc; + u32 index = GetHealLocationIndexByMap(mapGroup, mapNum); - loc = GetHealLocationIndexFromMapGroupAndNum(mapGroup, mapNum); - if (loc == 0) - { + if (index == 0) return NULL; - } - return &sHealLocations[loc - 1]; + else + return &sHealLocations[index - 1]; } -const struct HealLocation *GetHealLocationPointer(u32 loc) +const struct HealLocation *GetHealLocation(u32 index) { - if (loc == 0) - { + if (index == 0) return NULL; - } - if (loc > NUM_HEAL_LOCATIONS) - { + else if (index > ARRAY_COUNT(sHealLocations)) return NULL; - } - return &sHealLocations[loc - 1]; + else + return &sHealLocations[index - 1]; } diff --git a/src/overworld.c b/src/overworld.c index 772f8a0570..d85af9e4d4 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -689,7 +689,7 @@ void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused) void sub_8084CCC(u8 a1) { - const struct HealLocation *warp = GetHealLocationPointer(a1); + const struct HealLocation *warp = GetHealLocation(a1); if (warp) Overworld_SetWarpDestination(warp->group, warp->map, -1, warp->x, warp->y); @@ -702,7 +702,7 @@ void Overworld_SetWarpDestToLastHealLoc(void) void Overworld_SetHealLocationWarp(u8 healLocationId) { - const struct HealLocation *healLocation = GetHealLocationPointer(healLocationId); + const struct HealLocation *healLocation = GetHealLocation(healLocationId); if (healLocation != NULL) SetWarpData(&gSaveBlock1Ptr->lastHealLocation, healLocation->group, healLocation->map, -1, healLocation->x, healLocation->y); @@ -761,7 +761,7 @@ void sub_8084F2C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) void sub_8084F6C(u8 a1) { - const struct HealLocation *warp = GetHealLocationPointer(a1); + const struct HealLocation *warp = GetHealLocation(a1); if (warp) SetWarpData(&gSaveBlock1Ptr->warp1, warp->group, warp->map, -1, warp->x, warp->y); } From 90896e38c966df57ca9e4434a1d726ccbfa448e7 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 8 Aug 2018 01:37:12 -0700 Subject: [PATCH 061/174] Begin porting/decompiling field_specials --- asm/contest.s | 32 +- asm/contest_link_80FC4F4.s | 2 +- asm/field_specials.s | 3621 ----------------- asm/pokenav.s | 10 +- asm/rom_8011DC0.s | 6 +- asm/roulette.s | 8 +- asm/trade.s | 2 +- data/event_scripts.s | 6 +- data/field_specials.s | 27 - .../scripts.inc | 8 +- data/maps/AncientTomb/scripts.inc | 4 +- data/maps/AquaHideout_B1F/scripts.inc | 6 +- .../BattleFrontier_OutsideEast/scripts.inc | 4 +- data/maps/BirthIsland_Exterior/scripts.inc | 4 +- data/maps/DesertRuins/scripts.inc | 4 +- data/maps/FarawayIsland_Interior/scripts.inc | 6 +- data/maps/IslandCave/scripts.inc | 4 +- data/maps/LilycoveCity/scripts.inc | 4 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- data/maps/LilycoveCity_Harbor/scripts.inc | 4 +- data/maps/MarineCave_End/scripts.inc | 4 +- data/maps/MauvilleCity_GameCorner/scripts.inc | 26 +- data/maps/NavelRock_Bottom/scripts.inc | 4 +- data/maps/NavelRock_Top/scripts.inc | 4 +- data/maps/NewMauville_Inside/scripts.inc | 8 +- data/maps/PacifidlogTown_House2/scripts.inc | 8 +- .../scripts.inc | 6 +- data/maps/Route103/scripts.inc | 4 +- data/maps/Route104/scripts.inc | 4 +- data/maps/Route110/events.inc | 4 +- data/maps/Route110/scripts.inc | 14 +- .../scripts.inc | 10 +- data/maps/Route116/scripts.inc | 4 +- .../Route116_TunnelersRestHouse/scripts.inc | 2 +- data/maps/Route119/scripts.inc | 6 +- data/maps/Route120/scripts.inc | 6 +- data/maps/RustboroCity/scripts.inc | 6 +- data/maps/RusturfTunnel/events.inc | 4 +- data/maps/RusturfTunnel/scripts.inc | 8 +- data/maps/SSTidalCorridor/scripts.inc | 36 +- data/maps/SkyPillar_Top/scripts.inc | 4 +- data/maps/SlateportCity_Harbor/scripts.inc | 2 +- data/maps/SlateportCity_House1/scripts.inc | 2 +- .../scripts.inc | 2 +- data/maps/SouthernIsland_Interior/scripts.inc | 4 +- data/maps/TerraCave_End/scripts.inc | 4 +- data/maps/VerdanturfTown/scripts.inc | 4 +- .../VerdanturfTown_WandasHouse/scripts.inc | 2 +- data/scripts/field_move_scripts.inc | 2 +- data/specials.inc | 30 +- include/battle_tower.h | 1 + include/constants/flags.h | 16 +- include/constants/vars.h | 16 +- include/event_object_movement.h | 1 + include/field_region_map.h | 6 + include/party_menu.h | 1 + include/pokemon_storage_system.h | 1 + include/rom_8011DC0.h | 1 + include/strings.h | 10 + include/tv.h | 1 + include/wallclock.h | 3 +- ld_script.txt | 2 + src/battle_setup.c | 2 +- src/clock.c | 2 +- src/credits.c | 2 +- src/field_region_map.c | 2 +- src/field_special_scene.c | 2 +- src/field_specials.c | 1657 ++++++++ src/match_call.c | 4 +- src/region_map.c | 70 +- src/wallclock.c | 4 +- sym_ewram.txt | 16 +- 73 files changed, 1915 insertions(+), 3895 deletions(-) create mode 100644 include/field_region_map.h create mode 100644 src/field_specials.c diff --git a/asm/contest.s b/asm/contest.s index 453ecb04c3..978421c3d6 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -102,7 +102,7 @@ LoadContestBgAfterMoveAnim: @ 80D7724 movs r4, 0 movs r5, 0xA0 _080D775E: - ldr r0, =0x0201a004 + ldr r0, =gHeap+0x1A004 adds r0, r5, r0 ldr r1, =gUnknown_02039F26 adds r1, r4, r1 @@ -576,7 +576,7 @@ _080D7B4E: ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] - ldr r0, =0x02000000 + ldr r0, =gHeap movs r1, 0xD0 lsls r1, 9 adds r0, r1 @@ -928,7 +928,7 @@ _080D7ED8: ldr r4, =0x06002000 adds r1, r4, 0 bl LZDecompressVram - ldr r3, =0x02018000 + ldr r3, =gHeap+0x18000 movs r5, 0x80 lsls r5, 6 ldr r1, =0x040000d4 @@ -976,7 +976,7 @@ _080D7F40: ldr r0, =gContestResources ldr r0, [r0] ldr r1, [r0, 0x2C] - ldr r2, =0x0201aa04 + ldr r2, =gHeap+0x1AA04 ldr r0, =0x040000d4 str r1, [r0] str r2, [r0, 0x4] @@ -1022,7 +1022,7 @@ _080D7F7C: mov r0, sp adds r2, r6, 0 bl CpuSet - ldr r1, =0x0201a004 + ldr r1, =gHeap+0x1A004 ldr r0, =0x040000d4 mov r2, r8 str r2, [r0] @@ -1393,7 +1393,7 @@ sub_80D833C: @ 80D833C strh r1, [r0] bl sub_80DCD48 ldr r1, =gPlttBufferUnfaded - ldr r2, =0x0201a204 + ldr r2, =gHeap+0x1A204 ldr r0, =0x040000d4 str r1, [r0] str r2, [r0, 0x4] @@ -2070,7 +2070,7 @@ _080D897C: movs r0, 0 bl sub_80DED60 ldr r1, =gPlttBufferFaded - ldr r0, =0x0201a604 + ldr r0, =gHeap+0x1A604 movs r2, 0x80 lsls r2, 3 ldr r4, =0x040000d4 @@ -5012,7 +5012,7 @@ _080DA33A: sub_80DA348: @ 80DA348 lsls r0, 24 lsrs r0, 24 - ldr r2, =0x0201a204 + ldr r2, =gHeap+0x1A204 ldr r3, =gPlttBufferUnfaded ldr r1, =0x040000d4 str r2, [r1] @@ -10211,7 +10211,7 @@ sub_80DCCD8: @ 80DCCD8 thumb_func_start sub_80DCD08 sub_80DCD08: @ 80DCD08 push {lr} - ldr r0, =0x02000000 + ldr r0, =gHeap movs r1, 0xD0 lsls r1, 9 adds r2, r0, r1 @@ -10250,7 +10250,7 @@ sub_80DCD48: @ 80DCD48 ldrb r0, [r0] cmp r0, 0 beq _080DCE44 - ldr r0, =0x02000000 + ldr r0, =gHeap movs r1, 0xD0 lsls r1, 9 adds r0, r1 @@ -10639,7 +10639,7 @@ sub_80DD04C: @ 80DD04C movs r4, 0 movs r5, 0xA0 _080DD052: - ldr r0, =0x0201a004 + ldr r0, =gHeap+0x1A004 adds r0, r5, r0 ldr r1, =gUnknown_02039F26 adds r1, r4, r1 @@ -12351,7 +12351,7 @@ sub_80DDE30: @ 80DDE30 ldrsh r0, [r4, r1] cmp r0, 0 bne _080DDE78 - ldr r0, =0x02019000 + ldr r0, =gHeap+0x19000 ldr r1, =0x06002000 movs r2, 0x80 lsls r2, 5 @@ -12360,7 +12360,7 @@ sub_80DDE30: @ 80DDE30 b _080DDE8C .pool _080DDE78: - ldr r0, =0x02018000 + ldr r0, =gHeap+0x18000 ldr r1, =0x06002000 movs r2, 0x80 lsls r2, 5 @@ -15417,7 +15417,7 @@ sub_80DF704: @ 80DF704 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r0, =0x02000000 + ldr r0, =gHeap movs r1, 0xD0 lsls r1, 9 adds r2, r0, r1 @@ -15468,7 +15468,7 @@ sub_80DF750: @ 80DF750 bne _080DF766 b _080DF924 _080DF766: - ldr r0, =0x02000000 + ldr r0, =gHeap movs r1, 0xD0 lsls r1, 9 adds r0, r1 @@ -15493,7 +15493,7 @@ _080DF784: lsrs r7, r0, 24 cmp r7, 0x3 bls _080DF784 - ldr r0, =0x02000000 + ldr r0, =gHeap movs r1, 0xD0 lsls r1, 9 adds r0, r1 diff --git a/asm/contest_link_80FC4F4.s b/asm/contest_link_80FC4F4.s index 621e260384..99fec9d996 100644 --- a/asm/contest_link_80FC4F4.s +++ b/asm/contest_link_80FC4F4.s @@ -11,7 +11,7 @@ sub_80FC4F4: @ 80FC4F4 adds r2, r0, 0 lsls r4, r1, 16 lsrs r4, 16 - ldr r5, =0x0201c000 + ldr r5, =gDecompressionBuffer adds r0, r5, 0 adds r1, r2, 0 adds r2, r4, 0 diff --git a/asm/field_specials.s b/asm/field_specials.s index cea228a2a2..3f0ba5ad84 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -5,3627 +5,6 @@ .text - thumb_func_start Special_ShowDiploma -Special_ShowDiploma: @ 8137CB4 - push {lr} - ldr r0, =CB2_ShowDiploma - bl SetMainCallback2 - bl ScriptContext2_Enable - pop {r0} - bx r0 - .pool - thumb_func_end Special_ShowDiploma - - thumb_func_start Special_ViewWallClock -Special_ViewWallClock: @ 8137CC8 - push {lr} - ldr r0, =gMain - ldr r1, =CB2_ReturnToField - str r1, [r0, 0x8] - ldr r0, =Cb2_ViewWallClock - bl SetMainCallback2 - bl ScriptContext2_Enable - pop {r0} - bx r0 - .pool - thumb_func_end Special_ViewWallClock - - thumb_func_start ResetCyclingRoadChallengeData -ResetCyclingRoadChallengeData: @ 8137CEC - ldr r0, =gBikeCyclingChallenge - movs r1, 0 - strb r1, [r0] - ldr r0, =0x0203ab55 - strb r1, [r0] - ldr r1, =gUnknown_0203AB58 - movs r0, 0 - str r0, [r1] - bx lr - .pool - thumb_func_end ResetCyclingRoadChallengeData - - thumb_func_start Special_BeginCyclingRoadChallenge -Special_BeginCyclingRoadChallenge: @ 8137D0C - ldr r1, =gBikeCyclingChallenge - movs r0, 0x1 - strb r0, [r1] - ldr r1, =0x0203ab55 - movs r0, 0 - strb r0, [r1] - ldr r1, =gUnknown_0203AB58 - ldr r0, =gMain - ldr r0, [r0, 0x20] - str r0, [r1] - bx lr - .pool - thumb_func_end Special_BeginCyclingRoadChallenge - - thumb_func_start GetPlayerAvatarBike -GetPlayerAvatarBike: @ 8137D34 - push {lr} - movs r0, 0x4 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _08137D46 - movs r0, 0x1 - b _08137D58 -_08137D46: - movs r0, 0x2 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _08137D56 - movs r0, 0 - b _08137D58 -_08137D56: - movs r0, 0x2 -_08137D58: - pop {r1} - bx r1 - thumb_func_end GetPlayerAvatarBike - - thumb_func_start DetermineCyclingRoadResults -DetermineCyclingRoadResults: @ 8137D5C - push {r4-r7,lr} - adds r7, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r6, 0x63 - bhi _08137D88 - ldr r4, =gStringVar1 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, =gText_SpaceTimes - adds r0, r4, 0 - bl StringAppend - b _08137D90 - .pool -_08137D88: - ldr r0, =gStringVar1 - ldr r1, =gText_99TimesPlus - bl StringCopy -_08137D90: - ldr r0, =0x00000e0f - cmp r7, r0 - bhi _08137DF0 - ldr r4, =gStringVar2 - adds r0, r7, 0 - movs r1, 0x3C - bl __udivsi3 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r0, 0xAD - strb r0, [r4, 0x2] - adds r5, r4, 0x3 - adds r0, r7, 0 - movs r1, 0x3C - bl __umodsi3 - movs r1, 0x64 - muls r0, r1 - movs r1, 0x3C - bl __udivsi3 - adds r1, r0, 0 - adds r0, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, =gText_SpaceSeconds - adds r0, r4, 0 - bl StringAppend - b _08137DF8 - .pool -_08137DF0: - ldr r0, =gStringVar2 - ldr r1, =gText_1MinutePlus - bl StringCopy -_08137DF8: - movs r4, 0 - cmp r6, 0 - bne _08137E0C - movs r4, 0x5 - b _08137E2A - .pool -_08137E0C: - cmp r6, 0x3 - bhi _08137E14 - movs r4, 0x4 - b _08137E2A -_08137E14: - cmp r6, 0x9 - bhi _08137E1C - movs r4, 0x3 - b _08137E2A -_08137E1C: - cmp r6, 0x13 - bhi _08137E24 - movs r4, 0x2 - b _08137E2A -_08137E24: - cmp r6, 0x63 - bhi _08137E2A - movs r4, 0x1 -_08137E2A: - adds r0, r7, 0 - movs r1, 0x3C - bl __udivsi3 - cmp r0, 0xA - bhi _08137E3A - adds r0, r4, 0x5 - b _08137E58 -_08137E3A: - cmp r0, 0xF - bhi _08137E42 - adds r0, r4, 0x4 - b _08137E58 -_08137E42: - cmp r0, 0x14 - bhi _08137E4A - adds r0, r4, 0x3 - b _08137E58 -_08137E4A: - cmp r0, 0x28 - bhi _08137E52 - adds r0, r4, 0x2 - b _08137E58 -_08137E52: - cmp r0, 0x3B - bhi _08137E5C - adds r0, r4, 0x1 -_08137E58: - lsls r0, 24 - lsrs r4, r0, 24 -_08137E5C: - ldr r0, =gSpecialVar_Result - strh r4, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DetermineCyclingRoadResults - - thumb_func_start FinishCyclingRoadChallenge -FinishCyclingRoadChallenge: @ 8137E6C - push {r4,r5,lr} - ldr r0, =gMain - ldr r1, =gUnknown_0203AB58 - ldr r4, [r0, 0x20] - ldr r0, [r1] - subs r4, r0 - ldr r5, =0x0203ab55 - ldrb r1, [r5] - adds r0, r4, 0 - bl DetermineCyclingRoadResults - ldrb r1, [r5] - adds r0, r4, 0 - bl RecordCyclingRoadResults - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end FinishCyclingRoadChallenge - - thumb_func_start RecordCyclingRoadResults -RecordCyclingRoadResults: @ 8137E9C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r6, =0x00004028 - adds r0, r6, 0 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r7, =0x00004029 - adds r0, r7, 0 - bl VarGet - lsls r0, 16 - adds r4, r0 - cmp r4, r5 - bhi _08137ECC - cmp r4, 0 - bne _08137EE6 -_08137ECC: - lsls r1, r5, 16 - lsrs r1, 16 - adds r0, r6, 0 - bl VarSet - lsrs r1, r5, 16 - adds r0, r7, 0 - bl VarSet - ldr r0, =0x00004027 - mov r1, r8 - bl VarSet -_08137EE6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end RecordCyclingRoadResults - - thumb_func_start GetRecordedCyclingRoadResults -GetRecordedCyclingRoadResults: @ 8137EFC - push {r4,lr} - ldr r0, =0x00004028 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =0x00004029 - bl VarGet - lsls r0, 16 - adds r4, r0 - cmp r4, 0 - beq _08137F3C - ldr r0, =0x00004027 - bl VarGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl DetermineCyclingRoadResults - movs r0, 0x1 - b _08137F3E - .pool -_08137F3C: - movs r0, 0 -_08137F3E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetRecordedCyclingRoadResults - - thumb_func_start UpdateCyclingRoadState -UpdateCyclingRoadState: @ 8137F44 - push {r4,lr} - ldr r0, =gUnknown_020322DC - ldrh r1, [r0] - ldr r0, =0x00000c1d - cmp r1, r0 - beq _08137F7C - ldr r4, =0x000040a9 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - beq _08137F6E - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3 - bne _08137F7C -_08137F6E: - adds r0, r4, 0 - movs r1, 0 - bl VarSet - movs r0, 0 - bl Overworld_SetSavedMusic -_08137F7C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end UpdateCyclingRoadState - - thumb_func_start SetSSTidalFlag -SetSSTidalFlag: @ 8137F90 - push {lr} - ldr r0, =0x0000088d - bl FlagSet - ldr r0, =0x0000404a - bl GetVarPointer - movs r1, 0 - strh r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end SetSSTidalFlag - - thumb_func_start ResetSSTidalFlag -ResetSSTidalFlag: @ 8137FB0 - push {lr} - ldr r0, =0x0000088d - bl FlagClear - pop {r0} - bx r0 - .pool - thumb_func_end ResetSSTidalFlag - - thumb_func_start CountSSTidalStep -CountSSTidalStep: @ 8137FC0 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x0000088d - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08137FE6 - ldr r0, =0x0000404a - bl GetVarPointer - ldrh r1, [r0] - adds r1, r4, r1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xCC - bhi _08137FF4 -_08137FE6: - movs r0, 0 - b _08137FF6 - .pool -_08137FF4: - movs r0, 0x1 -_08137FF6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CountSSTidalStep - - thumb_func_start GetSSTidalLocation -GetSSTidalLocation: @ 8137FFC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r5, r1, 0 - adds r6, r2, 0 - adds r7, r3, 0 - ldr r0, =0x0000404a - bl GetVarPointer - adds r4, r0, 0 - ldr r0, =0x000040b4 - bl GetVarPointer - ldrh r0, [r0] - subs r0, 0x1 - cmp r0, 0x9 - bhi _081380C2 - lsls r0, 2 - ldr r1, =_08138038 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08138038: - .4byte _08138060 - .4byte _08138070 - .4byte _08138064 - .4byte _08138068 - .4byte _08138068 - .4byte _0813806C - .4byte _08138098 - .4byte _08138060 - .4byte _08138064 - .4byte _0813806C -_08138060: - movs r0, 0x1 - b _081380CE -_08138064: - movs r0, 0x4 - b _081380CE -_08138068: - movs r0, 0x2 - b _081380CE -_0813806C: - movs r0, 0x3 - b _081380CE -_08138070: - ldrh r0, [r4] - cmp r0, 0x3B - bhi _08138080 - movs r0, 0x31 - strb r0, [r5] - ldrh r0, [r4] - adds r0, 0x13 - b _081380C0 -_08138080: - cmp r0, 0x8B - bhi _0813808E - movs r0, 0x30 - strb r0, [r5] - ldrh r0, [r4] - subs r0, 0x3C - b _081380C0 -_0813808E: - movs r0, 0x2F - strb r0, [r5] - ldrh r0, [r4] - subs r0, 0x8C - b _081380C0 -_08138098: - ldrh r0, [r4] - cmp r0, 0x41 - bhi _081380A8 - movs r0, 0x2F - strb r0, [r5] - ldrh r1, [r4] - movs r0, 0x41 - b _081380BE -_081380A8: - cmp r0, 0x91 - bhi _081380B6 - movs r0, 0x30 - strb r0, [r5] - ldrh r1, [r4] - movs r0, 0x91 - b _081380BE -_081380B6: - movs r0, 0x31 - strb r0, [r5] - ldrh r1, [r4] - movs r0, 0xE0 -_081380BE: - subs r0, r1 -_081380C0: - strh r0, [r6] -_081380C2: - movs r0, 0 - mov r1, r8 - strb r0, [r1] - movs r0, 0x14 - strh r0, [r7] - movs r0, 0 -_081380CE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetSSTidalLocation - - thumb_func_start is_tile_that_overrides_player_control -is_tile_that_overrides_player_control: @ 81380D8 - push {lr} - movs r0, 0x88 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0813810A - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x1 - blt _0813810A - cmp r0, 0x3 - ble _081380F6 - cmp r0, 0x6 - bne _0813810A -_081380F6: - ldr r0, =0x000040f2 - bl GetVarPointer - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xF9 - bhi _08138118 -_0813810A: - movs r0, 0 - b _0813811A - .pool -_08138118: - movs r0, 0x1 -_0813811A: - pop {r1} - bx r1 - thumb_func_end is_tile_that_overrides_player_control - - thumb_func_start sub_8138120 -sub_8138120: @ 8138120 - push {lr} - movs r0, 0x8A - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08138152 - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x1 - blt _08138152 - cmp r0, 0x3 - ble _0813813E - cmp r0, 0x6 - bne _08138152 -_0813813E: - ldr r0, =0x000040f3 - bl GetVarPointer - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x9 - bhi _08138160 -_08138152: - movs r0, 0 - b _08138162 - .pool -_08138160: - movs r0, 0x1 -_08138162: - pop {r1} - bx r1 - thumb_func_end sub_8138120 - - thumb_func_start sub_8138168 -sub_8138168: @ 8138168 - push {lr} - movs r0, 0x72 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0813819A - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x1 - blt _0813819A - cmp r0, 0x3 - ble _08138186 - cmp r0, 0x6 - bne _0813819A -_08138186: - ldr r0, =0x000040f5 - bl GetVarPointer - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x9 - bhi _081381A8 -_0813819A: - movs r0, 0 - b _081381AA - .pool -_081381A8: - movs r0, 0x1 -_081381AA: - pop {r1} - bx r1 - thumb_func_end sub_8138168 - - thumb_func_start sub_81381B0 -sub_81381B0: @ 81381B0 - push {lr} - movs r0, 0x80 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081381E2 - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x1 - blt _081381E2 - cmp r0, 0x3 - ble _081381CE - cmp r0, 0x6 - bne _081381E2 -_081381CE: - ldr r0, =0x000040f4 - bl GetVarPointer - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xF9 - bhi _081381F0 -_081381E2: - movs r0, 0 - b _081381F2 - .pool -_081381F0: - movs r0, 0x1 -_081381F2: - pop {r1} - bx r1 - thumb_func_end sub_81381B0 - - thumb_func_start sub_81381F8 -sub_81381F8: @ 81381F8 - push {lr} - movs r0, 0x75 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0813822A - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x1 - blt _0813822A - cmp r0, 0x3 - ble _08138216 - cmp r0, 0x6 - bne _0813822A -_08138216: - ldr r0, =0x000040f6 - bl GetVarPointer - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xF9 - bhi _08138238 -_0813822A: - movs r0, 0 - b _0813823A - .pool -_08138238: - movs r0, 0x1 -_0813823A: - pop {r1} - bx r1 - thumb_func_end sub_81381F8 - - thumb_func_start GetLinkPartnerNames -GetLinkPartnerNames: @ 8138240 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - bl GetMultiplayerId - lsls r0, 24 - lsrs r7, r0, 24 - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _0813828A - ldr r0, =gTVStringVarPtrs - mov r8, r0 -_08138262: - cmp r7, r4 - beq _08138280 - lsls r0, r6, 2 - add r0, r8 - ldr r0, [r0] - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - ldr r2, =gLinkPlayers + 8 - adds r1, r2 - bl StringCopy - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08138280: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08138262 -_0813828A: - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end GetLinkPartnerNames - - thumb_func_start SpawnLinkPartnerEventObject -SpawnLinkPartnerEventObject: @ 81382A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - movs r7, 0 - movs r0, 0 - mov r9, r0 - mov r8, r0 - ldr r1, =gUnknown_085B2B5C - add r0, sp, 0x8 - movs r2, 0x4 - bl memcpy - add r4, sp, 0xC - ldr r1, =gUnknown_085B2B60 - adds r0, r4, 0 - movs r2, 0x8 - bl memcpy - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x2 - beq _08138310 - cmp r0, 0x2 - bgt _081382F4 - cmp r0, 0x1 - beq _0813833C - b _08138350 - .pool -_081382F4: - cmp r1, 0x3 - beq _081382FE - cmp r1, 0x4 - beq _08138324 - b _08138350 -_081382FE: - movs r7, 0x2 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldrh r0, [r1] - subs r0, 0x1 - b _0813832C - .pool -_08138310: - movs r7, 0x1 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0] - mov r9, r1 - ldrh r0, [r0, 0x2] - subs r0, 0x1 - b _0813834A - .pool -_08138324: - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldrh r0, [r1] - adds r0, 0x1 -_0813832C: - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldrh r1, [r1, 0x2] - mov r8, r1 - b _08138350 - .pool -_0813833C: - movs r7, 0x3 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r3, [r0] - mov r9, r3 - ldrh r0, [r0, 0x2] - adds r0, 0x1 -_0813834A: - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_08138350: - movs r6, 0 - b _08138410 - .pool -_08138358: - cmp r10, r6 - beq _0813840A - ldr r0, =gLinkPlayers - lsls r2, r6, 3 - subs r1, r2, r6 - lsls r1, 2 - adds r1, r0 - ldrb r3, [r1] - adds r4, r0, 0 - cmp r3, 0x1 - blt _0813838C - cmp r3, 0x2 - ble _0813837C - cmp r3, 0x3 - beq _08138388 - b _0813838C - .pool -_0813837C: - ldrb r0, [r1, 0x13] - movs r5, 0xEC - cmp r0, 0 - bne _0813839C - movs r5, 0xEB - b _0813839C -_08138388: - ldrb r0, [r1, 0x13] - b _08138394 -_0813838C: - subs r0, r2, r6 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x13] -_08138394: - movs r5, 0x69 - cmp r0, 0 - bne _0813839C - movs r5, 0x64 -_0813839C: - mov r0, sp - adds r0, r7 - adds r0, 0x8 - ldrb r1, [r0] - movs r4, 0xF0 - subs r4, r6 - lsls r4, 24 - lsrs r4, 24 - lsls r2, r7, 1 - mov r0, sp - adds r0, r2 - adds r0, 0xC - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - mov r3, r9 - lsls r3, 16 - asrs r3, 16 - mov r12, r3 - add r0, r12 - adds r3, r0, 0x7 - lsls r3, 16 - asrs r3, 16 - mov r12, r3 - mov r0, sp - adds r0, 0xD - adds r0, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - mov r3, r8 - lsls r0, r3, 16 - asrs r0, 16 - adds r0, r2 - adds r0, 0x7 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r5, 0 - adds r2, r4, 0 - mov r3, r12 - bl SpawnSpecialEventObjectParameterized - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_813842C - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x4 - bne _0813840A - movs r7, 0 -_0813840A: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08138410: - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r6, r0 - bcc _08138358 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end SpawnLinkPartnerEventObject - - thumb_func_start sub_813842C -sub_813842C: @ 813842C - push {r4,r5,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r2, 24 - movs r1, 0xC0 - lsls r1, 19 - adds r2, r1 - lsrs r5, r2, 24 - lsrs r4, r0, 24 - movs r2, 0xA8 - lsls r2, 21 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x1 - bls _08138454 - cmp r4, 0x64 - beq _08138454 - cmp r4, 0x69 - bne _081384E6 -_08138454: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - adds r0, r3, 0 - bl GetEventObjectIdByLocalIdAndMap - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x10 - beq _081384E6 - ldr r1, =gEventObjects - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - lsls r3, r5, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - cmp r4, 0x69 - beq _081384D8 - cmp r4, 0x69 - bgt _081384A8 - cmp r4, 0x64 - beq _081384C4 - b _081384E6 - .pool -_081384A8: - cmp r4, 0xEB - beq _081384B2 - cmp r4, 0xEC - beq _081384BC - b _081384E6 -_081384B2: - ldr r0, =gEventObjectPalette33 - b _081384C6 - .pool -_081384BC: - ldr r0, =gEventObjectPalette34 - b _081384C6 - .pool -_081384C4: - ldr r0, =gEventObjectPalette8 -_081384C6: - movs r2, 0x80 - lsls r2, 1 - adds r1, r3, r2 - movs r2, 0x20 - bl LoadPalette - b _081384E6 - .pool -_081384D8: - ldr r0, =gEventObjectPalette17 - movs r2, 0x80 - lsls r2, 1 - adds r1, r3, r2 - movs r2, 0x20 - bl LoadPalette -_081384E6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813842C - - thumb_func_start MauvilleGymSpecial1 -MauvilleGymSpecial1: @ 81384F0 - push {r4,r5,lr} - movs r4, 0 - ldr r5, =gUnknown_085B2B68 -_081384F6: - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r4, r0 - bne _0813851C - lsls r1, r4, 2 - adds r1, r5 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - ldr r2, =0x00000206 - bl MapGridSetMetatileIdAt - b _0813852A - .pool -_0813851C: - lsls r1, r4, 2 - adds r1, r5 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - ldr r2, =0x00000205 - bl MapGridSetMetatileIdAt -_0813852A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081384F6 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end MauvilleGymSpecial1 - - thumb_func_start MauvilleGymSpecial2 -MauvilleGymSpecial2: @ 8138540 - push {r4-r6,lr} - movs r5, 0xC -_08138544: - movs r4, 0x7 - adds r6, r5, 0x1 -_08138548: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileIdAt - ldr r1, =0xfffffde6 - adds r0, r1 - cmp r0, 0x37 - bls _0813855A - b _08138734 -_0813855A: - lsls r0, 2 - ldr r1, =_0813856C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0813856C: - .4byte _081386F2 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _0813864C - .4byte _08138652 - .4byte _0813868C - .4byte _08138694 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _0813865C - .4byte _08138662 - .4byte _0813869C - .4byte _081386A4 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _0813866C - .4byte _08138672 - .4byte _081386AC - .4byte _081386B4 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _0813867C - .4byte _08138684 - .4byte _081386BC - .4byte _081386C4 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _081386CC - .4byte _081386DC - .4byte _081386EC - .4byte _08138714 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _081386D4 - .4byte _081386E4 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _08138734 - .4byte _0813872A - .4byte _0813871C -_0813864C: - movs r2, 0x8C - lsls r2, 2 - b _08138720 -_08138652: - ldr r2, =0x00000231 - b _08138720 - .pool -_0813865C: - movs r2, 0x8E - lsls r2, 2 - b _08138720 -_08138662: - ldr r2, =0x00000239 - b _08138720 - .pool -_0813866C: - movs r2, 0x88 - lsls r2, 2 - b _08138720 -_08138672: - ldr r2, =0x00000221 - b _08138720 - .pool -_0813867C: - ldr r2, =0x00000e28 - b _08138720 - .pool -_08138684: - ldr r2, =0x00000e29 - b _08138720 - .pool -_0813868C: - ldr r2, =0x00000232 - b _08138720 - .pool -_08138694: - ldr r2, =0x00000233 - b _08138720 - .pool -_0813869C: - ldr r2, =0x0000023a - b _08138720 - .pool -_081386A4: - ldr r2, =0x0000023b - b _08138720 - .pool -_081386AC: - ldr r2, =0x00000222 - b _08138720 - .pool -_081386B4: - ldr r2, =0x00000223 - b _08138720 - .pool -_081386BC: - ldr r2, =0x00000e2a - b _08138720 - .pool -_081386C4: - ldr r2, =0x00000e2b - b _08138720 - .pool -_081386CC: - ldr r2, =0x00000e42 - b _08138720 - .pool -_081386D4: - ldr r2, =0x0000021a - b _08138720 - .pool -_081386DC: - ldr r2, =0x00000e43 - b _08138720 - .pool -_081386E4: - ldr r2, =0x0000021a - b _08138720 - .pool -_081386EC: - movs r2, 0xE4 - lsls r2, 4 - b _08138720 -_081386F2: - subs r1, r5, 0x1 - adds r0, r4, 0 - bl MapGridGetMetatileIdAt - movs r1, 0x90 - lsls r1, 2 - cmp r0, r1 - bne _0813870C - ldr r2, =0x00000e48 - b _08138720 - .pool -_0813870C: - ldr r2, =0x00000e49 - b _08138720 - .pool -_08138714: - ldr r2, =0x00000e41 - b _08138720 - .pool -_0813871C: - movs r2, 0xE5 - lsls r2, 4 -_08138720: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt - b _08138734 -_0813872A: - ldr r2, =0x00000251 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_08138734: - adds r4, 0x1 - cmp r4, 0xF - bgt _0813873C - b _08138548 -_0813873C: - adds r5, r6, 0 - cmp r5, 0x17 - bgt _08138744 - b _08138544 -_08138744: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end MauvilleGymSpecial2 - - thumb_func_start MauvilleGymSpecial3 -MauvilleGymSpecial3: @ 8138750 - push {r4-r6,lr} - ldr r4, =gUnknown_085B2B68 - movs r5, 0x3 -_08138756: - ldrb r0, [r4] - ldrb r1, [r4, 0x1] - ldr r2, =0x00000206 - bl MapGridSetMetatileIdAt - adds r4, 0x4 - subs r5, 0x1 - cmp r5, 0 - bge _08138756 - movs r5, 0xC -_0813876A: - movs r4, 0x7 - adds r6, r5, 0x1 -_0813876E: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileIdAt - ldr r1, =0xfffffde0 - adds r0, r1 - cmp r0, 0x30 - bls _08138780 - b _081388CA -_08138780: - lsls r0, 2 - ldr r1, =_0813879C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0813879C: - .4byte _08138860 - .4byte _08138866 - .4byte _08138880 - .4byte _08138888 - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _08138870 - .4byte _08138876 - .4byte _08138890 - .4byte _08138898 - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388A0 - .4byte _081388A8 - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388B0 - .4byte _081388B0 - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388CA - .4byte _081388C0 -_08138860: - movs r2, 0x8C - lsls r2, 2 - b _081388B2 -_08138866: - ldr r2, =0x00000231 - b _081388B2 - .pool -_08138870: - movs r2, 0x8E - lsls r2, 2 - b _081388B2 -_08138876: - ldr r2, =0x00000239 - b _081388B2 - .pool -_08138880: - ldr r2, =0x00000232 - b _081388B2 - .pool -_08138888: - ldr r2, =0x00000233 - b _081388B2 - .pool -_08138890: - ldr r2, =0x0000023a - b _081388B2 - .pool -_08138898: - ldr r2, =0x0000023b - b _081388B2 - .pool -_081388A0: - ldr r2, =0x00000e42 - b _081388B2 - .pool -_081388A8: - ldr r2, =0x00000e43 - b _081388B2 - .pool -_081388B0: - ldr r2, =0x0000021a -_081388B2: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt - b _081388CA - .pool -_081388C0: - ldr r2, =0x00000251 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_081388CA: - adds r4, 0x1 - cmp r4, 0xF - bgt _081388D2 - b _0813876E -_081388D2: - adds r5, r6, 0 - cmp r5, 0x17 - bgt _081388DA - b _0813876A -_081388DA: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end MauvilleGymSpecial3 - - thumb_func_start PetalburgGymSpecial1 -PetalburgGymSpecial1: @ 81388E4 - push {lr} - ldr r0, =gUnknown_0203AB5C - movs r1, 0 - strb r1, [r0] - ldr r0, =gUnknown_0203AB5D - strb r1, [r0] - movs r0, 0x2C - bl PlaySE - ldr r0, =Task_PetalburgGym - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end PetalburgGymSpecial1 - - thumb_func_start Task_PetalburgGym -Task_PetalburgGym: @ 8138910 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gUnknown_085B2B78 - ldr r5, =gUnknown_0203AB5D - ldrb r1, [r5] - adds r0, r1, r0 - ldr r4, =gUnknown_0203AB5C - ldrb r2, [r4] - ldrb r0, [r0] - cmp r0, r2 - bne _0813896C - ldr r0, =gSpecialVar_0x8004 - ldrb r0, [r0] - ldr r2, =gUnknown_085B2B7E - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - bl PetalburgGymFunc - movs r0, 0 - strb r0, [r4] - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _08138970 - adds r0, r6, 0 - bl DestroyTask - bl EnableBothScriptContexts - b _08138970 - .pool -_0813896C: - adds r0, r2, 0x1 - strb r0, [r4] -_08138970: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end Task_PetalburgGym - - thumb_func_start PetalburgGymFunc -PetalburgGymFunc: @ 8138978 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r2, r1, 16 - movs r7, 0 - subs r0, 0x1 - cmp r0, 0x7 - bhi _08138A40 - lsls r0, 2 - ldr r1, =_081389A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081389A0: - .4byte _081389C0 - .4byte _081389D2 - .4byte _081389E4 - .4byte _081389F6 - .4byte _08138A04 - .4byte _08138A1A - .4byte _08138A26 - .4byte _08138A34 -_081389C0: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x68 - b _08138A14 -_081389D2: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x4E - b _08138A14 -_081389E4: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x5B - b _08138A14 -_081389F6: - movs r7, 0x1 - mov r1, sp - movs r0, 0x7 - strh r0, [r1] - add r1, sp, 0x8 - movs r0, 0x27 - b _08138A3E -_08138A04: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x34 -_08138A14: - strh r0, [r1] - strh r0, [r1, 0x2] - b _08138A40 -_08138A1A: - movs r7, 0x1 - mov r0, sp - strh r7, [r0] - add r1, sp, 0x8 - movs r0, 0x41 - b _08138A3E -_08138A26: - movs r7, 0x1 - mov r1, sp - movs r0, 0x7 - strh r0, [r1] - add r1, sp, 0x8 - movs r0, 0xD - b _08138A3E -_08138A34: - movs r7, 0x1 - mov r0, sp - strh r7, [r0] - add r1, sp, 0x8 - movs r0, 0x1A -_08138A3E: - strh r0, [r1] -_08138A40: - movs r6, 0 - cmp r6, r7 - bcs _08138A92 - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - adds r1, r2, 0 - orrs r1, r0 - lsls r1, 16 - mov r9, r1 - adds r1, r2, 0 - adds r1, 0x8 - orrs r1, r0 - lsls r1, 16 - mov r8, r1 -_08138A5E: - lsls r1, r6, 1 - mov r3, sp - adds r5, r3, r1 - ldrh r0, [r5] - adds r0, 0x7 - add r4, sp, 0x8 - adds r4, r1 - ldrh r1, [r4] - adds r1, 0x7 - mov r3, r9 - lsrs r2, r3, 16 - bl MapGridSetMetatileIdAt - ldrh r0, [r5] - adds r0, 0x7 - ldrh r1, [r4] - adds r1, 0x8 - mov r3, r8 - lsrs r2, r3, 16 - bl MapGridSetMetatileIdAt - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r7 - bcc _08138A5E -_08138A92: - bl DrawWholeMapView - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end PetalburgGymFunc - - thumb_func_start PetalburgGymSpecial2 -PetalburgGymSpecial2: @ 8138AA4 - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrb r0, [r0] - ldr r1, =gUnknown_085B2B7E - ldrh r1, [r1, 0x8] - bl PetalburgGymFunc - pop {r0} - bx r0 - .pool - thumb_func_end PetalburgGymSpecial2 - - thumb_func_start ShowFieldMessageStringVar4 -ShowFieldMessageStringVar4: @ 8138AC0 - push {lr} - ldr r0, =gStringVar4 - bl ShowFieldMessage - pop {r0} - bx r0 - .pool - thumb_func_end ShowFieldMessageStringVar4 - - thumb_func_start StorePlayerCoordsInVars -StorePlayerCoordsInVars: @ 8138AD0 - ldr r1, =gSpecialVar_0x8004 - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldrh r0, [r2] - strh r0, [r1] - ldr r1, =gSpecialVar_0x8005 - ldrh r0, [r2, 0x2] - strh r0, [r1] - bx lr - .pool - thumb_func_end StorePlayerCoordsInVars - - thumb_func_start GetPlayerTrainerIdOnesDigit -GetPlayerTrainerIdOnesDigit: @ 8138AF0 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r1, [r0, 0xB] - lsls r1, 8 - ldrb r0, [r0, 0xA] - orrs r0, r1 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end GetPlayerTrainerIdOnesDigit - - thumb_func_start GetPlayerBigGuyGirlString -GetPlayerBigGuyGirlString: @ 8138B10 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08138B34 - ldr r0, =gStringVar1 - ldr r1, =gText_BigGuy - bl StringCopy - b _08138B3C - .pool -_08138B34: - ldr r0, =gStringVar1 - ldr r1, =gText_BigGirl - bl StringCopy -_08138B3C: - pop {r0} - bx r0 - .pool - thumb_func_end GetPlayerBigGuyGirlString - - thumb_func_start GetRivalSonDaughterString -GetRivalSonDaughterString: @ 8138B48 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08138B6C - ldr r0, =gStringVar1 - ldr r1, =gText_Daughter - bl StringCopy - b _08138B74 - .pool -_08138B6C: - ldr r0, =gStringVar1 - ldr r1, =gText_Son - bl StringCopy -_08138B74: - pop {r0} - bx r0 - .pool - thumb_func_end GetRivalSonDaughterString - - thumb_func_start sub_8138B80 -sub_8138B80: @ 8138B80 - ldr r0, =gBattleOutcome - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_8138B80 - - thumb_func_start CableCarWarp -CableCarWarp: @ 8138B8C - push {lr} - sub sp, 0x4 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - beq _08138BB0 - movs r2, 0x1 - negs r2, r2 - movs r0, 0x4 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r3, 0x6 - bl Overworld_SetWarpDestination - b _08138BC2 - .pool -_08138BB0: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x4 - str r0, [sp] - movs r0, 0x13 - movs r1, 0x1 - movs r3, 0x6 - bl Overworld_SetWarpDestination -_08138BC2: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end CableCarWarp - - thumb_func_start SetFlagInVar -SetFlagInVar: @ 8138BC8 - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - bl FlagSet - pop {r0} - bx r0 - .pool - thumb_func_end SetFlagInVar - - thumb_func_start GetWeekCount -GetWeekCount: @ 8138BDC - push {lr} - ldr r0, =gLocalTime - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x7 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - ldr r1, =0x0000270f - cmp r0, r1 - bls _08138BF6 - adds r0, r1, 0 -_08138BF6: - pop {r1} - bx r1 - .pool - thumb_func_end GetWeekCount - - thumb_func_start GetLeadMonFriendshipScore -GetLeadMonFriendshipScore: @ 8138C04 - push {r4,lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0xFF - bne _08138C2C - movs r0, 0x6 - b _08138C7E - .pool -_08138C2C: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0xC7 - bls _08138C3C - movs r0, 0x5 - b _08138C7E -_08138C3C: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x95 - bls _08138C4C - movs r0, 0x4 - b _08138C7E -_08138C4C: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x63 - bls _08138C5C - movs r0, 0x3 - b _08138C7E -_08138C5C: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x31 - bls _08138C6C - movs r0, 0x2 - b _08138C7E -_08138C6C: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0 - bne _08138C7C - movs r0, 0 - b _08138C7E -_08138C7C: - movs r0, 0x1 -_08138C7E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetLeadMonFriendshipScore - - thumb_func_start CB2_FieldShowRegionMap -CB2_FieldShowRegionMap: @ 8138C84 - push {lr} - ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl sub_817018C - pop {r0} - bx r0 - .pool - thumb_func_end CB2_FieldShowRegionMap - - thumb_func_start FieldShowRegionMap -FieldShowRegionMap: @ 8138C94 - push {lr} - ldr r0, =CB2_FieldShowRegionMap - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end FieldShowRegionMap - - thumb_func_start DoPCTurnOnEffect -DoPCTurnOnEffect: @ 8138CA4 - push {r4,lr} - ldr r4, =Task_PCTurnOnEffect - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08138CD8 - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - strh r2, [r1, 0xE] - strh r2, [r1, 0x10] -_08138CD8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end DoPCTurnOnEffect - - thumb_func_start Task_PCTurnOnEffect -Task_PCTurnOnEffect: @ 8138CE8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08138D06 - adds r0, r1, 0 - bl PCTurnOnEffect_0 -_08138D06: - pop {r0} - bx r0 - .pool - thumb_func_end Task_PCTurnOnEffect - - thumb_func_start PCTurnOnEffect_0 -PCTurnOnEffect_0: @ 8138D10 - push {r4-r6,lr} - adds r4, r0, 0 - movs r6, 0 - movs r5, 0 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bne _08138D7C - strh r5, [r4, 0xE] - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x3 - beq _08138D44 - cmp r0, 0x3 - bgt _08138D3A - cmp r0, 0x2 - beq _08138D40 - b _08138D4C -_08138D3A: - cmp r1, 0x4 - beq _08138D48 - b _08138D4C -_08138D40: - movs r6, 0 - b _08138D4A -_08138D44: - movs r6, 0xFF - b _08138D4A -_08138D48: - movs r6, 0x1 -_08138D4A: - movs r5, 0xFF -_08138D4C: - movs r1, 0x10 - ldrsh r0, [r4, r1] - lsls r1, r6, 24 - asrs r1, 24 - lsls r2, r5, 24 - asrs r2, 24 - bl PCTurnOnEffect_1 - bl DrawWholeMapView - ldrh r0, [r4, 0x10] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _08138D7C - ldrb r0, [r4, 0xA] - bl DestroyTask -_08138D7C: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end PCTurnOnEffect_0 - - thumb_func_start PCTurnOnEffect_1 -PCTurnOnEffect_1: @ 8138D88 - push {r4,r5,lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r3, 0 - lsls r0, 16 - cmp r0, 0 - beq _08138DC4 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _08138DAC - movs r3, 0x4 - b _08138DE6 - .pool -_08138DAC: - cmp r0, 0x1 - bne _08138DB8 - ldr r3, =0x0000025a - b _08138DE6 - .pool -_08138DB8: - cmp r0, 0x2 - bne _08138DE6 - ldr r3, =0x00000259 - b _08138DE6 - .pool -_08138DC4: - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _08138DD4 - movs r3, 0x5 - b _08138DE6 - .pool -_08138DD4: - cmp r0, 0x1 - bne _08138DE0 - ldr r3, =0x0000027f - b _08138DE6 - .pool -_08138DE0: - cmp r0, 0x2 - bne _08138DE6 - ldr r3, =0x0000027e -_08138DE6: - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - movs r5, 0 - ldrsh r0, [r2, r5] - lsls r1, 24 - asrs r1, 24 - adds r0, r1 - adds r0, 0x7 - movs r5, 0x2 - ldrsh r1, [r2, r5] - lsls r2, r4, 24 - asrs r2, 24 - adds r1, r2 - adds r1, 0x7 - movs r4, 0xC0 - lsls r4, 4 - adds r2, r4, 0 - orrs r3, r2 - adds r2, r3, 0 - bl MapGridSetMetatileIdAt - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end PCTurnOnEffect_1 - - thumb_func_start DoPCTurnOffEffect -DoPCTurnOffEffect: @ 8138E20 - push {lr} - bl PCTurnOffEffect - pop {r0} - bx r0 - thumb_func_end DoPCTurnOffEffect - - thumb_func_start PCTurnOffEffect -PCTurnOffEffect: @ 8138E2C - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 - movs r4, 0 - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x3 - beq _08138E56 - cmp r0, 0x3 - bgt _08138E4C - cmp r0, 0x2 - beq _08138E52 - b _08138E5E -_08138E4C: - cmp r1, 0x4 - beq _08138E5A - b _08138E5E -_08138E52: - movs r6, 0 - b _08138E5C -_08138E56: - movs r6, 0xFF - b _08138E5C -_08138E5A: - movs r6, 0x1 -_08138E5C: - movs r5, 0xFF -_08138E5E: - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _08138E70 - movs r4, 0x4 - b _08138E82 - .pool -_08138E70: - cmp r0, 0x1 - bne _08138E7C - ldr r4, =0x0000025a - b _08138E82 - .pool -_08138E7C: - cmp r0, 0x2 - bne _08138E82 - ldr r4, =0x00000259 -_08138E82: - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r6, 24 - asrs r1, 24 - adds r0, r1 - adds r0, 0x7 - movs r3, 0x2 - ldrsh r1, [r2, r3] - lsls r2, r5, 24 - asrs r2, 24 - adds r1, r2 - adds r1, 0x7 - movs r3, 0xC0 - lsls r3, 4 - adds r2, r3, 0 - orrs r4, r2 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end PCTurnOffEffect - - thumb_func_start DoLotteryCornerComputerEffect -DoLotteryCornerComputerEffect: @ 8138EC0 - push {r4,lr} - ldr r4, =Task_LotteryCornerComputerEffect - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08138EF4 - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - strh r2, [r1, 0xE] - strh r2, [r1, 0x10] -_08138EF4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end DoLotteryCornerComputerEffect - - thumb_func_start Task_LotteryCornerComputerEffect -Task_LotteryCornerComputerEffect: @ 8138F04 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08138F22 - adds r0, r1, 0 - bl LotteryCornerComputerEffect -_08138F22: - pop {r0} - bx r0 - .pool - thumb_func_end Task_LotteryCornerComputerEffect - - thumb_func_start LotteryCornerComputerEffect -LotteryCornerComputerEffect: @ 8138F2C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bne _08138F9A - movs r0, 0 - strh r0, [r4, 0xE] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08138F64 - ldr r2, =0x00000e9d - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, =0x00000ea5 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - b _08138F7A - .pool -_08138F64: - ldr r2, =0x00000e58 - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - movs r2, 0xE6 - lsls r2, 4 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt -_08138F7A: - bl DrawWholeMapView - ldrh r0, [r4, 0x10] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _08138F9A - ldrb r0, [r4, 0xA] - bl DestroyTask -_08138F9A: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end LotteryCornerComputerEffect - - thumb_func_start EndLotteryCornerComputerEffect -EndLotteryCornerComputerEffect: @ 8138FAC - push {lr} - ldr r2, =0x00000e9d - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, =0x00000ea5 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - pop {r0} - bx r0 - .pool - thumb_func_end EndLotteryCornerComputerEffect - - thumb_func_start SetTrickHouseEndRoomFlag -SetTrickHouseEndRoomFlag: @ 8138FD4 - push {lr} - ldr r1, =gSpecialVar_0x8004 - ldr r0, =0x000001f5 - strh r0, [r1] - bl FlagSet - pop {r0} - bx r0 - .pool - thumb_func_end SetTrickHouseEndRoomFlag - - thumb_func_start ResetTrickHouseEndRoomFlag -ResetTrickHouseEndRoomFlag: @ 8138FEC - push {lr} - ldr r1, =gSpecialVar_0x8004 - ldr r0, =0x000001f5 - strh r0, [r1] - bl FlagClear - pop {r0} - bx r0 - .pool - thumb_func_end ResetTrickHouseEndRoomFlag - - thumb_func_start CheckLeadMonCool -CheckLeadMonCool: @ 8139004 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x16 - bl GetMonData - cmp r0, 0xC7 - bls _08139028 - movs r0, 0x1 - b _0813902A - .pool -_08139028: - movs r0, 0 -_0813902A: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonCool - - thumb_func_start CheckLeadMonBeauty -CheckLeadMonBeauty: @ 8139030 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x17 - bl GetMonData - cmp r0, 0xC7 - bls _08139054 - movs r0, 0x1 - b _08139056 - .pool -_08139054: - movs r0, 0 -_08139056: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonBeauty - - thumb_func_start CheckLeadMonCute -CheckLeadMonCute: @ 813905C - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x18 - bl GetMonData - cmp r0, 0xC7 - bls _08139080 - movs r0, 0x1 - b _08139082 - .pool -_08139080: - movs r0, 0 -_08139082: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonCute - - thumb_func_start CheckLeadMonSmart -CheckLeadMonSmart: @ 8139088 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x21 - bl GetMonData - cmp r0, 0xC7 - bls _081390AC - movs r0, 0x1 - b _081390AE - .pool -_081390AC: - movs r0, 0 -_081390AE: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonSmart - - thumb_func_start CheckLeadMonTough -CheckLeadMonTough: @ 81390B4 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2F - bl GetMonData - cmp r0, 0xC7 - bls _081390D8 - movs r0, 0x1 - b _081390DA - .pool -_081390D8: - movs r0, 0 -_081390DA: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonTough - - thumb_func_start IsGrassTypeInParty -IsGrassTypeInParty: @ 81390E0 - push {r4-r6,lr} - movs r5, 0 - ldr r6, =gBaseStats -_081390E6: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _0813913C - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0813913C - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x6] - cmp r0, 0xC - beq _08139128 - ldrb r0, [r1, 0x7] - cmp r0, 0xC - bne _0813913C -_08139128: - ldr r1, =gSpecialVar_Result - movs r0, 0x1 - b _0813914A - .pool -_0813913C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _081390E6 - ldr r1, =gSpecialVar_Result - movs r0, 0 -_0813914A: - strh r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end IsGrassTypeInParty - - thumb_func_start SpawnScriptEventObject -SpawnScriptEventObject: @ 8139158 - push {lr} - sub sp, 0x8 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r3, [r0] - adds r3, 0x7 - lsls r3, 16 - asrs r3, 16 - ldrh r0, [r0, 0x2] - adds r0, 0x7 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - movs r0, 0x7 - movs r1, 0x8 - movs r2, 0x7F - bl SpawnSpecialEventObjectParameterized - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gEventObjects - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x1] - movs r2, 0x20 - orrs r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r1, 0x4] - bl CameraObjectSetFollowedObjectId - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end SpawnScriptEventObject - - thumb_func_start RemoveScriptEventObject -RemoveScriptEventObject: @ 81391AC - push {lr} - bl GetPlayerAvatarObjectId - lsls r0, 24 - lsrs r0, 24 - bl CameraObjectSetFollowedObjectId - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x7F - bl RemoveEventObjectByLocalIdAndMap - pop {r0} - bx r0 - .pool - thumb_func_end RemoveScriptEventObject - - thumb_func_start GetPokeblockNameByMonNature -GetPokeblockNameByMonNature: @ 81391D0 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl GetNature - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gStringVar1 - bl CopyMonFavoritePokeblockName - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end GetPokeblockNameByMonNature - - thumb_func_start GetSecretBaseNearbyMapName -GetSecretBaseNearbyMapName: @ 8139200 - push {r4,lr} - ldr r4, =gStringVar1 - ldr r0, =0x00004026 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - bl GetMapName - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end GetSecretBaseNearbyMapName - - thumb_func_start sub_8139228 -sub_8139228: @ 8139228 - push {lr} - movs r0, 0x20 - bl GetGameStat - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_8139228 - - thumb_func_start sub_8139238 -sub_8139238: @ 8139238 - push {lr} - ldr r0, =gStringVar1 - bl GetEreaderTrainerName - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139238 - - thumb_func_start sub_8139248 -sub_8139248: @ 8139248 - push {r4,r5,lr} - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r1, =0x00002e68 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 25 - ldr r0, =0x00002e6a - adds r2, r0 - lsrs r1, 25 - ldrh r2, [r2] - adds r1, r2 - ldr r2, =gUnknown_085B2B88 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - adds r0, r2 - ldrb r0, [r0] - adds r5, r1, r0 - movs r0, 0x2 - bl GetPriceReduction - lsls r0, 24 - cmp r0, 0 - bne _08139294 - ldr r4, =gUnknown_085B2B94 - b _08139296 - .pool -_08139294: - ldr r4, =gUnknown_085B2BA0 -_08139296: - adds r0, r5, 0 - movs r1, 0xC - bl __umodsi3 - adds r0, r4 - ldrb r0, [r0] - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8139248 - - thumb_func_start sub_81392AC -sub_81392AC: @ 81392AC - push {lr} - ldr r1, =gSpecialVar_0x8004 - ldr r0, =0x00000213 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081392CC - movs r0, 0x1 - b _081392CE - .pool -_081392CC: - movs r0, 0 -_081392CE: - pop {r1} - bx r1 - thumb_func_end sub_81392AC - - thumb_func_start sub_81392D4 -sub_81392D4: @ 81392D4 - push {lr} - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x85 - lsls r0, 2 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081392F0 - movs r0, 0x1 - b _081392F2 - .pool -_081392F0: - movs r0, 0 -_081392F2: - pop {r1} - bx r1 - thumb_func_end sub_81392D4 - - thumb_func_start sub_81392F8 -sub_81392F8: @ 81392F8 - push {lr} - ldr r1, =gSpecialVar_0x8004 - ldr r0, =0x00000215 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08139318 - movs r0, 0x1 - b _0813931A - .pool -_08139318: - movs r0, 0 -_0813931A: - pop {r1} - bx r1 - thumb_func_end sub_81392F8 - - thumb_func_start sub_8139320 -sub_8139320: @ 8139320 - push {lr} - ldr r1, =gSpecialVar_0x8004 - ldr r0, =0x00000216 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08139340 - movs r0, 0x1 - b _08139342 - .pool -_08139340: - movs r0, 0 -_08139342: - pop {r1} - bx r1 - thumb_func_end sub_8139320 - - thumb_func_start LeadMonHasEffortRibbon -LeadMonHasEffortRibbon: @ 8139348 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x47 - movs r2, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end LeadMonHasEffortRibbon - - thumb_func_start GiveLeadMonEffortRibbon -GiveLeadMonEffortRibbon: @ 8139370 - push {r4,lr} - sub sp, 0x4 - movs r0, 0x2A - bl IncrementGameStat - ldr r0, =0x0000089b - bl FlagSet - movs r1, 0x1 - mov r0, sp - strb r1, [r0] - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x47 - mov r2, sp - bl SetMonData - adds r0, r4, 0 - bl GetRibbonCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _081393B6 - adds r0, r4, 0 - movs r1, 0x47 - bl sub_80EE4DC -_081393B6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end GiveLeadMonEffortRibbon - - thumb_func_start Special_AreLeadMonEVsMaxedOut -Special_AreLeadMonEVsMaxedOut: @ 81393C8 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl GetMonEVCount - lsls r0, 16 - ldr r1, =0x01fd0000 - cmp r0, r1 - bhi _081393F4 - movs r0, 0 - b _081393F6 - .pool -_081393F4: - movs r0, 0x1 -_081393F6: - pop {r1} - bx r1 - thumb_func_end Special_AreLeadMonEVsMaxedOut - - thumb_func_start sub_81393FC -sub_81393FC: @ 81393FC - push {lr} - movs r0, 0xC7 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _08139454 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - movs r0, 0x83 - lsls r0, 3 - cmp r1, r0 - bne _08139454 - subs r0, 0x75 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08139434 - ldr r0, =0x0000409a - movs r1, 0x4 - b _08139446 - .pool -_08139434: - movs r0, 0xE9 - lsls r0, 2 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08139454 - ldr r0, =0x0000409a - movs r1, 0x5 -_08139446: - bl VarSet - movs r0, 0x1 - b _08139456 - .pool -_08139454: - movs r0, 0 -_08139456: - pop {r1} - bx r1 - thumb_func_end sub_81393FC - - thumb_func_start SetShoalItemFlag -SetShoalItemFlag: @ 813945C - push {lr} - ldr r0, =0x000008bf - bl FlagSet - pop {r0} - bx r0 - .pool - thumb_func_end SetShoalItemFlag - - thumb_func_start PutZigzagoonInPlayerParty -PutZigzagoonInPlayerParty: @ 813946C - push {r4,r5,lr} - sub sp, 0x14 - ldr r5, =gPlayerParty - movs r1, 0x90 - lsls r1, 1 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r2, 0x7 - movs r3, 0x20 - bl CreateMon - movs r1, 0x1 - add r0, sp, 0x10 - strh r1, [r0] - adds r0, r5, 0 - movs r1, 0x2E - add r2, sp, 0x10 - bl SetMonData - add r1, sp, 0x10 - movs r0, 0x21 - strh r0, [r1] - adds r0, r5, 0 - movs r1, 0xD - add r2, sp, 0x10 - bl SetMonData - add r0, sp, 0x10 - strh r4, [r0] - adds r0, r5, 0 - movs r1, 0xE - add r2, sp, 0x10 - bl SetMonData - adds r0, r5, 0 - movs r1, 0xF - add r2, sp, 0x10 - bl SetMonData - adds r0, r5, 0 - movs r1, 0x10 - add r2, sp, 0x10 - bl SetMonData - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end PutZigzagoonInPlayerParty - - thumb_func_start IsStarterInParty -IsStarterInParty: @ 81394D8 - push {r4-r6,lr} - ldr r0, =0x00004023 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl GetStarterPokemon - lsls r0, 16 - lsrs r6, r0, 16 - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _08139526 -_081394FA: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - cmp r0, r6 - bne _0813951C - movs r0, 0x1 - b _08139528 - .pool -_0813951C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _081394FA -_08139526: - movs r0, 0 -_08139528: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end IsStarterInParty - - thumb_func_start ScriptCheckFreePokemonStorageSpace -ScriptCheckFreePokemonStorageSpace: @ 8139530 - push {lr} - bl CheckFreePokemonStorageSpace - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end ScriptCheckFreePokemonStorageSpace - - thumb_func_start IsPokerusInParty -IsPokerusInParty: @ 8139540 - push {lr} - ldr r0, =gPlayerParty - movs r1, 0x3F - bl CheckPartyPokerus - lsls r0, 24 - cmp r0, 0 - beq _08139558 - movs r0, 0x1 - b _0813955A - .pool -_08139558: - movs r0, 0 -_0813955A: - pop {r1} - bx r1 - thumb_func_end IsPokerusInParty - - thumb_func_start sub_8139560 -sub_8139560: @ 8139560 - push {lr} - ldr r0, =sub_81395BC - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - movs r2, 0 - strh r0, [r1, 0x8] - strh r2, [r1, 0xA] - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - strh r0, [r1, 0xC] - ldr r0, =gSpecialVar_0x8007 - ldrh r0, [r0] - strh r0, [r1, 0xE] - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - strh r0, [r1, 0x10] - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0xD6 - bl PlaySE - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139560 - - thumb_func_start sub_81395BC -sub_81395BC: @ 81395BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r2, 0x6 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _08139614 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x4] - subs r0, 0x1 - strh r0, [r4, 0x4] - ldrh r0, [r4] - negs r0, r0 - strh r0, [r4] - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x8 - ldrsh r1, [r4, r2] - bl SetCameraPanning - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08139614 - adds r0, r5, 0 - bl sub_8139620 - bl InstallCameraPanAheadCallback -_08139614: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81395BC - - thumb_func_start sub_8139620 -sub_8139620: @ 8139620 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_8139620 - - thumb_func_start sub_8139634 -sub_8139634: @ 8139634 - push {lr} - movs r0, 0x95 - lsls r0, 2 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8139634 - - thumb_func_start SetRoute119Weather -SetRoute119Weather: @ 8139648 - push {lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r0, 24 - bl is_map_type_1_2_3_5_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08139664 - movs r0, 0x14 - bl SetSav1Weather -_08139664: - pop {r0} - bx r0 - thumb_func_end SetRoute119Weather - - thumb_func_start SetRoute123Weather -SetRoute123Weather: @ 8139668 - push {lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r0, 24 - bl is_map_type_1_2_3_5_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08139684 - movs r0, 0x15 - bl SetSav1Weather -_08139684: - pop {r0} - bx r0 - thumb_func_end SetRoute123Weather - - thumb_func_start GetLeadMonIndex -GetLeadMonIndex: @ 8139688 - push {r4-r6,lr} - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - cmp r5, r6 - bcs _081396D6 -_08139698: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _081396CC - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _081396CC - adds r0, r5, 0 - b _081396D8 - .pool -_081396CC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _08139698 -_081396D6: - movs r0, 0 -_081396D8: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetLeadMonIndex - - thumb_func_start ScriptGetPartyMonSpecies -ScriptGetPartyMonSpecies: @ 81396E0 - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .pool - thumb_func_end ScriptGetPartyMonSpecies - - thumb_func_start nullsub_54 -nullsub_54: @ 8139708 - bx lr - thumb_func_end nullsub_54 - - thumb_func_start sub_813970C -sub_813970C: @ 813970C - push {r4,lr} - ldr r0, =0x000040c2 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - adds r3, r0, 0 - ldr r2, =gLocalTime - movs r1, 0 - ldrsh r0, [r2, r1] - subs r0, r3 - cmp r0, 0x6 - ble _08139734 - movs r0, 0 - b _0813974C - .pool -_08139734: - ldrh r1, [r2] - movs r4, 0 - ldrsh r0, [r2, r4] - cmp r0, 0 - blt _0813974A - subs r1, r3 - movs r0, 0x7 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - b _0813974C -_0813974A: - movs r0, 0x8 -_0813974C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_813970C - - thumb_func_start sub_8139754 -sub_8139754: @ 8139754 - push {r4,lr} - ldr r0, =0x000040c2 - ldr r4, =gLocalTime - ldrh r1, [r4] - bl VarSet - ldrh r0, [r4] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8139754 - - thumb_func_start sub_8139770 -sub_8139770: @ 8139770 - push {r4-r6,lr} - ldr r6, =gSpecialVar_0x8004 - ldrh r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x3 - bl GetMonData - cmp r0, 0x2 - bne _081397A6 - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - ldr r4, =gStringVar1 - movs r1, 0x7 - adds r2, r4, 0 - bl GetMonData - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r1, r4, 0 - bl StringCompare - cmp r0, 0 - beq _081397BC -_081397A6: - movs r0, 0x1 - b _081397BE - .pool -_081397BC: - movs r0, 0 -_081397BE: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8139770 - - thumb_func_start sub_81397C4 -sub_81397C4: @ 81397C4 - push {r4,r5,lr} - ldr r2, =gSpecialVar_Result - ldrh r1, [r2] - ldr r0, =0x0000270f - cmp r1, r0 - bls _081397E0 - movs r0, 0 - bl TV_PrintIntToStringVar - b _08139862 - .pool -_081397E0: - ldr r0, =0x000003e7 - cmp r1, r0 - bls _081397F8 - ldr r4, =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - adds r4, 0x1 - b _0813981C - .pool -_081397F8: - cmp r1, 0x63 - bls _0813980C - ldr r4, =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - strb r0, [r4, 0x1] - adds r4, 0x2 - b _0813981C - .pool -_0813980C: - cmp r1, 0x9 - bls _0813983C - ldr r4, =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - adds r4, 0x3 -_0813981C: - ldrh r5, [r2] - adds r0, r5, 0 - bl CountDigits - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - b _08139862 - .pool -_0813983C: - ldr r4, =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - adds r4, 0x4 - ldrh r5, [r2] - adds r0, r5, 0 - bl CountDigits - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN -_08139862: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81397C4 - - thumb_func_start sub_813986C -sub_813986C: @ 813986C - push {lr} - ldr r0, =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x4 - bhi _081398B8 - lsls r0, 2 - ldr r1, =_08139888 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08139888: - .4byte _0813989C - .4byte _081398A0 - .4byte _081398A4 - .4byte _081398A8 - .4byte _081398AC -_0813989C: - movs r0, 0x3 - b _081398AE -_081398A0: - movs r0, 0x4 - b _081398AE -_081398A4: - movs r0, 0 - b _081398AE -_081398A8: - movs r0, 0x1 - b _081398AE -_081398AC: - movs r0, 0x2 -_081398AE: - bl mevent_081445C0 - lsls r0, 16 - lsrs r0, 16 - b _081398BA -_081398B8: - movs r0, 0 -_081398BA: - pop {r1} - bx r1 - thumb_func_end sub_813986C - - thumb_func_start sub_81398C0 -sub_81398C0: @ 81398C0 - push {r4,lr} - ldr r1, =gSpecialVar_0x8004 - ldr r2, =0xfffffedf - adds r0, r2, 0 - ldrh r2, [r1] - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x39 - bls _081398E0 - movs r0, 0 - b _081398FC - .pool -_081398E0: - ldr r4, =gStringVar2 - ldrh r0, [r1] - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0x1 -_081398FC: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81398C0 - - thumb_func_start sub_813990C -sub_813990C: @ 813990C - push {r4,r5,lr} - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _08139942 -_0813991C: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x4 - bl GetMonData - cmp r0, 0x1 - bne _08139938 - movs r0, 0x1 - b _08139944 - .pool -_08139938: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _0813991C -_08139942: - movs r0, 0 -_08139944: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_813990C - - thumb_func_start InMultiBattleRoom -InMultiBattleRoom: @ 813994C - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldr r0, =0x00000f1a - cmp r1, r0 - bne _08139978 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _08139978 - movs r0, 0x1 - b _0813997A - .pool -_08139978: - movs r0, 0 -_0813997A: - pop {r1} - bx r1 - thumb_func_end InMultiBattleRoom - - thumb_func_start sub_8139980 -sub_8139980: @ 8139980 - push {lr} - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0x8 - movs r1, 0 - bl SetCameraPanning - pop {r0} - bx r0 - thumb_func_end sub_8139980 - - thumb_func_start sub_8139994 -sub_8139994: @ 8139994 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x15] - subs r0, 0x10 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x5 - bhi _081399E4 - lsls r0, 2 - ldr r1, =_081399B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081399B8: - .4byte _081399E4 - .4byte _081399D0 - .4byte _081399D4 - .4byte _081399D8 - .4byte _081399DC - .4byte _081399E0 -_081399D0: - movs r1, 0x5 - b _081399E6 -_081399D4: - movs r1, 0x6 - b _081399E6 -_081399D8: - movs r1, 0x7 - b _081399E6 -_081399DC: - movs r1, 0x8 - b _081399E6 -_081399E0: - movs r1, 0xF - b _081399E6 -_081399E4: - movs r1, 0x4 -_081399E6: - ldr r0, =0x00004043 - bl VarSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139994 - thumb_func_start sub_81399F4 sub_81399F4: @ 81399F4 push {r4,lr} diff --git a/asm/pokenav.s b/asm/pokenav.s index dd2dbf4e0a..c9fe787e0c 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -1585,7 +1585,7 @@ sub_81C7E58: @ 81C7E58 adds r0, r4, 0 movs r2, 0x20 bl LoadPalette - ldr r4, =0x0201c000 + ldr r4, =gDecompressionBuffer mov r0, r8 adds r1, r4, 0 bl LZ77UnCompWram @@ -1667,7 +1667,7 @@ sub_81C7F24: @ 81C7F24 adds r0, r4, 0 movs r2, 0x20 bl LoadPalette - ldr r4, =0x0201d000 + ldr r4, =gDecompressionBuffer+0x1000 adds r0, r6, 0 adds r1, r4, 0 bl LZ77UnCompWram @@ -27036,7 +27036,7 @@ _081D4E1C: thumb_func_start sub_81D4E30 sub_81D4E30: @ 81D4E30 push {lr} - ldr r0, =0x0201c000 + ldr r0, =gDecompressionBuffer movs r2, 0x80 lsls r2, 6 movs r1, 0 @@ -27657,7 +27657,7 @@ _081D5386: strb r0, [r4, 0x8] b _081D548A _081D5390: - ldr r0, =0x0201c000 + ldr r0, =gDecompressionBuffer bl sub_81D3920 strb r0, [r4, 0xE] ldrb r0, [r4, 0xE] @@ -27683,7 +27683,7 @@ _081D53C0: strb r0, [r4, 0x8] b _081D548A _081D53C6: - ldr r0, =0x0201c000 + ldr r0, =gDecompressionBuffer bl sub_81D3AB0 cmp r0, 0 beq _081D53EC diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s index fd2cccca31..61324b2078 100644 --- a/asm/rom_8011DC0.s +++ b/asm/rom_8011DC0.s @@ -15650,7 +15650,7 @@ _0801D7D0: b _0801D804 .pool _0801D7F0: - ldr r0, =0x0201c000 + ldr r0, =gDecompressionBuffer ldr r1, [r4, 0x18] movs r2, 0x80 lsls r2, 3 @@ -15723,7 +15723,7 @@ _0801D858: sub_801D860: @ 801D860 push {r4,lr} adds r4, r0, 0 - ldr r3, =0x0201c000 + ldr r3, =gDecompressionBuffer adds r0, r4, 0x4 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] @@ -25386,7 +25386,7 @@ sub_80226D0: @ 80226D0 adds r6, r0, 0 movs r5, 0 ldr r0, =gUnknown_08DE3FD4 - ldr r4, =0x0201c000 + ldr r4, =gDecompressionBuffer adds r1, r4, 0 bl LZ77UnCompWram b _0802271A diff --git a/asm/roulette.s b/asm/roulette.s index d3dd5fd9e5..b0098daf62 100644 --- a/asm/roulette.s +++ b/asm/roulette.s @@ -4948,7 +4948,7 @@ sub_8142CD0: @ 8142CD0 sub sp, 0x8 ldr r4, =gUnknown_085B7488 ldr r0, [r4] - ldr r5, =0x0201c000 + ldr r5, =gDecompressionBuffer adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] @@ -5575,7 +5575,7 @@ sub_81431E4: @ 81431E4 sub sp, 0xC ldr r4, =gUnknown_085B741C ldr r0, [r4] - ldr r5, =0x0201c000 + ldr r5, =gDecompressionBuffer adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp, 0x4] @@ -5720,7 +5720,7 @@ sub_8143314: @ 8143314 push {r7} sub sp, 0x8 movs r5, 0 - ldr r7, =0x0201c000 + ldr r7, =gDecompressionBuffer mov r6, sp _08143322: ldr r0, =gUnknown_085B7750 @@ -6448,7 +6448,7 @@ sub_814391C: @ 814391C sub sp, 0x8 ldr r4, =gUnknown_085B7948 ldr r0, [r4] - ldr r5, =0x0201c000 + ldr r5, =gDecompressionBuffer adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] diff --git a/asm/trade.s b/asm/trade.s index 911b56aece..763b1a9ec3 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -7612,7 +7612,7 @@ sub_807B170: @ 807B170 bl copy_decompressed_tile_data_to_vram_autofree ldr r0, =gBattleTextboxTilemap mov r8, r0 - ldr r4, =0x0201c000 + ldr r4, =gDecompressionBuffer adds r1, r4, 0 bl LZDecompressWram movs r0, 0 diff --git a/data/event_scripts.s b/data/event_scripts.s index 0336c0c97c..90229a4a1b 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -2356,8 +2356,8 @@ RusturfTunnel_EventScript_272216:: @ 8272216 removeobject 10 clearflag FLAG_0x328 clearflag FLAG_0x3D8 - setvar VAR_0x409A, 6 - setflag FLAG_0x0C7 + setvar VAR_RUSTURF_TUNNEL_STATE, 6 + setflag FLAG_RUSTURF_TUNNEL_OPENED return EventScript_27222B:: @ 827222B @@ -2517,7 +2517,7 @@ Route119_EventScript_272365:: @ 8272365 setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq Route119_EventScript_2723C1 compare VAR_RESULT, 4 diff --git a/data/field_specials.s b/data/field_specials.s index 8f9734a013..030a279ef4 100644 --- a/data/field_specials.s +++ b/data/field_specials.s @@ -3,33 +3,6 @@ .section .rodata - .align 2 -gUnknown_085B2B5C:: @ 85B2B5C - .byte 0x07, 0x09, 0x08, 0x0a - - .align 2 -gUnknown_085B2B60:: @ 85B2B60 - .byte 0x00, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00 - -gUnknown_085B2B68:: @ 85B2B68 - .byte 0x07, 0x16, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0a, 0x10, 0x00, 0x00, 0x0f, 0x10, 0x00, 0x00 - -gUnknown_085B2B78:: @ 85B2B78 - .byte 0x00, 0x01, 0x01, 0x01, 0x01, 0x00 - - .align 1 -gUnknown_085B2B7E:: @ 85B2B7E - .2byte 0x0218, 0x0219, 0x021a, 0x021b, 0x021c - -gUnknown_085B2B88:: @ 85B2B88 - .byte 0x0c, 0x02, 0x04, 0x05, 0x01, 0x08, 0x07, 0x0b, 0x03, 0x0a, 0x09, 0x06 - -gUnknown_085B2B94:: @ 85B2B94 - .byte 0x00, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x04, 0x04, 0x05 - -gUnknown_085B2BA0:: @ 85B2BA0 - .byte 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05 - .align 2 gUnknown_085B2BAC:: @ 85B2BAC .byte 0x00, 0x15, 0x01, 0x08, 0x04, 0x0f, 0x08, 0x00 diff --git a/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc b/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc index 701b79fbf4..628c9cecee 100644 --- a/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc +++ b/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc @@ -43,7 +43,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_238CE3:: @ 8238CE3 setfieldeffectargument 1, 10 setfieldeffectargument 2, 0 dofieldeffect 54 - specialvar VAR_RESULT, sub_81392F8 + specialvar VAR_RESULT, FoundAbandonedShipRoom4Key compare VAR_RESULT, 0 call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_238DD3 waitfieldeffect 54 @@ -54,7 +54,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_238D0C:: @ 8238D0C end AbandonedShip_HiddenFloorRooms_EventScript_238D0D:: @ 8238D0D - specialvar VAR_RESULT, sub_81392AC + specialvar VAR_RESULT, FoundAbandonedShipRoom1Key compare VAR_RESULT, 1 goto_eq AbandonedShip_HiddenFloorRooms_EventScript_238D32 delay 20 @@ -77,7 +77,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_238D33:: @ 8238D33 setfieldeffectargument 1, 3 setfieldeffectargument 2, 0 dofieldeffect 54 - specialvar VAR_RESULT, sub_8139320 + specialvar VAR_RESULT, FoundAbandonedShipRoom6Key compare VAR_RESULT, 0 call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_238DE3 waitfieldeffect 54 @@ -98,7 +98,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_238D6B:: @ 8238D6B setfieldeffectargument 1, 6 setfieldeffectargument 2, 0 dofieldeffect 54 - specialvar VAR_RESULT, sub_81392D4 + specialvar VAR_RESULT, FoundAbandonedShipRoom2Key compare VAR_RESULT, 0 call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_238DC3 waitfieldeffect 54 diff --git a/data/maps/AncientTomb/scripts.inc b/data/maps/AncientTomb/scripts.inc index 3cd0b9effa..9dbacfe8e6 100644 --- a/data/maps/AncientTomb/scripts.inc +++ b/data/maps/AncientTomb/scripts.inc @@ -10,7 +10,7 @@ AncientTomb_MapScript1_238FC3: @ 8238FC3 end AncientTomb_EventScript_238FCD:: @ 8238FCD - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, AncientTomb_EventScript_27374E removeobject VAR_LAST_TALKED @@ -75,7 +75,7 @@ AncientTomb_EventScript_23905A:: @ 823905A special StartRegiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq AncientTomb_EventScript_2390A1 compare VAR_RESULT, 4 diff --git a/data/maps/AquaHideout_B1F/scripts.inc b/data/maps/AquaHideout_B1F/scripts.inc index cf59bdacc5..12c25faacf 100644 --- a/data/maps/AquaHideout_B1F/scripts.inc +++ b/data/maps/AquaHideout_B1F/scripts.inc @@ -9,7 +9,7 @@ AquaHideout_B1F_MapScript1_2339B2: @ 82339B2 end AquaHideout_B1F_EventScript_2339BC:: @ 82339BC - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, AquaHideout_B1F_EventScript_27374E removeobject VAR_LAST_TALKED @@ -41,7 +41,7 @@ AquaHideout_B1F_EventScript_2339EB:: @ 82339EB setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq AquaHideout_B1F_EventScript_233A2F compare VAR_RESULT, 4 @@ -68,7 +68,7 @@ AquaHideout_B1F_EventScript_233A38:: @ 8233A38 setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq AquaHideout_B1F_EventScript_233A7C compare VAR_RESULT, 4 diff --git a/data/maps/BattleFrontier_OutsideEast/scripts.inc b/data/maps/BattleFrontier_OutsideEast/scripts.inc index dff56322a3..0a3723acc9 100644 --- a/data/maps/BattleFrontier_OutsideEast/scripts.inc +++ b/data/maps/BattleFrontier_OutsideEast/scripts.inc @@ -9,7 +9,7 @@ BattleFrontier_OutsideEast_MapScript1_242C0F: @ 8242C0F end BattleFrontier_OutsideEast_EventScript_242C19:: @ 8242C19 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, BattleFrontier_OutsideEast_EventScript_27374E removeobject VAR_LAST_TALKED @@ -134,7 +134,7 @@ BattleFrontier_OutsideEast_EventScript_242CFC:: @ 8242CFC setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq BattleFrontier_OutsideEast_EventScript_242D60 compare VAR_RESULT, 4 diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc index b2427e95da..787230c603 100644 --- a/data/maps/BirthIsland_Exterior/scripts.inc +++ b/data/maps/BirthIsland_Exterior/scripts.inc @@ -37,7 +37,7 @@ BirthIsland_Exterior_MapScript1_267F65: @ 8267F65 end BirthIsland_Exterior_EventScript_267F6F:: @ 8267F6F - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, BirthIsland_Exterior_EventScript_27374E removeobject 2 @@ -91,7 +91,7 @@ BirthIsland_Exterior_EventScript_267FC1:: @ 8267FC1 special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq BirthIsland_Exterior_EventScript_26803B compare VAR_RESULT, 4 diff --git a/data/maps/DesertRuins/scripts.inc b/data/maps/DesertRuins/scripts.inc index 9137902f2c..45d192c806 100644 --- a/data/maps/DesertRuins/scripts.inc +++ b/data/maps/DesertRuins/scripts.inc @@ -10,7 +10,7 @@ DesertRuins_MapScript1_22D96B: @ 822D96B end DesertRuins_EventScript_22D975:: @ 822D975 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, DesertRuins_EventScript_27374E removeobject VAR_LAST_TALKED @@ -75,7 +75,7 @@ DesertRuins_EventScript_22DA02:: @ 822DA02 special StartRegiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq DesertRuins_EventScript_22DA49 compare VAR_RESULT, 4 diff --git a/data/maps/FarawayIsland_Interior/scripts.inc b/data/maps/FarawayIsland_Interior/scripts.inc index e7d67431d5..70e41b42d6 100644 --- a/data/maps/FarawayIsland_Interior/scripts.inc +++ b/data/maps/FarawayIsland_Interior/scripts.inc @@ -11,7 +11,7 @@ FarawayIsland_Interior_MapScript1_267D0F: @ 8267D0F end FarawayIsland_Interior_EventScript_267D19:: @ 8267D19 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq FarawayIsland_Interior_EventScript_267D4B compare VAR_RESULT, 4 @@ -33,7 +33,7 @@ FarawayIsland_Interior_MapScript1_267D54: @ 8267D54 end FarawayIsland_Interior_EventScript_267D5E:: @ 8267D5E - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, FarawayIsland_Interior_EventScript_27374E removeobject VAR_LAST_TALKED @@ -148,7 +148,7 @@ FarawayIsland_Interior_EventScript_267DF2:: @ 8267DF2 special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq FarawayIsland_Interior_EventScript_267E96 compare VAR_RESULT, 4 diff --git a/data/maps/IslandCave/scripts.inc b/data/maps/IslandCave/scripts.inc index a96d139023..b00b41d401 100644 --- a/data/maps/IslandCave/scripts.inc +++ b/data/maps/IslandCave/scripts.inc @@ -10,7 +10,7 @@ IslandCave_MapScript1_238E3A: @ 8238E3A end IslandCave_EventScript_238E44:: @ 8238E44 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, IslandCave_EventScript_27374E removeobject VAR_LAST_TALKED @@ -107,7 +107,7 @@ IslandCave_EventScript_238F58:: @ 8238F58 special StartRegiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq IslandCave_EventScript_238F9F compare VAR_RESULT, 4 diff --git a/data/maps/LilycoveCity/scripts.inc b/data/maps/LilycoveCity/scripts.inc index 87a1296200..70018b229b 100644 --- a/data/maps/LilycoveCity/scripts.inc +++ b/data/maps/LilycoveCity/scripts.inc @@ -255,7 +255,7 @@ LilycoveCity_EventScript_1E2DF8:: @ 81E2DF8 compare VAR_RESULT, 0 goto_eq LilycoveCity_EventScript_1E2E5A msgbox LilycoveCity_Text_1E3234, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, LilycoveCity_EventScript_1E2EDE case 1, LilycoveCity_EventScript_1E2EEE case 2, LilycoveCity_EventScript_1E2EFE @@ -286,7 +286,7 @@ LilycoveCity_EventScript_1E2E6B:: @ 81E2E6B compare VAR_RESULT, 0 goto_eq LilycoveCity_EventScript_1E2ECD msgbox LilycoveCity_Text_1E373C, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, LilycoveCity_EventScript_1E2F0E case 1, LilycoveCity_EventScript_1E2F1E case 2, LilycoveCity_EventScript_1E2F2E diff --git a/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc index 2347519104..cc1b51ea40 100644 --- a/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc @@ -124,6 +124,6 @@ LilycoveCity_DepartmentStoreElevator_EventScript_2207E5:: @ 82207E5 return LilycoveCity_DepartmentStoreElevator_EventScript_2207FC:: @ 82207FC - special sub_8139994 + special SetDepartmentStoreFloorVar return diff --git a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc index 8de2d5d6f6..4a375cf5ec 100644 --- a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc @@ -21,7 +21,7 @@ LilycoveCity_DepartmentStore_1F_EventScript_21F69C:: @ 821F69C waitmessage special RetrieveLotteryNumber copyvar VAR_0x8008, VAR_RESULT - special sub_81397C4 + special BufferLottoTicketNumber msgbox LilycoveCity_DepartmentStore_1F_Text_2A650B, 4 applymovement 2, LilycoveCity_DepartmentStore_1F_Movement_2725A8 waitmovement 0 diff --git a/data/maps/LilycoveCity_Harbor/scripts.inc b/data/maps/LilycoveCity_Harbor/scripts.inc index 1dfd9c29aa..99ad202800 100644 --- a/data/maps/LilycoveCity_Harbor/scripts.inc +++ b/data/maps/LilycoveCity_Harbor/scripts.inc @@ -89,7 +89,7 @@ LilycoveCity_Harbor_EventScript_21E149:: @ 821E149 msgbox LilycoveCity_Harbor_Text_21E864, 5 compare VAR_RESULT, 0 goto_eq LilycoveCity_Harbor_EventScript_21E5C0 - setvar VAR_PORTHOLE, 5 + setvar VAR_PORTHOLE_STATE, 5 call LilycoveCity_Harbor_EventScript_21E5CC warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10 waitstate @@ -398,7 +398,7 @@ LilycoveCity_Harbor_EventScript_21E575:: @ 821E575 msgbox LilycoveCity_Harbor_Text_21E864, 5 compare VAR_RESULT, 0 goto_eq LilycoveCity_Harbor_EventScript_21E5C0 - setvar VAR_PORTHOLE, 5 + setvar VAR_PORTHOLE_STATE, 5 call LilycoveCity_Harbor_EventScript_21E5CC warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10 waitstate diff --git a/data/maps/MarineCave_End/scripts.inc b/data/maps/MarineCave_End/scripts.inc index 9c821e14fb..d6b4bbd8d8 100644 --- a/data/maps/MarineCave_End/scripts.inc +++ b/data/maps/MarineCave_End/scripts.inc @@ -9,7 +9,7 @@ MarineCave_End_MapScript1_23AFEA: @ 823AFEA end MarineCave_End_EventScript_23AFF4:: @ 823AFF4 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, MarineCave_End_EventScript_27374E removeobject 1 @@ -42,7 +42,7 @@ MarineCave_End_EventScript_23B01B:: @ 823B01B waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE setvar VAR_TEMP_1, 0 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq MarineCave_End_EventScript_23B084 compare VAR_RESULT, 4 diff --git a/data/maps/MauvilleCity_GameCorner/scripts.inc b/data/maps/MauvilleCity_GameCorner/scripts.inc index 400a24c249..733581b740 100644 --- a/data/maps/MauvilleCity_GameCorner/scripts.inc +++ b/data/maps/MauvilleCity_GameCorner/scripts.inc @@ -409,7 +409,7 @@ MauvilleCity_GameCorner_EventScript_210137:: @ 8210137 msgbox MauvilleCity_GameCorner_Text_210750, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210209 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, MauvilleCity_GameCorner_EventScript_21017C case 1, MauvilleCity_GameCorner_EventScript_2101A6 case 2, MauvilleCity_GameCorner_EventScript_2101D0 @@ -540,7 +540,7 @@ MauvilleCity_GameCorner_EventScript_2102D6:: @ 82102D6 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 0 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -551,7 +551,7 @@ MauvilleCity_GameCorner_EventScript_2102F6:: @ 82102F6 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 1 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -562,7 +562,7 @@ MauvilleCity_GameCorner_EventScript_210316:: @ 8210316 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 2 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -573,7 +573,7 @@ MauvilleCity_GameCorner_EventScript_210336:: @ 8210336 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 3 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -584,7 +584,7 @@ MauvilleCity_GameCorner_EventScript_210356:: @ 8210356 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 4 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -595,7 +595,7 @@ MauvilleCity_GameCorner_EventScript_210376:: @ 8210376 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 5 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -606,7 +606,7 @@ MauvilleCity_GameCorner_EventScript_210396:: @ 8210396 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 6 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -617,7 +617,7 @@ MauvilleCity_GameCorner_EventScript_2103B6:: @ 82103B6 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 7 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -628,7 +628,7 @@ MauvilleCity_GameCorner_EventScript_2103D6:: @ 82103D6 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 8 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -639,7 +639,7 @@ MauvilleCity_GameCorner_EventScript_2103F6:: @ 82103F6 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 9 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -650,7 +650,7 @@ MauvilleCity_GameCorner_EventScript_210416:: @ 8210416 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 10 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end @@ -661,7 +661,7 @@ MauvilleCity_GameCorner_EventScript_210436:: @ 8210436 compare VAR_RESULT, 0 goto_eq MauvilleCity_GameCorner_EventScript_210456 setvar VAR_0x8004, 11 - specialvar VAR_RESULT, sub_8139248 + specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT releaseall end diff --git a/data/maps/NavelRock_Bottom/scripts.inc b/data/maps/NavelRock_Bottom/scripts.inc index cce93e6242..febe106bf9 100644 --- a/data/maps/NavelRock_Bottom/scripts.inc +++ b/data/maps/NavelRock_Bottom/scripts.inc @@ -26,7 +26,7 @@ NavelRock_Bottom_MapScript1_269284: @ 8269284 end NavelRock_Bottom_EventScript_26928E:: @ 826928E - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, NavelRock_Bottom_EventScript_27374E removeobject 1 @@ -64,7 +64,7 @@ NavelRock_Bottom_EventScript_2692A2:: @ 82692A2 special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq NavelRock_Bottom_EventScript_269336 compare VAR_RESULT, 4 diff --git a/data/maps/NavelRock_Top/scripts.inc b/data/maps/NavelRock_Top/scripts.inc index 67ddbc373e..4310529dd8 100644 --- a/data/maps/NavelRock_Top/scripts.inc +++ b/data/maps/NavelRock_Top/scripts.inc @@ -29,7 +29,7 @@ NavelRock_Top_MapScript1_269151: @ 8269151 end NavelRock_Top_EventScript_26915B:: @ 826915B - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, NavelRock_Top_EventScript_27374E removeobject 1 @@ -69,7 +69,7 @@ NavelRock_Top_EventScript_26916F:: @ 826916F waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE setvar VAR_LAST_TALKED, 1 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq NavelRock_Top_EventScript_269217 compare VAR_RESULT, 4 diff --git a/data/maps/NewMauville_Inside/scripts.inc b/data/maps/NewMauville_Inside/scripts.inc index 81b21287d2..e6d80c33d8 100644 --- a/data/maps/NewMauville_Inside/scripts.inc +++ b/data/maps/NewMauville_Inside/scripts.inc @@ -14,7 +14,7 @@ NewMauville_Inside_MapScript1_2373E7: @ 82373E7 end NewMauville_Inside_EventScript_237407:: @ 8237407 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, NewMauville_Inside_EventScript_27374E removeobject VAR_LAST_TALKED @@ -193,7 +193,7 @@ NewMauville_Inside_EventScript_2377AF:: @ 82377AF setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq NewMauville_Inside_EventScript_2377F3 compare VAR_RESULT, 4 @@ -220,7 +220,7 @@ NewMauville_Inside_EventScript_2377FC:: @ 82377FC setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq NewMauville_Inside_EventScript_237840 compare VAR_RESULT, 4 @@ -247,7 +247,7 @@ NewMauville_Inside_EventScript_237849:: @ 8237849 setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq NewMauville_Inside_EventScript_23788D compare VAR_RESULT, 4 diff --git a/data/maps/PacifidlogTown_House2/scripts.inc b/data/maps/PacifidlogTown_House2/scripts.inc index 0e87677e62..21345242d8 100644 --- a/data/maps/PacifidlogTown_House2/scripts.inc +++ b/data/maps/PacifidlogTown_House2/scripts.inc @@ -25,7 +25,7 @@ PacifidlogTown_House2_EventScript_203792:: @ 8203792 PacifidlogTown_House2_EventScript_2037DE:: @ 82037DE checkflag FLAG_0x12B goto_if 0, PacifidlogTown_House2_EventScript_27374E - specialvar VAR_RESULT, sub_813970C + specialvar VAR_RESULT, GetDaysUntilPacifidlogTMAvailable compare VAR_RESULT, 0 call_if 1, PacifidlogTown_House2_EventScript_203812 return @@ -49,7 +49,7 @@ PacifidlogTown_House2_EventScript_203816:: @ 8203816 compare VAR_RESULT, 0 goto_eq PacifidlogTown_House2_EventScript_272054 setflag FLAG_0x12B - special sub_8139754 + special SetPacifidlogTMReceivedDay msgbox PacifidlogTown_House2_Text_203A85, 4 release end @@ -65,13 +65,13 @@ PacifidlogTown_House2_EventScript_20384F:: @ 820384F compare VAR_RESULT, 0 goto_eq PacifidlogTown_House2_EventScript_272054 setflag FLAG_0x12B - special sub_8139754 + special SetPacifidlogTMReceivedDay msgbox PacifidlogTown_House2_Text_203A85, 4 release end PacifidlogTown_House2_EventScript_20387E:: @ 820387E - specialvar VAR_RESULT, sub_813970C + specialvar VAR_RESULT, GetDaysUntilPacifidlogTMAvailable buffernumberstring 0, VAR_RESULT msgbox PacifidlogTown_House2_Text_203AF4, 4 release diff --git a/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc b/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc index f4a31854e8..fabc1f5a44 100644 --- a/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc @@ -35,11 +35,11 @@ PetalburgCity_PokemonCenter_1F_EventScript_207A1C:: @ 8207A1C end PetalburgCity_PokemonCenter_1F_EventScript_207A38:: @ 8207A38 - compare VAR_FIRST_POKE, 0 + compare VAR_STARTER_MON, 0 call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_207A5B - compare VAR_FIRST_POKE, 1 + compare VAR_STARTER_MON, 1 call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_207A64 - compare VAR_FIRST_POKE, 2 + compare VAR_STARTER_MON, 2 call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_207A6D release end diff --git a/data/maps/Route103/scripts.inc b/data/maps/Route103/scripts.inc index 14e119cd64..6674662f70 100644 --- a/data/maps/Route103/scripts.inc +++ b/data/maps/Route103/scripts.inc @@ -38,7 +38,7 @@ Route103_EventScript_1EC3DA:: @ 81EC3DA applymovement 2, Route103_Movement_27259A waitmovement 0 msgbox Route103_Text_1EC7DE, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route103_EventScript_1EC48E case 1, Route103_EventScript_1EC49E case 2, Route103_EventScript_1EC4AE @@ -55,7 +55,7 @@ Route103_EventScript_1EC434:: @ 81EC434 applymovement 2, Route103_Movement_27259A waitmovement 0 msgbox Route103_Text_1EC9CE, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route103_EventScript_1EC4BE case 1, Route103_EventScript_1EC4CE case 2, Route103_EventScript_1EC4DE diff --git a/data/maps/Route104/scripts.inc b/data/maps/Route104/scripts.inc index 4755494b6b..9b45844f0b 100644 --- a/data/maps/Route104/scripts.inc +++ b/data/maps/Route104/scripts.inc @@ -153,7 +153,7 @@ Route104_EventScript_1ECDD0:: @ 81ECDD0 Route104_EventScript_1ECDED:: @ 81ECDED msgbox Route104_Text_1EDDDB, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route104_EventScript_1ECE36 case 1, Route104_EventScript_1ECE49 case 2, Route104_EventScript_1ECE5C @@ -230,7 +230,7 @@ Route104_EventScript_1ECEEC:: @ 81ECEEC Route104_EventScript_1ECF09:: @ 81ECF09 msgbox Route104_Text_1EE0C7, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route104_EventScript_1ECF4D case 1, Route104_EventScript_1ECF60 case 2, Route104_EventScript_1ECF73 diff --git a/data/maps/Route110/events.inc b/data/maps/Route110/events.inc index 6e6d17d9a8..f4875cc6c4 100644 --- a/data/maps/Route110/events.inc +++ b/data/maps/Route110/events.inc @@ -45,8 +45,8 @@ Route110_MapWarps: @ 8529050 warp_def 19, 88, 0, 2, MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE Route110_MapCoordEvents: @ 8529080 - coord_event 28, 92, 3, VAR_0x40A9, 2, Route110_EventScript_1EF661 - coord_event 29, 92, 3, VAR_0x40A9, 2, Route110_EventScript_1EF661 + coord_event 28, 92, 3, VAR_CYCLING_CHALLENGE_STATE, 2, Route110_EventScript_1EF661 + coord_event 29, 92, 3, VAR_CYCLING_CHALLENGE_STATE, 2, Route110_EventScript_1EF661 coord_event 33, 56, 3, VAR_0x4069, 0, Route110_EventScript_1EF74D coord_event 34, 56, 3, VAR_0x4069, 0, Route110_EventScript_1EF758 coord_event 35, 56, 3, VAR_0x4069, 0, Route110_EventScript_1EF763 diff --git a/data/maps/Route110/scripts.inc b/data/maps/Route110/scripts.inc index 84d50b4540..fe07de8dc0 100644 --- a/data/maps/Route110/scripts.inc +++ b/data/maps/Route110/scripts.inc @@ -11,7 +11,7 @@ Route110_MapScript1_1EF279: @ 81EF279 Route110_MapScript1_1EF27D: @ 81EF27D call Route110_EventScript_271ED7 call Route110_EventScript_271EFB - compare VAR_0x40A9, 1 + compare VAR_CYCLING_CHALLENGE_STATE, 1 call_if 1, Route110_EventScript_1EF293 end @@ -20,12 +20,12 @@ Route110_EventScript_1EF293:: @ 81EF293 return Route110_MapScript2_1EF297: @ 81EF297 - map_script_2 VAR_0x40A9, 1, Route110_EventScript_1EF2A1 + map_script_2 VAR_CYCLING_CHALLENGE_STATE, 1, Route110_EventScript_1EF2A1 .2byte 0 Route110_EventScript_1EF2A1:: @ 81EF2A1 special Special_BeginCyclingRoadChallenge - setvar VAR_0x40A9, 2 + setvar VAR_CYCLING_CHALLENGE_STATE, 2 return Route110_EventScript_1EF2AA:: @ 81EF2AA @@ -148,7 +148,7 @@ Route110_EventScript_1EF3B7:: @ 81EF3B7 specialvar VAR_RESULT, GetPlayerAvatarBike compare VAR_RESULT, 1 goto_eq Route110_EventScript_1EF3E8 - compare VAR_0x40A9, 0 + compare VAR_CYCLING_CHALLENGE_STATE, 0 goto_eq Route110_EventScript_1EF3DE msgbox Route110_Text_1F06FB, 4 release @@ -368,7 +368,7 @@ Route110_EventScript_1EF735:: @ 81EF735 end Route110_EventScript_1EF743:: @ 81EF743 - setvar VAR_0x40A9, 3 + setvar VAR_CYCLING_CHALLENGE_STATE, 3 savebgm MUS_DUMMY fadedefaultbgm return @@ -426,7 +426,7 @@ Route110_EventScript_1EF7E6:: @ 81EF7E6 Route110_EventScript_1EF7EB:: @ 81EF7EB msgbox Route110_Text_1EFC48, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route110_EventScript_1EF81A case 1, Route110_EventScript_1EF82A case 2, Route110_EventScript_1EF83A @@ -456,7 +456,7 @@ Route110_EventScript_1EF84A:: @ 81EF84A Route110_EventScript_1EF865:: @ 81EF865 msgbox Route110_Text_1EFE3F, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route110_EventScript_1EF894 case 1, Route110_EventScript_1EF8A4 case 2, Route110_EventScript_1EF8B4 diff --git a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc index 9f99cf44f3..b38bbf896f 100644 --- a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc +++ b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc @@ -3,14 +3,14 @@ Route110_SeasideCyclingRoadSouthEntrance_MapScripts:: @ 826EBA1 .byte 0 Route110_SeasideCyclingRoadSouthEntrance_MapScript1_26EBA7: @ 826EBA7 - compare VAR_0x40A9, 3 + compare VAR_CYCLING_CHALLENGE_STATE, 3 call_if 1, Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBBE - compare VAR_0x40A9, 2 + compare VAR_CYCLING_CHALLENGE_STATE, 2 call_if 1, Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBBE end Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBBE:: @ 826EBBE - setvar VAR_0x40A9, 1 + setvar VAR_CYCLING_CHALLENGE_STATE, 1 return Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBC4:: @ 826EBC4 @@ -33,7 +33,7 @@ Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBD0:: @ 826EBD0 end Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBF6:: @ 826EBF6 - setvar VAR_0x40A9, 1 + setvar VAR_CYCLING_CHALLENGE_STATE, 1 return Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBFC:: @ 826EBFC @@ -50,7 +50,7 @@ Route110_SeasideCyclingRoadSouthEntrance_Movement_26EC11: @ 826EC11 Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EC13:: @ 826EC13 lockall - setvar VAR_0x40A9, 0 + setvar VAR_CYCLING_CHALLENGE_STATE, 0 clearflag FLAG_SYS_CYCLING_ROAD setvar VAR_TEMP_1, 0 releaseall diff --git a/data/maps/Route116/scripts.inc b/data/maps/Route116/scripts.inc index 854411ac1f..769d254a5e 100644 --- a/data/maps/Route116/scripts.inc +++ b/data/maps/Route116/scripts.inc @@ -169,7 +169,7 @@ Route116_EventScript_1F2DB6:: @ 81F2DB6 checkitem ITEM_BLACK_GLASSES, 1 compare VAR_RESULT, 1 goto_eq Route116_EventScript_1F2DF1 - specialvar VAR_RESULT, sub_8139634 + specialvar VAR_RESULT, FoundBlackGlasses compare VAR_RESULT, 1 goto_eq Route116_EventScript_1F2DE2 msgbox Route116_Text_1F3657, 4 @@ -185,7 +185,7 @@ Route116_EventScript_1F2DE2:: @ 81F2DE2 Route116_EventScript_1F2DF1:: @ 81F2DF1 msgbox Route116_Text_1F3657, 4 msgbox Route116_Text_1F3688, 4 - specialvar VAR_RESULT, sub_8139634 + specialvar VAR_RESULT, FoundBlackGlasses compare VAR_RESULT, 1 goto_eq Route116_EventScript_1F2E1B msgbox Route116_Text_1F375E, 4 diff --git a/data/maps/Route116_TunnelersRestHouse/scripts.inc b/data/maps/Route116_TunnelersRestHouse/scripts.inc index f9dbbd3f25..b2c0093378 100644 --- a/data/maps/Route116_TunnelersRestHouse/scripts.inc +++ b/data/maps/Route116_TunnelersRestHouse/scripts.inc @@ -17,7 +17,7 @@ Route116_TunnelersRestHouse_EventScript_22B863:: @ 822B863 Route116_TunnelersRestHouse_EventScript_22B86C:: @ 822B86C lock faceplayer - checkflag FLAG_0x0C7 + checkflag FLAG_RUSTURF_TUNNEL_OPENED goto_eq Route116_TunnelersRestHouse_EventScript_22B881 msgbox Route116_TunnelersRestHouse_Text_22BAAF, 4 release diff --git a/data/maps/Route119/scripts.inc b/data/maps/Route119/scripts.inc index 778d925e64..f2e52d50ce 100644 --- a/data/maps/Route119/scripts.inc +++ b/data/maps/Route119/scripts.inc @@ -9,7 +9,7 @@ Route119_MapScript1_1F442F: @ 81F442F end Route119_EventScript_1F4439:: @ 81F4439 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, Route119_EventScript_27374E removeobject VAR_LAST_TALKED @@ -80,7 +80,7 @@ Route119_EventScript_1F4506:: @ 81F4506 Route119_EventScript_1F450B:: @ 81F450B msgbox Route119_Text_1F49FD, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route119_EventScript_1F453A case 1, Route119_EventScript_1F454A case 2, Route119_EventScript_1F455A @@ -110,7 +110,7 @@ Route119_EventScript_1F456A:: @ 81F456A Route119_EventScript_1F4585:: @ 81F4585 msgbox Route119_Text_1F4C9A, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, Route119_EventScript_1F45B4 case 1, Route119_EventScript_1F45C4 case 2, Route119_EventScript_1F45D4 diff --git a/data/maps/Route120/scripts.inc b/data/maps/Route120/scripts.inc index 50e5742d1e..0bcff1a935 100644 --- a/data/maps/Route120/scripts.inc +++ b/data/maps/Route120/scripts.inc @@ -25,7 +25,7 @@ Route120_EventScript_1F5406:: @ 81F5406 return Route120_EventScript_1F5449:: @ 81F5449 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, Route120_EventScript_27374E removeobject 30 @@ -33,7 +33,7 @@ Route120_EventScript_1F5449:: @ 81F5449 return Route120_EventScript_1F5460:: @ 81F5460 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, Route120_EventScript_27374E removeobject VAR_LAST_TALKED @@ -220,7 +220,7 @@ Route120_EventScript_1F568B:: @ 81F568B setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq Route120_EventScript_1F571C compare VAR_RESULT, 4 diff --git a/data/maps/RustboroCity/scripts.inc b/data/maps/RustboroCity/scripts.inc index 6eb8d48bc9..f4c8d5434b 100644 --- a/data/maps/RustboroCity/scripts.inc +++ b/data/maps/RustboroCity/scripts.inc @@ -306,7 +306,7 @@ RustboroCity_EventScript_1E09CD:: @ 81E09CD clearflag FLAG_0x2DC setflag FLAG_0x08E setvar VAR_0x405A, 2 - setvar VAR_0x409A, 2 + setvar VAR_RUSTURF_TUNNEL_STATE, 2 setvar VAR_0x406F, 1 clearflag FLAG_0x37B clearflag FLAG_0x370 @@ -869,7 +869,7 @@ RustboroCity_EventScript_1E1070:: @ 81E1070 RustboroCity_EventScript_1E1092:: @ 81E1092 msgbox RustboroCity_Text_1E1C84, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, RustboroCity_EventScript_1E10DB case 1, RustboroCity_EventScript_1E10EE case 2, RustboroCity_EventScript_1E1101 @@ -940,7 +940,7 @@ RustboroCity_EventScript_1E1174:: @ 81E1174 RustboroCity_EventScript_1E1191:: @ 81E1191 msgbox RustboroCity_Text_1E1FA9, 4 - switch VAR_FIRST_POKE + switch VAR_STARTER_MON case 0, RustboroCity_EventScript_1E11D5 case 1, RustboroCity_EventScript_1E11E8 case 2, RustboroCity_EventScript_1E11FB diff --git a/data/maps/RusturfTunnel/events.inc b/data/maps/RusturfTunnel/events.inc index d0d56e6fa7..77b6f7a612 100644 --- a/data/maps/RusturfTunnel/events.inc +++ b/data/maps/RusturfTunnel/events.inc @@ -17,8 +17,8 @@ RusturfTunnel_MapWarps: @ 85342B4 RusturfTunnel_MapCoordEvents: @ 85342CC coord_event 23, 4, 3, 0, 0, RusturfTunnel_EventScript_22D071 - coord_event 9, 4, 3, VAR_0x409A, 2, RusturfTunnel_EventScript_22D083 - coord_event 9, 5, 3, VAR_0x409A, 2, RusturfTunnel_EventScript_22D083 + coord_event 9, 4, 3, VAR_RUSTURF_TUNNEL_STATE, 2, RusturfTunnel_EventScript_22D083 + coord_event 9, 5, 3, VAR_RUSTURF_TUNNEL_STATE, 2, RusturfTunnel_EventScript_22D083 coord_event 25, 4, 3, 0, 0, RusturfTunnel_EventScript_22D077 coord_event 25, 5, 3, 0, 0, RusturfTunnel_EventScript_22D07D diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc index 5e42be78d2..33e87bda56 100644 --- a/data/maps/RusturfTunnel/scripts.inc +++ b/data/maps/RusturfTunnel/scripts.inc @@ -4,12 +4,12 @@ RusturfTunnel_MapScripts:: @ 822CE27 .byte 0 RusturfTunnel_MapScript2_22CE32: @ 822CE32 - map_script_2 VAR_0x409A, 4, RusturfTunnel_EventScript_22CEAE - map_script_2 VAR_0x409A, 5, RusturfTunnel_EventScript_22CEAE + map_script_2 VAR_RUSTURF_TUNNEL_STATE, 4, RusturfTunnel_EventScript_22CEAE + map_script_2 VAR_RUSTURF_TUNNEL_STATE, 5, RusturfTunnel_EventScript_22CEAE .2byte 0 RusturfTunnel_MapScript1_22CE44: @ 822CE44 - compare VAR_0x409A, 2 + compare VAR_RUSTURF_TUNNEL_STATE, 2 call_if 1, RusturfTunnel_EventScript_22CE50 end @@ -288,7 +288,7 @@ RusturfTunnel_EventScript_22D083:: @ 822D083 waitmovement 0 moveobjectoffscreen 6 moveobjectoffscreen 7 - setvar VAR_0x409A, 3 + setvar VAR_RUSTURF_TUNNEL_STATE, 3 releaseall end diff --git a/data/maps/SSTidalCorridor/scripts.inc b/data/maps/SSTidalCorridor/scripts.inc index 2e1b4cfa44..e046d02739 100644 --- a/data/maps/SSTidalCorridor/scripts.inc +++ b/data/maps/SSTidalCorridor/scripts.inc @@ -4,15 +4,15 @@ SSTidalCorridor_MapScripts:: @ 823BFCF SSTidalCorridor_MapScript2_23BFD5: @ 823BFD5 map_script_2 VAR_0x40D4, 0, SSTidalCorridor_EventScript_23C219 - map_script_2 VAR_PORTHOLE, 1, SSTidalCorridor_EventScript_23BFFF - map_script_2 VAR_PORTHOLE, 5, SSTidalCorridor_EventScript_23C015 - map_script_2 VAR_PORTHOLE, 9, SSTidalCorridor_EventScript_23C067 - map_script_2 VAR_PORTHOLE, 10, SSTidalCorridor_EventScript_23C07D + map_script_2 VAR_PORTHOLE_STATE, 1, SSTidalCorridor_EventScript_23BFFF + map_script_2 VAR_PORTHOLE_STATE, 5, SSTidalCorridor_EventScript_23C015 + map_script_2 VAR_PORTHOLE_STATE, 9, SSTidalCorridor_EventScript_23C067 + map_script_2 VAR_PORTHOLE_STATE, 10, SSTidalCorridor_EventScript_23C07D .2byte 0 SSTidalCorridor_EventScript_23BFFF:: @ 823BFFF special SetSSTidalFlag - setvar VAR_PORTHOLE, 2 + setvar VAR_PORTHOLE_STATE, 2 lockall playse SE_PINPON msgbox SSTidalCorridor_Text_23C462, 4 @@ -20,7 +20,7 @@ SSTidalCorridor_EventScript_23BFFF:: @ 823BFFF end SSTidalCorridor_EventScript_23C015:: @ 823C015 - setvar VAR_PORTHOLE, 6 + setvar VAR_PORTHOLE_STATE, 6 lockall playse SE_PINPON msgbox SSTidalCorridor_Text_23C4E3, 4 @@ -29,28 +29,28 @@ SSTidalCorridor_EventScript_23C015:: @ 823C015 SSTidalRooms_EventScript_23C028:: @ 823C028 special SetSSTidalFlag - setvar VAR_PORTHOLE, 7 + setvar VAR_PORTHOLE_STATE, 7 playse SE_PINPON msgbox SSTidalRooms_Text_23C462, 4 return SSTidalRooms_EventScript_23C03C:: @ 823C03C special ResetSSTidalFlag - setvar VAR_PORTHOLE, 4 + setvar VAR_PORTHOLE_STATE, 4 playse SE_PINPON msgbox SSTidalRooms_Text_23C553, 4 return SSTidalCorridor_EventScript_23C050:: @ 823C050 - compare VAR_PORTHOLE, 2 + compare VAR_PORTHOLE_STATE, 2 goto_eq SSTidalCorridor_EventScript_23C067 - compare VAR_PORTHOLE, 7 + compare VAR_PORTHOLE_STATE, 7 goto_eq SSTidalCorridor_EventScript_23C07D end SSTidalCorridor_EventScript_23C067:: @ 823C067 special ResetSSTidalFlag - setvar VAR_PORTHOLE, 3 + setvar VAR_PORTHOLE_STATE, 3 lockall playse SE_PINPON msgbox SSTidalCorridor_Text_23C4E3, 4 @@ -59,7 +59,7 @@ SSTidalCorridor_EventScript_23C067:: @ 823C067 SSTidalCorridor_EventScript_23C07D:: @ 823C07D special ResetSSTidalFlag - setvar VAR_PORTHOLE, 8 + setvar VAR_PORTHOLE_STATE, 8 lockall playse SE_PINPON msgbox SSTidalCorridor_Text_23C50F, 4 @@ -68,13 +68,13 @@ SSTidalCorridor_EventScript_23C07D:: @ 823C07D SSTidalRooms_EventScript_23C093:: @ 823C093 special ResetSSTidalFlag - setvar VAR_PORTHOLE, 8 + setvar VAR_PORTHOLE_STATE, 8 playse SE_PINPON msgbox SSTidalRooms_Text_23C50F, 4 return SSTidalRooms_EventScript_23C0A7:: @ 823C0A7 - switch VAR_PORTHOLE + switch VAR_PORTHOLE_STATE case 2, SSTidalRooms_EventScript_23C03C case 3, SSTidalRooms_EventScript_23C03C case 6, SSTidalRooms_EventScript_23C028 @@ -114,9 +114,9 @@ SSTidalCorridor_EventScript_23C110:: @ 823C110 SSTidalCorridor_EventScript_23C119:: @ 823C119 lock faceplayer - compare VAR_PORTHOLE, 4 + compare VAR_PORTHOLE_STATE, 4 goto_eq SSTidalCorridor_EventScript_23C13B - compare VAR_PORTHOLE, 8 + compare VAR_PORTHOLE_STATE, 8 goto_eq SSTidalCorridor_EventScript_23C15A msgbox SSTidalCorridor_Text_23C596, 4 release @@ -148,9 +148,9 @@ SSTidalCorridor_EventScript_23C179:: @ 823C179 SSTidalCorridor_EventScript_23C17D:: @ 823C17D lockall - compare VAR_PORTHOLE, 2 + compare VAR_PORTHOLE_STATE, 2 goto_eq SSTidalCorridor_EventScript_23C19E - compare VAR_PORTHOLE, 7 + compare VAR_PORTHOLE_STATE, 7 goto_eq SSTidalCorridor_EventScript_23C19E msgbox SSTidalCorridor_Text_23C6C3, 4 releaseall diff --git a/data/maps/SkyPillar_Top/scripts.inc b/data/maps/SkyPillar_Top/scripts.inc index 334acc8ac6..6904646989 100644 --- a/data/maps/SkyPillar_Top/scripts.inc +++ b/data/maps/SkyPillar_Top/scripts.inc @@ -10,7 +10,7 @@ SkyPillar_Top_MapScript1_2396C8: @ 82396C8 end SkyPillar_Top_EventScript_2396D2:: @ 82396D2 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, SkyPillar_Top_EventScript_27374E removeobject VAR_LAST_TALKED @@ -56,7 +56,7 @@ SkyPillar_Top_EventScript_239722:: @ 8239722 special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq SkyPillar_Top_EventScript_239768 compare VAR_RESULT, 4 diff --git a/data/maps/SlateportCity_Harbor/scripts.inc b/data/maps/SlateportCity_Harbor/scripts.inc index e1f373bb21..58c318d37d 100644 --- a/data/maps/SlateportCity_Harbor/scripts.inc +++ b/data/maps/SlateportCity_Harbor/scripts.inc @@ -203,7 +203,7 @@ SlateportCity_Harbor_EventScript_20CB92:: @ 820CB92 msgbox SlateportCity_Harbor_Text_20CF93, 5 compare VAR_RESULT, 0 goto_eq SlateportCity_Harbor_EventScript_20CBDD - setvar VAR_PORTHOLE, 1 + setvar VAR_PORTHOLE_STATE, 1 call SlateportCity_Harbor_EventScript_20CBE9 warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10 waitstate diff --git a/data/maps/SlateportCity_House1/scripts.inc b/data/maps/SlateportCity_House1/scripts.inc index 8ecc859f79..745cc66271 100644 --- a/data/maps/SlateportCity_House1/scripts.inc +++ b/data/maps/SlateportCity_House1/scripts.inc @@ -34,7 +34,7 @@ SlateportCity_House1_EventScript_209AF3:: @ 8209AF3 special TV_CheckMonOTIDEqualsPlayerID compare VAR_RESULT, 1 goto_eq SlateportCity_House1_EventScript_209B50 - specialvar VAR_RESULT, sub_8139770 + specialvar VAR_RESULT, MonOTNameMatchesPlayer special TV_CopyNicknameToStringVar1AndEnsureTerminated compare VAR_RESULT, 1 goto_eq SlateportCity_House1_EventScript_209B50 diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc index cdcf5866ce..652ac791a8 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc +++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc @@ -91,7 +91,7 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_227A4E:: @ 8227A4E SootopolisCity_MysteryEventsHouse_1F_EventScript_227A58:: @ 8227A58 special SavePlayerParty - special sub_8139238 + special BufferEReaderTrainerName msgbox SootopolisCity_MysteryEventsHouse_1F_Text_227BFC, 5 compare VAR_RESULT, 0 goto_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_227AE2 diff --git a/data/maps/SouthernIsland_Interior/scripts.inc b/data/maps/SouthernIsland_Interior/scripts.inc index 432667cc96..3005e32d76 100644 --- a/data/maps/SouthernIsland_Interior/scripts.inc +++ b/data/maps/SouthernIsland_Interior/scripts.inc @@ -9,7 +9,7 @@ SouthernIsland_Interior_MapScript1_242A50: @ 8242A50 end SouthernIsland_Interior_EventScript_242A5A:: @ 8242A5A - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, SouthernIsland_Interior_EventScript_27374E removeobject 2 @@ -90,7 +90,7 @@ SouthernIsland_Interior_EventScript_242AD0:: @ 8242AD0 special BattleSetup_StartLatiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq SouthernIsland_Interior_EventScript_242B81 compare VAR_RESULT, 4 diff --git a/data/maps/TerraCave_End/scripts.inc b/data/maps/TerraCave_End/scripts.inc index 5152f85cf1..d603f2274f 100644 --- a/data/maps/TerraCave_End/scripts.inc +++ b/data/maps/TerraCave_End/scripts.inc @@ -9,7 +9,7 @@ TerraCave_End_MapScript1_23B0BB: @ 823B0BB end TerraCave_End_EventScript_23B0C5:: @ 823B0C5 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 7 goto_if 5, TerraCave_End_EventScript_27374E removeobject 1 @@ -42,7 +42,7 @@ TerraCave_End_EventScript_23B0EC:: @ 823B0EC waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE setvar VAR_TEMP_1, 0 - specialvar VAR_RESULT, sub_8138B80 + specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, 1 goto_eq TerraCave_End_EventScript_23B155 compare VAR_RESULT, 4 diff --git a/data/maps/VerdanturfTown/scripts.inc b/data/maps/VerdanturfTown/scripts.inc index 2987a9a595..8cc8f6f4d9 100644 --- a/data/maps/VerdanturfTown/scripts.inc +++ b/data/maps/VerdanturfTown/scripts.inc @@ -10,7 +10,7 @@ VerdanturfTown_MapScript1_1EB56C: @ 81EB56C VerdanturfTown_EventScript_1EB575:: @ 81EB575 lock faceplayer - checkflag FLAG_0x0C7 + checkflag FLAG_RUSTURF_TUNNEL_OPENED goto_eq VerdanturfTown_EventScript_1EB594 msgbox VerdanturfTown_Text_1EB5FD, 4 applymovement 2, VerdanturfTown_Movement_2725A2 @@ -36,7 +36,7 @@ VerdanturfTown_EventScript_1EB5B1:: @ 81EB5B1 VerdanturfTown_EventScript_1EB5BA:: @ 81EB5BA lock faceplayer - checkflag FLAG_0x0C7 + checkflag FLAG_RUSTURF_TUNNEL_OPENED goto_eq VerdanturfTown_EventScript_1EB5CF msgbox VerdanturfTown_Text_1EB854, 4 release diff --git a/data/maps/VerdanturfTown_WandasHouse/scripts.inc b/data/maps/VerdanturfTown_WandasHouse/scripts.inc index fabff64205..8184f4c21c 100644 --- a/data/maps/VerdanturfTown_WandasHouse/scripts.inc +++ b/data/maps/VerdanturfTown_WandasHouse/scripts.inc @@ -69,7 +69,7 @@ VerdanturfTown_WandasHouse_EventScript_20294E:: @ 820294E goto_eq VerdanturfTown_WandasHouse_EventScript_202989 checkflag FLAG_0x4F3 goto_eq VerdanturfTown_WandasHouse_EventScript_20297F - checkflag FLAG_0x0C7 + checkflag FLAG_RUSTURF_TUNNEL_OPENED goto_eq VerdanturfTown_WandasHouse_EventScript_202975 msgbox VerdanturfTown_WandasHouse_Text_202E47, 4 release diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc index df25056ea0..d0936b9c12 100644 --- a/data/scripts/field_move_scripts.inc +++ b/data/scripts/field_move_scripts.inc @@ -113,7 +113,7 @@ Route111_EventScript_2907FB:: @ 82907FB applymovement VAR_LAST_TALKED, Route111_Movement_29082B waitmovement 0 removeobject VAR_LAST_TALKED - specialvar VAR_RESULT, sub_81393FC + specialvar VAR_RESULT, TryUpdateRusturfTunnelState compare VAR_RESULT, 1 goto_eq Route111_EventScript_290829 special RockSmashWildEncounter diff --git a/data/specials.inc b/data/specials.inc index 1020b1c803..43607cf6e2 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -191,7 +191,7 @@ gSpecials:: @ 81DBA64 def_special GabbyAndTyGetLastQuote def_special GabbyAndTyGetLastBattleTrivia def_special GabbyAndTySetScriptVarsToEventObjectLocalIds - def_special sub_8138B80 + def_special GetBattleOutcome def_special GetDaycareMonNicknames def_special GetDaycareState def_special RejectEggFromDayCare @@ -227,7 +227,7 @@ gSpecials:: @ 81DBA64 def_special ShowPokedexRatingMessage def_special DoPCTurnOnEffect def_special DoPCTurnOffEffect - def_special sub_8139994 + def_special SetDepartmentStoreFloorVar def_special DoLotteryCornerComputerEffect def_special EndLotteryCornerComputerEffect def_special sub_81B951C @@ -258,7 +258,7 @@ gSpecials:: @ 81DBA64 def_special sub_81B9D08 def_special sub_80F9490 def_special ValidateEReaderTrainer - def_special sub_8139228 + def_special GetBestBattleTowerStreak def_special sub_80F94E8 def_special BedroomPC def_special PlayerPC @@ -295,20 +295,20 @@ gSpecials:: @ 81DBA64 def_special sub_80B0534 def_special sub_80B058C def_special WaitWeather - def_special sub_8139238 - def_special sub_8139248 + def_special BufferEReaderTrainerName + def_special GetSlotMachineId def_special GetPlayerFacingDirection - def_special sub_81392AC - def_special sub_81392D4 - def_special sub_81392F8 - def_special sub_8139320 + def_special FoundAbandonedShipRoom1Key + def_special FoundAbandonedShipRoom2Key + def_special FoundAbandonedShipRoom4Key + def_special FoundAbandonedShipRoom6Key def_special LeadMonHasEffortRibbon def_special GiveLeadMonEffortRibbon def_special Special_AreLeadMonEVsMaxedOut def_special sub_8098574 def_special sub_809859C def_special InitRoamer - def_special sub_81393FC + def_special TryUpdateRusturfTunnelState def_special IsGrassTypeInParty def_special sub_80AFC60 def_special PutZigzagoonInPlayerParty @@ -326,7 +326,7 @@ gSpecials:: @ 81DBA64 def_special StartRegiBattle def_special sub_80B16D8 def_special DoSealedChamberShakingEffect2 - def_special sub_8139634 + def_special FoundBlackGlasses def_special sub_80AC81C def_special sp13E_warp_to_last_warp def_special sp13F_fall_to_last_warp @@ -343,11 +343,11 @@ gSpecials:: @ 81DBA64 def_special sub_80E9B70 def_special LoadPlayerBag def_special sub_80B05B4 - def_special sub_8139754 - def_special sub_813970C + def_special SetPacifidlogTMReceivedDay + def_special GetDaysUntilPacifidlogTMAvailable def_special sub_80C08E4 - def_special sub_8139770 - def_special sub_81397C4 + def_special MonOTNameMatchesPlayer + def_special BufferLottoTicketNumber def_special sub_81653CC def_special sub_80F9370 def_special sub_80F8FE8 diff --git a/include/battle_tower.h b/include/battle_tower.h index d8a3dc9a8d..e1655f2c6a 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -42,5 +42,6 @@ void sub_81628A0(union BattleTowerRecord *); void sub_8162614(u16 trainerId, u8); void ConvertBattleFrontierTrainerSpeechToString(u16 *words); void GetFrontierTrainerName(u8 *dest, u16 trainerIdx); +void GetEreaderTrainerName(u8 *dest); #endif //GUARD_BATTLE_TOWER_H diff --git a/include/constants/flags.h b/include/constants/flags.h index 641d74f194..f6143982d9 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -199,7 +199,7 @@ #define FLAG_0x0C4 0xC4 #define FLAG_0x0C5 0xC5 #define FLAG_0x0C6 0xC6 -#define FLAG_0x0C7 0xC7 +#define FLAG_RUSTURF_TUNNEL_OPENED 0xC7 #define FLAG_0x0C8 0xC8 #define FLAG_0x0C9 0xC9 #define FLAG_0x0CA 0xCA @@ -532,10 +532,10 @@ #define FLAG_0x210 0x210 #define FLAG_0x211 0x211 #define FLAG_0x212 0x212 -#define FLAG_0x213 0x213 -#define FLAG_0x214 0x214 -#define FLAG_0x215 0x215 -#define FLAG_0x216 0x216 +#define FLAG_HIDDEN_ITEM_1F 0x213 +#define FLAG_HIDDEN_ITEM_20 0x214 +#define FLAG_HIDDEN_ITEM_21 0x215 +#define FLAG_HIDDEN_ITEM_22 0x216 #define FLAG_0x217 0x217 #define FLAG_0x218 0x218 #define FLAG_0x219 0x219 @@ -597,7 +597,7 @@ #define FLAG_0x251 0x251 #define FLAG_0x252 0x252 #define FLAG_0x253 0x253 -#define FLAG_0x254 0x254 +#define FLAG_HIDDEN_ITEM_BLACK_GLASSES 0x254 #define FLAG_0x255 0x255 #define FLAG_0x256 0x256 #define FLAG_0x257 0x257 @@ -932,8 +932,8 @@ #define FLAG_0x3A0 0x3A0 #define FLAG_0x3A1 0x3A1 #define FLAG_0x3A2 0x3A2 -#define FLAG_0x3A3 0x3A3 -#define FLAG_0x3A4 0x3A4 +#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0x3A3 +#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2 0x3A4 #define FLAG_0x3A5 0x3A5 #define FLAG_0x3A6 0x3A6 #define FLAG_0x3A7 0x3A7 diff --git a/include/constants/vars.h b/include/constants/vars.h index ed4a7797bb..92cbaba5f1 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -49,13 +49,13 @@ #define VAR_RECYCLE_GOODS 0x4020 #define VAR_REPEL_STEP_COUNT 0x4021 #define VAR_ICE_STEP_COUNT 0x4022 -#define VAR_FIRST_POKE 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip +#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip #define VAR_MIRAGE_RND_H 0x4024 #define VAR_MIRAGE_RND_L 0x4025 #define VAR_SECRET_BASE_MAP 0x4026 -#define VAR_0x4027 0x4027 -#define VAR_0x4028 0x4028 -#define VAR_0x4029 0x4029 +#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027 +#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028 +#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029 #define VAR_HAPPINESS_STEP_COUNTER 0x402A #define VAR_POISON_STEP_COUNTER 0x402B #define VAR_RESET_RTC_ENABLE 0x402C @@ -170,7 +170,7 @@ #define VAR_0x4097 0x4097 #define VAR_0x4098 0x4098 #define VAR_0x4099 0x4099 -#define VAR_0x409A 0x409A +#define VAR_RUSTURF_TUNNEL_STATE 0x409A #define VAR_0x409B 0x409B #define VAR_0x409C 0x409C #define VAR_0x409D 0x409D @@ -185,7 +185,7 @@ #define VAR_0x40A6 0x40A6 #define VAR_0x40A7 0x40A7 #define VAR_0x40A8 0x40A8 -#define VAR_0x40A9 0x40A9 +#define VAR_CYCLING_CHALLENGE_STATE 0x40A9 #define VAR_0x40AA 0x40AA #define VAR_0x40AB 0x40AB #define VAR_0x40AC 0x40AC @@ -196,7 +196,7 @@ #define VAR_0x40B1 0x40B1 #define VAR_0x40B2 0x40B2 #define VAR_WEATHER_INSTITUTE_STATE 0x40B3 -#define VAR_PORTHOLE 0x40B4 +#define VAR_PORTHOLE_STATE 0x40B4 #define VAR_0x40B5 0x40B5 #define VAR_0x40B6 0x40B6 #define VAR_0x40B7 0x40B7 @@ -210,7 +210,7 @@ #define VAR_0x40BF 0x40BF #define VAR_0x40C0 0x40C0 #define VAR_0x40C1 0x40C1 -#define VAR_0x40C2 0x40C2 +#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2 #define VAR_0x40C3 0x40C3 #define VAR_0x40C4 0x40C4 #define VAR_0x40C5 0x40C5 diff --git a/include/event_object_movement.h b/include/event_object_movement.h index a8f5caa280..c382ae4d8b 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -185,6 +185,7 @@ bool8 FreezeEventObject(struct EventObject *eventObject); u8 GetMoveDirectionFastAnimNum(u8); u8 GetMoveDirectionFasterAnimNum(u8); u8 GetMoveDirectionFastestAnimNum(u8); +void CameraObjectSetFollowedObjectId(u8 objectId); void MovementType_None(struct Sprite *); void MovementType_LookAround(struct Sprite *); diff --git a/include/field_region_map.h b/include/field_region_map.h new file mode 100644 index 0000000000..d50f1265c6 --- /dev/null +++ b/include/field_region_map.h @@ -0,0 +1,6 @@ +#ifndef GUARD_FIELD_REGION_MAP_H +#define GUARD_FIELD_REGION_MAP_H + +void FieldInitRegionMap(MainCallback callback); + +#endif // GUARD_FIELD_REGION_MAP_H diff --git a/include/party_menu.h b/include/party_menu.h index 6e1344213c..d24bc817f7 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -54,5 +54,6 @@ void sub_81B8518(u8 unused); u8 sub_81B1360(void); void sub_81B8904(u8 arg0, void (*callback)(void)); void OpenPartyMenuInBattle(u8 caseId); +u16 ItemIdToBattleMoveId(u16 itemId); #endif // GUARD_PARTY_MENU_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 9fcfdba964..5e07ba1f24 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -9,5 +9,6 @@ struct BoxPokemon *GetBoxedMonPtr(u8, u8); void SetBoxMonNickFromAnyBox(u8, u8, u8 *); void CompactPartySlots(void); u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request); +bool8 CheckFreePokemonStorageSpace(void); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/rom_8011DC0.h b/include/rom_8011DC0.h index fd8c35f562..f71e5d97db 100644 --- a/include/rom_8011DC0.h +++ b/include/rom_8011DC0.h @@ -8,5 +8,6 @@ // Exported ROM declarations void sub_8018438(void); +u16 mevent_081445C0(u8); #endif //GUARD_rom_8011DC0_H diff --git a/include/strings.h b/include/strings.h index 4736fdc5d7..3d3741a86c 100644 --- a/include/strings.h +++ b/include/strings.h @@ -462,4 +462,14 @@ extern const u8 gText_TotalRecordWLD[]; extern const u8 gText_PlayersBattleResults[]; extern const u8 gText_WinLoseDraw[]; +extern const u8 gText_99TimesPlus[]; +extern const u8 gText_1MinutePlus[]; +extern const u8 gText_SpaceSeconds[]; +extern const u8 gText_SpaceTimes[]; + +extern const u8 gText_BigGuy[]; +extern const u8 gText_BigGirl[]; +extern const u8 gText_Son[]; +extern const u8 gText_Daughter[]; + #endif //GUARD_STRINGS_H diff --git a/include/tv.h b/include/tv.h index 17be8c43c2..554bbad851 100644 --- a/include/tv.h +++ b/include/tv.h @@ -48,5 +48,6 @@ void PutPokemonTodayCaughtOnAir(void); void TV_PutSecretBaseVisitOnTheAir(void); void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlayer, u16 speciesOpponent); void UpdateTVScreensOnMap(int, int); +void TV_PrintIntToStringVar(u8 varIdx, int value); #endif //GUARD_TV_H diff --git a/include/wallclock.h b/include/wallclock.h index 48697c19fc..208af9324e 100644 --- a/include/wallclock.h +++ b/include/wallclock.h @@ -1,6 +1,7 @@ #ifndef GUARD_WALLCLOCK_H #define GUARD_WALLCLOCK_H -void Cb2_StartWallClock(void); +void CB2_StartWallClock(void); +void CB2_ViewWallClock(void); #endif //GUARD_WALLCLOCK_H diff --git a/ld_script.txt b/ld_script.txt index f5bfdd598a..2a0900e516 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -180,6 +180,7 @@ SECTIONS { src/time_events.o(.text); src/birch_pc.o(.text); src/hof_pc.o(.text); + src/field_specials.o(.text); asm/field_specials.o(.text); src/battle_records.o(.text); asm/pokedex_area_screen.o(.text); @@ -469,6 +470,7 @@ SECTIONS { src/pokeblock.o(.rodata); src/fldeff_flash.o(.rodata); src/time_events.o(.rodata); + src/field_specials.o(.rodata); data/field_specials.o(.rodata); src/battle_records.o(.rodata); data/pokedex_area_screen.o(.rodata); diff --git a/src/battle_setup.c b/src/battle_setup.c index e478af936d..2955a33fcc 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -900,7 +900,7 @@ static void CB2_GiveStarter(void) { u16 starterMon; - *GetVarPointer(VAR_FIRST_POKE) = gSpecialVar_Result; + *GetVarPointer(VAR_STARTER_MON) = gSpecialVar_Result; starterMon = GetStarterPokemon(gSpecialVar_Result); ScriptGiveMon(starterMon, 5, 0, 0, 0, 0); ResetTasks(); diff --git a/src/clock.c b/src/clock.c index ccbb0c24b6..91eb5f16dc 100644 --- a/src/clock.c +++ b/src/clock.c @@ -88,6 +88,6 @@ static void ReturnFromStartWallClock(void) void StartWallClock(void) { - SetMainCallback2(Cb2_StartWallClock); + SetMainCallback2(CB2_StartWallClock); gMain.savedCallback = ReturnFromStartWallClock; } diff --git a/src/credits.c b/src/credits.c index 168f3e8a3f..a88e4b5494 100644 --- a/src/credits.c +++ b/src/credits.c @@ -2285,7 +2285,7 @@ static void sub_81772B8(struct Sprite *sprite) static void sub_8177388(void) { - u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_FIRST_POKE))); + u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_STARTER_MON))); u16 page; u16 dexNum; u16 j; diff --git a/src/field_region_map.c b/src/field_region_map.c index 34b6089dfb..f565480682 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -63,7 +63,7 @@ static const struct WindowTemplate gUnknown_085E5070[] = { // .text -void sub_817018C(MainCallback callback) +void FieldInitRegionMap(MainCallback callback) { SetVBlankCallback(NULL); sFieldRegionMapHandler = malloc(sizeof(*sFieldRegionMapHandler)); diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 39977808fd..6f33b2c9be 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -272,7 +272,7 @@ bool8 sub_80FB59C(void) void Task_HandlePorthole(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 *var = GetVarPointer(VAR_PORTHOLE); + u16 *var = GetVarPointer(VAR_PORTHOLE_STATE); struct WarpData *location = &gSaveBlock1Ptr->location; switch (data[0]) diff --git a/src/field_specials.c b/src/field_specials.c new file mode 100644 index 0000000000..a0d640ccd1 --- /dev/null +++ b/src/field_specials.c @@ -0,0 +1,1657 @@ +#include "global.h" +#include "main.h" +#include "battle.h" +#include "battle_tower.h" +#include "data2.h" +#include "diploma.h" +#include "event_data.h" +#include "event_object_movement.h" +#include "fieldmap.h" +#include "field_camera.h" +#include "field_message_box.h" +#include "field_player_avatar.h" +#include "field_region_map.h" +#include "field_specials.h" +#include "field_weather.h" +#include "link.h" +#include "overworld.h" +#include "party_menu.h" +#include "pokeblock.h" +#include "pokemon.h" +#include "pokemon_storage_system.h" +#include "region_map.h" +#include "rom_8011DC0.h" +#include "rtc.h" +#include "script.h" +#include "sound.h" +#include "starter_choose.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "text.h" +#include "tv.h" +#include "wallclock.h" +#include "constants/event_objects.h" +#include "constants/items.h" +#include "constants/maps.h" +#include "constants/songs.h" +#include "constants/species.h" +#include "constants/moves.h" +#include "constants/vars.h" + +EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE; +EWRAM_DATA u8 gBikeCollisions = 0; +EWRAM_DATA u32 gBikeCyclingTimer = 0; +EWRAM_DATA u8 gUnknown_0203AB5C = 0; +EWRAM_DATA u8 gUnknown_0203AB5D = 0; + +extern const u16 gEventObjectPalette8[]; +extern const u16 gEventObjectPalette17[]; +extern const u16 gEventObjectPalette33[]; +extern const u16 gEventObjectPalette34[]; + +extern void LoadPalette(const void *src, u32 offset, u16 size); // incorrect signature, needed to match + +static void RecordCyclingRoadResults(u32, u8); +static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEventId, u8 paletteNum); + +void Special_ShowDiploma(void) +{ + SetMainCallback2(CB2_ShowDiploma); + ScriptContext2_Enable(); +} + +void Special_ViewWallClock(void) +{ + gMain.savedCallback = CB2_ReturnToField; + SetMainCallback2(CB2_ViewWallClock); + ScriptContext2_Enable(); +} + +void ResetCyclingRoadChallengeData(void) +{ + gBikeCyclingChallenge = FALSE; + gBikeCollisions = 0; + gBikeCyclingTimer = 0; +} + +void Special_BeginCyclingRoadChallenge(void) +{ + gBikeCyclingChallenge = TRUE; + gBikeCollisions = 0; + gBikeCyclingTimer = gMain.vblankCounter1; +} + +u16 GetPlayerAvatarBike(void) +{ + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE)) + return 1; + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE)) + return 2; + return 0; +} + +static void DetermineCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) +{ + u8 result; + + if (numBikeCollisions < 100) + { + ConvertIntToDecimalStringN(gStringVar1, numBikeCollisions, STR_CONV_MODE_LEFT_ALIGN, 2); + StringAppend(gStringVar1, gText_SpaceTimes); + } + else + { + StringCopy(gStringVar1, gText_99TimesPlus); + } + + if (numFrames < 3600) + { + ConvertIntToDecimalStringN(gStringVar2, numFrames / 60, STR_CONV_MODE_RIGHT_ALIGN, 2); + gStringVar2[2] = CHAR_PERIOD; + ConvertIntToDecimalStringN(&gStringVar2[3], ((numFrames % 60) * 100) / 60, STR_CONV_MODE_LEADING_ZEROS, 2); + StringAppend(gStringVar2, gText_SpaceSeconds); + } + else + { + StringCopy(gStringVar2, gText_1MinutePlus); + } + + result = 0; + if (numBikeCollisions == 0) + { + result = 5; + } + else if (numBikeCollisions < 4) + { + result = 4; + } + else if (numBikeCollisions < 10) + { + result = 3; + } + else if (numBikeCollisions < 20) + { + result = 2; + } + else if (numBikeCollisions < 100) + { + result = 1; + } + + if (numFrames / 60 <= 10) + { + result += 5; + } + else if (numFrames / 60 <= 15) + { + result += 4; + } + else if (numFrames / 60 <= 20) + { + result += 3; + } + else if (numFrames / 60 <= 40) + { + result += 2; + } + else if (numFrames / 60 < 60) + { + result += 1; + } + + + gSpecialVar_Result = result; +} + +void FinishCyclingRoadChallenge(void) { + const u32 numFrames = gMain.vblankCounter1 - gBikeCyclingTimer; + + DetermineCyclingRoadResults(numFrames, gBikeCollisions); + RecordCyclingRoadResults(numFrames, gBikeCollisions); +} + +static void RecordCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) { + u16 low = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_L); + u16 high = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_H); + u32 framesRecord = low + (high << 16); + + if (framesRecord > numFrames || framesRecord == 0) + { + VarSet(VAR_CYCLING_ROAD_RECORD_TIME_L, numFrames); + VarSet(VAR_CYCLING_ROAD_RECORD_TIME_H, numFrames >> 16); + VarSet(VAR_CYCLING_ROAD_RECORD_COLLISIONS, numBikeCollisions); + } +} + +u16 GetRecordedCyclingRoadResults(void) { + u16 low = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_L); + u16 high = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_H); + u32 framesRecord = low + (high << 16); + + if (framesRecord == 0) + { + return FALSE; + } + + DetermineCyclingRoadResults(framesRecord, VarGet(VAR_CYCLING_ROAD_RECORD_COLLISIONS)); + return TRUE; +} + +void UpdateCyclingRoadState(void) { + if (gUnknown_020322DC.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE) && gUnknown_020322DC.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE)) + { + return; + } + + if (VarGet(VAR_CYCLING_CHALLENGE_STATE) == 2 || VarGet(VAR_CYCLING_CHALLENGE_STATE) == 3) + { + VarSet(VAR_CYCLING_CHALLENGE_STATE, 0); + Overworld_SetSavedMusic(MUS_DUMMY); + } +} + +void SetSSTidalFlag(void) +{ + FlagSet(FLAG_SYS_CRUISE_MODE); + *GetVarPointer(VAR_CRUISE_STEP_COUNT) = 0; +} + +void ResetSSTidalFlag(void) +{ + FlagClear(FLAG_SYS_CRUISE_MODE); +} + +bool32 CountSSTidalStep(u16 delta) +{ + if (!FlagGet(FLAG_SYS_CRUISE_MODE) || (*GetVarPointer(VAR_CRUISE_STEP_COUNT) += delta) <= 0xcc) + { + return FALSE; + } + return TRUE; +} + +u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y) +{ + u16 *varCruiseStepCount = GetVarPointer(VAR_CRUISE_STEP_COUNT); + switch (*GetVarPointer(VAR_PORTHOLE_STATE)) + { + case 1: + case 8: + return 1; + case 3: + case 9: + return 4; + case 4: + case 5: + return 2; + case 6: + case 10: + return 3; + case 2: + if (*varCruiseStepCount < 60) + { + *mapNum = MAP_NUM(ROUTE134); + *x = *varCruiseStepCount + 19; + } + else if (*varCruiseStepCount < 140) + { + *mapNum = MAP_NUM(ROUTE133); + *x = *varCruiseStepCount - 60; + } + else + { + *mapNum = MAP_NUM(ROUTE132); + *x = *varCruiseStepCount - 140; + } + break; + case 7: + if (*varCruiseStepCount < 66) + { + *mapNum = MAP_NUM(ROUTE132); + *x = 65 - *varCruiseStepCount; + } + else if (*varCruiseStepCount < 146) { + *mapNum = MAP_NUM(ROUTE133); + *x = 145 - *varCruiseStepCount; + } + else + { + *mapNum = MAP_NUM(ROUTE134); + *x = 224 - *varCruiseStepCount; + } + break; + } + *mapGroup = MAP_GROUP(ROUTE132); + *y = 20; + return 0; +} + +bool32 is_tile_that_overrides_player_control(void) +{ + if (FlagGet(FLAG_0x088)) + { + switch (gMapHeader.mapType) + { + case 1: + case 2: + case 3: + case 6: + if (++(*GetVarPointer(VAR_0x40F2)) < 0xFA) + { + return FALSE; + } + break; + default: + return FALSE; + } + } + else + { + return FALSE; + } + + return TRUE; +} + +bool32 sub_8138120(void) +{ + if (FlagGet(FLAG_0x08A)) + { + switch (gMapHeader.mapType) + { + case 1: + case 2: + case 3: + case 6: + if (++(*GetVarPointer(VAR_0x40F3)) < 0xA) + { + return FALSE; + } + break; + default: + return FALSE; + } + } + else + { + return FALSE; + } + + return TRUE; +} + +bool32 sub_8138168(void) +{ + if (FlagGet(FLAG_0x072)) + { + switch (gMapHeader.mapType) + { + case 1: + case 2: + case 3: + case 6: + if (++(*GetVarPointer(VAR_0x40F5)) < 0xA) + { + return FALSE; + } + break; + default: + return FALSE; + } + } + else + { + return FALSE; + } + + return TRUE; +} + +bool32 sub_81381B0(void) +{ + if (FlagGet(FLAG_0x080)) + { + switch (gMapHeader.mapType) + { + case 1: + case 2: + case 3: + case 6: + if (++(*GetVarPointer(VAR_0x40F4)) < 0xFA) + { + return FALSE; + } + break; + default: + return FALSE; + } + } + else + { + return FALSE; + } + + return TRUE; +} + +bool32 sub_81381F8(void) +{ + if (FlagGet(FLAG_0x075)) + { + switch (gMapHeader.mapType) + { + case 1: + case 2: + case 3: + case 6: + if (++(*GetVarPointer(VAR_0x40F6)) < 0xFA) + { + return FALSE; + } + break; + default: + return FALSE; + } + } + else + { + return FALSE; + } + + return TRUE; +} + +u8 GetLinkPartnerNames(void) +{ + u8 i; + u8 j = 0; + u8 myLinkPlayerNumber = GetMultiplayerId(); + u8 nLinkPlayers = GetLinkPlayerCount(); + for (i = 0; i < nLinkPlayers; i++) + { + if (myLinkPlayerNumber != i) + { + StringCopy(gTVStringVarPtrs[j], gLinkPlayers[i].name); + j++; + } + } + return nLinkPlayers; +} + +void SpawnLinkPartnerEventObject(void) +{ + u8 j = 0; + s16 x = 0; + s16 y = 0; + u8 gUnknown_085B2B5C[] = {7, 9, 8, 10}; + s8 gUnknown_085B2B60[][2] = { + { 0, 1}, + { 1, 0}, + { 0, -1}, + {-1, 0} + }; + u8 myLinkPlayerNumber; + u8 playerFacingDirection; + u8 linkSpriteId; + u8 i; + + myLinkPlayerNumber = GetMultiplayerId(); + playerFacingDirection = GetPlayerFacingDirection(); + switch (playerFacingDirection) + { + case DIR_WEST: + j = 2; + x = gSaveBlock1Ptr->pos.x - 1; + y = gSaveBlock1Ptr->pos.y; + break; + case DIR_NORTH: + j = 1; + x = gSaveBlock1Ptr->pos.x; + y = gSaveBlock1Ptr->pos.y - 1; + break; + case DIR_EAST: + x = gSaveBlock1Ptr->pos.x + 1; + y = gSaveBlock1Ptr->pos.y; + break; + case DIR_SOUTH: + j = 3; + x = gSaveBlock1Ptr->pos.x; + y = gSaveBlock1Ptr->pos.y + 1; + } + for (i = 0; i < gSpecialVar_0x8004; i++) + { + if (myLinkPlayerNumber != i) + { + switch ((u8)gLinkPlayers[i].version) + { + case VERSION_RUBY: + case VERSION_SAPPHIRE: + if (gLinkPlayers[i].gender == 0) + linkSpriteId = EVENT_OBJ_GFX_LINK_RS_BRENDAN; + else + linkSpriteId = EVENT_OBJ_GFX_LINK_RS_MAY; + break; + case VERSION_EMERALD: + if (gLinkPlayers[i].gender == 0) + linkSpriteId = EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL; + else + linkSpriteId = EVENT_OBJ_GFX_RIVAL_MAY_NORMAL; + break; + default: + if (gLinkPlayers[i].gender == 0) + linkSpriteId = EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL; + else + linkSpriteId = EVENT_OBJ_GFX_RIVAL_MAY_NORMAL; + break; + } + SpawnSpecialEventObjectParameterized(linkSpriteId, gUnknown_085B2B5C[j], 0xf0 - i, gUnknown_085B2B60[j][0] + x + 7, gUnknown_085B2B60[j][1] + y + 7, 0); + LoadLinkPartnerEventObjectSpritePalette(linkSpriteId, 0xf0 - i, i); + j++; + if (j == 4) + { + j = 0; + } + } + } +} + +static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEventId, u8 paletteNum) +{ + paletteNum += 6; + if (graphicsId == EVENT_OBJ_GFX_LINK_RS_BRENDAN || + graphicsId == EVENT_OBJ_GFX_LINK_RS_MAY || + graphicsId == EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL || + graphicsId == EVENT_OBJ_GFX_RIVAL_MAY_NORMAL) + { + u8 obj = GetEventObjectIdByLocalIdAndMap(localEventId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + if (obj != NUM_EVENT_OBJECTS) + { + u8 spriteId = gEventObjects[obj].spriteId; + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.paletteNum = paletteNum; + + switch (graphicsId) + { + case EVENT_OBJ_GFX_LINK_RS_BRENDAN: + LoadPalette(gEventObjectPalette33, 0x100 + paletteNum * 16, 0x20); + break; + case EVENT_OBJ_GFX_LINK_RS_MAY: + LoadPalette(gEventObjectPalette34, 0x100 + paletteNum * 16, 0x20); + break; + case EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL: + LoadPalette(gEventObjectPalette8, 0x100 + paletteNum * 16, 0x20); + break; + case EVENT_OBJ_GFX_RIVAL_MAY_NORMAL: + LoadPalette(gEventObjectPalette17, 0x100 + paletteNum * 16, 0x20); + break; + } + } + } +} + +struct Coords8 { + u8 x; + u8 y; +}; + +const struct Coords8 gUnknown_085B2B68[] = { + { 7, 22}, + {11, 19}, + {10, 16}, + {15, 16} +}; + +void MauvilleGymSpecial1(void) +{ + u8 i; + for (i = 0; i < ARRAY_COUNT(gUnknown_085B2B68); i++) + { + if (i == gSpecialVar_0x8004) + { + MapGridSetMetatileIdAt(gUnknown_085B2B68[i].x, gUnknown_085B2B68[i].y, 0x206); + } + else + { + MapGridSetMetatileIdAt(gUnknown_085B2B68[i].x, gUnknown_085B2B68[i].y, 0x205); + } + } +} + +void MauvilleGymSpecial2(void) +{ + int x, y; + for (y = 12; y < 24; y++) + { + for (x = 7; x < 16; x++) + { + switch (MapGridGetMetatileIdAt(x, y)) + { + case 0x220: + MapGridSetMetatileIdAt(x, y, 0x230); + break; + case 0x221: + MapGridSetMetatileIdAt(x, y, 0x231); + break; + case 0x228: + MapGridSetMetatileIdAt(x, y, 0x238); + break; + case 0x229: + MapGridSetMetatileIdAt(x, y, 0x239); + break; + case 0x230: + MapGridSetMetatileIdAt(x, y, 0x220); + break; + case 0x231: + MapGridSetMetatileIdAt(x, y, 0x221); + break; + case 0x238: + MapGridSetMetatileIdAt(x, y, 0xe28); + break; + case 0x239: + MapGridSetMetatileIdAt(x, y, 0xe29); + break; + case 0x222: + MapGridSetMetatileIdAt(x, y, 0x232); + break; + case 0x223: + MapGridSetMetatileIdAt(x, y, 0x233); + break; + case 0x22a: + MapGridSetMetatileIdAt(x, y, 0x23a); + break; + case 0x22b: + MapGridSetMetatileIdAt(x, y, 0x23b); + break; + case 0x232: + MapGridSetMetatileIdAt(x, y, 0x222); + break; + case 0x233: + MapGridSetMetatileIdAt(x, y, 0x223); + break; + case 0x23a: + MapGridSetMetatileIdAt(x, y, 0xe2a); + break; + case 0x23b: + MapGridSetMetatileIdAt(x, y, 0xe2b); + break; + case 0x240: + MapGridSetMetatileIdAt(x, y, 0xe42); + break; + case 0x248: + MapGridSetMetatileIdAt(x, y, 0x21a); + break; + case 0x241: + MapGridSetMetatileIdAt(x, y, 0xe43); + break; + case 0x249: + MapGridSetMetatileIdAt(x, y, 0x21a); + break; + case 0x242: + MapGridSetMetatileIdAt(x, y, 0xe40); + break; + case 0x21a: + if (MapGridGetMetatileIdAt(x, y - 1) == 0x240) + { + MapGridSetMetatileIdAt(x, y, 0xe48); + } + else + { + MapGridSetMetatileIdAt(x, y, 0xe49); + } + break; + case 0x243: + MapGridSetMetatileIdAt(x, y, 0xe41); + break; + case 0x251: + MapGridSetMetatileIdAt(x, y, 0xe50); + break; + case 0x250: + MapGridSetMetatileIdAt(x, y, 0x251); + break; + } + } + } +} + +void MauvilleGymSpecial3(void) +{ + int i, x, y; + const struct Coords8 *switchCoords = gUnknown_085B2B68; + for (i = ARRAY_COUNT(gUnknown_085B2B68) - 1; i >= 0; i--) + { + MapGridSetMetatileIdAt(switchCoords->x, switchCoords->y, 0x206); + switchCoords++; + } + for (y = 12; y < 24; y++) + { + for (x = 7; x < 16; x++) + { + switch (MapGridGetMetatileIdAt(x, y)) + { + case 0x220: + MapGridSetMetatileIdAt(x, y, 0x230); + break; + case 0x221: + MapGridSetMetatileIdAt(x, y, 0x231); + break; + case 0x228: + MapGridSetMetatileIdAt(x, y, 0x238); + break; + case 0x229: + MapGridSetMetatileIdAt(x, y, 0x239); + break; + case 0x222: + MapGridSetMetatileIdAt(x, y, 0x232); + break; + case 0x223: + MapGridSetMetatileIdAt(x, y, 0x233); + break; + case 0x22a: + MapGridSetMetatileIdAt(x, y, 0x23a); + break; + case 0x22b: + MapGridSetMetatileIdAt(x, y, 0x23b); + break; + case 0x240: + MapGridSetMetatileIdAt(x, y, 0xe42); + break; + case 0x241: + MapGridSetMetatileIdAt(x, y, 0xe43); + break; + case 0x248: + case 0x249: + MapGridSetMetatileIdAt(x, y, 0x21a); + break; + case 0x250: + MapGridSetMetatileIdAt(x, y, 0x251); + break; + } + } + } +} + +static void Task_PetalburgGym(u8); +static void PetalburgGymFunc(u8, u16); +const u8 gUnknown_085B2B78[] = {0, 1, 1, 1, 1}; +const u16 gUnknown_085B2B7E[] = {0x218, 0x219, 0x21a, 0x21b, 0x21c}; + +void PetalburgGymSpecial1(void) +{ + gUnknown_0203AB5C = 0; + gUnknown_0203AB5D = 0; + PlaySE(SE_KI_GASYAN); + CreateTask(Task_PetalburgGym, 8); +} + +static void Task_PetalburgGym(u8 taskId) +{ + if (gUnknown_085B2B78[gUnknown_0203AB5D] == gUnknown_0203AB5C) + { + PetalburgGymFunc(gSpecialVar_0x8004, gUnknown_085B2B7E[gUnknown_0203AB5D]); + gUnknown_0203AB5C = 0; + if ((++gUnknown_0203AB5D) == 5) + { + DestroyTask(taskId); + EnableBothScriptContexts(); + } + } + else + { + gUnknown_0203AB5C++; + } +} + +static void PetalburgGymFunc(u8 a0, u16 a1) +{ + u16 x[4]; + u16 y[4]; + u8 i; + u8 nDoors = 0; + switch (a0) + { + case 1: + nDoors = 2; + x[0] = 1; + x[1] = 7; + y[0] = 0x68; + y[1] = 0x68; + break; + case 2: + nDoors = 2; + x[0] = 1; + x[1] = 7; + y[0] = 0x4e; + y[1] = 0x4e; + break; + case 3: + nDoors = 2; + x[0] = 1; + x[1] = 7; + y[0] = 0x5b; + y[1] = 0x5b; + break; + case 4: + nDoors = 1; + x[0] = 7; + y[0] = 0x27; + break; + case 5: + nDoors = 2; + x[0] = 1; + x[1] = 7; + y[0] = 0x34; + y[1] = 0x34; + break; + case 6: + nDoors = 1; + x[0] = 1; + y[0] = 0x41; + break; + case 7: + nDoors = 1; + x[0] = 7; + y[0] = 0xd; + break; + case 8: + nDoors = 1; + x[0] = 1; + y[0] = 0x1a; + break; + } + for (i = 0; i < nDoors; i++) + { + MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | 0xc00); + MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | 0xc00); + } + DrawWholeMapView(); +} + +void PetalburgGymSpecial2(void) +{ + PetalburgGymFunc(gSpecialVar_0x8004, gUnknown_085B2B7E[4]); +} + +void ShowFieldMessageStringVar4(void) +{ + ShowFieldMessage(gStringVar4); +} + +void StorePlayerCoordsInVars(void) +{ + gSpecialVar_0x8004 = gSaveBlock1Ptr->pos.x; + gSpecialVar_0x8005 = gSaveBlock1Ptr->pos.y; +} + +u8 GetPlayerTrainerIdOnesDigit(void) +{ + return (u16)((gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]) % 10; +} + +void GetPlayerBigGuyGirlString(void) +{ + if (gSaveBlock2Ptr->playerGender == MALE) + { + StringCopy(gStringVar1, gText_BigGuy); + } + else + { + StringCopy(gStringVar1, gText_BigGirl); + } +} + +void GetRivalSonDaughterString(void) +{ + if (gSaveBlock2Ptr->playerGender == MALE) + { + StringCopy(gStringVar1, gText_Daughter); + } + else + { + StringCopy(gStringVar1, gText_Son); + } +} + +u8 GetBattleOutcome(void) +{ + return gBattleOutcome; +} + +void CableCarWarp(void) +{ + if (gSpecialVar_0x8004 != 0) + { + Overworld_SetWarpDestination(MAP_GROUP(ROUTE112_CABLE_CAR_STATION), MAP_NUM(ROUTE112_CABLE_CAR_STATION), -1, 6, 4); + } + else + { + Overworld_SetWarpDestination(MAP_GROUP(MT_CHIMNEY_CABLE_CAR_STATION), MAP_NUM(MT_CHIMNEY_CABLE_CAR_STATION), -1, 6, 4); + } +} + +void SetFlagInVar(void) +{ + FlagSet(gSpecialVar_0x8004); +} + +u16 GetWeekCount(void) +{ + u16 weekCount = gLocalTime.days / 7; + if (weekCount > 9999) + { + weekCount = 9999; + } + return weekCount; +} + +u8 GetLeadMonFriendshipScore(void) +{ + struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()]; + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == 255) + { + return 6; + } + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 200) + { + return 5; + } + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 150) + { + return 4; + } + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 100) + { + return 3; + } + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 50) + { + return 2; + } + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 1) + { + return 1; + } + return 0; +} + +void CB2_FieldShowRegionMap(void) +{ + FieldInitRegionMap(CB2_ReturnToFieldContinueScriptPlayMapMusic); +} + +void FieldShowRegionMap(void) +{ + SetMainCallback2(CB2_FieldShowRegionMap); +} + +static void Task_PCTurnOnEffect(u8); +static void PCTurnOnEffect_0(struct Task *); +static void PCTurnOnEffect_1(s16, s8, s8); + +void DoPCTurnOnEffect(void) +{ + if (FuncIsActiveTask(Task_PCTurnOnEffect) != TRUE) + { + u8 taskId = CreateTask(Task_PCTurnOnEffect, 8); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = taskId; + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[4] = 0; + } +} + +static void Task_PCTurnOnEffect(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (task->data[0] == 0) + { + PCTurnOnEffect_0(task); + } +} + +static void PCTurnOnEffect_0(struct Task *task) +{ + u8 playerDirection; + s8 dx = 0; + s8 dy = 0; + if (task->data[3] == 6) + { + task->data[3] = 0; + playerDirection = GetPlayerFacingDirection(); + switch (playerDirection) + { + case DIR_NORTH: + dx = 0; + dy = -1; + break; + case DIR_WEST: + dx = -1; + dy = -1; + break; + case DIR_EAST: + dx = 1; + dy = -1; + break; + } + PCTurnOnEffect_1(task->data[4], dx, dy); + DrawWholeMapView(); + task->data[4] ^= 1; + if ((++task->data[2]) == 5) + { + DestroyTask(task->data[1]); + } + } + task->data[3]++; +} + +static void PCTurnOnEffect_1(s16 flag, s8 dx, s8 dy) +{ + u16 tileId = 0; + if (flag != 0) + { + if (gSpecialVar_0x8004 == 0) + { + tileId = 0x4; + } + else if (gSpecialVar_0x8004 == 1) + { + tileId = 0x25a; + } + else if (gSpecialVar_0x8004 == 2) + { + tileId = 0x259; + } + } + else + { + if (gSpecialVar_0x8004 == 0) + { + tileId = 0x5; + } + else if (gSpecialVar_0x8004 == 1) + { + tileId = 0x27f; + } + else if (gSpecialVar_0x8004 == 2) + { + tileId = 0x27e; + } + } + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00); +} + +static void PCTurnOffEffect(void); + +void DoPCTurnOffEffect(void) +{ + PCTurnOffEffect(); +} + +static void PCTurnOffEffect(void) +{ + s8 dx = 0; + s8 dy = 0; + u16 tileId = 0; + u8 playerDirection = GetPlayerFacingDirection(); + switch (playerDirection) + { + case DIR_NORTH: + dx = 0; + dy = -1; + break; + case DIR_WEST: + dx = -1; + dy = -1; + break; + case DIR_EAST: + dx = 1; + dy = -1; + break; + } + if (gSpecialVar_0x8004 == 0) + { + tileId = 0x4; + } + else if (gSpecialVar_0x8004 == 1) + { + tileId = 0x25a; + } + else if (gSpecialVar_0x8004 == 2) + { + tileId = 0x259; + } + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00); + DrawWholeMapView(); +} + +static void Task_LotteryCornerComputerEffect(u8); +static void LotteryCornerComputerEffect(struct Task *); + +void DoLotteryCornerComputerEffect(void) +{ + if (FuncIsActiveTask(Task_LotteryCornerComputerEffect) != TRUE) + { + u8 taskId = CreateTask(Task_LotteryCornerComputerEffect, 8); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = taskId; + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[4] = 0; + } +} + +static void Task_LotteryCornerComputerEffect(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (task->data[0] == 0) + { + LotteryCornerComputerEffect(task); + } +} + +static void LotteryCornerComputerEffect(struct Task *task) +{ + if (task->data[3] == 6) + { + task->data[3] = 0; + if (task->data[4] != 0) + { + MapGridSetMetatileIdAt(18, 8, 0xe9d); + MapGridSetMetatileIdAt(18, 9, 0xea5); + } + else + { + MapGridSetMetatileIdAt(18, 8, 0xe58); + MapGridSetMetatileIdAt(18, 9, 0xe60); + } + DrawWholeMapView(); + task->data[4] ^= 1; + if ((++task->data[2]) == 5) + { + DestroyTask(task->data[1]); + } + } + task->data[3]++; +} + +void EndLotteryCornerComputerEffect(void) +{ + MapGridSetMetatileIdAt(18, 8, 0xe9d); + MapGridSetMetatileIdAt(18, 9, 0xea5); + DrawWholeMapView(); +} + +void SetTrickHouseEndRoomFlag(void) +{ + u16 *specVar = &gSpecialVar_0x8004; + u16 flag = FLAG_0x1F5; + *specVar = flag; + FlagSet(flag); +} + +void ResetTrickHouseEndRoomFlag(void) +{ + u16 *specVar = &gSpecialVar_0x8004; + u16 flag = FLAG_0x1F5; + *specVar = flag; + FlagClear(flag); +} + +bool8 CheckLeadMonCool(void) +{ + if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_COOL) < 200) + { + return FALSE; + } + return TRUE; +} + +bool8 CheckLeadMonBeauty(void) +{ + if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_BEAUTY) < 200) + { + return FALSE; + } + return TRUE; +} + +bool8 CheckLeadMonCute(void) +{ + if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_CUTE) < 200) + { + return FALSE; + } + return TRUE; +} + +bool8 CheckLeadMonSmart(void) +{ + if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SMART) < 200) + { + return FALSE; + } + return TRUE; +} + +bool8 CheckLeadMonTough(void) +{ + if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_TOUGH) < 200) + { + return FALSE; + } + return TRUE; +} + +void IsGrassTypeInParty(void) +{ + u8 i; + u16 species; + struct Pokemon *pokemon; + for (i = 0; i < PARTY_SIZE; i++) + { + pokemon = &gPlayerParty[i]; + if (GetMonData(pokemon, MON_DATA_SANITY_BIT2) && !GetMonData(pokemon, MON_DATA_IS_EGG)) + { + species = GetMonData(pokemon, MON_DATA_SPECIES); + if (gBaseStats[species].type1 == TYPE_GRASS || gBaseStats[species].type2 == TYPE_GRASS) + { + gSpecialVar_Result = TRUE; + return; + } + } + } + gSpecialVar_Result = FALSE; +} + +void SpawnScriptEventObject(void) +{ + u8 obj = SpawnSpecialEventObjectParameterized(EVENT_OBJ_GFX_BOY_1, 8, 0x7F, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3); + gEventObjects[obj].invisible = TRUE; + CameraObjectSetFollowedObjectId(gEventObjects[obj].spriteId); +} + +void RemoveScriptEventObject(void) +{ + CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId()); + RemoveEventObjectByLocalIdAndMap(0x7F, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); +} + +u8 GetPokeblockNameByMonNature(void) +{ + return CopyMonFavoritePokeblockName(GetNature(&gPlayerParty[GetLeadMonIndex()]), gStringVar1); +} + +void GetSecretBaseNearbyMapName(void) +{ + GetMapName(gStringVar1, VarGet(VAR_SECRET_BASE_MAP), 0); +} + +u16 GetBestBattleTowerStreak(void) +{ + return GetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK); +} + +void BufferEReaderTrainerName(void) +{ + GetEreaderTrainerName(gStringVar1); +} + +const u8 gUnknown_085B2B88[] = {12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6}; +const u8 gUnknown_085B2B94[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5}; +const u8 gUnknown_085B2BA0[] = {3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5}; + +u16 GetSlotMachineId(void) +{ + u32 v0 = gSaveBlock1Ptr->easyChatPairs[0].unk0_0 + gSaveBlock1Ptr->easyChatPairs[0].unk2 + gUnknown_085B2B88[gSpecialVar_0x8004]; + if (GetPriceReduction(2)) + { + return gUnknown_085B2BA0[v0 % 12]; + } + return gUnknown_085B2B94[v0 % 12]; +} + +bool8 FoundAbandonedShipRoom1Key(void) +{ + u16 *specVar = &gSpecialVar_0x8004; + u16 flag = FLAG_HIDDEN_ITEM_1F; + *specVar = flag; + if (!FlagGet(flag)) + { + return FALSE; + } + return TRUE; +} + +bool8 FoundAbandonedShipRoom2Key(void) +{ + u16 *specVar = &gSpecialVar_0x8004; + u16 flag = FLAG_HIDDEN_ITEM_20; + *specVar = flag; + if (!FlagGet(flag)) + { + return FALSE; + } + return TRUE; +} + +bool8 FoundAbandonedShipRoom4Key(void) +{ + u16 *specVar = &gSpecialVar_0x8004; + u16 flag = FLAG_HIDDEN_ITEM_21; + *specVar = flag; + if (!FlagGet(flag)) + { + return FALSE; + } + return TRUE; +} + +bool8 FoundAbandonedShipRoom6Key(void) +{ + u16 *specVar = &gSpecialVar_0x8004; + u16 flag = FLAG_HIDDEN_ITEM_22; + *specVar = flag; + if (!FlagGet(flag)) + { + return FALSE; + } + return TRUE; +} + +bool8 LeadMonHasEffortRibbon(void) +{ + return GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_EFFORT_RIBBON, NULL); +} + +void GiveLeadMonEffortRibbon(void) +{ + bool8 ribbonSet; + struct Pokemon *leadMon; + IncrementGameStat(GAME_STAT_RECEIVED_RIBBONS); + FlagSet(FLAG_SYS_RIBBON_GET); + ribbonSet = TRUE; + leadMon = &gPlayerParty[GetLeadMonIndex()]; + SetMonData(leadMon, MON_DATA_EFFORT_RIBBON, &ribbonSet); + if (GetRibbonCount(leadMon) > 4) + { + sub_80EE4DC(leadMon, 0x47); + } +} + +bool8 Special_AreLeadMonEVsMaxedOut(void) +{ + if (GetMonEVCount(&gPlayerParty[GetLeadMonIndex()]) >= 510) + { + return TRUE; + } + return FALSE; +} + +u8 TryUpdateRusturfTunnelState(void) +{ + if (!FlagGet(FLAG_RUSTURF_TUNNEL_OPENED) && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(RUSTURF_TUNNEL) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(RUSTURF_TUNNEL)) + { + if (FlagGet(FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1)) + { + VarSet(VAR_RUSTURF_TUNNEL_STATE, 4); + return TRUE; + } + else if (FlagGet(FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2)) + { + VarSet(VAR_RUSTURF_TUNNEL_STATE, 5); + return TRUE; + } + } + return FALSE; +} + +void SetShoalItemFlag(u16 v0) +{ + FlagSet(FLAG_SYS_SHOAL_ITEM); +} + +void PutZigzagoonInPlayerParty(void) +{ + u16 monData; + CreateMon(&gPlayerParty[0], SPECIES_ZIGZAGOON, 7, 0x20, FALSE, 0, FALSE, 0); + monData = TRUE; + SetMonData(&gPlayerParty[0], MON_DATA_ALT_ABILITY, &monData); + monData = MOVE_TACKLE; + SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, &monData); + monData = MOVE_NONE; + SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, &monData); + SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, &monData); + SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, &monData); +} + +bool8 IsStarterInParty(void) +{ + u8 i; + u16 starter = GetStarterPokemon(VarGet(VAR_STARTER_MON)); + u8 partyCount = CalculatePlayerPartyCount(); + for (i = 0; i < partyCount; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) == starter) + { + return TRUE; + } + } + return FALSE; +} + +bool8 ScriptCheckFreePokemonStorageSpace(void) +{ + return CheckFreePokemonStorageSpace(); +} + +bool8 IsPokerusInParty(void) +{ + if (!CheckPartyPokerus(gPlayerParty, 0x3f)) + { + return FALSE; + } + return TRUE; +} + +static void sub_81395BC(u8 taskId); +static void sub_8139620(u8 taskId); + +void sub_8139560(void) +{ + u8 taskId = CreateTask(sub_81395BC, 9); + gTasks[taskId].data[0] = gSpecialVar_0x8005; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = gSpecialVar_0x8006; + gTasks[taskId].data[3] = gSpecialVar_0x8007; + gTasks[taskId].data[4] = gSpecialVar_0x8004; + SetCameraPanningCallback(NULL); + PlaySE(SE_W070); +} + +static void sub_81395BC(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + data[1]++; + if (data[1] % data[3] == 0) + { + data[1] = 0; + data[2]--; + data[0] = -data[0]; + data[4] = -data[4]; + SetCameraPanning(data[0], data[4]); + if (data[2] == 0) + { + sub_8139620(taskId); + InstallCameraPanAheadCallback(); + } + } +} + +static void sub_8139620(u8 taskId) +{ + DestroyTask(taskId); + EnableBothScriptContexts(); +} + +bool8 FoundBlackGlasses(void) +{ + return FlagGet(FLAG_HIDDEN_ITEM_BLACK_GLASSES); +} + +void SetRoute119Weather(void) +{ + if (is_map_type_1_2_3_5_or_6(get_map_light_from_warp0()) != TRUE) + { + SetSav1Weather(0x14); + } +} + +void SetRoute123Weather(void) +{ + if (is_map_type_1_2_3_5_or_6(get_map_light_from_warp0()) != TRUE) + { + SetSav1Weather(0x15); + } +} + +u8 GetLeadMonIndex(void) +{ + u8 i; + u8 partyCount = CalculatePlayerPartyCount(); + for (i = 0; i < partyCount; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != 0) + { + return i; + } + } + return 0; +} + +u16 ScriptGetPartyMonSpecies(void) +{ + return GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES2, NULL); +} + +void nullsub_54(void) +{ + +} + +u16 GetDaysUntilPacifidlogTMAvailable(void) +{ + u16 tmReceivedDay = VarGet(VAR_PACIFIDLOG_TM_RECEIVED_DAY); + if (gLocalTime.days - tmReceivedDay >= 7) + { + return 0; + } + else if (gLocalTime.days < 0) + { + return 8; + } + return 7 - (gLocalTime.days - tmReceivedDay); +} + +u16 SetPacifidlogTMReceivedDay(void) +{ + VarSet(VAR_PACIFIDLOG_TM_RECEIVED_DAY, gLocalTime.days); + return gLocalTime.days; +} + +bool8 MonOTNameMatchesPlayer(void) +{ + if (GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_LANGUAGE) != GAME_LANGUAGE) + return TRUE; // huh? + + GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_OT_NAME, gStringVar1); + if (!StringCompare(gSaveBlock2Ptr->playerName, gStringVar1)) + { + return FALSE; + } + return TRUE; +} + +void BufferLottoTicketNumber(void) +{ + if (gSpecialVar_Result >= 10000) + { + TV_PrintIntToStringVar(0, gSpecialVar_Result); + } + else if (gSpecialVar_Result >= 1000) + { + gStringVar1[0] = CHAR_0; + ConvertIntToDecimalStringN(gStringVar1 + 1, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result)); + } + else if (gSpecialVar_Result >= 100) + { + gStringVar1[0] = CHAR_0; + gStringVar1[1] = CHAR_0; + ConvertIntToDecimalStringN(gStringVar1 + 2, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result)); + } + else if (gSpecialVar_Result >= 10) + { + gStringVar1[0] = CHAR_0; + gStringVar1[1] = CHAR_0; + gStringVar1[2] = CHAR_0; + ConvertIntToDecimalStringN(gStringVar1 + 3, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result)); + } + else + { + gStringVar1[0] = CHAR_0; + gStringVar1[1] = CHAR_0; + gStringVar1[2] = CHAR_0; + gStringVar1[3] = CHAR_0; + ConvertIntToDecimalStringN(gStringVar1 + 4, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result)); + } +} + +u16 sub_813986C(void) +{ + switch (gSpecialVar_Result) + { + case 0: + return mevent_081445C0(3); + case 1: + return mevent_081445C0(4); + case 2: + return mevent_081445C0(0); + case 3: + return mevent_081445C0(1); + case 4: + return mevent_081445C0(2); + default: + return 0; + } +} + +bool8 sub_81398C0(void) +{ + if (gSpecialVar_0x8004 >= ITEM_TM01 && gSpecialVar_0x8004 <= ITEM_HM08) + { + StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_0x8004)]); + return TRUE; + } + + return FALSE; +} + +bool8 sub_813990C(void) +{ + u8 partyCount = CalculatePlayerPartyCount(); + u8 i; + + for (i = 0; i < partyCount; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT1) == 1) + return TRUE; + } + + return FALSE; +} + +bool8 InMultiBattleRoom(void) +{ + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM) + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM) && + VarGet(VAR_0x40CE) == 2) + return TRUE; + return FALSE; +} + +void sub_8139980(void) +{ + SetCameraPanningCallback(NULL); + SetCameraPanning(8, 0); +} + +void SetDepartmentStoreFloorVar(void) +{ + u8 deptStoreFloor; + switch (gSaveBlock1Ptr->warp2.mapNum) + { + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F): + deptStoreFloor = 4; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F): + deptStoreFloor = 5; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F): + deptStoreFloor = 6; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F): + deptStoreFloor = 7; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F): + deptStoreFloor = 8; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP): + deptStoreFloor = 15; + break; + default: + deptStoreFloor = 4; + break; + } + VarSet(VAR_DEPT_STORE_FLOOR, deptStoreFloor); +} diff --git a/src/match_call.c b/src/match_call.c index aa6945161a..99eb6d65a3 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -360,7 +360,7 @@ MATCHCALLDEF(sMomMatchCallHeader, 0, 0, FLAG_0x0D8, gMomMatchCallDesc, gMomMatch static const match_call_text_data_t sStevenTextScripts[] = { { gText_Steven_Pokenav_2B5B95, 0xffff, 0xffff }, - { gText_Steven_Pokenav_2B5C53, FLAG_0x0C7, 0xffff }, + { gText_Steven_Pokenav_2B5C53, FLAG_RUSTURF_TUNNEL_OPENED, 0xffff }, { gText_Steven_Pokenav_2B5CC9, FLAG_0x0D4, 0xffff }, { gText_Steven_Pokenav_2B5DB4, FLAG_0x070, 0xffff }, { gText_Steven_Pokenav_2B5E26, FLAG_0x4F6, 0xffff }, @@ -415,7 +415,7 @@ MATCHCALLDEF(sBrendanMatchCallHeader, 4, FEMALE, FLAG_0x0FD, gMayBrendanMatchCal static const match_call_text_data_t sWallyTextScripts[] = { { gText_Wally_Pokenav_2B4DE2, 0xFFFF, 0xFFFF }, - { gText_Wally_Pokenav_2B4E57, FLAG_0x0C7, 0xFFFF }, + { gText_Wally_Pokenav_2B4E57, FLAG_RUSTURF_TUNNEL_OPENED, 0xFFFF }, { gText_Wally_Pokenav_2B4EA5, FLAG_0x4F3, 0xFFFF }, { gText_Wally_Pokenav_2B4F41, FLAG_0x097, 0xFFFF }, { gText_Wally_Pokenav_2B4FF3, FLAG_0x06F, 0xFFFF }, diff --git a/src/region_map.c b/src/region_map.c index 5176d49968..4ed856c09b 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -52,7 +52,7 @@ static EWRAM_DATA struct { /*0x88c*/ u8 unk_88c[0x1c0]; /*0xa4c*/ u8 unk_a4c[0x26]; /*0xa72*/ bool8 unk_a72; -} *gUnknown_0203A148 = NULL; // a74 +} *sFlyMap = NULL; // a74 static bool32 gUnknown_03001180; static bool32 gUnknown_03001184; @@ -1578,8 +1578,8 @@ void MCB2_FlyMap(void) SetGpuReg(REG_OFFSET_BG2HOFS, 0); SetGpuReg(REG_OFFSET_BG3HOFS, 0); SetGpuReg(REG_OFFSET_BG3VOFS, 0); - gUnknown_0203A148 = malloc(sizeof(*gUnknown_0203A148)); - if (gUnknown_0203A148 == NULL) + sFlyMap = malloc(sizeof(*sFlyMap)); + if (sFlyMap == NULL) { SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); } @@ -1608,11 +1608,11 @@ void MCB2_FlyMap(void) gMain.state++; break; case 4: - InitRegionMap(&gUnknown_0203A148->regionMap, FALSE); + InitRegionMap(&sFlyMap->regionMap, FALSE); CreateRegionMapCursor(0, 0); CreateRegionMapPlayerIcon(1, 1); - gUnknown_0203A148->mapSecId = gUnknown_0203A148->regionMap.mapSecId; - StringFill(gUnknown_0203A148->unk_a4c, CHAR_SPACE, 16); + sFlyMap->mapSecId = sFlyMap->regionMap.mapSecId; + StringFill(sFlyMap->unk_a4c, CHAR_SPACE, 16); gUnknown_03001180 = TRUE; sub_8124904(); gMain.state++; @@ -1664,7 +1664,7 @@ static void sub_81248C0(void) static void sub_81248D4(void) { - gUnknown_0203A148->unk_000(); + sFlyMap->unk_000(); AnimateSprites(); BuildOamBuffer(); do_scheduled_bg_tilemap_copies_to_vram(); @@ -1672,8 +1672,8 @@ static void sub_81248D4(void) static void sub_81248F4(void callback(void)) { - gUnknown_0203A148->unk_000 = callback; - gUnknown_0203A148->unk_004 = 0; + sFlyMap->unk_000 = callback; + sFlyMap->unk_004 = 0; } static void sub_8124904(void) @@ -1682,21 +1682,21 @@ static void sub_8124904(void) bool32 flag; const u8 *name; - if (gUnknown_0203A148->regionMap.iconDrawType > MAPSECTYPE_NONE && gUnknown_0203A148->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER) + if (sFlyMap->regionMap.iconDrawType > MAPSECTYPE_NONE && sFlyMap->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER) { flag = FALSE; for (i = 0; i < 1; i++) { - if (gUnknown_0203A148->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId) + if (sFlyMap->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId) { if (FlagGet(gUnknown_085A1EDC[i].flag)) { - StringLength(gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec]); + StringLength(gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]); flag = TRUE; sub_8198070(0, FALSE); SetWindowBorderStyle(1, FALSE, 0x65, 0x0d); - PrintTextOnWindow(1, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL); - name = gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec]; + PrintTextOnWindow(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); + name = gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]; PrintTextOnWindow(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gUnknown_03001180 = TRUE; @@ -1715,7 +1715,7 @@ static void sub_8124904(void) { FillWindowPixelBuffer(0, 0x11); } - PrintTextOnWindow(0, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL); + PrintTextOnWindow(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gUnknown_03001180 = FALSE; } @@ -1739,8 +1739,8 @@ static void sub_8124A70(void) { struct SpriteSheet sheet; - LZ77UnCompWram(sUnknown_085A1D68, gUnknown_0203A148->unk_88c); - sheet.data = gUnknown_0203A148->unk_88c; + LZ77UnCompWram(sUnknown_085A1D68, sFlyMap->unk_88c); + sheet.data = sFlyMap->unk_88c; sheet.size = 0x1c0; sheet.tag = 2; LoadSpriteSheet(&sheet); @@ -1829,7 +1829,7 @@ static void sub_8124BE4(void) static void sub_8124CBC(struct Sprite *sprite) { - if (gUnknown_0203A148->regionMap.mapSecId == sprite->data[0]) + if (sFlyMap->regionMap.mapSecId == sprite->data[0]) { if (++sprite->data[1] > 16) { @@ -1846,11 +1846,11 @@ static void sub_8124CBC(struct Sprite *sprite) static void sub_8124D14(void) { - switch (gUnknown_0203A148->unk_004) + switch (sFlyMap->unk_004) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); - gUnknown_0203A148->unk_004++; + sFlyMap->unk_004++; break; case 1: if (!UpdatePaletteFade()) @@ -1863,7 +1863,7 @@ static void sub_8124D14(void) static void sub_8124D64(void) { - if (gUnknown_0203A148->unk_004 == 0) + if (sFlyMap->unk_004 == 0) { switch (sub_81230AC()) { @@ -1875,16 +1875,16 @@ static void sub_8124D64(void) sub_8124904(); break; case INPUT_EVENT_A_BUTTON: - if (gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER) + if (sFlyMap->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || sFlyMap->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER) { m4aSongNumStart(SE_SELECT); - gUnknown_0203A148->unk_a72 = TRUE; + sFlyMap->unk_a72 = TRUE; sub_81248F4(sub_8124E0C); } break; case INPUT_EVENT_B_BUTTON: m4aSongNumStart(SE_SELECT); - gUnknown_0203A148->unk_a72 = FALSE; + sFlyMap->unk_a72 = FALSE; sub_81248F4(sub_8124E0C); break; } @@ -1893,19 +1893,19 @@ static void sub_8124D64(void) static void sub_8124E0C(void) { - switch (gUnknown_0203A148->unk_004) + switch (sFlyMap->unk_004) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gUnknown_0203A148->unk_004++; + sFlyMap->unk_004++; break; case 1: if (!UpdatePaletteFade()) { FreeRegionMapIconResources(); - if (gUnknown_0203A148->unk_a72) + if (sFlyMap->unk_a72) { - switch (gUnknown_0203A148->regionMap.mapSecId) + switch (sFlyMap->regionMap.mapSecId) { case MAPSEC_SOUTHERN_ISLAND: sub_8084CCC(0x15); @@ -1917,16 +1917,16 @@ static void sub_8124E0C(void) sub_8084CCC(gSaveBlock2Ptr->playerGender == MALE ? 0x0C : 0x0D); break; case MAPSEC_EVER_GRANDE_CITY: - sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && gUnknown_0203A148->regionMap.posWithinMapSec == 0 ? 0x14 : 0x0B); + sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && sFlyMap->regionMap.posWithinMapSec == 0 ? 0x14 : 0x0B); break; default: - if (sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2] != 0) + if (sUnknown_085A1E3C[sFlyMap->regionMap.mapSecId][2] != 0) { - sub_8084CCC(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2]); + sub_8084CCC(sUnknown_085A1E3C[sFlyMap->regionMap.mapSecId][2]); } else { - warp1_set_2(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][0], sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][1], -1); + warp1_set_2(sUnknown_085A1E3C[sFlyMap->regionMap.mapSecId][0], sUnknown_085A1E3C[sFlyMap->regionMap.mapSecId][1], -1); } break; } @@ -1936,10 +1936,10 @@ static void sub_8124E0C(void) { SetMainCallback2(sub_81B58A8); } - if (gUnknown_0203A148 != NULL) + if (sFlyMap != NULL) { - free(gUnknown_0203A148); - gUnknown_0203A148 = NULL; + free(sFlyMap); + sFlyMap = NULL; } FreeAllWindowBuffers(); } diff --git a/src/wallclock.c b/src/wallclock.c index 9b96d416cc..3d95d75aca 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -602,7 +602,7 @@ static void WallClockInit(void) ShowBg(3); } -void Cb2_StartWallClock(void) +void CB2_StartWallClock(void) { u8 taskId; u8 spriteId; @@ -644,7 +644,7 @@ void Cb2_StartWallClock(void) schedule_bg_copy_tilemap_to_vram(2); } -void Cb2_ViewWallClock(void) +void CB2_ViewWallClock(void) { u8 taskId; u8 spriteId; diff --git a/sym_ewram.txt b/sym_ewram.txt index 9a08597a83..1832e22402 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -603,21 +603,7 @@ gPlayerFacingPosition: @ 203AB40 .space 0x8 .include "src/pokeblock.o" - -gBikeCyclingChallenge: @ 203AB54 - .space 0x1 - -gBikeCollisions: @ 203AB55 - .space 0x3 - -gUnknown_0203AB58: @ 203AB58 - .space 0x4 - -gUnknown_0203AB5C: @ 203AB5C - .space 0x1 - -gUnknown_0203AB5D: @ 203AB5D - .space 0x1 + .include "src/field_specials.o" gUnknown_0203AB5E: @ 203AB5E .space 0x2 From bad170b0cb7a0a7ecb8725e6fc458a39c11a7e4d Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 8 Aug 2018 23:53:21 -0700 Subject: [PATCH 062/174] Continue decompiling field_specials --- asm/battle_frontier_2.s | 2 +- asm/field_specials.s | 1301 ----------------- asm/script_menu.s | 2 +- data/field_specials.s | 305 ---- .../scripts.inc | 2 +- .../scripts.inc | 2 +- data/maps/TrainerHill_Elevator/scripts.inc | 2 +- data/specials.inc | 2 +- include/global.h | 24 +- include/menu.h | 2 +- include/script_menu.h | 3 +- include/strings.h | 175 +++ src/field_specials.c | 1061 ++++++++++++++ src/main_menu.c | 2 +- src/menu.c | 2 +- src/scrcmd.c | 2 +- sym_common.txt | 3 +- sym_ewram.txt | 30 - 18 files changed, 1259 insertions(+), 1663 deletions(-) diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 2ab474037c..38e0d2e621 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -11843,7 +11843,7 @@ sub_81A0784: @ 81A0784 movs r1, 0 adds r2, r4, 0 adds r3, r5, 0 - bl sub_8198A50 + bl CreateWindowTemplate ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] str r0, [sp, 0x18] diff --git a/asm/field_specials.s b/asm/field_specials.s index 3f0ba5ad84..6e6329a421 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -5,1307 +5,6 @@ .text - thumb_func_start sub_81399F4 -sub_81399F4: @ 81399F4 - push {r4,lr} - ldr r2, =gUnknown_0203AB60 - movs r0, 0 - strh r0, [r2] - ldr r1, =gUnknown_0203AB62 - strh r0, [r1] - ldr r0, =gSaveBlock1Ptr - ldr r3, [r0] - movs r0, 0x14 - ldrsb r0, [r3, r0] - adds r4, r1, 0 - cmp r0, 0xD - bne _08139A6E - ldrb r0, [r3, 0x15] - subs r0, 0x10 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _08139A6E - lsls r0, 2 - ldr r1, =_08139A34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08139A34: - .4byte _08139A66 - .4byte _08139A5E - .4byte _08139A56 - .4byte _08139A4E - .4byte _08139A48 -_08139A48: - movs r0, 0 - strh r0, [r2] - b _08139A6C -_08139A4E: - movs r0, 0 - strh r0, [r2] - movs r0, 0x1 - b _08139A6C -_08139A56: - movs r0, 0 - strh r0, [r2] - movs r0, 0x2 - b _08139A6C -_08139A5E: - movs r0, 0 - strh r0, [r2] - movs r0, 0x3 - b _08139A6C -_08139A66: - movs r0, 0 - strh r0, [r2] - movs r0, 0x4 -_08139A6C: - strh r0, [r4] -_08139A6E: - ldrh r0, [r4] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81399F4 - - thumb_func_start sub_8139A78 -sub_8139A78: @ 8139A78 - push {r4-r6,lr} - ldr r0, =sub_8139AF4 - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r3, 0 - strh r3, [r4, 0x2] - strh r3, [r4, 0x4] - movs r6, 0x1 - strh r6, [r4, 0x8] - ldr r0, =gSpecialVar_0x8005 - ldr r1, =gSpecialVar_0x8006 - ldrh r2, [r0] - ldrh r0, [r1] - cmp r2, r0 - bls _08139AC0 - subs r0, r2, r0 - lsls r0, 16 - lsrs r5, r0, 16 - strh r6, [r4, 0xC] - b _08139AC8 - .pool -_08139AC0: - subs r0, r2 - lsls r0, 16 - lsrs r5, r0, 16 - strh r3, [r4, 0xC] -_08139AC8: - cmp r5, 0x8 - bls _08139ACE - movs r5, 0x8 -_08139ACE: - ldr r0, =gUnknown_085B2C18 - adds r0, r5, r0 - ldrb r0, [r0] - strh r0, [r4, 0xA] - movs r0, 0 - bl SetCameraPanningCallback - ldrb r1, [r4, 0xC] - adds r0, r5, 0 - bl sub_8139C2C - movs r0, 0x59 - bl PlaySE - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139A78 - - thumb_func_start sub_8139AF4 -sub_8139AF4: @ 8139AF4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _08139B54 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - movs r2, 0x8 - ldrsh r1, [r4, r2] - movs r0, 0 - bl SetCameraPanning - movs r0, 0x4 - ldrsh r1, [r4, r0] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08139B54 - movs r0, 0x49 - bl PlaySE - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts - bl InstallCameraPanAheadCallback -_08139B54: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139AF4 - - thumb_func_start sub_8139B60 -sub_8139B60: @ 8139B60 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - ldr r5, =gUnknown_0203AB5E - ldr r0, =gUnknown_085B2BAC - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, 0 - bl SetStandardWindowBorderStyle - ldr r4, =gText_ElevatorNowOn - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x40 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - ldrb r0, [r5] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - mov r8, r1 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - bl PrintTextOnWindow - ldr r6, =gElevatorFloorsTable - ldr r4, =gSpecialVar_0x8005 - ldrh r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - movs r0, 0x1 - movs r2, 0x40 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - ldrb r0, [r5] - ldrh r1, [r4] - lsls r1, 2 - adds r1, r6 - ldr r2, [r1] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x11 - str r1, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x1 - bl PrintTextOnWindow - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r5] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139B60 - - thumb_func_start sub_8139C10 -sub_8139C10: @ 8139C10 - push {r4,lr} - ldr r4, =gUnknown_0203AB5E - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8198070 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139C10 - - thumb_func_start sub_8139C2C -sub_8139C2C: @ 8139C2C - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r4, =sub_8139C80 - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08139C6C - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - strh r5, [r1, 0xC] - ldr r0, =gUnknown_085B2C21 - adds r0, r6, r0 - ldrb r0, [r0] - strh r0, [r1, 0xE] -_08139C6C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139C2C - - thumb_func_start sub_8139C80 -sub_8139C80: @ 8139C80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r0, 2 - ldr r1, [sp] - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - movs r2, 0x2 - ldrsh r0, [r6, r2] - cmp r0, 0x6 - bne _08139D7C - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08139D10 - movs r1, 0 - ldr r2, =gUnknown_085B2BF4 - mov r10, r2 -_08139CBA: - movs r5, 0 - adds r7, r1, 0x7 - lsls r0, r1, 1 - adds r2, r1, 0x1 - mov r8, r2 - adds r0, r1 - lsls r0, 1 - mov r9, r0 -_08139CCA: - adds r4, r5, 0 - adds r4, 0x8 - movs r1, 0 - ldrsh r0, [r6, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 15 - add r0, r9 - add r0, r10 - ldrh r0, [r0] - movs r1, 0xC0 - lsls r1, 4 - adds r2, r1, 0 - orrs r2, r0 - adds r0, r4, 0 - adds r1, r7, 0 - bl MapGridSetMetatileIdAt - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08139CCA - mov r2, r8 - lsls r0, r2, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _08139CBA - b _08139D62 - .pool -_08139D10: - movs r1, 0 - ldr r0, =gUnknown_085B2C06 - mov r10, r0 -_08139D16: - movs r5, 0 - adds r7, r1, 0x7 - lsls r0, r1, 1 - adds r2, r1, 0x1 - mov r8, r2 - adds r0, r1 - lsls r0, 1 - mov r9, r0 -_08139D26: - adds r4, r5, 0 - adds r4, 0x8 - movs r1, 0 - ldrsh r0, [r6, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 15 - add r0, r9 - add r0, r10 - ldrh r0, [r0] - movs r1, 0xC0 - lsls r1, 4 - adds r2, r1, 0 - orrs r2, r0 - adds r0, r4, 0 - adds r1, r7, 0 - bl MapGridSetMetatileIdAt - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08139D26 - mov r2, r8 - lsls r0, r2, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _08139D16 -_08139D62: - bl DrawWholeMapView - movs r0, 0 - strh r0, [r6, 0x2] - movs r0, 0 - ldrsh r1, [r6, r0] - movs r2, 0x6 - ldrsh r0, [r6, r2] - cmp r1, r0 - bne _08139D7C - ldr r0, [sp] - bl DestroyTask -_08139D7C: - ldrh r0, [r6, 0x2] - adds r0, 0x1 - strh r0, [r6, 0x2] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139C80 - - thumb_func_start sub_8139D98 -sub_8139D98: @ 8139D98 - push {r4-r7,lr} - sub sp, 0x18 - ldr r6, =gSpecialVar_0x8004 - ldrh r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x27 - bl GetMonData - str r0, [sp] - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x28 - bl GetMonData - str r0, [sp, 0x4] - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x29 - bl GetMonData - str r0, [sp, 0x8] - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x2A - bl GetMonData - str r0, [sp, 0xC] - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x2B - bl GetMonData - str r0, [sp, 0x10] - ldrh r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x2C - bl GetMonData - str r0, [sp, 0x14] - ldr r1, =gSpecialVar_0x8005 - movs r0, 0 - strh r0, [r1] - movs r4, 0 - adds r2, r1, 0 -_08139E00: - lsls r0, r4, 2 - add r0, sp - ldr r1, [r0] - ldrh r0, [r2] - adds r0, r1 - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08139E00 - ldr r2, =gSpecialVar_0x8006 - movs r0, 0 - strh r0, [r2] - ldr r1, =gSpecialVar_0x8007 - ldr r0, [sp] - strh r0, [r1] - movs r4, 0x1 - adds r6, r2, 0 - adds r7, r1, 0 -_08139E28: - ldrh r0, [r6] - lsls r0, 2 - mov r2, sp - adds r1, r2, r0 - lsls r0, r4, 2 - adds r5, r2, r0 - ldr r1, [r1] - ldr r0, [r5] - cmp r1, r0 - bcs _08139E54 - strh r4, [r6] - b _08139E6C - .pool -_08139E54: - cmp r1, r0 - bne _08139E6E - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08139E6E - strh r4, [r6] - ldr r0, [r5] -_08139E6C: - strh r0, [r7] -_08139E6E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08139E28 - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8139D98 - - thumb_func_start warp0_in_pokecenter -warp0_in_pokecenter: @ 8139E80 - push {r4,lr} - ldr r0, =gUnknown_020322DC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 8 - ldrb r0, [r0, 0x1] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r2, =gUnknown_085B2C2A - ldrh r0, [r2] - ldr r1, =0x0000ffff - cmp r0, r1 - beq _08139EC6 - adds r4, r1, 0 - adds r1, r2, 0 -_08139EA4: - ldrh r0, [r2] - cmp r0, r3 - bne _08139EBC - movs r0, 0x1 - b _08139EC8 - .pool -_08139EBC: - adds r1, 0x2 - adds r2, 0x2 - ldrh r0, [r1] - cmp r0, r4 - bne _08139EA4 -_08139EC6: - movs r0, 0 -_08139EC8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end warp0_in_pokecenter - - thumb_func_start sub_8139ED0 -sub_8139ED0: @ 8139ED0 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldr r0, =0x00003c1a - cmp r1, r0 - beq _08139EEC - movs r0, 0x1 - b _08139EEE - .pool -_08139EEC: - movs r0, 0 -_08139EEE: - pop {r1} - bx r1 - thumb_func_end sub_8139ED0 - - thumb_func_start UpdateFrontierManiac -UpdateFrontierManiac: @ 8139EF4 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =0x0000402f - bl GetVarPointer - adds r5, r0, 0 - ldrh r0, [r5] - adds r4, r0 - strh r4, [r5] - ldrh r0, [r5] - movs r1, 0xA - bl __umodsi3 - strh r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end UpdateFrontierManiac - - thumb_func_start sub_8139F20 -sub_8139F20: @ 8139F20 - push {r4-r7,lr} - movs r4, 0 - ldr r0, =0x0000402f - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x9 - bls _08139F34 - b _0813A03A -_08139F34: - lsls r0, r6, 2 - ldr r1, =_08139F48 - adds r1, r0, r1 - ldr r1, [r1] - adds r2, r0, 0 - mov pc, r1 - .pool - .align 2, 0 -_08139F48: - .4byte _08139F70 - .4byte _08139F70 - .4byte _08139F70 - .4byte _08139F70 - .4byte _08139F94 - .4byte _08139FB4 - .4byte _08139FCC - .4byte _08139FE4 - .4byte _08139FFC - .4byte _0813A014 -_08139F70: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r3, 0xCE - lsls r3, 4 - adds r1, r0, r3 - adds r3, r1, r2 - ldr r1, =0x00000ce2 - adds r0, r1 - adds r1, r0, r2 - ldrh r0, [r3] - ldrh r2, [r1] - cmp r0, r2 - bcs _0813A028 - b _0813A038 - .pool -_08139F94: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d0c - adds r2, r0, r3 - adds r3, 0x2 -_08139F9E: - adds r1, r0, r3 - ldrh r0, [r2] - ldrh r3, [r1] - cmp r0, r3 - bcs _0813A028 - b _0813A038 - .pool -_08139FB4: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000de2 - adds r2, r0, r1 - ldr r3, =0x00000de4 - b _08139F9E - .pool -_08139FCC: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000dc8 - adds r2, r0, r1 - ldr r3, =0x00000dca - b _08139F9E - .pool -_08139FE4: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000dda - adds r2, r0, r1 - ldr r3, =0x00000ddc - b _08139F9E - .pool -_08139FFC: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000e04 - adds r2, r0, r1 - ldr r3, =0x00000e06 - b _08139F9E - .pool -_0813A014: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000e1a - adds r2, r0, r1 - ldr r3, =0x00000e1c - adds r1, r0, r3 - ldrh r0, [r2] - ldrh r3, [r1] - cmp r0, r3 - bcc _0813A038 -_0813A028: - adds r4, r0, 0 - b _0813A03A - .pool -_0813A038: - ldrh r4, [r1] -_0813A03A: - movs r2, 0 - ldr r5, =gUnknown_085B2CC8 - lsls r0, r6, 1 - adds r1, r0, r5 - ldrb r1, [r1] - adds r3, r0, 0 - ldr r7, =gUnknown_085B2C50 - cmp r1, r4 - bcs _0813A062 - adds r1, r3, 0 -_0813A04E: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1 - bhi _0813A062 - adds r0, r2, r1 - adds r0, r5 - ldrb r0, [r0] - cmp r0, r4 - bcc _0813A04E -_0813A062: - adds r0, r3, r6 - adds r0, r2 - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - bl ShowFieldMessage - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8139F20 - - thumb_func_start sub_813A080 -sub_813A080: @ 813A080 - push {r4-r7,lr} - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r4, r0, 30 - cmp r5, 0x2 - bne _0813A0D8 - movs r0, 0xA9 - lsls r0, 1 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0813A0D8 - ldr r1, =gSpecialVar_0x8005 - movs r0, 0x5 - strh r0, [r1] - ldr r1, =gSpecialVar_0x8006 - movs r0, 0x4 - strh r0, [r1] - b _0813A110 - .pool -_0813A0D0: - movs r0, 0x4 - strh r0, [r6] - adds r0, r3, 0x5 - b _0813A10E -_0813A0D8: - movs r3, 0 - ldr r6, =gSpecialVar_0x8005 - ldr r7, =gSpecialVar_0x8006 - lsls r1, r4, 1 - lsls r2, r5, 2 - ldr r4, =gUnknown_085B2CDC - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r1, r2 - movs r2, 0xCE - lsls r2, 4 - adds r0, r2 - adds r0, r1 - ldrh r1, [r0] -_0813A0F4: - lsls r0, r3, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r1 - bhi _0813A0D0 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _0813A0F4 - movs r0, 0x4 - strh r0, [r6] - movs r0, 0xC -_0813A10E: - strh r0, [r7] -_0813A110: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A080 - - thumb_func_start sub_813A128 -sub_813A128: @ 813A128 - push {r4,lr} - ldr r0, =sub_813A2DC - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks - adds r3, r0, r1 - ldr r1, =gSpecialVar_0x8004 - ldrh r0, [r1] - strh r0, [r3, 0x1E] - ldrh r0, [r1] - cmp r0, 0xC - bls _0813A14E - b _0813A2C6 -_0813A14E: - lsls r0, 2 - ldr r1, =_0813A168 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0813A168: - .4byte _0813A19C - .4byte _0813A1AA - .4byte _0813A1C2 - .4byte _0813A1D6 - .4byte _0813A1F0 - .4byte _0813A208 - .4byte _0813A222 - .4byte _0813A23C - .4byte _0813A25A - .4byte _0813A274 - .4byte _0813A274 - .4byte _0813A28E - .4byte _0813A2A8 -_0813A19C: - movs r1, 0 - movs r0, 0x1 - strh r0, [r3, 0x8] - strh r0, [r3, 0xA] - strh r0, [r3, 0xC] - strh r0, [r3, 0xE] - b _0813A2BC -_0813A1AA: - movs r1, 0 - movs r0, 0x5 - strh r0, [r3, 0x8] - movs r0, 0x8 - strh r0, [r3, 0xA] - movs r0, 0x1 - strh r0, [r3, 0xC] - strh r0, [r3, 0xE] - movs r0, 0x9 - strh r0, [r3, 0x10] - movs r0, 0xA - b _0813A2BE -_0813A1C2: - movs r2, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r1, 0xC - strh r1, [r3, 0xA] - movs r0, 0x1 - strh r0, [r3, 0xC] - strh r0, [r3, 0xE] - movs r0, 0x7 - b _0813A250 -_0813A1D6: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0xB - strh r0, [r3, 0xA] - movs r0, 0xE - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xF - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A1F0: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - strh r0, [r3, 0xA] - movs r0, 0xE - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xF - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A208: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0x7 - strh r0, [r3, 0xA] - movs r0, 0xE - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xF - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A222: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0xA - strh r0, [r3, 0xA] - movs r0, 0xE - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xF - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A23C: - movs r2, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r1, 0xC - strh r1, [r3, 0xA] - movs r0, 0xF - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xE -_0813A250: - strh r0, [r3, 0x10] - strh r1, [r3, 0x12] - strh r2, [r3, 0x14] - strh r4, [r3, 0x26] - b _0813A2D2 -_0813A25A: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0xA - strh r0, [r3, 0xA] - movs r0, 0x11 - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xB - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A274: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0xB - strh r0, [r3, 0xA] - movs r0, 0xF - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xE - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A28E: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0x7 - strh r0, [r3, 0xA] - movs r0, 0x13 - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xA - strh r0, [r3, 0x10] - movs r0, 0xC - b _0813A2BE -_0813A2A8: - movs r1, 0 - movs r0, 0x6 - strh r0, [r3, 0x8] - movs r0, 0x7 - strh r0, [r3, 0xA] - movs r0, 0x11 - strh r0, [r3, 0xC] - movs r0, 0x1 - strh r0, [r3, 0xE] - movs r0, 0xC -_0813A2BC: - strh r0, [r3, 0x10] -_0813A2BE: - strh r0, [r3, 0x12] - strh r1, [r3, 0x14] - strh r4, [r3, 0x26] - b _0813A2D2 -_0813A2C6: - ldr r1, =gSpecialVar_Result - movs r0, 0x7F - strh r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_0813A2D2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A128 - - thumb_func_start sub_813A2DC -sub_813A2DC: @ 813A2DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, =gTasks - adds r6, r0, r1 - bl ScriptContext2_Enable - ldr r0, =gUnknown_0203AB68 - movs r5, 0 - strh r5, [r0] - ldr r1, =gUnknown_0203AB6C - movs r0, 0x40 - strb r0, [r1] - ldrh r0, [r6, 0x1E] - movs r1, 0 - bl sub_813AA60 - ldrb r0, [r6, 0x1E] - movs r1, 0 - bl sub_813ACE8 - ldr r4, =gUnknown_0203AB64 - movs r1, 0xA - ldrsh r0, [r6, r1] - lsls r0, 3 - bl AllocZeroed - str r0, [r4] - ldr r0, =gUnknown_0203AB6A - strh r5, [r0] - bl sub_813A42C - movs r3, 0 - movs r4, 0 - movs r2, 0xA - ldrsh r0, [r6, r2] - add r1, sp, 0x18 - mov r8, r1 - cmp r3, r0 - bge _0813A36A - ldr r5, =gUnknown_085B2CF0 -_0813A33A: - lsls r1, r4, 2 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r1, r5 - ldr r0, [r1] - ldr r1, =gUnknown_0203AB64 - ldr r2, [r1] - lsls r1, r4, 3 - adds r1, r2 - str r0, [r1] - str r4, [r1, 0x4] - adds r1, r3, 0 - bl display_text_and_get_width - adds r3, r0, 0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - movs r2, 0xA - ldrsh r0, [r6, r2] - cmp r4, r0 - blt _0813A33A -_0813A36A: - adds r0, r3, 0 - bl convert_pixel_width_to_tile_width - strh r0, [r6, 0x10] - movs r1, 0xC - ldrsh r0, [r6, r1] - movs r2, 0x10 - ldrsh r1, [r6, r2] - adds r0, r1 - cmp r0, 0x1D - ble _0813A38C - movs r0, 0x1D - subs r0, r1 - cmp r0, 0 - bge _0813A38A - movs r0, 0 -_0813A38A: - strh r0, [r6, 0xC] -_0813A38C: - ldrb r2, [r6, 0xC] - ldrb r3, [r6, 0xE] - ldrb r0, [r6, 0x10] - str r0, [sp] - ldrb r0, [r6, 0x12] - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - movs r0, 0x64 - str r0, [sp, 0xC] - add r0, sp, 0x10 - movs r1, 0 - bl sub_8198A50 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - mov r0, r8 - bl AddWindow - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x22] - movs r1, 0 - bl SetStandardWindowBorderStyle - ldr r4, =gUnknown_030061D0 - ldrh r0, [r6, 0xA] - strh r0, [r4, 0xC] - ldrh r0, [r6, 0x8] - strh r0, [r4, 0xE] - ldrh r0, [r6, 0x22] - strb r0, [r4, 0x10] - adds r0, r7, 0 - bl sub_813A694 - ldrh r1, [r6, 0x16] - ldrh r2, [r6, 0x18] - adds r0, r4, 0 - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x24] - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_813A4EC - str r1, [r0] - add sp, 0x20 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A2DC - - thumb_func_start sub_813A42C -sub_813A42C: @ 813A42C - ldr r1, =gUnknown_030061D0 - ldr r0, =gUnknown_0203AB64 - ldr r0, [r0] - str r0, [r1] - ldr r0, =sub_813A46C - str r0, [r1, 0x4] - movs r0, 0 - str r0, [r1, 0x8] - movs r2, 0 - movs r0, 0x1 - strh r0, [r1, 0xC] - strh r0, [r1, 0xE] - strb r2, [r1, 0x10] - strb r2, [r1, 0x11] - movs r0, 0x8 - strb r0, [r1, 0x12] - strb r2, [r1, 0x13] - movs r0, 0x21 - strb r0, [r1, 0x14] - movs r0, 0x31 - strb r0, [r1, 0x15] - movs r0, 0 - strb r0, [r1, 0x16] - movs r0, 0x1 - strb r0, [r1, 0x17] - bx lr - .pool - thumb_func_end sub_813A42C - - thumb_func_start sub_813A46C -sub_813A46C: @ 813A46C - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0x5 - bl PlaySE - ldr r0, =sub_813A4EC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0813A4D4 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks - adds r4, r0 - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - movs r2, 0 - bl ListMenuGetScrollAndRow - ldr r1, =gUnknown_0203AB68 - mov r0, sp - ldrh r0, [r0] - strh r0, [r1] - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - bl ListMenuGetCurrentItemArrayId - ldrh r0, [r4, 0x1E] - ldr r5, =gUnknown_0203AB6A - ldrh r1, [r5] - bl sub_813AC44 - ldrh r0, [r4, 0x1E] - mov r1, sp - ldrh r1, [r1] - bl sub_813AA60 - ldrb r0, [r4, 0x1E] - mov r1, sp - ldrh r1, [r1] - bl sub_813AD34 - mov r0, sp - ldrh r0, [r0] - strh r0, [r5] -_0813A4D4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A46C - thumb_func_start sub_813A4EC sub_813A4EC: @ 813A4EC push {r4-r6,lr} diff --git a/asm/script_menu.s b/asm/script_menu.s index a2e2ec59e7..670740a777 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -1498,7 +1498,7 @@ CreateWindowFromRect: @ 80E2A1C movs r1, 0 adds r2, r4, 0 adds r3, r5, 0 - bl sub_8198A50 + bl CreateWindowTemplate ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] str r0, [sp, 0x18] diff --git a/data/field_specials.s b/data/field_specials.s index 030a279ef4..0f52cb891c 100644 --- a/data/field_specials.s +++ b/data/field_specials.s @@ -3,311 +3,6 @@ .section .rodata - .align 2 -gUnknown_085B2BAC:: @ 85B2BAC - .byte 0x00, 0x15, 0x01, 0x08, 0x04, 0x0f, 0x08, 0x00 - - .align 2 -gElevatorFloorsTable:: @ 85B2BB4 - .4byte gText_B4F - .4byte gText_B3F - .4byte gText_B2F - .4byte gText_B1F - .4byte gText_1F - .4byte gText_2F - .4byte gText_3F - .4byte gText_4F - .4byte gText_5F - .4byte gText_6F - .4byte gText_7F - .4byte gText_8F - .4byte gText_9F - .4byte gText_10F - .4byte gText_11F - .4byte gText_Rooftop - - .align 1 -gUnknown_085B2BF4:: @ 85B2BF4 - .2byte 0x0329, 0x032a, 0x032b, 0x0331, 0x0332, 0x0333, 0x0339, 0x033a, 0x033b - - .align 1 -gUnknown_085B2C06:: @ 85B2C06 - .2byte 0x0329, 0x032b, 0x032a, 0x0331, 0x0333, 0x0332, 0x0339, 0x033b, 0x033a - -gUnknown_085B2C18:: @ 85B2C18 - .byte 0x08, 0x10, 0x18, 0x20, 0x26, 0x2e, 0x34, 0x38, 0x39 - -gUnknown_085B2C21:: @ 85B2C21 - .byte 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15, 0x18, 0x1b - - .align 1 -gUnknown_085B2C2A:: @ 85B2C2A - .2byte 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a - .2byte 0x1a35, 0x193c, 0xffff - - .align 2 -gUnknown_085B2C50:: @ 85B2C50 - .4byte BattleFrontier_Lounge2_Text_260971 - .4byte BattleFrontier_Lounge2_Text_260A1E - .4byte BattleFrontier_Lounge2_Text_260AE7 - .4byte BattleFrontier_Lounge2_Text_2619AC - .4byte BattleFrontier_Lounge2_Text_261A91 - .4byte BattleFrontier_Lounge2_Text_261B0C - .4byte BattleFrontier_Lounge2_Text_261B95 - .4byte BattleFrontier_Lounge2_Text_261B95 - .4byte BattleFrontier_Lounge2_Text_261B95 - .4byte BattleFrontier_Lounge2_Text_261C1A - .4byte BattleFrontier_Lounge2_Text_261C1A - .4byte BattleFrontier_Lounge2_Text_261C1A - .4byte BattleFrontier_Lounge2_Text_260BC4 - .4byte BattleFrontier_Lounge2_Text_260C6D - .4byte BattleFrontier_Lounge2_Text_260D3A - .4byte BattleFrontier_Lounge2_Text_260E1E - .4byte BattleFrontier_Lounge2_Text_260EC7 - .4byte BattleFrontier_Lounge2_Text_260F74 - .4byte BattleFrontier_Lounge2_Text_2614E6 - .4byte BattleFrontier_Lounge2_Text_261591 - .4byte BattleFrontier_Lounge2_Text_26166F - .4byte BattleFrontier_Lounge2_Text_261282 - .4byte BattleFrontier_Lounge2_Text_261329 - .4byte BattleFrontier_Lounge2_Text_261403 - .4byte BattleFrontier_Lounge2_Text_261026 - .4byte BattleFrontier_Lounge2_Text_2610CC - .4byte BattleFrontier_Lounge2_Text_261194 - .4byte BattleFrontier_Lounge2_Text_26174D - .4byte BattleFrontier_Lounge2_Text_2617F9 - .4byte BattleFrontier_Lounge2_Text_2618C4 - -gUnknown_085B2CC8:: @ 85B2CC8 - .byte 0x15, 0x38, 0x15, 0x23, 0xff, 0xff, 0xff, 0xff, 0x02, 0x04, 0x07, 0x15, 0x07, 0x15, 0x0e, 0x1c, 0x0d, 0x70, 0x07, 0x38 - - .align 1 -gUnknown_085B2CDC:: @ 85B2CDC - .2byte 0x0007, 0x000e, 0x0015, 0x001c, 0x0023, 0x0031, 0x003f, 0x004d, 0x005b, 0x0000 - - .align 2 -gUnknown_085B2CF0:: @ 85B2CF0 - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_BlueFlute - .4byte gText_YellowFlute - .4byte gText_RedFlute - .4byte gText_WhiteFlute - .4byte gText_BlackFlute - .4byte gText_PrettyChair - .4byte gText_PrettyDesk - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_0Pts - .4byte gText_10Pts - .4byte gText_20Pts - .4byte gText_30Pts - .4byte gText_40Pts - .4byte gText_50Pts - .4byte gText_60Pts - .4byte gText_70Pts - .4byte gText_80Pts - .4byte gText_90Pts - .4byte gText_100Pts - .4byte gText_QuestionMark - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_KissPoster16BP - .4byte gText_KissCushion32BP - .4byte gText_SmoochumDoll32BP - .4byte gText_TogepiDoll48BP - .4byte gText_MeowthDoll48BP - .4byte gText_ClefairyDoll48BP - .4byte gText_DittoDoll48BP - .4byte gText_CyndaquilDoll80BP - .4byte gText_ChikoritaDoll80BP - .4byte gText_TotodileDoll80BP - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_LaprasDoll128BP - .4byte gText_SnorlaxDoll128BP - .4byte gText_VenusaurDoll256BP - .4byte gText_CharizardDoll256BP - .4byte gText_BlastoiseDoll256BP - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_Protein1BP - .4byte gText_Calcium1BP - .4byte gText_Iron1BP - .4byte gText_Zinc1BP - .4byte gText_Carbos1BP - .4byte gText_HpUp1BP - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_Leftovers48BP - .4byte gText_WhiteHerb48BP - .4byte gText_QuickClaw48BP - .4byte gText_MentalHerb48BP - .4byte gText_BrightPowder64BP - .4byte gText_ChoiceBand64BP - .4byte gText_KingsRock64BP - .4byte gText_FocusBand64BP - .4byte gText_ScopeLens64BP - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_EnergyPowder50 - .4byte gText_EnergyRoot80 - .4byte gText_HealPowder50 - .4byte gText_RevivalHerb300 - .4byte gText_Protein1000 - .4byte gText_Iron1000 - .4byte gText_Carbos1000 - .4byte gText_Calcium1000 - .4byte gText_Zinc1000 - .4byte gText_HPUp1000 - .4byte gText_PPUp3000 - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_BattleTower2 - .4byte gText_BattleDome - .4byte gText_BattlePalace - .4byte gText_BattleArena - .4byte gText_BattleFactory - .4byte gText_BattlePike - .4byte gText_BattlePyramid - .4byte gText_RankingHall - .4byte gText_ExchangeService - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_Softboiled16BP - .4byte gText_SeismicToss24BP - .4byte gText_DreamEater24BP - .4byte gText_MegaPunch24BP - .4byte gText_MegaKick48BP - .4byte gText_BodySlam48BP - .4byte gText_RockSlide48BP - .4byte gText_Counter48BP - .4byte gText_ThunderWave48BP - .4byte gText_SwordsDance48BP - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_DefenseCurl16BP - .4byte gText_Snore24BP - .4byte gText_MudSlap24BP - .4byte gText_Swift24BP - .4byte gText_IcyWind24BP - .4byte gText_Endure48BP - .4byte gText_PsychUp48BP - .4byte gText_IcePunch48BP - .4byte gText_ThunderPunch48BP - .4byte gText_FirePunch48BP - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_SlateportCity - .4byte gText_BattleFrontier - .4byte gText_SouthernIsland - .4byte gText_NavelRock - .4byte gText_BirthIsland - .4byte gText_FarawayIsland - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - - .4byte gText_BattleTrainers - .4byte gText_BattleBasics - .4byte gText_PokemonNature - .4byte gText_PokemonMoves - .4byte gText_Underpowered - .4byte gText_WhenInDanger - .4byte gText_Exit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .align 2 gUnknown_085B3030:: @ 85B3030 .4byte 0x03000002, 0x00000000, 0x07d00000, 0x00000064 diff --git a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc index 248c1f9ca8..072d271374 100644 --- a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc @@ -14,7 +14,7 @@ BattleFrontier_BattleTowerElevator_EventScript_2419F0:: @ 82419F0 waitmovement 0 special sub_813A080 waitse - special sub_8139A78 + special ShakeScreenInElevator waitstate delay 48 applymovement 1, BattleFrontier_BattleTowerElevator_Movement_241A8E diff --git a/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc index cc1b51ea40..372d16dae2 100644 --- a/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc @@ -118,7 +118,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_2207E5:: @ 82207E5 applymovement VAR_LAST_TALKED, LilycoveCity_DepartmentStoreElevator_Movement_2725AA waitmovement 0 waitse - special sub_8139A78 + special ShakeScreenInElevator waitstate setflag FLAG_0x002 return diff --git a/data/maps/TrainerHill_Elevator/scripts.inc b/data/maps/TrainerHill_Elevator/scripts.inc index ac2d5c8a7f..ff731393bc 100644 --- a/data/maps/TrainerHill_Elevator/scripts.inc +++ b/data/maps/TrainerHill_Elevator/scripts.inc @@ -50,7 +50,7 @@ TrainerHill_Elevator_EventScript_2693D4:: @ 82693D4 TrainerHill_Elevator_EventScript_2693D9:: @ 82693D9 waitse - special sub_8139A78 + special ShakeScreenInElevator waitstate return diff --git a/data/specials.inc b/data/specials.inc index 43607cf6e2..0b58f39ba3 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -284,7 +284,7 @@ gSpecials:: @ 81DBA64 def_special sub_80FB7A4 def_special DoSoftReset def_special GameClear - def_special sub_8139A78 + def_special ShakeScreenInElevator def_special nullsub_55 def_special SpawnScriptEventObject def_special RemoveScriptEventObject diff --git a/include/global.h b/include/global.h index 7153ef2606..687ee26d27 100644 --- a/include/global.h +++ b/include/global.h @@ -344,7 +344,8 @@ struct BattleFrontier /*0xCA9*/ u8 field_CA9_f:1; // 0x80 /*0xCAA*/ u16 field_CAA[4]; /*0xCB2*/ u16 field_CB2; - /*0xCB4*/ u16 field_CB4[30]; + /*0xCB4*/ u16 field_CB4[22]; + /*0xCE0*/ u16 field_CE0[4][2]; /*0xCF0*/ u16 field_CF0[2]; /*0xCF4*/ u16 field_CF4[2]; /*0xCF8*/ u16 field_CF8[2]; @@ -355,24 +356,21 @@ struct BattleFrontier /*0xD09*/ u8 filler_D09; /*0xD0A*/ u8 filler_D0A; /*0xD0B*/ u8 filler_D0B; - /*0xD0C*/ u8 filler_D0C; - /*0xD0D*/ u8 filler_D0D; - /*0xD0E*/ u8 filler_D0E; - /*0xD0F*/ u8 filler_D0F; + /*0xD0C*/ u16 field_D0C[2]; /*0xD10*/ u8 filler_D10; /*0xD11*/ u8 filler_D11; /*0xD12*/ u8 filler_D12; /*0xD13*/ u8 filler_D13; /*0xD14*/ u16 field_D14[2]; - /*0xD18*/ u8 field_D18[0xB8]; + /*0xD18*/ u8 field_D18[0xB0]; + /*0xDC8*/ u16 field_DC8[2]; + /*0xDCC*/ u8 filler_DCC[4]; /*0xDD0*/ u16 field_DD0[2]; /*0xDD4*/ u16 field_DD4[2]; /*0xDD8*/ u16 field_DD8; - /*0xDDA*/ u16 field_DDA; - /*0xDDC*/ u16 field_DDC; + /*0xDDA*/ u16 field_DDA[2]; /*0xDDE*/ u16 field_DDE[2]; - /*0xDE2*/ u16 field_DE2; - /*0xDE4*/ u16 field_DE4; + /*0xDE2*/ u16 field_DE2[2]; /*0xDE6*/ u16 field_DE6; /*0xDE8*/ u16 field_DE8; /*0xDEA*/ u16 field_DEA[2]; @@ -387,11 +385,9 @@ struct BattleFrontier /*0xDFE*/ u16 field_DFE; /*0xE00*/ u16 field_E00; /*0xE02*/ u16 field_E02; - /*0xE04*/ u16 field_E04; - /*0xE06*/ u16 field_E06; + /*0xE04*/ u16 field_E04[2]; /*0xE08*/ u16 field_E08[9]; - /*0xE1A*/ u16 field_E1A; - /*0xE1C*/ u16 field_E1C; + /*0xE1A*/ u16 field_E1A[2]; /*0xE1E*/ u16 field_E1E[7]; /*0xE2C*/ struct PyramidBag pyramidBag; /*0xE58*/ u16 field_E58; diff --git a/include/menu.h b/include/menu.h index 888d898b6f..0c191de575 100644 --- a/include/menu.h +++ b/include/menu.h @@ -51,7 +51,7 @@ void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y); void reset_temp_tile_data_buffers(void); void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode); bool8 free_temp_tile_data_buffers_if_possible(void); -struct WindowTemplate sub_8198A50(u8, u8, u8, u8, u8, u8, u16); +struct WindowTemplate CreateWindowTemplate(u8, u8, u8, u8, u8, u8, u16); void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode); s8 ProcessMenuInputNoWrap_(void); diff --git a/include/script_menu.h b/include/script_menu.h index 0555d0f78a..c50bef00f5 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -9,8 +9,9 @@ bool8 ScriptMenu_YesNo(u8 var1, u8 var2); bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount); bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3); bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void); -u8 convert_pixel_width_to_tile_width(s32); +s32 convert_pixel_width_to_tile_width(s32); u8 CreateWindowFromRect(u8, u8, u8, u8); void sub_80E2A78(u8); +u32 display_text_and_get_width(const u8*, u32); #endif //GUARD_SCRIPT_MENU_H diff --git a/include/strings.h b/include/strings.h index 3d3741a86c..14ff0048f3 100644 --- a/include/strings.h +++ b/include/strings.h @@ -472,4 +472,179 @@ extern const u8 gText_BigGirl[]; extern const u8 gText_Son[]; extern const u8 gText_Daughter[]; +extern const u8 gText_1F[]; +extern const u8 gText_2F[]; +extern const u8 gText_3F[]; +extern const u8 gText_4F[]; +extern const u8 gText_5F[]; +extern const u8 gText_6F[]; +extern const u8 gText_7F[]; +extern const u8 gText_8F[]; +extern const u8 gText_9F[]; +extern const u8 gText_10F[]; +extern const u8 gText_11F[]; +extern const u8 gText_B1F[]; +extern const u8 gText_B2F[]; +extern const u8 gText_B3F[]; +extern const u8 gText_B4F[]; +extern const u8 gText_Rooftop[]; +extern const u8 gText_ElevatorNowOn[]; + +extern const u8 BattleFrontier_Lounge2_Text_260971[]; +extern const u8 BattleFrontier_Lounge2_Text_260A1E[]; +extern const u8 BattleFrontier_Lounge2_Text_260AE7[]; +extern const u8 BattleFrontier_Lounge2_Text_2619AC[]; +extern const u8 BattleFrontier_Lounge2_Text_261A91[]; +extern const u8 BattleFrontier_Lounge2_Text_261B0C[]; +extern const u8 BattleFrontier_Lounge2_Text_261B95[]; +extern const u8 BattleFrontier_Lounge2_Text_261B95[]; +extern const u8 BattleFrontier_Lounge2_Text_261B95[]; +extern const u8 BattleFrontier_Lounge2_Text_261C1A[]; +extern const u8 BattleFrontier_Lounge2_Text_261C1A[]; +extern const u8 BattleFrontier_Lounge2_Text_261C1A[]; +extern const u8 BattleFrontier_Lounge2_Text_260BC4[]; +extern const u8 BattleFrontier_Lounge2_Text_260C6D[]; +extern const u8 BattleFrontier_Lounge2_Text_260D3A[]; +extern const u8 BattleFrontier_Lounge2_Text_260E1E[]; +extern const u8 BattleFrontier_Lounge2_Text_260EC7[]; +extern const u8 BattleFrontier_Lounge2_Text_260F74[]; +extern const u8 BattleFrontier_Lounge2_Text_2614E6[]; +extern const u8 BattleFrontier_Lounge2_Text_261591[]; +extern const u8 BattleFrontier_Lounge2_Text_26166F[]; +extern const u8 BattleFrontier_Lounge2_Text_261282[]; +extern const u8 BattleFrontier_Lounge2_Text_261329[]; +extern const u8 BattleFrontier_Lounge2_Text_261403[]; +extern const u8 BattleFrontier_Lounge2_Text_261026[]; +extern const u8 BattleFrontier_Lounge2_Text_2610CC[]; +extern const u8 BattleFrontier_Lounge2_Text_261194[]; +extern const u8 BattleFrontier_Lounge2_Text_26174D[]; +extern const u8 BattleFrontier_Lounge2_Text_2617F9[]; +extern const u8 BattleFrontier_Lounge2_Text_2618C4[]; + +extern const u8 gText_Exit[]; + +extern const u8 gText_BlueFlute[]; +extern const u8 gText_YellowFlute[]; +extern const u8 gText_RedFlute[]; +extern const u8 gText_WhiteFlute[]; +extern const u8 gText_BlackFlute[]; +extern const u8 gText_PrettyChair[]; +extern const u8 gText_PrettyDesk[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_0Pts[]; +extern const u8 gText_10Pts[]; +extern const u8 gText_20Pts[]; +extern const u8 gText_30Pts[]; +extern const u8 gText_40Pts[]; +extern const u8 gText_50Pts[]; +extern const u8 gText_60Pts[]; +extern const u8 gText_70Pts[]; +extern const u8 gText_80Pts[]; +extern const u8 gText_90Pts[]; +extern const u8 gText_100Pts[]; +extern const u8 gText_QuestionMark[]; + +extern const u8 gText_KissPoster16BP[]; +extern const u8 gText_KissCushion32BP[]; +extern const u8 gText_SmoochumDoll32BP[]; +extern const u8 gText_TogepiDoll48BP[]; +extern const u8 gText_MeowthDoll48BP[]; +extern const u8 gText_ClefairyDoll48BP[]; +extern const u8 gText_DittoDoll48BP[]; +extern const u8 gText_CyndaquilDoll80BP[]; +extern const u8 gText_ChikoritaDoll80BP[]; +extern const u8 gText_TotodileDoll80BP[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_LaprasDoll128BP[]; +extern const u8 gText_SnorlaxDoll128BP[]; +extern const u8 gText_VenusaurDoll256BP[]; +extern const u8 gText_CharizardDoll256BP[]; +extern const u8 gText_BlastoiseDoll256BP[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_Protein1BP[]; +extern const u8 gText_Calcium1BP[]; +extern const u8 gText_Iron1BP[]; +extern const u8 gText_Zinc1BP[]; +extern const u8 gText_Carbos1BP[]; +extern const u8 gText_HpUp1BP[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_Leftovers48BP[]; +extern const u8 gText_WhiteHerb48BP[]; +extern const u8 gText_QuickClaw48BP[]; +extern const u8 gText_MentalHerb48BP[]; +extern const u8 gText_BrightPowder64BP[]; +extern const u8 gText_ChoiceBand64BP[]; +extern const u8 gText_KingsRock64BP[]; +extern const u8 gText_FocusBand64BP[]; +extern const u8 gText_ScopeLens64BP[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_EnergyPowder50[]; +extern const u8 gText_EnergyRoot80[]; +extern const u8 gText_HealPowder50[]; +extern const u8 gText_RevivalHerb300[]; +extern const u8 gText_Protein1000[]; +extern const u8 gText_Iron1000[]; +extern const u8 gText_Carbos1000[]; +extern const u8 gText_Calcium1000[]; +extern const u8 gText_Zinc1000[]; +extern const u8 gText_HPUp1000[]; +extern const u8 gText_PPUp3000[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_BattleTower2[]; +extern const u8 gText_BattleDome[]; +extern const u8 gText_BattlePalace[]; +extern const u8 gText_BattleArena[]; +extern const u8 gText_BattleFactory[]; +extern const u8 gText_BattlePike[]; +extern const u8 gText_BattlePyramid[]; +extern const u8 gText_RankingHall[]; +extern const u8 gText_ExchangeService[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_Softboiled16BP[]; +extern const u8 gText_SeismicToss24BP[]; +extern const u8 gText_DreamEater24BP[]; +extern const u8 gText_MegaPunch24BP[]; +extern const u8 gText_MegaKick48BP[]; +extern const u8 gText_BodySlam48BP[]; +extern const u8 gText_RockSlide48BP[]; +extern const u8 gText_Counter48BP[]; +extern const u8 gText_ThunderWave48BP[]; +extern const u8 gText_SwordsDance48BP[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_DefenseCurl16BP[]; +extern const u8 gText_Snore24BP[]; +extern const u8 gText_MudSlap24BP[]; +extern const u8 gText_Swift24BP[]; +extern const u8 gText_IcyWind24BP[]; +extern const u8 gText_Endure48BP[]; +extern const u8 gText_PsychUp48BP[]; +extern const u8 gText_IcePunch48BP[]; +extern const u8 gText_ThunderPunch48BP[]; +extern const u8 gText_FirePunch48BP[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_SlateportCity[]; +extern const u8 gText_BattleFrontier[]; +extern const u8 gText_SouthernIsland[]; +extern const u8 gText_NavelRock[]; +extern const u8 gText_BirthIsland[]; +extern const u8 gText_FarawayIsland[]; +extern const u8 gText_Exit[]; + +extern const u8 gText_BattleTrainers[]; +extern const u8 gText_BattleBasics[]; +extern const u8 gText_PokemonNature[]; +extern const u8 gText_PokemonMoves[]; +extern const u8 gText_Underpowered[]; +extern const u8 gText_WhenInDanger[]; +extern const u8 gText_Exit[]; + #endif //GUARD_STRINGS_H diff --git a/src/field_specials.c b/src/field_specials.c index a0d640ccd1..5f4b4f7841 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -13,16 +13,22 @@ #include "field_region_map.h" #include "field_specials.h" #include "field_weather.h" +#include "international_string_util.h" #include "link.h" +#include "list_menu.h" +#include "malloc.h" +#include "menu.h" #include "overworld.h" #include "party_menu.h" #include "pokeblock.h" #include "pokemon.h" #include "pokemon_storage_system.h" +#include "random.h" #include "region_map.h" #include "rom_8011DC0.h" #include "rtc.h" #include "script.h" +#include "script_menu.h" #include "sound.h" #include "starter_choose.h" #include "string_util.h" @@ -31,6 +37,7 @@ #include "text.h" #include "tv.h" #include "wallclock.h" +#include "window.h" #include "constants/event_objects.h" #include "constants/items.h" #include "constants/maps.h" @@ -44,6 +51,18 @@ EWRAM_DATA u8 gBikeCollisions = 0; EWRAM_DATA u32 gBikeCyclingTimer = 0; EWRAM_DATA u8 gUnknown_0203AB5C = 0; EWRAM_DATA u8 gUnknown_0203AB5D = 0; +EWRAM_DATA u8 gUnknown_0203AB5E = 0; +EWRAM_DATA u16 gUnknown_0203AB60 = 0; +EWRAM_DATA u16 gUnknown_0203AB62 = 0; +EWRAM_DATA struct ListMenuItem *gUnknown_0203AB64 = NULL; +EWRAM_DATA u16 gUnknown_0203AB68 = 0; +EWRAM_DATA u16 gUnknown_0203AB6A = 0; +EWRAM_DATA u8 gUnknown_0203AB6C = 0; +EWRAM_DATA u8 gUnknown_0203AB6D = 0; +EWRAM_DATA u8 gUnknown_0203AB6E = 0; +EWRAM_DATA u8 gUnknown_0203AB6F = 0; + +struct ListMenuTemplate gUnknown_030061D0; extern const u16 gEventObjectPalette8[]; extern const u16 gEventObjectPalette17[]; @@ -1626,6 +1645,44 @@ void sub_8139980(void) SetCameraPanning(8, 0); } +void sub_8139AF4(u8 taskId); +void sub_8139C2C(u16 a1, u8 a2); + +const struct WindowTemplate gUnknown_085B2BAC = { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 1, + .width = 8, + .height = 4, + .paletteNum = 15, + .baseBlock = 8, +}; + +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 +}; + +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 u8 gUnknown_085B2C18[] = { 0x08, 0x10, 0x18, 0x20, 0x26, 0x2e, 0x34, 0x38, 0x39 }; +const u8 gUnknown_085B2C21[] = { 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15, 0x18, 0x1b }; +const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xffff }; + void SetDepartmentStoreFloorVar(void) { u8 deptStoreFloor; @@ -1655,3 +1712,1007 @@ void SetDepartmentStoreFloorVar(void) } VarSet(VAR_DEPT_STORE_FLOOR, deptStoreFloor); } + +u16 sub_81399F4(void) +{ + gUnknown_0203AB60 = 0; + gUnknown_0203AB62 = 0; + + if (gSaveBlock1Ptr->warp2.mapGroup == 13) + { + switch (gSaveBlock1Ptr->warp2.mapNum) + { + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F): + gUnknown_0203AB60 = 0; + gUnknown_0203AB62 = 0; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F): + gUnknown_0203AB60 = 0; + gUnknown_0203AB62 = 1; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F): + gUnknown_0203AB60 = 0; + gUnknown_0203AB62 = 2; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F): + gUnknown_0203AB60 = 0; + gUnknown_0203AB62 = 3; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F): + gUnknown_0203AB60 = 0; + gUnknown_0203AB62 = 4; + break; + } + } + + return gUnknown_0203AB62; +} + +void ShakeScreenInElevator(void) +{ + s16 *data = gTasks[CreateTask(sub_8139AF4, 9)].data; + u16 floorDelta; + + data[1] = 0; + data[2] = 0; + data[4] = 1; + + if (gSpecialVar_0x8005 > gSpecialVar_0x8006) + { + floorDelta = gSpecialVar_0x8005 - gSpecialVar_0x8006; + data[6] = 1; + } + else + { + floorDelta = gSpecialVar_0x8006 - gSpecialVar_0x8005; + data[6] = 0; + } + + if (floorDelta > 8) + floorDelta = 8; + + data[5] = gUnknown_085B2C18[floorDelta]; + + SetCameraPanningCallback(NULL); + sub_8139C2C(floorDelta, data[6]); + PlaySE(SE_ELEBETA); +} + +void sub_8139AF4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + data[1]++; + if (data[1] % 3 == 0) + { + data[1] = 0; + data[2]++; + data[4] = -data[4]; + SetCameraPanning(0, data[4]); + if (data[2] == data[5]) + { + PlaySE(SE_PINPON); + DestroyTask(taskId); + EnableBothScriptContexts(); + InstallCameraPanAheadCallback(); + } + } +} + +void sub_8139B60(void) +{ + int xPos; + + gUnknown_0203AB5E = AddWindow(&gUnknown_085B2BAC); + SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0); + + xPos = GetStringCenterAlignXOffset(1, gText_ElevatorNowOn, 64); + PrintTextOnWindow(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, 0xFF, NULL); + + xPos = GetStringCenterAlignXOffset(1, gElevatorFloorsTable[gSpecialVar_0x8005], 64); + PrintTextOnWindow(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, 0xFF, NULL); + + PutWindowTilemap(gUnknown_0203AB5E); + CopyWindowToVram(gUnknown_0203AB5E, 3); +} + +void sub_8139C10(void) +{ + sub_8198070(gUnknown_0203AB5E, TRUE); + RemoveWindow(gUnknown_0203AB5E); +} + +void sub_8139C80(u8 taskId); + +void sub_8139C2C(u16 a1, u8 a2) +{ + if (FuncIsActiveTask(sub_8139C80) != TRUE) + { + u8 taskId = CreateTask(sub_8139C80, 8); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = a2; + gTasks[taskId].data[3] = gUnknown_085B2C21[a1]; + } +} + +// 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 +void sub_8139C80(u8 taskId) +{ + u8 x, y; + s16 *data = gTasks[taskId].data; + + if (data[1] == 6) + { + data[0]++; + if (data[2] == 0) + { + for (y = 0; y < 3; y++) + { + for (x = 0; x < 3; x++) + { + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y * 3 + data[0] % 3] | 0xC00); + } + } + } + else + { + for (y = 0; y < 3; y++) + { + for (x = 0; x < 3; x++) + { + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y * 3 + data[0] % 3] | 0xC00); + } + } + } + DrawWholeMapView(); + data[1] = 0; + if (data[0] == data[3]) + { + DestroyTask(taskId); + } + } + data[1]++; +} +#else +NAKED +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) +{ + u8 i; + u32 ivStorage[6]; + + ivStorage[0] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_HP_IV); + ivStorage[1] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_ATK_IV); + ivStorage[2] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_DEF_IV); + ivStorage[3] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPEED_IV); + ivStorage[4] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPATK_IV); + ivStorage[5] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPDEF_IV); + + gSpecialVar_0x8005 = 0; + + for (i = 0; i < ARRAY_COUNT(ivStorage); i++) + { + gSpecialVar_0x8005 += ivStorage[i]; + } + + gSpecialVar_0x8006 = 0; + gSpecialVar_0x8007 = ivStorage[0]; // HP IV + + for (i = 1; i < 6; i++) + { + if (ivStorage[gSpecialVar_0x8006] < ivStorage[i]) + { + gSpecialVar_0x8006 = i; + gSpecialVar_0x8007 = ivStorage[i]; + } + else if (ivStorage[gSpecialVar_0x8006] == ivStorage[i]) + { + u16 randomNumber = Random(); + if ((randomNumber & 1) != 0) + { + gSpecialVar_0x8006 = i; + gSpecialVar_0x8007 = ivStorage[i]; + } + } + } +} + +bool32 warp0_in_pokecenter(void) +{ + int i; + u16 map = (gUnknown_020322DC.mapGroup << 8) + gUnknown_020322DC.mapNum; + + for (i = 0; gUnknown_085B2C2A[i] != 0xFFFF; i++) + { + if (gUnknown_085B2C2A[i] == map) + return TRUE; + } + + return FALSE; +} + +bool32 sub_8139ED0(void) +{ + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRAINER_HILL_ENTRANCE) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_HILL_ENTRANCE)) + { + return FALSE; + } + return TRUE; +} + +void UpdateFrontierManiac(u16 a0) +{ + u16 *var = GetVarPointer(VAR_FRONTIER_MANIAC_FACILITY); + *var += a0; + *var %= 10; +} + +const u8 *const gUnknown_085B2C50[][3] = { + { BattleFrontier_Lounge2_Text_260971, BattleFrontier_Lounge2_Text_260A1E, BattleFrontier_Lounge2_Text_260AE7 }, + { BattleFrontier_Lounge2_Text_2619AC, BattleFrontier_Lounge2_Text_261A91, BattleFrontier_Lounge2_Text_261B0C }, + { BattleFrontier_Lounge2_Text_261B95, BattleFrontier_Lounge2_Text_261B95, BattleFrontier_Lounge2_Text_261B95 }, + { BattleFrontier_Lounge2_Text_261C1A, BattleFrontier_Lounge2_Text_261C1A, BattleFrontier_Lounge2_Text_261C1A }, + { BattleFrontier_Lounge2_Text_260BC4, BattleFrontier_Lounge2_Text_260C6D, BattleFrontier_Lounge2_Text_260D3A }, + { BattleFrontier_Lounge2_Text_260E1E, BattleFrontier_Lounge2_Text_260EC7, BattleFrontier_Lounge2_Text_260F74 }, + { BattleFrontier_Lounge2_Text_2614E6, BattleFrontier_Lounge2_Text_261591, BattleFrontier_Lounge2_Text_26166F }, + { BattleFrontier_Lounge2_Text_261282, BattleFrontier_Lounge2_Text_261329, BattleFrontier_Lounge2_Text_261403 }, + { BattleFrontier_Lounge2_Text_261026, BattleFrontier_Lounge2_Text_2610CC, BattleFrontier_Lounge2_Text_261194 }, + { BattleFrontier_Lounge2_Text_26174D, BattleFrontier_Lounge2_Text_2617F9, BattleFrontier_Lounge2_Text_2618C4 }, +}; + +const u8 gUnknown_085B2CC8[][2] = { + { 0x15, 0x38 }, + { 0x15, 0x23 }, + { 0xff, 0xff }, + { 0xff, 0xff }, + { 0x02, 0x04 }, + { 0x07, 0x15 }, + { 0x07, 0x15 }, + { 0x0e, 0x1c }, + { 0x0d, 0x70 }, + { 0x07, 0x38 } +}; + +void sub_8139F20(void) +{ + u8 i; + u16 unk = 0; + u16 var = VarGet(VAR_FRONTIER_MANIAC_FACILITY); + switch (var) + { + case 0: + case 1: + case 2: + case 3: + if (gSaveBlock2Ptr->frontier.field_CE0[var][0] >= gSaveBlock2Ptr->frontier.field_CE0[var][1]) + { + unk = gSaveBlock2Ptr->frontier.field_CE0[var][0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_CE0[var][1]; + } + break; + case 4: + if (gSaveBlock2Ptr->frontier.field_D0C[0] >= gSaveBlock2Ptr->frontier.field_D0C[1]) + { + unk = gSaveBlock2Ptr->frontier.field_D0C[0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_D0C[1]; + } + break; + case 5: + if (gSaveBlock2Ptr->frontier.field_DE2[0] >= gSaveBlock2Ptr->frontier.field_DE2[1]) + { + unk = gSaveBlock2Ptr->frontier.field_DE2[0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_DE2[1]; + } + break; + case 6: + if (gSaveBlock2Ptr->frontier.field_DC8[0] >= gSaveBlock2Ptr->frontier.field_DC8[1]) + { + unk = gSaveBlock2Ptr->frontier.field_DC8[0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_DC8[1]; + } + break; + case 7: + if (gSaveBlock2Ptr->frontier.field_DDA[0] >= gSaveBlock2Ptr->frontier.field_DDA[1]) + { + unk = gSaveBlock2Ptr->frontier.field_DDA[0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_DDA[1]; + } + break; + case 8: + if (gSaveBlock2Ptr->frontier.field_E04[0] >= gSaveBlock2Ptr->frontier.field_E04[1]) + { + unk = gSaveBlock2Ptr->frontier.field_E04[0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_E04[1]; + } + break; + case 9: + if (gSaveBlock2Ptr->frontier.field_E1A[0] >= gSaveBlock2Ptr->frontier.field_E1A[1]) + { + unk = gSaveBlock2Ptr->frontier.field_E1A[0]; + } + else + { + unk = gSaveBlock2Ptr->frontier.field_E1A[1]; + } + break; + } + + for (i = 0; i < 2 && gUnknown_085B2CC8[var][i] < unk; i++); + + ShowFieldMessage(gUnknown_085B2C50[var][i]); +} + +const u16 gUnknown_085B2CDC[] = { + 0x0007, 0x000e, 0x0015, 0x001c, 0x0023, 0x0031, 0x003f, 0x004d, 0x005b, 0x0000 +}; + +void sub_813A080(void) +{ + u8 i; + u16 var = VarGet(VAR_0x40CE); + u8 chosenLevel = gSaveBlock2Ptr->frontier.chosenLvl; + + if (var == 2 && !FlagGet(FLAG_0x152)) + { + gSpecialVar_0x8005 = 5; + gSpecialVar_0x8006 = 4; + return; + } + + for (i = 0; i < 9; i++) + { + if (gUnknown_085B2CDC[i] > gSaveBlock2Ptr->frontier.field_CE0[var][chosenLevel]) + { + gSpecialVar_0x8005 = 4; + gSpecialVar_0x8006 = i + 5; + return; + } + } + + gSpecialVar_0x8005 = 4; + gSpecialVar_0x8006 = 12; +} + +void sub_813A2DC(u8 taskId); + +void sub_813A128(void) +{ + u8 taskId = CreateTask(sub_813A2DC, 8); + struct Task *task = &gTasks[taskId]; + task->data[11] = gSpecialVar_0x8004; + + switch (gSpecialVar_0x8004) + { + case 0: + task->data[0] = 1; + task->data[1] = 1; + task->data[2] = 1; + task->data[3] = 1; + task->data[4] = 1; + task->data[5] = 1; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 1: + task->data[0] = 5; + task->data[1] = 8; + task->data[2] = 1; + task->data[3] = 1; + task->data[4] = 9; + task->data[5] = 10; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 2: + task->data[0] = 6; + task->data[1] = 12; + task->data[2] = 1; + task->data[3] = 1; + task->data[4] = 7; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 3: + task->data[0] = 6; + task->data[1] = 11; + task->data[2] = 14; + task->data[3] = 1; + task->data[4] = 15; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 4: + task->data[0] = 6; + task->data[1] = 6; + task->data[2] = 14; + task->data[3] = 1; + task->data[4] = 15; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 5: + task->data[0] = 6; + task->data[1] = 7; + task->data[2] = 14; + task->data[3] = 1; + task->data[4] = 15; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 6: + task->data[0] = 6; + task->data[1] = 10; + task->data[2] = 14; + task->data[3] = 1; + task->data[4] = 15; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 7: + task->data[0] = 6; + task->data[1] = 12; + task->data[2] = 15; + task->data[3] = 1; + task->data[4] = 14; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 8: + task->data[0] = 6; + task->data[1] = 10; + task->data[2] = 17; + task->data[3] = 1; + task->data[4] = 11; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 9: + case 10: + task->data[0] = 6; + task->data[1] = 11; + task->data[2] = 15; + task->data[3] = 1; + task->data[4] = 14; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 11: + task->data[0] = 6; + task->data[1] = 7; + task->data[2] = 19; + task->data[3] = 1; + task->data[4] = 10; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + case 12: + task->data[0] = 6; + task->data[1] = 7; + task->data[2] = 17; + task->data[3] = 1; + task->data[4] = 12; + task->data[5] = 12; + task->data[6] = 0; + task->data[15] = taskId; + break; + default: + gSpecialVar_Result = 0x7F; + DestroyTask(taskId); + break; + } +} + +void sub_813AA60(u16 a0, u16 a1); +void sub_813ACE8(u8 a0, u16 a1); +void sub_813A42C(void); + +const u8 *const gUnknown_085B2CF0[][16] = { + { + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_BlueFlute, + gText_YellowFlute, + gText_RedFlute, + gText_WhiteFlute, + gText_BlackFlute, + gText_PrettyChair, + gText_PrettyDesk, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_0Pts, + gText_10Pts, + gText_20Pts, + gText_30Pts, + gText_40Pts, + gText_50Pts, + gText_60Pts, + gText_70Pts, + gText_80Pts, + gText_90Pts, + gText_100Pts, + gText_QuestionMark, + NULL, + NULL, + NULL, + NULL + }, + { + gText_KissPoster16BP, + gText_KissCushion32BP, + gText_SmoochumDoll32BP, + gText_TogepiDoll48BP, + gText_MeowthDoll48BP, + gText_ClefairyDoll48BP, + gText_DittoDoll48BP, + gText_CyndaquilDoll80BP, + gText_ChikoritaDoll80BP, + gText_TotodileDoll80BP, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_LaprasDoll128BP, + gText_SnorlaxDoll128BP, + gText_VenusaurDoll256BP, + gText_CharizardDoll256BP, + gText_BlastoiseDoll256BP, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_Protein1BP, + gText_Calcium1BP, + gText_Iron1BP, + gText_Zinc1BP, + gText_Carbos1BP, + gText_HpUp1BP, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_Leftovers48BP, + gText_WhiteHerb48BP, + gText_QuickClaw48BP, + gText_MentalHerb48BP, + gText_BrightPowder64BP, + gText_ChoiceBand64BP, + gText_KingsRock64BP, + gText_FocusBand64BP, + gText_ScopeLens64BP, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_EnergyPowder50, + gText_EnergyRoot80, + gText_HealPowder50, + gText_RevivalHerb300, + gText_Protein1000, + gText_Iron1000, + gText_Carbos1000, + gText_Calcium1000, + gText_Zinc1000, + gText_HPUp1000, + gText_PPUp3000, + gText_Exit, + NULL, + NULL, + NULL, + NULL + }, + { + gText_BattleTower2, + gText_BattleDome, + gText_BattlePalace, + gText_BattleArena, + gText_BattleFactory, + gText_BattlePike, + gText_BattlePyramid, + gText_RankingHall, + gText_ExchangeService, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_Softboiled16BP, + gText_SeismicToss24BP, + gText_DreamEater24BP, + gText_MegaPunch24BP, + gText_MegaKick48BP, + gText_BodySlam48BP, + gText_RockSlide48BP, + gText_Counter48BP, + gText_ThunderWave48BP, + gText_SwordsDance48BP, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_DefenseCurl16BP, + gText_Snore24BP, + gText_MudSlap24BP, + gText_Swift24BP, + gText_IcyWind24BP, + gText_Endure48BP, + gText_PsychUp48BP, + gText_IcePunch48BP, + gText_ThunderPunch48BP, + gText_FirePunch48BP, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_SlateportCity, + gText_BattleFrontier, + gText_SouthernIsland, + gText_NavelRock, + gText_BirthIsland, + gText_FarawayIsland, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }, + { + gText_BattleTrainers, + gText_BattleBasics, + gText_PokemonNature, + gText_PokemonMoves, + gText_Underpowered, + gText_WhenInDanger, + gText_Exit, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + } +}; + +void sub_813A4EC(u8 taskId); +void sub_813A694(u8 taskId); + +void sub_813A2DC(u8 taskId) +{ + u32 unk1; + u8 i, windowId; + struct WindowTemplate template; + struct Task *task = &gTasks[taskId]; + + ScriptContext2_Enable(); + gUnknown_0203AB68 = 0; + gUnknown_0203AB6C = 0x40; + sub_813AA60(task->data[11], 0); + sub_813ACE8(task->data[11], 0); + gUnknown_0203AB64 = AllocZeroed(task->data[1] * 8); + gUnknown_0203AB6A = 0; + sub_813A42C(); + + for (unk1 = 0, i = 0; i < task->data[1]; i++) + { + const u8 *text = gUnknown_085B2CF0[gSpecialVar_0x8004][i]; + gUnknown_0203AB64[i].name = text; + gUnknown_0203AB64[i].id = i; + unk1 = display_text_and_get_width(text, unk1); + } + + task->data[4] = convert_pixel_width_to_tile_width(unk1); + + if (task->data[2] + task->data[4] > 0x1D) + { + int unk2 = 0x1D - task->data[4]; + if (unk2 < 0) + { + task->data[2] = 0; + } + else + { + task->data[2] = unk2; + } + } + + template = CreateWindowTemplate(0, task->data[2], task->data[3], task->data[4], task->data[5], 0xF, 0x64); + windowId = AddWindow(&template); + task->data[13] = windowId; + SetStandardWindowBorderStyle(windowId, 0); + + gUnknown_030061D0.totalItems = task->data[1]; + gUnknown_030061D0.maxShowed = task->data[0]; + gUnknown_030061D0.windowId = task->data[13]; + + sub_813A694(taskId); + task->data[14] = ListMenuInit(&gUnknown_030061D0, task->data[7], task->data[8]); + schedule_bg_copy_tilemap_to_vram(0); + gTasks[taskId].func = sub_813A4EC; +} + +void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list); + +void sub_813A42C(void) +{ + gUnknown_030061D0.items = gUnknown_0203AB64; + gUnknown_030061D0.moveCursorFunc = sub_813A46C; + gUnknown_030061D0.itemPrintFunc = NULL; + gUnknown_030061D0.totalItems = 1; + gUnknown_030061D0.maxShowed = 1; + gUnknown_030061D0.windowId = 0; + gUnknown_030061D0.header_X = 0; + gUnknown_030061D0.item_X = 8; + gUnknown_030061D0.cursor_X = 0; + gUnknown_030061D0.upText_Y = 1; + gUnknown_030061D0.cursorPal = 2; + gUnknown_030061D0.fillValue = 1; + gUnknown_030061D0.cursorShadowPal = 3; + gUnknown_030061D0.lettersSpacing = 0; + gUnknown_030061D0.itemVerticalPadding = 0; + gUnknown_030061D0.scrollMultiple = 0; + gUnknown_030061D0.fontId = 1; + gUnknown_030061D0.cursorKind = 0; +} + +void sub_813A4EC(u8 taskId); +void sub_813AA60(u16 a0, u16 a1); +void sub_813AC44(u16 a0, u16 a1); +void sub_813AD34(u8 a0, u16 a1); + +void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + u8 taskId; + PlaySE(SE_SELECT); + taskId = FindTaskIdByFunc(sub_813A4EC); + if (taskId != 0xFF) + { + u16 misc; + struct Task *task = &gTasks[taskId]; + ListMenuGetScrollAndRow(task->data[14], &misc, NULL); + gUnknown_0203AB68 = misc; + ListMenuGetCurrentItemArrayId(task->data[14], &misc); + sub_813AC44(task->data[11], gUnknown_0203AB6A); + sub_813AA60(task->data[11], misc); + sub_813AD34(task->data[11], misc); + gUnknown_0203AB6A = misc; + } +} diff --git a/src/main_menu.c b/src/main_menu.c index 87673c9b20..3afe1abe58 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1965,7 +1965,7 @@ void sub_80323CC(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f) { struct WindowTemplate sp; - sp = sub_8198A50(0, a + 1, b + 1, 5, 4, f, d); + sp = CreateWindowTemplate(0, a + 1, b + 1, 5, 4, f, d); CreateYesNoMenu(&sp, c, e, 0); } diff --git a/src/menu.c b/src/menu.c index 96dda30754..223f8fd52f 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1143,7 +1143,7 @@ void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 template->baseBlock = baseBlock; } -struct WindowTemplate sub_8198A50(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock) +struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock) { struct WindowTemplate template; SetWindowTemplateFields(&template, bg, left, top, width, height, paletteNum, baseBlock); diff --git a/src/scrcmd.c b/src/scrcmd.c index a15ad666c9..01d04704aa 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1515,7 +1515,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) xText = (xWindow - xText - 1) * 8 + 3; yText = (yText - yWindow - 1) * 8; - winTemplate = sub_8198A50(0, xWindow, yWindow + 1, width, height, 0xF, 0x1); + winTemplate = CreateWindowTemplate(0, xWindow, yWindow + 1, width, height, 0xF, 0x1); gUnknown_03000F30 = AddWindow(&winTemplate); LoadUserWindowBorderGfx(gUnknown_03000F30, 0x214, 0xE0); NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0); diff --git a/sym_common.txt b/sym_common.txt index 3fa3029686..0158b76155 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -91,8 +91,7 @@ gUnknown_030061C0: @ 30061C0 gUnknown_030061C4: @ 30061C4 .space 0xC -gUnknown_030061D0: @ 30061D0 - .space 0x18 + .include "field_specials.o" gCB2_AfterEvolution: @ 30061E8 .space 0x4 diff --git a/sym_ewram.txt b/sym_ewram.txt index 1832e22402..34c9658e8e 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -605,36 +605,6 @@ gPlayerFacingPosition: @ 203AB40 .include "src/pokeblock.o" .include "src/field_specials.o" -gUnknown_0203AB5E: @ 203AB5E - .space 0x2 - -gUnknown_0203AB60: @ 203AB60 - .space 0x2 - -gUnknown_0203AB62: @ 203AB62 - .space 0x2 - -gUnknown_0203AB64: @ 203AB64 - .space 0x4 - -gUnknown_0203AB68: @ 203AB68 - .space 0x2 - -gUnknown_0203AB6A: @ 203AB6A - .space 0x2 - -gUnknown_0203AB6C: @ 203AB6C - .space 0x1 - -gUnknown_0203AB6D: @ 203AB6D - .space 0x1 - -gUnknown_0203AB6E: @ 203AB6E - .space 0x1 - -gUnknown_0203AB6F: @ 203AB6F - .space 0x1 - gUnknown_0203AB70: @ 203AB70 .space 0x4 From 12ff59f9c1d9618a2c7b7408c9ffea8e4c617629 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Fri, 10 Aug 2018 00:42:06 -0700 Subject: [PATCH 063/174] Continue decompiling field_specials --- asm/field_specials.s | 1551 --------------------------- common_syms/field_specials.txt | 1 + data/field_specials.s | 186 ---- graphics/misc/deoxys1.pal | 19 + graphics/misc/deoxys10.pal | 19 + graphics/misc/deoxys11.pal | 19 + graphics/misc/deoxys2.pal | 19 + graphics/misc/deoxys3.pal | 19 + graphics/misc/deoxys4.pal | 19 + graphics/misc/deoxys5.pal | 19 + graphics/misc/deoxys6.pal | 19 + graphics/misc/deoxys7.pal | 19 + graphics/misc/deoxys8.pal | 19 + graphics/misc/deoxys9.pal | 19 + graphics/unknown/unknown_5B3280.pal | 179 ---- include/decoration.h | 1 + include/field_effect.h | 5 +- include/field_specials.h | 2 +- include/menu.h | 1 + include/party_menu.h | 2 + include/strings.h | 168 ++- src/field_specials.c | 876 ++++++++++++++- src/menu.c | 1 - 23 files changed, 1230 insertions(+), 1952 deletions(-) create mode 100644 common_syms/field_specials.txt create mode 100644 graphics/misc/deoxys1.pal create mode 100644 graphics/misc/deoxys10.pal create mode 100644 graphics/misc/deoxys11.pal create mode 100644 graphics/misc/deoxys2.pal create mode 100644 graphics/misc/deoxys3.pal create mode 100644 graphics/misc/deoxys4.pal create mode 100644 graphics/misc/deoxys5.pal create mode 100644 graphics/misc/deoxys6.pal create mode 100644 graphics/misc/deoxys7.pal create mode 100644 graphics/misc/deoxys8.pal create mode 100644 graphics/misc/deoxys9.pal delete mode 100644 graphics/unknown/unknown_5B3280.pal diff --git a/asm/field_specials.s b/asm/field_specials.s index 6e6329a421..8b2fe920e6 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -5,1557 +5,6 @@ .text - thumb_func_start sub_813A4EC -sub_813A4EC: @ 813A4EC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks - adds r6, r0, r1 - ldrh r0, [r6, 0x24] - lsls r0, 24 - lsrs r0, 24 - bl ListMenuHandleInputGetItemId - adds r4, r0, 0 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _0813A51C - adds r0, 0x1 - cmp r4, r0 - bne _0813A530 - b _0813A566 - .pool -_0813A51C: - ldr r1, =gSpecialVar_Result - movs r0, 0x7F - strh r0, [r1] - movs r0, 0x5 - bl PlaySE - b _0813A54C - .pool -_0813A530: - ldr r0, =gSpecialVar_Result - strh r4, [r0] - movs r0, 0x5 - bl PlaySE - movs r1, 0x14 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _0813A54C - movs r1, 0xA - ldrsh r0, [r6, r1] - subs r0, 0x1 - cmp r4, r0 - bne _0813A558 -_0813A54C: - adds r0, r5, 0 - bl sub_813A570 - b _0813A566 - .pool -_0813A558: - adds r0, r5, 0 - bl sub_813A738 - ldr r0, =sub_813A600 - str r0, [r6] - bl EnableBothScriptContexts -_0813A566: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A4EC - - thumb_func_start sub_813A570 -sub_813A570: @ 813A570 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks - adds r4, r0 - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - bl ListMenuGetCurrentItemArrayId - ldrh r0, [r4, 0x1E] - mov r1, sp - ldrh r1, [r1] - bl sub_813AC44 - adds r0, r5, 0 - bl sub_813A738 - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - movs r2, 0 - bl DestroyListMenuTask - ldr r0, =gUnknown_0203AB64 - ldr r0, [r0] - bl Free - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_8198070 - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl FillWindowPixelBuffer - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl CopyWindowToVram - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - bl RemoveWindow - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A570 - - thumb_func_start sub_813A600 -sub_813A600: @ 813A600 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x14 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _0813A624 - cmp r0, 0x2 - bne _0813A624 - movs r0, 0x1 - strh r0, [r1, 0x14] - ldr r0, =sub_813A664 - str r0, [r1] -_0813A624: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A600 - - thumb_func_start sub_813A630 -sub_813A630: @ 813A630 - push {lr} - ldr r0, =sub_813A600 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _0813A64C - bl EnableBothScriptContexts - b _0813A65C - .pool -_0813A64C: - ldr r0, =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x14] - adds r0, 0x1 - strh r0, [r1, 0x14] -_0813A65C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A630 - - thumb_func_start sub_813A664 -sub_813A664: @ 813A664 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ScriptContext2_Enable - adds r0, r4, 0 - bl sub_813A694 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_813A4EC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A664 - - thumb_func_start sub_813A694 -sub_813A694: @ 813A694 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r4, r1, r0 - mov r1, sp - ldr r0, =gUnknown_085B3030 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldr r0, [r0] - str r0, [r1] - movs r0, 0x8 - ldrsh r1, [r4, r0] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _0813A724 - mov r2, sp - movs r3, 0x10 - ldrsh r1, [r4, r3] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - lsls r1, 3 - adds r1, 0xC - movs r5, 0xC - ldrsh r0, [r4, r5] - subs r0, 0x1 - lsls r0, 3 - adds r1, r0 - movs r3, 0 - strb r1, [r2, 0x1] - mov r1, sp - movs r0, 0x8 - strb r0, [r1, 0x2] - movs r0, 0x10 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - lsls r1, 3 - adds r1, 0xC - movs r5, 0xC - ldrsh r0, [r4, r5] - subs r0, 0x1 - lsls r0, 3 - adds r1, r0 - strb r1, [r2, 0x4] - mov r1, sp - movs r2, 0x12 - ldrsh r0, [r4, r2] - lsls r0, 3 - adds r0, 0xA - strb r0, [r1, 0x5] - mov r0, sp - strh r3, [r0, 0x6] - mov r2, sp - ldrh r0, [r4, 0xA] - ldrh r1, [r4, 0x8] - subs r0, r1 - strh r0, [r2, 0x8] - ldr r1, =gUnknown_0203AB68 - mov r0, sp - bl AddScrollIndicatorArrowPair - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] -_0813A724: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A694 - - thumb_func_start sub_813A738 -sub_813A738: @ 813A738 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r2, r1, r0 - movs r0, 0x8 - ldrsh r1, [r2, r0] - movs r3, 0xA - ldrsh r0, [r2, r3] - cmp r1, r0 - beq _0813A75E - ldrh r0, [r2, 0x20] - lsls r0, 24 - lsrs r0, 24 - bl RemoveScrollIndicatorArrowPair -_0813A75E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A738 - - thumb_func_start nullsub_55 -nullsub_55: @ 813A768 - bx lr - thumb_func_end nullsub_55 - - thumb_func_start sub_813A76C -sub_813A76C: @ 813A76C - push {r4-r6,lr} - movs r4, 0 - ldr r6, =gLinkPlayers - ldr r0, =0x0000401f - adds r5, r0, 0 -_0813A776: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x13] - cmp r0, 0 - bne _0813A79C - subs r0, r5, r4 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl VarSet - b _0813A7A8 - .pool -_0813A79C: - subs r0, r5, r4 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x69 - bl VarSet -_0813A7A8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0813A776 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813A76C - - thumb_func_start sub_813A7B8 -sub_813A7B8: @ 813A7B8 - push {lr} - ldr r1, =gSpecialVar_0x8004 - ldrh r0, [r1] - cmp r0, 0x5 - bls _0813A7C6 - movs r0, 0 - strh r0, [r1] -_0813A7C6: - ldrh r1, [r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl GetNature - lsls r0, 24 - ldr r1, =gUnknown_085B3040 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A7B8 - - thumb_func_start UpdateFrontierGambler -UpdateFrontierGambler: @ 813A7F4 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =0x00004030 - bl GetVarPointer - adds r5, r0, 0 - ldrh r0, [r5] - adds r4, r0 - strh r4, [r5] - ldrh r0, [r5] - movs r1, 0xC - bl __umodsi3 - strh r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end UpdateFrontierGambler - - thumb_func_start sub_813A820 -sub_813A820: @ 813A820 - push {r4,lr} - ldr r0, =0x00004030 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r1, =gUnknown_085B30A4 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - ldr r0, =0x00004031 - adds r1, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A820 - - thumb_func_start sub_813A854 -sub_813A854: @ 813A854 - push {r4,lr} - ldr r4, =gUnknown_085B30D4 - ldr r0, =0x00004031 - bl VarGet - lsls r0, 16 - lsrs r0, 14 - adds r0, r4 - ldr r0, [r0] - bl ShowFieldMessage - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A854 - - thumb_func_start sub_813A878 -sub_813A878: @ 813A878 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, =0x00004031 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r4, =0x00004033 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0813A8F0 - ldr r1, =gUnknown_085B3104 - lsls r0, r6, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r5, 8 - adds r0, r7 - cmp r1, r0 - bne _0813A8F0 - mov r0, r8 - cmp r0, 0 - beq _0813A8E8 - adds r0, r4, 0 - movs r1, 0x2 - bl VarSet - b _0813A8F0 - .pool -_0813A8E8: - adds r0, r4, 0 - movs r1, 0x3 - bl VarSet -_0813A8F0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_813A878 - - thumb_func_start sub_813A8FC -sub_813A8FC: @ 813A8FC - push {lr} - sub sp, 0x2C - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000eb8 - adds r0, r1 - ldrh r1, [r0] - add r0, sp, 0xC - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r1, =gText_BP - bl StringCopy - movs r0, 0x1 - add r1, sp, 0xC - movs r2, 0x30 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - ldr r0, =gUnknown_0203AB6D - ldrb r0, [r0] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - add r2, sp, 0xC - bl PrintTextOnWindow - add sp, 0x2C - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A8FC - - thumb_func_start sub_813A958 -sub_813A958: @ 813A958 - push {r4,lr} - ldr r4, =gUnknown_0203AB6D - ldr r0, =gUnknown_085B311C - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl SetStandardWindowBorderStyle - bl sub_813A8FC - ldrb r0, [r4] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A958 - - thumb_func_start sub_813A988 -sub_813A988: @ 813A988 - push {r4,lr} - ldr r4, =gUnknown_0203AB6D - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8198070 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813A988 - - thumb_func_start sub_813A9A4 -sub_813A9A4: @ 813A9A4 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000eb8 - adds r1, r0, r2 - ldr r0, =gSpecialVar_0x8004 - ldrh r2, [r1] - ldrh r0, [r0] - cmp r2, r0 - bcs _0813A9C8 - movs r0, 0 - b _0813A9CA - .pool -_0813A9C8: - subs r0, r2, r0 -_0813A9CA: - strh r0, [r1] - pop {r0} - bx r0 - thumb_func_end sub_813A9A4 - - thumb_func_start sub_813A9D0 -sub_813A9D0: @ 813A9D0 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000eb8 - adds r2, r0, r1 - ldrh r1, [r2] - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - adds r1, r0 - ldr r0, =0x0000270f - cmp r1, r0 - ble _0813A9FC - strh r0, [r2] - b _0813A9FE - .pool -_0813A9FC: - strh r1, [r2] -_0813A9FE: - pop {r0} - bx r0 - thumb_func_end sub_813A9D0 - - thumb_func_start sub_813AA04 -sub_813AA04: @ 813AA04 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000eb8 - adds r0, r1 - ldrh r0, [r0] - bx lr - .pool - thumb_func_end sub_813AA04 - - thumb_func_start sub_813AA18 -sub_813AA18: @ 813AA18 - push {r4,lr} - ldr r4, =gUnknown_0203AB6E - ldr r0, =gUnknown_085B3124 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl SetStandardWindowBorderStyle - ldrb r0, [r4] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AA18 - - thumb_func_start sub_813AA44 -sub_813AA44: @ 813AA44 - push {r4,lr} - ldr r4, =gUnknown_0203AB6E - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8198070 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AA44 - - thumb_func_start sub_813AA60 -sub_813AA60: @ 813AA60 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - lsrs r4, r0, 16 - ldr r1, =0xfffd0000 - adds r0, r1 - lsrs r0, 16 - cmp r0, 0x3 - bls _0813AA78 - b _0813ABC2 -_0813AA78: - movs r0, 0xD8 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x11 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - cmp r4, 0x4 - beq _0813AAE8 - cmp r4, 0x4 - bgt _0813AAA0 - cmp r4, 0x3 - beq _0813AAAA - b _0813ABC2 - .pool -_0813AAA0: - cmp r4, 0x5 - beq _0813AB5C - cmp r4, 0x6 - beq _0813AB94 - b _0813ABC2 -_0813AAAA: - ldr r1, =gUnknown_085B3170 - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r1, =gUnknown_085B312C - lsls r0, r5, 1 - adds r1, r0, r1 - ldrh r5, [r1] - ldr r0, =0x0000ffff - cmp r5, r0 - beq _0813AB18 - b _0813AB2C - .pool -_0813AAE8: - ldr r1, =gUnknown_085B319C - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r1, =gUnknown_085B3142 - lsls r0, r5, 1 - adds r1, r0, r1 - ldrh r5, [r1] - ldr r0, =0x0000ffff - cmp r5, r0 - bne _0813AB2C -_0813AB18: - ldrh r0, [r1] - bl sub_813ABD4 - b _0813ABC2 - .pool -_0813AB2C: - ldr r4, =0x0000157c - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - lsls r0, r5, 24 - lsrs r0, 24 - str r4, [sp] - str r4, [sp, 0x4] - movs r1, 0x21 - movs r2, 0x58 - movs r3, 0 - bl AddDecorationIconObject - ldr r1, =gUnknown_0203AB6C - strb r0, [r1] - b _0813ABC2 - .pool -_0813AB5C: - ldr r1, =gUnknown_085B31B4 - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r1, =gUnknown_085B314E - lsls r0, r5, 1 - adds r0, r1 - ldrh r0, [r0] - bl sub_813ABD4 - b _0813ABC2 - .pool -_0813AB94: - ldr r1, =gUnknown_085B31D0 - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r1, =gUnknown_085B315C - lsls r0, r5, 1 - adds r0, r1 - ldrh r0, [r0] - bl sub_813ABD4 -_0813ABC2: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AA60 - - thumb_func_start sub_813ABD4 -sub_813ABD4: @ 813ABD4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r4, =0x0000157c - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl AddItemIconSprite - ldr r4, =gUnknown_0203AB6C - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0813AC32 - ldr r3, =gSprites - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x24 - strh r1, [r0, 0x20] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x5C - strh r1, [r0, 0x22] -_0813AC32: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813ABD4 - - thumb_func_start sub_813AC44 -sub_813AC44: @ 813AC44 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, =gUnknown_0203AB6C - ldrb r0, [r2] - cmp r0, 0x40 - beq _0813AC70 - cmp r1, 0x6 - bgt _0813AC6A - cmp r1, 0x3 - blt _0813AC6A - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources -_0813AC6A: - ldr r1, =gUnknown_0203AB6C - movs r0, 0x40 - strb r0, [r1] -_0813AC70: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AC44 - - thumb_func_start sub_813AC7C -sub_813AC7C: @ 813AC7C - push {lr} - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - beq _0813ACB8 - ldr r0, =gStringVar1 - ldr r2, =gUnknown_085B320C - ldr r1, =gSpecialVar_0x8004 - ldrh r1, [r1] - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - b _0813ACD2 - .pool -_0813ACB8: - ldr r0, =gStringVar1 - ldr r2, =gUnknown_085B31F8 - ldr r1, =gSpecialVar_0x8004 - ldrh r1, [r1] - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy -_0813ACD2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AC7C - - thumb_func_start sub_813ACE8 -sub_813ACE8: @ 813ACE8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - subs r0, 0x9 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0813AD20 - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - cmp r0, 0 - bne _0813AD18 - ldr r4, =gUnknown_0203AB5E - ldr r0, =gUnknown_085B3220 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl SetStandardWindowBorderStyle -_0813AD18: - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_813AD34 -_0813AD20: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813ACE8 - - thumb_func_start sub_813AD34 -sub_813AD34: @ 813AD34 - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - adds r7, r5, 0 - lsrs r6, r0, 24 - movs r1, 0xF7 - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0813ADAC - ldr r4, =gUnknown_0203AB5E - ldrb r0, [r4] - movs r1, 0x60 - str r1, [sp] - movs r1, 0x30 - str r1, [sp, 0x4] - movs r1, 0x11 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - cmp r6, 0xA - bne _0813AD90 - ldrb r0, [r4] - ldr r2, =gUnknown_085B3254 - lsls r1, r5, 2 - adds r1, r2 - ldr r2, [r1] - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - b _0813ADAC - .pool -_0813AD90: - ldrb r0, [r4] - ldr r2, =gUnknown_085B3228 - lsls r1, r7, 2 - adds r1, r2 - ldr r2, [r1] - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow -_0813ADAC: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AD34 - - thumb_func_start sub_813ADB8 -sub_813ADB8: @ 813ADB8 - push {r4,lr} - ldr r4, =gUnknown_0203AB5E - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8198070 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813ADB8 - - thumb_func_start sub_813ADD4 -sub_813ADD4: @ 813ADD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - ldr r0, =sub_813A600 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _0813AE90 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks - adds r6, r0, r1 - ldrh r0, [r6, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r4, sp - adds r4, 0x16 - add r1, sp, 0x14 - adds r2, r4, 0 - bl ListMenuGetScrollAndRow - ldrh r0, [r6, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl SetStandardWindowBorderStyle - movs r5, 0 - mov r9, r4 - ldr r0, =gUnknown_085B2CF0 - mov r8, r0 - movs r4, 0 -_0813AE1E: - ldrh r0, [r6, 0x22] - lsls r0, 24 - lsrs r0, 24 - add r1, sp, 0x14 - ldrh r2, [r1] - adds r2, r5 - lsls r2, 2 - ldr r1, =gSpecialVar_0x8004 - ldrh r1, [r1] - lsls r1, 6 - adds r2, r1 - add r2, r8 - ldr r2, [r2] - lsls r1, r5, 28 - lsrs r1, 24 - str r1, [sp] - movs r7, 0xFF - str r7, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r3, 0xA - bl sub_8199F74 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _0813AE1E - ldrh r0, [r6, 0x22] - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gText_SelectorArrow - mov r3, r9 - ldrh r1, [r3] - lsls r1, 28 - lsrs r1, 24 - str r1, [sp] - str r7, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - ldrh r0, [r6, 0x22] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrh r0, [r6, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl CopyWindowToVram -_0813AE90: - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813ADD4 - - thumb_func_start sub_813AEB4 -sub_813AEB4: @ 813AEB4 - push {r4,lr} - movs r1, 0 - ldr r0, =gSpecialVar_0x8005 - strh r1, [r0] - ldr r0, =0x0000400e - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =0x0000400d - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r4, 0 - beq _0813AF18 - movs r2, 0 - lsls r1, 1 - ldr r3, =gUnknown_0861500C - ldr r0, =gUnknown_085B320C - adds r0, r1, r0 - ldrh r1, [r0] -_0813AEE2: - lsls r0, r2, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r1 - beq _0813AF0C - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1D - bls _0813AEE2 - b _0813AF38 - .pool -_0813AF0C: - ldr r0, =gSpecialVar_0x8005 - strh r2, [r0] - b _0813AF38 - .pool -_0813AF18: - movs r2, 0 - lsls r1, 1 - ldr r3, =gUnknown_0861500C - ldr r0, =gUnknown_085B31F8 - adds r0, r1, r0 - ldrh r1, [r0] -_0813AF24: - lsls r0, r2, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r1 - beq _0813AF0C - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1D - bls _0813AF24 -_0813AF38: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AEB4 - - thumb_func_start sub_813AF48 -sub_813AF48: @ 813AF48 - push {r4,r5,lr} - ldr r0, =sub_813A600 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xFF - beq _0813AFB6 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks - adds r4, r0 - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - movs r2, 0 - bl DestroyListMenuTask - ldr r0, =gUnknown_0203AB64 - ldr r0, [r0] - bl Free - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_8198070 - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl FillWindowPixelBuffer - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - bl ClearWindowTilemap - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl CopyWindowToVram - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - bl RemoveWindow - adds r0, r5, 0 - bl DestroyTask -_0813AFB6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AF48 - - thumb_func_start sub_813AFC8 -sub_813AFC8: @ 813AFC8 - push {lr} - ldr r0, =task_deoxys_sound - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_813AFC8 - - thumb_func_start task_deoxys_sound -task_deoxys_sound: @ 813AFDC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =0x000008d4 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813B004 - ldr r1, =gSpecialVar_Result - movs r0, 0x3 - b _0813B06A - .pool -_0813B004: - ldr r0, =0x00004035 - mov r8, r0 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r4, =0x00004034 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl VarSet - cmp r5, 0 - beq _0813B05C - ldr r0, =gUnknown_085B33F6 - subs r1, r5, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, r6 - bcs _0813B05C - movs r0, 0 - bl sub_813B0B4 - mov r0, r8 - movs r1, 0 - bl VarSet - ldr r1, =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] - b _0813B070 - .pool -_0813B05C: - cmp r5, 0xA - bne _0813B080 - ldr r0, =0x000008d4 - bl FlagSet - ldr r1, =gSpecialVar_Result - movs r0, 0x2 -_0813B06A: - strh r0, [r1] - bl EnableBothScriptContexts -_0813B070: - adds r0, r7, 0 - bl DestroyTask - b _0813B0A2 - .pool -_0813B080: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_813B0B4 - ldr r0, =0x00004035 - adds r1, r5, 0 - bl VarSet - ldr r1, =gSpecialVar_Result - movs r0, 0x1 - strh r0, [r1] - adds r0, r7, 0 - bl DestroyTask -_0813B0A2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end task_deoxys_sound - - thumb_func_start sub_813B0B4 -sub_813B0B4: @ 813B0B4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 5 - ldr r1, =gUnknown_085B3280 - adds r0, r1 - movs r1, 0xD0 - lsls r1, 1 - movs r2, 0x8 - bl LoadPalette - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x1 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - cmp r4, 0 - bne _0813B0F0 - movs r0, 0xC4 - bl PlaySE - b _0813B0F8 - .pool -_0813B0F0: - movs r0, 0x82 - lsls r0, 1 - bl PlaySE -_0813B0F8: - ldr r0, =sub_813B160 - movs r1, 0x8 - bl CreateTask - ldr r3, =gFieldEffectArguments - movs r0, 0x1 - str r0, [r3] - movs r0, 0x3A - str r0, [r3, 0x4] - movs r0, 0x1A - str r0, [r3, 0x8] - ldr r0, =gUnknown_085B33E0 - lsls r2, r4, 1 - adds r1, r2, r0 - ldrb r1, [r1] - str r1, [r3, 0xC] - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - str r0, [r3, 0x10] - adds r5, r2, 0 - cmp r4, 0 - bne _0813B138 - movs r0, 0x3C - b _0813B13A - .pool -_0813B138: - movs r0, 0x5 -_0813B13A: - str r0, [r3, 0x14] - movs r0, 0x42 - bl FieldEffectStart - ldr r0, =gUnknown_085B33E0 - adds r1, r5, r0 - ldrb r1, [r1] - adds r0, 0x1 - adds r0, r5, r0 - ldrb r2, [r0] - movs r0, 0x1 - bl Overworld_SetEventObjTemplateCoords - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B0B4 - - thumb_func_start sub_813B160 -sub_813B160: @ 813B160 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x42 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _0813B17C - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask -_0813B17C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813B160 - - thumb_func_start increment_var_x4026_on_birth_island_modulo_100 -increment_var_x4026_on_birth_island_modulo_100: @ 813B184 - push {r4,lr} - ldr r4, =0x00004034 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldr r0, =0x00003a1a - cmp r1, r0 - bne _0813B1C8 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x63 - bls _0813B1C0 - adds r0, r4, 0 - movs r1, 0 - bl VarSet - b _0813B1C8 - .pool -_0813B1C0: - adds r0, r4, 0 - adds r1, r2, 0 - bl VarSet -_0813B1C8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end increment_var_x4026_on_birth_island_modulo_100 - - thumb_func_start sub_813B1D0 -sub_813B1D0: @ 813B1D0 - push {lr} - ldr r0, =0x00004035 - bl VarGet - lsls r0, 24 - lsrs r0, 19 - ldr r1, =gUnknown_085B3280 - adds r0, r1 - movs r1, 0xD0 - lsls r1, 1 - movs r2, 0x8 - bl LoadPalette - movs r0, 0x80 - lsls r0, 19 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B1D0 - - thumb_func_start set_unknown_box_id -@ void set_unknown_box_id(char id) -set_unknown_box_id: @ 813B204 - ldr r1, =gUnknown_0203AB6F - strb r0, [r1] - bx lr - .pool - thumb_func_end set_unknown_box_id - - thumb_func_start get_unknown_box_id -get_unknown_box_id: @ 813B210 - ldr r0, =gUnknown_0203AB6F - ldrb r0, [r0] - bx lr - .pool - thumb_func_end get_unknown_box_id - thumb_func_start sub_813B21C sub_813B21C: @ 813B21C push {r4,r5,lr} diff --git a/common_syms/field_specials.txt b/common_syms/field_specials.txt new file mode 100644 index 0000000000..25d874a656 --- /dev/null +++ b/common_syms/field_specials.txt @@ -0,0 +1 @@ +gUnknown_030061D0 diff --git a/data/field_specials.s b/data/field_specials.s index 0f52cb891c..1c2fb32da8 100644 --- a/data/field_specials.s +++ b/data/field_specials.s @@ -3,192 +3,6 @@ .section .rodata - .align 2 -gUnknown_085B3030:: @ 85B3030 - .4byte 0x03000002, 0x00000000, 0x07d00000, 0x00000064 - - .align 2 -gUnknown_085B3040:: @ 85B3040 - .4byte BattleFrontier_Lounge5_Text_26468D - .4byte BattleFrontier_Lounge5_Text_2646E5 - .4byte BattleFrontier_Lounge5_Text_264741 - .4byte BattleFrontier_Lounge5_Text_2647A4 - .4byte BattleFrontier_Lounge5_Text_2647FC - .4byte BattleFrontier_Lounge5_Text_264858 - .4byte BattleFrontier_Lounge5_Text_2648BE - .4byte BattleFrontier_Lounge5_Text_264916 - .4byte BattleFrontier_Lounge5_Text_264972 - .4byte BattleFrontier_Lounge5_Text_2649D5 - .4byte BattleFrontier_Lounge5_Text_264A3F - .4byte BattleFrontier_Lounge5_Text_264A9B - .4byte BattleFrontier_Lounge5_Text_264AF3 - .4byte BattleFrontier_Lounge5_Text_264B5D - .4byte BattleFrontier_Lounge5_Text_2648BE - .4byte BattleFrontier_Lounge5_Text_264BC3 - .4byte BattleFrontier_Lounge5_Text_264C36 - .4byte BattleFrontier_Lounge5_Text_2648BE - .4byte BattleFrontier_Lounge5_Text_264C95 - .4byte BattleFrontier_Lounge5_Text_264D01 - .4byte BattleFrontier_Lounge5_Text_264D6B - .4byte BattleFrontier_Lounge5_Text_264DD7 - .4byte BattleFrontier_Lounge5_Text_264E33 - .4byte BattleFrontier_Lounge5_Text_264E8F - .4byte BattleFrontier_Lounge5_Text_2648BE - - .align 2 -gUnknown_085B30A4:: @ 85B30A4 - .4byte BattleFrontier_Lounge3_Text_262261 - .4byte BattleFrontier_Lounge3_Text_26230D - .4byte BattleFrontier_Lounge3_Text_2623B9 - .4byte BattleFrontier_Lounge3_Text_262464 - .4byte BattleFrontier_Lounge3_Text_26250E - .4byte BattleFrontier_Lounge3_Text_2625B8 - .4byte BattleFrontier_Lounge3_Text_26266A - .4byte BattleFrontier_Lounge3_Text_26271C - .4byte BattleFrontier_Lounge3_Text_2627C9 - .4byte BattleFrontier_Lounge3_Text_262876 - .4byte BattleFrontier_Lounge3_Text_26291A - .4byte BattleFrontier_Lounge3_Text_2629BC - - .align 2 -gUnknown_085B30D4:: @ 85B30D4 - .4byte BattleFrontier_Lounge3_Text_262C04 - .4byte BattleFrontier_Lounge3_Text_262C90 - .4byte BattleFrontier_Lounge3_Text_262D1C - .4byte BattleFrontier_Lounge3_Text_262DA7 - .4byte BattleFrontier_Lounge3_Text_262E34 - .4byte BattleFrontier_Lounge3_Text_262EC1 - .4byte BattleFrontier_Lounge3_Text_262F56 - .4byte BattleFrontier_Lounge3_Text_262FEB - .4byte BattleFrontier_Lounge3_Text_263078 - .4byte BattleFrontier_Lounge3_Text_263105 - .4byte BattleFrontier_Lounge3_Text_26318C - .4byte BattleFrontier_Lounge3_Text_263211 - - .align 1 -gUnknown_085B3104:: @ 85B3104 - .2byte 0x0000, 0x0001, 0x0002, 0x0100, 0x0101, 0x0400, 0x0401, 0x0200, 0x0201, 0x0300, 0x0500, 0x0600 - - .align 2 -gUnknown_085B311C:: @ 85B311C - window_template 0x00, 0x01, 0x01, 0x06, 0x02, 0x0f, 0x0008 - - .align 2 -gUnknown_085B3124:: @ 85B3124 - window_template 0x00, 0x02, 0x09, 0x04, 0x04, 0x0f, 0x0014 - - .align 1 -gUnknown_085B312C:: @ 85B312C - .2byte 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xffff - - .align 1 -gUnknown_085B3142:: @ 85B3142 - .2byte 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xffff - - .align 1 -gUnknown_085B314E:: @ 85B314E - .2byte 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xffff - - .align 1 -gUnknown_085B315C:: @ 85B315C - .2byte 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xffff - - .align 2 -gUnknown_085B3170:: @ 85B3170 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260201 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260287 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E - .4byte gText_Exit - - .align 2 -gUnknown_085B319C:: @ 85B319C - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C - .4byte gText_Exit - - .align 2 -gUnknown_085B31B4:: @ 85B31B4 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260397 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260436 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C - .4byte gText_Exit - - .align 2 -gUnknown_085B31D0:: @ 85B31D0 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260542 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260575 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2 - .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260613 - .4byte gText_Exit - - .align 1 -gUnknown_085B31F8:: @ 85B31F8 - .2byte 0x0087, 0x0045, 0x008a, 0x0005, 0x0019, 0x0022, 0x009d, 0x0044, 0x0056, 0x000e - - .align 1 -gUnknown_085B320C:: @ 85B320C - .2byte 0x006f, 0x00ad, 0x00bd, 0x0081, 0x00c4, 0x00cb, 0x00f4, 0x0008, 0x0009, 0x0007 - - .align 2 -gUnknown_085B3220:: @ 85B3220 - window_template 0x00, 0x01, 0x07, 0x0c, 0x06, 0x0f, 0x001c - - .align 2 -gUnknown_085B3228:: @ 85B3228 - .4byte BattleFrontier_Lounge7_Text_265E30 - .4byte BattleFrontier_Lounge7_Text_265E5B - .4byte BattleFrontier_Lounge7_Text_265E8A - .4byte BattleFrontier_Lounge7_Text_265EC0 - .4byte BattleFrontier_Lounge7_Text_265EED - .4byte BattleFrontier_Lounge7_Text_265F1C - .4byte BattleFrontier_Lounge7_Text_265F47 - .4byte BattleFrontier_Lounge7_Text_265F77 - .4byte BattleFrontier_Lounge7_Text_265FAA - .4byte BattleFrontier_Lounge7_Text_265FDD - .4byte gText_Exit - - .align 2 -gUnknown_085B3254:: @ 85B3254 - .4byte BattleFrontier_Lounge7_Text_26600A - .4byte BattleFrontier_Lounge7_Text_26603E - .4byte BattleFrontier_Lounge7_Text_266070 - .4byte BattleFrontier_Lounge7_Text_2660A6 - .4byte BattleFrontier_Lounge7_Text_2660D0 - .4byte BattleFrontier_Lounge7_Text_2660FF - .4byte BattleFrontier_Lounge7_Text_26612D - .4byte BattleFrontier_Lounge7_Text_26615F - .4byte BattleFrontier_Lounge7_Text_266185 - .4byte BattleFrontier_Lounge7_Text_2661B5 - .4byte gText_Exit - - .align 2 -gUnknown_085B3280:: @ 85B3280 - .incbin "graphics/unknown/unknown_5B3280.gbapal" - -gUnknown_085B33E0:: @ 85B33E0 - .byte 0x0f, 0x0c, 0x0b, 0x0e, 0x0f, 0x08, 0x13, 0x0e, 0x0c, 0x0b, 0x12, 0x0b, 0x0f, 0x0e, 0x0b, 0x0e, 0x13, 0x0e, 0x0f, 0x0f, 0x0f, 0x0a - -gUnknown_085B33F6:: @ 85B33F6 - .byte 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03 - gUnknown_085B3400:: @ 85B3400 .byte 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c diff --git a/graphics/misc/deoxys1.pal b/graphics/misc/deoxys1.pal new file mode 100644 index 0000000000..d90c4cb38d --- /dev/null +++ b/graphics/misc/deoxys1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +180 180 180 +148 148 148 +90 90 98 +57 57 74 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +222 222 222 +0 0 0 diff --git a/graphics/misc/deoxys10.pal b/graphics/misc/deoxys10.pal new file mode 100644 index 0000000000..8bdd860fb8 --- /dev/null +++ b/graphics/misc/deoxys10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +246 197 156 +238 82 82 +189 32 32 +123 8 8 +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 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys11.pal b/graphics/misc/deoxys11.pal new file mode 100644 index 0000000000..9a9ee25309 --- /dev/null +++ b/graphics/misc/deoxys11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 205 156 +255 82 82 +205 32 32 +131 8 8 +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 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys2.pal b/graphics/misc/deoxys2.pal new file mode 100644 index 0000000000..38806db0f7 --- /dev/null +++ b/graphics/misc/deoxys2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +180 180 172 +156 139 139 +98 82 90 +57 49 65 +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 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys3.pal b/graphics/misc/deoxys3.pal new file mode 100644 index 0000000000..24db0e3436 --- /dev/null +++ b/graphics/misc/deoxys3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +189 180 172 +164 131 131 +106 74 82 +65 41 57 +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 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys4.pal b/graphics/misc/deoxys4.pal new file mode 100644 index 0000000000..5db08f3665 --- /dev/null +++ b/graphics/misc/deoxys4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +197 180 172 +172 123 123 +123 65 74 +74 41 49 +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 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys5.pal b/graphics/misc/deoxys5.pal new file mode 100644 index 0000000000..25a62aae6c --- /dev/null +++ b/graphics/misc/deoxys5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +205 189 164 +189 115 115 +131 65 65 +82 32 41 +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 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys6.pal b/graphics/misc/deoxys6.pal new file mode 100644 index 0000000000..0f636873e4 --- /dev/null +++ b/graphics/misc/deoxys6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +213 189 164 +197 115 115 +148 57 65 +90 32 41 +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 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys7.pal b/graphics/misc/deoxys7.pal new file mode 100644 index 0000000000..2dba57eef4 --- /dev/null +++ b/graphics/misc/deoxys7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +222 189 164 +205 106 106 +156 49 57 +98 24 32 +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 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys8.pal b/graphics/misc/deoxys8.pal new file mode 100644 index 0000000000..d46c269964 --- /dev/null +++ b/graphics/misc/deoxys8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +230 197 156 +222 98 98 +164 49 49 +106 16 24 +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 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/deoxys9.pal b/graphics/misc/deoxys9.pal new file mode 100644 index 0000000000..f65fee0653 --- /dev/null +++ b/graphics/misc/deoxys9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +238 197 156 +230 90 90 +180 41 41 +115 16 16 +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 0 0 +0 0 0 +0 0 0 diff --git a/graphics/unknown/unknown_5B3280.pal b/graphics/unknown/unknown_5B3280.pal deleted file mode 100644 index a23813afb2..0000000000 --- a/graphics/unknown/unknown_5B3280.pal +++ /dev/null @@ -1,179 +0,0 @@ -JASC-PAL -0100 -176 -115 197 164 -180 180 180 -148 148 148 -90 90 98 -57 57 74 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -222 222 222 -0 0 0 -115 197 164 -180 180 172 -156 139 139 -98 82 90 -57 49 65 -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 0 0 -0 0 0 -0 0 0 -115 197 164 -189 180 172 -164 131 131 -106 74 82 -65 41 57 -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 0 0 -0 0 0 -0 0 0 -115 197 164 -197 180 172 -172 123 123 -123 65 74 -74 41 49 -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 0 0 -0 0 0 -0 0 0 -115 197 164 -205 189 164 -189 115 115 -131 65 65 -82 32 41 -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 0 0 -0 0 0 -0 0 0 -115 197 164 -213 189 164 -197 115 115 -148 57 65 -90 32 41 -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 0 0 -0 0 0 -0 0 0 -115 197 164 -222 189 164 -205 106 106 -156 49 57 -98 24 32 -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 0 0 -0 0 0 -0 0 0 -115 197 164 -230 197 156 -222 98 98 -164 49 49 -106 16 24 -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 0 0 -0 0 0 -0 0 0 -115 197 164 -238 197 156 -230 90 90 -180 41 41 -115 16 16 -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 0 0 -0 0 0 -0 0 0 -115 197 164 -246 197 156 -238 82 82 -189 32 32 -123 8 8 -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 0 0 -0 0 0 -0 0 0 -115 197 164 -255 205 156 -255 82 82 -205 32 32 -131 8 8 -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 0 0 -0 0 0 -0 0 0 diff --git a/include/decoration.h b/include/decoration.h index 76b2f2ec46..f613c25d2e 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -73,5 +73,6 @@ void sub_8126B2C(u8 taskId); void sub_8127208(u8 taskId); void sub_8127250(u8 *dest, u8 decorCat); bool8 IsSelectedDecorInThePC(void); +u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u16 paletteTag); #endif //GUARD_DECORATION_H diff --git a/include/field_effect.h b/include/field_effect.h index 9c9501bfa8..cdabd5c992 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -74,7 +74,10 @@ enum FieldEffectScriptIdx FLDEFF_USE_FLY_ANCIENT_TOMB, FLDEFF_PCTURN_ON, FLDEFF_HALL_OF_FAME_RECORD, - FLDEFF_USE_TELEPORT + FLDEFF_USE_TELEPORT, + FLDEFF_64, + FLDEFF_65, + FLDEFF_66, }; extern s32 gFieldEffectArguments[8]; diff --git a/include/field_specials.h b/include/field_specials.h index c1f70a3996..8065b061c4 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -3,7 +3,7 @@ u8 GetLeadMonIndex(void); u8 sub_813B260(void); -u16 get_unknown_box_id(void); +u8 get_unknown_box_id(void); bool8 InMultiBattleRoom(void); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/menu.h b/include/menu.h index 0c191de575..4cc43dd4c5 100644 --- a/include/menu.h +++ b/include/menu.h @@ -84,5 +84,6 @@ void sub_819A344(u8 a0, u8 *dest, u8 color); void RemoveMapNamePopUpWindow(void); u8 GetMapNamePopUpWindowId(void); u8 AddMapNamePopUpWindow(void); +void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing); #endif // GUARD_MENU_H diff --git a/include/party_menu.h b/include/party_menu.h index d24bc817f7..cb2c388911 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -34,6 +34,8 @@ struct Struct203CEC8 extern struct Struct203CEC8 gUnknown_0203CEC8; +extern const u16 gUnknown_0861500C[]; + bool8 pokemon_has_move(struct Pokemon *, u16); void sub_81B58A8(void); void DoWallyTutorialBagMenu(void); diff --git a/include/strings.h b/include/strings.h index 14ff0048f3..afb26b7cbe 100644 --- a/include/strings.h +++ b/include/strings.h @@ -490,37 +490,6 @@ extern const u8 gText_B4F[]; extern const u8 gText_Rooftop[]; extern const u8 gText_ElevatorNowOn[]; -extern const u8 BattleFrontier_Lounge2_Text_260971[]; -extern const u8 BattleFrontier_Lounge2_Text_260A1E[]; -extern const u8 BattleFrontier_Lounge2_Text_260AE7[]; -extern const u8 BattleFrontier_Lounge2_Text_2619AC[]; -extern const u8 BattleFrontier_Lounge2_Text_261A91[]; -extern const u8 BattleFrontier_Lounge2_Text_261B0C[]; -extern const u8 BattleFrontier_Lounge2_Text_261B95[]; -extern const u8 BattleFrontier_Lounge2_Text_261B95[]; -extern const u8 BattleFrontier_Lounge2_Text_261B95[]; -extern const u8 BattleFrontier_Lounge2_Text_261C1A[]; -extern const u8 BattleFrontier_Lounge2_Text_261C1A[]; -extern const u8 BattleFrontier_Lounge2_Text_261C1A[]; -extern const u8 BattleFrontier_Lounge2_Text_260BC4[]; -extern const u8 BattleFrontier_Lounge2_Text_260C6D[]; -extern const u8 BattleFrontier_Lounge2_Text_260D3A[]; -extern const u8 BattleFrontier_Lounge2_Text_260E1E[]; -extern const u8 BattleFrontier_Lounge2_Text_260EC7[]; -extern const u8 BattleFrontier_Lounge2_Text_260F74[]; -extern const u8 BattleFrontier_Lounge2_Text_2614E6[]; -extern const u8 BattleFrontier_Lounge2_Text_261591[]; -extern const u8 BattleFrontier_Lounge2_Text_26166F[]; -extern const u8 BattleFrontier_Lounge2_Text_261282[]; -extern const u8 BattleFrontier_Lounge2_Text_261329[]; -extern const u8 BattleFrontier_Lounge2_Text_261403[]; -extern const u8 BattleFrontier_Lounge2_Text_261026[]; -extern const u8 BattleFrontier_Lounge2_Text_2610CC[]; -extern const u8 BattleFrontier_Lounge2_Text_261194[]; -extern const u8 BattleFrontier_Lounge2_Text_26174D[]; -extern const u8 BattleFrontier_Lounge2_Text_2617F9[]; -extern const u8 BattleFrontier_Lounge2_Text_2618C4[]; - extern const u8 gText_Exit[]; extern const u8 gText_BlueFlute[]; @@ -647,4 +616,141 @@ extern const u8 gText_Underpowered[]; extern const u8 gText_WhenInDanger[]; extern const u8 gText_Exit[]; +extern const u8 BattleFrontier_Lounge2_Text_260971[]; +extern const u8 BattleFrontier_Lounge2_Text_260A1E[]; +extern const u8 BattleFrontier_Lounge2_Text_260AE7[]; +extern const u8 BattleFrontier_Lounge2_Text_2619AC[]; +extern const u8 BattleFrontier_Lounge2_Text_261A91[]; +extern const u8 BattleFrontier_Lounge2_Text_261B0C[]; +extern const u8 BattleFrontier_Lounge2_Text_261B95[]; +extern const u8 BattleFrontier_Lounge2_Text_261B95[]; +extern const u8 BattleFrontier_Lounge2_Text_261B95[]; +extern const u8 BattleFrontier_Lounge2_Text_261C1A[]; +extern const u8 BattleFrontier_Lounge2_Text_261C1A[]; +extern const u8 BattleFrontier_Lounge2_Text_261C1A[]; +extern const u8 BattleFrontier_Lounge2_Text_260BC4[]; +extern const u8 BattleFrontier_Lounge2_Text_260C6D[]; +extern const u8 BattleFrontier_Lounge2_Text_260D3A[]; +extern const u8 BattleFrontier_Lounge2_Text_260E1E[]; +extern const u8 BattleFrontier_Lounge2_Text_260EC7[]; +extern const u8 BattleFrontier_Lounge2_Text_260F74[]; +extern const u8 BattleFrontier_Lounge2_Text_2614E6[]; +extern const u8 BattleFrontier_Lounge2_Text_261591[]; +extern const u8 BattleFrontier_Lounge2_Text_26166F[]; +extern const u8 BattleFrontier_Lounge2_Text_261282[]; +extern const u8 BattleFrontier_Lounge2_Text_261329[]; +extern const u8 BattleFrontier_Lounge2_Text_261403[]; +extern const u8 BattleFrontier_Lounge2_Text_261026[]; +extern const u8 BattleFrontier_Lounge2_Text_2610CC[]; +extern const u8 BattleFrontier_Lounge2_Text_261194[]; +extern const u8 BattleFrontier_Lounge2_Text_26174D[]; +extern const u8 BattleFrontier_Lounge2_Text_2617F9[]; +extern const u8 BattleFrontier_Lounge2_Text_2618C4[]; + +extern const u8 BattleFrontier_Lounge5_Text_26468D[]; +extern const u8 BattleFrontier_Lounge5_Text_2646E5[]; +extern const u8 BattleFrontier_Lounge5_Text_264741[]; +extern const u8 BattleFrontier_Lounge5_Text_2647A4[]; +extern const u8 BattleFrontier_Lounge5_Text_2647FC[]; +extern const u8 BattleFrontier_Lounge5_Text_264858[]; +extern const u8 BattleFrontier_Lounge5_Text_2648BE[]; +extern const u8 BattleFrontier_Lounge5_Text_264916[]; +extern const u8 BattleFrontier_Lounge5_Text_264972[]; +extern const u8 BattleFrontier_Lounge5_Text_2649D5[]; +extern const u8 BattleFrontier_Lounge5_Text_264A3F[]; +extern const u8 BattleFrontier_Lounge5_Text_264A9B[]; +extern const u8 BattleFrontier_Lounge5_Text_264AF3[]; +extern const u8 BattleFrontier_Lounge5_Text_264B5D[]; +extern const u8 BattleFrontier_Lounge5_Text_2648BE[]; +extern const u8 BattleFrontier_Lounge5_Text_264BC3[]; +extern const u8 BattleFrontier_Lounge5_Text_264C36[]; +extern const u8 BattleFrontier_Lounge5_Text_2648BE[]; +extern const u8 BattleFrontier_Lounge5_Text_264C95[]; +extern const u8 BattleFrontier_Lounge5_Text_264D01[]; +extern const u8 BattleFrontier_Lounge5_Text_264D6B[]; +extern const u8 BattleFrontier_Lounge5_Text_264DD7[]; +extern const u8 BattleFrontier_Lounge5_Text_264E33[]; +extern const u8 BattleFrontier_Lounge5_Text_264E8F[]; +extern const u8 BattleFrontier_Lounge5_Text_2648BE[]; + +extern const u8 BattleFrontier_Lounge3_Text_262261[]; +extern const u8 BattleFrontier_Lounge3_Text_26230D[]; +extern const u8 BattleFrontier_Lounge3_Text_2623B9[]; +extern const u8 BattleFrontier_Lounge3_Text_262464[]; +extern const u8 BattleFrontier_Lounge3_Text_26250E[]; +extern const u8 BattleFrontier_Lounge3_Text_2625B8[]; +extern const u8 BattleFrontier_Lounge3_Text_26266A[]; +extern const u8 BattleFrontier_Lounge3_Text_26271C[]; +extern const u8 BattleFrontier_Lounge3_Text_2627C9[]; +extern const u8 BattleFrontier_Lounge3_Text_262876[]; +extern const u8 BattleFrontier_Lounge3_Text_26291A[]; +extern const u8 BattleFrontier_Lounge3_Text_2629BC[]; + +extern const u8 BattleFrontier_Lounge3_Text_262C04[]; +extern const u8 BattleFrontier_Lounge3_Text_262C90[]; +extern const u8 BattleFrontier_Lounge3_Text_262D1C[]; +extern const u8 BattleFrontier_Lounge3_Text_262DA7[]; +extern const u8 BattleFrontier_Lounge3_Text_262E34[]; +extern const u8 BattleFrontier_Lounge3_Text_262EC1[]; +extern const u8 BattleFrontier_Lounge3_Text_262F56[]; +extern const u8 BattleFrontier_Lounge3_Text_262FEB[]; +extern const u8 BattleFrontier_Lounge3_Text_263078[]; +extern const u8 BattleFrontier_Lounge3_Text_263105[]; +extern const u8 BattleFrontier_Lounge3_Text_26318C[]; +extern const u8 BattleFrontier_Lounge3_Text_263211[]; + +extern const u8 gText_BP[]; + +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260201[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260287[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E[]; + +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C[]; + +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260397[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260436[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C[]; + +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260542[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260575[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2[]; +extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260613[]; + +extern const u8 BattleFrontier_Lounge7_Text_265E30[]; +extern const u8 BattleFrontier_Lounge7_Text_265E5B[]; +extern const u8 BattleFrontier_Lounge7_Text_265E8A[]; +extern const u8 BattleFrontier_Lounge7_Text_265EC0[]; +extern const u8 BattleFrontier_Lounge7_Text_265EED[]; +extern const u8 BattleFrontier_Lounge7_Text_265F1C[]; +extern const u8 BattleFrontier_Lounge7_Text_265F47[]; +extern const u8 BattleFrontier_Lounge7_Text_265F77[]; +extern const u8 BattleFrontier_Lounge7_Text_265FAA[]; +extern const u8 BattleFrontier_Lounge7_Text_265FDD[]; + +extern const u8 BattleFrontier_Lounge7_Text_26600A[]; +extern const u8 BattleFrontier_Lounge7_Text_26603E[]; +extern const u8 BattleFrontier_Lounge7_Text_266070[]; +extern const u8 BattleFrontier_Lounge7_Text_2660A6[]; +extern const u8 BattleFrontier_Lounge7_Text_2660D0[]; +extern const u8 BattleFrontier_Lounge7_Text_2660FF[]; +extern const u8 BattleFrontier_Lounge7_Text_26612D[]; +extern const u8 BattleFrontier_Lounge7_Text_26615F[]; +extern const u8 BattleFrontier_Lounge7_Text_266185[]; +extern const u8 BattleFrontier_Lounge7_Text_2661B5[]; + #endif //GUARD_STRINGS_H diff --git a/src/field_specials.c b/src/field_specials.c index 5f4b4f7841..20165180bf 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3,17 +3,20 @@ #include "battle.h" #include "battle_tower.h" #include "data2.h" +#include "decoration.h" #include "diploma.h" #include "event_data.h" #include "event_object_movement.h" #include "fieldmap.h" #include "field_camera.h" +#include "field_effect.h" #include "field_message_box.h" #include "field_player_avatar.h" #include "field_region_map.h" #include "field_specials.h" #include "field_weather.h" #include "international_string_util.h" +#include "item_icon.h" #include "link.h" #include "list_menu.h" #include "malloc.h" @@ -1806,10 +1809,10 @@ void sub_8139B60(void) SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0); xPos = GetStringCenterAlignXOffset(1, gText_ElevatorNowOn, 64); - PrintTextOnWindow(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, 0xFF, NULL); + PrintTextOnWindow(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, TEXT_SPEED_FF, NULL); xPos = GetStringCenterAlignXOffset(1, gElevatorFloorsTable[gSpecialVar_0x8005], 64); - PrintTextOnWindow(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, 0xFF, NULL); + PrintTextOnWindow(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, TEXT_SPEED_FF, NULL); PutWindowTilemap(gUnknown_0203AB5E); CopyWindowToVram(gUnknown_0203AB5E, 3); @@ -2716,3 +2719,872 @@ void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list) gUnknown_0203AB6A = misc; } } + +void sub_813A570(u8 taskId); +void sub_813A738(u8 taskId); +void sub_813A600(u8 taskId); + +// stupid r5<->r6 swap +#ifdef NONMATCHING +void sub_813A4EC(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + s32 itemId = ListMenuHandleInputGetItemId(task->data[14]); + + switch (itemId) + { + case LIST_NOTHING_CHOSEN: + break; + case LIST_B_PRESSED: + gSpecialVar_Result = 0x7F; + PlaySE(SE_SELECT); + sub_813A570(taskId); + break; + default: + gSpecialVar_Result = itemId; + PlaySE(SE_SELECT); + if (task->data[6]) + { + if (itemId == task->data[1] - 1) + { + sub_813A570(taskId); + } + else + { + sub_813A738(taskId); + task->func = sub_813A600; + EnableBothScriptContexts(); + } + } + break; + } +} +#else +NAKED +void sub_813A4EC(u8 taskId) +{ + asm_unified("push {r4-r6,lr}\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + ldr r1, =gTasks\n\ + adds r6, r0, r1\n\ + ldrh r0, [r6, 0x24]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + bl ListMenuHandleInputGetItemId\n\ + adds r4, r0, 0\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + cmp r4, r0\n\ + beq _0813A51C\n\ + adds r0, 0x1\n\ + cmp r4, r0\n\ + bne _0813A530\n\ + b _0813A566\n\ + .pool\n\ +_0813A51C:\n\ + ldr r1, =gSpecialVar_Result\n\ + movs r0, 0x7F\n\ + strh r0, [r1]\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + b _0813A54C\n\ + .pool\n\ +_0813A530:\n\ + ldr r0, =gSpecialVar_Result\n\ + strh r4, [r0]\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r1, 0x14\n\ + ldrsh r0, [r6, r1]\n\ + cmp r0, 0\n\ + beq _0813A54C\n\ + movs r1, 0xA\n\ + ldrsh r0, [r6, r1]\n\ + subs r0, 0x1\n\ + cmp r4, r0\n\ + bne _0813A558\n\ +_0813A54C:\n\ + adds r0, r5, 0\n\ + bl sub_813A570\n\ + b _0813A566\n\ + .pool\n\ +_0813A558:\n\ + adds r0, r5, 0\n\ + bl sub_813A738\n\ + ldr r0, =sub_813A600\n\ + str r0, [r6]\n\ + bl EnableBothScriptContexts\n\ +_0813A566:\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .pool"); +} +#endif // NONMATCHING + +void sub_813A570(u8 taskId) +{ + u16 array; + struct Task *task = &gTasks[taskId]; + ListMenuGetCurrentItemArrayId(task->data[14], &array); + sub_813AC44(task->data[11], array); + sub_813A738(taskId); + DestroyListMenuTask(task->data[14], NULL, NULL); + Free(gUnknown_0203AB64); + sub_8198070(task->data[13], 1); + FillWindowPixelBuffer(task->data[13], 0); + CopyWindowToVram(task->data[13], 2); + RemoveWindow(task->data[13]); + DestroyTask(taskId); + EnableBothScriptContexts(); +} + +void sub_813A664(u8 taskId); + +void sub_813A600(u8 taskId) +{ + switch (gTasks[taskId].data[6]) + { + case 1: + default: + break; + case 2: + gTasks[taskId].data[6] = 1; + gTasks[taskId].func = sub_813A664; + break; + } +} + +void sub_813A630(void) +{ + u8 taskId = FindTaskIdByFunc(sub_813A600); + if (taskId == 0xFF) + { + EnableBothScriptContexts(); + } + else + { + gTasks[taskId].data[6]++; + } +} + +void sub_813A664(u8 taskId) +{ + ScriptContext2_Enable(); + sub_813A694(taskId); + gTasks[taskId].func = sub_813A4EC; +} + +const struct ScrollArrowsTemplate gUnknown_085B3030 = { + .firstArrowType = 2, + .firstX = 0, + .firstY = 0, + .secondArrowType = 3, + .secondX = 0, + .secondY = 0, + .fullyUpThreshold = 0, + .fullyDownThreshold = 0, + .tileTag = 2000, + .palTag = 100, + .palNum = 0 +}; + +void sub_813A694(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + struct ScrollArrowsTemplate template = gUnknown_085B3030; + if (task->data[0] != task->data[1]) + { + template.firstX = (task->data[4] / 2) * 8 + 12 + (task->data[2] - 1) * 8; + template.firstY = 8; + template.secondX = (task->data[4] / 2) * 8 + 12 + (task->data[2] - 1) * 8; + template.secondY = task->data[5] * 8 + 10; + template.fullyUpThreshold = 0; + template.fullyDownThreshold = task->data[1] - task->data[0]; + task->data[12] = AddScrollIndicatorArrowPair(&template, &gUnknown_0203AB68); + } +} + +void sub_813A738(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (task->data[0] != task->data[1]) + { + RemoveScrollIndicatorArrowPair(task->data[12]); + } +} + +void nullsub_55(void) +{ + +} + +void sub_813A76C(void) +{ + u8 i; + for (i = 0; i < 2; i++) + { + if (gLinkPlayers[i].gender == MALE) + { + VarSet(VAR_OBJ_GFX_ID_F - i, EVENT_OBJ_GFX_BRENDAN_NORMAL); + } + else + { + VarSet(VAR_OBJ_GFX_ID_F - i, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL); + } + } +} + +const u8 *const gUnknown_085B3040[] = { + BattleFrontier_Lounge5_Text_26468D, + BattleFrontier_Lounge5_Text_2646E5, + BattleFrontier_Lounge5_Text_264741, + BattleFrontier_Lounge5_Text_2647A4, + BattleFrontier_Lounge5_Text_2647FC, + BattleFrontier_Lounge5_Text_264858, + BattleFrontier_Lounge5_Text_2648BE, + BattleFrontier_Lounge5_Text_264916, + BattleFrontier_Lounge5_Text_264972, + BattleFrontier_Lounge5_Text_2649D5, + BattleFrontier_Lounge5_Text_264A3F, + BattleFrontier_Lounge5_Text_264A9B, + BattleFrontier_Lounge5_Text_264AF3, + BattleFrontier_Lounge5_Text_264B5D, + BattleFrontier_Lounge5_Text_2648BE, + BattleFrontier_Lounge5_Text_264BC3, + BattleFrontier_Lounge5_Text_264C36, + BattleFrontier_Lounge5_Text_2648BE, + BattleFrontier_Lounge5_Text_264C95, + BattleFrontier_Lounge5_Text_264D01, + BattleFrontier_Lounge5_Text_264D6B, + BattleFrontier_Lounge5_Text_264DD7, + BattleFrontier_Lounge5_Text_264E33, + BattleFrontier_Lounge5_Text_264E8F, + BattleFrontier_Lounge5_Text_2648BE, +}; + +void sub_813A7B8(void) +{ + u8 nature; + + if (gSpecialVar_0x8004 >= PARTY_SIZE) + { + gSpecialVar_0x8004 = 0; + } + + nature = GetNature(&gPlayerParty[gSpecialVar_0x8004]); + ShowFieldMessage(gUnknown_085B3040[nature]); +} + +void UpdateFrontierGambler(u16 a0) +{ + u16 *var = GetVarPointer(VAR_FRONTIER_GAMBLER_FACILITY); + *var += a0; + *var %= 12; +} + +const u8 *const gUnknown_085B30A4[] = { + BattleFrontier_Lounge3_Text_262261, + BattleFrontier_Lounge3_Text_26230D, + BattleFrontier_Lounge3_Text_2623B9, + BattleFrontier_Lounge3_Text_262464, + BattleFrontier_Lounge3_Text_26250E, + BattleFrontier_Lounge3_Text_2625B8, + BattleFrontier_Lounge3_Text_26266A, + BattleFrontier_Lounge3_Text_26271C, + BattleFrontier_Lounge3_Text_2627C9, + BattleFrontier_Lounge3_Text_262876, + BattleFrontier_Lounge3_Text_26291A, + BattleFrontier_Lounge3_Text_2629BC, +}; + +void sub_813A820(void) +{ + u16 var = VarGet(VAR_FRONTIER_GAMBLER_FACILITY); + ShowFieldMessage(gUnknown_085B30A4[var]); + VarSet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F, var); +} + +const u8 *const gUnknown_085B30D4[] = { + BattleFrontier_Lounge3_Text_262C04, + BattleFrontier_Lounge3_Text_262C90, + BattleFrontier_Lounge3_Text_262D1C, + BattleFrontier_Lounge3_Text_262DA7, + BattleFrontier_Lounge3_Text_262E34, + BattleFrontier_Lounge3_Text_262EC1, + BattleFrontier_Lounge3_Text_262F56, + BattleFrontier_Lounge3_Text_262FEB, + BattleFrontier_Lounge3_Text_263078, + BattleFrontier_Lounge3_Text_263105, + BattleFrontier_Lounge3_Text_26318C, + BattleFrontier_Lounge3_Text_263211, +}; + +void sub_813A854(void) +{ + ShowFieldMessage(gUnknown_085B30D4[VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F)]); +} + +const u16 gUnknown_085B3104[] = {0x0000, 0x0001, 0x0002, 0x0100, 0x0101, 0x0400, 0x0401, 0x0200, 0x0201, 0x0300, 0x0500, 0x0600}; + +void sub_813A878(u8 a0) +{ + u16 var1 = VarGet(VAR_0x40CE); + u16 var2 = VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F); + u16 var3 = VarGet(VAR_FRONTIER_FACILITY); + + if (VarGet(VAR_FRONTIER_GAMBLER_PLACED_BET_F) == 1) + { + if (gUnknown_085B3104[var2] == (var3 << 8) + var1) + { + if (a0 != 0) + { + VarSet(VAR_FRONTIER_GAMBLER_PLACED_BET_F, 2); + } + else + { + VarSet(VAR_FRONTIER_GAMBLER_PLACED_BET_F, 3); + } + } + } +} + +void sub_813A8FC(void) +{ + u8 string[32]; + u32 x; + StringCopy(ConvertIntToDecimalStringN(string, gSaveBlock2Ptr->frontier.frontierBattlePoints, STR_CONV_MODE_RIGHT_ALIGN, 4), gText_BP); + x = GetStringRightAlignXOffset(1, string, 48); + PrintTextOnWindow(gUnknown_0203AB6D, 1, string, x, 1, 0, NULL); +} + +const struct WindowTemplate gUnknown_085B311C = { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 6, + .height = 2, + .paletteNum = 15, + .baseBlock = 8, +}; + +void sub_813A958(void) +{ + gUnknown_0203AB6D = AddWindow(&gUnknown_085B311C); + SetStandardWindowBorderStyle(gUnknown_0203AB6D, 0); + sub_813A8FC(); + CopyWindowToVram(gUnknown_0203AB6D, 2); +} + +void sub_813A988(void) +{ + sub_8198070(gUnknown_0203AB6D, TRUE); + RemoveWindow(gUnknown_0203AB6D); +} + +void sub_813A9A4(void) +{ + if (gSaveBlock2Ptr->frontier.frontierBattlePoints < gSpecialVar_0x8004) + { + gSaveBlock2Ptr->frontier.frontierBattlePoints = 0; + } + else + { + gSaveBlock2Ptr->frontier.frontierBattlePoints -= gSpecialVar_0x8004; + } +} + +void sub_813A9D0(void) +{ + if (gSaveBlock2Ptr->frontier.frontierBattlePoints + gSpecialVar_0x8004 > 0x270F) + { + gSaveBlock2Ptr->frontier.frontierBattlePoints = 0x270f; + } + else + { + gSaveBlock2Ptr->frontier.frontierBattlePoints = gSaveBlock2Ptr->frontier.frontierBattlePoints + gSpecialVar_0x8004; + } +} + +u16 sub_813AA04(void) +{ + return gSaveBlock2Ptr->frontier.frontierBattlePoints; +} + +const struct WindowTemplate gUnknown_085B3124 = { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 9, + .width = 4, + .height = 4, + .paletteNum = 15, + .baseBlock = 20, +}; + +void sub_813AA18(void) +{ + gUnknown_0203AB6E = AddWindow(&gUnknown_085B3124); + SetStandardWindowBorderStyle(gUnknown_0203AB6E, 0); + CopyWindowToVram(gUnknown_0203AB6E, 2); +} + +void sub_813AA44(void) +{ + sub_8198070(gUnknown_0203AB6E, TRUE); + RemoveWindow(gUnknown_0203AB6E); +} + +const u16 gUnknown_085B312C[] = { 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xffff }; +const u16 gUnknown_085B3142[] = { 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xffff }; +const u16 gUnknown_085B314E[] = { 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xffff }; +const u16 gUnknown_085B315C[] = { 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xffff }; + +const u8 *const gUnknown_085B3170[] = { + BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260201, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260287, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E, + gText_Exit, +}; + +const u8 *const gUnknown_085B319C[] = { + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + gText_Exit +}; + +const u8 *const gUnknown_085B31B4[] = { + BattleFrontier_BattlePointExchangeServiceCorner_Text_260397, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260436, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C, + gText_Exit +}; + +const u8 *const gUnknown_085B31D0[] = { + BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260542, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260575, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260613, + gText_Exit +}; + +void sub_813ABD4(u16 a0); + +void sub_813AA60(u16 a0, u16 a1) +{ + if (a0 > 2 && a0 < 7) + { + FillWindowPixelRect(0, 0x11, 0, 0, 216, 32); + switch (a0) + { + case 3: + AddTextPrinterParameterized(0, 1, gUnknown_085B3170[a1], 0, NULL, 2, 1, 3); + if (gUnknown_085B312C[a1] == 0xFFFF) + { + sub_813ABD4(gUnknown_085B312C[a1]); + } + else + { + FreeSpriteTilesByTag(5500); + FreeSpritePaletteByTag(5500); + gUnknown_0203AB6C = AddDecorationIconObject(gUnknown_085B312C[a1], 33, 88, 0, 5500, 5500); + } + break; + case 4: + AddTextPrinterParameterized(0, 1, gUnknown_085B319C[a1], 0, NULL, 2, 1, 3); + if (gUnknown_085B3142[a1] == 0xFFFF) + { + sub_813ABD4(gUnknown_085B3142[a1]); + } + else + { + FreeSpriteTilesByTag(5500); + FreeSpritePaletteByTag(5500); + gUnknown_0203AB6C = AddDecorationIconObject(gUnknown_085B3142[a1], 33, 88, 0, 5500, 5500); + } + break; + case 5: + AddTextPrinterParameterized(0, 1, gUnknown_085B31B4[a1], 0, NULL, 2, 1, 3); + sub_813ABD4(gUnknown_085B314E[a1]); + break; + case 6: + AddTextPrinterParameterized(0, 1, gUnknown_085B31D0[a1], 0, NULL, 2, 1, 3); + sub_813ABD4(gUnknown_085B315C[a1]); + break; + } + } +} + +void sub_813ABD4(u16 a0) +{ + FreeSpriteTilesByTag(5500); + FreeSpritePaletteByTag(5500); + gUnknown_0203AB6C = AddItemIconSprite(5500, 5500, a0); + + if (gUnknown_0203AB6C != MAX_SPRITES) + { + gSprites[gUnknown_0203AB6C].oam.priority = 0; + gSprites[gUnknown_0203AB6C].pos1.x = 36; + gSprites[gUnknown_0203AB6C].pos1.y = 92; + } +} + +void sub_813AC44(u16 a0, u16 unused) +{ + if (gUnknown_0203AB6C != MAX_SPRITES) + { + switch (a0) + { + case 3 ... 6: + DestroySpriteAndFreeResources(&gSprites[gUnknown_0203AB6C]); + break; + } + gUnknown_0203AB6C = MAX_SPRITES; + } +} + +const u16 gUnknown_085B31F8[] = { 0x0087, 0x0045, 0x008a, 0x0005, 0x0019, 0x0022, 0x009d, 0x0044, 0x0056, 0x000e }; +const u16 gUnknown_085B320C[] = { 0x006f, 0x00ad, 0x00bd, 0x0081, 0x00c4, 0x00cb, 0x00f4, 0x0008, 0x0009, 0x0007 }; + +void sub_813AC7C(void) +{ + if (gSpecialVar_0x8005 != 0) + { + StringCopy(gStringVar1, gMoveNames[gUnknown_085B320C[gSpecialVar_0x8004]]); + } + else + { + StringCopy(gStringVar1, gMoveNames[gUnknown_085B31F8[gSpecialVar_0x8004]]); + } +} + +const struct WindowTemplate gUnknown_085B3220 = { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 7, + .width = 12, + .height = 6, + .paletteNum = 15, + .baseBlock = 28, +}; + +void sub_813ACE8(u8 a0, u16 a1) +{ + if (a0 == 9 || a0 == 10) + { + if (gSpecialVar_0x8006 == 0) + { + gUnknown_0203AB5E = AddWindow(&gUnknown_085B3220); + SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0); + } + sub_813AD34(a0, a1); + } +} + +const u8 *const gUnknown_085B3228[] = { + BattleFrontier_Lounge7_Text_265E30, + BattleFrontier_Lounge7_Text_265E5B, + BattleFrontier_Lounge7_Text_265E8A, + BattleFrontier_Lounge7_Text_265EC0, + BattleFrontier_Lounge7_Text_265EED, + BattleFrontier_Lounge7_Text_265F1C, + BattleFrontier_Lounge7_Text_265F47, + BattleFrontier_Lounge7_Text_265F77, + BattleFrontier_Lounge7_Text_265FAA, + BattleFrontier_Lounge7_Text_265FDD, + gText_Exit, +}; + +const u8 *const gUnknown_085B3254[] = { + BattleFrontier_Lounge7_Text_26600A, + BattleFrontier_Lounge7_Text_26603E, + BattleFrontier_Lounge7_Text_266070, + BattleFrontier_Lounge7_Text_2660A6, + BattleFrontier_Lounge7_Text_2660D0, + BattleFrontier_Lounge7_Text_2660FF, + BattleFrontier_Lounge7_Text_26612D, + BattleFrontier_Lounge7_Text_26615F, + BattleFrontier_Lounge7_Text_266185, + BattleFrontier_Lounge7_Text_2661B5, + gText_Exit, +}; + +void sub_813AD34(u8 a0, u16 a1) +{ + if (a0 == 9 || a0 == 10) + { + FillWindowPixelRect(gUnknown_0203AB5E, 0x11, 0, 0, 96, 48); + if (a0 == 10) + { + PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3254[a1], 0, 1, 0, NULL); + } + else + { + PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3228[a1], 0, 1, 0, NULL); + } + } +} + +void sub_813ADB8(void) +{ + sub_8198070(gUnknown_0203AB5E, TRUE); + RemoveWindow(gUnknown_0203AB5E); +} + +void sub_813ADD4(void) +{ + u16 scrollOffset, selectedRow; + u8 i; + u8 taskId = FindTaskIdByFunc(sub_813A600); + if (taskId != 0xFF) + { + struct Task *task = &gTasks[taskId]; + ListMenuGetScrollAndRow(task->data[14], &scrollOffset, &selectedRow); + SetStandardWindowBorderStyle(task->data[13], 0); + + for (i = 0; i < 6; i++) + { + sub_8199F74(task->data[13], 1, gUnknown_085B2CF0[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0); + } + + PrintTextOnWindow(task->data[13], 1, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SPEED_FF, NULL); + PutWindowTilemap(task->data[13]); + CopyWindowToVram(task->data[13], 3); + } +} + +void sub_813AEB4(void) +{ + u8 i; + u16 temp1 = 0; + u16 temp2 = 0; + gSpecialVar_0x8005 = 0; + + temp1 = VarGet(VAR_TEMP_E); + temp2 = VarGet(VAR_TEMP_D); + + if (temp1 != 0) + { + i = 0; + do + { + if (gUnknown_0861500C[i] == gUnknown_085B320C[temp2]) + { + gSpecialVar_0x8005 = i; + break; + } + i++; + } while (i < 30); + } + else + { + i = 0; + do + { + if (gUnknown_0861500C[i] == gUnknown_085B31F8[temp2]) + { + gSpecialVar_0x8005 = i; + break; + } + i++; + } while (i < 30); + } +} + +void sub_813AF48(void) +{ + u8 taskId = FindTaskIdByFunc(sub_813A600); + if (taskId != 0xFF) + { + struct Task *task = &gTasks[taskId]; + DestroyListMenuTask(task->data[14], NULL, NULL); + Free(gUnknown_0203AB64); + sub_8198070(task->data[13], TRUE); + FillWindowPixelBuffer(task->data[13], 0); + ClearWindowTilemap(task->data[13]); + CopyWindowToVram(task->data[13], 2); + RemoveWindow(task->data[13]); + DestroyTask(taskId); + } +} + +void task_deoxys_sound(u8 taskId); + +void sub_813AFC8(void) +{ + CreateTask(task_deoxys_sound, 8); +} + +const u16 gUnknown_085B3280[][16] = { + INCBIN_U16("graphics/misc/deoxys1.gbapal"), + INCBIN_U16("graphics/misc/deoxys2.gbapal"), + INCBIN_U16("graphics/misc/deoxys3.gbapal"), + INCBIN_U16("graphics/misc/deoxys4.gbapal"), + INCBIN_U16("graphics/misc/deoxys5.gbapal"), + INCBIN_U16("graphics/misc/deoxys6.gbapal"), + INCBIN_U16("graphics/misc/deoxys7.gbapal"), + INCBIN_U16("graphics/misc/deoxys8.gbapal"), + INCBIN_U16("graphics/misc/deoxys9.gbapal"), + INCBIN_U16("graphics/misc/deoxys10.gbapal"), + INCBIN_U16("graphics/misc/deoxys11.gbapal"), +}; + +const u8 gUnknown_085B33E0[][2] = { + { 0x0f, 0x0c }, + { 0x0b, 0x0e }, + { 0x0f, 0x08 }, + { 0x13, 0x0e }, + { 0x0c, 0x0b }, + { 0x12, 0x0b }, + { 0x0f, 0x0e }, + { 0x0b, 0x0e }, + { 0x13, 0x0e }, + { 0x0f, 0x0f }, + { 0x0f, 0x0a }, +}; + +const u8 gUnknown_085B33F6[] = { 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03 }; + +void sub_813B0B4(u8 a0); + +void task_deoxys_sound(u8 taskId) +{ + if (FlagGet(FLAG_0x8D4) == TRUE) + { + gSpecialVar_Result = 3; + EnableBothScriptContexts(); + DestroyTask(taskId); + } + else + { + u16 temp1 = VarGet(VAR_0x4035); + u16 temp2 = VarGet(VAR_0x4034); + + VarSet(VAR_0x4034, 0); + if (temp1 != 0 && gUnknown_085B33F6[temp1 - 1] < temp2) + { + sub_813B0B4(0); + VarSet(VAR_0x4035, 0); + gSpecialVar_Result = 0; + DestroyTask(taskId); + } + else if (temp1 == 10) + { + FlagSet(FLAG_0x8D4); + gSpecialVar_Result = 2; + EnableBothScriptContexts(); + DestroyTask(taskId); + } + else + { + temp1++; + sub_813B0B4(temp1); + VarSet(VAR_0x4035, temp1); + gSpecialVar_Result = 1; + DestroyTask(taskId); + } + } +} + +void sub_813B160(u8 taskId); + +void sub_813B0B4(u8 a0) +{ + u8 eventObjectId; + LoadPalette(&gUnknown_085B3280[a0], 0x1A0, 8); + TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId); + + if (a0 == 0) + { + PlaySE(SE_W109); + } + else + { + PlaySE(SE_RG_DEOMOV); + } + + CreateTask(sub_813B160, 8); + + gFieldEffectArguments[0] = 1; + gFieldEffectArguments[1] = 58; + gFieldEffectArguments[2] = 26; + gFieldEffectArguments[3] = gUnknown_085B33E0[a0][0]; + gFieldEffectArguments[4] = gUnknown_085B33E0[a0][1]; + + if (a0 == 0) + { + gFieldEffectArguments[5] = 60; + } + else + { + gFieldEffectArguments[5] = 5; + } + + FieldEffectStart(FLDEFF_66); + Overworld_SetEventObjTemplateCoords(1, gUnknown_085B33E0[a0][0], gUnknown_085B33E0[a0][1]); +} + +void sub_813B160(u8 taskId) +{ + if (FieldEffectActiveListContains(FLDEFF_66) == FALSE) + { + EnableBothScriptContexts(); + DestroyTask(taskId); + } +} + +void increment_var_x4026_on_birth_island_modulo_100(void) +{ + u16 var = VarGet(VAR_0x4034); + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(BIRTH_ISLAND_EXTERIOR) && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BIRTH_ISLAND_EXTERIOR)) + { + var++; + if (var > 99) + { + VarSet(VAR_0x4034, 0); + } + else + { + VarSet(VAR_0x4034, var); + } + } +} + +extern void BlendPalettes(u32, u8, u16); + +void sub_813B1D0(void) +{ + LoadPalette(&gUnknown_085B3280[(u8)VarGet(VAR_0x4035)], 0x1A0, 8); + BlendPalettes(0x04000000, 16, 0); +} + +void set_unknown_box_id(u8 id) +{ + gUnknown_0203AB6F = id; +} + +u8 get_unknown_box_id(void) +{ + return gUnknown_0203AB6F; +} diff --git a/src/menu.c b/src/menu.c index 223f8fd52f..f4ffec0232 100644 --- a/src/menu.c +++ b/src/menu.c @@ -120,7 +120,6 @@ extern void DrawWindowBorder(u8, u8, u8, u8, u8, u8); extern void sub_81980A8(u8, u8, u8, u8, u8, u8); extern u8 MoveMenuCursor(s8); extern u8 sub_8199134(s8, s8); -extern void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing); extern void sub_8198C78(void); extern void task_free_buf_after_copying_tile_data_to_vram(u8 taskId); From c3512e3b39117c29c92b6e6cd3f59a7e6036eb13 Mon Sep 17 00:00:00 2001 From: garak Date: Fri, 10 Aug 2018 10:45:15 -0400 Subject: [PATCH 064/174] port larger heal location changes from poke ruby pr --- data/event_scripts.s | 3 +- .../scripts.inc | 2 +- .../DewfordTown_PokemonCenter_1F/scripts.inc | 2 +- .../EverGrandeCity_HallOfFame/scripts.inc | 4 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- .../FortreeCity_PokemonCenter_1F/scripts.inc | 2 +- data/maps/InsideOfTruck/scripts.inc | 4 +- .../scripts.inc | 2 +- .../LilycoveCity_PokemonCenter_1F/scripts.inc | 2 +- .../MauvilleCity_PokemonCenter_1F/scripts.inc | 2 +- .../MossdeepCity_PokemonCenter_1F/scripts.inc | 2 +- .../OldaleTown_PokemonCenter_1F/scripts.inc | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- .../RustboroCity_PokemonCenter_1F/scripts.inc | 2 +- data/maps/SSTidalCorridor/scripts.inc | 4 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- include/constants/heal_locations.h | 27 ++++++++++++ include/heal_location.h | 2 - src/data/heal_locations.h | 25 +++++++++++ src/heal_location.c | 26 +----------- src/region_map.c | 42 ++++++++++--------- 26 files changed, 100 insertions(+), 71 deletions(-) create mode 100644 include/constants/heal_locations.h create mode 100644 src/data/heal_locations.h diff --git a/data/event_scripts.s b/data/event_scripts.s index 0336c0c97c..105d989535 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -5,6 +5,7 @@ #include "constants/songs.h" #include "constants/species.h" #include "constants/vars.h" +#include "constants/heal_locations.h" #include "constants/trainers.h" .include "asm/macros.inc" .include "asm/macros/event.inc" @@ -3346,7 +3347,7 @@ EventScript_2736D9:: @ 82736D9 end EventScript_2736F4:: @ 82736F4 - setrespawn 16 + setrespawn HEAL_LOCATION_LAVARIDGE_TOWN return EventScript_2736F8:: @ 82736F8 diff --git a/data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc b/data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc index 23818d64c0..3dff67a936 100644 --- a/data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc +++ b/data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ BattleFrontier_PokemonCenter_1F_MapScripts:: @ 82678F9 .byte 0 BattleFrontier_PokemonCenter_1F_MapScript1_267904: @ 8267904 - setrespawn 22 + setrespawn HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST end BattleFrontier_PokemonCenter_1F_EventScript_267908:: @ 8267908 diff --git a/data/maps/DewfordTown_PokemonCenter_1F/scripts.inc b/data/maps/DewfordTown_PokemonCenter_1F/scripts.inc index 15a1c81b92..a9ce59bc1b 100644 --- a/data/maps/DewfordTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/DewfordTown_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ DewfordTown_PokemonCenter_1F_MapScripts:: @ 81FC523 .byte 0 DewfordTown_PokemonCenter_1F_MapScript1_1FC52E: @ 81FC52E - setrespawn 15 + setrespawn HEAL_LOCATION_DEWFORD_TOWN call DewfordTown_PokemonCenter_1F_EventScript_2718DE end diff --git a/data/maps/EverGrandeCity_HallOfFame/scripts.inc b/data/maps/EverGrandeCity_HallOfFame/scripts.inc index 60f0dd1ad1..763d2ebb10 100644 --- a/data/maps/EverGrandeCity_HallOfFame/scripts.inc +++ b/data/maps/EverGrandeCity_HallOfFame/scripts.inc @@ -51,7 +51,7 @@ EverGrandeCity_HallOfFame_EventScript_229850:: @ 8229850 end EverGrandeCity_HallOfFame_EventScript_2298E9:: @ 82298E9 - setrespawn 1 + setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F fadescreenspeed 1, 24 special GameClear waitstate @@ -59,7 +59,7 @@ EverGrandeCity_HallOfFame_EventScript_2298E9:: @ 82298E9 end EverGrandeCity_HallOfFame_EventScript_2298F5:: @ 82298F5 - setrespawn 2 + setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F fadescreenspeed 1, 24 special GameClear waitstate diff --git a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc index ed6e6a4977..16b82a592c 100644 --- a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ EverGrandeCity_PokemonCenter_1F_MapScripts:: @ 8229A34 .byte 0 EverGrandeCity_PokemonCenter_1F_MapScript1_229A3F: @ 8229A3F - setrespawn 11 + setrespawn HEAL_LOCATION_EVER_GRANDE_CITY_1 checkflag FLAG_0x1CF call_if 0, EverGrandeCity_PokemonCenter_1F_EventScript_229A4C end diff --git a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc index f1a6ce17fa..b4046d0225 100644 --- a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc @@ -4,7 +4,7 @@ EverGrandeCity_PokemonLeague_1F_MapScripts:: @ 82295D2 .byte 0 EverGrandeCity_PokemonLeague_1F_MapScript1_2295DD: @ 82295DD - setrespawn 20 + setrespawn HEAL_LOCATION_EVER_GRANDE_CITY_2 setflag FLAG_LANDMARK_POKEMON_LEAGUE checkflag FLAG_0x107 call_if 0, EverGrandeCity_PokemonLeague_1F_EventScript_2295ED diff --git a/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc b/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc index 15f5d2b9e6..d11caa86f8 100644 --- a/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ FallarborTown_PokemonCenter_1F_MapScripts:: @ 8200BCD .byte 0 FallarborTown_PokemonCenter_1F_MapScript1_200BD8: @ 8200BD8 - setrespawn 17 + setrespawn HEAL_LOCATION_FALLARBOR_TOWN call FallarborTown_PokemonCenter_1F_EventScript_2718DE end diff --git a/data/maps/FortreeCity_PokemonCenter_1F/scripts.inc b/data/maps/FortreeCity_PokemonCenter_1F/scripts.inc index e119a0f299..4885c7f15e 100644 --- a/data/maps/FortreeCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/FortreeCity_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ FortreeCity_PokemonCenter_1F_MapScripts:: @ 82173D8 .byte 0 FortreeCity_PokemonCenter_1F_MapScript1_2173E3: @ 82173E3 - setrespawn 7 + setrespawn HEAL_LOCATION_FORTREE_CITY end FortreeCity_PokemonCenter_1F_EventScript_2173E7:: @ 82173E7 diff --git a/data/maps/InsideOfTruck/scripts.inc b/data/maps/InsideOfTruck/scripts.inc index 963dd196d1..24fe954a8b 100644 --- a/data/maps/InsideOfTruck/scripts.inc +++ b/data/maps/InsideOfTruck/scripts.inc @@ -24,7 +24,7 @@ InsideOfTruck_EventScript_23BF04:: @ 823BF04 end InsideOfTruck_EventScript_23BF20:: @ 823BF20 - setrespawn 1 + setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F setvar VAR_0x4092, 1 setflag FLAG_0x2F7 setflag FLAG_0x2FA @@ -37,7 +37,7 @@ InsideOfTruck_EventScript_23BF20:: @ 823BF20 end InsideOfTruck_EventScript_23BF46:: @ 823BF46 - setrespawn 2 + setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F setvar VAR_0x4092, 2 setflag FLAG_0x2F6 setflag FLAG_0x2F9 diff --git a/data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc b/data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc index 24f19b1d09..c7db56a0d8 100644 --- a/data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ LavaridgeTown_PokemonCenter_1F_MapScripts:: @ 81FFAFA .byte 0 LavaridgeTown_PokemonCenter_1F_MapScript1_1FFB05: @ 81FFB05 - setrespawn 16 + setrespawn HEAL_LOCATION_LAVARIDGE_TOWN call LavaridgeTown_PokemonCenter_1F_EventScript_2718DE end diff --git a/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc b/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc index b6ca099062..934f666ad1 100644 --- a/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ LilycoveCity_PokemonCenter_1F_MapScripts:: @ 821C5B2 .byte 0 LilycoveCity_PokemonCenter_1F_MapScript1_21C5BD: @ 821C5BD - setrespawn 8 + setrespawn HEAL_LOCATION_LILYCOVE_CITY goto LilycoveCity_PokemonCenter_1F_EventScript_21C5C6 end diff --git a/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc b/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc index fb76a5fc79..b2267122b8 100644 --- a/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ MauvilleCity_PokemonCenter_1F_MapScripts:: @ 8210E5B .byte 0 MauvilleCity_PokemonCenter_1F_MapScript1_210E66: @ 8210E66 - setrespawn 5 + setrespawn HEAL_LOCATION_MAUVILLE_CITY call MauvilleCity_PokemonCenter_1F_EventScript_2718DE goto MauvilleCity_PokemonCenter_1F_EventScript_210E74 end diff --git a/data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc b/data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc index 7fd2e61a06..2ff03b7f36 100644 --- a/data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ MossdeepCity_PokemonCenter_1F_MapScripts:: @ 822223F .byte 0 MossdeepCity_PokemonCenter_1F_MapScript1_22224A: @ 822224A - setrespawn 9 + setrespawn HEAL_LOCATION_MOSSDEEP_CITY end MossdeepCity_PokemonCenter_1F_EventScript_22224E:: @ 822224E diff --git a/data/maps/OldaleTown_PokemonCenter_1F/scripts.inc b/data/maps/OldaleTown_PokemonCenter_1F/scripts.inc index ece540e706..e99e628a6b 100644 --- a/data/maps/OldaleTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/OldaleTown_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ OldaleTown_PokemonCenter_1F_MapScripts:: @ 81FC006 .byte 0 OldaleTown_PokemonCenter_1F_MapScript1_1FC011: @ 81FC011 - setrespawn 14 + setrespawn HEAL_LOCATION_OLDALE_TOWN call OldaleTown_PokemonCenter_1F_EventScript_2718DE end diff --git a/data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc b/data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc index fd34cd2aaa..65af1cdc7e 100644 --- a/data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ PacifidlogTown_PokemonCenter_1F_MapScripts:: @ 82034A7 .byte 0 PacifidlogTown_PokemonCenter_1F_MapScript1_2034B2: @ 82034B2 - setrespawn 19 + setrespawn HEAL_LOCATION_PACIFIDLOG_TOWN end PacifidlogTown_PokemonCenter_1F_EventScript_2034B6:: @ 82034B6 diff --git a/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc b/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc index f4a31854e8..5b0cdb97ca 100644 --- a/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ PetalburgCity_PokemonCenter_1F_MapScripts:: @ 82079E8 .byte 0 PetalburgCity_PokemonCenter_1F_MapScript1_2079F3: @ 82079F3 - setrespawn 3 + setrespawn HEAL_LOCATION_PETALBURG_CITY call PetalburgCity_PokemonCenter_1F_EventScript_2718DE end diff --git a/data/maps/RustboroCity_PokemonCenter_1F/scripts.inc b/data/maps/RustboroCity_PokemonCenter_1F/scripts.inc index a9156d5aac..acf33e6474 100644 --- a/data/maps/RustboroCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/RustboroCity_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ RustboroCity_PokemonCenter_1F_MapScripts:: @ 8214D62 .byte 0 RustboroCity_PokemonCenter_1F_MapScript1_214D6D: @ 8214D6D - setrespawn 6 + setrespawn HEAL_LOCATION_RUSTBORO_CITY call RustboroCity_PokemonCenter_1F_EventScript_2718DE end diff --git a/data/maps/SSTidalCorridor/scripts.inc b/data/maps/SSTidalCorridor/scripts.inc index 2e1b4cfa44..a2985341f7 100644 --- a/data/maps/SSTidalCorridor/scripts.inc +++ b/data/maps/SSTidalCorridor/scripts.inc @@ -123,7 +123,7 @@ SSTidalCorridor_EventScript_23C119:: @ 823C119 end SSTidalCorridor_EventScript_23C13B:: @ 823C13B - setrespawn 8 + setrespawn HEAL_LOCATION_LILYCOVE_CITY msgbox SSTidalCorridor_Text_23C64F, 4 checkflag FLAG_0x104 call_if 1, SSTidalCorridor_EventScript_23C179 @@ -133,7 +133,7 @@ SSTidalCorridor_EventScript_23C13B:: @ 823C13B end SSTidalCorridor_EventScript_23C15A:: @ 823C15A - setrespawn 4 + setrespawn HEAL_LOCATION_SLATEPORT_CITY msgbox SSTidalCorridor_Text_23C64F, 4 checkflag FLAG_0x104 call_if 1, SSTidalCorridor_EventScript_23C179 diff --git a/data/maps/SlateportCity_PokemonCenter_1F/scripts.inc b/data/maps/SlateportCity_PokemonCenter_1F/scripts.inc index 404804c572..dd62280bb4 100644 --- a/data/maps/SlateportCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/SlateportCity_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ SlateportCity_PokemonCenter_1F_MapScripts:: @ 820DABF .byte 0 SlateportCity_PokemonCenter_1F_MapScript1_20DACA: @ 820DACA - setrespawn 4 + setrespawn HEAL_LOCATION_SLATEPORT_CITY call SlateportCity_PokemonCenter_1F_EventScript_2718DE end diff --git a/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc b/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc index fcb1b58631..46dccd97eb 100644 --- a/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ SootopolisCity_PokemonCenter_1F_MapScripts:: @ 82264F1 .byte 0 SootopolisCity_PokemonCenter_1F_MapScript1_2264FC: @ 82264FC - setrespawn 10 + setrespawn HEAL_LOCATION_SOOTOPOLIS_CITY end SootopolisCity_PokemonCenter_1F_EventScript_226500:: @ 8226500 diff --git a/data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc b/data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc index 73c7fe1f39..131df00f7b 100644 --- a/data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc @@ -4,7 +4,7 @@ VerdanturfTown_PokemonCenter_1F_MapScripts:: @ 8202726 .byte 0 VerdanturfTown_PokemonCenter_1F_MapScript1_202731: @ 8202731 - setrespawn 18 + setrespawn HEAL_LOCATION_VERDANTURF_TOWN call VerdanturfTown_PokemonCenter_1F_EventScript_2718DE end diff --git a/include/constants/heal_locations.h b/include/constants/heal_locations.h new file mode 100644 index 0000000000..64c8956a9b --- /dev/null +++ b/include/constants/heal_locations.h @@ -0,0 +1,27 @@ +#ifndef GUARD_CONSTANTS_HEAL_LOCATIONS_H +#define GUARD_CONSTANTS_HEAL_LOCATIONS_H + +#define HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1 +#define HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F 2 +#define HEAL_LOCATION_PETALBURG_CITY 3 +#define HEAL_LOCATION_SLATEPORT_CITY 4 +#define HEAL_LOCATION_MAUVILLE_CITY 5 +#define HEAL_LOCATION_RUSTBORO_CITY 6 +#define HEAL_LOCATION_FORTREE_CITY 7 +#define HEAL_LOCATION_LILYCOVE_CITY 8 +#define HEAL_LOCATION_MOSSDEEP_CITY 9 +#define HEAL_LOCATION_SOOTOPOLIS_CITY 10 +#define HEAL_LOCATION_EVER_GRANDE_CITY_1 11 +#define HEAL_LOCATION_LITTLEROOT_TOWN_1 12 +#define HEAL_LOCATION_LITTLEROOT_TOWN_2 13 +#define HEAL_LOCATION_OLDALE_TOWN 14 +#define HEAL_LOCATION_DEWFORD_TOWN 15 +#define HEAL_LOCATION_LAVARIDGE_TOWN 16 +#define HEAL_LOCATION_FALLARBOR_TOWN 17 +#define HEAL_LOCATION_VERDANTURF_TOWN 18 +#define HEAL_LOCATION_PACIFIDLOG_TOWN 19 +#define HEAL_LOCATION_EVER_GRANDE_CITY_2 20 +#define HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR 21 +#define HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST 22 + +#endif // GUARD_CONSTANTS_HEAL_LOCATIONS_H diff --git a/include/heal_location.h b/include/heal_location.h index 94dac24173..46f0d785ab 100644 --- a/include/heal_location.h +++ b/include/heal_location.h @@ -1,8 +1,6 @@ #ifndef GUARD_HEAL_LOCATION_H #define GUARD_HEAL_LOCATION_H -#include "sprite.h" - struct HealLocation { s8 group; diff --git a/src/data/heal_locations.h b/src/data/heal_locations.h new file mode 100644 index 0000000000..613bcebe83 --- /dev/null +++ b/src/data/heal_locations.h @@ -0,0 +1,25 @@ +static const struct HealLocation sHealLocations[] = +{ + {MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), 4, 2}, + {MAP_GROUP(LITTLEROOT_TOWN_MAYS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_2F), 4, 2}, + {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 20, 17}, + {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 19, 20}, + {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 22, 6}, + {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 16, 39}, + {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 5, 7}, + {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 24, 15}, + {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 28, 17}, + {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 43, 32}, + {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 27, 49}, + {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 5, 9}, + {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 14, 9}, + {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 6, 17}, + {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 2, 11}, + {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 9, 7}, + {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 14, 8}, + {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 16, 4}, + {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 8, 16}, + {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 18, 6}, + {MAP_GROUP(SOUTHERN_ISLAND_EXTERIOR), MAP_NUM(SOUTHERN_ISLAND_EXTERIOR), 15, 20}, + {MAP_GROUP(BATTLE_FRONTIER_OUTSIDE_EAST), MAP_NUM(BATTLE_FRONTIER_OUTSIDE_EAST), 3, 52}, +}; diff --git a/src/heal_location.c b/src/heal_location.c index 41b9898feb..b378e8e8cb 100644 --- a/src/heal_location.c +++ b/src/heal_location.c @@ -2,31 +2,7 @@ #include "heal_location.h" #include "constants/maps.h" -static const struct HealLocation sHealLocations[] = -{ - {MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), 4, 2}, - {MAP_GROUP(LITTLEROOT_TOWN_MAYS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_2F), 4, 2}, - {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 20, 17}, - {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 19, 20}, - {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 22, 6}, - {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 16, 39}, - {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 5, 7}, - {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 24, 15}, - {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 28, 17}, - {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 43, 32}, - {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 27, 49}, - {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 5, 9}, - {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 14, 9}, - {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 6, 17}, - {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 2, 11}, - {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 9, 7}, - {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 14, 8}, - {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 16, 4}, - {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 8, 16}, - {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 18, 6}, - {MAP_GROUP(SOUTHERN_ISLAND_EXTERIOR), MAP_NUM(SOUTHERN_ISLAND_EXTERIOR), 15, 20}, - {MAP_GROUP(BATTLE_FRONTIER_OUTSIDE_EAST), MAP_NUM(BATTLE_FRONTIER_OUTSIDE_EAST), 3, 52}, -}; +#include "data/heal_locations.h" u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum) { diff --git a/src/region_map.c b/src/region_map.c index 5176d49968..5420fbefa2 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -22,6 +22,8 @@ #include "field_effect.h" #include "region_map.h" #include "constants/region_map_sections.h" +#include "heal_location.h" +#include "constants/heal_locations.h" #define MAP_WIDTH 28 #define MAP_HEIGHT 15 @@ -243,22 +245,22 @@ static const u16 Unknown_085A1D48[] = INCBIN_U16("graphics/pokenav/fly_target_ic static const u8 sUnknown_085A1D68[] = INCBIN_U8("graphics/pokenav/fly_target_icons.4bpp.lz"); static const u8 sUnknown_085A1E3C[][3] = { - {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 1}, - {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 14}, - {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 15}, - {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 16}, - {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 17}, - {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 18}, - {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 19}, - {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 3}, - {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 4}, - {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 5}, - {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 6}, - {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 7}, - {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 8}, - {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 9}, - {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 10}, - {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 11}, + {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F}, + {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), HEAL_LOCATION_OLDALE_TOWN}, + {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), HEAL_LOCATION_DEWFORD_TOWN}, + {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), HEAL_LOCATION_LAVARIDGE_TOWN}, + {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), HEAL_LOCATION_FALLARBOR_TOWN}, + {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), HEAL_LOCATION_VERDANTURF_TOWN}, + {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), HEAL_LOCATION_PACIFIDLOG_TOWN}, + {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), HEAL_LOCATION_PETALBURG_CITY}, + {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), HEAL_LOCATION_SLATEPORT_CITY}, + {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), HEAL_LOCATION_MAUVILLE_CITY}, + {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), HEAL_LOCATION_RUSTBORO_CITY}, + {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), HEAL_LOCATION_FORTREE_CITY}, + {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), HEAL_LOCATION_LILYCOVE_CITY}, + {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), HEAL_LOCATION_MOSSDEEP_CITY}, + {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), HEAL_LOCATION_SOOTOPOLIS_CITY}, + {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY_1}, {MAP_GROUP(ROUTE101), MAP_NUM(ROUTE101), 0}, {MAP_GROUP(ROUTE102), MAP_NUM(ROUTE102), 0}, {MAP_GROUP(ROUTE103), MAP_NUM(ROUTE103), 0}, @@ -1908,16 +1910,16 @@ static void sub_8124E0C(void) switch (gUnknown_0203A148->regionMap.mapSecId) { case MAPSEC_SOUTHERN_ISLAND: - sub_8084CCC(0x15); + sub_8084CCC(HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR); break; case MAPSEC_BATTLE_FRONTIER: - sub_8084CCC(0x16); + sub_8084CCC(HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST); break; case MAPSEC_LITTLEROOT_TOWN: - sub_8084CCC(gSaveBlock2Ptr->playerGender == MALE ? 0x0C : 0x0D); + sub_8084CCC(gSaveBlock2Ptr->playerGender == MALE ? HEAL_LOCATION_LITTLEROOT_TOWN_1 : HEAL_LOCATION_LITTLEROOT_TOWN_2); break; case MAPSEC_EVER_GRANDE_CITY: - sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && gUnknown_0203A148->regionMap.posWithinMapSec == 0 ? 0x14 : 0x0B); + sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && gUnknown_0203A148->regionMap.posWithinMapSec == 0 ? HEAL_LOCATION_EVER_GRANDE_CITY_2 : HEAL_LOCATION_EVER_GRANDE_CITY_1); break; default: if (sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2] != 0) From 1e0f3ec433875aa38c259b866fca7ea38b39d072 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Fri, 10 Aug 2018 14:07:23 -0700 Subject: [PATCH 065/174] Continue decompiling field_specials --- asm/field_specials.s | 282 ------------------------------- data/field_specials.s | 6 - include/field_specials.h | 2 +- include/pokemon_storage_system.h | 1 + src/field_specials.c | 254 +++++++++++++++++++++++++++- 5 files changed, 255 insertions(+), 290 deletions(-) diff --git a/asm/field_specials.s b/asm/field_specials.s index 8b2fe920e6..aa4699b742 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -5,288 +5,6 @@ .text - thumb_func_start sub_813B21C -sub_813B21C: @ 813B21C - push {r4,r5,lr} - ldr r5, =0x000008d7 - adds r0, r5, 0 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0813B258 - bl StorageGetCurrentBox - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =0x00004036 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r4, r0 - beq _0813B258 - adds r0, r5, 0 - bl FlagSet - movs r0, 0x1 - b _0813B25A - .pool -_0813B258: - movs r0, 0 -_0813B25A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_813B21C - - thumb_func_start sub_813B260 -sub_813B260: @ 813B260 - push {r4-r7,lr} - ldr r0, =0x00004036 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl set_unknown_box_id - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r4, r0, 24 -_0813B278: - movs r5, 0 - lsls r6, r4, 24 - lsls r7, r4, 16 -_0813B27E: - lsls r1, r5, 24 - lsrs r1, 24 - lsrs r0, r6, 24 - bl GetBoxedMonPtr - movs r1, 0xB - movs r2, 0 - bl GetBoxMonData - cmp r0, 0 - bne _0813B2C0 - bl get_unknown_box_id - lsls r0, 16 - lsrs r0, 16 - cmp r0, r4 - beq _0813B2A6 - ldr r0, =0x000008d7 - bl FlagClear -_0813B2A6: - ldr r0, =0x00004036 - lsrs r1, r7, 16 - bl VarSet - bl sub_813B21C - lsls r0, 24 - lsrs r0, 24 - b _0813B2DC - .pool -_0813B2C0: - adds r5, 0x1 - cmp r5, 0x1D - ble _0813B27E - adds r4, 0x1 - cmp r4, 0xE - bne _0813B2CE - movs r4, 0 -_0813B2CE: - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _0813B278 - movs r0, 0 -_0813B2DC: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_813B260 - - thumb_func_start sub_813B2E4 -sub_813B2E4: @ 813B2E4 - push {r4,lr} - bl Random - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x00004038 - movs r1, 0 - bl VarSet - movs r0, 0xDF - lsls r0, 1 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0813B340 - ldr r0, =0x000001bf - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813B330 - ldr r0, =0x00004037 - movs r1, 0x7 - ands r4, r1 - adds r1, r4, 0 - adds r1, 0x9 - bl VarSet - b _0813B36A - .pool -_0813B330: - movs r0, 0x1 - ands r4, r0 - cmp r4, 0 - bne _0813B354 - bl Random - lsls r0, 16 - lsrs r4, r0, 16 -_0813B340: - ldr r0, =0x00004037 - movs r1, 0x7 - ands r4, r1 - adds r1, r4, 0x1 - bl VarSet - b _0813B36A - .pool -_0813B354: - bl Random - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x00004037 - movs r1, 0x7 - ands r4, r1 - adds r1, r4, 0 - adds r1, 0x9 - bl VarSet -_0813B36A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B2E4 - - thumb_func_start sub_813B374 -sub_813B374: @ 813B374 - push {r4,lr} - ldr r0, =0x00004037 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =gStringVar1 - ldr r2, =gUnknown_085B3400 - subs r1, r4, 0x1 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0 - bl GetMapName - cmp r4, 0x8 - bls _0813B3A8 - movs r0, 0x1 - b _0813B3AA - .pool -_0813B3A8: - movs r0, 0 -_0813B3AA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_813B374 - - thumb_func_start sub_813B3B0 -sub_813B3B0: @ 813B3B0 - push {r4-r6,lr} - ldr r5, =0x00004038 - adds r0, r5, 0 - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x00004037 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _0813B47C - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x000003e7 - cmp r4, r0 - bls _0813B474 - adds r0, r5, 0 - movs r1, 0 - bl VarSet - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, 0x18 - bne _0813B414 - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0x69 - bgt _0813B414 - cmp r0, 0x65 - blt _0813B414 - ldr r0, =0x00004039 - movs r1, 0x1 - b _0813B478 - .pool -_0813B414: - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - movs r1, 0x4 - ldrsb r1, [r2, r1] - adds r3, r0, 0 - cmp r1, 0 - bne _0813B444 - movs r0, 0x5 - ldrsb r0, [r2, r0] - cmp r0, 0x34 - beq _0813B436 - cmp r0, 0x34 - blt _0813B444 - cmp r0, 0x38 - bgt _0813B444 - cmp r0, 0x36 - blt _0813B444 -_0813B436: - ldr r0, =0x00004039 - movs r1, 0x1 - b _0813B478 - .pool -_0813B444: - ldr r3, [r3] - movs r2, 0x5 - ldrsb r2, [r3, r2] - ldr r1, =gUnknown_085B3410 - subs r0, r6, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r2, r0 - bne _0813B468 - movs r0, 0x4 - ldrsb r0, [r3, r0] - cmp r0, 0 - bne _0813B468 - movs r0, 0x1 - b _0813B47E - .pool -_0813B468: - ldr r0, =0x00004037 - movs r1, 0 - b _0813B478 - .pool -_0813B474: - adds r0, r5, 0 - adds r1, r4, 0 -_0813B478: - bl VarSet -_0813B47C: - movs r0, 0 -_0813B47E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_813B3B0 - thumb_func_start sub_813B484 sub_813B484: @ 813B484 push {lr} diff --git a/data/field_specials.s b/data/field_specials.s index 1c2fb32da8..86a8606e16 100644 --- a/data/field_specials.s +++ b/data/field_specials.s @@ -3,12 +3,6 @@ .section .rodata -gUnknown_085B3400:: @ 85B3400 - .byte 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c - -gUnknown_085B3410:: @ 85B3410 - .byte 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c - gUnknown_085B3420:: @ 85B3420 .byte 0x02, 0x04, 0x01, 0x04, 0x04, 0x01, 0x05, 0x00, 0x01, 0x06, 0x03, 0x01, 0x08, 0x06, 0x01, 0x09, 0x0d, 0x01, 0x0a, 0x07, 0x01, 0x0b, 0x07, 0x01, 0x0c, 0x04, 0x01, 0x0e, 0x05, 0x01, 0x0f, 0x04 .byte 0x01, 0x1a, 0x37, 0x01 diff --git a/include/field_specials.h b/include/field_specials.h index 8065b061c4..c1f70a3996 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -3,7 +3,7 @@ u8 GetLeadMonIndex(void); u8 sub_813B260(void); -u8 get_unknown_box_id(void); +u16 get_unknown_box_id(void); bool8 InMultiBattleRoom(void); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 5e07ba1f24..990331e860 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -10,5 +10,6 @@ void SetBoxMonNickFromAnyBox(u8, u8, u8 *); void CompactPartySlots(void); u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request); bool8 CheckFreePokemonStorageSpace(void); +u8 StorageGetCurrentBox(void); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/src/field_specials.c b/src/field_specials.c index 20165180bf..7d57bddde2 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3584,7 +3584,259 @@ void set_unknown_box_id(u8 id) gUnknown_0203AB6F = id; } -u8 get_unknown_box_id(void) +u16 get_unknown_box_id(void) { return gUnknown_0203AB6F; } + +bool32 sub_813B21C(void) +{ + if (FlagGet(FLAG_SYS_STORAGE_UNKNOWN_FLAG) == FALSE) + { + if (StorageGetCurrentBox() != VarGet(VAR_STORAGE_UNKNOWN)) + { + FlagSet(FLAG_SYS_STORAGE_UNKNOWN_FLAG); + return TRUE; + } + } + return FALSE; +} + +bool8 sub_813B260(void) +{ + int box; + int i; + set_unknown_box_id(VarGet(VAR_STORAGE_UNKNOWN)); + box = StorageGetCurrentBox(); + do + { + for (i = 0; i < IN_BOX_COUNT; i++) + { + if (GetBoxMonData(GetBoxedMonPtr(box, i), MON_DATA_SPECIES, 0) == 0) + { + if (get_unknown_box_id() != box) + { + FlagClear(FLAG_SYS_STORAGE_UNKNOWN_FLAG); + } + VarSet(VAR_STORAGE_UNKNOWN, box); + return sub_813B21C(); + } + } + + if (++box == TOTAL_BOXES_COUNT) + { + box = 0; + } + } while (box != StorageGetCurrentBox()); + return FALSE; +} + +void sub_813B2E4(void) +{ + u16 randomValue = Random(); + VarSet(VAR_0x4038, 0); + + if (FlagGet(FLAG_0x1BE) == TRUE) + { + VarSet(VAR_0x4037, (randomValue & 7) + 1); + } + else if (FlagGet(FLAG_0x1BF) == TRUE) + { + VarSet(VAR_0x4037, (randomValue & 7) + 9); + } + else if ((randomValue & 1) == 0) + { + randomValue = Random(); + VarSet(VAR_0x4037, (randomValue & 7) + 1); + } + else + { + randomValue = Random(); + VarSet(VAR_0x4037, (randomValue & 7) + 9); + } +} + +const u8 gUnknown_085B3400[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + +bool32 sub_813B374(void) +{ + u16 var = VarGet(VAR_0x4037); + + GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0); + + if (var < 9) + { + return FALSE; + } + else + { + return TRUE; + } +} + +const u8 gUnknown_085B3410[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + +// last parts of switch statements insist on merging +#ifdef NONMATCHING +bool32 sub_813B3B0(void) +{ + u16 var1 = VarGet(VAR_0x4038); + u16 var2 = VarGet(VAR_0x4037); + + if (var2 != 0) + { + if (++var1 > 999) + { + VarSet(VAR_0x4038, 0); + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER_MARINE_CAVE)) + { + switch (gSaveBlock1Ptr->location.mapNum) + { + case MAP_NUM(UNDERWATER_MARINE_CAVE): + case MAP_NUM(MARINE_CAVE_ENTRANCE): + case MAP_NUM(MARINE_CAVE_END): + case MAP_NUM(TERRA_CAVE_ENTRANCE): + case MAP_NUM(TERRA_CAVE_END): + VarSet(VAR_0x4039, 1); + return FALSE; + default: + break; + } + } + + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER3)) + { + switch (gSaveBlock1Ptr->location.mapNum) + { + case MAP_NUM(UNDERWATER3): + case MAP_NUM(UNDERWATER5): + case MAP_NUM(UNDERWATER6): + case MAP_NUM(UNDERWATER7): + VarSet(VAR_0x4039, 1); + return FALSE; + default: + break; + } + } + + if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3410[var2 - 1] && + gSaveBlock1Ptr->location.mapGroup == 0) + { + return TRUE; + } + else + { + VarSet(VAR_0x4037, 0); + return FALSE; + } + } + else + { + VarSet(VAR_0x4038, var1); + return FALSE; + } + } + else + { + return FALSE; + } +} +#else +NAKED +bool32 sub_813B3B0(void) +{ + asm_unified("push {r4-r6,lr}\n\ + ldr r5, =0x00004038\n\ + adds r0, r5, 0\n\ + bl VarGet\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + ldr r0, =0x00004037\n\ + bl VarGet\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + cmp r6, 0\n\ + beq _0813B47C\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + ldr r0, =0x000003e7\n\ + cmp r4, r0\n\ + bls _0813B474\n\ + adds r0, r5, 0\n\ + movs r1, 0\n\ + bl VarSet\n\ + ldr r0, =gSaveBlock1Ptr\n\ + ldr r1, [r0]\n\ + movs r0, 0x4\n\ + ldrsb r0, [r1, r0]\n\ + cmp r0, 0x18\n\ + bne _0813B414\n\ + movs r0, 0x5\n\ + ldrsb r0, [r1, r0]\n\ + cmp r0, 0x69\n\ + bgt _0813B414\n\ + cmp r0, 0x65\n\ + blt _0813B414\n\ + ldr r0, =0x00004039\n\ + movs r1, 0x1\n\ + b _0813B478\n\ + .pool\n\ +_0813B414:\n\ + ldr r0, =gSaveBlock1Ptr\n\ + ldr r2, [r0]\n\ + movs r1, 0x4\n\ + ldrsb r1, [r2, r1]\n\ + adds r3, r0, 0\n\ + cmp r1, 0\n\ + bne _0813B444\n\ + movs r0, 0x5\n\ + ldrsb r0, [r2, r0]\n\ + cmp r0, 0x34\n\ + beq _0813B436\n\ + cmp r0, 0x34\n\ + blt _0813B444\n\ + cmp r0, 0x38\n\ + bgt _0813B444\n\ + cmp r0, 0x36\n\ + blt _0813B444\n\ +_0813B436:\n\ + ldr r0, =0x00004039\n\ + movs r1, 0x1\n\ + b _0813B478\n\ + .pool\n\ +_0813B444:\n\ + ldr r3, [r3]\n\ + movs r2, 0x5\n\ + ldrsb r2, [r3, r2]\n\ + ldr r1, =gUnknown_085B3410\n\ + subs r0, r6, 0x1\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + cmp r2, r0\n\ + bne _0813B468\n\ + movs r0, 0x4\n\ + ldrsb r0, [r3, r0]\n\ + cmp r0, 0\n\ + bne _0813B468\n\ + movs r0, 0x1\n\ + b _0813B47E\n\ + .pool\n\ +_0813B468:\n\ + ldr r0, =0x00004037\n\ + movs r1, 0\n\ + b _0813B478\n\ + .pool\n\ +_0813B474:\n\ + adds r0, r5, 0\n\ + adds r1, r4, 0\n\ +_0813B478:\n\ + bl VarSet\n\ +_0813B47C:\n\ + movs r0, 0\n\ +_0813B47E:\n\ + pop {r4-r6}\n\ + pop {r1}\n\ + bx r1"); +} +#endif // NONMATCHING From 2fc3b7f1714011b126c66dbd445194ed50229bb5 Mon Sep 17 00:00:00 2001 From: garak Date: Sat, 11 Aug 2018 10:28:13 -0400 Subject: [PATCH 066/174] change sUnknown_085A1E3C to sMapHealLocations --- src/region_map.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/region_map.c b/src/region_map.c index 5420fbefa2..3bf6ce800d 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -244,7 +244,7 @@ static const u16 Unknown_085A1D48[] = INCBIN_U16("graphics/pokenav/fly_target_ic static const u8 sUnknown_085A1D68[] = INCBIN_U8("graphics/pokenav/fly_target_icons.4bpp.lz"); -static const u8 sUnknown_085A1E3C[][3] = { +static const u8 sMapHealLocations[][3] = { {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F}, {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), HEAL_LOCATION_OLDALE_TOWN}, {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), HEAL_LOCATION_DEWFORD_TOWN}, @@ -1922,13 +1922,13 @@ static void sub_8124E0C(void) sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && gUnknown_0203A148->regionMap.posWithinMapSec == 0 ? HEAL_LOCATION_EVER_GRANDE_CITY_2 : HEAL_LOCATION_EVER_GRANDE_CITY_1); break; default: - if (sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2] != 0) + if (sMapHealLocations[gUnknown_0203A148->regionMap.mapSecId][2] != 0) { - sub_8084CCC(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2]); + sub_8084CCC(sMapHealLocations[gUnknown_0203A148->regionMap.mapSecId][2]); } else { - warp1_set_2(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][0], sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][1], -1); + warp1_set_2(sMapHealLocations[gUnknown_0203A148->regionMap.mapSecId][0], sMapHealLocations[gUnknown_0203A148->regionMap.mapSecId][1], -1); } break; } From 7961aa44baa7935c5d410203e4fc7f29ff194ca1 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 11 Aug 2018 17:57:20 +0200 Subject: [PATCH 067/174] start porting slot machine --- asm/slot_machine.s | 1921 ++++++---------------------------------- include/slot_machine.h | 2 +- ld_script.txt | 2 + src/slot_machine.c | 887 +++++++++++++++++++ 4 files changed, 1138 insertions(+), 1674 deletions(-) create mode 100644 src/slot_machine.c diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 4f76d1b699..066663c424 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -5,1432 +5,7 @@ .text - thumb_func_start sub_812A4DC -sub_812A4DC: @ 812A4DC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _0812A500 - cmp r1, 0x1 - beq _0812A518 - b _0812A530 - .pool -_0812A500: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0812A530 -_0812A518: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812A530 - ldr r0, =sub_812A588 - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_0812A530: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A4DC - thumb_func_start PlaySlotMachine -PlaySlotMachine: @ 812A540 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_0203AB34 - movs r0, 0x68 - bl AllocZeroed - str r0, [r5] - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_812A6D4 - ldr r0, =sub_812A4DC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end PlaySlotMachine - - thumb_func_start sub_812A588 -sub_812A588: @ 812A588 - push {lr} - sub sp, 0x4 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xB - bhi _0812A666 - lsls r0, 2 - ldr r1, =_0812A5AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0812A5AC: - .4byte _0812A5DC - .4byte _0812A5E6 - .4byte _0812A5EC - .4byte _0812A5F6 - .4byte _0812A5FC - .4byte _0812A602 - .4byte _0812A608 - .4byte _0812A60E - .4byte _0812A638 - .4byte _0812A63E - .4byte _0812A644 - .4byte _0812A660 -_0812A5DC: - bl sub_812A750 - bl sub_812A8C4 - b _0812A64C -_0812A5E6: - bl sub_812A7BC - b _0812A64C -_0812A5EC: - bl sub_812A810 - bl sub_812A834 - b _0812A64C -_0812A5F6: - bl sub_812A9AC - b _0812A64C -_0812A5FC: - bl sub_812A9CC - b _0812A64C -_0812A602: - bl sub_812AA48 - b _0812A64C -_0812A608: - bl sub_812A79C - b _0812A64C -_0812A60E: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - b _0812A64C -_0812A638: - bl sub_812FBC4 - b _0812A64C -_0812A63E: - bl sub_812FB14 - b _0812A64C -_0812A644: - bl sub_812AA78 - bl sub_812AA90 -_0812A64C: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0812A666 - .pool -_0812A660: - ldr r0, =sub_812A670 - bl SetMainCallback2 -_0812A666: - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A588 - - thumb_func_start sub_812A670 -sub_812A670: @ 812A670 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_812A670 - - thumb_func_start sub_812A688 -sub_812A688: @ 812A688 - push {r4,lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r4, =gUnknown_0203AB34 - ldr r0, [r4] - adds r0, 0x58 - ldrh r1, [r0] - movs r0, 0x40 - bl SetGpuReg - ldr r0, [r4] - adds r0, 0x5A - ldrh r1, [r0] - movs r0, 0x44 - bl SetGpuReg - ldr r0, [r4] - adds r0, 0x5C - ldrh r1, [r0] - movs r0, 0x48 - bl SetGpuReg - ldr r0, [r4] - adds r0, 0x5E - ldrh r1, [r0] - movs r0, 0x4A - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A688 - - thumb_func_start sub_812A6D4 -sub_812A6D4: @ 812A6D4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =TaskDummy9 - movs r1, 0xFF - bl CreateTask - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks - adds r0, r1 - strh r4, [r0, 0x8] - adds r0, 0xA - adds r1, r5, 0 - bl StoreWordInTwoHalfwords - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A6D4 - - thumb_func_start sub_812A710 -sub_812A710: @ 812A710 - push {lr} - ldr r0, =TaskDummy9 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - ldr r0, =gTasks - adds r2, r0 - ldr r3, =gUnknown_0203AB34 - ldr r1, [r3] - ldrh r0, [r2, 0x8] - strb r0, [r1, 0x1] - adds r2, 0xA - ldr r1, [r3] - adds r1, 0x64 - adds r0, r2, 0 - bl LoadWordFromTwoHalfwords - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A710 - - thumb_func_start TaskDummy9 -TaskDummy9: @ 812A74C - bx lr - thumb_func_end TaskDummy9 - - thumb_func_start sub_812A750 -sub_812A750: @ 812A750 - push {lr} - sub sp, 0x4 - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - str r0, [sp] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x05006000 - mov r0, sp - bl CpuSet - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085A7424 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r0, =gUnknown_085A7434 - bl InitWindows - bl DeactivateAllTextPrinters - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A750 - - thumb_func_start sub_812A79C -sub_812A79C: @ 812A79C - push {lr} - ldr r0, =sub_812A688 - bl SetVBlankCallback - movs r0, 0x1 - bl EnableInterrupts - movs r1, 0xC1 - lsls r1, 6 - movs r0, 0 - bl SetGpuReg - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A79C - - thumb_func_start sub_812A7BC -sub_812A7BC: @ 812A7BC - push {r4-r7,lr} - sub sp, 0x4 - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0x80 - lsls r3, 9 - mov r4, sp - movs r6, 0 - ldr r1, =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_0812A7DA: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r5 - subs r3, r5 - cmp r3, r5 - bhi _0812A7DA - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A7BC - - thumb_func_start sub_812A810 -sub_812A810: @ 812A810 - sub sp, 0x4 - movs r2, 0xE0 - lsls r2, 19 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r0, =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, =0x81000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - add sp, 0x4 - bx lr - .pool - thumb_func_end sub_812A810 - - thumb_func_start sub_812A834 -sub_812A834: @ 812A834 - push {lr} - movs r0, 0x8 - movs r1, 0 - bl SetGpuReg - movs r0, 0xA - movs r1, 0 - bl SetGpuReg - movs r0, 0xC - movs r1, 0 - bl SetGpuReg - movs r0, 0xE - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x3F - bl SetGpuReg - ldr r1, =0x00001048 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x00000809 - movs r0, 0x52 - bl SetGpuReg - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A834 - - thumb_func_start sub_812A8C4 -sub_812A8C4: @ 812A8C4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl sub_812A710 - ldr r5, =gUnknown_0203AB34 - ldr r0, [r5] - movs r4, 0 - strb r4, [r0] - ldr r0, [r5] - strb r4, [r0, 0x2] - bl Random - ldr r2, [r5] - movs r1, 0x1 - ands r1, r0 - strb r1, [r2, 0x3] - ldr r0, [r5] - strb r4, [r0, 0x4] - ldr r0, [r5] - movs r1, 0 - strh r4, [r0, 0x8] - strb r1, [r0, 0xA] - ldr r0, [r5] - strb r1, [r0, 0xB] - bl GetCoins - ldr r2, [r5] - strh r0, [r2, 0xC] - strh r4, [r2, 0xE] - strh r4, [r2, 0x10] - strh r4, [r2, 0x12] - strh r4, [r2, 0x18] - movs r0, 0x8 - strh r0, [r2, 0x1A] - adds r1, r2, 0 - adds r1, 0x58 - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xA0 - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x5C - movs r1, 0x3F - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl GetCurrentMapMusic - ldr r1, [r5] - adds r1, 0x60 - strh r0, [r1] - movs r7, 0 - ldr r0, =gUnknown_085A76B4 - mov r8, r0 -_0812A934: - ldr r0, =gUnknown_0203AB34 - ldr r4, [r0] - lsls r6, r7, 1 - adds r0, r4, 0 - adds r0, 0x22 - adds r0, r6 - movs r1, 0 - strh r1, [r0] - adds r5, r4, 0 - adds r5, 0x28 - adds r5, r6 - ldrb r0, [r4, 0x3] - lsls r0, 1 - lsls r1, r7, 2 - adds r0, r1 - add r0, r8 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x15 - bl __modsi3 - strh r0, [r5] - adds r4, 0x1C - adds r4, r6 - movs r2, 0 - ldrsh r0, [r5, r2] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - movs r2, 0xFC - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - adds r1, r2, 0 - bl __modsi3 - strh r0, [r4] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _0812A934 - bl GetCoins - lsls r0, 16 - lsrs r0, 16 - bl sub_80EDE70 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A8C4 - - thumb_func_start sub_812A9AC -sub_812A9AC: @ 812A9AC - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - ldr r1, =gOamLimit - movs r0, 0x80 - strb r0, [r1] - bl FreeAllSpritePalettes - bl ResetTasks - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A9AC - - thumb_func_start sub_812A9CC -sub_812A9CC: @ 812A9CC - push {r4,r5,lr} - ldr r4, =gUnknown_0203AACC - movs r0, 0x8 - bl Alloc - str r0, [r4] - ldr r4, =gUnknown_0203AAD0 - movs r0, 0xE - bl AllocZeroed - str r0, [r4] - ldr r5, =gUnknown_0203AADC - movs r0, 0x8 - bl AllocZeroed - str r0, [r5] - ldr r1, [r4] - ldr r2, =0x00002051 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, [r4] - ldr r2, =0x00002851 - adds r0, r2, 0 - strh r0, [r1, 0x2] - ldr r2, =0x00002061 - adds r0, r2, 0 - strh r0, [r1, 0x4] - ldr r2, =0x00002861 - adds r0, r2, 0 - strh r0, [r1, 0x6] - ldr r2, =0x000020be - adds r0, r2, 0 - strh r0, [r1, 0x8] - ldr r2, =0x000028be - adds r0, r2, 0 - strh r0, [r1, 0xA] - ldr r2, =0x000020bf - adds r0, r2, 0 - strh r0, [r1, 0xC] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812A9CC - - thumb_func_start sub_812AA48 -sub_812AA48: @ 812AA48 - push {lr} - bl sub_812F908 - bl sub_812F958 - bl sub_812F7E4 - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - movs r2, 0xF0 - bl LoadMessageBoxGfx - movs r1, 0x85 - lsls r1, 2 - movs r0, 0 - movs r2, 0xE0 - bl LoadUserWindowBorderGfx - movs r0, 0 - bl PutWindowTilemap - pop {r0} - bx r0 - thumb_func_end sub_812AA48 - - thumb_func_start sub_812AA78 -sub_812AA78: @ 812AA78 - push {lr} - bl sub_812E0E4 - bl sub_812E1C8 - bl sub_812CEF4 - bl sub_812E300 - pop {r0} - bx r0 - thumb_func_end sub_812AA78 - - thumb_func_start sub_812AA90 -sub_812AA90: @ 812AA90 - push {lr} - bl sub_812D188 - bl sub_812BE5C - bl sub_812DE94 - bl sub_812AAA8 - pop {r0} - bx r0 - thumb_func_end sub_812AA90 - - thumb_func_start sub_812AAA8 -sub_812AAA8: @ 812AAA8 - push {r4,lr} - ldr r4, =sub_812AAC8 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812AAA8 - - thumb_func_start sub_812AAC8 -sub_812AAC8: @ 812AAC8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r6, =gUnknown_085A7450 - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r5, =gTasks -_0812AAD8: - ldr r0, =gUnknown_0203AB34 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - adds r0, r4, r5 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0812AAD8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812AAC8 - - thumb_func_start sub_812AB04 -sub_812AB04: @ 812AB04 - push {r4,lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r4, =gUnknown_0203AB34 - ldr r0, [r4] - ldrb r0, [r0, 0x2] - bl sub_812D3B4 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812AB04 - - thumb_func_start sub_812AB38 -sub_812AB38: @ 812AB38 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812AB50 - ldr r0, =gUnknown_0203AB34 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0812AB50: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812AB38 - - thumb_func_start sub_812AB60 -sub_812AB60: @ 812AB60 - push {lr} - ldr r3, =gUnknown_0203AB34 - ldr r1, [r3] - movs r0, 0 - strh r0, [r1, 0xE] - strh r0, [r1, 0x12] - strh r0, [r1, 0x18] - ldrb r2, [r1, 0x4] - movs r0, 0xC0 - ands r0, r2 - strb r0, [r1, 0x4] - ldr r1, [r3] - movs r0, 0x4 - strb r0, [r1] - ldr r3, [r3] - movs r1, 0xC - ldrsh r0, [r3, r1] - cmp r0, 0 - bgt _0812AB90 - movs r0, 0x19 - strb r0, [r3] - b _0812ABA0 - .pool -_0812AB90: - ldrb r0, [r3, 0xA] - cmp r0, 0 - beq _0812ABA0 - movs r0, 0x3 - strb r0, [r3] - movs r0, 0x4 - bl sub_812DEE4 -_0812ABA0: - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_812AB60 - - thumb_func_start sub_812ABA8 -sub_812ABA8: @ 812ABA8 - push {lr} - bl sub_812E054 - lsls r0, 24 - cmp r0, 0 - beq _0812ABBC - ldr r0, =gUnknown_0203AB34 - ldr r1, [r0] - movs r0, 0x4 - strb r0, [r1] -_0812ABBC: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812ABA8 - - thumb_func_start sub_812ABC8 -sub_812ABC8: @ 812ABC8 - push {lr} - movs r0, 0 - bl sub_812DEE4 - ldr r2, =gUnknown_0203AB34 - ldr r1, [r2] - movs r0, 0x5 - strb r0, [r1] - ldr r2, [r2] - movs r0, 0xC - ldrsh r1, [r2, r0] - ldr r0, =0x0000270e - cmp r1, r0 - ble _0812ABE8 - movs r0, 0x17 - strb r0, [r2] -_0812ABE8: - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812ABC8 - - thumb_func_start sub_812ABF8 -sub_812ABF8: @ 812ABF8 - push {r4,r5,lr} - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0812AC1C - movs r0, 0 - bl sub_812DC80 - ldr r0, =gUnknown_0203AB34 - ldr r1, [r0] - movs r0, 0x8 - b _0812ACE2 - .pool -_0812AC1C: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0812AC82 - ldr r0, =gUnknown_0203AB34 - ldr r2, [r0] - movs r1, 0xC - ldrsh r0, [r2, r1] - subs r0, 0x3 - movs r3, 0x12 - ldrsh r1, [r2, r3] - adds r0, r1 - cmp r0, 0 - blt _0812AC7C - ldrh r4, [r2, 0x12] - adds r0, r1, 0 - cmp r0, 0x2 - bgt _0812AC5A -_0812AC42: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_812CE7C - lsls r0, r4, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _0812AC42 -_0812AC5A: - ldr r0, =gUnknown_0203AB34 - ldr r1, [r0] - ldrh r0, [r1, 0xC] - subs r0, 0x3 - ldrh r3, [r1, 0x12] - adds r0, r3 - strh r0, [r1, 0xC] - movs r0, 0x3 - strh r0, [r1, 0x12] - movs r0, 0x9 - strb r0, [r1] - movs r0, 0x5F - bl PlaySE - b _0812ACE4 - .pool -_0812AC7C: - movs r0, 0x6 - strb r0, [r2] - b _0812ACE4 -_0812AC82: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0812ACB2 - ldr r4, =gUnknown_0203AB34 - ldr r0, [r4] - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0812ACB2 - movs r0, 0x5F - bl PlaySE - ldr r0, [r4] - ldrb r0, [r0, 0x12] - bl sub_812CE7C - ldr r1, [r4] - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] -_0812ACB2: - ldr r0, =gUnknown_0203AB34 - ldr r3, [r0] - movs r1, 0x12 - ldrsh r2, [r3, r1] - ldr r4, =gMain - adds r5, r0, 0 - cmp r2, 0x2 - bgt _0812ACD0 - cmp r2, 0 - beq _0812ACD4 - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812ACD4 -_0812ACD0: - movs r0, 0x9 - strb r0, [r3] -_0812ACD4: - ldrh r1, [r4, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0812ACE4 - ldr r1, [r5] - movs r0, 0x15 -_0812ACE2: - strb r0, [r1] -_0812ACE4: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812ABF8 - - thumb_func_start sub_812ACF4 -sub_812ACF4: @ 812ACF4 - push {lr} - sub sp, 0xC - movs r0, 0 - movs r1, 0 - bl NewMenuHelpers_DrawDialogueFrame - ldr r2, =gText_YouDontHaveThreeCoins - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =gUnknown_0203AB34 - ldr r1, [r0] - movs r0, 0x7 - strb r0, [r1] - movs r0, 0 - add sp, 0xC - pop {r1} - bx r1 - .pool - thumb_func_end sub_812ACF4 - - thumb_func_start sub_812AD34 -sub_812AD34: @ 812AD34 - push {lr} - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0812AD52 - movs r0, 0 - movs r1, 0x1 - bl sub_8197434 - ldr r0, =gUnknown_0203AB34 - ldr r1, [r0] - movs r0, 0x5 - strb r0, [r1] -_0812AD52: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812AD34 - - thumb_func_start sub_812AD60 -sub_812AD60: @ 812AD60 - push {lr} - bl sub_812DCB4 - lsls r0, 24 - cmp r0, 0 - beq _0812AD74 - ldr r0, =gUnknown_0203AB34 - ldr r1, [r0] - movs r0, 0x5 - strb r0, [r1] -_0812AD74: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812AD60 - - thumb_func_start sub_812AD80 -sub_812AD80: @ 812AD80 - push {r4,lr} - adds r4, r0, 0 - bl sub_812B4EC - bl sub_812DFDC - movs r0, 0 - bl sub_812BEA4 - movs r0, 0x1 - bl sub_812BEA4 - movs r0, 0x2 - bl sub_812BEA4 - bl sub_80EEC80 - movs r0, 0 - strh r0, [r4, 0x8] - ldr r4, =gUnknown_0203AB34 - ldr r0, [r4] - ldrb r1, [r0, 0x4] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0812ADC4 - bl sub_812D4AC - ldr r1, [r4] - movs r0, 0xA - b _0812ADCE - .pool -_0812ADC4: - movs r0, 0x1 - bl sub_812DEE4 - ldr r1, [r4] - movs r0, 0xB -_0812ADCE: - strb r0, [r1] - ldr r4, =gUnknown_0203AB34 - ldr r0, [r4] - movs r1, 0x8 - strh r1, [r0, 0x1A] - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _0812ADE6 - bl dp15_jump_random_unknown - ldr r1, [r4] - strh r0, [r1, 0x1A] -_0812ADE6: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812AD80 - - thumb_func_start sub_812ADF4 -sub_812ADF4: @ 812ADF4 - push {lr} - bl sub_812D4CC - lsls r0, 24 - cmp r0, 0 - beq _0812AE18 - movs r0, 0x1 - bl sub_812DEE4 - ldr r3, =gUnknown_0203AB34 - ldr r2, [r3] - ldrb r1, [r2, 0x4] - movs r0, 0xDF - ands r0, r1 - strb r0, [r2, 0x4] - ldr r1, [r3] - movs r0, 0xB - strb r0, [r1] -_0812AE18: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812ADF4 - - thumb_func_start sub_812AE24 -sub_812AE24: @ 812AE24 - push {lr} - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x1D - ble _0812AE40 - bl sub_812B55C - ldr r0, =gUnknown_0203AB34 - ldr r1, [r0] - movs r0, 0xC - strb r0, [r1] -_0812AE40: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812AE24 - - thumb_func_start sub_812AE4C -sub_812AE4C: @ 812AE4C - push {r4,lr} - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812AE78 - movs r0, 0x18 - bl PlaySE - ldr r4, =gUnknown_0203AB34 - ldr r0, [r4] - ldrb r0, [r0, 0x18] - bl sub_812BEDC - ldr r0, [r4] - ldrb r0, [r0, 0x18] - bl sub_812CD40 - ldr r1, [r4] - movs r0, 0xD - strb r0, [r1] -_0812AE78: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812AE4C - - thumb_func_start sub_812AE88 -sub_812AE88: @ 812AE88 - push {r4,lr} - ldr r4, =gUnknown_0203AB34 - ldr r0, [r4] - ldrb r0, [r0, 0x18] - bl sub_812BF04 - lsls r0, 24 - cmp r0, 0 - bne _0812AEBC - ldr r1, [r4] - ldrh r0, [r1, 0x18] - adds r0, 0x1 - strh r0, [r1, 0x18] - movs r0, 0xC - strb r0, [r1] - ldr r1, [r4] - movs r2, 0x18 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - ble _0812AEB4 - movs r0, 0xE - strb r0, [r1] -_0812AEB4: - movs r0, 0x1 - b _0812AEBE - .pool -_0812AEBC: - movs r0, 0 -_0812AEBE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812AE88 - - thumb_func_start sub_812AEC4 -sub_812AEC4: @ 812AEC4 - push {r4,lr} - ldr r4, =gUnknown_0203AB34 - ldr r2, [r4] - ldrb r1, [r2, 0x4] - movs r0, 0xC0 - ands r0, r1 - strb r0, [r2, 0x4] - bl sub_812B828 - ldr r1, [r4] - ldrb r0, [r1, 0xA] - cmp r0, 0 - beq _0812AEEA - subs r0, 0x1 - strb r0, [r1, 0xA] - ldr r1, [r4] - ldrb r0, [r1, 0xB] - adds r0, 0x1 - strb r0, [r1, 0xB] -_0812AEEA: - ldr r1, [r4] - ldrh r0, [r1, 0x8] - cmp r0, 0 - beq _0812AFCC - movs r0, 0xF - strb r0, [r1] - bl sub_812BABC - bl sub_812D0B0 - ldr r2, [r4] - ldrh r0, [r2, 0x10] - ldrh r1, [r2, 0xE] - subs r0, r1 - strh r0, [r2, 0x10] - lsls r0, 16 - cmp r0, 0 - bge _0812AF12 - movs r0, 0 - strh r0, [r2, 0x10] -_0812AF12: - ldr r0, [r4] - ldrh r1, [r0, 0x8] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0812AF38 - ldr r0, =0x00000185 - bl PlayFanfare - movs r0, 0x6 - bl sub_812DEE4 - b _0812AF62 - .pool -_0812AF38: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0812AF54 - ldr r0, =0x00000185 - bl PlayFanfare - movs r0, 0x5 - bl sub_812DEE4 - b _0812AF62 - .pool -_0812AF54: - movs r0, 0xC3 - lsls r0, 1 - bl PlayFanfare - movs r0, 0x2 - bl sub_812DEE4 -_0812AF62: - ldr r2, =gUnknown_0203AB34 - ldr r3, [r2] - ldrh r1, [r3, 0x8] - movs r0, 0xE0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0812AFA6 - ldrb r1, [r3, 0x4] - movs r0, 0x3F - ands r0, r1 - movs r4, 0 - strb r0, [r3, 0x4] - ldr r3, [r2] - ldrh r1, [r3, 0x8] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0812AFA6 - strb r4, [r3, 0xA] - ldr r0, [r2] - strb r4, [r0, 0xB] - ldr r0, [r2] - strb r4, [r0, 0x3] - ldr r3, [r2] - ldrh r1, [r3, 0x8] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0812AFA6 - movs r0, 0x1 - strb r0, [r3, 0x3] -_0812AFA6: - ldr r3, [r2] - ldrh r1, [r3, 0x8] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0812AFEE - ldrb r0, [r3, 0x2] - cmp r0, 0xF - bhi _0812AFEE - adds r0, 0x1 - strb r0, [r3, 0x2] - ldr r0, [r2] - ldrb r0, [r0, 0x2] - bl sub_812D1A8 - b _0812AFEE - .pool -_0812AFCC: - movs r0, 0x3 - bl sub_812DEE4 - ldr r1, [r4] - movs r0, 0x14 - strb r0, [r1] - ldr r1, [r4] - ldrh r0, [r1, 0x12] - ldrh r2, [r1, 0x10] - adds r0, r2 - strh r0, [r1, 0x10] - lsls r0, 16 - asrs r0, 16 - ldr r2, =0x0000270f - cmp r0, r2 - ble _0812AFEE - strh r2, [r1, 0x10] -_0812AFEE: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812AEC4 - - thumb_func_start sub_812AFFC -sub_812AFFC: @ 812AFFC - push {lr} - bl sub_812BADC - lsls r0, 24 - cmp r0, 0 - beq _0812B010 - ldr r0, =gUnknown_0203AB34 - ldr r1, [r0] - movs r0, 0x10 - strb r0, [r1] -_0812B010: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812AFFC - - thumb_func_start sub_812B01C -sub_812B01C: @ 812B01C - push {r4,lr} - bl sub_812D0E0 - lsls r0, 24 - cmp r0, 0 - beq _0812B088 - ldr r4, =gUnknown_0203AB34 - ldr r1, [r4] - movs r0, 0x13 - strb r0, [r1] - ldr r0, [r4] - ldrh r1, [r0, 0x8] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0812B044 - movs r0, 0x1C - bl IncrementGameStat -_0812B044: - ldr r2, [r4] - ldrh r1, [r2, 0x8] - movs r3, 0x4 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0812B05A - movs r0, 0 - strh r0, [r2, 0x18] - movs r0, 0x9 - strb r0, [r2] -_0812B05A: - ldr r2, [r4] - ldrh r1, [r2, 0x8] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0812B06A - movs r0, 0x11 - strb r0, [r2] -_0812B06A: - ldr r1, [r4] - ldrb r0, [r1, 0xA] - cmp r0, 0 - beq _0812B088 - ldrh r1, [r1, 0x8] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0812B088 - movs r0, 0x4 - bl sub_812DEE4 - ldr r1, [r4] - movs r0, 0x12 - strb r0, [r1] -_0812B088: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B01C thumb_func_start sub_812B094 sub_812B094: @ 812B094 @@ -1439,7 +14,7 @@ sub_812B094: @ 812B094 lsls r0, 24 cmp r0, 0 bne _0812B0CC - ldr r4, =gUnknown_0203AB34 + ldr r4, =sSlotMachine ldr r1, [r4] movs r0, 0x13 strb r0, [r1] @@ -1456,7 +31,7 @@ sub_812B094: @ 812B094 cmp r0, 0 beq _0812B0CC movs r0, 0x4 - bl sub_812DEE4 + bl sub_8104CAC ldr r1, [r4] movs r0, 0x12 strb r0, [r1] @@ -1471,11 +46,11 @@ _0812B0CC: thumb_func_start sub_812B0D8 sub_812B0D8: @ 812B0D8 push {lr} - bl sub_812E054 + bl sub_8104E18 lsls r0, 24 cmp r0, 0 beq _0812B0FC - ldr r2, =gUnknown_0203AB34 + ldr r2, =sSlotMachine ldr r1, [r2] movs r0, 0x13 strb r0, [r1] @@ -1503,7 +78,7 @@ sub_812B108: @ 812B108 bl sub_812CEB8 movs r0, 0x2 bl sub_812CEB8 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r0, 0x2 strb r0, [r1] @@ -1526,7 +101,7 @@ sub_812B130: @ 812B130 ble _0812B14E movs r0, 0 strh r0, [r1, 0xA] - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r0, 0x13 strb r0, [r1] @@ -1567,7 +142,7 @@ sub_812B158: @ 812B158 movs r0, 0x15 movs r1, 0x7 bl sub_80323CC - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r0, 0x16 strb r0, [r1] @@ -1595,7 +170,7 @@ sub_812B1B0: @ 812B1B0 bl sub_812CEB8 movs r0, 0x2 bl sub_812CEB8 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] ldrh r0, [r1, 0x12] ldrh r2, [r1, 0xC] @@ -1615,7 +190,7 @@ _0812B1F8: movs r0, 0 movs r1, 0x1 bl sub_8197434 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r0, 0x5 _0812B206: @@ -1646,7 +221,7 @@ sub_812B214: @ 812B214 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r0, 0x18 strb r0, [r1] @@ -1669,7 +244,7 @@ sub_812B254: @ 812B254 movs r0, 0 movs r1, 0x1 bl sub_8197434 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r0, 0x5 strb r0, [r1] @@ -1699,7 +274,7 @@ sub_812B280: @ 812B280 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r0, 0x1A strb r0, [r1] @@ -1722,7 +297,7 @@ sub_812B2C0: @ 812B2C0 movs r0, 0 movs r1, 0x1 bl sub_8197434 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r0, 0x1B strb r0, [r1] @@ -1737,7 +312,7 @@ _0812B2DE: sub_812B2EC: @ 812B2EC push {r4,lr} sub sp, 0x4 - ldr r4, =gUnknown_0203AB34 + ldr r4, =sSlotMachine ldr r0, [r4] ldrh r0, [r0, 0xC] bl SetCoins @@ -1777,7 +352,7 @@ sub_812B32C: @ 812B32C beq _0812B340 b _0812B470 _0812B340: - ldr r6, =gUnknown_0203AB34 + ldr r6, =sSlotMachine ldr r0, [r6] ldr r0, [r0, 0x64] bl SetMainCallback2 @@ -1912,10 +487,10 @@ _0812B470: .pool thumb_func_end sub_812B32C - thumb_func_start sub_812B4EC -sub_812B4EC: @ 812B4EC + thumb_func_start sub_8102484 +sub_8102484: @ 812B4EC push {r4,lr} - ldr r4, =gUnknown_0203AB34 + ldr r4, =sSlotMachine ldr r1, [r4] ldrb r0, [r1, 0xA] cmp r0, 0 @@ -1950,7 +525,7 @@ _0812B52C: lsrs r3, r0, 24 cmp r3, 0x5 beq _0812B54A - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] ldr r1, =gUnknown_085A7804 lsls r0, r3, 1 @@ -1964,12 +539,12 @@ _0812B54A: pop {r0} bx r0 .pool - thumb_func_end sub_812B4EC + thumb_func_end sub_8102484 - thumb_func_start sub_812B55C -sub_812B55C: @ 812B55C + thumb_func_start sub_81024F0 +sub_81024F0: @ 812B55C push {lr} - ldr r2, =gUnknown_0203AB34 + ldr r2, =sSlotMachine ldr r1, [r2] movs r0, 0 strb r0, [r1, 0x6] @@ -1983,7 +558,7 @@ _0812B572: pop {r0} bx r0 .pool - thumb_func_end sub_812B55C + thumb_func_end sub_81024F0 thumb_func_start sub_812B57C sub_812B57C: @ 812B57C @@ -2023,7 +598,7 @@ sub_812B5B0: @ 812B5B0 lsls r0, 24 lsrs r0, 24 ldr r4, =gUnknown_085A76C0 - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] movs r3, 0x12 ldrsh r2, [r1, r3] @@ -2055,7 +630,7 @@ sub_812B5EC: @ 812B5EC _0812B5F2: bl Random movs r2, 0xFF - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r3, [r1] lsls r1, r5, 16 asrs r4, r1, 16 @@ -2098,7 +673,7 @@ _0812B644: bl Random movs r5, 0xFF ands r5, r0 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r4, [r0] lsls r2, r6, 16 asrs r1, r2, 16 @@ -2125,7 +700,7 @@ _0812B680: asrs r0, r2, 16 cmp r0, 0x4 bne _0812B69E - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] ldrb r0, [r0, 0x3] cmp r0, 0x1 @@ -2165,7 +740,7 @@ sub_812B6CC: @ 812B6CC push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] ldrb r0, [r2, 0x3] cmp r0, 0 @@ -2190,7 +765,7 @@ _0812B6EA: thumb_func_start sub_812B700 sub_812B700: @ 812B700 push {r4-r6,lr} - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x5] @@ -2226,7 +801,7 @@ _0812B72E: cmp r4, r0 bcs _0812B728 _0812B74E: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] strb r6, [r0, 0x5] _0812B754: @@ -2266,7 +841,7 @@ _0812B786: dp15_jump_random_unknown: @ 812B78C push {r4,r5,lr} movs r4, 0 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] movs r2, 0x10 ldrsh r1, [r0, r2] @@ -2317,7 +892,7 @@ _0812B7E8: adds r2, r5, 0x2 adds r2, r4, r2 ldr r3, =gUnknown_085A77EC - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] ldrb r1, [r1, 0xB] lsls r1, 1 @@ -2339,10 +914,10 @@ _0812B822: bx r1 thumb_func_end dp15_jump_random_unknown - thumb_func_start sub_812B828 -sub_812B828: @ 812B828 + thumb_func_start CheckMatch +CheckMatch: @ 812B828 push {r4,lr} - ldr r4, =gUnknown_0203AB34 + ldr r4, =sSlotMachine ldr r1, [r4] movs r0, 0 strh r0, [r1, 0x8] @@ -2365,7 +940,7 @@ _0812B852: pop {r0} bx r0 .pool - thumb_func_end sub_812B828 + thumb_func_end CheckMatch thumb_func_start sub_812B85C sub_812B85C: @ 812B85C @@ -2395,7 +970,7 @@ sub_812B85C: @ 812B85C lsrs r1, r0, 24 cmp r1, 0x9 beq _0812B8BC - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] ldr r0, =gUnknown_085A7828 lsls r1, 1 @@ -2448,7 +1023,7 @@ sub_812B8D0: @ 812B8D0 bne _0812B90C movs r1, 0x1 _0812B90C: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] ldr r0, =gUnknown_085A7828 lsls r1, 1 @@ -2492,7 +1067,7 @@ _0812B930: bne _0812B96A movs r1, 0x1 _0812B96A: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] ldr r0, =gUnknown_085A7828 lsls r1, 1 @@ -2543,7 +1118,7 @@ sub_812B9A0: @ 812B9A0 beq _0812B9FE cmp r1, 0 beq _0812B9F8 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] ldr r0, =gUnknown_085A7828 lsls r1, 1 @@ -2586,7 +1161,7 @@ _0812B9FE: beq _0812BA5A cmp r1, 0 beq _0812BA54 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] ldr r0, =gUnknown_085A7828 lsls r1, 1 @@ -2658,8 +1233,8 @@ _0812BAB6: bx r1 thumb_func_end sub_812BA6C - thumb_func_start sub_812BABC -sub_812BABC: @ 812BABC + thumb_func_start sub_8102A24 +sub_8102A24: @ 812BABC push {r4,lr} ldr r4, =sub_812BAFC adds r0, r4, 0 @@ -2672,10 +1247,10 @@ sub_812BABC: @ 812BABC pop {r0} bx r0 .pool - thumb_func_end sub_812BABC + thumb_func_end sub_8102A24 - thumb_func_start sub_812BADC -sub_812BADC: @ 812BADC + thumb_func_start sub_8102A44 +sub_8102A44: @ 812BADC push {lr} ldr r0, =sub_812BAFC bl FindTaskIdByFunc @@ -2691,7 +1266,7 @@ _0812BAF4: _0812BAF6: pop {r1} bx r1 - thumb_func_end sub_812BADC + thumb_func_end sub_8102A44 thumb_func_start sub_812BAFC sub_812BAFC: @ 812BAFC @@ -2732,7 +1307,7 @@ sub_812BB34: @ 812BB34 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] movs r1, 0xE ldrsh r0, [r0, r1] @@ -2771,7 +1346,7 @@ sub_812BB68: @ 812BB68 movs r0, 0x15 bl PlaySE _0812BB8E: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] ldrh r0, [r2, 0xE] subs r0, 0x1 @@ -2808,7 +1383,7 @@ _0812BBBC: beq _0812BBF6 movs r0, 0x15 bl PlaySE - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r2, [r1] ldrh r0, [r2, 0xE] ldrh r3, [r2, 0xC] @@ -2825,7 +1400,7 @@ _0812BBF0: movs r0, 0 strh r0, [r1, 0xE] _0812BBF6: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] movs r1, 0xE ldrsh r0, [r0, r1] @@ -2867,7 +1442,7 @@ sub_812BC44: @ 812BC44 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] lsls r2, r4, 1 adds r0, 0x28 @@ -2913,7 +1488,7 @@ sub_812BC98: @ 812BC98 lsls r1, 16 lsrs r5, r1, 16 movs r6, 0 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x1C @@ -2947,7 +1522,7 @@ _0812BCC2: thumb_func_start sub_812BCE8 sub_812BCE8: @ 812BCE8 push {lr} - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] movs r2, 0x16 ldrsh r1, [r1, r2] @@ -2981,7 +1556,7 @@ sub_812BD28: @ 812BD28 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r6, [r0] lsrs r5, 23 adds r4, r6, 0 @@ -3021,7 +1596,7 @@ sub_812BD70: @ 812BD70 adds r5, r0, 0 lsls r1, 16 lsrs r4, r1, 16 - ldr r7, =gUnknown_0203AB34 + ldr r7, =sSlotMachine ldr r0, [r7] lsls r6, r5, 1 adds r0, 0x1C @@ -3067,7 +1642,7 @@ _0812BDC4: thumb_func_start sub_812BDD4 sub_812BDD4: @ 812BDD4 push {r4,lr} - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r4, [r1] lsls r0, 16 asrs r0, 16 @@ -3097,7 +1672,7 @@ sub_812BE0C: @ 812BE0C push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 - ldr r5, =gUnknown_0203AB34 + ldr r5, =sSlotMachine ldr r0, [r5] movs r1, 0x14 ldrsh r0, [r0, r1] @@ -3134,8 +1709,8 @@ _0812BE4E: .pool thumb_func_end sub_812BE0C - thumb_func_start sub_812BE5C -sub_812BE5C: @ 812BE5C + thumb_func_start sub_8102DA8 +sub_8102DA8: @ 812BE5C push {r4-r6,lr} movs r4, 0 ldr r5, =sub_812BF2C @@ -3151,7 +1726,7 @@ _0812BE64: lsls r1, 3 adds r1, r6 strh r4, [r1, 0x26] - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] adds r1, 0x3A adds r1, r4 @@ -3166,15 +1741,15 @@ _0812BE64: pop {r0} bx r0 .pool - thumb_func_end sub_812BE5C + thumb_func_end sub_8102DA8 - thumb_func_start sub_812BEA4 -sub_812BEA4: @ 812BEA4 + thumb_func_start sub_8102DEC +sub_8102DEC: @ 812BEA4 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r4, =gTasks - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r2, [r1] adds r2, 0x3A adds r2, r0 @@ -3195,14 +1770,14 @@ sub_812BEA4: @ 812BEA4 pop {r0} bx r0 .pool - thumb_func_end sub_812BEA4 + thumb_func_end sub_8102DEC - thumb_func_start sub_812BEDC -sub_812BEDC: @ 812BEDC + thumb_func_start sub_8102E1C +sub_8102E1C: @ 812BEDC lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] adds r1, 0x3A adds r1, r0 @@ -3215,14 +1790,14 @@ sub_812BEDC: @ 812BEDC strh r1, [r0, 0x8] bx lr .pool - thumb_func_end sub_812BEDC + thumb_func_end sub_8102E1C - thumb_func_start sub_812BF04 -sub_812BF04: @ 812BF04 + thumb_func_start sub_8102E40 +sub_8102E40: @ 812BF04 lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] adds r1, 0x3A adds r1, r0 @@ -3236,7 +1811,7 @@ sub_812BF04: @ 812BF04 lsrs r0, 24 bx lr .pool - thumb_func_end sub_812BF04 + thumb_func_end sub_8102E40 thumb_func_start sub_812BF2C sub_812BF2C: @ 812BF2C @@ -3278,7 +1853,7 @@ sub_812BF68: @ 812BF68 ldrh r0, [r0, 0x26] lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] movs r2, 0x1A ldrsh r1, [r1, r2] @@ -3297,7 +1872,7 @@ sub_812BF88: @ 812BF88 adds r0, 0x1 movs r2, 0 strh r0, [r4, 0x8] - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r3, [r0] movs r0, 0x26 ldrsh r1, [r4, r0] @@ -3333,7 +1908,7 @@ sub_812BF88: @ 812BF88 cmp r0, 0 bne _0812BFF4 _0812BFDC: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x6] @@ -3345,7 +1920,7 @@ _0812BFDC: ldr r0, [r0] bl _call_via_r0 _0812BFF4: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r2, 0x26 ldrsh r0, [r4, r2] @@ -3370,7 +1945,7 @@ sub_812C01C: @ 812C01C mov r0, sp movs r2, 0xA bl memcpy - ldr r7, =gUnknown_0203AB34 + ldr r7, =sSlotMachine ldr r5, [r7] movs r1, 0x26 ldrsh r0, [r4, r1] @@ -3427,7 +2002,7 @@ _0812C0A0: _0812C0A4: cmp r2, 0 bne _0812C0D2 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r6, 0x26 ldrsh r0, [r4, r6] @@ -3461,7 +2036,7 @@ _0812C0D2: sub_812C0E0: @ 812C0E0 push {r4,lr} adds r2, r0, 0 - ldr r4, =gUnknown_0203AB34 + ldr r4, =sSlotMachine ldr r1, [r4] movs r3, 0x26 ldrsh r0, [r2, r3] @@ -3508,7 +2083,7 @@ _0812C12A: thumb_func_start sub_812C138 sub_812C138: @ 812C138 push {r4,r5,lr} - ldr r4, =gUnknown_0203AB34 + ldr r4, =sSlotMachine ldr r0, [r4] ldrb r0, [r0, 0x4] bl sub_812B57C @@ -3564,7 +2139,7 @@ sub_812C184: @ 812C184 cmp r0, r5 bne _0812C1BC _0812C1AC: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] strb r1, [r0, 0x7] movs r0, 0x1 @@ -3627,7 +2202,7 @@ _0812C212: thumb_func_start sub_812C218 sub_812C218: @ 812C218 push {lr} - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] ldrb r1, [r0, 0x4] movs r0, 0xC2 @@ -3669,7 +2244,7 @@ _0812C24C: lsls r0, 24 cmp r0, 0 beq _0812C278 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r0, 0x2 strh r0, [r1, 0x34] @@ -3729,7 +2304,7 @@ _0812C2C2: lsls r0, 24 cmp r0, 0 beq _0812C2E8 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] strh r7, [r0, 0x34] strh r6, [r0, 0x2E] @@ -3746,7 +2321,7 @@ _0812C2E8: _0812C2F4: movs r7, 0x1 adds r6, r5, 0 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine mov r10, r0 _0812C2FC: lsls r5, r7, 16 @@ -3838,7 +2413,7 @@ _0812C390: sub_812C3A0: @ 812C3A0 push {lr} ldr r1, =gUnknown_085A7514 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] movs r2, 0x12 ldrsh r0, [r0, r2] @@ -3857,7 +2432,7 @@ sub_812C3A0: @ 812C3A0 thumb_func_start sub_812C3C8 sub_812C3C8: @ 812C3C8 push {r4-r7,lr} - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] movs r5, 0 ldrh r7, [r0, 0x34] @@ -3871,7 +2446,7 @@ _0812C3D6: asrs r1, 16 movs r0, 0x1 bl sub_812BC98 - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] lsls r0, 24 lsrs r0, 24 @@ -3904,7 +2479,7 @@ sub_812C414: @ 812C414 lsls r0, 24 cmp r0, 0 beq _0812C476 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r2, 0x34 ldrsh r0, [r1, r2] @@ -3926,7 +2501,7 @@ _0812C43C: asrs r1, 16 movs r0, 0x1 bl sub_812BC98 - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] lsls r0, 24 lsrs r0, 24 @@ -3949,7 +2524,7 @@ _0812C472: movs r0, 0x1 b _0812C4B2 _0812C476: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] movs r1, 0x34 ldrsh r0, [r0, r1] @@ -3965,7 +2540,7 @@ _0812C486: asrs r1, 16 movs r0, 0x1 bl sub_812BC98 - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] lsls r0, 24 lsrs r0, 24 @@ -3990,7 +2565,7 @@ _0812C4B2: thumb_func_start sub_812C4BC sub_812C4BC: @ 812C4BC push {r4,lr} - ldr r2, =gUnknown_0203AB34 + ldr r2, =sSlotMachine ldr r0, [r2] ldrb r3, [r0, 0x7] adds r4, r3, 0 @@ -4029,7 +2604,7 @@ sub_812C500: @ 812C500 push {r7} lsls r0, 24 lsrs r7, r0, 24 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] movs r5, 0 ldrh r1, [r0, 0x36] @@ -4048,7 +2623,7 @@ _0812C518: lsrs r0, 24 cmp r0, r7 bne _0812C544 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] mov r1, r8 strh r1, [r0, 0x38] @@ -4079,7 +2654,7 @@ sub_812C55C: @ 812C55C push {r7} lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] movs r2, 0x34 ldrsh r1, [r0, r2] @@ -4094,7 +2669,7 @@ sub_812C55C: @ 812C55C b _0812C5D2 .pool _0812C588: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] strh r5, [r0, 0x32] mov r1, r8 @@ -4156,7 +2731,7 @@ _0812C5E8: lsls r0, 24 cmp r0, 0 bne _0812C5E2 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] strh r5, [r0, 0x2E] pop {r4,r5} @@ -4193,7 +2768,7 @@ _0812C624: sub_812C628: @ 812C628 push {lr} ldr r1, =gUnknown_085A752C - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] movs r2, 0x12 ldrsh r0, [r0, r2] @@ -4211,7 +2786,7 @@ sub_812C628: @ 812C628 sub_812C64C: @ 812C64C push {r4-r7,lr} sub sp, 0x4 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] movs r1, 0x34 ldrsh r0, [r2, r1] @@ -4252,7 +2827,7 @@ _0812C68C: lsrs r0, 24 cmp r1, r0 bne _0812C6B8 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] movs r0, 0x2 strh r0, [r1, 0x36] @@ -4277,7 +2852,7 @@ _0812C6C4: j5_08111E84: @ 812C6CC push {r4-r7,lr} sub sp, 0x4 - ldr r4, =gUnknown_0203AB34 + ldr r4, =sSlotMachine ldr r2, [r4] ldrh r3, [r2, 0x34] movs r1, 0x34 @@ -4344,7 +2919,7 @@ _0812C744: sub_812C74C: @ 812C74C push {r4-r7,lr} sub sp, 0x4 - ldr r6, =gUnknown_0203AB34 + ldr r6, =sSlotMachine ldr r2, [r6] ldrh r4, [r2, 0x34] movs r0, 0x34 @@ -4362,7 +2937,7 @@ sub_812C74C: @ 812C74C b _0812C84A .pool _0812C778: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] movs r1, 0 strh r5, [r0, 0x36] @@ -4426,7 +3001,7 @@ _0812C7C6: ble _0812C7C6 movs r5, 0x1 mov r7, sp - ldr r6, =gUnknown_0203AB34 + ldr r6, =sSlotMachine _0812C7F8: ldr r0, [r6] ldrh r1, [r0, 0x34] @@ -4590,7 +3165,7 @@ _0812C8F8: sub_812C8FC: @ 812C8FC push {lr} ldr r1, =gUnknown_085A7538 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] movs r2, 0x12 ldrsh r0, [r0, r2] @@ -4608,7 +3183,7 @@ sub_812C8FC: @ 812C8FC sub_812C920: @ 812C920 push {r4-r7,lr} movs r6, 0 - ldr r7, =gUnknown_0203AB34 + ldr r7, =sSlotMachine ldr r0, [r7] ldrh r1, [r0, 0x2E] movs r4, 0x2 @@ -4714,7 +3289,7 @@ _0812C9DE: cmp r5, r0 beq _0812C9D8 _0812C9F6: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] strh r6, [r0, 0x32] pop {r4-r7} @@ -4733,7 +3308,7 @@ sub_812CA08: @ 812CA08 sub sp, 0x4 movs r0, 0 str r0, [sp] - ldr r4, =gUnknown_0203AB34 + ldr r4, =sSlotMachine ldr r2, [r4] movs r5, 0x36 ldrsh r1, [r2, r5] @@ -4785,7 +3360,7 @@ _0812CA7E: asrs r5, r6, 16 cmp r5, 0x4 bgt _0812CAA4 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] ldrh r1, [r0, 0x36] subs r1, r5 @@ -4800,7 +3375,7 @@ _0812CA7E: lsrs r6, 16 str r6, [sp] _0812CAA4: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine mov r9, r0 _0812CAA8: movs r5, 0x1 @@ -4894,7 +3469,7 @@ _0812CB4A: str r0, [sp] b _0812CAA8 _0812CB60: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] mov r5, sp ldrh r5, [r5] @@ -4916,7 +3491,7 @@ sub_812CB80: @ 812CB80 mov r7, r8 push {r7} bl sub_812CA08 - ldr r4, =gUnknown_0203AB34 + ldr r4, =sSlotMachine ldr r2, [r4] movs r0, 0x36 ldrsh r1, [r2, r0] @@ -4999,7 +3574,7 @@ _0812CC28: cmp r0, 0x4 ble _0812CBF6 _0812CC34: - ldr r7, =gUnknown_0203AB34 + ldr r7, =sSlotMachine _0812CC36: ldr r0, [r7] ldrh r0, [r0, 0x2E] @@ -5059,7 +3634,7 @@ _0812CCA4: b _0812CC36 .pool _0812CCB4: - ldr r7, =gUnknown_0203AB34 + ldr r7, =sSlotMachine _0812CCB6: ldr r0, [r7] ldrh r0, [r0, 0x2E] @@ -5126,8 +3701,8 @@ _0812CD34: bx r0 thumb_func_end sub_812CB80 - thumb_func_start sub_812CD40 -sub_812CD40: @ 812CD40 + thumb_func_start sub_8103C14 +sub_8103C14: @ 812CD40 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 @@ -5149,7 +3724,7 @@ sub_812CD40: @ 812CD40 pop {r0} bx r0 .pool - thumb_func_end sub_812CD40 + thumb_func_end sub_8103C14 thumb_func_start sub_812CD74 sub_812CD74: @ 812CD74 @@ -5290,8 +3865,8 @@ sub_812CE54: @ 812CE54 .pool thumb_func_end sub_812CE54 - thumb_func_start sub_812CE7C -sub_812CE7C: @ 812CE7C + thumb_func_start sub_8103D50 +sub_8103D50: @ 812CE7C push {r4-r7,lr} lsls r0, 24 lsrs r1, r0, 24 @@ -5319,7 +3894,7 @@ _0812CEA8: pop {r0} bx r0 .pool - thumb_func_end sub_812CE7C + thumb_func_end sub_8103D50 thumb_func_start sub_812CEB8 sub_812CEB8: @ 812CEB8 @@ -5352,8 +3927,8 @@ _0812CEE4: .pool thumb_func_end sub_812CEB8 - thumb_func_start sub_812CEF4 -sub_812CEF4: @ 812CEF4 + thumb_func_start sub_8103DC8 +sub_8103DC8: @ 812CEF4 push {r4,r5,lr} movs r4, 0 ldr r5, =gSprites @@ -5367,7 +3942,7 @@ _0812CEFA: lsls r1, 2 adds r1, r5 strh r4, [r1, 0x2E] - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] adds r1, 0x44 adds r1, r4 @@ -5381,13 +3956,13 @@ _0812CEFA: pop {r0} bx r0 .pool - thumb_func_end sub_812CEF4 + thumb_func_end sub_8103DC8 thumb_func_start sub_812CF34 sub_812CF34: @ 812CF34 lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] adds r1, 0x44 adds r1, r0 @@ -5415,7 +3990,7 @@ sub_812CF34: @ 812CF34 sub_812CF6C: @ 812CF6C push {r4,r5,lr} movs r2, 0 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r3, r0, 0 adds r3, 0x44 @@ -5456,7 +4031,7 @@ sub_812CFB8: @ 812CFB8 push {r4,lr} movs r4, 0 _0812CFBC: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x44 adds r0, r4 @@ -5591,8 +4166,8 @@ _0812D0A6: .pool thumb_func_end sub_812D024 - thumb_func_start sub_812D0B0 -sub_812D0B0: @ 812D0B0 + thumb_func_start sub_8103F70 +sub_8103F70: @ 812D0B0 push {r4,lr} ldr r4, =sub_812D128 adds r0, r4, 0 @@ -5612,10 +4187,10 @@ sub_812D0B0: @ 812D0B0 pop {r0} bx r0 .pool - thumb_func_end sub_812D0B0 + thumb_func_end sub_8103F70 - thumb_func_start sub_812D0E0 -sub_812D0E0: @ 812D0E0 + thumb_func_start sub_8103FA0 +sub_8103FA0: @ 812D0E0 push {lr} ldr r0, =sub_812D128 bl FindTaskIdByFunc @@ -5646,7 +4221,7 @@ _0812D120: pop {r1} bx r1 .pool - thumb_func_end sub_812D0E0 + thumb_func_end sub_8103FA0 thumb_func_start sub_812D128 sub_812D128: @ 812D128 @@ -5697,25 +4272,25 @@ _0812D166: .pool thumb_func_end sub_812D128 - thumb_func_start sub_812D188 -sub_812D188: @ 812D188 + thumb_func_start sub_8104048 +sub_8104048: @ 812D188 push {lr} ldr r0, =sub_812D230 movs r1, 0x8 bl CreateTask - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] adds r1, 0x3E strb r0, [r1] pop {r0} bx r0 .pool - thumb_func_end sub_812D188 + thumb_func_end sub_8104048 - thumb_func_start sub_812D1A8 -sub_812D1A8: @ 812D1A8 + thumb_func_start sub_8104064 +sub_8104064: @ 812D1A8 push {r4,lr} - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x3E ldrb r0, [r0] @@ -5736,12 +4311,12 @@ sub_812D1A8: @ 812D1A8 pop {r0} bx r0 .pool - thumb_func_end sub_812D1A8 + thumb_func_end sub_8104064 thumb_func_start sub_812D1DC sub_812D1DC: @ 812D1DC push {r4,lr} - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x3E ldrb r0, [r0] @@ -5765,7 +4340,7 @@ sub_812D1DC: @ 812D1DC thumb_func_start sub_812D20C sub_812D20C: @ 812D20C ldr r2, =gTasks - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x3E ldrb r1, [r0] @@ -5987,8 +4562,8 @@ _0812D39E: bx r0 thumb_func_end sub_812D394 - thumb_func_start sub_812D3B4 -sub_812D3B4: @ 812D3B4 + thumb_func_start sub_810423C +sub_810423C: @ 812D3B4 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 @@ -6095,7 +4670,7 @@ _0812D448: ble _0812D428 _0812D484: ldr r2, =gTasks - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x3E ldrb r1, [r0] @@ -6108,10 +4683,10 @@ _0812D484: pop {r0} bx r0 .pool - thumb_func_end sub_812D3B4 + thumb_func_end sub_810423C - thumb_func_start sub_812D4AC -sub_812D4AC: @ 812D4AC + thumb_func_start sub_810430C +sub_810430C: @ 812D4AC push {r4,lr} ldr r4, =sub_812D4EC adds r0, r4, 0 @@ -6124,10 +4699,10 @@ sub_812D4AC: @ 812D4AC pop {r0} bx r0 .pool - thumb_func_end sub_812D4AC + thumb_func_end sub_810430C - thumb_func_start sub_812D4CC -sub_812D4CC: @ 812D4CC + thumb_func_start sub_810432C +sub_810432C: @ 812D4CC push {lr} ldr r0, =sub_812D4EC bl FindTaskIdByFunc @@ -6143,7 +4718,7 @@ _0812D4E4: _0812D4E6: pop {r1} bx r1 - thumb_func_end sub_812D4CC + thumb_func_end sub_810432C thumb_func_start sub_812D4EC sub_812D4EC: @ 812D4EC @@ -6171,7 +4746,7 @@ sub_812D4EC: @ 812D4EC thumb_func_start sub_812D51C sub_812D51C: @ 812D51C push {lr} - ldr r3, =gUnknown_0203AB34 + ldr r3, =sSlotMachine ldr r1, [r3] movs r2, 0 strb r2, [r1, 0xA] @@ -6343,7 +4918,7 @@ sub_812D63C: @ 812D63C movs r1, 0 ldrsh r0, [r6, r1] bl sub_812EBAC - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x3F ldrb r1, [r0] @@ -6400,7 +4975,7 @@ sub_812D6EC: @ 812D6EC strh r0, [r4, 0x12] movs r0, 0x2 bl sub_812EBAC - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x3F ldrb r1, [r0] @@ -6467,7 +5042,7 @@ sub_812D774: @ 812D774 ble _0812D7DC movs r0, 0 strh r0, [r4, 0x12] - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] ldrb r0, [r1, 0x5] cmp r0, 0 @@ -6512,7 +5087,7 @@ _0812D7DC: sub_812D7E4: @ 812D7E4 push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gUnknown_0203AB34 + ldr r6, =sSlotMachine ldr r0, [r6] movs r1, 0x14 ldrsh r0, [r0, r1] @@ -6559,7 +5134,7 @@ _0812D842: bne _0812D866 movs r0, 0x1 bl sub_812BCE8 - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] lsls r0, 24 lsrs r0, 24 @@ -6595,7 +5170,7 @@ sub_812D870: @ 812D870 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] - ldr r5, =gUnknown_0203AB34 + ldr r5, =sSlotMachine ldr r1, [r5] ldrb r0, [r1, 0x5] cmp r0, 0 @@ -6731,7 +5306,7 @@ _0812D99E: sub_812D9A4: @ 812D9A4 push {r4-r6,lr} adds r5, r0, 0 - ldr r4, =gUnknown_0203AB34 + ldr r4, =sSlotMachine ldr r0, [r4] movs r6, 0 strb r6, [r0, 0xB] @@ -6766,7 +5341,7 @@ sub_812D9A4: @ 812D9A4 .pool _0812DA04: movs r0, 0x4 - bl sub_812DEE4 + bl sub_8104CAC bl dp15_jump_random_unknown strh r0, [r5, 0xA] strh r6, [r5, 0xC] @@ -6784,7 +5359,7 @@ _0812DA1A: sub_812DA20: @ 812DA20 push {r4,r5,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r5, [r0] movs r0, 0x1A ldrsh r1, [r5, r0] @@ -6825,7 +5400,7 @@ _0812DA66: thumb_func_start sub_812DA6C sub_812DA6C: @ 812DA6C push {lr} - bl sub_812E054 + bl sub_8104E18 lsls r0, 24 cmp r0, 0 beq _0812DA86 @@ -6849,7 +5424,7 @@ sub_812DA90: @ 812DA90 bl sub_812EBCC bl sub_812EC20 ldr r5, =gSprites - ldr r3, =gUnknown_0203AB34 + ldr r3, =sSlotMachine ldr r0, [r3] adds r0, 0x4E ldrb r1, [r0] @@ -6929,7 +5504,7 @@ _0812DB3C: bl sub_812E5A8 bl sub_812EDC0 ldr r2, =gSprites - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x4E ldrb r1, [r0] @@ -6988,7 +5563,7 @@ sub_812DBBC: @ 812DBBC movs r0, 0x14 movs r1, 0 bl SetGpuReg - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x60 ldrh r0, [r0] @@ -7071,8 +5646,8 @@ _0812DC58: .pool thumb_func_end sub_812DC50 - thumb_func_start sub_812DC80 -sub_812DC80: @ 812DC80 + thumb_func_start sub_8104AB8 +sub_8104AB8: @ 812DC80 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 @@ -7094,10 +5669,10 @@ sub_812DC80: @ 812DC80 pop {r0} bx r0 .pool - thumb_func_end sub_812DC80 + thumb_func_end sub_8104AB8 - thumb_func_start sub_812DCB4 -sub_812DCB4: @ 812DCB4 + thumb_func_start sub_8104AEC +sub_8104AEC: @ 812DCB4 push {lr} ldr r0, =sub_812DCD4 bl FindTaskIdByFunc @@ -7113,7 +5688,7 @@ _0812DCCC: _0812DCCE: pop {r1} bx r1 - thumb_func_end sub_812DCB4 + thumb_func_end sub_8104AEC thumb_func_start sub_812DCD4 sub_812DCD4: @ 812DCD4 @@ -7182,7 +5757,7 @@ _0812DD3E: sub_812DD48: @ 812DD48 push {r4,lr} adds r4, r0, 0 - bl sub_812DFDC + bl sub_8104DA4 bl sub_812FAF4 ldr r0, =gUnknown_085A7444 bl AddWindow @@ -7295,7 +5870,7 @@ sub_812DE30: @ 812DE30 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0xA] - bl sub_812DEE4 + bl sub_8104CAC ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -7309,10 +5884,10 @@ sub_812DE48: @ 812DE48 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] ldrb r0, [r0, 0x2] - bl sub_812D3B4 + bl sub_810423C movs r0, 0x1 negs r0, r0 movs r1, 0 @@ -7343,15 +5918,15 @@ sub_812DE7C: @ 812DE7C .pool thumb_func_end sub_812DE7C - thumb_func_start sub_812DE94 -sub_812DE94: @ 812DE94 + thumb_func_start sub_8104C5C +sub_8104C5C: @ 812DE94 push {lr} ldr r0, =sub_812E0B0 movs r1, 0x3 bl CreateTask lsls r0, 24 lsrs r1, r0, 24 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x3D strb r1, [r0] @@ -7378,18 +5953,18 @@ _0812DEC0: pop {r0} bx r0 .pool - thumb_func_end sub_812DE94 + thumb_func_end sub_8104C5C - thumb_func_start sub_812DEE4 -sub_812DEE4: @ 812DEE4 + thumb_func_start sub_8104CAC +sub_8104CAC: @ 812DEE4 push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_812DFDC - ldr r0, =gUnknown_0203AB34 + bl sub_8104DA4 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x3D ldrb r1, [r0] @@ -7443,7 +6018,7 @@ _0812DF52: pop {r0} bx r0 .pool - thumb_func_end sub_812DEE4 + thumb_func_end sub_8104CAC thumb_func_start sub_812DF68 sub_812DF68: @ 812DF68 @@ -7455,7 +6030,7 @@ sub_812DF68: @ 812DF68 ldr r4, [sp, 0x1C] lsls r0, 24 lsrs r7, r0, 24 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x3D ldrb r1, [r0] @@ -7505,10 +6080,10 @@ _0812DFCE: bx r0 thumb_func_end sub_812DF68 - thumb_func_start sub_812DFDC -sub_812DFDC: @ 812DFDC + thumb_func_start sub_8104DA4 +sub_8104DA4: @ 812DFDC push {r4-r6,lr} - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x3D ldrb r1, [r0] @@ -7558,12 +6133,12 @@ _0812E02E: pop {r0} bx r0 .pool - thumb_func_end sub_812DFDC + thumb_func_end sub_8104DA4 - thumb_func_start sub_812E054 -sub_812E054: @ 812E054 + thumb_func_start sub_8104E18 +sub_8104E18: @ 812E054 push {r4,r5,lr} - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x3D ldrb r1, [r0] @@ -7605,7 +6180,7 @@ _0812E0A8: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_812E054 + thumb_func_end sub_8104E18 thumb_func_start sub_812E0B0 sub_812E0B0: @ 812E0B0 @@ -7635,8 +6210,8 @@ nullsub_51: @ 812E0E0 bx lr thumb_func_end nullsub_51 - thumb_func_start sub_812E0E4 -sub_812E0E4: @ 812E0E4 + thumb_func_start sub_8104EA8 +sub_8104EA8: @ 812E0E4 push {r4-r7,lr} movs r6, 0 movs r0, 0x30 @@ -7688,13 +6263,13 @@ _0812E0F0: pop {r0} bx r0 .pool - thumb_func_end sub_812E0E4 + thumb_func_end sub_8104EA8 thumb_func_start sub_812E154 sub_812E154: @ 812E154 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r4, [r0] movs r1, 0x2E ldrsh r0, [r5, r1] @@ -7746,8 +6321,8 @@ sub_812E154: @ 812E154 .pool thumb_func_end sub_812E154 - thumb_func_start sub_812E1C8 -sub_812E1C8: @ 812E1C8 + thumb_func_start sub_8104F8C +sub_8104F8C: @ 812E1C8 push {r4-r6,lr} movs r4, 0xCB movs r5, 0x1 @@ -7799,7 +6374,7 @@ _0812E1FE: pop {r0} bx r0 .pool - thumb_func_end sub_812E1C8 + thumb_func_end sub_8104F8C thumb_func_start sub_812E230 sub_812E230: @ 812E230 @@ -7862,7 +6437,7 @@ sub_812E230: @ 812E230 sub_812E2A8: @ 812E2A8 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] ldrh r2, [r1, 0xC] movs r3, 0x2E @@ -7903,8 +6478,8 @@ _0812E2F6: .pool thumb_func_end sub_812E2A8 - thumb_func_start sub_812E300 -sub_812E300: @ 812E300 + thumb_func_start sub_81050C4 +sub_81050C4: @ 812E300 push {lr} ldr r0, =gUnknown_085A7D10 movs r1, 0x58 @@ -7928,7 +6503,7 @@ sub_812E300: @ 812E300 pop {r0} bx r0 .pool - thumb_func_end sub_812E300 + thumb_func_end sub_81050C4 thumb_func_start sub_812E33C sub_812E33C: @ 812E33C @@ -7999,7 +6574,7 @@ _0812E350: movs r3, 0x2 orrs r1, r3 strb r1, [r2] - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] adds r1, 0x3F strb r0, [r1] @@ -8013,7 +6588,7 @@ _0812E350: thumb_func_start sub_812E3E8 sub_812E3E8: @ 812E3E8 push {r4,lr} - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x3F ldrb r1, [r0] @@ -8148,7 +6723,7 @@ _0812E490: ldr r1, =gUnknown_085A7FE0 adds r0, r2, 0 bl SetSubspriteTables - ldr r5, =gUnknown_0203AB34 + ldr r5, =sSlotMachine ldr r0, [r5] adds r0, 0x49 strb r4, [r0] @@ -8280,7 +6855,7 @@ _0812E5BC: strb r1, [r3] ldr r1, =gUnknown_085A8010 bl SetSubspriteTables - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x42 strb r4, [r0] @@ -8327,7 +6902,7 @@ _0812E656: mov r2, r12 strb r1, [r2] strh r5, [r3, 0x3C] - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] adds r1, 0x4B adds r1, r4 @@ -8352,7 +6927,7 @@ _0812E656: sub_812E6C4: @ 812E6C4 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r1, [r0] ldrh r0, [r4, 0x3C] ldrh r1, [r1, 0x14] @@ -8426,7 +7001,7 @@ sub_812E70C: @ 812E70C adds r0, r2, 0 mov r1, r9 bl SetSubspriteTables - ldr r6, =gUnknown_0203AB34 + ldr r6, =sSlotMachine ldr r0, [r6] adds r0, 0x4E strb r4, [r0] @@ -8502,7 +7077,7 @@ sub_812E7CC: @ 812E7CC strb r1, [r0, 0x5] ldr r1, =gUnknown_085A803C bl SetSubspriteTables - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x40 strb r4, [r0] @@ -8515,7 +7090,7 @@ sub_812E7CC: @ 812E7CC thumb_func_start sub_812E82C sub_812E82C: @ 812E82C push {r4,lr} - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x40 ldrb r1, [r0] @@ -8527,7 +7102,7 @@ sub_812E82C: @ 812E82C bl DestroySprite movs r4, 0 _0812E846: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x49 adds r0, r4 @@ -8561,7 +7136,7 @@ _0812E878: _0812E888: movs r4, 0 _0812E88A: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x4B adds r0, r4 @@ -8588,7 +7163,7 @@ sub_812E8C4: @ 812E8C4 push {r4,lr} movs r4, 0 _0812E8C8: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x4E adds r0, r4 @@ -8613,7 +7188,7 @@ _0812E8C8: thumb_func_start sub_812E8F8 sub_812E8F8: @ 812E8F8 push {r4,lr} - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x42 ldrb r1, [r0] @@ -8674,7 +7249,7 @@ sub_812E934: @ 812E934 movs r2, 0x1 orrs r1, r2 strb r1, [r5] - ldr r6, =gUnknown_0203AB34 + ldr r6, =sSlotMachine ldr r1, [r6] adds r1, 0x50 strb r0, [r1] @@ -8780,7 +7355,7 @@ sub_812EA44: @ 812EA44 lsls r0, 16 lsrs r0, 16 ldr r4, =gSprites - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r3, [r1] adds r1, r3, 0 adds r1, 0x50 @@ -8808,7 +7383,7 @@ sub_812EA7C: @ 812EA7C push {r4,lr} movs r4, 0 _0812EA80: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x50 adds r0, r4 @@ -8866,7 +7441,7 @@ sub_812EAB0: @ 812EAB0 strh r1, [r2, 0x3A] movs r1, 0x8 strh r1, [r2, 0x3C] - ldr r5, =gUnknown_0203AB34 + ldr r5, =sSlotMachine ldr r1, [r5] adds r1, 0x52 strb r0, [r1] @@ -8953,7 +7528,7 @@ _0812EB9A: thumb_func_start sub_812EBAC sub_812EBAC: @ 812EBAC ldr r3, =gSprites - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] adds r1, 0x52 ldrb r2, [r1] @@ -8982,7 +7557,7 @@ sub_812EBCC: @ 812EBCC bl MultiplyInvertedPaletteRGBComponents movs r4, 0 _0812EBEA: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x52 adds r0, r4 @@ -9026,7 +7601,7 @@ sub_812EC20: @ 812EC20 movs r3, 0x4 orrs r2, r3 strb r2, [r1, 0x5] - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] adds r1, 0x41 strb r0, [r1] @@ -9047,7 +7622,7 @@ sub_812EC64: @ 812EC64 thumb_func_start sub_812EC70 sub_812EC70: @ 812EC70 push {lr} - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x41 ldrb r1, [r0] @@ -9109,7 +7684,7 @@ _0812ECA4: add r1, sp ldrh r1, [r1] strh r1, [r3, 0x2E] - ldr r1, =gUnknown_0203AB34 + ldr r1, =sSlotMachine ldr r1, [r1] adds r1, 0x54 adds r1, r4 @@ -9188,7 +7763,7 @@ sub_812ED8C: @ 812ED8C push {r4,lr} movs r4, 0 _0812ED90: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x54 adds r0, r4 @@ -9238,7 +7813,7 @@ sub_812EDC0: @ 812EDC0 orrs r1, r2 strb r1, [r0, 0x1] bl InitSpriteAffineAnim - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x43 strb r4, [r0] @@ -9331,7 +7906,7 @@ _0812EE90: thumb_func_start sub_812EEA8 sub_812EEA8: @ 812EEA8 ldr r2, =gSprites - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x43 ldrb r1, [r0] @@ -9349,7 +7924,7 @@ sub_812EEA8: @ 812EEA8 thumb_func_start sub_812EECC sub_812EECC: @ 812EECC push {r4,lr} - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] adds r0, 0x43 ldrb r0, [r0] @@ -9817,7 +8392,7 @@ _0812F238: .4byte _0812F2AC .4byte _0812F2C2 _0812F250: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r0, [r0] ldrb r1, [r0, 0xA] subs r1, 0x1 @@ -10378,7 +8953,7 @@ _0812F660: beq _0812F71C b _0812F76C _0812F66A: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] adds r1, r2, 0 adds r1, 0x5C @@ -10422,7 +8997,7 @@ _0812F6B0: movs r0, 0xD0 strh r0, [r5, 0x34] _0812F6BC: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] ldrh r0, [r5, 0x32] lsls r0, 8 @@ -10438,7 +9013,7 @@ _0812F6BC: b _0812F75E .pool _0812F6E0: - ldr r6, =gUnknown_0203AB34 + ldr r6, =sSlotMachine ldr r0, [r6] movs r1, 0x12 ldrsh r0, [r0, r1] @@ -10490,7 +9065,7 @@ _0812F738: movs r0, 0xD0 strh r0, [r5, 0x34] _0812F744: - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] ldrh r0, [r5, 0x32] lsls r0, 8 @@ -10559,7 +9134,7 @@ sub_812F794: @ 812F794 thumb_func_start sub_812F7C0 sub_812F7C0: @ 812F7C0 - ldr r0, =gUnknown_0203AB34 + ldr r0, =sSlotMachine ldr r2, [r0] adds r1, r2, 0 adds r1, 0x58 @@ -10955,8 +9530,8 @@ sub_812FAF4: @ 812FAF4 .pool thumb_func_end sub_812FAF4 - thumb_func_start sub_812FB14 -sub_812FB14: @ 812FB14 + thumb_func_start SlotMachineSetup_9_0 +SlotMachineSetup_9_0: @ 812FB14 ldr r1, =gUnknown_03001188 ldr r0, =gUnknown_0203AAF4 ldr r0, [r0] @@ -11015,10 +9590,10 @@ sub_812FB14: @ 812FB14 str r0, [r1, 0x64] bx lr .pool - thumb_func_end sub_812FB14 + thumb_func_end SlotMachineSetup_9_0 - thumb_func_start sub_812FBC4 -sub_812FBC4: @ 812FBC4 + thumb_func_start SlotMachineSetup_8_0 +SlotMachineSetup_8_0: @ 812FBC4 push {r4-r6,lr} mov r6, r8 push {r6} @@ -11218,6 +9793,6 @@ sub_812FBC4: @ 812FBC4 pop {r0} bx r0 .pool - thumb_func_end sub_812FBC4 + thumb_func_end SlotMachineSetup_8_0 .align 2, 0 @ Don't pad with nop. diff --git a/include/slot_machine.h b/include/slot_machine.h index 8334e56fcf..88bbbd91bd 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -1,6 +1,6 @@ #ifndef GUARD_SLOT_MACHINE_H #define GUARD_SLOT_MACHINE_H -void PlaySlotMachine(u8, void *); +void PlaySlotMachine(u8, void (callback)(void)); #endif // GUARD_SLOT_MACHINE_H diff --git a/ld_script.txt b/ld_script.txt index f5bfdd598a..c7be8bd4cb 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -167,6 +167,7 @@ SECTIONS { src/region_map.o(.text); asm/cute_sketch.o(.text); src/decoration.o(.text); + src/slot_machine.o(.text); asm/slot_machine.o(.text); asm/contest_painting.o(.text); src/battle_ai_script_commands.o(.text); @@ -460,6 +461,7 @@ SECTIONS { src/region_map.o(.rodata); data/cute_sketch.o(.rodata); src/decoration.o(.rodata); + src/slot_machine.o(.rodata); data/slot_machine.o(.rodata); data/contest_painting.o(.rodata); src/battle_ai_script_commands.o(.rodata); diff --git a/src/slot_machine.c b/src/slot_machine.c new file mode 100644 index 0000000000..02e842ce92 --- /dev/null +++ b/src/slot_machine.c @@ -0,0 +1,887 @@ +#include "global.h" +#include "constants/songs.h" +#include "overworld.h" +#include "field_effect.h" +#include "random.h" +#include "sound.h" +#include "main.h" +#include "slot_machine.h" +#include "string_util.h" +#include "decompress.h" +#include "trig.h" +#include "graphics.h" +#include "palette.h" +#include "util.h" +#include "text.h" +#include "menu.h" +#include "malloc.h" +#include "bg.h" +#include "gpu_regs.h" +#include "coins.h" +#include "tv.h" +#include "text_window.h" +#include "constants/rgb.h" +#include "menu.h" + +enum +{ + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_REPLAY +}; + +enum +{ + SLOT_MACHINE_MATCHED_1CHERRY, + SLOT_MACHINE_MATCHED_2CHERRY, + SLOT_MACHINE_MATCHED_REPLAY, + SLOT_MACHINE_MATCHED_LOTAD, + SLOT_MACHINE_MATCHED_AZURILL, + SLOT_MACHINE_MATCHED_POWER, + SLOT_MACHINE_MATCHED_777_MIXED, + SLOT_MACHINE_MATCHED_777_RED, + SLOT_MACHINE_MATCHED_777_BLUE, + SLOT_MACHINE_MATCHED_NONE +}; + +struct SlotMachineEwramStruct +{ + /*0x00*/ u8 state; + /*0x01*/ u8 unk01; + /*0x02*/ u8 pikaPower; + /*0x03*/ u8 unk03; + /*0x04*/ u8 unk04; + /*0x05*/ u8 unk05; + /*0x06*/ u8 unk06; + /*0x07*/ u8 unk07; + /*0x08*/ u16 matchedSymbols; + /*0x0A*/ u8 unk0A; + /*0x0B*/ u8 unk0B; + /*0x0C*/ s16 coins; + /*0x0E*/ s16 payout; + /*0x10*/ s16 unk10; + /*0x12*/ s16 bet; + /*0x14*/ s16 unk14; + /*0x16*/ s16 unk16; + /*0x18*/ s16 unk18; + /*0x1A*/ s16 unk1A; + /*0x1C*/ s16 unk1C[3]; + /*0x22*/ u16 unk22[3]; + /*0x28*/ s16 reelPositions[3]; + /*0x2E*/ s16 unk2E[3]; + /*0x34*/ s16 unk34[3]; + /*0x3A*/ u8 reelTasks[3]; + /*0x3D*/ u8 unk3D; + /*0x3E*/ u8 unk3E; + /*0x3F*/ u8 unk3F; + /*0x40*/ u8 unk40; + /*0x41*/ u8 unk41; + /*0x42*/ u8 unk42; + /*0x43*/ u8 unk43; + /*0x44*/ u8 unk44[5]; + /*0x49*/ u8 unk49[2]; + /*0x49*/ u8 unk4B[3]; + /*0x4E*/ u8 unk4E[2]; + /*0x50*/ u8 unk50[2]; + /*0x52*/ u8 unk52[2]; + /*0x54*/ u8 unk54[4]; + /*0x58*/ u16 win0h; + /*0x5a*/ u16 win0v; + /*0x5c*/ u16 winIn; + /*0x5e*/ u16 winOut; + /*0x60*/ u16 backupMapMusic; + /*0x64*/ MainCallback prevMainCb; +}; + +extern struct SlotMachineEwramStruct *sSlotMachine; + +struct UnkStruct1 +{ + /*0x00*/ u8 unk00; + /*0x01*/ u8 unk01; + /*0x02*/ s16 unk02; +}; + +#define SLOTMACHINE_GFX_TILES 233 + +/*static*/void CB2_SlotMachineSetup(void); +/*static*/void CB2_SlotMachineLoop(void); +/*static*/void PlaySlotMachine_Internal(u8 arg0, MainCallback cb); +/*static*/void SlotMachineDummyTask(u8 taskId); +/*static*/void SlotMachineSetup_0_0(void); +/*static*/void SlotMachineSetup_6_2(void); +/*static*/void SlotMachineSetup_1_0(void); +/*static*/void SlotMachineSetup_2_0(void); +/*static*/void SlotMachineSetup_2_1(void); +/*static*/void SlotMachineSetup_0_1(void); +/*static*/void SlotMachineSetup_3_0(void); +/*static*/void SlotMachineSetup_4_0(void); +/*static*/void SlotMachineSetup_5_0(void); +/*static*/void SlotMachineSetup_6_0(void); +/*static*/void SlotMachineSetup_6_1(void); +/*static*/void SlotMachineSetup_8_0(void); +/*static*/void SlotMachineSetup_9_0(void); +/*static*/void SlotMachineSetup_10_0(void); +/*static*/void SlotMachineSetup_10_1(void); +/*static*/void sub_8101D04(void); +/*static*/void sub_8104DA4(void); +/*static*/void sub_8101D24(u8 taskId); +/*static*/bool8 sub_8101D5C(struct Task *task); +/*static*/bool8 sub_8101D8C(struct Task *task); +/*static*/bool8 sub_8101DB0(struct Task *task); +/*static*/bool8 sub_8101DF4(struct Task *task); +/*static*/bool8 sub_8101E10(struct Task *task); +/*static*/bool8 sub_8101E3C(struct Task *task); +/*static*/bool8 sub_8101F44(struct Task *task); +/*static*/bool8 sub_8101F60(struct Task *task); +/*static*/bool8 sub_8101F88(struct Task *task); +/*static*/bool8 sub_8101FA4(struct Task *task); +/*static*/bool8 sub_8102008(struct Task *task); +/*static*/bool8 sub_8102034(struct Task *task); +/*static*/bool8 sub_8102058(struct Task *task); +/*static*/bool8 sub_8102090(struct Task *task); +bool8 sub_81020C8(struct Task *task); +/*static*/bool8 sub_81021E0(struct Task *task); +/*static*/bool8 sub_81021FC(struct Task *task); +/*static*/bool8 sub_8102264(struct Task *task); +/*static*/bool8 sub_81022A0(struct Task *task); +/*static*/bool8 sub_81022CC(struct Task *task); +/*static*/bool8 sub_81022F0(struct Task *task); +/*static*/bool8 sub_8102318(struct Task *task); +/*static*/bool8 sub_8102344(struct Task *task); +/*static*/bool8 sub_810239C(struct Task *task); +/*static*/bool8 sub_81023B8(struct Task *task); +/*static*/bool8 sub_81023E0(struct Task *task); +/*static*/bool8 sub_81023FC(struct Task *task); +/*static*/bool8 sub_8102424(struct Task *task); +/*static*/bool8 sub_8102460(struct Task *task); +/*static*/void sub_8102484(void); +/*static*/void sub_81024F0(void); +/*static*/bool8 sub_8102540(void); +/*static*/u8 sub_8102578(void); +/*static*/u16 dp15_jump_random_unknown(void); +/*static*/u8 sub_81025BC(void); +/*static*/void CheckMatch(void); +/*static*/void CheckMatch_CenterRow(void); +/*static*/void CheckMatch_TopAndBottom(void); +/*static*/void CheckMatch_Diagonals(void); +/*static*/u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3); +/*static*/void sub_8102A24(void); +/*static*/void sub_8102A64(u8 taskId); +/*static*/bool8 sub_8102A44(void); +/*static*/bool8 sub_8102A9C(struct Task *task); +/*static*/bool8 sub_8102AD0(struct Task *task); +/*static*/bool8 sub_8102B80(struct Task *task); +/*static*/u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y); +/*static*/void sub_8102DA8(void); +/*static*/void sub_8102DEC(u8 a0); +/*static*/void sub_8102E1C(u8 a0); +/*static*/bool8 sub_8102E40(u8 a0); +/*static*/void sub_8102E68(u8 taskId); +/*static*/bool8 sub_8102EA0(struct Task *task); +/*static*/bool8 sub_8102EA4(struct Task *task); +/*static*/bool8 sub_8102EC0(struct Task *task); +/*static*/bool8 sub_8102F4C(struct Task *task); +/*static*/bool8 sub_8103008(struct Task *task); +/*static*/bool8 sub_810305C(void); +/*static*/bool8 sub_8103154(u8 a0, u8 a1); +/*static*/bool8 sub_81031B4(u8 a0, u8 a1); +/*static*/bool8 sub_81032C0(void); +/*static*/bool8 sub_81032E8(void); +/*static*/bool8 sub_810333C(void); +/*static*/bool8 sub_81033DC(void); +/*static*/bool8 sub_810341C(u8 a0); +/*static*/bool8 sub_810347C(u8 a0); +/*static*/void sub_81034F4(void); +/*static*/void sub_8103540(void); +/*static*/void sub_8103564(void); +/*static*/void j5_08111E84(void); +/*static*/void sub_8103668(void); +/*static*/void sub_810380C(void); +/*static*/void sub_8103830(void); +/*static*/void sub_8103910(void); +/*static*/void sub_8103A78(void); +/*static*/void sub_8103C14(u8 a0); +/*static*/void sub_8103C48(u8 taskId); +/*static*/void sub_8103D50(u8 a0); +/*static*/void sub_8103C78(struct Task *task, u8 taskId); +/*static*/void sub_8103CAC(struct Task *task, u8 taskId); +/*static*/void sub_8103CC8(struct Task *task, u8 taskId); +/*static*/void sub_8103D8C(u8 a0); +/*static*/void sub_8103DC8(void); +/*static*/void sub_8103E04(u8 a0); +/*static*/bool8 sub_8103E38(void); +/*static*/bool8 sub_8103E7C(void); +/*static*/bool8 sub_8103EAC(u8 spriteId); +/*static*/void sub_8103EE4(struct Sprite *sprite); +/*static*/void sub_8103F70(void); +/*static*/bool8 sub_8103FA0(void); +/*static*/void sub_8103FE8(u8 taskId); +/*static*/void sub_8104048(void); +/*static*/void sub_8104064(u8 pikaPower); +/*static*/bool8 sub_81040C8(void); +/*static*/void sub_81040E8(u8 taskId); +/*static*/void nullsub_68(struct Task *task); +/*static*/void sub_810411C(struct Task *task); +/*static*/void sub_8104144(struct Task *task); +/*static*/void sub_81041AC(struct Task *task); +/*static*/void sub_810421C(struct Task *task); +/*static*/void sub_810423C(u8 pikaPower); +/*static*/void sub_810430C(void); +/*static*/bool8 sub_810432C(void); +/*static*/void sub_810434C(u8 taskId); +/*static*/void sub_810437C(struct Task *task); +/*static*/void sub_81043EC(struct Task *task); +/*static*/void sub_8104468(struct Task *task); +/*static*/void sub_8104498(struct Task *task); +/*static*/void sub_8104548(struct Task *task); +/*static*/void sub_8104598(struct Task *task); +/*static*/void sub_81045CC(struct Task *task); +/*static*/void sub_810463C(struct Task *task); +/*static*/void sub_81046C0(struct Task *task); +/*static*/void sub_8104764(struct Task *task); +/*static*/void sub_8104794(struct Task *task); +/*static*/void sub_81047EC(struct Task *task); +/*static*/void sub_8104860(struct Task *task); +/*static*/void sub_81048A8(struct Task *task); +/*static*/void sub_81048CC(struct Task *task); +/*static*/void sub_8104940(struct Task *task); +/*static*/void sub_81049C8(struct Task *task); +/*static*/void sub_81049F8(struct Task *task); +/*static*/void sub_8104A40(s16 a0, s16 a1); +/*static*/void sub_8104A88(s16 a0); +/*static*/void sub_8104AB8(u8 a0); +/*static*/bool8 sub_8104AEC(void); +/*static*/void sub_8104B0C(u8 taskId); +/*static*/void sub_8104B3C(struct Task *task); +/*static*/void sub_8104B60(struct Task *task); +/*static*/void sub_8104B80(struct Task *task); +/*static*/void sub_8104BC8(struct Task *task); +/*static*/void sub_8104BFC(struct Task *task); +/*static*/void sub_8104C44(struct Task *task); +/*static*/void sub_8104C5C(void); +/*static*/void sub_8104CAC(u8 arg0); +/*static*/bool8 sub_8104E18(void); +/*static*/void nullsub_69(struct Task *task); +/*static*/void sub_8104E74(u8 taskId); +/*static*/void sub_8104EA8(void); +/*static*/void sub_8104F8C(void); +/*static*/void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); +/*static*/void sub_81050C4(void); +/*static*/void sub_8105100(void); +/*static*/void sub_810514C(void); +/*static*/void sub_81051C0(void); +/*static*/void sub_8105284(void); +/*static*/void sub_81052EC(void); +/*static*/void sub_81053A0(void); +/*static*/void sub_810545C(void); +/*static*/void sub_81054B8(void); +/*static*/void sub_8105524(void); +/*static*/void sub_8105554(void); +/*static*/void sub_8105578(void); +/*static*/void sub_8105688(s16 a0); +/*static*/void sub_81056C0(void); +/*static*/void sub_81056F0(void); +/*static*/void sub_81057E8(s16 a0); +/*static*/void sub_8105804(void); +/*static*/void sub_8105854(void); +/*static*/void sub_81058A0(void); +/*static*/void sub_81058C4(void); +/*static*/void sub_81059B8(void); +/*static*/void sub_81059E8(void); +/*static*/bool8 sub_8105ACC(void); +/*static*/void sub_8105AEC(void); +/*static*/u8 sub_8105B1C(s16 x, s16 y); +/*static*/void sub_8105B88(u8 spriteId); +/*static*/u8 sub_8105BF8(u8 templateIdx, void (*callback)(struct Sprite*), s16 x, s16 y, s16 a4); +/*static*/void sub_81063C0(void); +/*static*/void sub_8106404(void); +/*static*/void sub_8106448(void); +/*static*/void sub_81064B8(void); +/*static*/void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); +/*static*/void sub_81065DC(void); +/*static*/extern const struct UnkStruct1 *const gUnknown_083ED048[]; +/*static*/extern const u16 gPalette_83EDE24[]; +/*static*/extern const u8 gUnknown_083ECD04[][3]; +/*static*/extern const u8 gUnknown_083ECE3A[]; +/*static*/extern const u16 gUnknown_083ECE42[]; +/*static*/extern const u16 gUnknown_083ECE48[]; + +// code +#define tState data[0] + +void Task_FadeToSlotMachine(u8 taskId) +{ + switch (gTasks[taskId].tState) + { + case 0: + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + gTasks[taskId].tState++; + break; + case 1: + if (!gPaletteFade.active) + { + SetMainCallback2(CB2_SlotMachineSetup); + DestroyTask(taskId); + } + break; + } +} + +void PlaySlotMachine(u8 arg0, MainCallback cb) +{ + u8 taskId; + + sSlotMachine = AllocZeroed(sizeof(*sSlotMachine)); + PlaySlotMachine_Internal(arg0, cb); + taskId = CreateTask(Task_FadeToSlotMachine, 0); + gTasks[taskId].tState = 0; +} + +#undef tState + +void CB2_SlotMachineSetup(void) +{ + switch (gMain.state) + { + case 0: + SlotMachineSetup_0_0(); + SlotMachineSetup_0_1(); + gMain.state++; + break; + case 1: + SlotMachineSetup_1_0(); + gMain.state++; + break; + case 2: + SlotMachineSetup_2_0(); + SlotMachineSetup_2_1(); + gMain.state++; + break; + case 3: + SlotMachineSetup_3_0(); + gMain.state++; + break; + case 4: + SlotMachineSetup_4_0(); + gMain.state++; + break; + case 5: + SlotMachineSetup_5_0(); + gMain.state++; + break; + case 6: + SlotMachineSetup_6_0(); + gMain.state++; + break; + case 7: + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + gMain.state++; + break; + case 8: + SlotMachineSetup_8_0(); + gMain.state++; + break; + case 9: + SlotMachineSetup_9_0(); + gMain.state++; + break; + case 10: + SlotMachineSetup_10_0(); + SlotMachineSetup_10_1(); + gMain.state++; + break; + case 11: + SetMainCallback2(CB2_SlotMachineLoop); + break; + } +} + +void CB2_SlotMachineLoop(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void SlotMachine_VBlankCallback(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + SetGpuReg(REG_OFFSET_WIN0H, sSlotMachine->win0h); + SetGpuReg(REG_OFFSET_WIN0V, sSlotMachine->win0v); + SetGpuReg(REG_OFFSET_WININ, sSlotMachine->winIn); + SetGpuReg(REG_OFFSET_WINOUT, sSlotMachine->winOut); +} + +void PlaySlotMachine_Internal(u8 arg0, MainCallback cb) +{ + struct Task *task = gTasks + CreateTask(SlotMachineDummyTask, 0xFF); + task->data[0] = arg0; + StoreWordInTwoHalfwords(task->data + 1, (intptr_t)cb); +} + +void sub_81019EC(void) +{ + struct Task *task = gTasks + FindTaskIdByFunc(SlotMachineDummyTask); + sSlotMachine->unk01 = task->data[0]; + LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&sSlotMachine->prevMainCb); +} + +void SlotMachineDummyTask(u8 taskId) +{ +} + +extern const struct BgTemplate gUnknown_085A7424[4]; +extern const struct WindowTemplate gUnknown_085A7434[]; + +void SlotMachineSetup_0_0(void) +{ + SetVBlankCallback(NULL); + SetHBlankCallback(NULL); + CpuFill32(0, (void *)VRAM, VRAM_SIZE); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_085A7424, ARRAY_COUNT(gUnknown_085A7424)); + InitWindows(gUnknown_085A7434); + DeactivateAllTextPrinters(); +} + +void SlotMachineSetup_6_0(void) +{ + SetVBlankCallback(SlotMachine_VBlankCallback); + EnableInterrupts(INTR_FLAG_VBLANK); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); +} + +void SlotMachineSetup_1_0(void) +{ + DmaClearLarge16(3, (u16 *)(BG_VRAM), BG_VRAM_SIZE, 0x1000); +} + +void SlotMachineSetup_2_0(void) +{ + DmaClear16(3, (u16 *)OAM, OAM_SIZE); +} + +void SlotMachineSetup_2_1(void) +{ + SetGpuReg(REG_OFFSET_BG0CNT, 0); + SetGpuReg(REG_OFFSET_BG1CNT, 0); + SetGpuReg(REG_OFFSET_BG2CNT, 0); + SetGpuReg(REG_OFFSET_BG3CNT, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + SetGpuReg(REG_OFFSET_WININ, 0x3f); + SetGpuReg(REG_OFFSET_WINOUT, 0x3f); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, 0x809); +} + +extern const s16 gUnknown_083ECCF8[][2]; + +void SlotMachineSetup_0_1(void) +{ + u8 i; + + sub_81019EC(); + sSlotMachine->state = 0; + sSlotMachine->pikaPower = 0; + sSlotMachine->unk03 = Random() & 1; + sSlotMachine->unk04 = 0; + sSlotMachine->matchedSymbols = 0; + sSlotMachine->unk0A = 0; + sSlotMachine->unk0B = 0; + sSlotMachine->coins = GetCoins(); + sSlotMachine->payout = 0; + sSlotMachine->unk10 = 0; + sSlotMachine->bet = 0; + sSlotMachine->unk18 = 0; + sSlotMachine->unk1A = 8; + sSlotMachine->win0h = 0xf0; + sSlotMachine->win0v = 0xa0; + sSlotMachine->winIn = 0x3f; + sSlotMachine->winOut = 0x3f; + sSlotMachine->backupMapMusic = GetCurrentMapMusic(); + for (i = 0; i < 3; i++) + { + sSlotMachine->unk22[i] = 0; + sSlotMachine->reelPositions[i] = gUnknown_083ECCF8[i][sSlotMachine->unk03] % 21; + sSlotMachine->unk1C[i] = 0x1f8 - sSlotMachine->reelPositions[i] * 24; + sSlotMachine->unk1C[i] %= 0x1f8; + } + sub_80EDE70(GetCoins()); +} + +extern u8 gOamLimit; + +void SlotMachineSetup_3_0(void) +{ + ResetPaletteFade(); + ResetSpriteData(); + gOamLimit = 0x80; + FreeAllSpritePalettes(); + ResetTasks(); +} + +extern u16 *gUnknown_0203AACC; +extern u16 *gUnknown_0203AAD0; +extern u16 *gUnknown_0203AADC; + +void SlotMachineSetup_4_0(void) +{ + gUnknown_0203AACC = Alloc(8); + gUnknown_0203AAD0 = AllocZeroed(0xE); + gUnknown_0203AADC = AllocZeroed(8); + + gUnknown_0203AAD0[0] = 0x2051; + gUnknown_0203AAD0[1] = 0x2851; + gUnknown_0203AAD0[2] = 0x2061; + gUnknown_0203AAD0[3] = 0x2861; + gUnknown_0203AAD0[4] = 0x20BE; + gUnknown_0203AAD0[5] = 0x28BE; + gUnknown_0203AAD0[6] = 0x20BF; +} + +/*static*/void sub_812F908(void); +/*static*/void sub_812F958(void); +/*static*/void sub_812F7E4(void); + +void SlotMachineSetup_5_0(void) +{ + sub_812F908(); + sub_812F958(); + sub_812F7E4(); + LoadMessageBoxGfx(0, 0x200, 0xF0); + LoadUserWindowBorderGfx(0, 0x214, 0xE0); + PutWindowTilemap(0); +} + +void SlotMachineSetup_10_0(void) +{ + sub_8104EA8(); + sub_8104F8C(); + sub_8103DC8(); + sub_81050C4(); +} + +void SlotMachineSetup_10_1(void) +{ + sub_8104048(); + sub_8102DA8(); + sub_8104C5C(); + sub_8101D04(); +} + +void sub_8101D04(void) +{ + sub_8101D24(CreateTask(sub_8101D24, 0)); +} + +extern bool8 (*const gUnknown_083ECAAC[])(struct Task *task); + +void sub_8101D24(u8 taskId) +{ + while (gUnknown_083ECAAC[sSlotMachine->state](gTasks + taskId)) + ; +} + +bool8 sub_8101D5C(struct Task *task) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + sub_810423C(sSlotMachine->pikaPower); + sSlotMachine->state++; + return FALSE; +} + +bool8 sub_8101D8C(struct Task *task) +{ + if (!gPaletteFade.active) + sSlotMachine->state++; + return FALSE; +} + +bool8 sub_8101DB0(struct Task *task) +{ + sSlotMachine->payout = 0; + sSlotMachine->bet = 0; + sSlotMachine->unk18 = 0; + sSlotMachine->unk04 &= 0xc0; + sSlotMachine->state = 4; + if (sSlotMachine->coins <= 0) + { + sSlotMachine->state = 25; + } + else if (sSlotMachine->unk0A) + { + sSlotMachine->state = 3; + sub_8104CAC(4); + } + return TRUE; +} + +bool8 sub_8101DF4(struct Task *task) +{ + if (sub_8104E18()) + sSlotMachine->state = 4; + return FALSE; +} + +bool8 sub_8101E10(struct Task *task) +{ + sub_8104CAC(0); + sSlotMachine->state = 5; + if (sSlotMachine->coins >= 9999) + sSlotMachine->state = 23; + return TRUE; +} + +bool8 sub_8101E3C(struct Task *task) +{ + s16 i; + + if (gMain.newKeys & SELECT_BUTTON) + { + sub_8104AB8(0); + sSlotMachine->state = 8; + } + else if (gMain.newKeys & R_BUTTON) + { + if (sSlotMachine->coins - (3 - sSlotMachine->bet) >= 0) + { + for (i = sSlotMachine->bet; i < 3; i++) + sub_8103D50(i); + sSlotMachine->coins -= (3 - sSlotMachine->bet); + sSlotMachine->bet = 3; + sSlotMachine->state = 9; + PlaySE(SE_REGI); + } + else + { + sSlotMachine->state = 6; + } + } + else + { + if (gMain.newKeys & DPAD_DOWN && sSlotMachine->coins != 0) + { + PlaySE(SE_REGI); + sub_8103D50(sSlotMachine->bet); + sSlotMachine->coins--; + sSlotMachine->bet++; + } + if (sSlotMachine->bet >= 3 || (sSlotMachine->bet != 0 && gMain.newKeys & A_BUTTON)) + sSlotMachine->state = 9; + if (gMain.newKeys & B_BUTTON) + sSlotMachine->state = 21; + } + return FALSE; +} + +extern const u8 gText_YouDontHaveThreeCoins[]; + +bool8 sub_8101F44(struct Task *task) +{ + NewMenuHelpers_DrawDialogueFrame(0, 0); + PrintTextOnWindow(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); + CopyWindowToVram(0, 3); + sSlotMachine->state = 7; + return FALSE; +} + +bool8 sub_8101F60(struct Task *task) +{ + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + sub_8197434(0, TRUE); + sSlotMachine->state = 5; + } + return FALSE; +} + +bool8 sub_8101F88(struct Task *task) +{ + if (sub_8104AEC()) + sSlotMachine->state = 5; + return FALSE; +} + +bool8 sub_8101FA4(struct Task *task) +{ + sub_8102484(); + sub_8104DA4(); + sub_8102DEC(0); + sub_8102DEC(1); + sub_8102DEC(2); + sub_80EEC80(); + task->data[0] = 0; + if (sSlotMachine->unk04 & 0x20) + { + sub_810430C(); + sSlotMachine->state = 10; + } + else + { + sub_8104CAC(1); + sSlotMachine->state = 11; + } + sSlotMachine->unk1A = 8; + if (sSlotMachine->unk0A) + sSlotMachine->unk1A = dp15_jump_random_unknown(); + return FALSE; +} + +bool8 sub_8102008(struct Task *task) +{ + if (sub_810432C()) + { + sub_8104CAC(1); + sSlotMachine->unk04 &= 0xDF; + sSlotMachine->state = 11; + } + return FALSE; +} + +bool8 sub_8102034(struct Task *task) +{ + if (++task->data[0] >= 30) + { + sub_81024F0(); + sSlotMachine->state = 12; + } + return FALSE; +} + +bool8 sub_8102058(struct Task *task) +{ + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_JYUNI); + sub_8102E1C(sSlotMachine->unk18); + sub_8103C14(sSlotMachine->unk18); + sSlotMachine->state = 13; + } + return FALSE; +} + +bool8 sub_8102090(struct Task *task) +{ + if (!sub_8102E40(sSlotMachine->unk18)) + { + sSlotMachine->unk18++; + sSlotMachine->state = 12; + if (sSlotMachine->unk18 > 2) + { + sSlotMachine->state = 14; + } + return TRUE; + } + return FALSE; +} + +bool8 sub_81020C8(struct Task *task) +{ + sSlotMachine->unk04 &= 0xc0; + CheckMatch(); + if (sSlotMachine->unk0A) + { + sSlotMachine->unk0A--; + sSlotMachine->unk0B++; + } + + if (sSlotMachine->matchedSymbols) + { + sSlotMachine->state = 15; + sub_8102A24(); + sub_8103F70(); + if ((sSlotMachine->unk10 -= sSlotMachine->payout) < 0) + { + sSlotMachine->unk10 = 0; + } + if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) + { + PlayFanfare(MUS_ME_B_BIG); + sub_8104CAC(6); + } + else if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_MIXED)) + { + PlayFanfare(MUS_ME_B_BIG); + sub_8104CAC(5); + } + else + { + PlayFanfare(MUS_ME_B_SMALL); + sub_8104CAC(2); + } + if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) + { + sSlotMachine->unk04 &= 0x3f; + if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) + { + sSlotMachine->unk0A = 0; + sSlotMachine->unk0B = 0; + sSlotMachine->unk03 = 0; + if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE)) + sSlotMachine->unk03 = 1; + } + } + if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER) && sSlotMachine->pikaPower < 16) + { + sSlotMachine->pikaPower++; + sub_8104064(sSlotMachine->pikaPower); + } + } + else + { + sub_8104CAC(3); + sSlotMachine->state = 20; + if ((sSlotMachine->unk10 += sSlotMachine->bet) > 9999) + sSlotMachine->unk10 = 9999; + } + return FALSE; +} + +bool8 sub_81021E0(struct Task *task) +{ + if (sub_8102A44()) + sSlotMachine->state = 16; + return FALSE; +} + +bool8 sub_81021FC(struct Task *task) +{ + if (sub_8103FA0()) + { + sSlotMachine->state = 19; + if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_RED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE))) + IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); + if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + { + sSlotMachine->unk18 = 0; + sSlotMachine->state = 9; + } + if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER)) + sSlotMachine->state = 17; + if (sSlotMachine->unk0A && sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + { + sub_8104CAC(4); + sSlotMachine->state = 18; + } + } + return FALSE; +} From 0e0d1030443ee5c1ffd281eaa89e0b4dccad6ae7 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 11 Aug 2018 18:47:56 +0200 Subject: [PATCH 068/174] port more of slot machine --- asm/slot_machine.s | 1304 +------------------------------------------ data/slot_machine.s | 90 +-- include/main_menu.h | 1 + src/slot_machine.c | 485 +++++++++++++++- sym_ewram.txt | 2 +- 5 files changed, 551 insertions(+), 1331 deletions(-) diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 066663c424..21cf4a3508 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -7,1269 +7,9 @@ - thumb_func_start sub_812B094 -sub_812B094: @ 812B094 - push {r4,lr} - bl sub_812D20C - lsls r0, 24 - cmp r0, 0 - bne _0812B0CC - ldr r4, =sSlotMachine - ldr r1, [r4] - movs r0, 0x13 - strb r0, [r1] - ldr r2, [r4] - ldrh r1, [r2, 0x8] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0812B0CC - movs r0, 0x9 - strb r0, [r2] - ldr r0, [r4] - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _0812B0CC - movs r0, 0x4 - bl sub_8104CAC - ldr r1, [r4] - movs r0, 0x12 - strb r0, [r1] -_0812B0CC: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B094 - thumb_func_start sub_812B0D8 -sub_812B0D8: @ 812B0D8 - push {lr} - bl sub_8104E18 - lsls r0, 24 - cmp r0, 0 - beq _0812B0FC - ldr r2, =sSlotMachine - ldr r1, [r2] - movs r0, 0x13 - strb r0, [r1] - ldr r2, [r2] - ldrh r1, [r2, 0x8] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0812B0FC - movs r0, 0x9 - strb r0, [r2] -_0812B0FC: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B0D8 - - thumb_func_start sub_812B108 -sub_812B108: @ 812B108 - push {lr} - movs r0, 0 - bl sub_812CEB8 - movs r0, 0x1 - bl sub_812CEB8 - movs r0, 0x2 - bl sub_812CEB8 - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r0, 0x2 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B108 - - thumb_func_start sub_812B130 -sub_812B130: @ 812B130 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - ble _0812B14E - movs r0, 0 - strh r0, [r1, 0xA] - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r0, 0x13 - strb r0, [r1] -_0812B14E: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B130 - - thumb_func_start sub_812B158 -sub_812B158: @ 812B158 - push {lr} - sub sp, 0xC - movs r0, 0 - movs r1, 0 - bl NewMenuHelpers_DrawDialogueFrame - ldr r2, =gText_QuitTheGame - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - movs r2, 0x85 - lsls r2, 2 - movs r3, 0xC0 - lsls r3, 1 - movs r0, 0xE - str r0, [sp] - movs r0, 0xF - str r0, [sp, 0x4] - movs r0, 0x15 - movs r1, 0x7 - bl sub_80323CC - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r0, 0x16 - strb r0, [r1] - movs r0, 0 - add sp, 0xC - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B158 - - thumb_func_start sub_812B1B0 -sub_812B1B0: @ 812B1B0 - push {lr} - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _0812B1EC - movs r0, 0 - movs r1, 0x1 - bl sub_8197434 - movs r0, 0 - bl sub_812CEB8 - movs r0, 0x1 - bl sub_812CEB8 - movs r0, 0x2 - bl sub_812CEB8 - ldr r0, =sSlotMachine - ldr r1, [r0] - ldrh r0, [r1, 0x12] - ldrh r2, [r1, 0xC] - adds r0, r2 - strh r0, [r1, 0xC] - movs r0, 0x1B - b _0812B206 - .pool -_0812B1EC: - cmp r1, 0x1 - beq _0812B1F8 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0812B208 -_0812B1F8: - movs r0, 0 - movs r1, 0x1 - bl sub_8197434 - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r0, 0x5 -_0812B206: - strb r0, [r1] -_0812B208: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B1B0 - - thumb_func_start sub_812B214 -sub_812B214: @ 812B214 - push {lr} - sub sp, 0xC - movs r0, 0 - movs r1, 0 - bl NewMenuHelpers_DrawDialogueFrame - ldr r2, =gText_YouveGot9999Coins - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r0, 0x18 - strb r0, [r1] - movs r0, 0 - add sp, 0xC - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B214 - - thumb_func_start sub_812B254 -sub_812B254: @ 812B254 - push {lr} - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0812B272 - movs r0, 0 - movs r1, 0x1 - bl sub_8197434 - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r0, 0x5 - strb r0, [r1] -_0812B272: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B254 - - thumb_func_start sub_812B280 -sub_812B280: @ 812B280 - push {lr} - sub sp, 0xC - movs r0, 0 - movs r1, 0 - bl NewMenuHelpers_DrawDialogueFrame - ldr r2, =gText_YouveRunOutOfCoins - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r0, 0x1A - strb r0, [r1] - movs r0, 0 - add sp, 0xC - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B280 - - thumb_func_start sub_812B2C0 -sub_812B2C0: @ 812B2C0 - push {lr} - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0812B2DE - movs r0, 0 - movs r1, 0x1 - bl sub_8197434 - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r0, 0x1B - strb r0, [r1] -_0812B2DE: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B2C0 - - thumb_func_start sub_812B2EC -sub_812B2EC: @ 812B2EC - push {r4,lr} - sub sp, 0x4 - ldr r4, =sSlotMachine - ldr r0, [r4] - ldrh r0, [r0, 0xC] - bl SetCoins - bl GetCoins - lsls r0, 16 - lsrs r0, 16 - bl sub_80EDD78 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B2EC - - thumb_func_start sub_812B32C -sub_812B32C: @ 812B32C - push {r4-r6,lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _0812B340 - b _0812B470 -_0812B340: - ldr r6, =sSlotMachine - ldr r0, [r6] - ldr r0, [r0, 0x64] - bl SetMainCallback2 - ldr r4, =gUnknown_0203AAF4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AAF8 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AAFC - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB00 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB04 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB08 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB0C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB10 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB14 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB18 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB1C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB20 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB24 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB28 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AAE4 - ldr r0, [r4] - cmp r0, 0 - beq _0812B3E4 - bl Free - str r5, [r4] -_0812B3E4: - ldr r4, =gUnknown_0203AAE8 - ldr r0, [r4] - cmp r0, 0 - beq _0812B3F2 - bl Free - str r5, [r4] -_0812B3F2: - ldr r4, =gUnknown_0203AAEC - ldr r0, [r4] - cmp r0, 0 - beq _0812B400 - bl Free - str r5, [r4] -_0812B400: - ldr r4, =gUnknown_0203AAF0 - ldr r0, [r4] - cmp r0, 0 - beq _0812B40E - bl Free - str r5, [r4] -_0812B40E: - ldr r4, =gUnknown_0203AAC8 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AACC - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AAD0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AAD4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AAD8 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AADC - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AAE0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB2C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203AB30 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r0, [r6] - bl Free - str r5, [r6] -_0812B470: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B32C - - thumb_func_start sub_8102484 -sub_8102484: @ 812B4EC - push {r4,lr} - ldr r4, =sSlotMachine - ldr r1, [r4] - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _0812B54A - ldrb r1, [r1, 0x4] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - bne _0812B54A - bl sub_812B5B0 - lsls r0, 24 - cmp r0, 0 - beq _0812B52C - bl sub_812B5EC - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - beq _0812B52C - ldr r2, [r4] - ldr r1, =gUnknown_085A77FE - lsls r0, r3, 1 - adds r0, r1 - ldrb r1, [r0] - ldrb r0, [r2, 0x4] - orrs r0, r1 - strb r0, [r2, 0x4] - cmp r3, 0x1 - bne _0812B54A -_0812B52C: - bl sub_812B634 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - beq _0812B54A - ldr r0, =sSlotMachine - ldr r2, [r0] - ldr r1, =gUnknown_085A7804 - lsls r0, r3, 1 - adds r0, r1 - ldrb r1, [r0] - ldrb r0, [r2, 0x4] - orrs r0, r1 - strb r0, [r2, 0x4] -_0812B54A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8102484 - - thumb_func_start sub_81024F0 -sub_81024F0: @ 812B55C - push {lr} - ldr r2, =sSlotMachine - ldr r1, [r2] - movs r0, 0 - strb r0, [r1, 0x6] - ldr r2, [r2] - ldrb r0, [r2, 0x4] - cmp r0, 0 - beq _0812B572 - movs r0, 0x1 - strb r0, [r2, 0x6] -_0812B572: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81024F0 - - thumb_func_start sub_812B57C -sub_812B57C: @ 812B57C - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0 - movs r3, 0x1 - ldr r4, =gUnknown_085A77F6 -_0812B588: - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _0812B59C - adds r0, r2, r4 - ldrb r0, [r0] - b _0812B5AA - .pool -_0812B59C: - lsrs r1, 1 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _0812B588 - movs r0, 0 -_0812B5AA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812B57C - - thumb_func_start sub_812B5B0 -sub_812B5B0: @ 812B5B0 - push {r4,lr} - bl Random - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gUnknown_085A76C0 - ldr r1, =sSlotMachine - ldr r1, [r1] - movs r3, 0x12 - ldrsh r2, [r1, r3] - ldrb r3, [r1, 0x1] - lsls r1, r3, 1 - adds r1, r3 - subs r1, 0x1 - adds r2, r1 - adds r2, r4 - ldrb r1, [r2] - cmp r1, r0 - bhi _0812B5E4 - movs r0, 0 - b _0812B5E6 - .pool -_0812B5E4: - movs r0, 0x1 -_0812B5E6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812B5B0 - - thumb_func_start sub_812B5EC -sub_812B5EC: @ 812B5EC - push {r4-r6,lr} - movs r5, 0 - ldr r6, =gUnknown_085A76D2 -_0812B5F2: - bl Random - movs r2, 0xFF - ldr r1, =sSlotMachine - ldr r3, [r1] - lsls r1, r5, 16 - asrs r4, r1, 16 - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 1 - ldrb r3, [r3, 0x1] - adds r1, r3 - adds r1, r6 - ldrb r1, [r1] - ands r2, r0 - cmp r1, r2 - bgt _0812B620 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _0812B5F2 -_0812B620: - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B5EC - - thumb_func_start sub_812B634 -sub_812B634: @ 812B634 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r0, =gUnknown_085A76E4 - mov r8, r0 - movs r7, 0x80 - lsls r7, 17 -_0812B644: - bl Random - movs r5, 0xFF - ands r5, r0 - ldr r0, =sSlotMachine - ldr r4, [r0] - lsls r2, r6, 16 - asrs r1, r2, 16 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - ldrb r3, [r4, 0x1] - adds r0, r3 - add r0, r8 - ldrb r3, [r0] - cmp r1, 0 - bne _0812B680 - ldrb r0, [r4, 0x3] - cmp r0, 0x1 - bne _0812B680 - adds r3, 0xA - asrs r0, r7, 16 - cmp r3, r0 - ble _0812B69E - adds r3, r0, 0 - b _0812B69E - .pool -_0812B680: - asrs r0, r2, 16 - cmp r0, 0x4 - bne _0812B69E - ldr r0, =sSlotMachine - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0x1 - bne _0812B69E - lsls r0, r3, 16 - ldr r1, =0xfff60000 - adds r0, r1 - lsrs r3, r0, 16 - cmp r0, 0 - bge _0812B69E - movs r3, 0 -_0812B69E: - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r5 - bgt _0812B6B4 - movs r3, 0x80 - lsls r3, 9 - adds r0, r2, r3 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0812B644 -_0812B6B4: - lsls r0, r6, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B634 - - thumb_func_start sub_812B6CC -sub_812B6CC: @ 812B6CC - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, =sSlotMachine - ldr r2, [r0] - ldrb r0, [r2, 0x3] - cmp r0, 0 - beq _0812B6E8 - ldr r0, =gUnknown_085A7768 - b _0812B6EA - .pool -_0812B6E8: - ldr r0, =gUnknown_085A7702 -_0812B6EA: - lsls r1, r3, 4 - adds r1, r3 - ldrb r2, [r2, 0x2] - adds r1, r2 - adds r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .pool - thumb_func_end sub_812B6CC - - thumb_func_start sub_812B700 -sub_812B700: @ 812B700 - push {r4-r6,lr} - ldr r0, =sSlotMachine - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x5] - bl Random - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl sub_812B6CC - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _0812B754 - movs r6, 0x5 - b _0812B72E - .pool -_0812B728: - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_0812B72E: - lsls r0, r6, 16 - asrs r5, r0, 16 - cmp r5, 0 - ble _0812B74E - bl Random - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_812B6CC - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcs _0812B728 -_0812B74E: - ldr r0, =sSlotMachine - ldr r0, [r0] - strb r6, [r0, 0x5] -_0812B754: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812B700 - - thumb_func_start sub_812B760 -sub_812B760: @ 812B760 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl Random - movs r1, 0xFF - ands r1, r0 - ldr r0, =gUnknown_085A77CE - lsls r4, 1 - adds r4, r0 - ldrh r4, [r4] - cmp r1, r4 - bcc _0812B784 - movs r0, 0 - b _0812B786 - .pool -_0812B784: - movs r0, 0x1 -_0812B786: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812B760 - - thumb_func_start dp15_jump_random_unknown -dp15_jump_random_unknown: @ 812B78C - push {r4,r5,lr} - movs r4, 0 - ldr r0, =sSlotMachine - ldr r0, [r0] - movs r2, 0x10 - ldrsh r1, [r0, r2] - ldr r0, =0x0000012b - cmp r1, r0 - ble _0812B7AC - movs r4, 0x4 - b _0812B7C2 - .pool -_0812B7AC: - cmp r1, 0xF9 - ble _0812B7B4 - movs r4, 0x3 - b _0812B7C2 -_0812B7B4: - cmp r1, 0xC7 - ble _0812B7BC - movs r4, 0x2 - b _0812B7C2 -_0812B7BC: - cmp r1, 0x95 - ble _0812B7C2 - movs r4, 0x1 -_0812B7C2: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r5, =gUnknown_085A77D8 - lsls r4, 2 - adds r0, r4, r5 - ldrb r0, [r0] - cmp r1, r0 - bcs _0812B7E8 - movs r0, 0x4 - b _0812B822 - .pool -_0812B7E8: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 24 - adds r2, r5, 0x2 - adds r2, r4, r2 - ldr r3, =gUnknown_085A77EC - ldr r1, =sSlotMachine - ldr r1, [r1] - ldrb r1, [r1, 0xB] - lsls r1, 1 - adds r1, r3 - ldrb r1, [r1] - ldrb r2, [r2] - adds r1, r2 - lsls r1, 24 - cmp r0, r1 - bcc _0812B820 - movs r0, 0x8 - b _0812B822 - .pool -_0812B820: - movs r0, 0x2 -_0812B822: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end dp15_jump_random_unknown - - thumb_func_start CheckMatch -CheckMatch: @ 812B828 - push {r4,lr} - ldr r4, =sSlotMachine - ldr r1, [r4] - movs r0, 0 - strh r0, [r1, 0x8] - bl sub_812B85C - ldr r0, [r4] - movs r1, 0x12 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - ble _0812B844 - bl sub_812B8D0 -_0812B844: - ldr r0, [r4] - movs r1, 0x12 - ldrsh r0, [r0, r1] - cmp r0, 0x2 - ble _0812B852 - bl sub_812B9A0 -_0812B852: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end CheckMatch - - thumb_func_start sub_812B85C -sub_812B85C: @ 812B85C - push {r4,r5,lr} - movs r0, 0 - movs r1, 0x2 - bl sub_812BC44 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - movs r1, 0x2 - bl sub_812BC44 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x2 - bl sub_812BC44 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_812BA6C - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _0812B8BC - ldr r0, =sSlotMachine - ldr r2, [r0] - ldr r0, =gUnknown_085A7828 - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, =gUnknown_085A7816 - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] - movs r0, 0 - bl sub_812CF34 -_0812B8BC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812B85C - - thumb_func_start sub_812B8D0 -sub_812B8D0: @ 812B8D0 - push {r4,r5,lr} - movs r0, 0 - movs r1, 0x1 - bl sub_812BC44 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x1 - bl sub_812BC44 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x1 - bl sub_812BC44 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_812BA6C - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _0812B930 - cmp r1, 0 - bne _0812B90C - movs r1, 0x1 -_0812B90C: - ldr r0, =sSlotMachine - ldr r2, [r0] - ldr r0, =gUnknown_085A7828 - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, =gUnknown_085A7816 - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] - movs r0, 0x1 - bl sub_812CF34 -_0812B930: - movs r0, 0 - movs r1, 0x3 - bl sub_812BC44 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x3 - bl sub_812BC44 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x3 - bl sub_812BC44 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_812BA6C - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _0812B98E - cmp r1, 0 - bne _0812B96A - movs r1, 0x1 -_0812B96A: - ldr r0, =sSlotMachine - ldr r2, [r0] - ldr r0, =gUnknown_085A7828 - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, =gUnknown_085A7816 - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] - movs r0, 0x2 - bl sub_812CF34 -_0812B98E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812B8D0 - - thumb_func_start sub_812B9A0 -sub_812B9A0: @ 812B9A0 - push {r4,r5,lr} - movs r0, 0 - movs r1, 0x1 - bl sub_812BC44 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x2 - bl sub_812BC44 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x3 - bl sub_812BC44 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_812BA6C - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _0812B9FE - cmp r1, 0 - beq _0812B9F8 - ldr r0, =sSlotMachine - ldr r2, [r0] - ldr r0, =gUnknown_085A7828 - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, =gUnknown_085A7816 - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] -_0812B9F8: - movs r0, 0x3 - bl sub_812CF34 -_0812B9FE: - movs r0, 0 - movs r1, 0x3 - bl sub_812BC44 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x2 - bl sub_812BC44 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x1 - bl sub_812BC44 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_812BA6C - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _0812BA5A - cmp r1, 0 - beq _0812BA54 - ldr r0, =sSlotMachine - ldr r2, [r0] - ldr r0, =gUnknown_085A7828 - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, =gUnknown_085A7816 - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] -_0812BA54: - movs r0, 0x4 - bl sub_812CF34 -_0812BA5A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_812B9A0 - - thumb_func_start sub_812BA6C -sub_812BA6C: @ 812BA6C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r3, r1 - bne _0812BA90 - cmp r3, r2 - bne _0812BA90 - ldr r0, =gUnknown_085A780E - adds r0, r3, r0 - ldrb r0, [r0] - b _0812BAB6 - .pool -_0812BA90: - cmp r3, 0 - bne _0812BA9C - cmp r1, 0 - bne _0812BA9C - cmp r2, 0x1 - beq _0812BAA8 -_0812BA9C: - cmp r3, 0x1 - bne _0812BAAC - cmp r1, 0x1 - bne _0812BAAC - cmp r2, 0 - bne _0812BAAC -_0812BAA8: - movs r0, 0x6 - b _0812BAB6 -_0812BAAC: - cmp r3, 0x4 - beq _0812BAB4 - movs r0, 0x9 - b _0812BAB6 -_0812BAB4: - movs r0, 0 -_0812BAB6: - pop {r1} - bx r1 - thumb_func_end sub_812BA6C - - thumb_func_start sub_8102A24 -sub_8102A24: @ 812BABC - push {r4,lr} - ldr r4, =sub_812BAFC - adds r0, r4, 0 - movs r1, 0x4 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8102A24 - - thumb_func_start sub_8102A44 -sub_8102A44: @ 812BADC - push {lr} - ldr r0, =sub_812BAFC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0812BAF4 - movs r0, 0 - b _0812BAF6 - .pool -_0812BAF4: - movs r0, 0x1 -_0812BAF6: - pop {r1} - bx r1 - thumb_func_end sub_8102A44 - - thumb_func_start sub_812BAFC -sub_812BAFC: @ 812BAFC + thumb_func_start sub_8102A64 +sub_8102A64: @ 812BAFC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -1294,7 +34,7 @@ _0812BB0E: pop {r0} bx r0 .pool - thumb_func_end sub_812BAFC + thumb_func_end sub_8102A64 thumb_func_start sub_812BB34 sub_812BB34: @ 812BB34 @@ -1424,7 +164,7 @@ sub_812BC20: @ 812BC20 lsls r0, 24 cmp r0, 0 beq _0812BC3A - ldr r0, =sub_812BAFC + ldr r0, =sub_8102A64 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -1436,8 +176,8 @@ _0812BC3A: .pool thumb_func_end sub_812BC20 - thumb_func_start sub_812BC44 -sub_812BC44: @ 812BC44 + thumb_func_start GetTagOfReelSymbolOnScreenAtPos +GetTagOfReelSymbolOnScreenAtPos: @ 812BC44 push {r4,lr} lsls r0, 24 lsrs r0, 24 @@ -1477,7 +217,7 @@ _0812BC76: pop {r1} bx r1 .pool - thumb_func_end sub_812BC44 + thumb_func_end GetTagOfReelSymbolOnScreenAtPos thumb_func_start sub_812BC98 sub_812BC98: @ 812BC98 @@ -1510,7 +250,7 @@ _0812BCC2: lsls r1, 16 asrs r1, 16 adds r0, r4, 0 - bl sub_812BC44 + bl GetTagOfReelSymbolOnScreenAtPos lsls r0, 24 lsrs r0, 24 pop {r4-r6} @@ -2086,7 +826,7 @@ sub_812C138: @ 812C138 ldr r4, =sSlotMachine ldr r0, [r4] ldrb r0, [r0, 0x4] - bl sub_812B57C + bl sub_810250C lsls r0, 24 lsrs r3, r0, 24 adds r5, r3, 0 @@ -3896,8 +2636,8 @@ _0812CEA8: .pool thumb_func_end sub_8103D50 - thumb_func_start sub_812CEB8 -sub_812CEB8: @ 812CEB8 + thumb_func_start sub_8103D8C +sub_8103D8C: @ 812CEB8 push {r4-r7,lr} lsls r0, 24 lsrs r1, r0, 24 @@ -3925,7 +2665,7 @@ _0812CEE4: pop {r0} bx r0 .pool - thumb_func_end sub_812CEB8 + thumb_func_end sub_8103D8C thumb_func_start sub_8103DC8 sub_8103DC8: @ 812CEF4 @@ -3958,8 +2698,8 @@ _0812CEFA: .pool thumb_func_end sub_8103DC8 - thumb_func_start sub_812CF34 -sub_812CF34: @ 812CF34 + thumb_func_start sub_8103E04 +sub_8103E04: @ 812CF34 lsls r0, 24 lsrs r0, 24 ldr r1, =sSlotMachine @@ -3984,7 +2724,7 @@ sub_812CF34: @ 812CF34 strh r2, [r0, 0x3C] bx lr .pool - thumb_func_end sub_812CF34 + thumb_func_end sub_8103E04 thumb_func_start sub_812CF6C sub_812CF6C: @ 812CF6C @@ -4337,8 +3077,8 @@ sub_812D1DC: @ 812D1DC .pool thumb_func_end sub_812D1DC - thumb_func_start sub_812D20C -sub_812D20C: @ 812D20C + thumb_func_start sub_81040C8 +sub_81040C8: @ 812D20C ldr r2, =gTasks ldr r0, =sSlotMachine ldr r0, [r0] @@ -4353,7 +3093,7 @@ sub_812D20C: @ 812D20C lsrs r0, 24 bx lr .pool - thumb_func_end sub_812D20C + thumb_func_end sub_81040C8 thumb_func_start sub_812D230 sub_812D230: @ 812D230 @@ -4780,7 +3520,7 @@ sub_812D51C: @ 812D51C bl sub_812E650 bl sub_812E70C bl sub_812E7CC - bl sub_812B700 + bl sub_8102680 bl StopMapMusic movs r0, 0xC4 lsls r0, 1 @@ -5066,7 +3806,7 @@ _0812D7B8: b _0812D7D4 _0812D7C6: ldrh r0, [r4, 0x14] - bl sub_812B760 + bl sub_81026DC lsls r0, 24 cmp r0, 0 beq _0812D7D6 @@ -5246,7 +3986,7 @@ sub_812D920: @ 812D920 cmp r0, 0 bne _0812D948 _0812D938: - bl sub_812D20C + bl sub_81040C8 lsls r0, 24 cmp r0, 0 bne _0812D948 @@ -6306,7 +5046,7 @@ sub_812E154: @ 812E154 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 - bl sub_812BC44 + bl GetTagOfReelSymbolOnScreenAtPos lsls r0, 24 lsrs r0, 24 bl GetSpriteTileStartByTag diff --git a/data/slot_machine.s b/data/slot_machine.s index b704cdb7a2..0896d6348a 100644 --- a/data/slot_machine.s +++ b/data/slot_machine.s @@ -20,36 +20,36 @@ gUnknown_085A7444:: @ 85A7444 gUnknown_085A744C:: @ 85A744C .byte 3, 1, 2, 0 -gUnknown_085A7450:: @ 85A7450 - .4byte sub_812AB04 - .4byte sub_812AB38 - .4byte sub_812AB60 - .4byte sub_812ABA8 - .4byte sub_812ABC8 - .4byte sub_812ABF8 - .4byte sub_812ACF4 - .4byte sub_812AD34 - .4byte sub_812AD60 - .4byte sub_812AD80 - .4byte sub_812ADF4 - .4byte sub_812AE24 - .4byte sub_812AE4C - .4byte sub_812AE88 - .4byte sub_812AEC4 - .4byte sub_812AFFC - .4byte sub_812B01C - .4byte sub_812B094 - .4byte sub_812B0D8 - .4byte sub_812B108 - .4byte sub_812B130 - .4byte sub_812B158 - .4byte sub_812B1B0 - .4byte sub_812B214 - .4byte sub_812B254 - .4byte sub_812B280 - .4byte sub_812B2C0 - .4byte sub_812B2EC - .4byte sub_812B32C +gUnknown_083ECAAC:: @ 85A7450 + .4byte sub_8101D5C + .4byte sub_8101D8C + .4byte sub_8101DB0 + .4byte sub_8101DF4 + .4byte sub_8101E10 + .4byte sub_8101E3C + .4byte sub_8101F44 + .4byte sub_8101F60 + .4byte sub_8101F88 + .4byte sub_8101FA4 + .4byte sub_8102008 + .4byte sub_8102034 + .4byte sub_8102058 + .4byte sub_8102090 + .4byte sub_81020C8 + .4byte sub_81021E0 + .4byte sub_81021FC + .4byte sub_8102264 + .4byte sub_81022A0 + .4byte sub_81022CC + .4byte sub_81022F0 + .4byte sub_8102318 + .4byte sub_8102344 + .4byte sub_810239C + .4byte sub_81023B8 + .4byte sub_81023E0_ + .4byte sub_81023FC + .4byte sub_8102424 + .4byte sub_8102460 gUnknown_085A74C4:: @ 85A74C4 .4byte sub_812BB34 @@ -203,10 +203,10 @@ gUnknown_085A766E:: @ 85A766E gUnknown_085A76AD:: @ 85A76AD .byte 1, 0, 5, 4, 3, 2, 0 -gUnknown_085A76B4:: @ 85A76B4 +gUnknown_083ECCF8:: @ 85A76B4 .2byte 0, 6, 0, 10, 0, 2 -gUnknown_085A76C0:: @ 85A76C0 +gUnknown_083ECD04:: @ 85A76C0 .byte 1, 1, 12 .byte 1, 1, 14 .byte 2, 2, 14 @@ -214,19 +214,19 @@ gUnknown_085A76C0:: @ 85A76C0 .byte 2, 3, 16 .byte 3, 3, 16 -gUnknown_085A76D2:: @ 85A76D2 +gUnknown_083ECD16:: @ 85A76D2 .byte 0x19, 0x19, 0x1E, 0x28, 0x28, 0x32 .byte 0x19, 0x19, 0x1E, 0x1E, 0x23, 0x23 .byte 0x19, 0x19, 0x1E, 0x19, 0x19, 0x1E -gUnknown_085A76E4:: @ 85A76E4 +gUnknown_083ECD28:: @ 85A76E4 .byte 0x14, 0x19, 0x19, 0x14, 0x19, 0x19 .byte 0xC, 0xF, 0xF, 0x12, 0x13, 0x16 .byte 0x19, 0x19, 0x19, 0x1E, 0x1E, 0x28 .byte 0x19, 0x19, 0x14, 0x14, 0xF, 0xF .byte 0x28, 0x28, 0x23, 0x23, 0x28, 0x28 -gUnknown_085A7702:: @ 85A7702 +gUnknown_083ECD46:: @ 85A7702 .byte 0xF3, 0xF3, 0xF3, 0x50, 0x50, 0x50, 0x50, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x5, 0x5, 0x5, 0x5 .byte 0x5, 0x5, 0x5, 0x96, 0x96, 0x96, 0x96, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x64, 0x64, 0x64, 0x5 .byte 0x4, 0x4, 0x4, 0x14, 0x14, 0x14, 0x14, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x64, 0x64, 0x64, 0x28 @@ -234,7 +234,7 @@ gUnknown_085A7702:: @ 85A7702 .byte 0x1, 0x1, 0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x5, 0x5, 0x5, 0x64 .byte 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x6 -gUnknown_085A7768:: @ 85A7768 +gUnknown_083ECDAC:: @ 85A7768 .byte 0xF3, 0xF3, 0xF3, 0xC8, 0xC8, 0xC8, 0xC8, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0x46, 0x46, 0x46, 0x05 .byte 0x05, 0x05, 0x05, 0x19, 0x19, 0x19, 0x19, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x02, 0x02, 0x02, 0x06 .byte 0x04, 0x04, 0x04, 0x19, 0x19, 0x19, 0x19, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x28, 0x28, 0x28, 0x23 @@ -242,45 +242,45 @@ gUnknown_085A7768:: @ 85A7768 .byte 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x28, 0x28, 0x28, 0x64 .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x04, 0x3C -gUnknown_085A77CE:: @ 85A77CE +gUnknown_083ECE12:: @ 85A77CE .2byte 0x80, 0xAF, 0xC8, 0xE1, 0x100 -gUnknown_085A77D8:: @ 85A77D8 +gUnknown_083ECE1C:: @ 85A77D8 .byte 10, 0, 5, 0 .byte 10, 0, 10, 0 .byte 10, 0, 15, 0 .byte 10, 0, 25, 0 .byte 10, 0, 35, 0 -gUnknown_085A77EC:: @ 85A77EC +gUnknown_083ECE30:: @ 85A77EC .byte 0, 0 .byte 5, 0 .byte 10, 0 .byte 15, 0 .byte 20, 0 -gUnknown_085A77F6:: @ 85A77F6 +gUnknown_083ECE3A:: @ 85A77F6 .byte 6, 4, 3, 2, 5, 0, 0, 0 -gUnknown_085A77FE:: @ 85A77FE +gUnknown_083ECE42:: @ 85A77FE .byte 0x80, 0 .byte 0x20, 0 .byte 0x40, 0 -gUnknown_085A7804:: @ 85A7804 +gUnknown_083ECE48:: @ 85A7804 .byte 16, 0 .byte 8, 0 .byte 4, 0 .byte 2, 0 .byte 1, 0 -gUnknown_085A780E:: @ 85A780E +sSym2Match:: @ 85A780E .byte 7, 8, 4, 3, 0, 5, 2, 0 -gUnknown_085A7816:: @ 85A7816 +sSlotMatchFlags:: @ 85A7816 .2byte 1, 2, 4, 8, 16, 32, 64, 128, 256 -gUnknown_085A7828:: @ 85A7828 +sSlotPayouts:: @ 85A7828 .2byte 2, 4, 0, 6, 12, 3, 0x5A, 0x12C, 0x12C gUnknown_085A783A:: @ 85A783A diff --git a/include/main_menu.h b/include/main_menu.h index 08cd913dcb..4f75b17679 100644 --- a/include/main_menu.h +++ b/include/main_menu.h @@ -2,5 +2,6 @@ #define GUARD_MAIN_MENU_H void CB2_InitMainMenu(void); +void sub_80323CC(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f); #endif // GUARD_MAIN_MENU_H diff --git a/src/slot_machine.c b/src/slot_machine.c index 02e842ce92..fd4726879a 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -21,7 +21,7 @@ #include "tv.h" #include "text_window.h" #include "constants/rgb.h" -#include "menu.h" +#include "main_menu.h" enum { @@ -155,13 +155,13 @@ bool8 sub_81020C8(struct Task *task); /*static*/bool8 sub_8102344(struct Task *task); /*static*/bool8 sub_810239C(struct Task *task); /*static*/bool8 sub_81023B8(struct Task *task); -/*static*/bool8 sub_81023E0(struct Task *task); +/*static*/bool8 sub_81023E0_(struct Task *task); /*static*/bool8 sub_81023FC(struct Task *task); /*static*/bool8 sub_8102424(struct Task *task); /*static*/bool8 sub_8102460(struct Task *task); /*static*/void sub_8102484(void); /*static*/void sub_81024F0(void); -/*static*/bool8 sub_8102540(void); +/*static*/bool8 sub_8102540_(void); /*static*/u8 sub_8102578(void); /*static*/u16 dp15_jump_random_unknown(void); /*static*/u8 sub_81025BC(void); @@ -539,9 +539,33 @@ void SlotMachineSetup_3_0(void) ResetTasks(); } +extern u16 *gUnknown_0203AAC8; extern u16 *gUnknown_0203AACC; extern u16 *gUnknown_0203AAD0; extern u16 *gUnknown_0203AADC; +extern void *gUnknown_0203AAF4; +extern void *gUnknown_0203AAF8; +extern void *gUnknown_0203AAFC; +extern void *gUnknown_0203AB00; +extern void *gUnknown_0203AB04; +extern void *gUnknown_0203AB08; +extern void *gUnknown_0203AB0C; +extern void *gUnknown_0203AB10; +extern void *gUnknown_0203AB14; +extern void *gUnknown_0203AB18; +extern void *gUnknown_0203AB1C; +extern void *gUnknown_0203AB20; +extern void *gUnknown_0203AB24; +extern void *gUnknown_0203AB28; +extern void *gUnknown_0203AAE4; +extern void *gUnknown_0203AAE8; +extern void *gUnknown_0203AAEC; +extern void *gUnknown_0203AAF0; +extern void *gUnknown_0203AAD4; +extern void *gUnknown_0203AAD8; +extern void *gUnknown_0203AAE0; +extern void *gUnknown_0203AB2C; +extern void *gUnknown_0203AB30; void SlotMachineSetup_4_0(void) { @@ -694,6 +718,9 @@ bool8 sub_8101E3C(struct Task *task) } extern const u8 gText_YouDontHaveThreeCoins[]; +extern const u8 gText_QuitTheGame[]; +extern const u8 gText_YouveGot9999Coins[]; +extern const u8 gText_YouveRunOutOfCoins[]; bool8 sub_8101F44(struct Task *task) { @@ -885,3 +912,455 @@ bool8 sub_81021FC(struct Task *task) } return FALSE; } + +bool8 sub_8102264(struct Task *task) +{ + if (!sub_81040C8()) + { + sSlotMachine->state = 19; + if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + { + sSlotMachine->state = 9; + if (sSlotMachine->unk0A) + { + sub_8104CAC(4); + sSlotMachine->state = 18; + } + } + } + return FALSE; +} + +bool8 sub_81022A0(struct Task *task) +{ + if (sub_8104E18()) + { + sSlotMachine->state = 19; + if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + { + sSlotMachine->state = 9; + } + } + return FALSE; +} + +bool8 sub_81022CC(struct Task *task) +{ + sub_8103D8C(0); + sub_8103D8C(1); + sub_8103D8C(2); + sSlotMachine->state = 2; + return FALSE; +} + +bool8 sub_81022F0(struct Task *task) +{ + if (++task->data[1] > 64) + { + task->data[1] = 0; + sSlotMachine->state = 19; + } + return FALSE; +} + +bool8 sub_8102318(struct Task *task) +{ + NewMenuHelpers_DrawDialogueFrame(0, 0); + PrintTextOnWindow(0, 1, gText_QuitTheGame, 0, 1, 0, 0); + CopyWindowToVram(0, 3); + sub_80323CC(0x15, 7, 0x214, 0x180, 0xE, 0xF); + sSlotMachine->state = 22; + return FALSE; +} + +bool8 sub_8102344(struct Task *task) +{ + s8 input = ProcessMenuInputNoWrap_(); + if (input == 0) + { + sub_8197434(0, TRUE); + sub_8103D8C(0); + sub_8103D8C(1); + sub_8103D8C(2); + sSlotMachine->coins += sSlotMachine->bet; + sSlotMachine->state = 27; + } + else if (input == 1 || input == -1) + { + sub_8197434(0, TRUE); + sSlotMachine->state = 5; + } + return FALSE; +} + +bool8 sub_810239C(struct Task *task) +{ + NewMenuHelpers_DrawDialogueFrame(0, 0); + PrintTextOnWindow(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); + CopyWindowToVram(0, 3); + sSlotMachine->state = 24; + return FALSE; +} + +bool8 sub_81023B8(struct Task *task) +{ + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + sub_8197434(0, TRUE); + sSlotMachine->state = 5; + } + return FALSE; +} + +bool8 sub_81023E0_(struct Task *task) +{ + NewMenuHelpers_DrawDialogueFrame(0, 0); + PrintTextOnWindow(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); + CopyWindowToVram(0, 3); + sSlotMachine->state = 26; + return FALSE; +} + +bool8 sub_81023FC(struct Task *task) +{ + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + sub_8197434(0, TRUE); + sSlotMachine->state = 27; + } + return FALSE; +} + +bool8 sub_8102424(struct Task *task) +{ + SetCoins(sSlotMachine->coins); + sub_80EDD78(GetCoins()); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + sSlotMachine->state++; + return FALSE; +} + +bool8 sub_8102460(struct Task *task) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(sSlotMachine->prevMainCb); + FREE_AND_SET_NULL(gUnknown_0203AAF4); + FREE_AND_SET_NULL(gUnknown_0203AAF8); + FREE_AND_SET_NULL(gUnknown_0203AAFC); + FREE_AND_SET_NULL(gUnknown_0203AB00); + FREE_AND_SET_NULL(gUnknown_0203AB04); + FREE_AND_SET_NULL(gUnknown_0203AB08); + FREE_AND_SET_NULL(gUnknown_0203AB0C); + FREE_AND_SET_NULL(gUnknown_0203AB10); + FREE_AND_SET_NULL(gUnknown_0203AB14); + FREE_AND_SET_NULL(gUnknown_0203AB18); + FREE_AND_SET_NULL(gUnknown_0203AB1C); + FREE_AND_SET_NULL(gUnknown_0203AB20); + FREE_AND_SET_NULL(gUnknown_0203AB24); + FREE_AND_SET_NULL(gUnknown_0203AB28); + if (gUnknown_0203AAE4 != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAE4); + if (gUnknown_0203AAE8 != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAE8); + if (gUnknown_0203AAEC != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAEC); + if (gUnknown_0203AAF0 != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAF0); + FREE_AND_SET_NULL(gUnknown_0203AAC8); + FREE_AND_SET_NULL(gUnknown_0203AACC); + FREE_AND_SET_NULL(gUnknown_0203AAD0); + FREE_AND_SET_NULL(gUnknown_0203AAD4); + FREE_AND_SET_NULL(gUnknown_0203AAD8); + FREE_AND_SET_NULL(gUnknown_0203AADC); + FREE_AND_SET_NULL(gUnknown_0203AAE0); + FREE_AND_SET_NULL(gUnknown_0203AB2C); + FREE_AND_SET_NULL(gUnknown_0203AB30); + + FREE_AND_SET_NULL(sSlotMachine); + } + return FALSE; +} + +void sub_8102484(void) +{ + u8 r3; + + if (sSlotMachine->unk0A == 0) + { + if (!(sSlotMachine->unk04 & 0xc0)) + { + if (sub_8102540_()) + { + r3 = sub_8102578(); + if (r3 != 3) + { + sSlotMachine->unk04 |= gUnknown_083ECE42[r3]; + if (r3 != 1) + { + return; + } + } + } + r3 = sub_81025BC(); + if (r3 != 5) + { + sSlotMachine->unk04 |= gUnknown_083ECE48[r3]; + } + } + } +} + +void sub_81024F0(void) +{ + sSlotMachine->unk06 = 0; + if (sSlotMachine->unk04) + sSlotMachine->unk06 = 1; +} + +u8 sub_810250C(u8 a0) +{ + u8 i; + + for (i = 0; i < 8; i++) + { + if (a0 & 1) + return gUnknown_083ECE3A[i]; + a0 >>= 1; + } + return 0; +} + +bool8 sub_8102540_(void) +{ + u8 rval = Random(); + if (gUnknown_083ECD04[sSlotMachine->unk01][sSlotMachine->bet - 1] > rval) + return TRUE; + return FALSE; +} + +extern const u8 gUnknown_083ECD16[][6]; +extern const u8 gUnknown_083ECD28[][6]; +extern const u8 gUnknown_083ECD46[][17]; +extern const u8 gUnknown_083ECDAC[][17]; + +u8 sub_8102578(void) +{ + s16 i; + + for (i = 0; i < 3; i++) + { + s16 rval = Random() & 0xff; + s16 value = gUnknown_083ECD16[i][sSlotMachine->unk01]; + if (value > rval) + break; + } + return i; +} + +u8 sub_81025BC(void) +{ + s16 i; + + for (i = 0; i < 5; i++) + { + s16 rval = Random() & 0xff; + s16 r3 = gUnknown_083ECD28[i][sSlotMachine->unk01]; + if (i == 0 && sSlotMachine->unk03 == 1) + { + r3 += 10; + if (r3 > 0x100) + r3 = 0x100; + } + else if (i == 4 && sSlotMachine->unk03 == 1) + { + r3 -= 10; + if (r3 < 0) + r3 = 0; + } + if (r3 > rval) + break; + } + return i; +} + +u8 sub_810264C(u8 a0) +{ + if (sSlotMachine->unk03 == 0) + return gUnknown_083ECD46[a0][sSlotMachine->pikaPower]; + else + return gUnknown_083ECDAC[a0][sSlotMachine->pikaPower]; +} + +void sub_8102680(void) +{ + u8 rval; + s16 i; + + sSlotMachine->unk05 = 0; + rval = Random(); + if (rval < sub_810264C(0)) + return; + for (i = 5; i > 0; i--) + { + rval = Random(); + if (rval < sub_810264C(i)) + break; + } + sSlotMachine->unk05 = i; +} + +extern const u16 gUnknown_083ECE12[]; +extern const u16 gUnknown_083ECE1C[][2]; +extern const u16 gUnknown_083ECE30[]; +extern const u16 sSlotMatchFlags[]; +extern const u16 sSlotPayouts[]; + +bool8 sub_81026DC(u16 a0) +{ + u16 rval = Random() & 0xff; + if (rval < gUnknown_083ECE12[a0]) + return TRUE; + else + return FALSE; +} + +u16 dp15_jump_random_unknown(void) +{ + u8 r4 = 0; + u8 rval; + u8 value; + if (sSlotMachine->unk10 >= 300) + r4 = 4; + else if (sSlotMachine->unk10 >= 250) + r4 = 3; + else if (sSlotMachine->unk10 >= 200) + r4 = 2; + else if (sSlotMachine->unk10 >= 150) + r4 = 1; + rval = Random() % 100; + value = gUnknown_083ECE1C[r4][0]; + if (rval < value) + return 4; + rval = Random() % 100; + value = gUnknown_083ECE1C[r4][1] + gUnknown_083ECE30[sSlotMachine->unk0B]; + if (rval < value) + return 2; + return 8; +} + +void CheckMatch(void) +{ + sSlotMachine->matchedSymbols = 0; + CheckMatch_CenterRow(); + if (sSlotMachine->bet > 1) + CheckMatch_TopAndBottom(); + if (sSlotMachine->bet > 2) + CheckMatch_Diagonals(); +} + +void CheckMatch_CenterRow(void) +{ + u8 c1, c2, c3, match; + + c1 = GetTagOfReelSymbolOnScreenAtPos(0, 2); + c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2); + c3 = GetTagOfReelSymbolOnScreenAtPos(2, 2); + match = GetMatchFromSymbolsInRow(c1, c2, c3); + if (match != SLOT_MACHINE_MATCHED_NONE) + { + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sub_8103E04(0); + } +} + +void CheckMatch_TopAndBottom(void) +{ + u8 c1, c2, c3, match; + + c1 = GetTagOfReelSymbolOnScreenAtPos(0, 1); + c2 = GetTagOfReelSymbolOnScreenAtPos(1, 1); + c3 = GetTagOfReelSymbolOnScreenAtPos(2, 1); + match = GetMatchFromSymbolsInRow(c1, c2, c3); + if (match != SLOT_MACHINE_MATCHED_NONE) + { + if (match == SLOT_MACHINE_MATCHED_1CHERRY) + match = SLOT_MACHINE_MATCHED_2CHERRY; + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sub_8103E04(1); + } + c1 = GetTagOfReelSymbolOnScreenAtPos(0, 3); + c2 = GetTagOfReelSymbolOnScreenAtPos(1, 3); + c3 = GetTagOfReelSymbolOnScreenAtPos(2, 3); + match = GetMatchFromSymbolsInRow(c1, c2, c3); + if (match != SLOT_MACHINE_MATCHED_NONE) + { + if (match == SLOT_MACHINE_MATCHED_1CHERRY) + match = SLOT_MACHINE_MATCHED_2CHERRY; + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sub_8103E04(2); + } +} + +void CheckMatch_Diagonals(void) +{ + u8 c1, c2, c3, match; + + c1 = GetTagOfReelSymbolOnScreenAtPos(0, 1); + c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2); + c3 = GetTagOfReelSymbolOnScreenAtPos(2, 3); + match = GetMatchFromSymbolsInRow(c1, c2, c3); + if (match != SLOT_MACHINE_MATCHED_NONE) + { + if (match != SLOT_MACHINE_MATCHED_1CHERRY) + { + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + } + sub_8103E04(3); + } + c1 = GetTagOfReelSymbolOnScreenAtPos(0, 3); + c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2); + c3 = GetTagOfReelSymbolOnScreenAtPos(2, 1); + match = GetMatchFromSymbolsInRow(c1, c2, c3); + if (match != SLOT_MACHINE_MATCHED_NONE) + { + if (match != SLOT_MACHINE_MATCHED_1CHERRY) + { + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + } + sub_8103E04(4); + } +} + +extern const u8 sSym2Match[]; + +u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) +{ + if (c1 == c2 && c1 == c3) + return sSym2Match[c1]; + if (c1 == SLOT_MACHINE_TAG_7_RED && c2 == SLOT_MACHINE_TAG_7_RED && c3 == SLOT_MACHINE_TAG_7_BLUE) + return SLOT_MACHINE_MATCHED_777_MIXED; + if (c1 == SLOT_MACHINE_TAG_7_BLUE && c2 == SLOT_MACHINE_TAG_7_BLUE && c3 == SLOT_MACHINE_TAG_7_RED) + return SLOT_MACHINE_MATCHED_777_MIXED; + if (c1 == SLOT_MACHINE_TAG_CHERRY) + return SLOT_MACHINE_MATCHED_1CHERRY; + return SLOT_MACHINE_MATCHED_NONE; +} + +void sub_8102A24(void) +{ + sub_8102A64(CreateTask(sub_8102A64, 4)); +} + +bool8 sub_8102A44(void) +{ + if (FindTaskIdByFunc(sub_8102A64) == 0xff) + return TRUE; + else + return FALSE; +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 9a08597a83..4cf633c863 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -593,7 +593,7 @@ gUnknown_0203AB2C: @ 203AB2C gUnknown_0203AB30: @ 203AB30 .space 0x4 -gUnknown_0203AB34: @ 203AB34 +sSlotMachine: @ 203AB34 .space 0x4 .include "src/battle_ai_script_commands.o" From feee4751eb504f9e6cec67f53c43ee849f42fbc3 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 11 Aug 2018 22:54:34 +0200 Subject: [PATCH 069/174] Make event data look cleaner --- src/event_data.c | 72 +++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 37 deletions(-) diff --git a/src/event_data.c b/src/event_data.c index efd439a3c4..e42f5d5140 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -47,7 +47,7 @@ void ClearTempFieldEventData(void) FlagClear(FLAG_0x880); } -// probably had different flag splits at one point. +// Probably had different flag splits at one point. void ClearUpperFlags(void) { memset(gSaveBlock1Ptr->flags + 0x124, 0, TEMP_UPPER_FLAGS_SIZE); @@ -112,34 +112,34 @@ bool32 IsMysteryGiftEnabled(void) void sub_809D4D8(void) { - FlagClear(0x1E4); - FlagClear(0x1E5); - FlagClear(0x1E6); - FlagClear(0x1E7); - FlagClear(0x1E8); - FlagClear(0x1E9); - FlagClear(0x1EA); - FlagClear(0x1EB); - FlagClear(0x1EC); - FlagClear(0x1ED); - FlagClear(0x1EE); - FlagClear(0x1EF); - FlagClear(0x1F0); - FlagClear(0x1F1); - FlagClear(0x1F2); - FlagClear(0x1F3); + FlagClear(FLAG_MYSTERY_EVENT_DONE); + FlagClear(FLAG_0x1E5); + FlagClear(FLAG_0x1E6); + FlagClear(FLAG_0x1E7); + FlagClear(FLAG_0x1E8); + FlagClear(FLAG_0x1E9); + FlagClear(FLAG_0x1EA); + FlagClear(FLAG_0x1EB); + FlagClear(FLAG_0x1EC); + FlagClear(FLAG_0x1ED); + FlagClear(FLAG_0x1EE); + FlagClear(FLAG_0x1EF); + FlagClear(FLAG_0x1F0); + FlagClear(FLAG_0x1F1); + FlagClear(FLAG_0x1F2); + FlagClear(FLAG_0x1F3); } void sub_809D570(void) { - VarSet(0x40DD, 0); - VarSet(0x40DE, 0); - VarSet(0x40DF, 0); - VarSet(0x40E0, 0); - VarSet(0x40E1, 0); - VarSet(0x40E2, 0); - VarSet(0x40E3, 0); - VarSet(0x40E4, 0); + VarSet(VAR_EVENT_PICHU_SLOT, 0); + VarSet(VAR_0x40DE, 0); + VarSet(VAR_0x40DF, 0); + VarSet(VAR_0x40E0, 0); + VarSet(VAR_0x40E1, 0); + VarSet(VAR_0x40E2, 0); + VarSet(VAR_0x40E3, 0); + VarSet(VAR_0x40E4, 0); } void DisableResetRTC(void) @@ -164,13 +164,12 @@ bool32 CanResetRTC(void) u16 *GetVarPointer(u16 id) { - if (id < 0x4000) + if (id < VARS_START) return NULL; - - if ((s16)id >= 0) - return &gSaveBlock1Ptr->vars[id - 0x4000]; - - return gSpecialVars[id - 0x8000]; + else if (id < VAR_0x8000) + return &gSaveBlock1Ptr->vars[id - VARS_START]; + else + return gSpecialVars[id - VAR_0x8000]; } u16 VarGet(u16 id) @@ -192,18 +191,17 @@ bool8 VarSet(u16 id, u16 value) u8 VarGetEventObjectGraphicsId(u8 id) { - return VarGet(0x4010 + id); + return VarGet(VAR_OBJ_GFX_ID_0 + id); } u8 *GetFlagPointer(u16 id) { if (id == 0) - return 0; - - if (id < 0x4000) + return NULL; + else if (id < FLAG_SPECIAL_FLAG_0x4000) return &gSaveBlock1Ptr->flags[id / 8]; - - return &gUnknown_020375FC[(id - 0x4000) / 8]; + else + return &gUnknown_020375FC[(id - FLAG_SPECIAL_FLAG_0x4000) / 8]; } u8 FlagSet(u16 id) From 7f167ca9f49c258e4c97e25430e2619a2ddd490f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 11 Aug 2018 23:00:16 +0200 Subject: [PATCH 070/174] Update battle_script_commands.c --- src/battle_script_commands.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 5c0b78240f..7f5a4fb487 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -7230,7 +7230,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) PREPARE_STAT_BUFFER(gBattleTextBuff1, statId) - if ((statValue << 0x18) < 0) // stat decrease + if (statValue <= -1) // Stat decrease. { if (gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].mistTimer && !certain && gCurrentMove != MOVE_CURSE) From b54793be91b1937d059751ea928112052a2429e0 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 11 Aug 2018 14:51:54 -0700 Subject: [PATCH 071/174] Finish decompiling field_specials --- asm/field_specials.s | 1320 --------------- data/event_scripts.s | 8 +- data/field_specials.s | 23 - .../scripts.inc | 132 +- data/specials.inc | 8 +- include/cable_club.h | 3 + include/constants/flags.h | 8 +- include/constants/vars.h | 6 +- include/field_screen.h | 1 + include/global.h | 10 + include/match_call.h | 2 + include/strings.h | 9 + ld_script.txt | 2 - src/field_specials.c | 1421 +++++++++++------ sym_ewram.txt | 4 - 15 files changed, 1060 insertions(+), 1897 deletions(-) delete mode 100644 asm/field_specials.s delete mode 100644 data/field_specials.s diff --git a/asm/field_specials.s b/asm/field_specials.s deleted file mode 100644 index aa4699b742..0000000000 --- a/asm/field_specials.s +++ /dev/null @@ -1,1320 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_813B484 -sub_813B484: @ 813B484 - push {lr} - movs r0, 0x2 - bl sub_80AB104 - pop {r0} - bx r0 - thumb_func_end sub_813B484 - - thumb_func_start sub_813B490 -sub_813B490: @ 813B490 - push {r4-r7,lr} - movs r3, 0 - ldr r0, =gSaveBlock1Ptr - ldr r4, [r0] - movs r6, 0x4 - ldrsb r6, [r4, r6] - ldr r5, =gUnknown_085B3420 - adds r0, r5, 0x2 - mov r12, r0 - adds r7, r5, 0x1 -_0813B4A4: - lsls r0, r3, 1 - adds r2, r0, r3 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r6, r0 - bne _0813B4CC - movs r1, 0x5 - ldrsb r1, [r4, r1] - adds r0, r2, r7 - ldrb r0, [r0] - cmp r1, r0 - bne _0813B4CC - mov r1, r12 - adds r0, r2, r1 - ldrb r0, [r0] - b _0813B4D8 - .pool -_0813B4CC: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xB - bls _0813B4A4 - movs r0, 0x1 -_0813B4D8: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_813B490 - - thumb_func_start sub_813B4E0 -sub_813B4E0: @ 813B4E0 - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - bl GetRematchIdxByTrainerIdx - cmp r0, 0 - blt _0813B50C - movs r1, 0xAE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813B50C - movs r0, 0x1 - b _0813B50E - .pool -_0813B50C: - movs r0, 0 -_0813B50E: - pop {r1} - bx r1 - thumb_func_end sub_813B4E0 - - thumb_func_start sub_813B514 -sub_813B514: @ 813B514 - push {lr} - ldr r0, =0x0000403f - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _0813B52C - movs r0, 0x1 - b _0813B52E - .pool -_0813B52C: - movs r0, 0 -_0813B52E: - pop {r1} - bx r1 - thumb_func_end sub_813B514 - - thumb_func_start sub_813B534 -sub_813B534: @ 813B534 - push {lr} - ldr r2, =gUnknown_0203AB70 - ldr r1, =gBattleTypeFlags - ldr r0, [r1] - str r0, [r2] - movs r0, 0 - str r0, [r1] - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0813B552 - ldr r0, =sub_80B3AF8 - movs r1, 0x5 - bl CreateTask -_0813B552: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B534 - - thumb_func_start sub_813B568 -sub_813B568: @ 813B568 - push {lr} - ldr r0, =sub_813B57C - movs r1, 0x5 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B568 - - thumb_func_start sub_813B57C -sub_813B57C: @ 813B57C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x9 - bls _0813B596 - b _0813B7C6 -_0813B596: - lsls r0, 2 - ldr r1, =_0813B5A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0813B5A8: - .4byte _0813B5D0 - .4byte _0813B5E4 - .4byte _0813B614 - .4byte _0813B6B4 - .4byte _0813B6E4 - .4byte _0813B728 - .4byte _0813B764 - .4byte _0813B772 - .4byte _0813B784 - .4byte _0813B7A8 -_0813B5D0: - ldr r0, =sub_80B3AF8 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _0813B5DE - b _0813B7C6 -_0813B5DE: - b _0813B790 - .pool -_0813B5E4: - bl sub_800A520 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0813B5F2 - b _0813B7C6 -_0813B5F2: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _0813B5FE - b _0813B790 -_0813B5FE: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSpecialVar_0x8004 - movs r2, 0x2 - bl SendBlock - b _0813B708 - .pool -_0813B614: - bl GetBlockReceivedStatus - movs r1, 0x2 - ands r1, r0 - cmp r1, 0 - bne _0813B622 - b _0813B7C6 -_0813B622: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - beq _0813B62E - b _0813B790 -_0813B62E: - ldr r5, =gSpecialVar_0x8005 - ldr r0, =gBlockRecvBuffer - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r5] - movs r0, 0x1 - bl ResetBlockReceivedFlag - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0x1 - bne _0813B668 - ldrh r1, [r5] - cmp r1, 0x1 - bne _0813B668 - ldr r0, =gSpecialVar_Result - strh r1, [r0] - b _0813B790 - .pool -_0813B668: - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - adds r2, r0, 0 - cmp r1, 0 - bne _0813B68C - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x1 - bne _0813B68C - ldr r1, =gSpecialVar_Result - movs r0, 0x2 - b _0813B6AC - .pool -_0813B68C: - ldrh r0, [r2] - cmp r0, 0x1 - bne _0813B6A8 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - bne _0813B6A8 - ldr r1, =gSpecialVar_Result - movs r0, 0x3 - b _0813B6AC - .pool -_0813B6A8: - ldr r1, =gSpecialVar_Result - movs r0, 0 -_0813B6AC: - strh r0, [r1] - b _0813B790 - .pool -_0813B6B4: - bl sub_800A520 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0813B6C2 - b _0813B7C6 -_0813B6C2: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _0813B790 - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSpecialVar_Result - movs r2, 0x2 - bl SendBlock - b _0813B708 - .pool -_0813B6E4: - bl GetBlockReceivedStatus - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0813B7C6 - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - beq _0813B790 - ldr r1, =gSpecialVar_Result - ldr r0, =gBlockRecvBuffer - ldrh r0, [r0] - strh r0, [r1] - movs r0, 0 - bl ResetBlockReceivedFlag -_0813B708: - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _0813B7C6 - .pool -_0813B728: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _0813B74C - ldr r0, =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x2 - bne _0813B790 - ldr r0, =gText_YourPartnerHasRetired - bl ShowFieldAutoScrollMessage - b _0813B790 - .pool -_0813B74C: - ldr r0, =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x3 - bne _0813B790 - ldr r0, =gText_YourPartnerHasRetired - bl ShowFieldAutoScrollMessage - b _0813B790 - .pool -_0813B764: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0813B7C6 - b _0813B790 -_0813B772: - bl sub_800A520 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813B7C6 - bl sub_800ADF8 - b _0813B790 -_0813B784: - bl sub_800A520 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813B7C6 -_0813B790: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0813B7C6 - .pool -_0813B7A8: - ldr r0, =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - bne _0813B7B4 - bl sub_800AC34 -_0813B7B4: - ldr r0, =gBattleTypeFlags - ldr r1, =gUnknown_0203AB70 - ldr r1, [r1] - str r1, [r0] - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask -_0813B7C6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B57C - - thumb_func_start sub_813B7D8 -sub_813B7D8: @ 813B7D8 - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _0813B7F8 - ldr r2, =CB2_ReturnToFieldContinueScriptPlayMapMusic - movs r0, 0 - movs r1, 0x1 - bl DoRayquazaScene - b _0813B802 - .pool -_0813B7F8: - ldr r2, =CB2_ReturnToFieldContinueScriptPlayMapMusic - movs r0, 0x1 - movs r1, 0 - bl DoRayquazaScene -_0813B802: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B7D8 - - thumb_func_start sub_813B80C -sub_813B80C: @ 813B80C - push {lr} - ldr r0, =sub_813B824 - movs r1, 0x8 - bl CreateTask - movs r0, 0x9D - bl PlaySE - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B80C - - thumb_func_start sub_813B824 -sub_813B824: @ 813B824 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r1, r0 - bne _0813B858 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - movs r0, 0 - strh r0, [r4, 0x2] - movs r0, 0x9D - bl PlaySE -_0813B858: - movs r0, 0 - ldrsh r1, [r4, r0] - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _0813B86C - adds r0, r5, 0 - bl DestroyTask -_0813B86C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B824 - - thumb_func_start sub_813B880 -sub_813B880: @ 813B880 - push {lr} - ldr r0, =_fwalk - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - movs r0, 0x4 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - strh r0, [r1, 0xC] - strh r2, [r1, 0xE] - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B880 - - thumb_func_start _fwalk -_fwalk: @ 813B8B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r0, 2 - add r0, r9 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - movs r0, 0x6 - ldrsh r1, [r5, r0] - lsls r1, 1 - adds r1, r5 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - movs r1, 0x6 - ldrsh r0, [r5, r1] - lsls r0, 1 - adds r0, r5 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _0813B94E - movs r6, 0 -_0813B8EA: - movs r4, 0 - lsls r3, r6, 3 - mov r10, r3 - adds r7, r6, 0x1 - mov r8, r7 -_0813B8F4: - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - movs r2, 0 - ldrsh r0, [r1, r2] - adds r0, r4 - adds r0, 0x6 - movs r3, 0x2 - ldrsh r1, [r1, r3] - adds r1, r6 - adds r1, 0x4 - ldr r7, =0x00000201 - adds r2, r4, r7 - add r2, r10 - movs r7, 0x6 - ldrsh r3, [r5, r7] - lsls r3, 5 - adds r2, r3 - lsls r2, 16 - lsrs r2, 16 - bl MapGridSetMetatileIdAt - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0813B8F4 - mov r1, r8 - lsls r0, r1, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _0813B8EA - bl DrawWholeMapView - ldrh r0, [r5, 0x6] - adds r0, 0x1 - strh r0, [r5, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _0813B94E - mov r0, r9 - bl DestroyTask - bl EnableBothScriptContexts -_0813B94E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end _fwalk - - thumb_func_start sub_813B968 -sub_813B968: @ 813B968 - push {r4,r5,lr} - ldr r5, =gSpecialVar_Result - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - movs r1, 0x7 - bl __udivsi3 - strh r0, [r5] - ldrh r4, [r5] - adds r0, r4, 0 - movs r1, 0x14 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - subs r4, r1 - strh r4, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B968 - - thumb_func_start sub_813B9A0 -sub_813B9A0: @ 813B9A0 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x1C] - movs r0, 0xB0 - lsls r0, 4 - cmp r1, r0 - bne _0813B9B6 - movs r0, 0x3 - bl Overworld_SetHealLocationWarp -_0813B9B6: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813B9A0 - - thumb_func_start sub_813B9C0 -sub_813B9C0: @ 813B9C0 - push {r4,lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - lsls r1, 8 - ldrb r0, [r0, 0x5] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r2, =gUnknown_085B3444 - ldrh r0, [r2] - ldr r1, =0x0000ffff - cmp r0, r1 - beq _0813BA06 - adds r4, r1, 0 - adds r1, r2, 0 -_0813B9E6: - ldrh r0, [r2] - cmp r0, r3 - bne _0813B9FC - movs r0, 0x1 - b _0813BA08 - .pool -_0813B9FC: - adds r1, 0x2 - adds r2, 0x2 - ldrh r0, [r1] - cmp r0, r4 - bne _0813B9E6 -_0813BA06: - movs r0, 0 -_0813BA08: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_813B9C0 - - thumb_func_start ResetFanClub -ResetFanClub: @ 813BA10 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x0000141e - adds r1, r0, r2 - movs r2, 0 - strh r2, [r1] - movs r1, 0xA1 - lsls r1, 5 - adds r0, r1 - strh r2, [r0] - bx lr - .pool - thumb_func_end ResetFanClub - - thumb_func_start sub_813BA30 -sub_813BA30: @ 813BA30 - push {lr} - bl sub_813BF44 - lsls r0, 24 - cmp r0, 0 - beq _0813BA52 - bl sub_813BCE8 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrh r0, [r0, 0xE] - movs r2, 0xA1 - lsls r2, 5 - adds r1, r2 - strh r0, [r1] -_0813BA52: - pop {r0} - bx r0 - .pool - thumb_func_end sub_813BA30 - - thumb_func_start sub_813BA60 -sub_813BA60: @ 813BA60 - push {r4,lr} - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, =0x0000141e - adds r0, r1 - ldrh r0, [r0] - lsrs r0, 7 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0813BAB6 - bl sub_813BF60 - bl sub_813BD84 - ldr r1, [r4] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrh r0, [r0, 0xE] - movs r2, 0xA1 - lsls r2, 5 - adds r1, r2 - strh r0, [r1] - ldr r0, =0x00000315 - bl FlagClear - ldr r0, =0x00000316 - bl FlagClear - ldr r0, =0x00000317 - bl FlagClear - movs r0, 0xC6 - lsls r0, 2 - bl FlagClear - ldr r0, =0x000002da - bl FlagClear - ldr r0, =0x00004095 - movs r1, 0x1 - bl VarSet -_0813BAB6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813BA60 - - thumb_func_start sub_813BADC -sub_813BADC: @ 813BADC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =0x00004095 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _0813BB58 - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r5, =0x0000141e - adds r3, r0, r5 - ldrh r2, [r3] - movs r1, 0x7F - ands r1, r2 - ldr r0, =gUnknown_085B3470 - adds r0, r6, r0 - ldrb r0, [r0] - adds r1, r0 - cmp r1, 0x13 - ble _0813BB54 - bl sub_813BCA8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _0813BB3C - bl sub_813BB74 - ldr r0, [r4] - adds r0, r5 - ldrh r2, [r0] - ldr r1, =0x0000ff80 - ands r1, r2 - strh r1, [r0] - b _0813BB58 - .pool -_0813BB3C: - ldr r2, [r4] - adds r2, r5 - ldrh r1, [r2] - ldr r0, =0x0000ff80 - ands r0, r1 - movs r1, 0x14 - orrs r0, r1 - strh r0, [r2] - b _0813BB58 - .pool -_0813BB54: - adds r0, r2, r0 - strh r0, [r3] -_0813BB58: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x0000141e - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x7F - ands r0, r1 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_813BADC - - thumb_func_start sub_813BB74 -sub_813BB74: @ 813BB74 - push {r4-r7,lr} - sub sp, 0x8 - movs r3, 0 - movs r5, 0 - ldr r7, =gSaveBlock1Ptr - ldr r2, =0x0000141e - movs r6, 0x1 -_0813BB82: - ldr r0, [r7] - adds r0, r2 - ldrh r1, [r0] - ldr r0, =gUnknown_085B3474 - adds r0, r5, r0 - ldrb r4, [r0] - asrs r1, r4 - ands r1, r6 - cmp r1, 0 - bne _0813BBC8 - adds r3, r5, 0 - str r2, [sp] - str r3, [sp, 0x4] - bl Random - adds r1, r6, 0 - ands r1, r0 - ldr r2, [sp] - ldr r3, [sp, 0x4] - cmp r1, 0 - beq _0813BBC8 - ldr r0, [r7] - adds r0, r2 - adds r1, r6, 0 - lsls r1, r4 - ldrh r2, [r0] - orrs r1, r2 - strh r1, [r0] - b _0813BBEA - .pool -_0813BBC8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0813BB82 - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r0, =0x0000141e - adds r2, r0 - ldr r1, =gUnknown_085B3474 - adds r1, r3, r1 - movs r0, 0x1 - ldrb r1, [r1] - lsls r0, r1 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r2] -_0813BBEA: - adds r0, r3, 0 - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_813BB74 - - thumb_func_start sub_813BC00 -sub_813BC00: @ 813BC00 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r10, r0 - bl sub_813BCA8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0813BC2E - movs r0, 0 - b _0813BC8E -_0813BC1E: - mov r1, r8 - ldr r0, [r1] - add r0, r9 - lsls r4, r6 - ldrh r1, [r0] - eors r4, r1 - strh r4, [r0] - b _0813BC8C -_0813BC2E: - movs r5, 0 - ldr r2, =gSaveBlock1Ptr - mov r8, r2 - ldr r0, =0x0000141e - mov r9, r0 - movs r4, 0x1 -_0813BC3A: - mov r1, r8 - ldr r0, [r1] - add r0, r9 - ldrh r1, [r0] - ldr r7, =gUnknown_085B347C - adds r0, r5, r7 - ldrb r6, [r0] - asrs r1, r6 - ands r1, r4 - cmp r1, 0 - beq _0813BC5E - mov r10, r5 - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - bne _0813BC1E -_0813BC5E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0813BC3A - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x0000141e - adds r4, r0, r2 - ldrh r1, [r4] - mov r2, r10 - adds r0, r2, r7 - ldrb r2, [r0] - adds r0, r1, 0 - asrs r0, r2 - movs r3, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0813BC8C - adds r0, r3, 0 - lsls r0, r2 - eors r1, r0 - strh r1, [r4] -_0813BC8C: - mov r0, r10 -_0813BC8E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_813BC00 - - thumb_func_start sub_813BCA8 -sub_813BCA8: @ 813BCA8 - push {r4,r5,lr} - movs r3, 0 - movs r2, 0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x0000141e - adds r0, r1 - ldrh r4, [r0] - movs r5, 0x1 -_0813BCBA: - adds r1, r2, 0 - adds r1, 0x8 - adds r0, r4, 0 - asrs r0, r1 - ands r0, r5 - cmp r0, 0 - beq _0813BCCE - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_0813BCCE: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _0813BCBA - adds r0, r3, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_813BCA8 - - thumb_func_start sub_813BCE8 -sub_813BCE8: @ 813BCE8 - push {r4-r6,lr} - movs r5, 0 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldrh r1, [r0, 0xE] - ldr r0, =0x000003e6 - cmp r1, r0 - bhi _0813BD58 - adds r6, r2, 0 - b _0813BD32 - .pool -_0813BD04: - ldr r0, [r6] - ldrh r1, [r0, 0xE] - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - movs r2, 0xA1 - lsls r2, 5 - adds r0, r2 - ldrh r0, [r0] - subs r1, r0 - cmp r1, 0xB - ble _0813BD58 - bl sub_813BC00 - ldr r0, [r4] - movs r1, 0xA1 - lsls r1, 5 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0xC - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0813BD32: - bl sub_813BCA8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bhi _0813BD54 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, [r6] - ldrh r0, [r0, 0xE] - movs r2, 0xA1 - lsls r2, 5 - adds r1, r2 - strh r0, [r1] - b _0813BD58 - .pool -_0813BD54: - cmp r5, 0x8 - bne _0813BD04 -_0813BD58: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813BCE8 - - thumb_func_start sub_813BD60 -sub_813BD60: @ 813BD60 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x0000141e - adds r0, r1 - ldrh r0, [r0] - ldr r1, =gSpecialVar_0x8004 - ldrh r1, [r1] - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - bx lr - .pool - thumb_func_end sub_813BD60 - - thumb_func_start sub_813BD84 -sub_813BD84: @ 813BD84 - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r0, =0x0000141e - adds r2, r0 - ldrh r1, [r2] - movs r3, 0x80 - lsls r3, 6 - adds r0, r3, 0 - orrs r0, r1 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - orrs r0, r1 - movs r3, 0x80 - lsls r3, 3 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - bx lr - .pool - thumb_func_end sub_813BD84 - - thumb_func_start sub_813BDB4 -sub_813BDB4: @ 813BDB4 - push {lr} - movs r3, 0 - movs r2, 0 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - subs r0, 0x8 - cmp r0, 0x7 - bhi _0813BE14 - lsls r0, 2 - ldr r1, =_0813BDD8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0813BDD8: - .4byte _0813BE14 - .4byte _0813BE14 - .4byte _0813BDF8 - .4byte _0813BDFE - .4byte _0813BE04 - .4byte _0813BE0A - .4byte _0813BE10 - .4byte _0813BE14 -_0813BDF8: - movs r3, 0 - movs r2, 0x3 - b _0813BE14 -_0813BDFE: - movs r3, 0 - movs r2, 0x1 - b _0813BE14 -_0813BE04: - movs r3, 0x1 - movs r2, 0 - b _0813BE14 -_0813BE0A: - movs r3, 0 - movs r2, 0x4 - b _0813BE14 -_0813BE10: - movs r3, 0x1 - movs r2, 0x5 -_0813BE14: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003150 - adds r0, r1 - adds r1, r3, 0 - bl sub_813BE30 - pop {r0} - bx r0 - .pool - thumb_func_end sub_813BDB4 - - thumb_func_start sub_813BE30 -sub_813BE30: @ 813BE30 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r0, r5, 4 - adds r1, r6, r0 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0813BEE8 - cmp r2, 0x5 - bhi _0813BED4 - lsls r0, r2, 2 - ldr r1, =_0813BE58 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0813BE58: - .4byte _0813BED4 - .4byte _0813BE70 - .4byte _0813BE84 - .4byte _0813BE98 - .4byte _0813BEAC - .4byte _0813BEC0 -_0813BE70: - ldr r0, =gStringVar1 - ldr r1, =gText_Steven - bl StringCopy - b _0813BF04 - .pool -_0813BE84: - ldr r0, =gStringVar1 - ldr r1, =gText_Brawly - bl StringCopy - b _0813BF04 - .pool -_0813BE98: - ldr r0, =gStringVar1 - ldr r1, =gText_Winona - bl StringCopy - b _0813BF04 - .pool -_0813BEAC: - ldr r0, =gStringVar1 - ldr r1, =gText_Phoebe - bl StringCopy - b _0813BF04 - .pool -_0813BEC0: - ldr r0, =gStringVar1 - ldr r1, =gText_Glacia - bl StringCopy - b _0813BF04 - .pool -_0813BED4: - ldr r0, =gStringVar1 - ldr r1, =gText_Wallace - bl StringCopy - b _0813BF04 - .pool -_0813BEE8: - ldr r4, =gStringVar1 - adds r0, r4, 0 - movs r2, 0x7 - bl StringCopyN - movs r0, 0xFF - strb r0, [r4, 0x7] - adds r0, r6, 0 - adds r0, 0x50 - adds r0, r5 - ldrb r1, [r0] - adds r0, r4, 0 - bl ConvertInternationalString -_0813BF04: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_813BE30 - - thumb_func_start sub_813BF10 -sub_813BF10: @ 813BF10 - push {lr} - ldr r0, =0x00004095 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _0813BF40 - bl sub_813BA30 - ldr r0, =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0x1 - bne _0813BF3C - bl sub_813BB74 - b _0813BF40 - .pool -_0813BF3C: - bl sub_813BC00 -_0813BF40: - pop {r0} - bx r0 - thumb_func_end sub_813BF10 - - thumb_func_start sub_813BF44 -sub_813BF44: @ 813BF44 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x0000141e - adds r0, r1 - ldrh r0, [r0] - lsrs r0, 7 - movs r1, 0x1 - ands r0, r1 - bx lr - .pool - thumb_func_end sub_813BF44 - - thumb_func_start sub_813BF60 -sub_813BF60: @ 813BF60 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x0000141e - adds r1, r0 - ldrh r2, [r1] - movs r0, 0x80 - orrs r0, r2 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_813BF60 - - thumb_func_start sub_813BF7C -sub_813BF7C: @ 813BF7C - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrb r0, [r0] - bl sub_813BADC - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_813BF7C - - .align 2, 0 @ Don't pad with nop. diff --git a/data/event_scripts.s b/data/event_scripts.s index 90229a4a1b..7dbe3fd015 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1110,10 +1110,10 @@ EventScript_2715DE:: @ 82715DE setflag FLAG_0x2DE setflag FLAG_0x351 setflag FLAG_0x32F - setflag FLAG_0x315 - setflag FLAG_0x316 - setflag FLAG_0x317 - setflag FLAG_0x318 + setflag FLAG_HIDE_FANCLUB_OLD_LADY + setflag FLAG_HIDE_FANCLUB_BOY + setflag FLAG_HIDE_FANCLUB_LITTLE_BOY + setflag FLAG_HIDE_FANCLUB_LADY setflag FLAG_0x2DA setflag FLAG_0x31D setflag FLAG_0x31E diff --git a/data/field_specials.s b/data/field_specials.s deleted file mode 100644 index 86a8606e16..0000000000 --- a/data/field_specials.s +++ /dev/null @@ -1,23 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_085B3420:: @ 85B3420 - .byte 0x02, 0x04, 0x01, 0x04, 0x04, 0x01, 0x05, 0x00, 0x01, 0x06, 0x03, 0x01, 0x08, 0x06, 0x01, 0x09, 0x0d, 0x01, 0x0a, 0x07, 0x01, 0x0b, 0x07, 0x01, 0x0c, 0x04, 0x01, 0x0e, 0x05, 0x01, 0x0f, 0x04 - .byte 0x01, 0x1a, 0x37, 0x01 - - .align 1 -gUnknown_085B3444:: @ 85B3444 - .2byte 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a - .2byte 0x1a35, 0x1918, 0x1919, 0x191a, 0x191b, 0xffff - -gUnknown_085B3470:: @ 85B3470 - .byte 0x02, 0x01, 0x02, 0x01 - -gUnknown_085B3474:: @ 85B3474 - .byte 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - -gUnknown_085B347C:: @ 85B347C - .byte 0x08, 0x0d, 0x0e, 0x0b, 0x0a, 0x0c, 0x0f, 0x09 - diff --git a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc index 74146fc7e2..9587bcae37 100644 --- a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc +++ b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc @@ -4,7 +4,7 @@ LilycoveCity_PokemonTrainerFanClub_MapScripts:: @ 821C785 .byte 0 LilycoveCity_PokemonTrainerFanClub_MapScript2_21C790: @ 821C790 - map_script_2 VAR_0x4095, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A + map_script_2 VAR_LILYCOVE_FAN_CLUB_STATE, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A .2byte 0 LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A:: @ 821C79A @@ -24,7 +24,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A:: @ 821C79A waitmovement 0 applymovement 4, LilycoveCity_PokemonTrainerFanClub_Movement_21C807 waitmovement 0 - setvar VAR_0x4095, 2 + setvar VAR_LILYCOVE_FAN_CLUB_STATE, 2 releaseall end @@ -62,45 +62,45 @@ LilycoveCity_PokemonTrainerFanClub_Movement_21C807: @ 821C807 LilycoveCity_PokemonTrainerFanClub_MapScript1_21C80D: @ 821C80D call LilycoveCity_PokemonTrainerFanClub_EventScript_21C8DA - compare VAR_0x4095, 1 + compare VAR_LILYCOVE_FAN_CLUB_STATE, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21C9F8 - compare VAR_0x4095, 2 + compare VAR_LILYCOVE_FAN_CLUB_STATE, 2 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21C829 end LilycoveCity_PokemonTrainerFanClub_EventScript_21C829:: @ 821C829 - special sub_813BCE8 + special UpdateMovedLilycoveFanClubMembers call LilycoveCity_PokemonTrainerFanClub_EventScript_21C8F5 setvar VAR_0x8004, 8 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9B8 setvar VAR_0x8004, 9 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9C0 setvar VAR_0x8004, 10 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9C8 setvar VAR_0x8004, 11 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9D0 setvar VAR_0x8004, 12 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9D8 setvar VAR_0x8004, 13 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9E0 setvar VAR_0x8004, 14 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9E8 setvar VAR_0x8004, 15 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9F0 end @@ -120,35 +120,35 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21C8F1:: @ 821C8F1 LilycoveCity_PokemonTrainerFanClub_EventScript_21C8F5:: @ 821C8F5 setvar VAR_0x8005, 8 setvar VAR_0x8004, 8 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 9 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 10 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 11 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 12 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 13 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 14 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE setvar VAR_0x8004, 15 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 0 call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE compare VAR_0x8005, 5 @@ -208,13 +208,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CA17:: @ 821CA17 lock faceplayer setvar VAR_0x8004, 13 - special sub_813BDB4 - compare VAR_0x4095, 0 + special BufferStreakTrainerText + compare VAR_LILYCOVE_FAN_CLUB_STATE, 0 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CA84 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CA56 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CA7A msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D12A, 4 @@ -222,7 +222,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CA17:: @ 821CA17 end LilycoveCity_PokemonTrainerFanClub_EventScript_21CA56:: @ 821CA56 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CA70 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D094, 4 @@ -248,13 +248,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CA8E:: @ 821CA8E lock faceplayer setvar VAR_0x8004, 8 - special sub_813BDB4 - compare VAR_0x4095, 0 + special BufferStreakTrainerText + compare VAR_LILYCOVE_FAN_CLUB_STATE, 0 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CAFB - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CACD - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CAF1 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D347, 4 @@ -262,7 +262,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CA8E:: @ 821CA8E end LilycoveCity_PokemonTrainerFanClub_EventScript_21CACD:: @ 821CACD - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CAE7 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D2A6, 4 @@ -288,13 +288,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CB05:: @ 821CB05 lock faceplayer setvar VAR_0x8004, 9 - special sub_813BDB4 - compare VAR_0x4095, 0 + special BufferStreakTrainerText + compare VAR_LILYCOVE_FAN_CLUB_STATE, 0 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CB72 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CB44 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CB68 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D52E, 4 @@ -302,7 +302,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CB05:: @ 821CB05 end LilycoveCity_PokemonTrainerFanClub_EventScript_21CB44:: @ 821CB44 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CB5E msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D438, 4 @@ -328,13 +328,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CB7C:: @ 821CB7C lock faceplayer setvar VAR_0x8004, 10 - special sub_813BDB4 - compare VAR_0x4095, 0 + special BufferStreakTrainerText + compare VAR_LILYCOVE_FAN_CLUB_STATE, 0 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CBE9 - specialvar VAR_RESULT, sub_813BD60 + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CBBB - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CBDF msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D822, 4 @@ -342,7 +342,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CB7C:: @ 821CB7C end LilycoveCity_PokemonTrainerFanClub_EventScript_21CBBB:: @ 821CBBB - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CBD5 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D751, 4 @@ -368,11 +368,11 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CBF3:: @ 821CBF3 lock faceplayer setvar VAR_0x8004, 11 - special sub_813BDB4 - specialvar VAR_RESULT, sub_813BD60 + special BufferStreakTrainerText + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CC27 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CC4B msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D9D1, 4 @@ -380,7 +380,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CBF3:: @ 821CBF3 end LilycoveCity_PokemonTrainerFanClub_EventScript_21CC27:: @ 821CC27 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CC41 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D921, 4 @@ -401,11 +401,11 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CC55:: @ 821CC55 lock faceplayer setvar VAR_0x8004, 12 - special sub_813BDB4 - specialvar VAR_RESULT, sub_813BD60 + special BufferStreakTrainerText + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CC89 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CCAD msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DB69, 4 @@ -413,7 +413,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CC55:: @ 821CC55 end LilycoveCity_PokemonTrainerFanClub_EventScript_21CC89:: @ 821CC89 - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CCA3 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DA73, 4 @@ -434,11 +434,11 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CCB7:: @ 821CCB7 lock faceplayer setvar VAR_0x8004, 14 - special sub_813BDB4 - specialvar VAR_RESULT, sub_813BD60 + special BufferStreakTrainerText + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CCEB - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD0F msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DD36, 4 @@ -446,7 +446,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CCB7:: @ 821CCB7 end LilycoveCity_PokemonTrainerFanClub_EventScript_21CCEB:: @ 821CCEB - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD05 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DC68, 4 @@ -467,11 +467,11 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CD19:: @ 821CD19 lock faceplayer setvar VAR_0x8004, 15 - special sub_813BDB4 - specialvar VAR_RESULT, sub_813BD60 + special BufferStreakTrainerText + specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD4D - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 7 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD71 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DEFF, 4 @@ -479,7 +479,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CD19:: @ 821CD19 end LilycoveCity_PokemonTrainerFanClub_EventScript_21CD4D:: @ 821CD4D - specialvar VAR_RESULT, sub_813BCA8 + specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD67 msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DE72, 4 @@ -512,7 +512,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CD90:: @ 821CD90 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CEFF copyvar VAR_0x800A, VAR_0x8006 setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281BCB, 4 setvar VAR_0x8004, 14 copyvar VAR_0x8005, VAR_0x800A @@ -532,7 +532,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CDE0:: @ 821CDE0 LilycoveCity_PokemonTrainerFanClub_EventScript_21CDEE:: @ 821CDEE setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281C3D, 5 compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CEC6 @@ -542,7 +542,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CDEE:: @ 821CDEE LilycoveCity_PokemonTrainerFanClub_EventScript_21CE15:: @ 821CE15 setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281C65, 4 setvar VAR_0x8004, 14 copyvar VAR_0x8005, VAR_0x800A @@ -557,7 +557,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE15:: @ 821CE15 LilycoveCity_PokemonTrainerFanClub_EventScript_21CE4D:: @ 821CE4D setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText message LilycoveCity_PokemonTrainerFanClub_Text_281C95 waitmessage setvar VAR_0x8004, 2 @@ -568,7 +568,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE4D:: @ 821CE4D case 11, LilycoveCity_PokemonTrainerFanClub_EventScript_21CE9F case 127, LilycoveCity_PokemonTrainerFanClub_EventScript_21CE9F setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText copyvar VAR_0x8006, VAR_0x800A copyvar VAR_0x8005, VAR_RESULT special PutFanClubSpecialOnTheAir @@ -577,7 +577,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE4D:: @ 821CE4D LilycoveCity_PokemonTrainerFanClub_EventScript_21CE9F:: @ 821CE9F setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281CCD, 5 compare VAR_RESULT, 1 goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CEC6 @@ -587,14 +587,14 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE9F:: @ 821CE9F LilycoveCity_PokemonTrainerFanClub_EventScript_21CEC6:: @ 821CEC6 setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281CF5, 4 release end LilycoveCity_PokemonTrainerFanClub_EventScript_21CED8:: @ 821CED8 setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281D40, 4 setflag FLAG_0x0D2 release @@ -602,7 +602,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CED8:: @ 821CED8 LilycoveCity_PokemonTrainerFanClub_EventScript_21CEED:: @ 821CEED setvar VAR_0x8004, 8 - special sub_813BDB4 + special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281DB4, 4 release end diff --git a/data/specials.inc b/data/specials.inc index 0b58f39ba3..86355f4840 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -174,11 +174,11 @@ gSpecials:: @ 81DBA64 def_special GetFirstFreePokeblockSlot def_special DoBerryBlending def_special sub_8142BC8 - def_special sub_813BD60 - def_special sub_813BCA8 - def_special sub_813BDB4 + def_special ShouldMoveLilycoveFanClubMember + def_special GetNumMovedLilycoveFanClubMembers + def_special BufferStreakTrainerText def_special sub_813BA30 - def_special sub_813BCE8 + def_special UpdateMovedLilycoveFanClubMembers def_special sub_813BF60 def_special sub_813BA60 def_special sub_813BF7C diff --git a/include/cable_club.h b/include/cable_club.h index 734a4f070f..8be376721e 100644 --- a/include/cable_club.h +++ b/include/cable_club.h @@ -1,6 +1,8 @@ #ifndef GUARD_CABLE_CLUB_H #define GUARD_CABLE_CLUB_H +#include "task.h" + // Exported type declarations // Exported RAM declarations @@ -11,5 +13,6 @@ void sub_80B37D4(TaskFunc taskFunc); u8 sub_80B3050(void); void sub_80B360C(void); bool32 sub_80B2AF4(u16 *arg0, u16 *arg1); +void sub_80B3AF8(u8 taskId); #endif //GUARD_CABLE_CLUB_H diff --git a/include/constants/flags.h b/include/constants/flags.h index f6143982d9..6c1400410b 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -790,10 +790,10 @@ #define FLAG_0x312 0x312 #define FLAG_0x313 0x313 #define FLAG_0x314 0x314 -#define FLAG_0x315 0x315 -#define FLAG_0x316 0x316 -#define FLAG_0x317 0x317 -#define FLAG_0x318 0x318 +#define FLAG_HIDE_FANCLUB_OLD_LADY 0x315 +#define FLAG_HIDE_FANCLUB_BOY 0x316 +#define FLAG_HIDE_FANCLUB_LITTLE_BOY 0x317 +#define FLAG_HIDE_FANCLUB_LADY 0x318 #define FLAG_0x319 0x319 #define FLAG_0x31A 0x31A #define FLAG_0x31B 0x31B diff --git a/include/constants/vars.h b/include/constants/vars.h index 92cbaba5f1..7cf232efe4 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -81,8 +81,8 @@ #define VAR_ALTERING_CAVE_WILD_SET 0x403E #define VAR_0x403F 0x403F #define VAR_DAYS 0x4040 -#define VAR_0x4041 0x4041 -#define VAR_0x4042 0x4042 +#define VAR_FANCLUB_UNKNOWN_1 0x4041 +#define VAR_FANCLUB_UNKNOWN_2 0x4042 #define VAR_DEPT_STORE_FLOOR 0x4043 #define VAR_0x4044 0x4044 #define VAR_POKELOT_PRIZE 0x4045 @@ -165,7 +165,7 @@ #define VAR_0x4092 0x4092 #define VAR_0x4093 0x4093 #define VAR_0x4094 0x4094 -#define VAR_0x4095 0x4095 +#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095 #define VAR_0x4096 0x4096 #define VAR_0x4097 0x4097 #define VAR_0x4098 0x4098 diff --git a/include/field_screen.h b/include/field_screen.h index 268b9312e1..bf15024053 100644 --- a/include/field_screen.h +++ b/include/field_screen.h @@ -15,5 +15,6 @@ void sub_80AC3D0(void); void sub_80AC3E4(void); void PreservePaletteInWeather(u8); void sub_80AF128(void); +void sub_80AB104(u8); #endif //GUARD_FIELD_SCREEN_H diff --git a/include/global.h b/include/global.h index 687ee26d27..2015d47cc7 100644 --- a/include/global.h +++ b/include/global.h @@ -163,6 +163,16 @@ enum OPTIONS_BATTLE_STYLE_SET }; +struct Coords8 { + s8 x; + s8 y; +}; + +struct UCoords8 { + u8 x; + u8 y; +}; + struct Coords16 { s16 x; diff --git a/include/match_call.h b/include/match_call.h index 9698e7cd3f..1f431bfaf1 100644 --- a/include/match_call.h +++ b/include/match_call.h @@ -10,4 +10,6 @@ enum { MATCH_CALL_TYPE_GYMLEADER_ELITEFOUR }; +s32 GetRematchIdxByTrainerIdx(s32 trainerIdx); + #endif //GUARD_MATCH_CALL_H diff --git a/include/strings.h b/include/strings.h index afb26b7cbe..528f70f69e 100644 --- a/include/strings.h +++ b/include/strings.h @@ -753,4 +753,13 @@ extern const u8 BattleFrontier_Lounge7_Text_26615F[]; extern const u8 BattleFrontier_Lounge7_Text_266185[]; extern const u8 BattleFrontier_Lounge7_Text_2661B5[]; +extern const u8 gText_YourPartnerHasRetired[]; + +extern const u8 gText_Wallace[]; +extern const u8 gText_Steven[]; +extern const u8 gText_Brawly[]; +extern const u8 gText_Winona[]; +extern const u8 gText_Phoebe[]; +extern const u8 gText_Glacia[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 2a0900e516..0447ce40d5 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -181,7 +181,6 @@ SECTIONS { src/birch_pc.o(.text); src/hof_pc.o(.text); src/field_specials.o(.text); - asm/field_specials.o(.text); src/battle_records.o(.text); asm/pokedex_area_screen.o(.text); src/evolution_scene.o(.text); @@ -471,7 +470,6 @@ SECTIONS { src/fldeff_flash.o(.rodata); src/time_events.o(.rodata); src/field_specials.o(.rodata); - data/field_specials.o(.rodata); src/battle_records.o(.rodata); data/pokedex_area_screen.o(.rodata); src/evolution_scene.o(.rodata); diff --git a/src/field_specials.c b/src/field_specials.c index 7d57bddde2..897bcc8d73 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -2,6 +2,7 @@ #include "main.h" #include "battle.h" #include "battle_tower.h" +#include "cable_club.h" #include "data2.h" #include "decoration.h" #include "diploma.h" @@ -13,6 +14,7 @@ #include "field_message_box.h" #include "field_player_avatar.h" #include "field_region_map.h" +#include "field_screen.h" #include "field_specials.h" #include "field_weather.h" #include "international_string_util.h" @@ -20,6 +22,7 @@ #include "link.h" #include "list_menu.h" #include "malloc.h" +#include "match_call.h" #include "menu.h" #include "overworld.h" #include "party_menu.h" @@ -27,6 +30,7 @@ #include "pokemon.h" #include "pokemon_storage_system.h" #include "random.h" +#include "rayquaza_scene.h" #include "region_map.h" #include "rom_8011DC0.h" #include "rtc.h" @@ -64,6 +68,7 @@ EWRAM_DATA u8 gUnknown_0203AB6C = 0; EWRAM_DATA u8 gUnknown_0203AB6D = 0; EWRAM_DATA u8 gUnknown_0203AB6E = 0; EWRAM_DATA u8 gUnknown_0203AB6F = 0; +EWRAM_DATA u32 gUnknown_0203AB70 = 0; struct ListMenuTemplate gUnknown_030061D0; @@ -73,9 +78,51 @@ extern const u16 gEventObjectPalette33[]; extern const u16 gEventObjectPalette34[]; extern void LoadPalette(const void *src, u32 offset, u16 size); // incorrect signature, needed to match +extern void BlendPalettes(u32, u8, u16); + +void UpdateMovedLilycoveFanClubMembers(void); +void sub_813BF60(void); +u16 GetNumMovedLilycoveFanClubMembers(void); static void RecordCyclingRoadResults(u32, u8); static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEventId, u8 paletteNum); +static void Task_PetalburgGym(u8); +static void PetalburgGymFunc(u8, u16); +static void Task_PCTurnOnEffect(u8); +static void PCTurnOnEffect_0(struct Task *); +static void PCTurnOnEffect_1(s16, s8, s8); +static void PCTurnOffEffect(void); +static void Task_LotteryCornerComputerEffect(u8); +static void LotteryCornerComputerEffect(struct Task *); +static void sub_81395BC(u8 taskId); +static void sub_8139620(u8 taskId); +static void sub_8139AF4(u8 taskId); +static void sub_8139C2C(u16 a1, u8 a2); +static void sub_8139C80(u8 taskId); +static void sub_813A2DC(u8 taskId); +static void sub_813AA60(u16 a0, u16 a1); +static void sub_813ACE8(u8 a0, u16 a1); +static void sub_813A42C(void); +static void sub_813A4EC(u8 taskId); +static void sub_813A694(u8 taskId); +static void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void sub_813AC44(u16 a0, u16 a1); +static void sub_813AD34(u8 a0, u16 a1); +static void sub_813A570(u8 taskId); +static void sub_813A738(u8 taskId); +static void sub_813A600(u8 taskId); +static void sub_813A664(u8 taskId); +static void sub_813ABD4(u16 a0); +static void task_deoxys_sound(u8 taskId); +static void sub_813B0B4(u8 a0); +static void sub_813B160(u8 taskId); +static void sub_813B57C(u8 taskId); +static void sub_813B824(u8 taskId); +static void _fwalk(u8 taskId); +static u8 sub_813BF44(void); +static void sub_813BD84(void); +static u16 sub_813BB74(void); +static void sub_813BE30(struct LinkBattleRecords *linkRecords, u8 a, u8 b); void Special_ShowDiploma(void) { @@ -572,12 +619,7 @@ static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEvent } } -struct Coords8 { - u8 x; - u8 y; -}; - -const struct Coords8 gUnknown_085B2B68[] = { +static const struct UCoords8 gUnknown_085B2B68[] = { { 7, 22}, {11, 19}, {10, 16}, @@ -699,7 +741,7 @@ void MauvilleGymSpecial2(void) void MauvilleGymSpecial3(void) { int i, x, y; - const struct Coords8 *switchCoords = gUnknown_085B2B68; + const struct UCoords8 *switchCoords = gUnknown_085B2B68; for (i = ARRAY_COUNT(gUnknown_085B2B68) - 1; i >= 0; i--) { MapGridSetMetatileIdAt(switchCoords->x, switchCoords->y, 0x206); @@ -753,10 +795,8 @@ void MauvilleGymSpecial3(void) } } -static void Task_PetalburgGym(u8); -static void PetalburgGymFunc(u8, u16); -const u8 gUnknown_085B2B78[] = {0, 1, 1, 1, 1}; -const u16 gUnknown_085B2B7E[] = {0x218, 0x219, 0x21a, 0x21b, 0x21c}; +static const u8 gUnknown_085B2B78[] = {0, 1, 1, 1, 1}; +static const u16 gUnknown_085B2B7E[] = {0x218, 0x219, 0x21a, 0x21b, 0x21c}; void PetalburgGymSpecial1(void) { @@ -956,7 +996,7 @@ u8 GetLeadMonFriendshipScore(void) return 0; } -void CB2_FieldShowRegionMap(void) +static void CB2_FieldShowRegionMap(void) { FieldInitRegionMap(CB2_ReturnToFieldContinueScriptPlayMapMusic); } @@ -966,10 +1006,6 @@ void FieldShowRegionMap(void) SetMainCallback2(CB2_FieldShowRegionMap); } -static void Task_PCTurnOnEffect(u8); -static void PCTurnOnEffect_0(struct Task *); -static void PCTurnOnEffect_1(s16, s8, s8); - void DoPCTurnOnEffect(void) { if (FuncIsActiveTask(Task_PCTurnOnEffect) != TRUE) @@ -1063,8 +1099,6 @@ static void PCTurnOnEffect_1(s16 flag, s8 dx, s8 dy) MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00); } -static void PCTurnOffEffect(void); - void DoPCTurnOffEffect(void) { PCTurnOffEffect(); @@ -1107,9 +1141,6 @@ static void PCTurnOffEffect(void) DrawWholeMapView(); } -static void Task_LotteryCornerComputerEffect(u8); -static void LotteryCornerComputerEffect(struct Task *); - void DoLotteryCornerComputerEffect(void) { if (FuncIsActiveTask(Task_LotteryCornerComputerEffect) != TRUE) @@ -1279,12 +1310,12 @@ void BufferEReaderTrainerName(void) GetEreaderTrainerName(gStringVar1); } -const u8 gUnknown_085B2B88[] = {12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6}; -const u8 gUnknown_085B2B94[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5}; -const u8 gUnknown_085B2BA0[] = {3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5}; - u16 GetSlotMachineId(void) { + static const u8 gUnknown_085B2B88[] = {12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6}; + static const u8 gUnknown_085B2B94[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5}; + static const u8 gUnknown_085B2BA0[] = {3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5}; + u32 v0 = gSaveBlock1Ptr->easyChatPairs[0].unk0_0 + gSaveBlock1Ptr->easyChatPairs[0].unk2 + gUnknown_085B2B88[gSpecialVar_0x8004]; if (GetPriceReduction(2)) { @@ -1436,9 +1467,6 @@ bool8 IsPokerusInParty(void) return TRUE; } -static void sub_81395BC(u8 taskId); -static void sub_8139620(u8 taskId); - void sub_8139560(void) { u8 taskId = CreateTask(sub_81395BC, 9); @@ -1486,7 +1514,7 @@ void SetRoute119Weather(void) { if (is_map_type_1_2_3_5_or_6(get_map_light_from_warp0()) != TRUE) { - SetSav1Weather(0x14); + SetSav1Weather(20); } } @@ -1494,7 +1522,7 @@ void SetRoute123Weather(void) { if (is_map_type_1_2_3_5_or_6(get_map_light_from_warp0()) != TRUE) { - SetSav1Weather(0x15); + SetSav1Weather(21); } } @@ -1545,7 +1573,9 @@ u16 SetPacifidlogTMReceivedDay(void) bool8 MonOTNameMatchesPlayer(void) { if (GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_LANGUAGE) != GAME_LANGUAGE) + { return TRUE; // huh? + } GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_OT_NAME, gStringVar1); if (!StringCompare(gSaveBlock2Ptr->playerName, gStringVar1)) @@ -1648,9 +1678,6 @@ void sub_8139980(void) SetCameraPanning(8, 0); } -void sub_8139AF4(u8 taskId); -void sub_8139C2C(u16 a1, u8 a2); - const struct WindowTemplate gUnknown_085B2BAC = { .priority = 0, .tilemapLeft = 21, @@ -1682,9 +1709,6 @@ const u8 *const gElevatorFloorsTable[] = { 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 u8 gUnknown_085B2C18[] = { 0x08, 0x10, 0x18, 0x20, 0x26, 0x2e, 0x34, 0x38, 0x39 }; -const u8 gUnknown_085B2C21[] = { 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15, 0x18, 0x1b }; -const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xffff }; void SetDepartmentStoreFloorVar(void) { @@ -1753,6 +1777,8 @@ u16 sub_81399F4(void) void ShakeScreenInElevator(void) { + static const u8 gUnknown_085B2C18[] = { 0x08, 0x10, 0x18, 0x20, 0x26, 0x2e, 0x34, 0x38, 0x39 }; + s16 *data = gTasks[CreateTask(sub_8139AF4, 9)].data; u16 floorDelta; @@ -1781,7 +1807,7 @@ void ShakeScreenInElevator(void) PlaySE(SE_ELEBETA); } -void sub_8139AF4(u8 taskId) +static void sub_8139AF4(u8 taskId) { s16 *data = gTasks[taskId].data; data[1]++; @@ -1824,10 +1850,10 @@ void sub_8139C10(void) RemoveWindow(gUnknown_0203AB5E); } -void sub_8139C80(u8 taskId); - -void sub_8139C2C(u16 a1, u8 a2) +static void sub_8139C2C(u16 a1, u8 a2) { + static const u8 gUnknown_085B2C21[] = { 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15, 0x18, 0x1b }; + if (FuncIsActiveTask(sub_8139C80) != TRUE) { u8 taskId = CreateTask(sub_8139C80, 8); @@ -1841,7 +1867,7 @@ 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 -void sub_8139C80(u8 taskId) +static void sub_8139C80(u8 taskId) { u8 x, y; s16 *data = gTasks[taskId].data; @@ -1880,7 +1906,7 @@ void sub_8139C80(u8 taskId) } #else NAKED -void sub_8139C80(u8 taskId) +static void sub_8139C80(u8 taskId) { asm_unified("push {r4-r7,lr}\n\ mov r7, r10\n\ @@ -2064,6 +2090,8 @@ 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 }; + int i; u16 map = (gUnknown_020322DC.mapGroup << 8) + gUnknown_020322DC.mapNum; @@ -2092,34 +2120,34 @@ void UpdateFrontierManiac(u16 a0) *var %= 10; } -const u8 *const gUnknown_085B2C50[][3] = { - { BattleFrontier_Lounge2_Text_260971, BattleFrontier_Lounge2_Text_260A1E, BattleFrontier_Lounge2_Text_260AE7 }, - { BattleFrontier_Lounge2_Text_2619AC, BattleFrontier_Lounge2_Text_261A91, BattleFrontier_Lounge2_Text_261B0C }, - { BattleFrontier_Lounge2_Text_261B95, BattleFrontier_Lounge2_Text_261B95, BattleFrontier_Lounge2_Text_261B95 }, - { BattleFrontier_Lounge2_Text_261C1A, BattleFrontier_Lounge2_Text_261C1A, BattleFrontier_Lounge2_Text_261C1A }, - { BattleFrontier_Lounge2_Text_260BC4, BattleFrontier_Lounge2_Text_260C6D, BattleFrontier_Lounge2_Text_260D3A }, - { BattleFrontier_Lounge2_Text_260E1E, BattleFrontier_Lounge2_Text_260EC7, BattleFrontier_Lounge2_Text_260F74 }, - { BattleFrontier_Lounge2_Text_2614E6, BattleFrontier_Lounge2_Text_261591, BattleFrontier_Lounge2_Text_26166F }, - { BattleFrontier_Lounge2_Text_261282, BattleFrontier_Lounge2_Text_261329, BattleFrontier_Lounge2_Text_261403 }, - { BattleFrontier_Lounge2_Text_261026, BattleFrontier_Lounge2_Text_2610CC, BattleFrontier_Lounge2_Text_261194 }, - { BattleFrontier_Lounge2_Text_26174D, BattleFrontier_Lounge2_Text_2617F9, BattleFrontier_Lounge2_Text_2618C4 }, -}; - -const u8 gUnknown_085B2CC8[][2] = { - { 0x15, 0x38 }, - { 0x15, 0x23 }, - { 0xff, 0xff }, - { 0xff, 0xff }, - { 0x02, 0x04 }, - { 0x07, 0x15 }, - { 0x07, 0x15 }, - { 0x0e, 0x1c }, - { 0x0d, 0x70 }, - { 0x07, 0x38 } -}; - void sub_8139F20(void) { + static const u8 *const gUnknown_085B2C50[][3] = { + { BattleFrontier_Lounge2_Text_260971, BattleFrontier_Lounge2_Text_260A1E, BattleFrontier_Lounge2_Text_260AE7 }, + { BattleFrontier_Lounge2_Text_2619AC, BattleFrontier_Lounge2_Text_261A91, BattleFrontier_Lounge2_Text_261B0C }, + { BattleFrontier_Lounge2_Text_261B95, BattleFrontier_Lounge2_Text_261B95, BattleFrontier_Lounge2_Text_261B95 }, + { BattleFrontier_Lounge2_Text_261C1A, BattleFrontier_Lounge2_Text_261C1A, BattleFrontier_Lounge2_Text_261C1A }, + { BattleFrontier_Lounge2_Text_260BC4, BattleFrontier_Lounge2_Text_260C6D, BattleFrontier_Lounge2_Text_260D3A }, + { BattleFrontier_Lounge2_Text_260E1E, BattleFrontier_Lounge2_Text_260EC7, BattleFrontier_Lounge2_Text_260F74 }, + { BattleFrontier_Lounge2_Text_2614E6, BattleFrontier_Lounge2_Text_261591, BattleFrontier_Lounge2_Text_26166F }, + { BattleFrontier_Lounge2_Text_261282, BattleFrontier_Lounge2_Text_261329, BattleFrontier_Lounge2_Text_261403 }, + { BattleFrontier_Lounge2_Text_261026, BattleFrontier_Lounge2_Text_2610CC, BattleFrontier_Lounge2_Text_261194 }, + { BattleFrontier_Lounge2_Text_26174D, BattleFrontier_Lounge2_Text_2617F9, BattleFrontier_Lounge2_Text_2618C4 }, + }; + + static const u8 gUnknown_085B2CC8[][2] = { + { 0x15, 0x38 }, + { 0x15, 0x23 }, + { 0xff, 0xff }, + { 0xff, 0xff }, + { 0x02, 0x04 }, + { 0x07, 0x15 }, + { 0x07, 0x15 }, + { 0x0e, 0x1c }, + { 0x0d, 0x70 }, + { 0x07, 0x38 } + }; + u8 i; u16 unk = 0; u16 var = VarGet(VAR_FRONTIER_MANIAC_FACILITY); @@ -2205,12 +2233,12 @@ void sub_8139F20(void) ShowFieldMessage(gUnknown_085B2C50[var][i]); } -const u16 gUnknown_085B2CDC[] = { - 0x0007, 0x000e, 0x0015, 0x001c, 0x0023, 0x0031, 0x003f, 0x004d, 0x005b, 0x0000 -}; - void sub_813A080(void) { + static const u16 gUnknown_085B2CDC[] = { + 0x0007, 0x000e, 0x0015, 0x001c, 0x0023, 0x0031, 0x003f, 0x004d, 0x005b, 0x0000 + }; + u8 i; u16 var = VarGet(VAR_0x40CE); u8 chosenLevel = gSaveBlock2Ptr->frontier.chosenLvl; @@ -2236,8 +2264,6 @@ void sub_813A080(void) gSpecialVar_0x8006 = 12; } -void sub_813A2DC(u8 taskId); - void sub_813A128(void) { u8 taskId = CreateTask(sub_813A2DC, 8); @@ -2374,11 +2400,7 @@ void sub_813A128(void) } } -void sub_813AA60(u16 a0, u16 a1); -void sub_813ACE8(u8 a0, u16 a1); -void sub_813A42C(void); - -const u8 *const gUnknown_085B2CF0[][16] = { +static const u8 *const gUnknown_085B2CF0[][16] = { { gText_Exit, NULL, @@ -2615,10 +2637,7 @@ const u8 *const gUnknown_085B2CF0[][16] = { } }; -void sub_813A4EC(u8 taskId); -void sub_813A694(u8 taskId); - -void sub_813A2DC(u8 taskId) +static void sub_813A2DC(u8 taskId) { u32 unk1; u8 i, windowId; @@ -2672,9 +2691,7 @@ void sub_813A2DC(u8 taskId) gTasks[taskId].func = sub_813A4EC; } -void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list); - -void sub_813A42C(void) +static void sub_813A42C(void) { gUnknown_030061D0.items = gUnknown_0203AB64; gUnknown_030061D0.moveCursorFunc = sub_813A46C; @@ -2696,12 +2713,7 @@ void sub_813A42C(void) gUnknown_030061D0.cursorKind = 0; } -void sub_813A4EC(u8 taskId); -void sub_813AA60(u16 a0, u16 a1); -void sub_813AC44(u16 a0, u16 a1); -void sub_813AD34(u8 a0, u16 a1); - -void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list) { u8 taskId; PlaySE(SE_SELECT); @@ -2720,13 +2732,9 @@ void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list) } } -void sub_813A570(u8 taskId); -void sub_813A738(u8 taskId); -void sub_813A600(u8 taskId); - // stupid r5<->r6 swap #ifdef NONMATCHING -void sub_813A4EC(u8 taskId) +static void sub_813A4EC(u8 taskId) { struct Task *task = &gTasks[taskId]; s32 itemId = ListMenuHandleInputGetItemId(task->data[14]); @@ -2743,25 +2751,22 @@ void sub_813A4EC(u8 taskId) default: gSpecialVar_Result = itemId; PlaySE(SE_SELECT); - if (task->data[6]) + if (!task->data[6] || itemId == task->data[1] - 1) { - if (itemId == task->data[1] - 1) - { - sub_813A570(taskId); - } - else - { - sub_813A738(taskId); - task->func = sub_813A600; - EnableBothScriptContexts(); - } + sub_813A570(taskId); + } + else + { + sub_813A738(taskId); + task->func = sub_813A600; + EnableBothScriptContexts(); } break; } } #else NAKED -void sub_813A4EC(u8 taskId) +static void sub_813A4EC(u8 taskId) { asm_unified("push {r4-r6,lr}\n\ lsls r0, 24\n\ @@ -2826,7 +2831,7 @@ _0813A566:\n\ } #endif // NONMATCHING -void sub_813A570(u8 taskId) +static void sub_813A570(u8 taskId) { u16 array; struct Task *task = &gTasks[taskId]; @@ -2843,9 +2848,7 @@ void sub_813A570(u8 taskId) EnableBothScriptContexts(); } -void sub_813A664(u8 taskId); - -void sub_813A600(u8 taskId) +static void sub_813A600(u8 taskId) { switch (gTasks[taskId].data[6]) { @@ -2872,29 +2875,29 @@ void sub_813A630(void) } } -void sub_813A664(u8 taskId) +static void sub_813A664(u8 taskId) { ScriptContext2_Enable(); sub_813A694(taskId); gTasks[taskId].func = sub_813A4EC; } -const struct ScrollArrowsTemplate gUnknown_085B3030 = { - .firstArrowType = 2, - .firstX = 0, - .firstY = 0, - .secondArrowType = 3, - .secondX = 0, - .secondY = 0, - .fullyUpThreshold = 0, - .fullyDownThreshold = 0, - .tileTag = 2000, - .palTag = 100, - .palNum = 0 -}; - -void sub_813A694(u8 taskId) +static void sub_813A694(u8 taskId) { + static const struct ScrollArrowsTemplate gUnknown_085B3030 = { + .firstArrowType = 2, + .firstX = 0, + .firstY = 0, + .secondArrowType = 3, + .secondX = 0, + .secondY = 0, + .fullyUpThreshold = 0, + .fullyDownThreshold = 0, + .tileTag = 2000, + .palTag = 100, + .palNum = 0 + }; + struct Task *task = &gTasks[taskId]; struct ScrollArrowsTemplate template = gUnknown_085B3030; if (task->data[0] != task->data[1]) @@ -2909,7 +2912,7 @@ void sub_813A694(u8 taskId) } } -void sub_813A738(u8 taskId) +static void sub_813A738(u8 taskId) { struct Task *task = &gTasks[taskId]; if (task->data[0] != task->data[1]) @@ -2939,36 +2942,36 @@ void sub_813A76C(void) } } -const u8 *const gUnknown_085B3040[] = { - BattleFrontier_Lounge5_Text_26468D, - BattleFrontier_Lounge5_Text_2646E5, - BattleFrontier_Lounge5_Text_264741, - BattleFrontier_Lounge5_Text_2647A4, - BattleFrontier_Lounge5_Text_2647FC, - BattleFrontier_Lounge5_Text_264858, - BattleFrontier_Lounge5_Text_2648BE, - BattleFrontier_Lounge5_Text_264916, - BattleFrontier_Lounge5_Text_264972, - BattleFrontier_Lounge5_Text_2649D5, - BattleFrontier_Lounge5_Text_264A3F, - BattleFrontier_Lounge5_Text_264A9B, - BattleFrontier_Lounge5_Text_264AF3, - BattleFrontier_Lounge5_Text_264B5D, - BattleFrontier_Lounge5_Text_2648BE, - BattleFrontier_Lounge5_Text_264BC3, - BattleFrontier_Lounge5_Text_264C36, - BattleFrontier_Lounge5_Text_2648BE, - BattleFrontier_Lounge5_Text_264C95, - BattleFrontier_Lounge5_Text_264D01, - BattleFrontier_Lounge5_Text_264D6B, - BattleFrontier_Lounge5_Text_264DD7, - BattleFrontier_Lounge5_Text_264E33, - BattleFrontier_Lounge5_Text_264E8F, - BattleFrontier_Lounge5_Text_2648BE, -}; - void sub_813A7B8(void) { + static const u8 *const gUnknown_085B3040[] = { + BattleFrontier_Lounge5_Text_26468D, + BattleFrontier_Lounge5_Text_2646E5, + BattleFrontier_Lounge5_Text_264741, + BattleFrontier_Lounge5_Text_2647A4, + BattleFrontier_Lounge5_Text_2647FC, + BattleFrontier_Lounge5_Text_264858, + BattleFrontier_Lounge5_Text_2648BE, + BattleFrontier_Lounge5_Text_264916, + BattleFrontier_Lounge5_Text_264972, + BattleFrontier_Lounge5_Text_2649D5, + BattleFrontier_Lounge5_Text_264A3F, + BattleFrontier_Lounge5_Text_264A9B, + BattleFrontier_Lounge5_Text_264AF3, + BattleFrontier_Lounge5_Text_264B5D, + BattleFrontier_Lounge5_Text_2648BE, + BattleFrontier_Lounge5_Text_264BC3, + BattleFrontier_Lounge5_Text_264C36, + BattleFrontier_Lounge5_Text_2648BE, + BattleFrontier_Lounge5_Text_264C95, + BattleFrontier_Lounge5_Text_264D01, + BattleFrontier_Lounge5_Text_264D6B, + BattleFrontier_Lounge5_Text_264DD7, + BattleFrontier_Lounge5_Text_264E33, + BattleFrontier_Lounge5_Text_264E8F, + BattleFrontier_Lounge5_Text_2648BE, + }; + u8 nature; if (gSpecialVar_0x8004 >= PARTY_SIZE) @@ -2987,52 +2990,52 @@ void UpdateFrontierGambler(u16 a0) *var %= 12; } -const u8 *const gUnknown_085B30A4[] = { - BattleFrontier_Lounge3_Text_262261, - BattleFrontier_Lounge3_Text_26230D, - BattleFrontier_Lounge3_Text_2623B9, - BattleFrontier_Lounge3_Text_262464, - BattleFrontier_Lounge3_Text_26250E, - BattleFrontier_Lounge3_Text_2625B8, - BattleFrontier_Lounge3_Text_26266A, - BattleFrontier_Lounge3_Text_26271C, - BattleFrontier_Lounge3_Text_2627C9, - BattleFrontier_Lounge3_Text_262876, - BattleFrontier_Lounge3_Text_26291A, - BattleFrontier_Lounge3_Text_2629BC, -}; - void sub_813A820(void) { + static const u8 *const gUnknown_085B30A4[] = { + BattleFrontier_Lounge3_Text_262261, + BattleFrontier_Lounge3_Text_26230D, + BattleFrontier_Lounge3_Text_2623B9, + BattleFrontier_Lounge3_Text_262464, + BattleFrontier_Lounge3_Text_26250E, + BattleFrontier_Lounge3_Text_2625B8, + BattleFrontier_Lounge3_Text_26266A, + BattleFrontier_Lounge3_Text_26271C, + BattleFrontier_Lounge3_Text_2627C9, + BattleFrontier_Lounge3_Text_262876, + BattleFrontier_Lounge3_Text_26291A, + BattleFrontier_Lounge3_Text_2629BC, + }; + u16 var = VarGet(VAR_FRONTIER_GAMBLER_FACILITY); ShowFieldMessage(gUnknown_085B30A4[var]); VarSet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F, var); } -const u8 *const gUnknown_085B30D4[] = { - BattleFrontier_Lounge3_Text_262C04, - BattleFrontier_Lounge3_Text_262C90, - BattleFrontier_Lounge3_Text_262D1C, - BattleFrontier_Lounge3_Text_262DA7, - BattleFrontier_Lounge3_Text_262E34, - BattleFrontier_Lounge3_Text_262EC1, - BattleFrontier_Lounge3_Text_262F56, - BattleFrontier_Lounge3_Text_262FEB, - BattleFrontier_Lounge3_Text_263078, - BattleFrontier_Lounge3_Text_263105, - BattleFrontier_Lounge3_Text_26318C, - BattleFrontier_Lounge3_Text_263211, -}; - void sub_813A854(void) { + static const u8 *const gUnknown_085B30D4[] = { + BattleFrontier_Lounge3_Text_262C04, + BattleFrontier_Lounge3_Text_262C90, + BattleFrontier_Lounge3_Text_262D1C, + BattleFrontier_Lounge3_Text_262DA7, + BattleFrontier_Lounge3_Text_262E34, + BattleFrontier_Lounge3_Text_262EC1, + BattleFrontier_Lounge3_Text_262F56, + BattleFrontier_Lounge3_Text_262FEB, + BattleFrontier_Lounge3_Text_263078, + BattleFrontier_Lounge3_Text_263105, + BattleFrontier_Lounge3_Text_26318C, + BattleFrontier_Lounge3_Text_263211, + }; + ShowFieldMessage(gUnknown_085B30D4[VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F)]); } -const u16 gUnknown_085B3104[] = {0x0000, 0x0001, 0x0002, 0x0100, 0x0101, 0x0400, 0x0401, 0x0200, 0x0201, 0x0300, 0x0500, 0x0600}; - void sub_813A878(u8 a0) { + static const u16 gUnknown_085B3104[] = {0x0000, 0x0001, 0x0002, 0x0100, 0x0101, 0x0400, 0x0401, 0x0200, 0x0201, 0x0300, 0x0500, 0x0600}; + u16 var1 = VarGet(VAR_0x40CE); u16 var2 = VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F); u16 var3 = VarGet(VAR_FRONTIER_FACILITY); @@ -3062,18 +3065,18 @@ void sub_813A8FC(void) PrintTextOnWindow(gUnknown_0203AB6D, 1, string, x, 1, 0, NULL); } -const struct WindowTemplate gUnknown_085B311C = { - .priority = 0, - .tilemapLeft = 1, - .tilemapTop = 1, - .width = 6, - .height = 2, - .paletteNum = 15, - .baseBlock = 8, -}; - void sub_813A958(void) { + static const struct WindowTemplate gUnknown_085B311C = { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 6, + .height = 2, + .paletteNum = 15, + .baseBlock = 8, + }; + gUnknown_0203AB6D = AddWindow(&gUnknown_085B311C); SetStandardWindowBorderStyle(gUnknown_0203AB6D, 0); sub_813A8FC(); @@ -3115,18 +3118,18 @@ u16 sub_813AA04(void) return gSaveBlock2Ptr->frontier.frontierBattlePoints; } -const struct WindowTemplate gUnknown_085B3124 = { - .priority = 0, - .tilemapLeft = 2, - .tilemapTop = 9, - .width = 4, - .height = 4, - .paletteNum = 15, - .baseBlock = 20, -}; - void sub_813AA18(void) { + static const struct WindowTemplate gUnknown_085B3124 = { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 9, + .width = 4, + .height = 4, + .paletteNum = 15, + .baseBlock = 20, + }; + gUnknown_0203AB6E = AddWindow(&gUnknown_085B3124); SetStandardWindowBorderStyle(gUnknown_0203AB6E, 0); CopyWindowToVram(gUnknown_0203AB6E, 2); @@ -3138,61 +3141,59 @@ void sub_813AA44(void) RemoveWindow(gUnknown_0203AB6E); } -const u16 gUnknown_085B312C[] = { 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xffff }; -const u16 gUnknown_085B3142[] = { 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xffff }; -const u16 gUnknown_085B314E[] = { 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xffff }; -const u16 gUnknown_085B315C[] = { 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xffff }; - -const u8 *const gUnknown_085B3170[] = { - BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA, - BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0, - BattleFrontier_BattlePointExchangeServiceCorner_Text_260201, - BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F, - BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B, - BattleFrontier_BattlePointExchangeServiceCorner_Text_260287, - BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5, - BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0, - BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F, - BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E, - gText_Exit, -}; - -const u8 *const gUnknown_085B319C[] = { - BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, - BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, - BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, - BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, - BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, - gText_Exit -}; - -const u8 *const gUnknown_085B31B4[] = { - BattleFrontier_BattlePointExchangeServiceCorner_Text_260397, - BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE, - BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6, - BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E, - BattleFrontier_BattlePointExchangeServiceCorner_Text_260436, - BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C, - gText_Exit -}; - -const u8 *const gUnknown_085B31D0[] = { - BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A, - BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC, - BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8, - BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F, - BattleFrontier_BattlePointExchangeServiceCorner_Text_260542, - BattleFrontier_BattlePointExchangeServiceCorner_Text_260575, - BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8, - BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2, - BattleFrontier_BattlePointExchangeServiceCorner_Text_260613, - gText_Exit -}; - -void sub_813ABD4(u16 a0); - -void sub_813AA60(u16 a0, u16 a1) +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 u8 *const gUnknown_085B3170[] = { + BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260201, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260287, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E, + gText_Exit, + }; + + static const u8 *const gUnknown_085B319C[] = { + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C, + gText_Exit + }; + + static const u8 *const gUnknown_085B31B4[] = { + BattleFrontier_BattlePointExchangeServiceCorner_Text_260397, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260436, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C, + gText_Exit + }; + + static const u8 *const gUnknown_085B31D0[] = { + BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8, + BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260542, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260575, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8, + BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2, + BattleFrontier_BattlePointExchangeServiceCorner_Text_260613, + gText_Exit + }; + if (a0 > 2 && a0 < 7) { FillWindowPixelRect(0, 0x11, 0, 0, 216, 32); @@ -3236,7 +3237,7 @@ void sub_813AA60(u16 a0, u16 a1) } } -void sub_813ABD4(u16 a0) +static void sub_813ABD4(u16 a0) { FreeSpriteTilesByTag(5500); FreeSpritePaletteByTag(5500); @@ -3250,7 +3251,7 @@ void sub_813ABD4(u16 a0) } } -void sub_813AC44(u16 a0, u16 unused) +static void sub_813AC44(u16 a0, u16 unused) { if (gUnknown_0203AB6C != MAX_SPRITES) { @@ -3264,8 +3265,8 @@ void sub_813AC44(u16 a0, u16 unused) } } -const u16 gUnknown_085B31F8[] = { 0x0087, 0x0045, 0x008a, 0x0005, 0x0019, 0x0022, 0x009d, 0x0044, 0x0056, 0x000e }; -const u16 gUnknown_085B320C[] = { 0x006f, 0x00ad, 0x00bd, 0x0081, 0x00c4, 0x00cb, 0x00f4, 0x0008, 0x0009, 0x0007 }; +static const u16 gUnknown_085B31F8[] = { 0x0087, 0x0045, 0x008a, 0x0005, 0x0019, 0x0022, 0x009d, 0x0044, 0x0056, 0x000e }; +static const u16 gUnknown_085B320C[] = { 0x006f, 0x00ad, 0x00bd, 0x0081, 0x00c4, 0x00cb, 0x00f4, 0x0008, 0x0009, 0x0007 }; void sub_813AC7C(void) { @@ -3279,18 +3280,18 @@ void sub_813AC7C(void) } } -const struct WindowTemplate gUnknown_085B3220 = { - .priority = 0, - .tilemapLeft = 1, - .tilemapTop = 7, - .width = 12, - .height = 6, - .paletteNum = 15, - .baseBlock = 28, -}; - -void sub_813ACE8(u8 a0, u16 a1) +static void sub_813ACE8(u8 a0, u16 a1) { + static const struct WindowTemplate gUnknown_085B3220 = { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 7, + .width = 12, + .height = 6, + .paletteNum = 15, + .baseBlock = 28, + }; + if (a0 == 9 || a0 == 10) { if (gSpecialVar_0x8006 == 0) @@ -3302,36 +3303,36 @@ void sub_813ACE8(u8 a0, u16 a1) } } -const u8 *const gUnknown_085B3228[] = { - BattleFrontier_Lounge7_Text_265E30, - BattleFrontier_Lounge7_Text_265E5B, - BattleFrontier_Lounge7_Text_265E8A, - BattleFrontier_Lounge7_Text_265EC0, - BattleFrontier_Lounge7_Text_265EED, - BattleFrontier_Lounge7_Text_265F1C, - BattleFrontier_Lounge7_Text_265F47, - BattleFrontier_Lounge7_Text_265F77, - BattleFrontier_Lounge7_Text_265FAA, - BattleFrontier_Lounge7_Text_265FDD, - gText_Exit, -}; - -const u8 *const gUnknown_085B3254[] = { - BattleFrontier_Lounge7_Text_26600A, - BattleFrontier_Lounge7_Text_26603E, - BattleFrontier_Lounge7_Text_266070, - BattleFrontier_Lounge7_Text_2660A6, - BattleFrontier_Lounge7_Text_2660D0, - BattleFrontier_Lounge7_Text_2660FF, - BattleFrontier_Lounge7_Text_26612D, - BattleFrontier_Lounge7_Text_26615F, - BattleFrontier_Lounge7_Text_266185, - BattleFrontier_Lounge7_Text_2661B5, - gText_Exit, -}; - -void sub_813AD34(u8 a0, u16 a1) +static void sub_813AD34(u8 a0, u16 a1) { + static const u8 *const gUnknown_085B3228[] = { + BattleFrontier_Lounge7_Text_265E30, + BattleFrontier_Lounge7_Text_265E5B, + BattleFrontier_Lounge7_Text_265E8A, + BattleFrontier_Lounge7_Text_265EC0, + BattleFrontier_Lounge7_Text_265EED, + BattleFrontier_Lounge7_Text_265F1C, + BattleFrontier_Lounge7_Text_265F47, + BattleFrontier_Lounge7_Text_265F77, + BattleFrontier_Lounge7_Text_265FAA, + BattleFrontier_Lounge7_Text_265FDD, + gText_Exit, + }; + + static const u8 *const gUnknown_085B3254[] = { + BattleFrontier_Lounge7_Text_26600A, + BattleFrontier_Lounge7_Text_26603E, + BattleFrontier_Lounge7_Text_266070, + BattleFrontier_Lounge7_Text_2660A6, + BattleFrontier_Lounge7_Text_2660D0, + BattleFrontier_Lounge7_Text_2660FF, + BattleFrontier_Lounge7_Text_26612D, + BattleFrontier_Lounge7_Text_26615F, + BattleFrontier_Lounge7_Text_266185, + BattleFrontier_Lounge7_Text_2661B5, + gText_Exit, + }; + if (a0 == 9 || a0 == 10) { FillWindowPixelRect(gUnknown_0203AB5E, 0x11, 0, 0, 96, 48); @@ -3429,14 +3430,12 @@ void sub_813AF48(void) } } -void task_deoxys_sound(u8 taskId); - void sub_813AFC8(void) { CreateTask(task_deoxys_sound, 8); } -const u16 gUnknown_085B3280[][16] = { +static const u16 gUnknown_085B3280[][16] = { INCBIN_U16("graphics/misc/deoxys1.gbapal"), INCBIN_U16("graphics/misc/deoxys2.gbapal"), INCBIN_U16("graphics/misc/deoxys3.gbapal"), @@ -3450,7 +3449,7 @@ const u16 gUnknown_085B3280[][16] = { INCBIN_U16("graphics/misc/deoxys11.gbapal"), }; -const u8 gUnknown_085B33E0[][2] = { +static const u8 gUnknown_085B33E0[][2] = { { 0x0f, 0x0c }, { 0x0b, 0x0e }, { 0x0f, 0x08 }, @@ -3464,12 +3463,10 @@ const u8 gUnknown_085B33E0[][2] = { { 0x0f, 0x0a }, }; -const u8 gUnknown_085B33F6[] = { 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03 }; - -void sub_813B0B4(u8 a0); - -void task_deoxys_sound(u8 taskId) +static void task_deoxys_sound(u8 taskId) { + static const u8 gUnknown_085B33F6[] = { 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03 }; + if (FlagGet(FLAG_0x8D4) == TRUE) { gSpecialVar_Result = 3; @@ -3507,9 +3504,7 @@ void task_deoxys_sound(u8 taskId) } } -void sub_813B160(u8 taskId); - -void sub_813B0B4(u8 a0) +static void sub_813B0B4(u8 a0) { u8 eventObjectId; LoadPalette(&gUnknown_085B3280[a0], 0x1A0, 8); @@ -3545,7 +3540,7 @@ void sub_813B0B4(u8 a0) Overworld_SetEventObjTemplateCoords(1, gUnknown_085B33E0[a0][0], gUnknown_085B33E0[a0][1]); } -void sub_813B160(u8 taskId) +static void sub_813B160(u8 taskId) { if (FieldEffectActiveListContains(FLDEFF_66) == FALSE) { @@ -3571,8 +3566,6 @@ void increment_var_x4026_on_birth_island_modulo_100(void) } } -extern void BlendPalettes(u32, u8, u16); - void sub_813B1D0(void) { LoadPalette(&gUnknown_085B3280[(u8)VarGet(VAR_0x4035)], 0x1A0, 8); @@ -3656,10 +3649,10 @@ void sub_813B2E4(void) } } -const u8 gUnknown_085B3400[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; - bool32 sub_813B374(void) { + static const u8 gUnknown_085B3400[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + u16 var = VarGet(VAR_0x4037); GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0); @@ -3674,169 +3667,663 @@ bool32 sub_813B374(void) } } -const u8 gUnknown_085B3410[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; - -// last parts of switch statements insist on merging -#ifdef NONMATCHING bool32 sub_813B3B0(void) { + static const u8 gUnknown_085B3410[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + u16 var1 = VarGet(VAR_0x4038); u16 var2 = VarGet(VAR_0x4037); - if (var2 != 0) + if (!var2) { - if (++var1 > 999) - { - VarSet(VAR_0x4038, 0); - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER_MARINE_CAVE)) - { - switch (gSaveBlock1Ptr->location.mapNum) - { - case MAP_NUM(UNDERWATER_MARINE_CAVE): - case MAP_NUM(MARINE_CAVE_ENTRANCE): - case MAP_NUM(MARINE_CAVE_END): - case MAP_NUM(TERRA_CAVE_ENTRANCE): - case MAP_NUM(TERRA_CAVE_END): - VarSet(VAR_0x4039, 1); - return FALSE; - default: - break; - } - } - - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER3)) - { - switch (gSaveBlock1Ptr->location.mapNum) - { - case MAP_NUM(UNDERWATER3): - case MAP_NUM(UNDERWATER5): - case MAP_NUM(UNDERWATER6): - case MAP_NUM(UNDERWATER7): - VarSet(VAR_0x4039, 1); - return FALSE; - default: - break; - } - } + return FALSE; + } - if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3410[var2 - 1] && - gSaveBlock1Ptr->location.mapGroup == 0) + if (++var1 > 999) + { + VarSet(VAR_0x4038, 0); + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER_MARINE_CAVE)) + { + switch (gSaveBlock1Ptr->location.mapNum) { - return TRUE; + case MAP_NUM(UNDERWATER_MARINE_CAVE): + case MAP_NUM(MARINE_CAVE_ENTRANCE): + case MAP_NUM(MARINE_CAVE_END): + case MAP_NUM(TERRA_CAVE_ENTRANCE): + case MAP_NUM(TERRA_CAVE_END): + VarSet(VAR_0x4039, 1); + return FALSE; + default: + break; } - else + } + + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER3)) + { + switch (gSaveBlock1Ptr->location.mapNum) { - VarSet(VAR_0x4037, 0); - return FALSE; + case MAP_NUM(UNDERWATER3): + case MAP_NUM(UNDERWATER5): + case MAP_NUM(UNDERWATER6): + case MAP_NUM(UNDERWATER7): + VarSet(VAR_0x4039, 1); + return FALSE; + default: + break; } } + + if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3410[var2 - 1] && + gSaveBlock1Ptr->location.mapGroup == 0) + { + return TRUE; + } else { - VarSet(VAR_0x4038, var1); + VarSet(VAR_0x4037, 0); return FALSE; } } else { + VarSet(VAR_0x4038, var1); return FALSE; } } -#else -NAKED -bool32 sub_813B3B0(void) + +void sub_813B484(void) { - asm_unified("push {r4-r6,lr}\n\ - ldr r5, =0x00004038\n\ - adds r0, r5, 0\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - ldr r0, =0x00004037\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - cmp r6, 0\n\ - beq _0813B47C\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - ldr r0, =0x000003e7\n\ - cmp r4, r0\n\ - bls _0813B474\n\ - adds r0, r5, 0\n\ - movs r1, 0\n\ - bl VarSet\n\ - ldr r0, =gSaveBlock1Ptr\n\ - ldr r1, [r0]\n\ - movs r0, 0x4\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0x18\n\ - bne _0813B414\n\ - movs r0, 0x5\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0x69\n\ - bgt _0813B414\n\ - cmp r0, 0x65\n\ - blt _0813B414\n\ - ldr r0, =0x00004039\n\ - movs r1, 0x1\n\ - b _0813B478\n\ - .pool\n\ -_0813B414:\n\ - ldr r0, =gSaveBlock1Ptr\n\ - ldr r2, [r0]\n\ - movs r1, 0x4\n\ - ldrsb r1, [r2, r1]\n\ - adds r3, r0, 0\n\ - cmp r1, 0\n\ - bne _0813B444\n\ - movs r0, 0x5\n\ - ldrsb r0, [r2, r0]\n\ - cmp r0, 0x34\n\ - beq _0813B436\n\ - cmp r0, 0x34\n\ - blt _0813B444\n\ - cmp r0, 0x38\n\ - bgt _0813B444\n\ - cmp r0, 0x36\n\ - blt _0813B444\n\ -_0813B436:\n\ - ldr r0, =0x00004039\n\ - movs r1, 0x1\n\ - b _0813B478\n\ - .pool\n\ -_0813B444:\n\ - ldr r3, [r3]\n\ - movs r2, 0x5\n\ - ldrsb r2, [r3, r2]\n\ - ldr r1, =gUnknown_085B3410\n\ - subs r0, r6, 0x1\n\ - adds r0, r1\n\ - ldrb r0, [r0]\n\ - cmp r2, r0\n\ - bne _0813B468\n\ - movs r0, 0x4\n\ - ldrsb r0, [r3, r0]\n\ - cmp r0, 0\n\ - bne _0813B468\n\ - movs r0, 0x1\n\ - b _0813B47E\n\ - .pool\n\ -_0813B468:\n\ - ldr r0, =0x00004037\n\ - movs r1, 0\n\ - b _0813B478\n\ - .pool\n\ -_0813B474:\n\ - adds r0, r5, 0\n\ - adds r1, r4, 0\n\ -_0813B478:\n\ - bl VarSet\n\ -_0813B47C:\n\ - movs r0, 0\n\ -_0813B47E:\n\ - pop {r4-r6}\n\ - pop {r1}\n\ - bx r1"); + sub_80AB104(2); +} + +bool32 sub_813B490(void) +{ + static const u8 gUnknown_085B3420[][3] = { + { 0x02, 0x04, 0x01 }, + { 0x04, 0x04, 0x01 }, + { 0x05, 0x00, 0x01 }, + { 0x06, 0x03, 0x01 }, + { 0x08, 0x06, 0x01 }, + { 0x09, 0x0d, 0x01 }, + { 0x0a, 0x07, 0x01 }, + { 0x0b, 0x07, 0x01 }, + { 0x0c, 0x04, 0x01 }, + { 0x0e, 0x05, 0x01 }, + { 0x0f, 0x04, 0x01 }, + { 0x1a, 0x37, 0x01 } + }; + + u8 i; + for (i = 0; i < 12; i++) + { + if (gSaveBlock1Ptr->location.mapGroup == gUnknown_085B3420[i][0]) + { + if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3420[i][1]) + { + return gUnknown_085B3420[i][2]; + } + } + } + return TRUE; +} + +bool32 sub_813B4E0(void) +{ + int index = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004); + if (index >= 0) + { + if (FlagGet(FLAG_MATCH_CALL_REGISTERED + index) == TRUE) + return TRUE; + } + return FALSE; +} + +bool32 sub_813B514(void) +{ + if (!VarGet(VAR_0x403F)) + { + return FALSE; + } + return TRUE; +} + +void sub_813B534(void) +{ + gUnknown_0203AB70 = gBattleTypeFlags; + gBattleTypeFlags = 0; + if (!gReceivedRemoteLinkPlayers) + { + CreateTask(sub_80B3AF8, 5); + } +} + +void sub_813B568(void) +{ + CreateTask(sub_813B57C, 5); +} + +static void sub_813B57C(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (!FuncIsActiveTask(sub_80B3AF8)) + { + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_800A520() == TRUE) + { + if (GetMultiplayerId() == 0) + { + gTasks[taskId].data[0]++; + } + else + { + SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_0x8004, 2); + gTasks[taskId].data[0]++; + } + } + break; + case 2: + if ((GetBlockReceivedStatus() & 2) != 0) + { + if (GetMultiplayerId() == 0) + { + gSpecialVar_0x8005 = gBlockRecvBuffer[1][0]; + ResetBlockReceivedFlag(1); + if (gSpecialVar_0x8004 == 1 && gSpecialVar_0x8005 == 1) + { + gSpecialVar_Result = 1; + } + else if (gSpecialVar_0x8004 == 0 && gSpecialVar_0x8005 == 1) + { + gSpecialVar_Result = 2; + } + else if (gSpecialVar_0x8004 == 1 && gSpecialVar_0x8005 == 0) + { + gSpecialVar_Result = 3; + } + else + { + gSpecialVar_Result = 0; + } + } + gTasks[taskId].data[0]++; + } + break; + case 3: + if (sub_800A520() == TRUE) + { + if (GetMultiplayerId() != 0) + { + gTasks[taskId].data[0]++; + } + else + { + SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_Result, 2); + gTasks[taskId].data[0]++; + } + } + break; + case 4: + if ((GetBlockReceivedStatus() & 1) != 0) + { + if (GetMultiplayerId() != 0) + { + gSpecialVar_Result = gBlockRecvBuffer[0][0]; + ResetBlockReceivedFlag(0); + gTasks[taskId].data[0]++; + } + else + { + gTasks[taskId].data[0]++; + } + } + break; + case 5: + if (GetMultiplayerId() == 0) + { + if (gSpecialVar_Result == 2) + { + ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired); + } + } + else + { + if (gSpecialVar_Result == 3) + { + ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired); + } + } + gTasks[taskId].data[0]++; + break; + case 6: + if (!IsTextPrinterActive(0)) + { + gTasks[taskId].data[0]++; + } + break; + case 7: + if (sub_800A520() == 1) + { + sub_800ADF8(); + gTasks[taskId].data[0]++; + } + break; + case 8: + if (sub_800A520() == 1) + { + gTasks[taskId].data[0]++; + } + break; + case 9: + if (gWirelessCommType == 0) + { + sub_800AC34(); + } + gBattleTypeFlags = gUnknown_0203AB70; + EnableBothScriptContexts(); + DestroyTask(taskId); + break; + } +} + +void sub_813B7D8(void) +{ + if (gSpecialVar_0x8004 == 0) + { + DoRayquazaScene(0, TRUE, CB2_ReturnToFieldContinueScriptPlayMapMusic); + } + else + { + DoRayquazaScene(1, FALSE, CB2_ReturnToFieldContinueScriptPlayMapMusic); + } +} + +void sub_813B80C(void) +{ + CreateTask(sub_813B824, 8); + PlaySE(SE_W017); +} + +static void sub_813B824(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + data[1]++; + if (data[1] == gSpecialVar_0x8005) + { + data[0]++; + data[1] = 0; + PlaySE(SE_W017); + } + + if (data[0] == gSpecialVar_0x8004 - 1) + { + DestroyTask(taskId); + } +} + +void sub_813B880(void) +{ + u8 taskId = CreateTask(_fwalk, 8); + gTasks[taskId].data[0] = 4; + gTasks[taskId].data[1] = 4; + gTasks[taskId].data[2] = 4; + gTasks[taskId].data[3] = 0; +} + +static void _fwalk(u8 taskId) +{ + u8 x, y; + s16 *data = gTasks[taskId].data; + + data[data[3]]--; + if (data[data[3]] == 0) + { + for (y = 0; y < 4; y++) + { + for (x = 0; x < 3; x++) + { + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + x + 6, gSaveBlock1Ptr->pos.y + y + 4, x + 0x201 + y * 8 + data[3] * 32); + } + } + DrawWholeMapView(); + data[3]++; + if (data[3] == 3) + { + DestroyTask(taskId); + EnableBothScriptContexts(); + } + } +} + +void sub_813B968(void) +{ + gSpecialVar_Result = gSpecialVar_0x8004 / 7; + gSpecialVar_Result -= (gSpecialVar_Result / 20) * 20; +} + +void sub_813B9A0(void) +{ + if (gSaveBlock1Ptr->lastHealLocation.mapGroup == MAP_GROUP(DEWFORD_TOWN) && gSaveBlock1Ptr->lastHealLocation.mapNum == MAP_NUM(DEWFORD_TOWN)) + { + Overworld_SetHealLocationWarp(3); + } +} + +bool32 sub_813B9C0(void) +{ + static const u16 gUnknown_085B3444[] = { + MAP_OLDALE_TOWN_POKEMON_CENTER_1F, + MAP_DEWFORD_TOWN_POKEMON_CENTER_1F, + MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F, + MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F, + MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F, + MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F, + MAP_PETALBURG_CITY_POKEMON_CENTER_1F, + MAP_SLATEPORT_CITY_POKEMON_CENTER_1F, + MAP_MAUVILLE_CITY_POKEMON_CENTER_1F, + MAP_RUSTBORO_CITY_POKEMON_CENTER_1F, + MAP_FORTREE_CITY_POKEMON_CENTER_1F, + MAP_LILYCOVE_CITY_POKEMON_CENTER_1F, + MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F, + MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F, + MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F, + MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F, + MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F, + MAP_SINGLE_BATTLE_COLOSSEUM, + MAP_TRADE_CENTER, + MAP_RECORD_CORNER, + MAP_DOUBLE_BATTLE_COLOSSEUM, + 0xffff + }; + + int i; + u16 map = (gSaveBlock1Ptr->location.mapGroup << 8) + gSaveBlock1Ptr->location.mapNum; + + for (i = 0; gUnknown_085B3444[i] != 0xFFFF; i++) + { + if (gUnknown_085B3444[i] == map) + { + return TRUE; + } + } + return FALSE; +} + +void ResetFanClub(void) +{ + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] = 0; + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = 0; +} + +void sub_813BA30(void) +{ + if (sub_813BF44() != 0) + { + UpdateMovedLilycoveFanClubMembers(); + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2Ptr->playTimeHours; + } +} + +void sub_813BA60(void) +{ + if (!((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> 7) & 1)) + { + sub_813BF60(); + sub_813BD84(); + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2Ptr->playTimeHours; + FlagClear(FLAG_HIDE_FANCLUB_OLD_LADY); + FlagClear(FLAG_HIDE_FANCLUB_BOY); + FlagClear(FLAG_HIDE_FANCLUB_LITTLE_BOY); + FlagClear(FLAG_HIDE_FANCLUB_LADY); + FlagClear(FLAG_0x2DA); + VarSet(VAR_LILYCOVE_FAN_CLUB_STATE, 1); + } +} + +u8 sub_813BADC(u8 a0) +{ + static const u8 gUnknown_085B3470[] = { 0x02, 0x01, 0x02, 0x01 }; + + if (VarGet(VAR_LILYCOVE_FAN_CLUB_STATE) == 2) + { + if ((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0x7F) + gUnknown_085B3470[a0] > 19) + { + if (GetNumMovedLilycoveFanClubMembers() < 3) + { + sub_813BB74(); + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] &= 0xFF80; + } + else + { + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] = (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0xFF80) | 0x14; + } + } + else + { + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] += gUnknown_085B3470[a0]; + } + } + + return gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0x7F; +} + +static u16 sub_813BB74(void) +{ + static const u8 gUnknown_085B3474[] = { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }; + + u8 i; + u8 retVal = 0; + + for (i = 0; i < 8; i++) + { + if (!((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B3474[i]) & 1)) + { + retVal = i; + if ((Random() & 1) != 0) + { + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 1 << gUnknown_085B3474[retVal]; + return retVal; + } + } + } + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 1 << gUnknown_085B3474[retVal]; + return retVal; +} + +static u16 sub_813BC00(void) +{ + static const u8 gUnknown_085B347C[] = { 0x08, 0x0d, 0x0e, 0x0b, 0x0a, 0x0c, 0x0f, 0x09 }; + + u8 i; + u8 retVal = 0; + + if (GetNumMovedLilycoveFanClubMembers() == 1) + { + return 0; + } + + for (i = 0; i < 8; i++) + { + if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B347C[i]) & 1) != 0) + { + retVal = i; + if ((Random() & 1) != 0) + { + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] ^= 1 << gUnknown_085B347C[retVal]; + return retVal; + } + } + } + + if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B347C[retVal]) & 1)) + { + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] ^= 1 << gUnknown_085B347C[retVal]; + } + + return retVal; +} + +u16 GetNumMovedLilycoveFanClubMembers(void) +{ + u8 i; + u8 retVal = 0; + + for (i = 0; i < 8; i++) + { + if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> (i + 8)) & 1) != 0) + { + retVal++; + } + } + + return retVal; +} + +void UpdateMovedLilycoveFanClubMembers(void) +{ + u8 i = 0; + if (gSaveBlock2Ptr->playTimeHours < 999) + { + while (TRUE) + { + if (GetNumMovedLilycoveFanClubMembers() < 5) + { + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2Ptr->playTimeHours; + break; + } + else if (i == 8) + { + break; + } + else if (gSaveBlock2Ptr->playTimeHours - gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] < 12) + { + return; + } + sub_813BC00(); + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] += 12; + i++; + } + } +} + +bool8 ShouldMoveLilycoveFanClubMember(void) +{ + return (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gSpecialVar_0x8004) & 1; +} + +static void sub_813BD84(void) +{ + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x2000; + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x100; + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x400; +} + +void BufferStreakTrainerText(void) +{ + u8 a = 0; + u8 b = 0; + switch (gSpecialVar_0x8004) + { + case 8: + break; + case 9: + break; + case 10: + a = 0; + b = 3; + break; + case 11: + a = 0; + b = 1; + break; + case 12: + a = 1; + b = 0; + break; + case 13: + a = 0; + b = 4; + break; + case 14: + a = 1; + b = 5; + break; + case 15: + break; + } + sub_813BE30(&gSaveBlock1Ptr->linkBattleRecords, a, b); +} + +static void sub_813BE30(struct LinkBattleRecords *linkRecords, u8 a, u8 b) +{ + struct LinkBattleRecord *record = &linkRecords->entries[a]; + if (record->name[0] == EOS) + { + switch (b) + { + case 0: + StringCopy(gStringVar1, gText_Wallace); + break; + case 1: + StringCopy(gStringVar1, gText_Steven); + break; + case 2: + StringCopy(gStringVar1, gText_Brawly); + break; + case 3: + StringCopy(gStringVar1, gText_Winona); + break; + case 4: + StringCopy(gStringVar1, gText_Phoebe); + break; + case 5: + StringCopy(gStringVar1, gText_Glacia); + break; + default: + StringCopy(gStringVar1, gText_Wallace); + break; + } + } + else + { + StringCopyN(gStringVar1, record->name, 7); + gStringVar1[7] = EOS; + ConvertInternationalString(gStringVar1, linkRecords->languages[a]); + } +} + +void sub_813BF10(void) +{ + if (VarGet(VAR_LILYCOVE_FAN_CLUB_STATE) == 2) + { + sub_813BA30(); + if (gBattleOutcome == 1) + { + sub_813BB74(); + } + else + { + sub_813BC00(); + } + } +} + +static bool8 sub_813BF44(void) +{ + return (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> 7) & 1; +} + +void sub_813BF60(void) +{ + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x80; +} + +u8 sub_813BF7C(void) +{ + return sub_813BADC(gSpecialVar_0x8004); } -#endif // NONMATCHING diff --git a/sym_ewram.txt b/sym_ewram.txt index 34c9658e8e..37a34b19a6 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -604,10 +604,6 @@ gPlayerFacingPosition: @ 203AB40 .include "src/pokeblock.o" .include "src/field_specials.o" - -gUnknown_0203AB70: @ 203AB70 - .space 0x4 - .include "src/battle_records.o" gUnknown_0203AB7C: @ 203AB7C From 658f9351fe9349eb16edab8d5d503ef741449d4a Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 11 Aug 2018 14:58:51 -0700 Subject: [PATCH 072/174] Rename some specials --- asm/script_menu.s | 8 ++-- data/event_scripts.s | 2 +- .../MauvilleCity_PokemonCenter_1F/scripts.inc | 2 +- data/scripts/mauville_man.inc | 46 +++++++++---------- data/specials.inc | 46 +++++++++---------- include/mauville_old_man.h | 2 +- include/wild_encounter.h | 2 +- src/hof_pc.c | 4 +- src/mauville_old_man.c | 36 +++++++-------- src/trader.c | 12 ++--- 10 files changed, 80 insertions(+), 80 deletions(-) diff --git a/asm/script_menu.s b/asm/script_menu.s index 670740a777..b56b0749c6 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -676,9 +676,9 @@ _080E2360: .pool thumb_func_end sub_80E2308 - thumb_func_start ScrSpecial_CreatePCMenu -@ bool ScrSpecial_CreatePCMenu() -ScrSpecial_CreatePCMenu: @ 80E236C + thumb_func_start Special_CreatePCMenu +@ bool Special_CreatePCMenu() +Special_CreatePCMenu: @ 80E236C push {lr} ldr r0, =sub_80E2058 bl FuncIsActiveTask @@ -698,7 +698,7 @@ _080E2394: _080E2396: pop {r1} bx r1 - thumb_func_end ScrSpecial_CreatePCMenu + thumb_func_end Special_CreatePCMenu thumb_func_start CreatePCMenu CreatePCMenu: @ 80E239C diff --git a/data/event_scripts.s b/data/event_scripts.s index 7dbe3fd015..0d766d70b7 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1772,7 +1772,7 @@ EventScript_271D92:: @ 8271D92 EventScript_271DAC:: @ 8271DAC message gUnknown_0827266F waitmessage - special ScrSpecial_CreatePCMenu + special Special_CreatePCMenu waitstate goto EventScript_271DBC end diff --git a/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc b/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc index fb76a5fc79..8472f4caa3 100644 --- a/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc @@ -10,7 +10,7 @@ MauvilleCity_PokemonCenter_1F_MapScript1_210E66: @ 8210E66 end MauvilleCity_PokemonCenter_1F_EventScript_210E74:: @ 8210E74 - special ScrSpecial_SetMauvilleOldManEventObjGfx + special Special_SetMauvilleOldManEventObjGfx end MauvilleCity_PokemonCenter_1F_EventScript_210E78:: @ 8210E78 diff --git a/data/scripts/mauville_man.inc b/data/scripts/mauville_man.inc index 46be101e11..186361a008 100644 --- a/data/scripts/mauville_man.inc +++ b/data/scripts/mauville_man.inc @@ -1,5 +1,5 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E066:: @ 828E066 - special ScrSpecial_GetCurrentMauvilleMan + special Special_GetCurrentMauvilleMan switch VAR_RESULT case 0, MauvilleCity_PokemonCenter_1F_EventScript_28E0A6 case 1, MauvilleCity_PokemonCenter_1F_EventScript_28E167 @@ -20,9 +20,9 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E0A6:: @ 828E0A6 MauvilleCity_PokemonCenter_1F_EventScript_28E0C7:: @ 828E0C7 setvar VAR_0x8004, 0 - special ScrSpecial_PlayBardSong + special Special_PlayBardSong delay 60 - special ScrSpecial_HasBardSongBeenChanged + special Special_HasBardSongBeenChanged compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E0F4 msgbox MauvilleCity_PokemonCenter_1F_Text_2903E6, 4 @@ -51,12 +51,12 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E113:: @ 828E113 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E15D msgbox MauvilleCity_PokemonCenter_1F_Text_2904C1, 4 setvar VAR_0x8004, 1 - special ScrSpecial_PlayBardSong + special Special_PlayBardSong delay 60 msgbox MauvilleCity_PokemonCenter_1F_Text_2904EB, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E113 - special ScrSpecial_SaveBardSongLyrics + special Special_SaveBardSongLyrics msgbox MauvilleCity_PokemonCenter_1F_Text_290514, 4 release end @@ -71,7 +71,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E167:: @ 828E167 faceplayer setflag FLAG_SYS_HIPSTER_MEET msgbox MauvilleCity_PokemonCenter_1F_Text_29054C, 4 - special ScrSpecial_GetHipsterSpokenFlag + special Special_GetHipsterSpokenFlag compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E18C msgbox MauvilleCity_PokemonCenter_1F_Text_290598, 4 @@ -79,7 +79,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E167:: @ 828E167 end MauvilleCity_PokemonCenter_1F_EventScript_28E18C:: @ 828E18C - special ScrSpecial_HipsterTeachWord + special Special_HipsterTeachWord compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E1A4 msgbox MauvilleCity_PokemonCenter_1F_Text_290602, 4 @@ -88,7 +88,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E18C:: @ 828E18C MauvilleCity_PokemonCenter_1F_EventScript_28E1A4:: @ 828E1A4 msgbox MauvilleCity_PokemonCenter_1F_Text_290666, 4 - special ScrSpecial_SetHipsterSpokenFlag + special Special_SetHipsterSpokenFlag release end @@ -157,7 +157,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E4D4:: @ 828E4D4 msgbox MauvilleCity_PokemonCenter_1F_Text_28E1B1, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E503 - special ScrSpecial_GetTraderTradedFlag + special Special_GetTraderTradedFlag compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E50D message MauvilleCity_PokemonCenter_1F_Text_28E23F @@ -176,7 +176,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E50D:: @ 828E50D end MauvilleCity_PokemonCenter_1F_EventScript_28E517:: @ 828E517 - special ScrSpecial_TraderMenuGetDecoration + special Special_TraderMenuGetDecoration waitstate compare VAR_0x8004, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E558 @@ -185,7 +185,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E517:: @ 828E517 msgbox MauvilleCity_PokemonCenter_1F_Text_28E2A9, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E56E - special ScrSpecial_DoesPlayerHaveNoDecorations + special Special_DoesPlayerHaveNoDecorations compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E57A goto MauvilleCity_PokemonCenter_1F_EventScript_28E584 @@ -215,19 +215,19 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E57A:: @ 828E57A MauvilleCity_PokemonCenter_1F_EventScript_28E584:: @ 828E584 msgbox MauvilleCity_PokemonCenter_1F_Text_28E323, 4 - special ScrSpecial_TraderMenuGiveDecoration + special Special_TraderMenuGiveDecoration waitstate compare VAR_0x8006, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E5D4 compare VAR_0x8006, 65535 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E5DE - special ScrSpecial_IsDecorationFull + special Special_IsDecorationFull compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E5EC msgbox MauvilleCity_PokemonCenter_1F_Text_28E3C4, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E584 - special ScrSpecial_TraderDoDecorationTrade + special Special_TraderDoDecorationTrade msgbox MauvilleCity_PokemonCenter_1F_Text_28E424, 4 release end @@ -813,20 +813,20 @@ MauvilleCity_PokemonCenter_1F_EventScript_29014A:: @ 829014A msgbox MauvilleCity_PokemonCenter_1F_Text_28E5F6, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_290219 - specialvar VAR_RESULT, ScrSpecial_StorytellerGetFreeStorySlot + specialvar VAR_RESULT, Special_StorytellerGetFreeStorySlot compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_2901DA message MauvilleCity_PokemonCenter_1F_Text_28E673 waitmessage - special ScrSpecial_StorytellerStoryListMenu + special Special_StorytellerStoryListMenu waitstate compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_2901B7 setvar VAR_0x8008, 1 - special ScrSpecial_StorytellerDisplayStory + special Special_StorytellerDisplayStory waitmessage waitbuttonpress - specialvar VAR_RESULT, ScrSpecial_StorytellerUpdateStat + specialvar VAR_RESULT, Special_StorytellerUpdateStat compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_2901BD goto MauvilleCity_PokemonCenter_1F_EventScript_29020F @@ -837,7 +837,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_2901B7:: @ 82901B7 MauvilleCity_PokemonCenter_1F_EventScript_2901BD:: @ 82901BD msgbox MauvilleCity_PokemonCenter_1F_Text_28E78A, 4 - specialvar VAR_RESULT, ScrSpecial_HasStorytellerAlreadyRecorded + specialvar VAR_RESULT, Special_HasStorytellerAlreadyRecorded compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_29022D goto MauvilleCity_PokemonCenter_1F_EventScript_2901E2 @@ -849,7 +849,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_2901E2:: @ 82901E2 msgbox MauvilleCity_PokemonCenter_1F_Text_28E7EE, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_290219 - specialvar VAR_RESULT, ScrSpecial_StorytellerInitializeRandomStat + specialvar VAR_RESULT, Special_StorytellerInitializeRandomStat compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_29020F msgbox MauvilleCity_PokemonCenter_1F_Text_28E881, 4 @@ -903,7 +903,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_2902F6:: @ 82902F6 end MauvilleCity_PokemonCenter_1F_EventScript_290317:: @ 8290317 - special ScrSpecial_GiddyShouldTellAnotherTale + special Special_GiddyShouldTellAnotherTale compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_290359 compare VAR_RESULT, 0 @@ -911,7 +911,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_290317:: @ 8290317 end MauvilleCity_PokemonCenter_1F_EventScript_290331:: @ 8290331 - special ScrSpecial_GiddyShouldTellAnotherTale + special Special_GiddyShouldTellAnotherTale compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_29034B compare VAR_RESULT, 0 @@ -924,7 +924,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_29034B:: @ 829034B end MauvilleCity_PokemonCenter_1F_EventScript_290359:: @ 8290359 - special ScrSpecial_GenerateGiddyLine + special Special_GenerateGiddyLine special ShowFieldMessageStringVar4 waitmessage yesnobox 20, 8 diff --git a/data/specials.inc b/data/specials.inc index 86355f4840..35b70b5c99 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -108,28 +108,28 @@ gSpecials:: @ 81DBA64 def_special sub_80FAFF8 def_special easy_chat_input_maybe def_special sub_811EECC - def_special ScrSpecial_GetCurrentMauvilleMan - def_special ScrSpecial_HasBardSongBeenChanged - def_special ScrSpecial_SaveBardSongLyrics - def_special ScrSpecial_GetHipsterSpokenFlag - def_special ScrSpecial_SetHipsterSpokenFlag - def_special ScrSpecial_HipsterTeachWord - def_special ScrSpecial_PlayBardSong - def_special ScrSpecial_SetMauvilleOldManEventObjGfx - def_special ScrSpecial_GenerateGiddyLine - def_special ScrSpecial_GiddyShouldTellAnotherTale - def_special ScrSpecial_StorytellerGetFreeStorySlot - def_special ScrSpecial_StorytellerDisplayStory - def_special ScrSpecial_StorytellerStoryListMenu - def_special ScrSpecial_StorytellerUpdateStat - def_special ScrSpecial_StorytellerInitializeRandomStat - def_special ScrSpecial_HasStorytellerAlreadyRecorded - def_special ScrSpecial_TraderMenuGetDecoration - def_special ScrSpecial_GetTraderTradedFlag - def_special ScrSpecial_DoesPlayerHaveNoDecorations - def_special ScrSpecial_IsDecorationFull - def_special ScrSpecial_TraderMenuGiveDecoration - def_special ScrSpecial_TraderDoDecorationTrade + def_special Special_GetCurrentMauvilleMan + def_special Special_HasBardSongBeenChanged + def_special Special_SaveBardSongLyrics + def_special Special_GetHipsterSpokenFlag + def_special Special_SetHipsterSpokenFlag + def_special Special_HipsterTeachWord + def_special Special_PlayBardSong + def_special Special_SetMauvilleOldManEventObjGfx + def_special Special_GenerateGiddyLine + def_special Special_GiddyShouldTellAnotherTale + def_special Special_StorytellerGetFreeStorySlot + def_special Special_StorytellerDisplayStory + def_special Special_StorytellerStoryListMenu + def_special Special_StorytellerUpdateStat + def_special Special_StorytellerInitializeRandomStat + def_special Special_HasStorytellerAlreadyRecorded + def_special Special_TraderMenuGetDecoration + def_special Special_GetTraderTradedFlag + def_special Special_DoesPlayerHaveNoDecorations + def_special Special_IsDecorationFull + def_special Special_TraderMenuGiveDecoration + def_special Special_TraderDoDecorationTrade def_special GetSeedotSizeRecordInfo def_special CompareSeedotSize def_special GetLotadSizeRecordInfo @@ -273,7 +273,7 @@ gSpecials:: @ 81DBA64 def_special ShowBerryBlenderRecordWindow def_special ResetTrickHouseEndRoomFlag def_special SetTrickHouseEndRoomFlag - def_special ScrSpecial_CreatePCMenu + def_special Special_CreatePCMenu def_special AccessHallOfFamePC def_special Special_ShowDiploma def_special CheckLeadMonCool diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h index 9d71e81aa5..dd7d5c4e00 100644 --- a/include/mauville_old_man.h +++ b/include/mauville_old_man.h @@ -15,7 +15,7 @@ extern struct BardSong gBardSong; void SetMauvilleOldMan(void); u8 GetCurrentMauvilleOldMan(void); -void ScrSpecial_SetMauvilleOldManEventObjGfx(void); +void Special_SetMauvilleOldManEventObjGfx(void); u8 sub_81201C8(void); void sub_8120B70(OldMan *dest); void sub_8120670(void); diff --git a/include/wild_encounter.h b/include/wild_encounter.h index 55bbaa7dde..14a28ee7e0 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -33,7 +33,7 @@ extern const struct WildPokemonHeader gWildMonHeaders[]; void DisableWildEncounters(bool8 disabled); bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavior); -void ScrSpecial_RockSmashWildEncounter(void); +void Special_RockSmashWildEncounter(void); bool8 SweetScentWildEncounter(void); bool8 DoesCurrentMapHaveFishingMons(void); void FishingWildEncounter(u8 rod); diff --git a/src/hof_pc.c b/src/hof_pc.c index 44b9293378..38bf26c65c 100644 --- a/src/hof_pc.c +++ b/src/hof_pc.c @@ -10,7 +10,7 @@ extern void (*gUnknown_0300485C)(void); extern void Overworld_PlaySpecialMapMusic(void); -extern bool16 ScrSpecial_CreatePCMenu(void); +extern bool16 Special_CreatePCMenu(void); extern void ScriptMenu_DisplayPCStartupPrompt(void); static void ReshowPCMenuAfterHallOfFamePC(void); @@ -32,7 +32,7 @@ static void ReshowPCMenuAfterHallOfFamePC(void) { ScriptContext2_Enable(); Overworld_PlaySpecialMapMusic(); - ScrSpecial_CreatePCMenu(); + Special_CreatePCMenu(); ScriptMenu_DisplayPCStartupPrompt(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); CreateTask(Task_WaitForPaletteFade, 10); diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 591e3ad9a1..752e19e9c9 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -136,7 +136,7 @@ void SetMauvilleOldMan(void) SetupGiddy(); break; } - ScrSpecial_SetMauvilleOldManEventObjGfx(); + Special_SetMauvilleOldManEventObjGfx(); } u8 GetCurrentMauvilleOldMan(void) @@ -146,12 +146,12 @@ u8 GetCurrentMauvilleOldMan(void) return common->id; } -void ScrSpecial_GetCurrentMauvilleMan(void) +void Special_GetCurrentMauvilleMan(void) { gSpecialVar_Result = GetCurrentMauvilleOldMan(); } -void ScrSpecial_HasBardSongBeenChanged(void) +void Special_HasBardSongBeenChanged(void) { u16 *scriptResult = &gSpecialVar_Result; // why?? struct MauvilleManBard *bard = &gSaveBlock1Ptr->oldMan.bard; @@ -159,7 +159,7 @@ void ScrSpecial_HasBardSongBeenChanged(void) *scriptResult = bard->hasChangedSong; } -void ScrSpecial_SaveBardSongLyrics(void) +void Special_SaveBardSongLyrics(void) { u16 i; struct MauvilleManBard *bard = &gSaveBlock1Ptr->oldMan.bard; @@ -225,13 +225,13 @@ static void PrepareSongText(void) } } -void ScrSpecial_PlayBardSong(void) +void Special_PlayBardSong(void) { StartBardSong(gSpecialVar_0x8004); ScriptContext1_Stop(); } -void ScrSpecial_GetHipsterSpokenFlag(void) +void Special_GetHipsterSpokenFlag(void) { u16 *scriptResult = &gSpecialVar_Result; // again?? struct MauvilleManHipster *hipster = &gSaveBlock1Ptr->oldMan.hipster; @@ -239,14 +239,14 @@ void ScrSpecial_GetHipsterSpokenFlag(void) *scriptResult = hipster->alreadySpoken; } -void ScrSpecial_SetHipsterSpokenFlag(void) +void Special_SetHipsterSpokenFlag(void) { struct MauvilleManHipster *hipster = &gSaveBlock1Ptr->oldMan.hipster; hipster->alreadySpoken = TRUE; } -void ScrSpecial_HipsterTeachWord(void) +void Special_HipsterTeachWord(void) { u16 var = sub_811F01C(); @@ -261,7 +261,7 @@ void ScrSpecial_HipsterTeachWord(void) } } -void ScrSpecial_GiddyShouldTellAnotherTale(void) +void Special_GiddyShouldTellAnotherTale(void) { struct MauvilleManGiddy *giddy = &gSaveBlock1Ptr->oldMan.giddy; @@ -276,7 +276,7 @@ void ScrSpecial_GiddyShouldTellAnotherTale(void) } } -void ScrSpecial_GenerateGiddyLine(void) +void Special_GenerateGiddyLine(void) { struct MauvilleManGiddy *giddy = &gSaveBlock1Ptr->oldMan.giddy; @@ -406,7 +406,7 @@ void ResetMauvilleOldManFlag(void) case MAUVILLE_MAN_GIDDY: break; } - ScrSpecial_SetMauvilleOldManEventObjGfx(); + Special_SetMauvilleOldManEventObjGfx(); } @@ -671,7 +671,7 @@ static void Task_BardSong(u8 taskId) sub_8197224(); } -void ScrSpecial_SetMauvilleOldManEventObjGfx(void) +void Special_SetMauvilleOldManEventObjGfx(void) { VarSet(VAR_OBJ_GFX_ID_0, EVENT_OBJ_GFX_BARD); } @@ -1199,24 +1199,24 @@ static void Task_StoryListMenu(u8 taskId) // Task_StoryListMenu } // Sets gSpecialVar_Result to TRUE if player selected a story -void ScrSpecial_StorytellerStoryListMenu(void) +void Special_StorytellerStoryListMenu(void) { CreateTask(Task_StoryListMenu, 80); } -void ScrSpecial_StorytellerDisplayStory(void) +void Special_StorytellerDisplayStory(void) { StorytellerDisplayStory(sSelectedStory); } -u8 ScrSpecial_StorytellerGetFreeStorySlot(void) +u8 Special_StorytellerGetFreeStorySlot(void) { sStorytellerPtr = &gSaveBlock1Ptr->oldMan.storyteller; return GetFreeStorySlot(); } // Returns TRUE if stat has increased -bool8 ScrSpecial_StorytellerUpdateStat(void) +bool8 Special_StorytellerUpdateStat(void) { u8 r4; sStorytellerPtr = &gSaveBlock1Ptr->oldMan.storyteller; @@ -1230,7 +1230,7 @@ bool8 ScrSpecial_StorytellerUpdateStat(void) return FALSE; } -bool8 ScrSpecial_HasStorytellerAlreadyRecorded(void) +bool8 Special_HasStorytellerAlreadyRecorded(void) { sStorytellerPtr = &gSaveBlock1Ptr->oldMan.storyteller; @@ -1240,7 +1240,7 @@ bool8 ScrSpecial_HasStorytellerAlreadyRecorded(void) return TRUE; } -bool8 ScrSpecial_StorytellerInitializeRandomStat(void) +bool8 Special_StorytellerInitializeRandomStat(void) { sStorytellerPtr = &gSaveBlock1Ptr->oldMan.storyteller; return StorytellerInitializeRandomStat(); diff --git a/src/trader.c b/src/trader.c index c4d70ac9a9..2cb74b23c2 100644 --- a/src/trader.c +++ b/src/trader.c @@ -130,13 +130,13 @@ void Task_HandleGetDecorationMenuInput(u8 taskId) } } -void ScrSpecial_GetTraderTradedFlag(void) +void Special_GetTraderTradedFlag(void) { struct MauvilleOldManTrader *trader = &gSaveBlock1Ptr->oldMan.trader; gSpecialVar_Result = trader->alreadyTraded; } -void ScrSpecial_DoesPlayerHaveNoDecorations(void) +void Special_DoesPlayerHaveNoDecorations(void) { u8 i; @@ -151,7 +151,7 @@ void ScrSpecial_DoesPlayerHaveNoDecorations(void) gSpecialVar_Result = TRUE; } -void ScrSpecial_IsDecorationFull(void) +void Special_IsDecorationFull(void) { gSpecialVar_Result = FALSE; if (gDecorations[gSpecialVar_0x8004].category != gDecorations[gSpecialVar_0x8006].category @@ -162,7 +162,7 @@ void ScrSpecial_IsDecorationFull(void) } } -void ScrSpecial_TraderMenuGiveDecoration(void) +void Special_TraderMenuGiveDecoration(void) { CreateTask(sub_8127208, 0); } @@ -190,7 +190,7 @@ void sub_8133E1C(u8 taskId) EnableBothScriptContexts(); } -void ScrSpecial_TraderDoDecorationTrade(void) +void Special_TraderDoDecorationTrade(void) { struct MauvilleOldManTrader *trader = &gSaveBlock1Ptr->oldMan.trader; @@ -202,7 +202,7 @@ void ScrSpecial_TraderDoDecorationTrade(void) trader->alreadyTraded = TRUE; } -void ScrSpecial_TraderMenuGetDecoration(void) +void Special_TraderMenuGetDecoration(void) { u8 taskId = CreateTask(Task_HandleGetDecorationMenuInput, 0); CreateAvailableDecorationsMenu(taskId); From df5009cb3e723d2bceca45a63acccf54dfafb095 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 00:03:19 +0200 Subject: [PATCH 073/174] Move move descriptions to C --- data/pokemon_summary_screen.s | 3 - data/text/move_descriptions.inc | 1421 ----------------------------- include/data2.h | 5 +- ld_script.txt | 1 + src/data/text/move_descriptions.h | 714 +++++++++++++++ src/data/text/move_names.h | 3 +- src/pokemon_summary_screen.c | 5 +- 7 files changed, 724 insertions(+), 1428 deletions(-) delete mode 100644 data/text/move_descriptions.inc create mode 100644 src/data/text/move_descriptions.h diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s index 51e515ccbd..0c22aa6cd7 100644 --- a/data/pokemon_summary_screen.s +++ b/data/pokemon_summary_screen.s @@ -3,9 +3,6 @@ .section .rodata -@ 86181C1 - .include "data/text/move_descriptions.inc" - @ 861CAAC .include "data/text/nature_names.inc" diff --git a/data/text/move_descriptions.inc b/data/text/move_descriptions.inc deleted file mode 100644 index 0f6b1adbfc..0000000000 --- a/data/text/move_descriptions.inc +++ /dev/null @@ -1,1421 +0,0 @@ -gNullMoveDescription:: @ 86181C0 - .string "$" - -gPoundMoveDescription:: @ 86181C1 - .string "Pounds the foe with\nforelegs or tail.$" - -gKarateChopMoveDescription:: @ 86181E7 - .string "A chopping attack with a\nhigh critical-hit ratio.$" - -gDoubleSlapMoveDescription:: @ 8618219 - .string "Repeatedly slaps the foe\n2 to 5 times.$" - -gCometPunchMoveDescription:: @ 8618240 - .string "Repeatedly punches the foe\n2 to 5 times.$" - -gMegaPunchMoveDescription:: @ 8618269 - .string "A strong punch thrown with\nincredible power.$" - -gPayDayMoveDescription:: @ 8618296 - .string "Throws coins at the foe.\nMoney is recovered after.$" - -gFirePunchMoveDescription:: @ 86182C9 - .string "A fiery punch that may burn\nthe foe.$" - -gIcePunchMoveDescription:: @ 86182EE - .string "An icy punch that may\nfreeze the foe.$" - -gThunderPunchMoveDescription:: @ 8618314 - .string "An electrified punch that\nmay paralyze the foe.$" - -gScratchMoveDescription:: @ 8618344 - .string "Scratches the foe with\nsharp claws.$" - -gViceGripMoveDescription:: @ 8618368 - .string "Grips the foe with large and\npowerful pincers.$" - -gGuillotineMoveDescription:: @ 8618397 - .string "A powerful pincer attack\nthat may cause fainting.$" - -gRazorWindMoveDescription:: @ 86183C9 - .string "A 2-turn move that strikes\nthe foe on the 2nd turn.$" - -gSwordsDanceMoveDescription:: @ 86183FD - .string "A fighting dance that\nsharply raises ATTACK.$" - -gCutMoveDescription:: @ 861842A - .string "Cuts the foe with sharp\nscythes, claws, etc.$" - -gGustMoveDescription:: @ 8618457 - .string "Strikes the foe with a gust\nof wind whipped up by wings.$" - -gWingAttackMoveDescription:: @ 8618490 - .string "Strikes the foe with wings\nspread wide.$" - -gWhirlwindMoveDescription:: @ 86184B8 - .string "Blows away the foe with\nwind and ends the battle.$" - -gFlyMoveDescription:: @ 86184EA - .string "Flies up on the first turn,\nthen strikes the next turn.$" - -gBindMoveDescription:: @ 8618522 - .string "Binds and squeezes the foe\nfor 2 to 5 turns.$" - -gSlamMoveDescription:: @ 861854F - .string "Slams the foe with a long\ntail, vine, etc.$" - -gVineWhipMoveDescription:: @ 861857A - .string "Strikes the foe with\nslender, whiplike vines.$" - -gStompMoveDescription:: @ 86185A8 - .string "Stomps the enemy with a big\nfoot. May cause flinching.$" - -gDoubleKickMoveDescription:: @ 86185DF - .string "A double-kicking attack\nthat strikes the foe twice.$" - -gMegaKickMoveDescription:: @ 8618613 - .string "An extremely powerful kick\nwith intense force.$" - -gJumpKickMoveDescription:: @ 8618642 - .string "A strong jumping kick. May\nmiss and hurt the kicker.$" - -gRollingKickMoveDescription:: @ 8618677 - .string "A fast kick delivered from\na rapid spin.$" - -gSandAttackMoveDescription:: @ 86186A0 - .string "Reduces the foe’s accuracy\nby hurling sand in its face.$" - -gHeadbuttMoveDescription:: @ 86186D8 - .string "A ramming attack that may\ncause flinching.$" - -gHornAttackMoveDescription:: @ 8618703 - .string "Jabs the foe with sharp\nhorns.$" - -gFuryAttackMoveDescription:: @ 8618722 - .string "Jabs the foe 2 to 5 times\nwith sharp horns, etc.$" - -gHornDrillMoveDescription:: @ 8618753 - .string "A one-hit KO attack that\nuses a horn like a drill.$" - -gTackleMoveDescription:: @ 8618786 - .string "Charges the foe with a full-\nbody tackle.$" - -gBodySlamMoveDescription:: @ 86187B0 - .string "A full-body slam that may\ncause paralysis.$" - -gWrapMoveDescription:: @ 86187DB - .string "Wraps and squeezes the foe\n2 to 5 times with vines, etc.$" - -gTakeDownMoveDescription:: @ 8618814 - .string "A reckless charge attack\nthat also hurts the user.$" - -gThrashMoveDescription:: @ 8618847 - .string "A rampage of 2 to 3 turns\nthat confuses the user.$" - -gDoubleEdgeMoveDescription:: @ 8618879 - .string "A life-risking tackle that\nalso hurts the user.$" - -gTailWhipMoveDescription:: @ 86188A9 - .string "Wags the tail to lower the\nfoe’s DEFENSE.$" - -gPoisonStingMoveDescription:: @ 86188D3 - .string "A toxic attack with barbs,\netc., that may poison.$" - -gTwineedleMoveDescription:: @ 8618905 - .string "Stingers on the forelegs\njab the foe twice.$" - -gPinMissileMoveDescription:: @ 8618931 - .string "Sharp pins are fired to\nstrike 2 to 5 times.$" - -gLeerMoveDescription:: @ 861895E - .string "Frightens the foe with a\nleer to lower DEFENSE.$" - -gBiteMoveDescription:: @ 861898E - .string "Bites with vicious fangs.\nMay cause flinching.$" - -gGrowlMoveDescription:: @ 86189BD - .string "Growls cutely to reduce the\nfoe’s ATTACK.$" - -gRoarMoveDescription:: @ 86189E7 - .string "Makes the foe flee to end\nthe battle.$" - -gSingMoveDescription:: @ 8618A0D - .string "A soothing song lulls the\nfoe into a deep slumber.$" - -gSupersonicMoveDescription:: @ 8618A40 - .string "Emits bizarre sound waves\nthat may confuse the foe.$" - -gSonicBoomMoveDescription:: @ 8618A74 - .string "Launches shock waves that\nalways inflict 20 HP damage.$" - -gDisableMoveDescription:: @ 8618AAB - .string "Psychically disables one of\nthe foe’s moves.$" - -gAcidMoveDescription:: @ 8618AD8 - .string "Sprays a hide-melting acid.\nMay lower DEFENSE.$" - -gEmberMoveDescription:: @ 8618B07 - .string "A weak fire attack that may\ninflict a burn.$" - -gFlamethrowerMoveDescription:: @ 8618B33 - .string "A powerful fire attack that\nmay inflict a burn.$" - -gMistMoveDescription:: @ 8618B63 - .string "Creates a mist that stops\nreduction of abilities.$" - -gWaterGunMoveDescription:: @ 8618B95 - .string "Squirts water to attack\nthe foe.$" - -gHydroPumpMoveDescription:: @ 8618BB6 - .string "Blasts water at high power\nto strike the foe.$" - -gSurfMoveDescription:: @ 8618BE4 - .string "Creates a huge wave, then\ncrashes it down on the foe.$" - -gIceBeamMoveDescription:: @ 8618C1A - .string "Blasts the foe with an icy\nbeam that may freeze it.$" - -gBlizzardMoveDescription:: @ 8618C4E - .string "Hits the foe with an icy\nstorm that may freeze it.$" - -gPsybeamMoveDescription:: @ 8618C81 - .string "Fires a peculiar ray that\nmay confuse the foe.$" - -gBubbleBeamMoveDescription:: @ 8618CB0 - .string "Forcefully sprays bubbles\nthat may lower SPEED.$" - -gAuroraBeamMoveDescription:: @ 8618CE0 - .string "Fires a rainbow-colored\nbeam that may lower ATTACK.$" - -gHyperBeamMoveDescription:: @ 8618D14 - .string "Powerful, but leaves the\nuser immobile the next turn.$" - -gPeckMoveDescription:: @ 8618D4A - .string "Attacks the foe with a\njabbing beak, etc.$" - -gDrillPeckMoveDescription:: @ 8618D74 - .string "A corkscrewing attack with\nthe beak acting as a drill.$" - -gSubmissionMoveDescription:: @ 8618DAB - .string "A reckless body slam that\nalso hurts the user.$" - -gLowKickMoveDescription:: @ 8618DDA - .string "A kick that inflicts more\ndamage on heavier foes.$" - -gCounterMoveDescription:: @ 8618E0C - .string "Retaliates any physical hit\nwith double the power.$" - -gSeismicTossMoveDescription:: @ 8618E3F - .string "Inflicts damage identical\nto the user’s level.$" - -gStrengthMoveDescription:: @ 8618E6E - .string "Builds enormous power,\nthen slams the foe.$" - -gAbsorbMoveDescription:: @ 8618E99 - .string "An attack that absorbs\nhalf the damage inflicted.$" - -gMegaDrainMoveDescription:: @ 8618ECB - .string "An attack that absorbs\nhalf the damage inflicted.$" - -gLeechSeedMoveDescription:: @ 8618EFD - .string "Plants a seed on the foe to\nsteal HP on every turn.$" - -gGrowthMoveDescription:: @ 8618F31 - .string "Forces the body to grow\nand heightens SP. ATK.$" - -gRazorLeafMoveDescription:: @ 8618F60 - .string "Cuts the enemy with leaves.\nHigh critical-hit ratio.$" - -gSolarBeamMoveDescription:: @ 8618F95 - .string "Absorbs light in one turn,\nthen attacks next turn.$" - -gPoisonPowderMoveDescription:: @ 8618FC8 - .string "Scatters a toxic powder\nthat may poison the foe.$" - -gStunSporeMoveDescription:: @ 8618FF9 - .string "Scatters a powder that may\nparalyze the foe.$" - -gSleepPowderMoveDescription:: @ 8619026 - .string "Scatters a powder that may\ncause the foe to sleep.$" - -gPetalDanceMoveDescription:: @ 8619059 - .string "A rampage of 2 to 3 turns\nthat confuses the user.$" - -gStringShotMoveDescription:: @ 861908B - .string "Binds the foe with string\nto reduce its SPEED.$" - -gDragonRageMoveDescription:: @ 86190BA - .string "Launches shock waves that\nalways inflict 40 HP damage.$" - -gFireSpinMoveDescription:: @ 86190F1 - .string "Traps the foe in a ring of\nfire for 2 to 5 turns.$" - -gThunderShockMoveDescription:: @ 8619123 - .string "An electrical attack that\nmay paralyze the foe.$" - -gThunderboltMoveDescription:: @ 8619153 - .string "A strong electrical attack\nthat may paralyze the foe.$" - -gThunderWaveMoveDescription:: @ 8619189 - .string "A weak jolt of electricity\nthat paralyzes the foe.$" - -gThunderMoveDescription:: @ 86191BC - .string "A lightning attack that may\ncause paralysis.$" - -gRockThrowMoveDescription:: @ 86191E9 - .string "Throws small rocks to\nstrike the foe.$" - -gEarthquakeMoveDescription:: @ 861920F - .string "A powerful quake, but has\nno effect on flying foes.$" - -gFissureMoveDescription:: @ 8619243 - .string "A one-hit KO move that\ndrops the foe in a fissure.$" - -gDigMoveDescription:: @ 8619276 - .string "Digs underground the first\nturn and strikes next turn.$" - -gToxicMoveDescription:: @ 86192AD - .string "Poisons the foe with an\nintensifying toxin.$" - -gConfusionMoveDescription:: @ 86192D9 - .string "A psychic attack that may\ncause confusion.$" - -gPsychicMoveDescription:: @ 8619304 - .string "A powerful psychic attack\nthat may lower SP. DEF.$" - -gHypnosisMoveDescription:: @ 8619336 - .string "A hypnotizing move that\nmay induce sleep.$" - -gMeditateMoveDescription:: @ 8619360 - .string "Meditates in a peaceful\nfashion to raise ATTACK.$" - -gAgilityMoveDescription:: @ 8619391 - .string "Relaxes the body to sharply\nboost SPEED.$" - -gQuickAttackMoveDescription:: @ 86193BA - .string "An extremely fast attack\nthat always strikes first.$" - -gRageMoveDescription:: @ 86193EE - .string "Raises the user’s ATTACK\nevery time it is hit.$" - -gTeleportMoveDescription:: @ 861941D - .string "A psychic move for fleeing\nfrom battle instantly.$" - -gNightShadeMoveDescription:: @ 861944F - .string "Inflicts damage identical\nto the user’s level.$" - -gMimicMoveDescription:: @ 861947E - .string "Copies a move used by the\nfoe during one battle.$" - -gScreechMoveDescription:: @ 86194AF - .string "Emits a screech to sharply\nreduce the foe’s DEFENSE.$" - -gDoubleTeamMoveDescription:: @ 86194E4 - .string "Creates illusory copies to\nraise evasiveness.$" - -gRecoverMoveDescription:: @ 8619512 - .string "Recovers up to half the\nuser’s maximum HP.$" - -gHardenMoveDescription:: @ 861953D - .string "Stiffens the body’s \nmuscles to raise DEFENSE.$" - -gMinimizeMoveDescription:: @ 861956C - .string "Minimizes the user’s size\nto raise evasiveness.$" - -gSmokescreenMoveDescription:: @ 861959C - .string "Lowers the foe’s accuracy\nusing smoke, ink, etc.$" - -gConfuseRayMoveDescription:: @ 86195CD - .string "A sinister ray that\nconfuses the foe.$" - -gWithdrawMoveDescription:: @ 86195F3 - .string "Withdraws the body into its\nhard shell to raise DEFENSE.$" - -gDefenseCurlMoveDescription:: @ 861962C - .string "Curls up to conceal weak\nspots and raise DEFENSE.$" - -gBarrierMoveDescription:: @ 861965E - .string "Creates a barrier that\nsharply raises DEFENSE.$" - -gLightScreenMoveDescription:: @ 861968D - .string "Creates a wall of light that\nlowers SP. ATK damage.$" - -gHazeMoveDescription:: @ 86196C1 - .string "Creates a black haze that\neliminates all stat changes.$" - -gReflectMoveDescription:: @ 86196F8 - .string "Creates a wall of light that\nweakens physical attacks.$" - -gFocusEnergyMoveDescription:: @ 861972F - .string "Focuses power to raise the\ncritical-hit ratio.$" - -gBideMoveDescription:: @ 861975E - .string "Endures attack for 2\nturns to retaliate double.$" - -gMetronomeMoveDescription:: @ 861978E - .string "Waggles a finger to use any\nPOKéMON move at random.$" - -gMirrorMoveMoveDescription:: @ 86197C2 - .string "Counters the foe’s attack\nwith the same move.$" - -gSelfDestructMoveDescription:: @ 86197F0 - .string "Inflicts severe damage but\nmakes the user faint.$" - -gEggBombMoveDescription:: @ 8619821 - .string "An egg is forcibly hurled at\nthe foe.$" - -gLickMoveDescription:: @ 8619847 - .string "Licks with a long tongue to\ninjure. May also paralyze.$" - -gSmogMoveDescription:: @ 861987E - .string "An exhaust-gas attack\nthat may also poison.$" - -gSludgeMoveDescription:: @ 86198AA - .string "Sludge is hurled to inflict\ndamage. May also poison.$" - -gBoneClubMoveDescription:: @ 86198DF - .string "Clubs the foe with a bone.\nMay cause flinching.$" - -gFireBlastMoveDescription:: @ 861990F - .string "Incinerates everything it\nstrikes. May cause a burn.$" - -gWaterfallMoveDescription:: @ 8619944 - .string "Charges the foe with speed\nto climb waterfalls.$" - -gClampMoveDescription:: @ 8619974 - .string "Traps and squeezes the\nfoe for 2 to 5 turns.$" - -gSwiftMoveDescription:: @ 86199A1 - .string "Sprays star-shaped rays\nthat never miss.$" - -gSkullBashMoveDescription:: @ 86199CA - .string "Tucks in the head, then\nattacks on the next turn.$" - -gSpikeCannonMoveDescription:: @ 86199FC - .string "Launches sharp spikes that\nstrike 2 to 5 times.$" - -gConstrictMoveDescription:: @ 8619A2C - .string "Constricts to inflict pain.\nMay lower SPEED.$" - -gAmnesiaMoveDescription:: @ 8619A59 - .string "Forgets about something\nand sharply raises SP. DEF.$" - -gKinesisMoveDescription:: @ 8619A8D - .string "Distracts the foe.\nMay lower accuracy.$" - -gSoftBoiledMoveDescription:: @ 8619AB4 - .string "Recovers up to half the\nuser’s maximum HP.$" - -gHiJumpKickMoveDescription:: @ 8619ADF - .string "A jumping knee kick. If it\nmisses, the user is hurt.$" - -gGlareMoveDescription:: @ 8619B14 - .string "Intimidates and frightens\nthe foe into paralysis.$" - -gDreamEaterMoveDescription:: @ 8619B46 - .string "Takes one half the damage\ninflicted on a sleeping foe.$" - -gPoisonGasMoveDescription:: @ 8619B7D - .string "Envelops the foe in a toxic\ngas that may poison.$" - -gBarrageMoveDescription:: @ 8619BAE - .string "Hurls round objects at the\nfoe 2 to 5 times.$" - -gLeechLifeMoveDescription:: @ 8619BDB - .string "An attack that steals half\nthe damage inflicted.$" - -gLovelyKissMoveDescription:: @ 8619C0C - .string "Demands a kiss with a scary\nface that induces sleep.$" - -gSkyAttackMoveDescription:: @ 8619C41 - .string "Searches out weak spots,\nthen strikes the next turn.$" - -gTransformMoveDescription:: @ 8619C76 - .string "Alters the user’s cells to\nbecome a copy of the foe.$" - -gBubbleMoveDescription:: @ 8619CAB - .string "An attack using bubbles.\nMay lower the foe’s SPEED.$" - -gDizzyPunchMoveDescription:: @ 8619CDF - .string "A rhythmic punch that may\nconfuse the foe.$" - -gSporeMoveDescription:: @ 8619D0A - .string "Scatters a cloud of spores\nthat always induce sleep.$" - -gFlashMoveDescription:: @ 8619D3F - .string "Looses a powerful blast of\nlight that cuts accuracy.$" - -gPsywaveMoveDescription:: @ 8619D74 - .string "Attacks with a psychic\nwave of varying intensity.$" - -gSplashMoveDescription:: @ 8619DA6 - .string "It’s just a splash...\nHas no effect whatsoever.$" - -gAcidArmorMoveDescription:: @ 8619DD6 - .string "Liquifies the user’s body\nto sharply raise DEFENSE.$" - -gCrabhammerMoveDescription:: @ 8619E0A - .string "Hammers with a pincer. Has a\nhigh critical-hit ratio.$" - -gExplosionMoveDescription:: @ 8619E40 - .string "Inflicts severe damage but\nmakes the user faint.$" - -gFurySwipesMoveDescription:: @ 8619E71 - .string "Rakes the foe with sharp\nclaws, etc., 2 to 5 times.$" - -gBonemerangMoveDescription:: @ 8619EA5 - .string "Throws a bone boomerang\nthat strikes twice.$" - -gRestMoveDescription:: @ 8619ED1 - .string "The user sleeps for 2 turns,\nrestoring HP and status.$" - -gRockSlideMoveDescription:: @ 8619F07 - .string "Large boulders are hurled.\nMay cause flinching.$" - -gHyperFangMoveDescription:: @ 8619F37 - .string "Attacks with sharp fangs.\nMay cause flinching.$" - -gSharpenMoveDescription:: @ 8619F66 - .string "Reduces the polygon count\nand raises ATTACK.$" - -gConversionMoveDescription:: @ 8619F93 - .string "Changes the user’s type\ninto a known move’s type.$" - -gTriAttackMoveDescription:: @ 8619FC5 - .string "Fires three types of beams\nat the same time.$" - -gSuperFangMoveDescription:: @ 8619FF2 - .string "Attacks with sharp fangs\nand cuts half the foe’s HP.$" - -gSlashMoveDescription:: @ 861A027 - .string "Slashes with claws, etc. Has\na high critical-hit ratio.$" - -gSubstituteMoveDescription:: @ 861A05F - .string "Creates a decoy using 1/4\nof the user’s maximum HP.$" - -gStruggleMoveDescription:: @ 861A093 - .string "Used only if all PP are gone.\nAlso hurts the user a little.$" - -gSketchMoveDescription:: @ 861A0CF - .string "Copies the foe’s last move\npermanently.$" - -gTripleKickMoveDescription:: @ 861A0F7 - .string "Kicks the foe 3 times in a\nrow with rising intensity.$" - -gThiefMoveDescription:: @ 861A12D - .string "While attacking, it may\nsteal the foe’s held item.$" - -gSpiderWebMoveDescription:: @ 861A160 - .string "Ensnares the foe to stop it\nfrom fleeing or switching.$" - -gMindReaderMoveDescription:: @ 861A197 - .string "Senses the foe’s action to\nensure the next move’s hit.$" - -gNightmareMoveDescription:: @ 861A1CE - .string "Inflicts 1/4 damage on a\nsleeping foe every turn.$" - -gFlameWheelMoveDescription:: @ 861A200 - .string "A fiery charge attack that\nmay inflict a burn.$" - -gSnoreMoveDescription:: @ 861A22F - .string "A loud attack that can be\nused only while asleep.$" - -gCurseMoveDescription:: @ 861A261 - .string "A move that functions\ndifferently for GHOSTS.$" - -gFlailMoveDescription:: @ 861A28F - .string "Inflicts more damage when\nthe user’s HP is down.$" - -gConversion2MoveDescription:: @ 861A2C0 - .string "Makes the user resistant\nto the last attack’s type.$" - -gAeroblastMoveDescription:: @ 861A2F4 - .string "Launches a vacuumed blast.\nHigh critical-hit ratio.$" - -gCottonSporeMoveDescription:: @ 861A328 - .string "Spores cling to the foe,\nsharply reducing SPEED.$" - -gReversalMoveDescription:: @ 861A359 - .string "Inflicts more damage when\nthe user’s HP is down.$" - -gSpiteMoveDescription:: @ 861A38A - .string "Spitefully cuts the PP\nof the foe’s last move.$" - -gPowderSnowMoveDescription:: @ 861A3B9 - .string "Blasts the foe with a snowy\ngust. May cause freezing.$" - -gProtectMoveDescription:: @ 861A3EF - .string "Evades attack, but may fail\nif used in succession.$" - -gMachPunchMoveDescription:: @ 861A422 - .string "A punch is thrown at wicked\nspeed to strike first.$" - -gScaryFaceMoveDescription:: @ 861A455 - .string "Frightens with a scary face\nto sharply reduce SPEED.$" - -gFaintAttackMoveDescription:: @ 861A48A - .string "Draws the foe close, then\nstrikes without fail.$" - -gSweetKissMoveDescription:: @ 861A4BA - .string "Demands a kiss with a cute\nlook. May cause confusion.$" - -gBellyDrumMoveDescription:: @ 861A4F0 - .string "Maximizes ATTACK while\nsacrificing HP.$" - -gSludgeBombMoveDescription:: @ 861A517 - .string "Sludge is hurled to inflict\ndamage. May also poison.$" - -gMudSlapMoveDescription:: @ 861A54C - .string "Hurls mud in the foe’s face\nto reduce its accuracy.$" - -gOctazookaMoveDescription:: @ 861A580 - .string "Fires a lump of ink to\ndamage and cut accuracy.$" - -gSpikesMoveDescription:: @ 861A5B0 - .string "Sets spikes that hurt a \nfoe switching in.$" - -gZapCannonMoveDescription:: @ 861A5DB - .string "Powerful and sure to cause\nparalysis, but inaccurate.$" - -gForesightMoveDescription:: @ 861A611 - .string "Negates the foe’s efforts\nto heighten evasiveness.$" - -gDestinyBondMoveDescription:: @ 861A644 - .string "If the user faints, the foe\nis also made to faint.$" - -gPerishSongMoveDescription:: @ 861A677 - .string "Any POKéMON hearing this\nsong faints in 3 turns.$" - -gIcyWindMoveDescription:: @ 861A6A8 - .string "A chilling attack that\nlowers the foe’s SPEED.$" - -gDetectMoveDescription:: @ 861A6D7 - .string "Evades attack, but may fail\nif used in succession.$" - -gBoneRushMoveDescription:: @ 861A70A - .string "Strikes the foe with a bone\nin hand 2 to 5 times.$" - -gLockOnMoveDescription:: @ 861A73C - .string "Locks on to the foe to\nensure the next move hits.$" - -gOutrageMoveDescription:: @ 861A76E - .string "A rampage of 2 to 3 turns\nthat confuses the user.$" - -gSandstormMoveDescription:: @ 861A7A0 - .string "Causes a sandstorm that\nrages for several turns.$" - -gGigaDrainMoveDescription:: @ 861A7D1 - .string "An attack that steals half\nthe damage inflicted.$" - -gEndureMoveDescription:: @ 861A802 - .string "Endures any attack for\n1 turn, leaving at least 1HP.$" - -gCharmMoveDescription:: @ 861A837 - .string "Charms the foe and sharply\nreduces its ATTACK.$" - -gRolloutMoveDescription:: @ 861A866 - .string "An attack lasting 5 turns\nwith rising intensity.$" - -gFalseSwipeMoveDescription:: @ 861A897 - .string "An attack that leaves the\nfoe with at least 1 HP.$" - -gSwaggerMoveDescription:: @ 861A8C9 - .string "Confuses the foe, but also\nsharply raises ATTACK.$" - -gMilkDrinkMoveDescription:: @ 861A8FB - .string "Recovers up to half the\nuser’s maximum HP.$" - -gSparkMoveDescription:: @ 861A926 - .string "An electrified tackle that\nmay paralyze the foe.$" - -gFuryCutterMoveDescription:: @ 861A957 - .string "An attack that intensifies\non each successive hit.$" - -gSteelWingMoveDescription:: @ 861A98A - .string "Strikes the foe with hard\nwings spread wide.$" - -gMeanLookMoveDescription:: @ 861A9B7 - .string "Fixes the foe with a mean\nlook that prevents escape.$" - -gAttractMoveDescription:: @ 861A9EC - .string "Makes the opposite gender\nless likely to attack.$" - -gSleepTalkMoveDescription:: @ 861AA1D - .string "Uses an available move\nrandomly while asleep.$" - -gHealBellMoveDescription:: @ 861AA4B - .string "Chimes soothingly to heal\nall status abnormalities.$" - -gReturnMoveDescription:: @ 861AA7F - .string "An attack that increases\nin power with friendship.$" - -gPresentMoveDescription:: @ 861AAB2 - .string "A gift in the form of a\nbomb. May restore HP.$" - -gFrustrationMoveDescription:: @ 861AAE0 - .string "An attack that is stronger\nif the TRAINER is disliked.$" - -gSafeguardMoveDescription:: @ 861AB17 - .string "A mystical force prevents\nall status problems.$" - -gPainSplitMoveDescription:: @ 861AB46 - .string "Adds the user and foe’s HP,\nthen shares them equally.$" - -gSacredFireMoveDescription:: @ 861AB7C - .string "A mystical fire attack that\nmay inflict a burn.$" - -gMagnitudeMoveDescription:: @ 861ABAC - .string "A ground-shaking attack\nof random intensity.$" - -gDynamicPunchMoveDescription:: @ 861ABD9 - .string "Powerful and sure to cause\nconfusion, but inaccurate.$" - -gMegahornMoveDescription:: @ 861AC0F - .string "A brutal ramming attack\nusing out-thrust horns.$" - -gDragonBreathMoveDescription:: @ 861AC3F - .string "Strikes the foe with an\nincredible blast of breath.$" - -gBatonPassMoveDescription:: @ 861AC73 - .string "Switches out the user while\nkeeping effects in play.$" - -gEncoreMoveDescription:: @ 861ACA8 - .string "Makes the foe repeat its\nlast move over 2 to 6 turns.$" - -gPursuitMoveDescription:: @ 861ACDE - .string "Inflicts bad damage if used\non a foe switching out.$" - -gRapidSpinMoveDescription:: @ 861AD12 - .string "Spins the body at high\nspeed to strike the foe.$" - -gSweetScentMoveDescription:: @ 861AD42 - .string "Allures the foe to reduce\nevasiveness.$" - -gIronTailMoveDescription:: @ 861AD69 - .string "Attacks with a rock-hard\ntail. May lower DEFENSE.$" - -gMetalClawMoveDescription:: @ 861AD9B - .string "A claw attack that may\nraise the user’s ATTACK.$" - -gVitalThrowMoveDescription:: @ 861ADCB - .string "Makes the user’s move last,\nbut it never misses.$" - -gMorningSunMoveDescription:: @ 861ADFC - .string "Restores HP. The amount\nvaries with the weather.$" - -gSynthesisMoveDescription:: @ 861AE2D - .string "Restores HP. The amount\nvaries with the weather.$" - -gMoonlightMoveDescription:: @ 861AE5E - .string "Restores HP. The amount\nvaries with the weather.$" - -gHiddenPowerMoveDescription:: @ 861AE8F - .string "The effectiveness varies\nwith the user.$" - -gCrossChopMoveDescription:: @ 861AEB7 - .string "A double-chopping attack.\nHigh critical-hit ratio.$" - -gTwisterMoveDescription:: @ 861AEEA - .string "Whips up a vicious twister\nto tear at the foe.$" - -gRainDanceMoveDescription:: @ 861AF19 - .string "Boosts the power of WATER-\ntype moves for 5 turns.$" - -gSunnyDayMoveDescription:: @ 861AF4C - .string "Boosts the power of FIRE-\ntype moves for 5 turns.$" - -gCrunchMoveDescription:: @ 861AF7E - .string "Crunches with sharp fangs.\nMay lower SP. DEF.$" - -gMirrorCoatMoveDescription:: @ 861AFAC - .string "Counters the foe’s special\nattack at double the power.$" - -gPsychUpMoveDescription:: @ 861AFE3 - .string "Copies the foe’s effect(s)\nand gives to the user.$" - -gExtremeSpeedMoveDescription:: @ 861B015 - .string "An extremely fast and\npowerful attack.$" - -gAncientPowerMoveDescription:: @ 861B03C - .string "An attack that may raise\nall stats.$" - -gShadowBallMoveDescription:: @ 861B060 - .string "Hurls a black blob that may\nlower the foe’s SP. DEF.$" - -gFutureSightMoveDescription:: @ 861B095 - .string "Heightens inner power to\nstrike 2 turns later.$" - -gRockSmashMoveDescription:: @ 861B0C4 - .string "A rock-crushing attack\nthat may lower DEFENSE.$" - -gWhirlpoolMoveDescription:: @ 861B0F3 - .string "Traps and hurts the foe in\na whirlpool for 2 to 5 turns.$" - -gBeatUpMoveDescription:: @ 861B12C - .string "Summons party POKéMON to\njoin in the attack.$" - -gFakeOutMoveDescription:: @ 861B159 - .string "A 1st-turn, 1st-strike move\nthat causes flinching.$" - -gUproarMoveDescription:: @ 861B18C - .string "Causes an uproar for 2 to 5\nturns and prevents sleep.$" - -gStockpileMoveDescription:: @ 861B1C2 - .string "Charges up power for up to\n3 turns.$" - -gSpitUpMoveDescription:: @ 861B1E6 - .string "Releases stockpiled power\n(the more the better).$" - -gSwallowMoveDescription:: @ 861B217 - .string "Absorbs stockpiled power\nand restores HP.$" - -gHeatWaveMoveDescription:: @ 861B241 - .string "Exhales a hot breath on the\nfoe. May inflict a burn.$" - -gHailMoveDescription:: @ 861B276 - .string "Summons a hailstorm that\nstrikes every turn.$" - -gTormentMoveDescription:: @ 861B2A3 - .string "Torments the foe and stops\nsuccessive use of a move.$" - -gFlatterMoveDescription:: @ 861B2D8 - .string "Confuses the foe, but\nraises its SP. ATK.$" - -gWillOWispMoveDescription:: @ 861B302 - .string "Inflicts a burn on the foe\nwith intense fire.$" - -gMementoMoveDescription:: @ 861B330 - .string "The user faints and lowers\nthe foe’s abilities.$" - -gFacadeMoveDescription:: @ 861B360 - .string "Boosts ATTACK when burned,\nparalyzed, or poisoned.$" - -gFocusPunchMoveDescription:: @ 861B393 - .string "A powerful loyalty attack.\nThe user flinches if hit.$" - -gSmellingSaltMoveDescription:: @ 861B3C8 - .string "Powerful against paralyzed\nfoes, but also heals them.$" - -gFollowMeMoveDescription:: @ 861B3FE - .string "Draws attention to make\nfoes attack only the user.$" - -gNaturePowerMoveDescription:: @ 861B431 - .string "The type of attack varies\ndepending on the location.$" - -gChargeMoveDescription:: @ 861B466 - .string "Charges power to boost the\nelectric move used next.$" - -gTauntMoveDescription:: @ 861B49A - .string "Taunts the foe into only\nusing attack moves.$" - -gHelpingHandMoveDescription:: @ 861B4C7 - .string "Boosts the power of the\nrecipient’s moves.$" - -gTrickMoveDescription:: @ 861B4F2 - .string "Tricks the foe into trading\nheld items.$" - -gRolePlayMoveDescription:: @ 861B51A - .string "Mimics the target and\ncopies its special ability.$" - -gWishMoveDescription:: @ 861B54C - .string "A wish that restores HP.\nIt takes time to work.$" - -gAssistMoveDescription:: @ 861B57C - .string "Attacks randomly with one\nof the partner’s moves.$" - -gIngrainMoveDescription:: @ 861B5AE - .string "Lays roots that restore HP.\nThe user can’t switch out.$" - -gSuperpowerMoveDescription:: @ 861B5E5 - .string "Boosts strength sharply,\nbut lowers abilities.$" - -gMagicCoatMoveDescription:: @ 861B614 - .string "Reflects special effects\nback to the attacker.$" - -gRecycleMoveDescription:: @ 861B643 - .string "Recycles a used item for\none more use.$" - -gRevengeMoveDescription:: @ 861B66A - .string "An attack that gains power\nif injured by the foe.$" - -gBrickBreakMoveDescription:: @ 861B69C - .string "Destroys barriers such as\nREFLECT and causes damage.$" - -gYawnMoveDescription:: @ 861B6D1 - .string "Lulls the foe into yawning,\nthen sleeping next turn.$" - -gKnockOffMoveDescription:: @ 861B706 - .string "Knocks down the foe’s held\nitem to prevent its use.$" - -gEndeavorMoveDescription:: @ 861B73A - .string "Gains power if the user’s HP\nis lower than the foe’s HP.$" - -gEruptionMoveDescription:: @ 861B773 - .string "The higher the user’s HP,\nthe more damage caused.$" - -gSkillSwapMoveDescription:: @ 861B7A5 - .string "The user swaps special\nabilities with the target.$" - -gImprisonMoveDescription:: @ 861B7D7 - .string "Prevents foes from using\nmoves known by the user.$" - -gRefreshMoveDescription:: @ 861B809 - .string "Heals poisoning, paralysis,\nor a burn.$" - -gGrudgeMoveDescription:: @ 861B830 - .string "If the user faints, deletes\nall PP of foe’s last move.$" - -gSnatchMoveDescription:: @ 861B867 - .string "Steals the effects of the\nmove the target uses next.$" - -gSecretPowerMoveDescription:: @ 861B89C - .string "An attack with effects\nthat vary by location.$" - -gDiveMoveDescription:: @ 861B8CA - .string "Dives underwater the first\nturn and strikes next turn.$" - -gArmThrustMoveDescription:: @ 861B901 - .string "Straight-arm punches that\nstrike the foe 2 to 5 times.$" - -gCamouflageMoveDescription:: @ 861B938 - .string "Alters the POKéMON’s type\ndepending on the location.$" - -gTailGlowMoveDescription:: @ 861B96D - .string "Flashes a light that sharply\nraises SP. ATK.$" - -gLusterPurgeMoveDescription:: @ 861B99A - .string "Attacks with a burst of\nlight. May lower SP. DEF.$" - -gMistBallMoveDescription:: @ 861B9CC - .string "Attacks with a flurry of\ndown. May lower SP. ATK.$" - -gFeatherDanceMoveDescription:: @ 861B9FE - .string "Envelops the foe with down\nto sharply reduce ATTACK.$" - -gTeeterDanceMoveDescription:: @ 861BA33 - .string "Confuses all POKéMON on\nthe scene.$" - -gBlazeKickMoveDescription:: @ 861BA56 - .string "A kick with a high critical-\nhit ratio. May cause a burn.$" - -gMudSportMoveDescription:: @ 861BA90 - .string "Covers the user in mud to\nraise electrical resistance.$" - -gIceBallMoveDescription:: @ 861BAC7 - .string "A 5-turn attack that gains\npower on successive hits.$" - -gNeedleArmMoveDescription:: @ 861BAFC - .string "Attacks with thorny arms.\nMay cause flinching.$" - -gSlackOffMoveDescription:: @ 861BB2B - .string "Slacks off and restores\nhalf the maximum HP.$" - -gHyperVoiceMoveDescription:: @ 861BB58 - .string "A loud attack that uses\nsound waves to injure.$" - -gPoisonFangMoveDescription:: @ 861BB87 - .string "A sharp-fanged attack.\nMay badly poison the foe.$" - -gCrushClawMoveDescription:: @ 861BBB8 - .string "Tears at the foe with sharp\nclaws. May lower DEFENSE.$" - -gBlastBurnMoveDescription:: @ 861BBEE - .string "Powerful, but leaves the\nuser immobile the next turn.$" - -gHydroCannonMoveDescription:: @ 861BC24 - .string "Powerful, but leaves the\nuser immobile the next turn.$" - -gMeteorMashMoveDescription:: @ 861BC5A - .string "Fires a meteor-like punch.\nMay raise ATTACK.$" - -gAstonishMoveDescription:: @ 861BC87 - .string "An attack that may shock\nthe foe into flinching.$" - -gWeatherBallMoveDescription:: @ 861BCB8 - .string "The move’s type and power\nchange with the weather.$" - -gAromatherapyMoveDescription:: @ 861BCEB - .string "Heals all status problems\nwith a soothing scent.$" - -gFakeTearsMoveDescription:: @ 861BD1C - .string "Feigns crying to sharply\nlower the foe’s SP. DEF.$" - -gAirCutterMoveDescription:: @ 861BD4E - .string "Hacks with razorlike wind.\nHigh critical-hit ratio.$" - -gOverheatMoveDescription:: @ 861BD82 - .string "Allows a full-power attack,\nbut sharply lowers SP. ATK.$" - -gOdorSleuthMoveDescription:: @ 861BDBA - .string "Negates the foe’s efforts\nto heighten evasiveness.$" - -gRockTombMoveDescription:: @ 861BDED - .string "Stops the foe from moving\nwith rocks and cuts SPEED.$" - -gSilverWindMoveDescription:: @ 861BE22 - .string "A powdery attack that may\nraise abilities.$" - -gMetalSoundMoveDescription:: @ 861BE4D - .string "Emits a horrible screech\nthat sharply lowers SP. DEF.$" - -gGrassWhistleMoveDescription:: @ 861BE83 - .string "Lulls the foe into sleep\nwith a pleasant melody.$" - -gTickleMoveDescription:: @ 861BEB4 - .string "Makes the foe laugh to\nlower ATTACK and DEFENSE.$" - -gCosmicPowerMoveDescription:: @ 861BEE5 - .string "Raises DEFENSE and SP. DEF\nwith a mystic power.$" - -gWaterSpoutMoveDescription:: @ 861BF15 - .string "Inflicts more damage if the\nuser’s HP is high.$" - -gSignalBeamMoveDescription:: @ 861BF44 - .string "A strange beam attack that\nmay confuse the foe.$" - -gShadowPunchMoveDescription:: @ 861BF74 - .string "An unavoidable punch that\nis thrown from shadows.$" - -gExtrasensoryMoveDescription:: @ 861BFA6 - .string "Attacks with a peculiar\npower. May cause flinching.$" - -gSkyUppercutMoveDescription:: @ 861BFDA - .string "An uppercut thrown as if\nleaping into the sky.$" - -gSandTombMoveDescription:: @ 861C009 - .string "Traps and hurts the foe in\nquicksand for 2 to 5 turns.$" - -gSheerColdMoveDescription:: @ 861C040 - .string "A chilling attack that\ncauses fainting if it hits.$" - -gMuddyWaterMoveDescription:: @ 861C073 - .string "Attacks with muddy water.\nMay lower accuracy.$" - -gBulletSeedMoveDescription:: @ 861C0A1 - .string "Shoots 2 to 5 seeds in a row\nto strike the foe.$" - -gAerialAceMoveDescription:: @ 861C0D1 - .string "An extremely speedy and\nunavoidable attack.$" - -gIcicleSpearMoveDescription:: @ 861C0FD - .string "Attacks the foe by firing\n2 to 5 icicles in a row.$" - -gIronDefenseMoveDescription:: @ 861C130 - .string "Hardens the body’s surface\nto sharply raise DEFENSE.$" - -gBlockMoveDescription:: @ 861C165 - .string "Blocks the foe’s way to\nprevent escape.$" - -gHowlMoveDescription:: @ 861C18D - .string "Howls to raise the spirit\nand boosts ATTACK.$" - -gDragonClawMoveDescription:: @ 861C1BA - .string "Slashes the foe with sharp\nclaws.$" - -gFrenzyPlantMoveDescription:: @ 861C1DC - .string "Powerful, but leaves the\nuser immobile the next turn.$" - -gBulkUpMoveDescription:: @ 861C212 - .string "Bulks up the body to boost\nboth ATTACK and DEFENSE.$" - -gBounceMoveDescription:: @ 861C246 - .string "Bounces up, then down the\nnext turn. May paralyze.$" - -gMudShotMoveDescription:: @ 861C279 - .string "Hurls mud at the foe and\nreduces SPEED.$" - -gPoisonTailMoveDescription:: @ 861C2A1 - .string "Has a high critical-hit\nratio. May also poison.$" - -gCovetMoveDescription:: @ 861C2D1 - .string "Cutely begs to obtain an\nitem held by the foe.$" - -gVoltTackleMoveDescription:: @ 861C300 - .string "A life-risking tackle that\nslightly hurts the user.$" - -gMagicalLeafMoveDescription:: @ 861C334 - .string "Attacks with a strange leaf\nthat cannot be evaded.$" - -gWaterSportMoveDescription:: @ 861C367 - .string "The user becomes soaked to\nraise resistance to fire.$" - -gCalmMindMoveDescription:: @ 861C39C - .string "Raises SP. ATK and SP. DEF\nby focusing the mind.$" - -gLeafBladeMoveDescription:: @ 861C3CD - .string "Slashes with a sharp leaf.\nHigh critical-hit ratio.$" - -gDragonDanceMoveDescription:: @ 861C401 - .string "A mystical dance that ups\nATTACK and SPEED.$" - -gRockBlastMoveDescription:: @ 861C42D - .string "Hurls boulders at the foe\n2 to 5 times in a row.$" - -gShockWaveMoveDescription:: @ 861C45E - .string "A fast and unavoidable\nelectric attack.$" - -gWaterPulseMoveDescription:: @ 861C486 - .string "Attacks with ultrasonic\nwaves. May confuse the foe.$" - -gDoomDesireMoveDescription:: @ 861C4BA - .string "Summons strong sunlight to\nattack 2 turns later.$" - -gPsychoBoostMoveDescription:: @ 861C4EB - .string "Allows a full-power attack,\nbut sharply lowers SP. ATK.$" - - .align 2 -gMoveDescriptionPointers:: @ 861C524 - .4byte gPoundMoveDescription - .4byte gKarateChopMoveDescription - .4byte gDoubleSlapMoveDescription - .4byte gCometPunchMoveDescription - .4byte gMegaPunchMoveDescription - .4byte gPayDayMoveDescription - .4byte gFirePunchMoveDescription - .4byte gIcePunchMoveDescription - .4byte gThunderPunchMoveDescription - .4byte gScratchMoveDescription - .4byte gViceGripMoveDescription - .4byte gGuillotineMoveDescription - .4byte gRazorWindMoveDescription - .4byte gSwordsDanceMoveDescription - .4byte gCutMoveDescription - .4byte gGustMoveDescription - .4byte gWingAttackMoveDescription - .4byte gWhirlwindMoveDescription - .4byte gFlyMoveDescription - .4byte gBindMoveDescription - .4byte gSlamMoveDescription - .4byte gVineWhipMoveDescription - .4byte gStompMoveDescription - .4byte gDoubleKickMoveDescription - .4byte gMegaKickMoveDescription - .4byte gJumpKickMoveDescription - .4byte gRollingKickMoveDescription - .4byte gSandAttackMoveDescription - .4byte gHeadbuttMoveDescription - .4byte gHornAttackMoveDescription - .4byte gFuryAttackMoveDescription - .4byte gHornDrillMoveDescription - .4byte gTackleMoveDescription - .4byte gBodySlamMoveDescription - .4byte gWrapMoveDescription - .4byte gTakeDownMoveDescription - .4byte gThrashMoveDescription - .4byte gDoubleEdgeMoveDescription - .4byte gTailWhipMoveDescription - .4byte gPoisonStingMoveDescription - .4byte gTwineedleMoveDescription - .4byte gPinMissileMoveDescription - .4byte gLeerMoveDescription - .4byte gBiteMoveDescription - .4byte gGrowlMoveDescription - .4byte gRoarMoveDescription - .4byte gSingMoveDescription - .4byte gSupersonicMoveDescription - .4byte gSonicBoomMoveDescription - .4byte gDisableMoveDescription - .4byte gAcidMoveDescription - .4byte gEmberMoveDescription - .4byte gFlamethrowerMoveDescription - .4byte gMistMoveDescription - .4byte gWaterGunMoveDescription - .4byte gHydroPumpMoveDescription - .4byte gSurfMoveDescription - .4byte gIceBeamMoveDescription - .4byte gBlizzardMoveDescription - .4byte gPsybeamMoveDescription - .4byte gBubbleBeamMoveDescription - .4byte gAuroraBeamMoveDescription - .4byte gHyperBeamMoveDescription - .4byte gPeckMoveDescription - .4byte gDrillPeckMoveDescription - .4byte gSubmissionMoveDescription - .4byte gLowKickMoveDescription - .4byte gCounterMoveDescription - .4byte gSeismicTossMoveDescription - .4byte gStrengthMoveDescription - .4byte gAbsorbMoveDescription - .4byte gMegaDrainMoveDescription - .4byte gLeechSeedMoveDescription - .4byte gGrowthMoveDescription - .4byte gRazorLeafMoveDescription - .4byte gSolarBeamMoveDescription - .4byte gPoisonPowderMoveDescription - .4byte gStunSporeMoveDescription - .4byte gSleepPowderMoveDescription - .4byte gPetalDanceMoveDescription - .4byte gStringShotMoveDescription - .4byte gDragonRageMoveDescription - .4byte gFireSpinMoveDescription - .4byte gThunderShockMoveDescription - .4byte gThunderboltMoveDescription - .4byte gThunderWaveMoveDescription - .4byte gThunderMoveDescription - .4byte gRockThrowMoveDescription - .4byte gEarthquakeMoveDescription - .4byte gFissureMoveDescription - .4byte gDigMoveDescription - .4byte gToxicMoveDescription - .4byte gConfusionMoveDescription - .4byte gPsychicMoveDescription - .4byte gHypnosisMoveDescription - .4byte gMeditateMoveDescription - .4byte gAgilityMoveDescription - .4byte gQuickAttackMoveDescription - .4byte gRageMoveDescription - .4byte gTeleportMoveDescription - .4byte gNightShadeMoveDescription - .4byte gMimicMoveDescription - .4byte gScreechMoveDescription - .4byte gDoubleTeamMoveDescription - .4byte gRecoverMoveDescription - .4byte gHardenMoveDescription - .4byte gMinimizeMoveDescription - .4byte gSmokescreenMoveDescription - .4byte gConfuseRayMoveDescription - .4byte gWithdrawMoveDescription - .4byte gDefenseCurlMoveDescription - .4byte gBarrierMoveDescription - .4byte gLightScreenMoveDescription - .4byte gHazeMoveDescription - .4byte gReflectMoveDescription - .4byte gFocusEnergyMoveDescription - .4byte gBideMoveDescription - .4byte gMetronomeMoveDescription - .4byte gMirrorMoveMoveDescription - .4byte gSelfDestructMoveDescription - .4byte gEggBombMoveDescription - .4byte gLickMoveDescription - .4byte gSmogMoveDescription - .4byte gSludgeMoveDescription - .4byte gBoneClubMoveDescription - .4byte gFireBlastMoveDescription - .4byte gWaterfallMoveDescription - .4byte gClampMoveDescription - .4byte gSwiftMoveDescription - .4byte gSkullBashMoveDescription - .4byte gSpikeCannonMoveDescription - .4byte gConstrictMoveDescription - .4byte gAmnesiaMoveDescription - .4byte gKinesisMoveDescription - .4byte gSoftBoiledMoveDescription - .4byte gHiJumpKickMoveDescription - .4byte gGlareMoveDescription - .4byte gDreamEaterMoveDescription - .4byte gPoisonGasMoveDescription - .4byte gBarrageMoveDescription - .4byte gLeechLifeMoveDescription - .4byte gLovelyKissMoveDescription - .4byte gSkyAttackMoveDescription - .4byte gTransformMoveDescription - .4byte gBubbleMoveDescription - .4byte gDizzyPunchMoveDescription - .4byte gSporeMoveDescription - .4byte gFlashMoveDescription - .4byte gPsywaveMoveDescription - .4byte gSplashMoveDescription - .4byte gAcidArmorMoveDescription - .4byte gCrabhammerMoveDescription - .4byte gExplosionMoveDescription - .4byte gFurySwipesMoveDescription - .4byte gBonemerangMoveDescription - .4byte gRestMoveDescription - .4byte gRockSlideMoveDescription - .4byte gHyperFangMoveDescription - .4byte gSharpenMoveDescription - .4byte gConversionMoveDescription - .4byte gTriAttackMoveDescription - .4byte gSuperFangMoveDescription - .4byte gSlashMoveDescription - .4byte gSubstituteMoveDescription - .4byte gStruggleMoveDescription - .4byte gSketchMoveDescription - .4byte gTripleKickMoveDescription - .4byte gThiefMoveDescription - .4byte gSpiderWebMoveDescription - .4byte gMindReaderMoveDescription - .4byte gNightmareMoveDescription - .4byte gFlameWheelMoveDescription - .4byte gSnoreMoveDescription - .4byte gCurseMoveDescription - .4byte gFlailMoveDescription - .4byte gConversion2MoveDescription - .4byte gAeroblastMoveDescription - .4byte gCottonSporeMoveDescription - .4byte gReversalMoveDescription - .4byte gSpiteMoveDescription - .4byte gPowderSnowMoveDescription - .4byte gProtectMoveDescription - .4byte gMachPunchMoveDescription - .4byte gScaryFaceMoveDescription - .4byte gFaintAttackMoveDescription - .4byte gSweetKissMoveDescription - .4byte gBellyDrumMoveDescription - .4byte gSludgeBombMoveDescription - .4byte gMudSlapMoveDescription - .4byte gOctazookaMoveDescription - .4byte gSpikesMoveDescription - .4byte gZapCannonMoveDescription - .4byte gForesightMoveDescription - .4byte gDestinyBondMoveDescription - .4byte gPerishSongMoveDescription - .4byte gIcyWindMoveDescription - .4byte gDetectMoveDescription - .4byte gBoneRushMoveDescription - .4byte gLockOnMoveDescription - .4byte gOutrageMoveDescription - .4byte gSandstormMoveDescription - .4byte gGigaDrainMoveDescription - .4byte gEndureMoveDescription - .4byte gCharmMoveDescription - .4byte gRolloutMoveDescription - .4byte gFalseSwipeMoveDescription - .4byte gSwaggerMoveDescription - .4byte gMilkDrinkMoveDescription - .4byte gSparkMoveDescription - .4byte gFuryCutterMoveDescription - .4byte gSteelWingMoveDescription - .4byte gMeanLookMoveDescription - .4byte gAttractMoveDescription - .4byte gSleepTalkMoveDescription - .4byte gHealBellMoveDescription - .4byte gReturnMoveDescription - .4byte gPresentMoveDescription - .4byte gFrustrationMoveDescription - .4byte gSafeguardMoveDescription - .4byte gPainSplitMoveDescription - .4byte gSacredFireMoveDescription - .4byte gMagnitudeMoveDescription - .4byte gDynamicPunchMoveDescription - .4byte gMegahornMoveDescription - .4byte gDragonBreathMoveDescription - .4byte gBatonPassMoveDescription - .4byte gEncoreMoveDescription - .4byte gPursuitMoveDescription - .4byte gRapidSpinMoveDescription - .4byte gSweetScentMoveDescription - .4byte gIronTailMoveDescription - .4byte gMetalClawMoveDescription - .4byte gVitalThrowMoveDescription - .4byte gMorningSunMoveDescription - .4byte gSynthesisMoveDescription - .4byte gMoonlightMoveDescription - .4byte gHiddenPowerMoveDescription - .4byte gCrossChopMoveDescription - .4byte gTwisterMoveDescription - .4byte gRainDanceMoveDescription - .4byte gSunnyDayMoveDescription - .4byte gCrunchMoveDescription - .4byte gMirrorCoatMoveDescription - .4byte gPsychUpMoveDescription - .4byte gExtremeSpeedMoveDescription - .4byte gAncientPowerMoveDescription - .4byte gShadowBallMoveDescription - .4byte gFutureSightMoveDescription - .4byte gRockSmashMoveDescription - .4byte gWhirlpoolMoveDescription - .4byte gBeatUpMoveDescription - .4byte gFakeOutMoveDescription - .4byte gUproarMoveDescription - .4byte gStockpileMoveDescription - .4byte gSpitUpMoveDescription - .4byte gSwallowMoveDescription - .4byte gHeatWaveMoveDescription - .4byte gHailMoveDescription - .4byte gTormentMoveDescription - .4byte gFlatterMoveDescription - .4byte gWillOWispMoveDescription - .4byte gMementoMoveDescription - .4byte gFacadeMoveDescription - .4byte gFocusPunchMoveDescription - .4byte gSmellingSaltMoveDescription - .4byte gFollowMeMoveDescription - .4byte gNaturePowerMoveDescription - .4byte gChargeMoveDescription - .4byte gTauntMoveDescription - .4byte gHelpingHandMoveDescription - .4byte gTrickMoveDescription - .4byte gRolePlayMoveDescription - .4byte gWishMoveDescription - .4byte gAssistMoveDescription - .4byte gIngrainMoveDescription - .4byte gSuperpowerMoveDescription - .4byte gMagicCoatMoveDescription - .4byte gRecycleMoveDescription - .4byte gRevengeMoveDescription - .4byte gBrickBreakMoveDescription - .4byte gYawnMoveDescription - .4byte gKnockOffMoveDescription - .4byte gEndeavorMoveDescription - .4byte gEruptionMoveDescription - .4byte gSkillSwapMoveDescription - .4byte gImprisonMoveDescription - .4byte gRefreshMoveDescription - .4byte gGrudgeMoveDescription - .4byte gSnatchMoveDescription - .4byte gSecretPowerMoveDescription - .4byte gDiveMoveDescription - .4byte gArmThrustMoveDescription - .4byte gCamouflageMoveDescription - .4byte gTailGlowMoveDescription - .4byte gLusterPurgeMoveDescription - .4byte gMistBallMoveDescription - .4byte gFeatherDanceMoveDescription - .4byte gTeeterDanceMoveDescription - .4byte gBlazeKickMoveDescription - .4byte gMudSportMoveDescription - .4byte gIceBallMoveDescription - .4byte gNeedleArmMoveDescription - .4byte gSlackOffMoveDescription - .4byte gHyperVoiceMoveDescription - .4byte gPoisonFangMoveDescription - .4byte gCrushClawMoveDescription - .4byte gBlastBurnMoveDescription - .4byte gHydroCannonMoveDescription - .4byte gMeteorMashMoveDescription - .4byte gAstonishMoveDescription - .4byte gWeatherBallMoveDescription - .4byte gAromatherapyMoveDescription - .4byte gFakeTearsMoveDescription - .4byte gAirCutterMoveDescription - .4byte gOverheatMoveDescription - .4byte gOdorSleuthMoveDescription - .4byte gRockTombMoveDescription - .4byte gSilverWindMoveDescription - .4byte gMetalSoundMoveDescription - .4byte gGrassWhistleMoveDescription - .4byte gTickleMoveDescription - .4byte gCosmicPowerMoveDescription - .4byte gWaterSpoutMoveDescription - .4byte gSignalBeamMoveDescription - .4byte gShadowPunchMoveDescription - .4byte gExtrasensoryMoveDescription - .4byte gSkyUppercutMoveDescription - .4byte gSandTombMoveDescription - .4byte gSheerColdMoveDescription - .4byte gMuddyWaterMoveDescription - .4byte gBulletSeedMoveDescription - .4byte gAerialAceMoveDescription - .4byte gIcicleSpearMoveDescription - .4byte gIronDefenseMoveDescription - .4byte gBlockMoveDescription - .4byte gHowlMoveDescription - .4byte gDragonClawMoveDescription - .4byte gFrenzyPlantMoveDescription - .4byte gBulkUpMoveDescription - .4byte gBounceMoveDescription - .4byte gMudShotMoveDescription - .4byte gPoisonTailMoveDescription - .4byte gCovetMoveDescription - .4byte gVoltTackleMoveDescription - .4byte gMagicalLeafMoveDescription - .4byte gWaterSportMoveDescription - .4byte gCalmMindMoveDescription - .4byte gLeafBladeMoveDescription - .4byte gDragonDanceMoveDescription - .4byte gRockBlastMoveDescription - .4byte gShockWaveMoveDescription - .4byte gWaterPulseMoveDescription - .4byte gDoomDesireMoveDescription - .4byte gPsychoBoostMoveDescription diff --git a/include/data2.h b/include/data2.h index d71958201f..5c75d2593a 100644 --- a/include/data2.h +++ b/include/data2.h @@ -1,6 +1,8 @@ #ifndef GUARD_DATA2_H #define GUARD_DATA2_H +#define MOVE_NAME_LENGTH 12 + struct MonCoords { // This would use a bitfield, but some function @@ -13,10 +15,9 @@ extern struct MonCoords gTrainerBackPicCoords[]; extern struct MonCoords gTrainerFrontPicCoords[]; extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; -extern const u8 gMoveNames[][13]; +extern const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1]; extern struct CompressedSpriteSheet gUnknown_0831C620; extern struct CompressedSpritePalette gUnknown_0831C628; extern const struct SpriteTemplate gUnknown_0831C688; - #endif // GUARD_DATA2_H diff --git a/ld_script.txt b/ld_script.txt index f5bfdd598a..fd6b4301bf 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -530,6 +530,7 @@ SECTIONS { src/fossil_specials.o(.rodata); src/fldeff_groundshake.o(.rodata); src/berry_fix_program.o(.rodata); + src/pokemon_summary_screen.o(.rodata); data/pokemon_summary_screen.o(.rodata); data/pokenav.o(.rodata); src/match_call.o(.rodata); diff --git a/src/data/text/move_descriptions.h b/src/data/text/move_descriptions.h new file mode 100644 index 0000000000..f8830c5937 --- /dev/null +++ b/src/data/text/move_descriptions.h @@ -0,0 +1,714 @@ +static const u8 sNullMoveDescription[] = _(""); +static const u8 sPoundMoveDescription[] = _("Pounds the foe with\nforelegs or tail."); +static const u8 sKarateChopMoveDescription[] = _("A chopping attack with a\nhigh critical-hit ratio."); +static const u8 sDoubleSlapMoveDescription[] = _("Repeatedly slaps the foe\n2 to 5 times."); +static const u8 sCometPunchMoveDescription[] = _("Repeatedly punches the foe\n2 to 5 times."); +static const u8 sMegaPunchMoveDescription[] = _("A strong punch thrown with\nincredible power."); +static const u8 sPayDayMoveDescription[] = _("Throws coins at the foe.\nMoney is recovered after."); +static const u8 sFirePunchMoveDescription[] = _("A fiery punch that may burn\nthe foe."); +static const u8 sIcePunchMoveDescription[] = _("An icy punch that may\nfreeze the foe."); +static const u8 sThunderPunchMoveDescription[] = _("An electrified punch that\nmay paralyze the foe."); +static const u8 sScratchMoveDescription[] = _("Scratches the foe with\nsharp claws."); +static const u8 sViceGripMoveDescription[] = _("Grips the foe with large and\npowerful pincers."); +static const u8 sGuillotineMoveDescription[] = _("A powerful pincer attack\nthat may cause fainting."); +static const u8 sRazorWindMoveDescription[] = _("A 2-turn move that strikes\nthe foe on the 2nd turn."); +static const u8 sSwordsDanceMoveDescription[] = _("A fighting dance that\nsharply raises ATTACK."); +static const u8 sCutMoveDescription[] = _("Cuts the foe with sharp\nscythes, claws, etc."); +static const u8 sGustMoveDescription[] = _("Strikes the foe with a gust\nof wind whipped up by wings."); +static const u8 sWingAttackMoveDescription[] = _("Strikes the foe with wings\nspread wide."); +static const u8 sWhirlwindMoveDescription[] = _("Blows away the foe with\nwind and ends the battle."); +static const u8 sFlyMoveDescription[] = _("Flies up on the first turn,\nthen strikes the next turn."); +static const u8 sBindMoveDescription[] = _("Binds and squeezes the foe\nfor 2 to 5 turns."); +static const u8 sSlamMoveDescription[] = _("Slams the foe with a long\ntail, vine, etc."); +static const u8 sVineWhipMoveDescription[] = _("Strikes the foe with\nslender, whiplike vines."); +static const u8 sStompMoveDescription[] = _("Stomps the enemy with a big\nfoot. May cause flinching."); +static const u8 sDoubleKickMoveDescription[] = _("A double-kicking attack\nthat strikes the foe twice."); +static const u8 sMegaKickMoveDescription[] = _("An extremely powerful kick\nwith intense force."); +static const u8 sJumpKickMoveDescription[] = _("A strong jumping kick. May\nmiss and hurt the kicker."); +static const u8 sRollingKickMoveDescription[] = _("A fast kick delivered from\na rapid spin."); +static const u8 sSandAttackMoveDescription[] = _("Reduces the foe’s accuracy\nby hurling sand in its face."); +static const u8 sHeadbuttMoveDescription[] = _("A ramming attack that may\ncause flinching."); +static const u8 sHornAttackMoveDescription[] = _("Jabs the foe with sharp\nhorns."); +static const u8 sFuryAttackMoveDescription[] = _("Jabs the foe 2 to 5 times\nwith sharp horns, etc."); +static const u8 sHornDrillMoveDescription[] = _("A one-hit KO attack that\nuses a horn like a drill."); +static const u8 sTackleMoveDescription[] = _("Charges the foe with a full-\nbody tackle."); +static const u8 sBodySlamMoveDescription[] = _("A full-body slam that may\ncause paralysis."); +static const u8 sWrapMoveDescription[] = _("Wraps and squeezes the foe\n2 to 5 times with vines, etc."); +static const u8 sTakeDownMoveDescription[] = _("A reckless charge attack\nthat also hurts the user."); +static const u8 sThrashMoveDescription[] = _("A rampage of 2 to 3 turns\nthat confuses the user."); +static const u8 sDoubleEdgeMoveDescription[] = _("A life-risking tackle that\nalso hurts the user."); +static const u8 sTailWhipMoveDescription[] = _("Wags the tail to lower the\nfoe’s DEFENSE."); +static const u8 sPoisonStingMoveDescription[] = _("A toxic attack with barbs,\netc., that may poison."); +static const u8 sTwineedleMoveDescription[] = _("Stingers on the forelegs\njab the foe twice."); +static const u8 sPinMissileMoveDescription[] = _("Sharp pins are fired to\nstrike 2 to 5 times."); +static const u8 sLeerMoveDescription[] = _("Frightens the foe with a\nleer to lower DEFENSE."); +static const u8 sBiteMoveDescription[] = _("Bites with vicious fangs.\nMay cause flinching."); +static const u8 sGrowlMoveDescription[] = _("Growls cutely to reduce the\nfoe’s ATTACK."); +static const u8 sRoarMoveDescription[] = _("Makes the foe flee to end\nthe battle."); +static const u8 sSingMoveDescription[] = _("A soothing song lulls the\nfoe into a deep slumber."); +static const u8 sSupersonicMoveDescription[] = _("Emits bizarre sound waves\nthat may confuse the foe."); +static const u8 sSonicBoomMoveDescription[] = _("Launches shock waves that\nalways inflict 20 HP damage."); +static const u8 sDisableMoveDescription[] = _("Psychically disables one of\nthe foe’s moves."); +static const u8 sAcidMoveDescription[] = _("Sprays a hide-melting acid.\nMay lower DEFENSE."); +static const u8 sEmberMoveDescription[] = _("A weak fire attack that may\ninflict a burn."); +static const u8 sFlamethrowerMoveDescription[] = _("A powerful fire attack that\nmay inflict a burn."); +static const u8 sMistMoveDescription[] = _("Creates a mist that stops\nreduction of abilities."); +static const u8 sWaterGunMoveDescription[] = _("Squirts water to attack\nthe foe."); +static const u8 sHydroPumpMoveDescription[] = _("Blasts water at high power\nto strike the foe."); +static const u8 sSurfMoveDescription[] = _("Creates a huge wave, then\ncrashes it down on the foe."); +static const u8 sIceBeamMoveDescription[] = _("Blasts the foe with an icy\nbeam that may freeze it."); +static const u8 sBlizzardMoveDescription[] = _("Hits the foe with an icy\nstorm that may freeze it."); +static const u8 sPsybeamMoveDescription[] = _("Fires a peculiar ray that\nmay confuse the foe."); +static const u8 sBubbleBeamMoveDescription[] = _("Forcefully sprays bubbles\nthat may lower SPEED."); +static const u8 sAuroraBeamMoveDescription[] = _("Fires a rainbow-colored\nbeam that may lower ATTACK."); +static const u8 sHyperBeamMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn."); +static const u8 sPeckMoveDescription[] = _("Attacks the foe with a\njabbing beak, etc."); +static const u8 sDrillPeckMoveDescription[] = _("A corkscrewing attack with\nthe beak acting as a drill."); +static const u8 sSubmissionMoveDescription[] = _("A reckless body slam that\nalso hurts the user."); +static const u8 sLowKickMoveDescription[] = _("A kick that inflicts more\ndamage on heavier foes."); +static const u8 sCounterMoveDescription[] = _("Retaliates any physical hit\nwith double the power."); +static const u8 sSeismicTossMoveDescription[] = _("Inflicts damage identical\nto the user’s level."); +static const u8 sStrengthMoveDescription[] = _("Builds enormous power,\nthen slams the foe."); +static const u8 sAbsorbMoveDescription[] = _("An attack that absorbs\nhalf the damage inflicted."); +static const u8 sMegaDrainMoveDescription[] = _("An attack that absorbs\nhalf the damage inflicted."); +static const u8 sLeechSeedMoveDescription[] = _("Plants a seed on the foe to\nsteal HP on every turn."); +static const u8 sGrowthMoveDescription[] = _("Forces the body to grow\nand heightens SP. ATK."); +static const u8 sRazorLeafMoveDescription[] = _("Cuts the enemy with leaves.\nHigh critical-hit ratio."); +static const u8 sSolarBeamMoveDescription[] = _("Absorbs light in one turn,\nthen attacks next turn."); +static const u8 sPoisonPowderMoveDescription[] = _("Scatters a toxic powder\nthat may poison the foe."); +static const u8 sStunSporeMoveDescription[] = _("Scatters a powder that may\nparalyze the foe."); +static const u8 sSleepPowderMoveDescription[] = _("Scatters a powder that may\ncause the foe to sleep."); +static const u8 sPetalDanceMoveDescription[] = _("A rampage of 2 to 3 turns\nthat confuses the user."); +static const u8 sStringShotMoveDescription[] = _("Binds the foe with string\nto reduce its SPEED."); +static const u8 sDragonRageMoveDescription[] = _("Launches shock waves that\nalways inflict 40 HP damage."); +static const u8 sFireSpinMoveDescription[] = _("Traps the foe in a ring of\nfire for 2 to 5 turns."); +static const u8 sThunderShockMoveDescription[] = _("An electrical attack that\nmay paralyze the foe."); +static const u8 sThunderboltMoveDescription[] = _("A strong electrical attack\nthat may paralyze the foe."); +static const u8 sThunderWaveMoveDescription[] = _("A weak jolt of electricity\nthat paralyzes the foe."); +static const u8 sThunderMoveDescription[] = _("A lightning attack that may\ncause paralysis."); +static const u8 sRockThrowMoveDescription[] = _("Throws small rocks to\nstrike the foe."); +static const u8 sEarthquakeMoveDescription[] = _("A powerful quake, but has\nno effect on flying foes."); +static const u8 sFissureMoveDescription[] = _("A one-hit KO move that\ndrops the foe in a fissure."); +static const u8 sDigMoveDescription[] = _("Digs underground the first\nturn and strikes next turn."); +static const u8 sToxicMoveDescription[] = _("Poisons the foe with an\nintensifying toxin."); +static const u8 sConfusionMoveDescription[] = _("A psychic attack that may\ncause confusion."); +static const u8 sPsychicMoveDescription[] = _("A powerful psychic attack\nthat may lower SP. DEF."); +static const u8 sHypnosisMoveDescription[] = _("A hypnotizing move that\nmay induce sleep."); +static const u8 sMeditateMoveDescription[] = _("Meditates in a peaceful\nfashion to raise ATTACK."); +static const u8 sAgilityMoveDescription[] = _("Relaxes the body to sharply\nboost SPEED."); +static const u8 sQuickAttackMoveDescription[] = _("An extremely fast attack\nthat always strikes first."); +static const u8 sRageMoveDescription[] = _("Raises the user’s ATTACK\nevery time it is hit."); +static const u8 sTeleportMoveDescription[] = _("A psychic move for fleeing\nfrom battle instantly."); +static const u8 sNightShadeMoveDescription[] = _("Inflicts damage identical\nto the user’s level."); +static const u8 sMimicMoveDescription[] = _("Copies a move used by the\nfoe during one battle."); +static const u8 sScreechMoveDescription[] = _("Emits a screech to sharply\nreduce the foe’s DEFENSE."); +static const u8 sDoubleTeamMoveDescription[] = _("Creates illusory copies to\nraise evasiveness."); +static const u8 sRecoverMoveDescription[] = _("Recovers up to half the\nuser’s maximum HP."); +static const u8 sHardenMoveDescription[] = _("Stiffens the body’s \nmuscles to raise DEFENSE."); +static const u8 sMinimizeMoveDescription[] = _("Minimizes the user’s size\nto raise evasiveness."); +static const u8 sSmokescreenMoveDescription[] = _("Lowers the foe’s accuracy\nusing smoke, ink, etc."); +static const u8 sConfuseRayMoveDescription[] = _("A sinister ray that\nconfuses the foe."); +static const u8 sWithdrawMoveDescription[] = _("Withdraws the body into its\nhard shell to raise DEFENSE."); +static const u8 sDefenseCurlMoveDescription[] = _("Curls up to conceal weak\nspots and raise DEFENSE."); +static const u8 sBarrierMoveDescription[] = _("Creates a barrier that\nsharply raises DEFENSE."); +static const u8 sLightScreenMoveDescription[] = _("Creates a wall of light that\nlowers SP. ATK damage."); +static const u8 sHazeMoveDescription[] = _("Creates a black haze that\neliminates all stat changes."); +static const u8 sReflectMoveDescription[] = _("Creates a wall of light that\nweakens physical attacks."); +static const u8 sFocusEnergyMoveDescription[] = _("Focuses power to raise the\ncritical-hit ratio."); +static const u8 sBideMoveDescription[] = _("Endures attack for 2\nturns to retaliate double."); +static const u8 sMetronomeMoveDescription[] = _("Waggles a finger to use any\nPOKéMON move at random."); +static const u8 sMirrorMoveMoveDescription[] = _("Counters the foe’s attack\nwith the same move."); +static const u8 sSelfDestructMoveDescription[] = _("Inflicts severe damage but\nmakes the user faint."); +static const u8 sEggBombMoveDescription[] = _("An egg is forcibly hurled at\nthe foe."); +static const u8 sLickMoveDescription[] = _("Licks with a long tongue to\ninjure. May also paralyze."); +static const u8 sSmogMoveDescription[] = _("An exhaust-gas attack\nthat may also poison."); +static const u8 sSludgeMoveDescription[] = _("Sludge is hurled to inflict\ndamage. May also poison."); +static const u8 sBoneClubMoveDescription[] = _("Clubs the foe with a bone.\nMay cause flinching."); +static const u8 sFireBlastMoveDescription[] = _("Incinerates everything it\nstrikes. May cause a burn."); +static const u8 sWaterfallMoveDescription[] = _("Charges the foe with speed\nto climb waterfalls."); +static const u8 sClampMoveDescription[] = _("Traps and squeezes the\nfoe for 2 to 5 turns."); +static const u8 sSwiftMoveDescription[] = _("Sprays star-shaped rays\nthat never miss."); +static const u8 sSkullBashMoveDescription[] = _("Tucks in the head, then\nattacks on the next turn."); +static const u8 sSpikeCannonMoveDescription[] = _("Launches sharp spikes that\nstrike 2 to 5 times."); +static const u8 sConstrictMoveDescription[] = _("Constricts to inflict pain.\nMay lower SPEED."); +static const u8 sAmnesiaMoveDescription[] = _("Forgets about something\nand sharply raises SP. DEF."); +static const u8 sKinesisMoveDescription[] = _("Distracts the foe.\nMay lower accuracy."); +static const u8 sSoftBoiledMoveDescription[] = _("Recovers up to half the\nuser’s maximum HP."); +static const u8 sHiJumpKickMoveDescription[] = _("A jumping knee kick. If it\nmisses, the user is hurt."); +static const u8 sGlareMoveDescription[] = _("Intimidates and frightens\nthe foe into paralysis."); +static const u8 sDreamEaterMoveDescription[] = _("Takes one half the damage\ninflicted on a sleeping foe."); +static const u8 sPoisonGasMoveDescription[] = _("Envelops the foe in a toxic\ngas that may poison."); +static const u8 sBarrageMoveDescription[] = _("Hurls round objects at the\nfoe 2 to 5 times."); +static const u8 sLeechLifeMoveDescription[] = _("An attack that steals half\nthe damage inflicted."); +static const u8 sLovelyKissMoveDescription[] = _("Demands a kiss with a scary\nface that induces sleep."); +static const u8 sSkyAttackMoveDescription[] = _("Searches out weak spots,\nthen strikes the next turn."); +static const u8 sTransformMoveDescription[] = _("Alters the user’s cells to\nbecome a copy of the foe."); +static const u8 sBubbleMoveDescription[] = _("An attack using bubbles.\nMay lower the foe’s SPEED."); +static const u8 sDizzyPunchMoveDescription[] = _("A rhythmic punch that may\nconfuse the foe."); +static const u8 sSporeMoveDescription[] = _("Scatters a cloud of spores\nthat always induce sleep."); +static const u8 sFlashMoveDescription[] = _("Looses a powerful blast of\nlight that cuts accuracy."); +static const u8 sPsywaveMoveDescription[] = _("Attacks with a psychic\nwave of varying intensity."); +static const u8 sSplashMoveDescription[] = _("It’s just a splash...\nHas no effect whatsoever."); +static const u8 sAcidArmorMoveDescription[] = _("Liquifies the user’s body\nto sharply raise DEFENSE."); +static const u8 sCrabhammerMoveDescription[] = _("Hammers with a pincer. Has a\nhigh critical-hit ratio."); +static const u8 sExplosionMoveDescription[] = _("Inflicts severe damage but\nmakes the user faint."); +static const u8 sFurySwipesMoveDescription[] = _("Rakes the foe with sharp\nclaws, etc., 2 to 5 times."); +static const u8 sBonemerangMoveDescription[] = _("Throws a bone boomerang\nthat strikes twice."); +static const u8 sRestMoveDescription[] = _("The user sleeps for 2 turns,\nrestoring HP and status."); +static const u8 sRockSlideMoveDescription[] = _("Large boulders are hurled.\nMay cause flinching."); +static const u8 sHyperFangMoveDescription[] = _("Attacks with sharp fangs.\nMay cause flinching."); +static const u8 sSharpenMoveDescription[] = _("Reduces the polygon count\nand raises ATTACK."); +static const u8 sConversionMoveDescription[] = _("Changes the user’s type\ninto a known move’s type."); +static const u8 sTriAttackMoveDescription[] = _("Fires three types of beams\nat the same time."); +static const u8 sSuperFangMoveDescription[] = _("Attacks with sharp fangs\nand cuts half the foe’s HP."); +static const u8 sSlashMoveDescription[] = _("Slashes with claws, etc. Has\na high critical-hit ratio."); +static const u8 sSubstituteMoveDescription[] = _("Creates a decoy using 1/4\nof the user’s maximum HP."); +static const u8 sStruggleMoveDescription[] = _("Used only if all PP are gone.\nAlso hurts the user a little."); +static const u8 sSketchMoveDescription[] = _("Copies the foe’s last move\npermanently."); +static const u8 sTripleKickMoveDescription[] = _("Kicks the foe 3 times in a\nrow with rising intensity."); +static const u8 sThiefMoveDescription[] = _("While attacking, it may\nsteal the foe’s held item."); +static const u8 sSpiderWebMoveDescription[] = _("Ensnares the foe to stop it\nfrom fleeing or switching."); +static const u8 sMindReaderMoveDescription[] = _("Senses the foe’s action to\nensure the next move’s hit."); +static const u8 sNightmareMoveDescription[] = _("Inflicts 1/4 damage on a\nsleeping foe every turn."); +static const u8 sFlameWheelMoveDescription[] = _("A fiery charge attack that\nmay inflict a burn."); +static const u8 sSnoreMoveDescription[] = _("A loud attack that can be\nused only while asleep."); +static const u8 sCurseMoveDescription[] = _("A move that functions\ndifferently for GHOSTS."); +static const u8 sFlailMoveDescription[] = _("Inflicts more damage when\nthe user’s HP is down."); +static const u8 sConversion2MoveDescription[] = _("Makes the user resistant\nto the last attack’s type."); +static const u8 sAeroblastMoveDescription[] = _("Launches a vacuumed blast.\nHigh critical-hit ratio."); +static const u8 sCottonSporeMoveDescription[] = _("Spores cling to the foe,\nsharply reducing SPEED."); +static const u8 sReversalMoveDescription[] = _("Inflicts more damage when\nthe user’s HP is down."); +static const u8 sSpiteMoveDescription[] = _("Spitefully cuts the PP\nof the foe’s last move."); +static const u8 sPowderSnowMoveDescription[] = _("Blasts the foe with a snowy\ngust. May cause freezing."); +static const u8 sProtectMoveDescription[] = _("Evades attack, but may fail\nif used in succession."); +static const u8 sMachPunchMoveDescription[] = _("A punch is thrown at wicked\nspeed to strike first."); +static const u8 sScaryFaceMoveDescription[] = _("Frightens with a scary face\nto sharply reduce SPEED."); +static const u8 sFaintAttackMoveDescription[] = _("Draws the foe close, then\nstrikes without fail."); +static const u8 sSweetKissMoveDescription[] = _("Demands a kiss with a cute\nlook. May cause confusion."); +static const u8 sBellyDrumMoveDescription[] = _("Maximizes ATTACK while\nsacrificing HP."); +static const u8 sSludgeBombMoveDescription[] = _("Sludge is hurled to inflict\ndamage. May also poison."); +static const u8 sMudSlapMoveDescription[] = _("Hurls mud in the foe’s face\nto reduce its accuracy."); +static const u8 sOctazookaMoveDescription[] = _("Fires a lump of ink to\ndamage and cut accuracy."); +static const u8 sSpikesMoveDescription[] = _("Sets spikes that hurt a \nfoe switching in."); +static const u8 sZapCannonMoveDescription[] = _("Powerful and sure to cause\nparalysis, but inaccurate."); +static const u8 sForesightMoveDescription[] = _("Negates the foe’s efforts\nto heighten evasiveness."); +static const u8 sDestinyBondMoveDescription[] = _("If the user faints, the foe\nis also made to faint."); +static const u8 sPerishSongMoveDescription[] = _("Any POKéMON hearing this\nsong faints in 3 turns."); +static const u8 sIcyWindMoveDescription[] = _("A chilling attack that\nlowers the foe’s SPEED."); +static const u8 sDetectMoveDescription[] = _("Evades attack, but may fail\nif used in succession."); +static const u8 sBoneRushMoveDescription[] = _("Strikes the foe with a bone\nin hand 2 to 5 times."); +static const u8 sLockOnMoveDescription[] = _("Locks on to the foe to\nensure the next move hits."); +static const u8 sOutrageMoveDescription[] = _("A rampage of 2 to 3 turns\nthat confuses the user."); +static const u8 sSandstormMoveDescription[] = _("Causes a sandstorm that\nrages for several turns."); +static const u8 sGigaDrainMoveDescription[] = _("An attack that steals half\nthe damage inflicted."); +static const u8 sEndureMoveDescription[] = _("Endures any attack for\n1 turn, leaving at least 1HP."); +static const u8 sCharmMoveDescription[] = _("Charms the foe and sharply\nreduces its ATTACK."); +static const u8 sRolloutMoveDescription[] = _("An attack lasting 5 turns\nwith rising intensity."); +static const u8 sFalseSwipeMoveDescription[] = _("An attack that leaves the\nfoe with at least 1 HP."); +static const u8 sSwaggerMoveDescription[] = _("Confuses the foe, but also\nsharply raises ATTACK."); +static const u8 sMilkDrinkMoveDescription[] = _("Recovers up to half the\nuser’s maximum HP."); +static const u8 sSparkMoveDescription[] = _("An electrified tackle that\nmay paralyze the foe."); +static const u8 sFuryCutterMoveDescription[] = _("An attack that intensifies\non each successive hit."); +static const u8 sSteelWingMoveDescription[] = _("Strikes the foe with hard\nwings spread wide."); +static const u8 sMeanLookMoveDescription[] = _("Fixes the foe with a mean\nlook that prevents escape."); +static const u8 sAttractMoveDescription[] = _("Makes the opposite gender\nless likely to attack."); +static const u8 sSleepTalkMoveDescription[] = _("Uses an available move\nrandomly while asleep."); +static const u8 sHealBellMoveDescription[] = _("Chimes soothingly to heal\nall status abnormalities."); +static const u8 sReturnMoveDescription[] = _("An attack that increases\nin power with friendship."); +static const u8 sPresentMoveDescription[] = _("A gift in the form of a\nbomb. May restore HP."); +static const u8 sFrustrationMoveDescription[] = _("An attack that is stronger\nif the TRAINER is disliked."); +static const u8 sSafeguardMoveDescription[] = _("A mystical force prevents\nall status problems."); +static const u8 sPainSplitMoveDescription[] = _("Adds the user and foe’s HP,\nthen shares them equally."); +static const u8 sSacredFireMoveDescription[] = _("A mystical fire attack that\nmay inflict a burn."); +static const u8 sMagnitudeMoveDescription[] = _("A ground-shaking attack\nof random intensity."); +static const u8 sDynamicPunchMoveDescription[] = _("Powerful and sure to cause\nconfusion, but inaccurate."); +static const u8 sMegahornMoveDescription[] = _("A brutal ramming attack\nusing out-thrust horns."); +static const u8 sDragonBreathMoveDescription[] = _("Strikes the foe with an\nincredible blast of breath."); +static const u8 sBatonPassMoveDescription[] = _("Switches out the user while\nkeeping effects in play."); +static const u8 sEncoreMoveDescription[] = _("Makes the foe repeat its\nlast move over 2 to 6 turns."); +static const u8 sPursuitMoveDescription[] = _("Inflicts bad damage if used\non a foe switching out."); +static const u8 sRapidSpinMoveDescription[] = _("Spins the body at high\nspeed to strike the foe."); +static const u8 sSweetScentMoveDescription[] = _("Allures the foe to reduce\nevasiveness."); +static const u8 sIronTailMoveDescription[] = _("Attacks with a rock-hard\ntail. May lower DEFENSE."); +static const u8 sMetalClawMoveDescription[] = _("A claw attack that may\nraise the user’s ATTACK."); +static const u8 sVitalThrowMoveDescription[] = _("Makes the user’s move last,\nbut it never misses."); +static const u8 sMorningSunMoveDescription[] = _("Restores HP. The amount\nvaries with the weather."); +static const u8 sSynthesisMoveDescription[] = _("Restores HP. The amount\nvaries with the weather."); +static const u8 sMoonlightMoveDescription[] = _("Restores HP. The amount\nvaries with the weather."); +static const u8 sHiddenPowerMoveDescription[] = _("The effectiveness varies\nwith the user."); +static const u8 sCrossChopMoveDescription[] = _("A double-chopping attack.\nHigh critical-hit ratio."); +static const u8 sTwisterMoveDescription[] = _("Whips up a vicious twister\nto tear at the foe."); +static const u8 sRainDanceMoveDescription[] = _("Boosts the power of WATER-\ntype moves for 5 turns."); +static const u8 sSunnyDayMoveDescription[] = _("Boosts the power of FIRE-\ntype moves for 5 turns."); +static const u8 sCrunchMoveDescription[] = _("Crunches with sharp fangs.\nMay lower SP. DEF."); +static const u8 sMirrorCoatMoveDescription[] = _("Counters the foe’s special\nattack at double the power."); +static const u8 sPsychUpMoveDescription[] = _("Copies the foe’s effect(s)\nand gives to the user."); +static const u8 sExtremeSpeedMoveDescription[] = _("An extremely fast and\npowerful attack."); +static const u8 sAncientPowerMoveDescription[] = _("An attack that may raise\nall stats."); +static const u8 sShadowBallMoveDescription[] = _("Hurls a black blob that may\nlower the foe’s SP. DEF."); +static const u8 sFutureSightMoveDescription[] = _("Heightens inner power to\nstrike 2 turns later."); +static const u8 sRockSmashMoveDescription[] = _("A rock-crushing attack\nthat may lower DEFENSE."); +static const u8 sWhirlpoolMoveDescription[] = _("Traps and hurts the foe in\na whirlpool for 2 to 5 turns."); +static const u8 sBeatUpMoveDescription[] = _("Summons party POKéMON to\njoin in the attack."); +static const u8 sFakeOutMoveDescription[] = _("A 1st-turn, 1st-strike move\nthat causes flinching."); +static const u8 sUproarMoveDescription[] = _("Causes an uproar for 2 to 5\nturns and prevents sleep."); +static const u8 sStockpileMoveDescription[] = _("Charges up power for up to\n3 turns."); +static const u8 sSpitUpMoveDescription[] = _("Releases stockpiled power\n(the more the better)."); +static const u8 sSwallowMoveDescription[] = _("Absorbs stockpiled power\nand restores HP."); +static const u8 sHeatWaveMoveDescription[] = _("Exhales a hot breath on the\nfoe. May inflict a burn."); +static const u8 sHailMoveDescription[] = _("Summons a hailstorm that\nstrikes every turn."); +static const u8 sTormentMoveDescription[] = _("Torments the foe and stops\nsuccessive use of a move."); +static const u8 sFlatterMoveDescription[] = _("Confuses the foe, but\nraises its SP. ATK."); +static const u8 sWillOWispMoveDescription[] = _("Inflicts a burn on the foe\nwith intense fire."); +static const u8 sMementoMoveDescription[] = _("The user faints and lowers\nthe foe’s abilities."); +static const u8 sFacadeMoveDescription[] = _("Boosts ATTACK when burned,\nparalyzed, or poisoned."); +static const u8 sFocusPunchMoveDescription[] = _("A powerful loyalty attack.\nThe user flinches if hit."); +static const u8 sSmellingSaltMoveDescription[] = _("Powerful against paralyzed\nfoes, but also heals them."); +static const u8 sFollowMeMoveDescription[] = _("Draws attention to make\nfoes attack only the user."); +static const u8 sNaturePowerMoveDescription[] = _("The type of attack varies\ndepending on the location."); +static const u8 sChargeMoveDescription[] = _("Charges power to boost the\nelectric move used next."); +static const u8 sTauntMoveDescription[] = _("Taunts the foe into only\nusing attack moves."); +static const u8 sHelpingHandMoveDescription[] = _("Boosts the power of the\nrecipient’s moves."); +static const u8 sTrickMoveDescription[] = _("Tricks the foe into trading\nheld items."); +static const u8 sRolePlayMoveDescription[] = _("Mimics the target and\ncopies its special ability."); +static const u8 sWishMoveDescription[] = _("A wish that restores HP.\nIt takes time to work."); +static const u8 sAssistMoveDescription[] = _("Attacks randomly with one\nof the partner’s moves."); +static const u8 sIngrainMoveDescription[] = _("Lays roots that restore HP.\nThe user can’t switch out."); +static const u8 sSuperpowerMoveDescription[] = _("Boosts strength sharply,\nbut lowers abilities."); +static const u8 sMagicCoatMoveDescription[] = _("Reflects special effects\nback to the attacker."); +static const u8 sRecycleMoveDescription[] = _("Recycles a used item for\none more use."); +static const u8 sRevengeMoveDescription[] = _("An attack that gains power\nif injured by the foe."); +static const u8 sBrickBreakMoveDescription[] = _("Destroys barriers such as\nREFLECT and causes damage."); +static const u8 sYawnMoveDescription[] = _("Lulls the foe into yawning,\nthen sleeping next turn."); +static const u8 sKnockOffMoveDescription[] = _("Knocks down the foe’s held\nitem to prevent its use."); +static const u8 sEndeavorMoveDescription[] = _("Gains power if the user’s HP\nis lower than the foe’s HP."); +static const u8 sEruptionMoveDescription[] = _("The higher the user’s HP,\nthe more damage caused."); +static const u8 sSkillSwapMoveDescription[] = _("The user swaps special\nabilities with the target."); +static const u8 sImprisonMoveDescription[] = _("Prevents foes from using\nmoves known by the user."); +static const u8 sRefreshMoveDescription[] = _("Heals poisoning, paralysis,\nor a burn."); +static const u8 sGrudgeMoveDescription[] = _("If the user faints, deletes\nall PP of foe’s last move."); +static const u8 sSnatchMoveDescription[] = _("Steals the effects of the\nmove the target uses next."); +static const u8 sSecretPowerMoveDescription[] = _("An attack with effects\nthat vary by location."); +static const u8 sDiveMoveDescription[] = _("Dives underwater the first\nturn and strikes next turn."); +static const u8 sArmThrustMoveDescription[] = _("Straight-arm punches that\nstrike the foe 2 to 5 times."); +static const u8 sCamouflageMoveDescription[] = _("Alters the POKéMON’s type\ndepending on the location."); +static const u8 sTailGlowMoveDescription[] = _("Flashes a light that sharply\nraises SP. ATK."); +static const u8 sLusterPurgeMoveDescription[] = _("Attacks with a burst of\nlight. May lower SP. DEF."); +static const u8 sMistBallMoveDescription[] = _("Attacks with a flurry of\ndown. May lower SP. ATK."); +static const u8 sFeatherDanceMoveDescription[] = _("Envelops the foe with down\nto sharply reduce ATTACK."); +static const u8 sTeeterDanceMoveDescription[] = _("Confuses all POKéMON on\nthe scene."); +static const u8 sBlazeKickMoveDescription[] = _("A kick with a high critical-\nhit ratio. May cause a burn."); +static const u8 sMudSportMoveDescription[] = _("Covers the user in mud to\nraise electrical resistance."); +static const u8 sIceBallMoveDescription[] = _("A 5-turn attack that gains\npower on successive hits."); +static const u8 sNeedleArmMoveDescription[] = _("Attacks with thorny arms.\nMay cause flinching."); +static const u8 sSlackOffMoveDescription[] = _("Slacks off and restores\nhalf the maximum HP."); +static const u8 sHyperVoiceMoveDescription[] = _("A loud attack that uses\nsound waves to injure."); +static const u8 sPoisonFangMoveDescription[] = _("A sharp-fanged attack.\nMay badly poison the foe."); +static const u8 sCrushClawMoveDescription[] = _("Tears at the foe with sharp\nclaws. May lower DEFENSE."); +static const u8 sBlastBurnMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn."); +static const u8 sHydroCannonMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn."); +static const u8 sMeteorMashMoveDescription[] = _("Fires a meteor-like punch.\nMay raise ATTACK."); +static const u8 sAstonishMoveDescription[] = _("An attack that may shock\nthe foe into flinching."); +static const u8 sWeatherBallMoveDescription[] = _("The move’s type and power\nchange with the weather."); +static const u8 sAromatherapyMoveDescription[] = _("Heals all status problems\nwith a soothing scent."); +static const u8 sFakeTearsMoveDescription[] = _("Feigns crying to sharply\nlower the foe’s SP. DEF."); +static const u8 sAirCutterMoveDescription[] = _("Hacks with razorlike wind.\nHigh critical-hit ratio."); +static const u8 sOverheatMoveDescription[] = _("Allows a full-power attack,\nbut sharply lowers SP. ATK."); +static const u8 sOdorSleuthMoveDescription[] = _("Negates the foe’s efforts\nto heighten evasiveness."); +static const u8 sRockTombMoveDescription[] = _("Stops the foe from moving\nwith rocks and cuts SPEED."); +static const u8 sSilverWindMoveDescription[] = _("A powdery attack that may\nraise abilities."); +static const u8 sMetalSoundMoveDescription[] = _("Emits a horrible screech\nthat sharply lowers SP. DEF."); +static const u8 sGrassWhistleMoveDescription[] = _("Lulls the foe into sleep\nwith a pleasant melody."); +static const u8 sTickleMoveDescription[] = _("Makes the foe laugh to\nlower ATTACK and DEFENSE."); +static const u8 sCosmicPowerMoveDescription[] = _("Raises DEFENSE and SP. DEF\nwith a mystic power."); +static const u8 sWaterSpoutMoveDescription[] = _("Inflicts more damage if the\nuser’s HP is high."); +static const u8 sSignalBeamMoveDescription[] = _("A strange beam attack that\nmay confuse the foe."); +static const u8 sShadowPunchMoveDescription[] = _("An unavoidable punch that\nis thrown from shadows."); +static const u8 sExtrasensoryMoveDescription[] = _("Attacks with a peculiar\npower. May cause flinching."); +static const u8 sSkyUppercutMoveDescription[] = _("An uppercut thrown as if\nleaping into the sky."); +static const u8 sSandTombMoveDescription[] = _("Traps and hurts the foe in\nquicksand for 2 to 5 turns."); +static const u8 sSheerColdMoveDescription[] = _("A chilling attack that\ncauses fainting if it hits."); +static const u8 sMuddyWaterMoveDescription[] = _("Attacks with muddy water.\nMay lower accuracy."); +static const u8 sBulletSeedMoveDescription[] = _("Shoots 2 to 5 seeds in a row\nto strike the foe."); +static const u8 sAerialAceMoveDescription[] = _("An extremely speedy and\nunavoidable attack."); +static const u8 sIcicleSpearMoveDescription[] = _("Attacks the foe by firing\n2 to 5 icicles in a row."); +static const u8 sIronDefenseMoveDescription[] = _("Hardens the body’s surface\nto sharply raise DEFENSE."); +static const u8 sBlockMoveDescription[] = _("Blocks the foe’s way to\nprevent escape."); +static const u8 sHowlMoveDescription[] = _("Howls to raise the spirit\nand boosts ATTACK."); +static const u8 sDragonClawMoveDescription[] = _("Slashes the foe with sharp\nclaws."); +static const u8 sFrenzyPlantMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn."); +static const u8 sBulkUpMoveDescription[] = _("Bulks up the body to boost\nboth ATTACK and DEFENSE."); +static const u8 sBounceMoveDescription[] = _("Bounces up, then down the\nnext turn. May paralyze."); +static const u8 sMudShotMoveDescription[] = _("Hurls mud at the foe and\nreduces SPEED."); +static const u8 sPoisonTailMoveDescription[] = _("Has a high critical-hit\nratio. May also poison."); +static const u8 sCovetMoveDescription[] = _("Cutely begs to obtain an\nitem held by the foe."); +static const u8 sVoltTackleMoveDescription[] = _("A life-risking tackle that\nslightly hurts the user."); +static const u8 sMagicalLeafMoveDescription[] = _("Attacks with a strange leaf\nthat cannot be evaded."); +static const u8 sWaterSportMoveDescription[] = _("The user becomes soaked to\nraise resistance to fire."); +static const u8 sCalmMindMoveDescription[] = _("Raises SP. ATK and SP. DEF\nby focusing the mind."); +static const u8 sLeafBladeMoveDescription[] = _("Slashes with a sharp leaf.\nHigh critical-hit ratio."); +static const u8 sDragonDanceMoveDescription[] = _("A mystical dance that ups\nATTACK and SPEED."); +static const u8 sRockBlastMoveDescription[] = _("Hurls boulders at the foe\n2 to 5 times in a row."); +static const u8 sShockWaveMoveDescription[] = _("A fast and unavoidable\nelectric attack."); +static const u8 sWaterPulseMoveDescription[] = _("Attacks with ultrasonic\nwaves. May confuse the foe."); +static const u8 sDoomDesireMoveDescription[] = _("Summons strong sunlight to\nattack 2 turns later."); +static const u8 sPsychoBoostMoveDescription[] = _("Allows a full-power attack,\nbut 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] = +{ + [MOVE_POUND - 1] = sPoundMoveDescription, + [MOVE_KARATE_CHOP - 1] = sKarateChopMoveDescription, + [MOVE_DOUBLE_SLAP - 1] = sDoubleSlapMoveDescription, + [MOVE_COMET_PUNCH - 1] = sCometPunchMoveDescription, + [MOVE_MEGA_PUNCH - 1] = sMegaPunchMoveDescription, + [MOVE_PAY_DAY - 1] = sPayDayMoveDescription, + [MOVE_FIRE_PUNCH - 1] = sFirePunchMoveDescription, + [MOVE_ICE_PUNCH - 1] = sIcePunchMoveDescription, + [MOVE_THUNDER_PUNCH - 1] = sThunderPunchMoveDescription, + [MOVE_SCRATCH - 1] = sScratchMoveDescription, + [MOVE_VICE_GRIP - 1] = sViceGripMoveDescription, + [MOVE_GUILLOTINE - 1] = sGuillotineMoveDescription, + [MOVE_RAZOR_WIND - 1] = sRazorWindMoveDescription, + [MOVE_SWORDS_DANCE - 1] = sSwordsDanceMoveDescription, + [MOVE_CUT - 1] = sCutMoveDescription, + [MOVE_GUST - 1] = sGustMoveDescription, + [MOVE_WING_ATTACK - 1] = sWingAttackMoveDescription, + [MOVE_WHIRLWIND - 1] = sWhirlwindMoveDescription, + [MOVE_FLY - 1] = sFlyMoveDescription, + [MOVE_BIND - 1] = sBindMoveDescription, + [MOVE_SLAM - 1] = sSlamMoveDescription, + [MOVE_VINE_WHIP - 1] = sVineWhipMoveDescription, + [MOVE_STOMP - 1] = sStompMoveDescription, + [MOVE_DOUBLE_KICK - 1] = sDoubleKickMoveDescription, + [MOVE_MEGA_KICK - 1] = sMegaKickMoveDescription, + [MOVE_JUMP_KICK - 1] = sJumpKickMoveDescription, + [MOVE_ROLLING_KICK - 1] = sRollingKickMoveDescription, + [MOVE_SAND_ATTACK - 1] = sSandAttackMoveDescription, + [MOVE_HEADBUTT - 1] = sHeadbuttMoveDescription, + [MOVE_HORN_ATTACK - 1] = sHornAttackMoveDescription, + [MOVE_FURY_ATTACK - 1] = sFuryAttackMoveDescription, + [MOVE_HORN_DRILL - 1] = sHornDrillMoveDescription, + [MOVE_TACKLE - 1] = sTackleMoveDescription, + [MOVE_BODY_SLAM - 1] = sBodySlamMoveDescription, + [MOVE_WRAP - 1] = sWrapMoveDescription, + [MOVE_TAKE_DOWN - 1] = sTakeDownMoveDescription, + [MOVE_THRASH - 1] = sThrashMoveDescription, + [MOVE_DOUBLE_EDGE - 1] = sDoubleEdgeMoveDescription, + [MOVE_TAIL_WHIP - 1] = sTailWhipMoveDescription, + [MOVE_POISON_STING - 1] = sPoisonStingMoveDescription, + [MOVE_TWINEEDLE - 1] = sTwineedleMoveDescription, + [MOVE_PIN_MISSILE - 1] = sPinMissileMoveDescription, + [MOVE_LEER - 1] = sLeerMoveDescription, + [MOVE_BITE - 1] = sBiteMoveDescription, + [MOVE_GROWL - 1] = sGrowlMoveDescription, + [MOVE_ROAR - 1] = sRoarMoveDescription, + [MOVE_SING - 1] = sSingMoveDescription, + [MOVE_SUPERSONIC - 1] = sSupersonicMoveDescription, + [MOVE_SONIC_BOOM - 1] = sSonicBoomMoveDescription, + [MOVE_DISABLE - 1] = sDisableMoveDescription, + [MOVE_ACID - 1] = sAcidMoveDescription, + [MOVE_EMBER - 1] = sEmberMoveDescription, + [MOVE_FLAMETHROWER - 1] = sFlamethrowerMoveDescription, + [MOVE_MIST - 1] = sMistMoveDescription, + [MOVE_WATER_GUN - 1] = sWaterGunMoveDescription, + [MOVE_HYDRO_PUMP - 1] = sHydroPumpMoveDescription, + [MOVE_SURF - 1] = sSurfMoveDescription, + [MOVE_ICE_BEAM - 1] = sIceBeamMoveDescription, + [MOVE_BLIZZARD - 1] = sBlizzardMoveDescription, + [MOVE_PSYBEAM - 1] = sPsybeamMoveDescription, + [MOVE_BUBBLE_BEAM - 1] = sBubbleBeamMoveDescription, + [MOVE_AURORA_BEAM - 1] = sAuroraBeamMoveDescription, + [MOVE_HYPER_BEAM - 1] = sHyperBeamMoveDescription, + [MOVE_PECK - 1] = sPeckMoveDescription, + [MOVE_DRILL_PECK - 1] = sDrillPeckMoveDescription, + [MOVE_SUBMISSION - 1] = sSubmissionMoveDescription, + [MOVE_LOW_KICK - 1] = sLowKickMoveDescription, + [MOVE_COUNTER - 1] = sCounterMoveDescription, + [MOVE_SEISMIC_TOSS - 1] = sSeismicTossMoveDescription, + [MOVE_STRENGTH - 1] = sStrengthMoveDescription, + [MOVE_ABSORB - 1] = sAbsorbMoveDescription, + [MOVE_MEGA_DRAIN - 1] = sMegaDrainMoveDescription, + [MOVE_LEECH_SEED - 1] = sLeechSeedMoveDescription, + [MOVE_GROWTH - 1] = sGrowthMoveDescription, + [MOVE_RAZOR_LEAF - 1] = sRazorLeafMoveDescription, + [MOVE_SOLAR_BEAM - 1] = sSolarBeamMoveDescription, + [MOVE_POISON_POWDER - 1] = sPoisonPowderMoveDescription, + [MOVE_STUN_SPORE - 1] = sStunSporeMoveDescription, + [MOVE_SLEEP_POWDER - 1] = sSleepPowderMoveDescription, + [MOVE_PETAL_DANCE - 1] = sPetalDanceMoveDescription, + [MOVE_STRING_SHOT - 1] = sStringShotMoveDescription, + [MOVE_DRAGON_RAGE - 1] = sDragonRageMoveDescription, + [MOVE_FIRE_SPIN - 1] = sFireSpinMoveDescription, + [MOVE_THUNDER_SHOCK - 1] = sThunderShockMoveDescription, + [MOVE_THUNDERBOLT - 1] = sThunderboltMoveDescription, + [MOVE_THUNDER_WAVE - 1] = sThunderWaveMoveDescription, + [MOVE_THUNDER - 1] = sThunderMoveDescription, + [MOVE_ROCK_THROW - 1] = sRockThrowMoveDescription, + [MOVE_EARTHQUAKE - 1] = sEarthquakeMoveDescription, + [MOVE_FISSURE - 1] = sFissureMoveDescription, + [MOVE_DIG - 1] = sDigMoveDescription, + [MOVE_TOXIC - 1] = sToxicMoveDescription, + [MOVE_CONFUSION - 1] = sConfusionMoveDescription, + [MOVE_PSYCHIC - 1] = sPsychicMoveDescription, + [MOVE_HYPNOSIS - 1] = sHypnosisMoveDescription, + [MOVE_MEDITATE - 1] = sMeditateMoveDescription, + [MOVE_AGILITY - 1] = sAgilityMoveDescription, + [MOVE_QUICK_ATTACK - 1] = sQuickAttackMoveDescription, + [MOVE_RAGE - 1] = sRageMoveDescription, + [MOVE_TELEPORT - 1] = sTeleportMoveDescription, + [MOVE_NIGHT_SHADE - 1] = sNightShadeMoveDescription, + [MOVE_MIMIC - 1] = sMimicMoveDescription, + [MOVE_SCREECH - 1] = sScreechMoveDescription, + [MOVE_DOUBLE_TEAM - 1] = sDoubleTeamMoveDescription, + [MOVE_RECOVER - 1] = sRecoverMoveDescription, + [MOVE_HARDEN - 1] = sHardenMoveDescription, + [MOVE_MINIMIZE - 1] = sMinimizeMoveDescription, + [MOVE_SMOKESCREEN - 1] = sSmokescreenMoveDescription, + [MOVE_CONFUSE_RAY - 1] = sConfuseRayMoveDescription, + [MOVE_WITHDRAW - 1] = sWithdrawMoveDescription, + [MOVE_DEFENSE_CURL - 1] = sDefenseCurlMoveDescription, + [MOVE_BARRIER - 1] = sBarrierMoveDescription, + [MOVE_LIGHT_SCREEN - 1] = sLightScreenMoveDescription, + [MOVE_HAZE - 1] = sHazeMoveDescription, + [MOVE_REFLECT - 1] = sReflectMoveDescription, + [MOVE_FOCUS_ENERGY - 1] = sFocusEnergyMoveDescription, + [MOVE_BIDE - 1] = sBideMoveDescription, + [MOVE_METRONOME - 1] = sMetronomeMoveDescription, + [MOVE_MIRROR_MOVE - 1] = sMirrorMoveMoveDescription, + [MOVE_SELF_DESTRUCT - 1] = sSelfDestructMoveDescription, + [MOVE_EGG_BOMB - 1] = sEggBombMoveDescription, + [MOVE_LICK - 1] = sLickMoveDescription, + [MOVE_SMOG - 1] = sSmogMoveDescription, + [MOVE_SLUDGE - 1] = sSludgeMoveDescription, + [MOVE_BONE_CLUB - 1] = sBoneClubMoveDescription, + [MOVE_FIRE_BLAST - 1] = sFireBlastMoveDescription, + [MOVE_WATERFALL - 1] = sWaterfallMoveDescription, + [MOVE_CLAMP - 1] = sClampMoveDescription, + [MOVE_SWIFT - 1] = sSwiftMoveDescription, + [MOVE_SKULL_BASH - 1] = sSkullBashMoveDescription, + [MOVE_SPIKE_CANNON - 1] = sSpikeCannonMoveDescription, + [MOVE_CONSTRICT - 1] = sConstrictMoveDescription, + [MOVE_AMNESIA - 1] = sAmnesiaMoveDescription, + [MOVE_KINESIS - 1] = sKinesisMoveDescription, + [MOVE_SOFT_BOILED - 1] = sSoftBoiledMoveDescription, + [MOVE_HI_JUMP_KICK - 1] = sHiJumpKickMoveDescription, + [MOVE_GLARE - 1] = sGlareMoveDescription, + [MOVE_DREAM_EATER - 1] = sDreamEaterMoveDescription, + [MOVE_POISON_GAS - 1] = sPoisonGasMoveDescription, + [MOVE_BARRAGE - 1] = sBarrageMoveDescription, + [MOVE_LEECH_LIFE - 1] = sLeechLifeMoveDescription, + [MOVE_LOVELY_KISS - 1] = sLovelyKissMoveDescription, + [MOVE_SKY_ATTACK - 1] = sSkyAttackMoveDescription, + [MOVE_TRANSFORM - 1] = sTransformMoveDescription, + [MOVE_BUBBLE - 1] = sBubbleMoveDescription, + [MOVE_DIZZY_PUNCH - 1] = sDizzyPunchMoveDescription, + [MOVE_SPORE - 1] = sSporeMoveDescription, + [MOVE_FLASH - 1] = sFlashMoveDescription, + [MOVE_PSYWAVE - 1] = sPsywaveMoveDescription, + [MOVE_SPLASH - 1] = sSplashMoveDescription, + [MOVE_ACID_ARMOR - 1] = sAcidArmorMoveDescription, + [MOVE_CRABHAMMER - 1] = sCrabhammerMoveDescription, + [MOVE_EXPLOSION - 1] = sExplosionMoveDescription, + [MOVE_FURY_SWIPES - 1] = sFurySwipesMoveDescription, + [MOVE_BONEMERANG - 1] = sBonemerangMoveDescription, + [MOVE_REST - 1] = sRestMoveDescription, + [MOVE_ROCK_SLIDE - 1] = sRockSlideMoveDescription, + [MOVE_HYPER_FANG - 1] = sHyperFangMoveDescription, + [MOVE_SHARPEN - 1] = sSharpenMoveDescription, + [MOVE_CONVERSION - 1] = sConversionMoveDescription, + [MOVE_TRI_ATTACK - 1] = sTriAttackMoveDescription, + [MOVE_SUPER_FANG - 1] = sSuperFangMoveDescription, + [MOVE_SLASH - 1] = sSlashMoveDescription, + [MOVE_SUBSTITUTE - 1] = sSubstituteMoveDescription, + [MOVE_STRUGGLE - 1] = sStruggleMoveDescription, + [MOVE_SKETCH - 1] = sSketchMoveDescription, + [MOVE_TRIPLE_KICK - 1] = sTripleKickMoveDescription, + [MOVE_THIEF - 1] = sThiefMoveDescription, + [MOVE_SPIDER_WEB - 1] = sSpiderWebMoveDescription, + [MOVE_MIND_READER - 1] = sMindReaderMoveDescription, + [MOVE_NIGHTMARE - 1] = sNightmareMoveDescription, + [MOVE_FLAME_WHEEL - 1] = sFlameWheelMoveDescription, + [MOVE_SNORE - 1] = sSnoreMoveDescription, + [MOVE_CURSE - 1] = sCurseMoveDescription, + [MOVE_FLAIL - 1] = sFlailMoveDescription, + [MOVE_CONVERSION_2 - 1] = sConversion2MoveDescription, + [MOVE_AEROBLAST - 1] = sAeroblastMoveDescription, + [MOVE_COTTON_SPORE - 1] = sCottonSporeMoveDescription, + [MOVE_REVERSAL - 1] = sReversalMoveDescription, + [MOVE_SPITE - 1] = sSpiteMoveDescription, + [MOVE_POWDER_SNOW - 1] = sPowderSnowMoveDescription, + [MOVE_PROTECT - 1] = sProtectMoveDescription, + [MOVE_MACH_PUNCH - 1] = sMachPunchMoveDescription, + [MOVE_SCARY_FACE - 1] = sScaryFaceMoveDescription, + [MOVE_FAINT_ATTACK - 1] = sFaintAttackMoveDescription, + [MOVE_SWEET_KISS - 1] = sSweetKissMoveDescription, + [MOVE_BELLY_DRUM - 1] = sBellyDrumMoveDescription, + [MOVE_SLUDGE_BOMB - 1] = sSludgeBombMoveDescription, + [MOVE_MUD_SLAP - 1] = sMudSlapMoveDescription, + [MOVE_OCTAZOOKA - 1] = sOctazookaMoveDescription, + [MOVE_SPIKES - 1] = sSpikesMoveDescription, + [MOVE_ZAP_CANNON - 1] = sZapCannonMoveDescription, + [MOVE_FORESIGHT - 1] = sForesightMoveDescription, + [MOVE_DESTINY_BOND - 1] = sDestinyBondMoveDescription, + [MOVE_PERISH_SONG - 1] = sPerishSongMoveDescription, + [MOVE_ICY_WIND - 1] = sIcyWindMoveDescription, + [MOVE_DETECT - 1] = sDetectMoveDescription, + [MOVE_BONE_RUSH - 1] = sBoneRushMoveDescription, + [MOVE_LOCK_ON - 1] = sLockOnMoveDescription, + [MOVE_OUTRAGE - 1] = sOutrageMoveDescription, + [MOVE_SANDSTORM - 1] = sSandstormMoveDescription, + [MOVE_GIGA_DRAIN - 1] = sGigaDrainMoveDescription, + [MOVE_ENDURE - 1] = sEndureMoveDescription, + [MOVE_CHARM - 1] = sCharmMoveDescription, + [MOVE_ROLLOUT - 1] = sRolloutMoveDescription, + [MOVE_FALSE_SWIPE - 1] = sFalseSwipeMoveDescription, + [MOVE_SWAGGER - 1] = sSwaggerMoveDescription, + [MOVE_MILK_DRINK - 1] = sMilkDrinkMoveDescription, + [MOVE_SPARK - 1] = sSparkMoveDescription, + [MOVE_FURY_CUTTER - 1] = sFuryCutterMoveDescription, + [MOVE_STEEL_WING - 1] = sSteelWingMoveDescription, + [MOVE_MEAN_LOOK - 1] = sMeanLookMoveDescription, + [MOVE_ATTRACT - 1] = sAttractMoveDescription, + [MOVE_SLEEP_TALK - 1] = sSleepTalkMoveDescription, + [MOVE_HEAL_BELL - 1] = sHealBellMoveDescription, + [MOVE_RETURN - 1] = sReturnMoveDescription, + [MOVE_PRESENT - 1] = sPresentMoveDescription, + [MOVE_FRUSTRATION - 1] = sFrustrationMoveDescription, + [MOVE_SAFEGUARD - 1] = sSafeguardMoveDescription, + [MOVE_PAIN_SPLIT - 1] = sPainSplitMoveDescription, + [MOVE_SACRED_FIRE - 1] = sSacredFireMoveDescription, + [MOVE_MAGNITUDE - 1] = sMagnitudeMoveDescription, + [MOVE_DYNAMIC_PUNCH - 1] = sDynamicPunchMoveDescription, + [MOVE_MEGAHORN - 1] = sMegahornMoveDescription, + [MOVE_DRAGON_BREATH - 1] = sDragonBreathMoveDescription, + [MOVE_BATON_PASS - 1] = sBatonPassMoveDescription, + [MOVE_ENCORE - 1] = sEncoreMoveDescription, + [MOVE_PURSUIT - 1] = sPursuitMoveDescription, + [MOVE_RAPID_SPIN - 1] = sRapidSpinMoveDescription, + [MOVE_SWEET_SCENT - 1] = sSweetScentMoveDescription, + [MOVE_IRON_TAIL - 1] = sIronTailMoveDescription, + [MOVE_METAL_CLAW - 1] = sMetalClawMoveDescription, + [MOVE_VITAL_THROW - 1] = sVitalThrowMoveDescription, + [MOVE_MORNING_SUN - 1] = sMorningSunMoveDescription, + [MOVE_SYNTHESIS - 1] = sSynthesisMoveDescription, + [MOVE_MOONLIGHT - 1] = sMoonlightMoveDescription, + [MOVE_HIDDEN_POWER - 1] = sHiddenPowerMoveDescription, + [MOVE_CROSS_CHOP - 1] = sCrossChopMoveDescription, + [MOVE_TWISTER - 1] = sTwisterMoveDescription, + [MOVE_RAIN_DANCE - 1] = sRainDanceMoveDescription, + [MOVE_SUNNY_DAY - 1] = sSunnyDayMoveDescription, + [MOVE_CRUNCH - 1] = sCrunchMoveDescription, + [MOVE_MIRROR_COAT - 1] = sMirrorCoatMoveDescription, + [MOVE_PSYCH_UP - 1] = sPsychUpMoveDescription, + [MOVE_EXTREME_SPEED - 1] = sExtremeSpeedMoveDescription, + [MOVE_ANCIENT_POWER - 1] = sAncientPowerMoveDescription, + [MOVE_SHADOW_BALL - 1] = sShadowBallMoveDescription, + [MOVE_FUTURE_SIGHT - 1] = sFutureSightMoveDescription, + [MOVE_ROCK_SMASH - 1] = sRockSmashMoveDescription, + [MOVE_WHIRLPOOL - 1] = sWhirlpoolMoveDescription, + [MOVE_BEAT_UP - 1] = sBeatUpMoveDescription, + [MOVE_FAKE_OUT - 1] = sFakeOutMoveDescription, + [MOVE_UPROAR - 1] = sUproarMoveDescription, + [MOVE_STOCKPILE - 1] = sStockpileMoveDescription, + [MOVE_SPIT_UP - 1] = sSpitUpMoveDescription, + [MOVE_SWALLOW - 1] = sSwallowMoveDescription, + [MOVE_HEAT_WAVE - 1] = sHeatWaveMoveDescription, + [MOVE_HAIL - 1] = sHailMoveDescription, + [MOVE_TORMENT - 1] = sTormentMoveDescription, + [MOVE_FLATTER - 1] = sFlatterMoveDescription, + [MOVE_WILL_O_WISP - 1] = sWillOWispMoveDescription, + [MOVE_MEMENTO - 1] = sMementoMoveDescription, + [MOVE_FACADE - 1] = sFacadeMoveDescription, + [MOVE_FOCUS_PUNCH - 1] = sFocusPunchMoveDescription, + [MOVE_SMELLING_SALT - 1] = sSmellingSaltMoveDescription, + [MOVE_FOLLOW_ME - 1] = sFollowMeMoveDescription, + [MOVE_NATURE_POWER - 1] = sNaturePowerMoveDescription, + [MOVE_CHARGE - 1] = sChargeMoveDescription, + [MOVE_TAUNT - 1] = sTauntMoveDescription, + [MOVE_HELPING_HAND - 1] = sHelpingHandMoveDescription, + [MOVE_TRICK - 1] = sTrickMoveDescription, + [MOVE_ROLE_PLAY - 1] = sRolePlayMoveDescription, + [MOVE_WISH - 1] = sWishMoveDescription, + [MOVE_ASSIST - 1] = sAssistMoveDescription, + [MOVE_INGRAIN - 1] = sIngrainMoveDescription, + [MOVE_SUPERPOWER - 1] = sSuperpowerMoveDescription, + [MOVE_MAGIC_COAT - 1] = sMagicCoatMoveDescription, + [MOVE_RECYCLE - 1] = sRecycleMoveDescription, + [MOVE_REVENGE - 1] = sRevengeMoveDescription, + [MOVE_BRICK_BREAK - 1] = sBrickBreakMoveDescription, + [MOVE_YAWN - 1] = sYawnMoveDescription, + [MOVE_KNOCK_OFF - 1] = sKnockOffMoveDescription, + [MOVE_ENDEAVOR - 1] = sEndeavorMoveDescription, + [MOVE_ERUPTION - 1] = sEruptionMoveDescription, + [MOVE_SKILL_SWAP - 1] = sSkillSwapMoveDescription, + [MOVE_IMPRISON - 1] = sImprisonMoveDescription, + [MOVE_REFRESH - 1] = sRefreshMoveDescription, + [MOVE_GRUDGE - 1] = sGrudgeMoveDescription, + [MOVE_SNATCH - 1] = sSnatchMoveDescription, + [MOVE_SECRET_POWER - 1] = sSecretPowerMoveDescription, + [MOVE_DIVE - 1] = sDiveMoveDescription, + [MOVE_ARM_THRUST - 1] = sArmThrustMoveDescription, + [MOVE_CAMOUFLAGE - 1] = sCamouflageMoveDescription, + [MOVE_TAIL_GLOW - 1] = sTailGlowMoveDescription, + [MOVE_LUSTER_PURGE - 1] = sLusterPurgeMoveDescription, + [MOVE_MIST_BALL - 1] = sMistBallMoveDescription, + [MOVE_FEATHER_DANCE - 1] = sFeatherDanceMoveDescription, + [MOVE_TEETER_DANCE - 1] = sTeeterDanceMoveDescription, + [MOVE_BLAZE_KICK - 1] = sBlazeKickMoveDescription, + [MOVE_MUD_SPORT - 1] = sMudSportMoveDescription, + [MOVE_ICE_BALL - 1] = sIceBallMoveDescription, + [MOVE_NEEDLE_ARM - 1] = sNeedleArmMoveDescription, + [MOVE_SLACK_OFF - 1] = sSlackOffMoveDescription, + [MOVE_HYPER_VOICE - 1] = sHyperVoiceMoveDescription, + [MOVE_POISON_FANG - 1] = sPoisonFangMoveDescription, + [MOVE_CRUSH_CLAW - 1] = sCrushClawMoveDescription, + [MOVE_BLAST_BURN - 1] = sBlastBurnMoveDescription, + [MOVE_HYDRO_CANNON - 1] = sHydroCannonMoveDescription, + [MOVE_METEOR_MASH - 1] = sMeteorMashMoveDescription, + [MOVE_ASTONISH - 1] = sAstonishMoveDescription, + [MOVE_WEATHER_BALL - 1] = sWeatherBallMoveDescription, + [MOVE_AROMATHERAPY - 1] = sAromatherapyMoveDescription, + [MOVE_FAKE_TEARS - 1] = sFakeTearsMoveDescription, + [MOVE_AIR_CUTTER - 1] = sAirCutterMoveDescription, + [MOVE_OVERHEAT - 1] = sOverheatMoveDescription, + [MOVE_ODOR_SLEUTH - 1] = sOdorSleuthMoveDescription, + [MOVE_ROCK_TOMB - 1] = sRockTombMoveDescription, + [MOVE_SILVER_WIND - 1] = sSilverWindMoveDescription, + [MOVE_METAL_SOUND - 1] = sMetalSoundMoveDescription, + [MOVE_GRASS_WHISTLE - 1] = sGrassWhistleMoveDescription, + [MOVE_TICKLE - 1] = sTickleMoveDescription, + [MOVE_COSMIC_POWER - 1] = sCosmicPowerMoveDescription, + [MOVE_WATER_SPOUT - 1] = sWaterSpoutMoveDescription, + [MOVE_SIGNAL_BEAM - 1] = sSignalBeamMoveDescription, + [MOVE_SHADOW_PUNCH - 1] = sShadowPunchMoveDescription, + [MOVE_EXTRASENSORY - 1] = sExtrasensoryMoveDescription, + [MOVE_SKY_UPPERCUT - 1] = sSkyUppercutMoveDescription, + [MOVE_SAND_TOMB - 1] = sSandTombMoveDescription, + [MOVE_SHEER_COLD - 1] = sSheerColdMoveDescription, + [MOVE_MUDDY_WATER - 1] = sMuddyWaterMoveDescription, + [MOVE_BULLET_SEED - 1] = sBulletSeedMoveDescription, + [MOVE_AERIAL_ACE - 1] = sAerialAceMoveDescription, + [MOVE_ICICLE_SPEAR - 1] = sIcicleSpearMoveDescription, + [MOVE_IRON_DEFENSE - 1] = sIronDefenseMoveDescription, + [MOVE_BLOCK - 1] = sBlockMoveDescription, + [MOVE_HOWL - 1] = sHowlMoveDescription, + [MOVE_DRAGON_CLAW - 1] = sDragonClawMoveDescription, + [MOVE_FRENZY_PLANT - 1] = sFrenzyPlantMoveDescription, + [MOVE_BULK_UP - 1] = sBulkUpMoveDescription, + [MOVE_BOUNCE - 1] = sBounceMoveDescription, + [MOVE_MUD_SHOT - 1] = sMudShotMoveDescription, + [MOVE_POISON_TAIL - 1] = sPoisonTailMoveDescription, + [MOVE_COVET - 1] = sCovetMoveDescription, + [MOVE_VOLT_TACKLE - 1] = sVoltTackleMoveDescription, + [MOVE_MAGICAL_LEAF - 1] = sMagicalLeafMoveDescription, + [MOVE_WATER_SPORT - 1] = sWaterSportMoveDescription, + [MOVE_CALM_MIND - 1] = sCalmMindMoveDescription, + [MOVE_LEAF_BLADE - 1] = sLeafBladeMoveDescription, + [MOVE_DRAGON_DANCE - 1] = sDragonDanceMoveDescription, + [MOVE_ROCK_BLAST - 1] = sRockBlastMoveDescription, + [MOVE_SHOCK_WAVE - 1] = sShockWaveMoveDescription, + [MOVE_WATER_PULSE - 1] = sWaterPulseMoveDescription, + [MOVE_DOOM_DESIRE - 1] = sDoomDesireMoveDescription, + [MOVE_PSYCHO_BOOST - 1] = sPsychoBoostMoveDescription, +}; diff --git a/src/data/text/move_names.h b/src/data/text/move_names.h index 3df7c886b1..9f540f1d68 100644 --- a/src/data/text/move_names.h +++ b/src/data/text/move_names.h @@ -1,4 +1,5 @@ -const u8 gMoveNames[][13] = { +const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = +{ [MOVE_NONE] = _("-"), [MOVE_POUND] = _("POUND"), [MOVE_KARATE_CHOP] = _("KARATE CHOP"), diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 32d2bde4f9..728b887f86 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -57,7 +57,6 @@ extern u8 gUnknown_0861CE7B[]; extern struct WindowTemplate gUnknown_0861CCEC; extern struct WindowTemplate gUnknown_0861CD14; extern const u8 *const gContestEffectDescriptionPointers[]; -extern const u8 *const gMoveDescriptionPointers[]; void sub_81C488C(u8 a); extern u8 sub_81221EC(); @@ -342,6 +341,10 @@ struct UnkSummaryStruct u8 unk_filler4[6]; }; +// const rom data +#include "data/text/move_descriptions.h" + +// code void sub_81BF8EC(u8 a, void *b, u8 c, u8 d, void *e) { u8 byte; From 9bb7a2c7a53e2d4e7ae1dc7c4c3aaf3731638864 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 00:09:53 +0200 Subject: [PATCH 074/174] make move desc compile --- include/data2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/data2.h b/include/data2.h index 5c75d2593a..af830a4c4f 100644 --- a/include/data2.h +++ b/include/data2.h @@ -15,7 +15,7 @@ extern struct MonCoords gTrainerBackPicCoords[]; extern struct MonCoords gTrainerFrontPicCoords[]; extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; -extern const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1]; +extern const u8 gMoveNames[][MOVE_NAME_LENGTH + 1]; extern struct CompressedSpriteSheet gUnknown_0831C620; extern struct CompressedSpritePalette gUnknown_0831C628; extern const struct SpriteTemplate gUnknown_0831C688; From cb9127ccafd894708ede6ece8831de7af483f695 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 11 Aug 2018 15:16:41 -0700 Subject: [PATCH 075/174] Revert "Rename some specials" This reverts commit 658f9351fe9349eb16edab8d5d503ef741449d4a. --- asm/script_menu.s | 8 ++-- data/event_scripts.s | 2 +- .../MauvilleCity_PokemonCenter_1F/scripts.inc | 2 +- data/scripts/mauville_man.inc | 46 +++++++++---------- data/specials.inc | 46 +++++++++---------- include/mauville_old_man.h | 2 +- include/wild_encounter.h | 2 +- src/hof_pc.c | 4 +- src/mauville_old_man.c | 36 +++++++-------- src/trader.c | 12 ++--- 10 files changed, 80 insertions(+), 80 deletions(-) diff --git a/asm/script_menu.s b/asm/script_menu.s index b56b0749c6..670740a777 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -676,9 +676,9 @@ _080E2360: .pool thumb_func_end sub_80E2308 - thumb_func_start Special_CreatePCMenu -@ bool Special_CreatePCMenu() -Special_CreatePCMenu: @ 80E236C + thumb_func_start ScrSpecial_CreatePCMenu +@ bool ScrSpecial_CreatePCMenu() +ScrSpecial_CreatePCMenu: @ 80E236C push {lr} ldr r0, =sub_80E2058 bl FuncIsActiveTask @@ -698,7 +698,7 @@ _080E2394: _080E2396: pop {r1} bx r1 - thumb_func_end Special_CreatePCMenu + thumb_func_end ScrSpecial_CreatePCMenu thumb_func_start CreatePCMenu CreatePCMenu: @ 80E239C diff --git a/data/event_scripts.s b/data/event_scripts.s index 0d766d70b7..7dbe3fd015 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1772,7 +1772,7 @@ EventScript_271D92:: @ 8271D92 EventScript_271DAC:: @ 8271DAC message gUnknown_0827266F waitmessage - special Special_CreatePCMenu + special ScrSpecial_CreatePCMenu waitstate goto EventScript_271DBC end diff --git a/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc b/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc index 8472f4caa3..fb76a5fc79 100644 --- a/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc @@ -10,7 +10,7 @@ MauvilleCity_PokemonCenter_1F_MapScript1_210E66: @ 8210E66 end MauvilleCity_PokemonCenter_1F_EventScript_210E74:: @ 8210E74 - special Special_SetMauvilleOldManEventObjGfx + special ScrSpecial_SetMauvilleOldManEventObjGfx end MauvilleCity_PokemonCenter_1F_EventScript_210E78:: @ 8210E78 diff --git a/data/scripts/mauville_man.inc b/data/scripts/mauville_man.inc index 186361a008..46be101e11 100644 --- a/data/scripts/mauville_man.inc +++ b/data/scripts/mauville_man.inc @@ -1,5 +1,5 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E066:: @ 828E066 - special Special_GetCurrentMauvilleMan + special ScrSpecial_GetCurrentMauvilleMan switch VAR_RESULT case 0, MauvilleCity_PokemonCenter_1F_EventScript_28E0A6 case 1, MauvilleCity_PokemonCenter_1F_EventScript_28E167 @@ -20,9 +20,9 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E0A6:: @ 828E0A6 MauvilleCity_PokemonCenter_1F_EventScript_28E0C7:: @ 828E0C7 setvar VAR_0x8004, 0 - special Special_PlayBardSong + special ScrSpecial_PlayBardSong delay 60 - special Special_HasBardSongBeenChanged + special ScrSpecial_HasBardSongBeenChanged compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E0F4 msgbox MauvilleCity_PokemonCenter_1F_Text_2903E6, 4 @@ -51,12 +51,12 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E113:: @ 828E113 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E15D msgbox MauvilleCity_PokemonCenter_1F_Text_2904C1, 4 setvar VAR_0x8004, 1 - special Special_PlayBardSong + special ScrSpecial_PlayBardSong delay 60 msgbox MauvilleCity_PokemonCenter_1F_Text_2904EB, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E113 - special Special_SaveBardSongLyrics + special ScrSpecial_SaveBardSongLyrics msgbox MauvilleCity_PokemonCenter_1F_Text_290514, 4 release end @@ -71,7 +71,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E167:: @ 828E167 faceplayer setflag FLAG_SYS_HIPSTER_MEET msgbox MauvilleCity_PokemonCenter_1F_Text_29054C, 4 - special Special_GetHipsterSpokenFlag + special ScrSpecial_GetHipsterSpokenFlag compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E18C msgbox MauvilleCity_PokemonCenter_1F_Text_290598, 4 @@ -79,7 +79,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E167:: @ 828E167 end MauvilleCity_PokemonCenter_1F_EventScript_28E18C:: @ 828E18C - special Special_HipsterTeachWord + special ScrSpecial_HipsterTeachWord compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E1A4 msgbox MauvilleCity_PokemonCenter_1F_Text_290602, 4 @@ -88,7 +88,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E18C:: @ 828E18C MauvilleCity_PokemonCenter_1F_EventScript_28E1A4:: @ 828E1A4 msgbox MauvilleCity_PokemonCenter_1F_Text_290666, 4 - special Special_SetHipsterSpokenFlag + special ScrSpecial_SetHipsterSpokenFlag release end @@ -157,7 +157,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E4D4:: @ 828E4D4 msgbox MauvilleCity_PokemonCenter_1F_Text_28E1B1, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E503 - special Special_GetTraderTradedFlag + special ScrSpecial_GetTraderTradedFlag compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E50D message MauvilleCity_PokemonCenter_1F_Text_28E23F @@ -176,7 +176,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E50D:: @ 828E50D end MauvilleCity_PokemonCenter_1F_EventScript_28E517:: @ 828E517 - special Special_TraderMenuGetDecoration + special ScrSpecial_TraderMenuGetDecoration waitstate compare VAR_0x8004, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E558 @@ -185,7 +185,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E517:: @ 828E517 msgbox MauvilleCity_PokemonCenter_1F_Text_28E2A9, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E56E - special Special_DoesPlayerHaveNoDecorations + special ScrSpecial_DoesPlayerHaveNoDecorations compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E57A goto MauvilleCity_PokemonCenter_1F_EventScript_28E584 @@ -215,19 +215,19 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E57A:: @ 828E57A MauvilleCity_PokemonCenter_1F_EventScript_28E584:: @ 828E584 msgbox MauvilleCity_PokemonCenter_1F_Text_28E323, 4 - special Special_TraderMenuGiveDecoration + special ScrSpecial_TraderMenuGiveDecoration waitstate compare VAR_0x8006, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E5D4 compare VAR_0x8006, 65535 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E5DE - special Special_IsDecorationFull + special ScrSpecial_IsDecorationFull compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E5EC msgbox MauvilleCity_PokemonCenter_1F_Text_28E3C4, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_28E584 - special Special_TraderDoDecorationTrade + special ScrSpecial_TraderDoDecorationTrade msgbox MauvilleCity_PokemonCenter_1F_Text_28E424, 4 release end @@ -813,20 +813,20 @@ MauvilleCity_PokemonCenter_1F_EventScript_29014A:: @ 829014A msgbox MauvilleCity_PokemonCenter_1F_Text_28E5F6, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_290219 - specialvar VAR_RESULT, Special_StorytellerGetFreeStorySlot + specialvar VAR_RESULT, ScrSpecial_StorytellerGetFreeStorySlot compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_2901DA message MauvilleCity_PokemonCenter_1F_Text_28E673 waitmessage - special Special_StorytellerStoryListMenu + special ScrSpecial_StorytellerStoryListMenu waitstate compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_2901B7 setvar VAR_0x8008, 1 - special Special_StorytellerDisplayStory + special ScrSpecial_StorytellerDisplayStory waitmessage waitbuttonpress - specialvar VAR_RESULT, Special_StorytellerUpdateStat + specialvar VAR_RESULT, ScrSpecial_StorytellerUpdateStat compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_2901BD goto MauvilleCity_PokemonCenter_1F_EventScript_29020F @@ -837,7 +837,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_2901B7:: @ 82901B7 MauvilleCity_PokemonCenter_1F_EventScript_2901BD:: @ 82901BD msgbox MauvilleCity_PokemonCenter_1F_Text_28E78A, 4 - specialvar VAR_RESULT, Special_HasStorytellerAlreadyRecorded + specialvar VAR_RESULT, ScrSpecial_HasStorytellerAlreadyRecorded compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_29022D goto MauvilleCity_PokemonCenter_1F_EventScript_2901E2 @@ -849,7 +849,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_2901E2:: @ 82901E2 msgbox MauvilleCity_PokemonCenter_1F_Text_28E7EE, 5 compare VAR_RESULT, 0 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_290219 - specialvar VAR_RESULT, Special_StorytellerInitializeRandomStat + specialvar VAR_RESULT, ScrSpecial_StorytellerInitializeRandomStat compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_29020F msgbox MauvilleCity_PokemonCenter_1F_Text_28E881, 4 @@ -903,7 +903,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_2902F6:: @ 82902F6 end MauvilleCity_PokemonCenter_1F_EventScript_290317:: @ 8290317 - special Special_GiddyShouldTellAnotherTale + special ScrSpecial_GiddyShouldTellAnotherTale compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_290359 compare VAR_RESULT, 0 @@ -911,7 +911,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_290317:: @ 8290317 end MauvilleCity_PokemonCenter_1F_EventScript_290331:: @ 8290331 - special Special_GiddyShouldTellAnotherTale + special ScrSpecial_GiddyShouldTellAnotherTale compare VAR_RESULT, 1 goto_eq MauvilleCity_PokemonCenter_1F_EventScript_29034B compare VAR_RESULT, 0 @@ -924,7 +924,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_29034B:: @ 829034B end MauvilleCity_PokemonCenter_1F_EventScript_290359:: @ 8290359 - special Special_GenerateGiddyLine + special ScrSpecial_GenerateGiddyLine special ShowFieldMessageStringVar4 waitmessage yesnobox 20, 8 diff --git a/data/specials.inc b/data/specials.inc index 35b70b5c99..86355f4840 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -108,28 +108,28 @@ gSpecials:: @ 81DBA64 def_special sub_80FAFF8 def_special easy_chat_input_maybe def_special sub_811EECC - def_special Special_GetCurrentMauvilleMan - def_special Special_HasBardSongBeenChanged - def_special Special_SaveBardSongLyrics - def_special Special_GetHipsterSpokenFlag - def_special Special_SetHipsterSpokenFlag - def_special Special_HipsterTeachWord - def_special Special_PlayBardSong - def_special Special_SetMauvilleOldManEventObjGfx - def_special Special_GenerateGiddyLine - def_special Special_GiddyShouldTellAnotherTale - def_special Special_StorytellerGetFreeStorySlot - def_special Special_StorytellerDisplayStory - def_special Special_StorytellerStoryListMenu - def_special Special_StorytellerUpdateStat - def_special Special_StorytellerInitializeRandomStat - def_special Special_HasStorytellerAlreadyRecorded - def_special Special_TraderMenuGetDecoration - def_special Special_GetTraderTradedFlag - def_special Special_DoesPlayerHaveNoDecorations - def_special Special_IsDecorationFull - def_special Special_TraderMenuGiveDecoration - def_special Special_TraderDoDecorationTrade + def_special ScrSpecial_GetCurrentMauvilleMan + def_special ScrSpecial_HasBardSongBeenChanged + def_special ScrSpecial_SaveBardSongLyrics + def_special ScrSpecial_GetHipsterSpokenFlag + def_special ScrSpecial_SetHipsterSpokenFlag + def_special ScrSpecial_HipsterTeachWord + def_special ScrSpecial_PlayBardSong + def_special ScrSpecial_SetMauvilleOldManEventObjGfx + def_special ScrSpecial_GenerateGiddyLine + def_special ScrSpecial_GiddyShouldTellAnotherTale + def_special ScrSpecial_StorytellerGetFreeStorySlot + def_special ScrSpecial_StorytellerDisplayStory + def_special ScrSpecial_StorytellerStoryListMenu + def_special ScrSpecial_StorytellerUpdateStat + def_special ScrSpecial_StorytellerInitializeRandomStat + def_special ScrSpecial_HasStorytellerAlreadyRecorded + def_special ScrSpecial_TraderMenuGetDecoration + def_special ScrSpecial_GetTraderTradedFlag + def_special ScrSpecial_DoesPlayerHaveNoDecorations + def_special ScrSpecial_IsDecorationFull + def_special ScrSpecial_TraderMenuGiveDecoration + def_special ScrSpecial_TraderDoDecorationTrade def_special GetSeedotSizeRecordInfo def_special CompareSeedotSize def_special GetLotadSizeRecordInfo @@ -273,7 +273,7 @@ gSpecials:: @ 81DBA64 def_special ShowBerryBlenderRecordWindow def_special ResetTrickHouseEndRoomFlag def_special SetTrickHouseEndRoomFlag - def_special Special_CreatePCMenu + def_special ScrSpecial_CreatePCMenu def_special AccessHallOfFamePC def_special Special_ShowDiploma def_special CheckLeadMonCool diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h index dd7d5c4e00..9d71e81aa5 100644 --- a/include/mauville_old_man.h +++ b/include/mauville_old_man.h @@ -15,7 +15,7 @@ extern struct BardSong gBardSong; void SetMauvilleOldMan(void); u8 GetCurrentMauvilleOldMan(void); -void Special_SetMauvilleOldManEventObjGfx(void); +void ScrSpecial_SetMauvilleOldManEventObjGfx(void); u8 sub_81201C8(void); void sub_8120B70(OldMan *dest); void sub_8120670(void); diff --git a/include/wild_encounter.h b/include/wild_encounter.h index 14a28ee7e0..55bbaa7dde 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -33,7 +33,7 @@ extern const struct WildPokemonHeader gWildMonHeaders[]; void DisableWildEncounters(bool8 disabled); bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavior); -void Special_RockSmashWildEncounter(void); +void ScrSpecial_RockSmashWildEncounter(void); bool8 SweetScentWildEncounter(void); bool8 DoesCurrentMapHaveFishingMons(void); void FishingWildEncounter(u8 rod); diff --git a/src/hof_pc.c b/src/hof_pc.c index 38bf26c65c..44b9293378 100644 --- a/src/hof_pc.c +++ b/src/hof_pc.c @@ -10,7 +10,7 @@ extern void (*gUnknown_0300485C)(void); extern void Overworld_PlaySpecialMapMusic(void); -extern bool16 Special_CreatePCMenu(void); +extern bool16 ScrSpecial_CreatePCMenu(void); extern void ScriptMenu_DisplayPCStartupPrompt(void); static void ReshowPCMenuAfterHallOfFamePC(void); @@ -32,7 +32,7 @@ static void ReshowPCMenuAfterHallOfFamePC(void) { ScriptContext2_Enable(); Overworld_PlaySpecialMapMusic(); - Special_CreatePCMenu(); + ScrSpecial_CreatePCMenu(); ScriptMenu_DisplayPCStartupPrompt(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); CreateTask(Task_WaitForPaletteFade, 10); diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 752e19e9c9..591e3ad9a1 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -136,7 +136,7 @@ void SetMauvilleOldMan(void) SetupGiddy(); break; } - Special_SetMauvilleOldManEventObjGfx(); + ScrSpecial_SetMauvilleOldManEventObjGfx(); } u8 GetCurrentMauvilleOldMan(void) @@ -146,12 +146,12 @@ u8 GetCurrentMauvilleOldMan(void) return common->id; } -void Special_GetCurrentMauvilleMan(void) +void ScrSpecial_GetCurrentMauvilleMan(void) { gSpecialVar_Result = GetCurrentMauvilleOldMan(); } -void Special_HasBardSongBeenChanged(void) +void ScrSpecial_HasBardSongBeenChanged(void) { u16 *scriptResult = &gSpecialVar_Result; // why?? struct MauvilleManBard *bard = &gSaveBlock1Ptr->oldMan.bard; @@ -159,7 +159,7 @@ void Special_HasBardSongBeenChanged(void) *scriptResult = bard->hasChangedSong; } -void Special_SaveBardSongLyrics(void) +void ScrSpecial_SaveBardSongLyrics(void) { u16 i; struct MauvilleManBard *bard = &gSaveBlock1Ptr->oldMan.bard; @@ -225,13 +225,13 @@ static void PrepareSongText(void) } } -void Special_PlayBardSong(void) +void ScrSpecial_PlayBardSong(void) { StartBardSong(gSpecialVar_0x8004); ScriptContext1_Stop(); } -void Special_GetHipsterSpokenFlag(void) +void ScrSpecial_GetHipsterSpokenFlag(void) { u16 *scriptResult = &gSpecialVar_Result; // again?? struct MauvilleManHipster *hipster = &gSaveBlock1Ptr->oldMan.hipster; @@ -239,14 +239,14 @@ void Special_GetHipsterSpokenFlag(void) *scriptResult = hipster->alreadySpoken; } -void Special_SetHipsterSpokenFlag(void) +void ScrSpecial_SetHipsterSpokenFlag(void) { struct MauvilleManHipster *hipster = &gSaveBlock1Ptr->oldMan.hipster; hipster->alreadySpoken = TRUE; } -void Special_HipsterTeachWord(void) +void ScrSpecial_HipsterTeachWord(void) { u16 var = sub_811F01C(); @@ -261,7 +261,7 @@ void Special_HipsterTeachWord(void) } } -void Special_GiddyShouldTellAnotherTale(void) +void ScrSpecial_GiddyShouldTellAnotherTale(void) { struct MauvilleManGiddy *giddy = &gSaveBlock1Ptr->oldMan.giddy; @@ -276,7 +276,7 @@ void Special_GiddyShouldTellAnotherTale(void) } } -void Special_GenerateGiddyLine(void) +void ScrSpecial_GenerateGiddyLine(void) { struct MauvilleManGiddy *giddy = &gSaveBlock1Ptr->oldMan.giddy; @@ -406,7 +406,7 @@ void ResetMauvilleOldManFlag(void) case MAUVILLE_MAN_GIDDY: break; } - Special_SetMauvilleOldManEventObjGfx(); + ScrSpecial_SetMauvilleOldManEventObjGfx(); } @@ -671,7 +671,7 @@ static void Task_BardSong(u8 taskId) sub_8197224(); } -void Special_SetMauvilleOldManEventObjGfx(void) +void ScrSpecial_SetMauvilleOldManEventObjGfx(void) { VarSet(VAR_OBJ_GFX_ID_0, EVENT_OBJ_GFX_BARD); } @@ -1199,24 +1199,24 @@ static void Task_StoryListMenu(u8 taskId) // Task_StoryListMenu } // Sets gSpecialVar_Result to TRUE if player selected a story -void Special_StorytellerStoryListMenu(void) +void ScrSpecial_StorytellerStoryListMenu(void) { CreateTask(Task_StoryListMenu, 80); } -void Special_StorytellerDisplayStory(void) +void ScrSpecial_StorytellerDisplayStory(void) { StorytellerDisplayStory(sSelectedStory); } -u8 Special_StorytellerGetFreeStorySlot(void) +u8 ScrSpecial_StorytellerGetFreeStorySlot(void) { sStorytellerPtr = &gSaveBlock1Ptr->oldMan.storyteller; return GetFreeStorySlot(); } // Returns TRUE if stat has increased -bool8 Special_StorytellerUpdateStat(void) +bool8 ScrSpecial_StorytellerUpdateStat(void) { u8 r4; sStorytellerPtr = &gSaveBlock1Ptr->oldMan.storyteller; @@ -1230,7 +1230,7 @@ bool8 Special_StorytellerUpdateStat(void) return FALSE; } -bool8 Special_HasStorytellerAlreadyRecorded(void) +bool8 ScrSpecial_HasStorytellerAlreadyRecorded(void) { sStorytellerPtr = &gSaveBlock1Ptr->oldMan.storyteller; @@ -1240,7 +1240,7 @@ bool8 Special_HasStorytellerAlreadyRecorded(void) return TRUE; } -bool8 Special_StorytellerInitializeRandomStat(void) +bool8 ScrSpecial_StorytellerInitializeRandomStat(void) { sStorytellerPtr = &gSaveBlock1Ptr->oldMan.storyteller; return StorytellerInitializeRandomStat(); diff --git a/src/trader.c b/src/trader.c index 2cb74b23c2..c4d70ac9a9 100644 --- a/src/trader.c +++ b/src/trader.c @@ -130,13 +130,13 @@ void Task_HandleGetDecorationMenuInput(u8 taskId) } } -void Special_GetTraderTradedFlag(void) +void ScrSpecial_GetTraderTradedFlag(void) { struct MauvilleOldManTrader *trader = &gSaveBlock1Ptr->oldMan.trader; gSpecialVar_Result = trader->alreadyTraded; } -void Special_DoesPlayerHaveNoDecorations(void) +void ScrSpecial_DoesPlayerHaveNoDecorations(void) { u8 i; @@ -151,7 +151,7 @@ void Special_DoesPlayerHaveNoDecorations(void) gSpecialVar_Result = TRUE; } -void Special_IsDecorationFull(void) +void ScrSpecial_IsDecorationFull(void) { gSpecialVar_Result = FALSE; if (gDecorations[gSpecialVar_0x8004].category != gDecorations[gSpecialVar_0x8006].category @@ -162,7 +162,7 @@ void Special_IsDecorationFull(void) } } -void Special_TraderMenuGiveDecoration(void) +void ScrSpecial_TraderMenuGiveDecoration(void) { CreateTask(sub_8127208, 0); } @@ -190,7 +190,7 @@ void sub_8133E1C(u8 taskId) EnableBothScriptContexts(); } -void Special_TraderDoDecorationTrade(void) +void ScrSpecial_TraderDoDecorationTrade(void) { struct MauvilleOldManTrader *trader = &gSaveBlock1Ptr->oldMan.trader; @@ -202,7 +202,7 @@ void Special_TraderDoDecorationTrade(void) trader->alreadyTraded = TRUE; } -void Special_TraderMenuGetDecoration(void) +void ScrSpecial_TraderMenuGetDecoration(void) { u8 taskId = CreateTask(Task_HandleGetDecorationMenuInput, 0); CreateAvailableDecorationsMenu(taskId); From 57b3393192106f628bde9032308917f7fc3f39cf Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 11 Aug 2018 15:42:08 -0700 Subject: [PATCH 076/174] Fix compile error --- src/rotating_gate.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/rotating_gate.c b/src/rotating_gate.c index 1f5ef165f0..fcced6c8c6 100644 --- a/src/rotating_gate.c +++ b/src/rotating_gate.c @@ -189,12 +189,6 @@ struct RotatingGatePuzzle u8 orientation; }; -struct Coords8 -{ - s8 deltaX; - s8 deltaY; -}; - // .rodata // Fortree static const struct RotatingGatePuzzle sRotatingGate_FortreePuzzleConfig[] = From 7b9a7765e00ea01f07ab7c4169804881749f6513 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 00:42:25 +0200 Subject: [PATCH 077/174] Make learnsets easier to edit --- .../data/pokemon/level_up_learnset_pointers.h | 826 +++++++++--------- include/data/pokemon/level_up_learnsets.h | 822 ++++++++--------- src/pokemon.c | 6 +- 3 files changed, 827 insertions(+), 827 deletions(-) diff --git a/include/data/pokemon/level_up_learnset_pointers.h b/include/data/pokemon/level_up_learnset_pointers.h index a56b1c09fb..0f648526c8 100644 --- a/include/data/pokemon/level_up_learnset_pointers.h +++ b/include/data/pokemon/level_up_learnset_pointers.h @@ -1,420 +1,420 @@ #ifndef POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H #define POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H -const u16 *const gLevelUpLearnsets[] = +const u16 *const gLevelUpLearnsets[NUM_SPECIES] = { - gBulbasaurLevelUpLearnset, - gBulbasaurLevelUpLearnset, - gIvysaurLevelUpLearnset, - gVenusaurLevelUpLearnset, - gCharmanderLevelUpLearnset, - gCharmeleonLevelUpLearnset, - gCharizardLevelUpLearnset, - gSquirtleLevelUpLearnset, - gWartortleLevelUpLearnset, - gBlastoiseLevelUpLearnset, - gCaterpieLevelUpLearnset, - gMetapodLevelUpLearnset, - gButterfreeLevelUpLearnset, - gWeedleLevelUpLearnset, - gKakunaLevelUpLearnset, - gBeedrillLevelUpLearnset, - gPidgeyLevelUpLearnset, - gPidgeottoLevelUpLearnset, - gPidgeotLevelUpLearnset, - gRattataLevelUpLearnset, - gRaticateLevelUpLearnset, - gSpearowLevelUpLearnset, - gFearowLevelUpLearnset, - gEkansLevelUpLearnset, - gArbokLevelUpLearnset, - gPikachuLevelUpLearnset, - gRaichuLevelUpLearnset, - gSandshrewLevelUpLearnset, - gSandslashLevelUpLearnset, - gNidoranFLevelUpLearnset, - gNidorinaLevelUpLearnset, - gNidoqueenLevelUpLearnset, - gNidoranMLevelUpLearnset, - gNidorinoLevelUpLearnset, - gNidokingLevelUpLearnset, - gClefairyLevelUpLearnset, - gClefableLevelUpLearnset, - gVulpixLevelUpLearnset, - gNinetalesLevelUpLearnset, - gJigglypuffLevelUpLearnset, - gWigglytuffLevelUpLearnset, - gZubatLevelUpLearnset, - gGolbatLevelUpLearnset, - gOddishLevelUpLearnset, - gGloomLevelUpLearnset, - gVileplumeLevelUpLearnset, - gParasLevelUpLearnset, - gParasectLevelUpLearnset, - gVenonatLevelUpLearnset, - gVenomothLevelUpLearnset, - gDiglettLevelUpLearnset, - gDugtrioLevelUpLearnset, - gMeowthLevelUpLearnset, - gPersianLevelUpLearnset, - gPsyduckLevelUpLearnset, - gGolduckLevelUpLearnset, - gMankeyLevelUpLearnset, - gPrimeapeLevelUpLearnset, - gGrowlitheLevelUpLearnset, - gArcanineLevelUpLearnset, - gPoliwagLevelUpLearnset, - gPoliwhirlLevelUpLearnset, - gPoliwrathLevelUpLearnset, - gAbraLevelUpLearnset, - gKadabraLevelUpLearnset, - gAlakazamLevelUpLearnset, - gMachopLevelUpLearnset, - gMachokeLevelUpLearnset, - gMachampLevelUpLearnset, - gBellsproutLevelUpLearnset, - gWeepinbellLevelUpLearnset, - gVictreebelLevelUpLearnset, - gTentacoolLevelUpLearnset, - gTentacruelLevelUpLearnset, - gGeodudeLevelUpLearnset, - gGravelerLevelUpLearnset, - gGolemLevelUpLearnset, - gPonytaLevelUpLearnset, - gRapidashLevelUpLearnset, - gSlowpokeLevelUpLearnset, - gSlowbroLevelUpLearnset, - gMagnemiteLevelUpLearnset, - gMagnetonLevelUpLearnset, - gFarfetchdLevelUpLearnset, - gDoduoLevelUpLearnset, - gDodrioLevelUpLearnset, - gSeelLevelUpLearnset, - gDewgongLevelUpLearnset, - gGrimerLevelUpLearnset, - gMukLevelUpLearnset, - gShellderLevelUpLearnset, - gCloysterLevelUpLearnset, - gGastlyLevelUpLearnset, - gHaunterLevelUpLearnset, - gGengarLevelUpLearnset, - gOnixLevelUpLearnset, - gDrowzeeLevelUpLearnset, - gHypnoLevelUpLearnset, - gKrabbyLevelUpLearnset, - gKinglerLevelUpLearnset, - gVoltorbLevelUpLearnset, - gElectrodeLevelUpLearnset, - gExeggcuteLevelUpLearnset, - gExeggutorLevelUpLearnset, - gCuboneLevelUpLearnset, - gMarowakLevelUpLearnset, - gHitmonleeLevelUpLearnset, - gHitmonchanLevelUpLearnset, - gLickitungLevelUpLearnset, - gKoffingLevelUpLearnset, - gWeezingLevelUpLearnset, - gRhyhornLevelUpLearnset, - gRhydonLevelUpLearnset, - gChanseyLevelUpLearnset, - gTangelaLevelUpLearnset, - gKangaskhanLevelUpLearnset, - gHorseaLevelUpLearnset, - gSeadraLevelUpLearnset, - gGoldeenLevelUpLearnset, - gSeakingLevelUpLearnset, - gStaryuLevelUpLearnset, - gStarmieLevelUpLearnset, - gMrmimeLevelUpLearnset, - gScytherLevelUpLearnset, - gJynxLevelUpLearnset, - gElectabuzzLevelUpLearnset, - gMagmarLevelUpLearnset, - gPinsirLevelUpLearnset, - gTaurosLevelUpLearnset, - gMagikarpLevelUpLearnset, - gGyaradosLevelUpLearnset, - gLaprasLevelUpLearnset, - gDittoLevelUpLearnset, - gEeveeLevelUpLearnset, - gVaporeonLevelUpLearnset, - gJolteonLevelUpLearnset, - gFlareonLevelUpLearnset, - gPorygonLevelUpLearnset, - gOmanyteLevelUpLearnset, - gOmastarLevelUpLearnset, - gKabutoLevelUpLearnset, - gKabutopsLevelUpLearnset, - gAerodactylLevelUpLearnset, - gSnorlaxLevelUpLearnset, - gArticunoLevelUpLearnset, - gZapdosLevelUpLearnset, - gMoltresLevelUpLearnset, - gDratiniLevelUpLearnset, - gDragonairLevelUpLearnset, - gDragoniteLevelUpLearnset, - gMewtwoLevelUpLearnset, - gMewLevelUpLearnset, - gChikoritaLevelUpLearnset, - gBayleefLevelUpLearnset, - gMeganiumLevelUpLearnset, - gCyndaquilLevelUpLearnset, - gQuilavaLevelUpLearnset, - gTyphlosionLevelUpLearnset, - gTotodileLevelUpLearnset, - gCroconawLevelUpLearnset, - gFeraligatrLevelUpLearnset, - gSentretLevelUpLearnset, - gFurretLevelUpLearnset, - gHoothootLevelUpLearnset, - gNoctowlLevelUpLearnset, - gLedybaLevelUpLearnset, - gLedianLevelUpLearnset, - gSpinarakLevelUpLearnset, - gAriadosLevelUpLearnset, - gCrobatLevelUpLearnset, - gChinchouLevelUpLearnset, - gLanturnLevelUpLearnset, - gPichuLevelUpLearnset, - gCleffaLevelUpLearnset, - gIgglybuffLevelUpLearnset, - gTogepiLevelUpLearnset, - gTogeticLevelUpLearnset, - gNatuLevelUpLearnset, - gXatuLevelUpLearnset, - gMareepLevelUpLearnset, - gFlaaffyLevelUpLearnset, - gAmpharosLevelUpLearnset, - gBellossomLevelUpLearnset, - gMarillLevelUpLearnset, - gAzumarillLevelUpLearnset, - gSudowoodoLevelUpLearnset, - gPolitoedLevelUpLearnset, - gHoppipLevelUpLearnset, - gSkiploomLevelUpLearnset, - gJumpluffLevelUpLearnset, - gAipomLevelUpLearnset, - gSunkernLevelUpLearnset, - gSunfloraLevelUpLearnset, - gYanmaLevelUpLearnset, - gWooperLevelUpLearnset, - gQuagsireLevelUpLearnset, - gEspeonLevelUpLearnset, - gUmbreonLevelUpLearnset, - gMurkrowLevelUpLearnset, - gSlowkingLevelUpLearnset, - gMisdreavusLevelUpLearnset, - gUnownLevelUpLearnset, - gWobbuffetLevelUpLearnset, - gGirafarigLevelUpLearnset, - gPinecoLevelUpLearnset, - gForretressLevelUpLearnset, - gDunsparceLevelUpLearnset, - gGligarLevelUpLearnset, - gSteelixLevelUpLearnset, - gSnubbullLevelUpLearnset, - gGranbullLevelUpLearnset, - gQwilfishLevelUpLearnset, - gScizorLevelUpLearnset, - gShuckleLevelUpLearnset, - gHeracrossLevelUpLearnset, - gSneaselLevelUpLearnset, - gTeddiursaLevelUpLearnset, - gUrsaringLevelUpLearnset, - gSlugmaLevelUpLearnset, - gMagcargoLevelUpLearnset, - gSwinubLevelUpLearnset, - gPiloswineLevelUpLearnset, - gCorsolaLevelUpLearnset, - gRemoraidLevelUpLearnset, - gOctilleryLevelUpLearnset, - gDelibirdLevelUpLearnset, - gMantineLevelUpLearnset, - gSkarmoryLevelUpLearnset, - gHoundourLevelUpLearnset, - gHoundoomLevelUpLearnset, - gKingdraLevelUpLearnset, - gPhanpyLevelUpLearnset, - gDonphanLevelUpLearnset, - gPorygon2LevelUpLearnset, - gStantlerLevelUpLearnset, - gSmeargleLevelUpLearnset, - gTyrogueLevelUpLearnset, - gHitmontopLevelUpLearnset, - gSmoochumLevelUpLearnset, - gElekidLevelUpLearnset, - gMagbyLevelUpLearnset, - gMiltankLevelUpLearnset, - gBlisseyLevelUpLearnset, - gRaikouLevelUpLearnset, - gEnteiLevelUpLearnset, - gSuicuneLevelUpLearnset, - gLarvitarLevelUpLearnset, - gPupitarLevelUpLearnset, - gTyranitarLevelUpLearnset, - gLugiaLevelUpLearnset, - gHoOhLevelUpLearnset, - gCelebiLevelUpLearnset, - gSpecies252LevelUpLearnset, - gSpecies253LevelUpLearnset, - gSpecies254LevelUpLearnset, - gSpecies255LevelUpLearnset, - gSpecies256LevelUpLearnset, - gSpecies257LevelUpLearnset, - gSpecies258LevelUpLearnset, - gSpecies259LevelUpLearnset, - gSpecies260LevelUpLearnset, - gSpecies261LevelUpLearnset, - gSpecies262LevelUpLearnset, - gSpecies263LevelUpLearnset, - gSpecies264LevelUpLearnset, - gSpecies265LevelUpLearnset, - gSpecies266LevelUpLearnset, - gSpecies267LevelUpLearnset, - gSpecies268LevelUpLearnset, - gSpecies269LevelUpLearnset, - gSpecies270LevelUpLearnset, - gSpecies271LevelUpLearnset, - gSpecies272LevelUpLearnset, - gSpecies273LevelUpLearnset, - gSpecies274LevelUpLearnset, - gSpecies275LevelUpLearnset, - gSpecies276LevelUpLearnset, - gTreeckoLevelUpLearnset, - gGrovyleLevelUpLearnset, - gSceptileLevelUpLearnset, - gTorchicLevelUpLearnset, - gCombuskenLevelUpLearnset, - gBlazikenLevelUpLearnset, - gMudkipLevelUpLearnset, - gMarshtompLevelUpLearnset, - gSwampertLevelUpLearnset, - gPoochyenaLevelUpLearnset, - gMightyenaLevelUpLearnset, - gZigzagoonLevelUpLearnset, - gLinooneLevelUpLearnset, - gWurmpleLevelUpLearnset, - gSilcoonLevelUpLearnset, - gBeautiflyLevelUpLearnset, - gCascoonLevelUpLearnset, - gDustoxLevelUpLearnset, - gLotadLevelUpLearnset, - gLombreLevelUpLearnset, - gLudicoloLevelUpLearnset, - gSeedotLevelUpLearnset, - gNuzleafLevelUpLearnset, - gShiftryLevelUpLearnset, - gNincadaLevelUpLearnset, - gNinjaskLevelUpLearnset, - gShedinjaLevelUpLearnset, - gTaillowLevelUpLearnset, - gSwellowLevelUpLearnset, - gShroomishLevelUpLearnset, - gBreloomLevelUpLearnset, - gSpindaLevelUpLearnset, - gWingullLevelUpLearnset, - gPelipperLevelUpLearnset, - gSurskitLevelUpLearnset, - gMasquerainLevelUpLearnset, - gWailmerLevelUpLearnset, - gWailordLevelUpLearnset, - gSkittyLevelUpLearnset, - gDelcattyLevelUpLearnset, - gKecleonLevelUpLearnset, - gBaltoyLevelUpLearnset, - gClaydolLevelUpLearnset, - gNosepassLevelUpLearnset, - gTorkoalLevelUpLearnset, - gSableyeLevelUpLearnset, - gBarboachLevelUpLearnset, - gWhiscashLevelUpLearnset, - gLuvdiscLevelUpLearnset, - gCorphishLevelUpLearnset, - gCrawdauntLevelUpLearnset, - gFeebasLevelUpLearnset, - gMiloticLevelUpLearnset, - gCarvanhaLevelUpLearnset, - gSharpedoLevelUpLearnset, - gTrapinchLevelUpLearnset, - gVibravaLevelUpLearnset, - gFlygonLevelUpLearnset, - gMakuhitaLevelUpLearnset, - gHariyamaLevelUpLearnset, - gElectrikeLevelUpLearnset, - gManectricLevelUpLearnset, - gNumelLevelUpLearnset, - gCameruptLevelUpLearnset, - gSphealLevelUpLearnset, - gSealeoLevelUpLearnset, - gWalreinLevelUpLearnset, - gCacneaLevelUpLearnset, - gCacturneLevelUpLearnset, - gSnoruntLevelUpLearnset, - gGlalieLevelUpLearnset, - gLunatoneLevelUpLearnset, - gSolrockLevelUpLearnset, - gAzurillLevelUpLearnset, - gSpoinkLevelUpLearnset, - gGrumpigLevelUpLearnset, - gPlusleLevelUpLearnset, - gMinunLevelUpLearnset, - gMawileLevelUpLearnset, - gMedititeLevelUpLearnset, - gMedichamLevelUpLearnset, - gSwabluLevelUpLearnset, - gAltariaLevelUpLearnset, - gWynautLevelUpLearnset, - gDuskullLevelUpLearnset, - gDusclopsLevelUpLearnset, - gRoseliaLevelUpLearnset, - gSlakothLevelUpLearnset, - gVigorothLevelUpLearnset, - gSlakingLevelUpLearnset, - gGulpinLevelUpLearnset, - gSwalotLevelUpLearnset, - gTropiusLevelUpLearnset, - gWhismurLevelUpLearnset, - gLoudredLevelUpLearnset, - gExploudLevelUpLearnset, - gClamperlLevelUpLearnset, - gHuntailLevelUpLearnset, - gGorebyssLevelUpLearnset, - gAbsolLevelUpLearnset, - gShuppetLevelUpLearnset, - gBanetteLevelUpLearnset, - gSeviperLevelUpLearnset, - gZangooseLevelUpLearnset, - gRelicanthLevelUpLearnset, - gAronLevelUpLearnset, - gLaironLevelUpLearnset, - gAggronLevelUpLearnset, - gCastformLevelUpLearnset, - gVolbeatLevelUpLearnset, - gIllumiseLevelUpLearnset, - gLileepLevelUpLearnset, - gCradilyLevelUpLearnset, - gAnorithLevelUpLearnset, - gArmaldoLevelUpLearnset, - gRaltsLevelUpLearnset, - gKirliaLevelUpLearnset, - gGardevoirLevelUpLearnset, - gBagonLevelUpLearnset, - gShelgonLevelUpLearnset, - gSalamenceLevelUpLearnset, - gBeldumLevelUpLearnset, - gMetangLevelUpLearnset, - gMetagrossLevelUpLearnset, - gRegirockLevelUpLearnset, - gRegiceLevelUpLearnset, - gRegisteelLevelUpLearnset, - gKyogreLevelUpLearnset, - gGroudonLevelUpLearnset, - gRayquazaLevelUpLearnset, - gLatiasLevelUpLearnset, - gLatiosLevelUpLearnset, - gJirachiLevelUpLearnset, - gDeoxysLevelUpLearnset, - gChimechoLevelUpLearnset + [SPECIES_NONE] = sBulbasaurLevelUpLearnset, + [SPECIES_BULBASAUR] = sBulbasaurLevelUpLearnset, + [SPECIES_IVYSAUR] = sIvysaurLevelUpLearnset, + [SPECIES_VENUSAUR] = sVenusaurLevelUpLearnset, + [SPECIES_CHARMANDER] = sCharmanderLevelUpLearnset, + [SPECIES_CHARMELEON] = sCharmeleonLevelUpLearnset, + [SPECIES_CHARIZARD] = sCharizardLevelUpLearnset, + [SPECIES_SQUIRTLE] = sSquirtleLevelUpLearnset, + [SPECIES_WARTORTLE] = sWartortleLevelUpLearnset, + [SPECIES_BLASTOISE] = sBlastoiseLevelUpLearnset, + [SPECIES_CATERPIE] = sCaterpieLevelUpLearnset, + [SPECIES_METAPOD] = sMetapodLevelUpLearnset, + [SPECIES_BUTTERFREE] = sButterfreeLevelUpLearnset, + [SPECIES_WEEDLE] = sWeedleLevelUpLearnset, + [SPECIES_KAKUNA] = sKakunaLevelUpLearnset, + [SPECIES_BEEDRILL] = sBeedrillLevelUpLearnset, + [SPECIES_PIDGEY] = sPidgeyLevelUpLearnset, + [SPECIES_PIDGEOTTO] = sPidgeottoLevelUpLearnset, + [SPECIES_PIDGEOT] = sPidgeotLevelUpLearnset, + [SPECIES_RATTATA] = sRattataLevelUpLearnset, + [SPECIES_RATICATE] = sRaticateLevelUpLearnset, + [SPECIES_SPEAROW] = sSpearowLevelUpLearnset, + [SPECIES_FEAROW] = sFearowLevelUpLearnset, + [SPECIES_EKANS] = sEkansLevelUpLearnset, + [SPECIES_ARBOK] = sArbokLevelUpLearnset, + [SPECIES_PIKACHU] = sPikachuLevelUpLearnset, + [SPECIES_RAICHU] = sRaichuLevelUpLearnset, + [SPECIES_SANDSHREW] = sSandshrewLevelUpLearnset, + [SPECIES_SANDSLASH] = sSandslashLevelUpLearnset, + [SPECIES_NIDORAN_F] = sNidoranFLevelUpLearnset, + [SPECIES_NIDORINA] = sNidorinaLevelUpLearnset, + [SPECIES_NIDOQUEEN] = sNidoqueenLevelUpLearnset, + [SPECIES_NIDORAN_M] = sNidoranMLevelUpLearnset, + [SPECIES_NIDORINO] = sNidorinoLevelUpLearnset, + [SPECIES_NIDOKING] = sNidokingLevelUpLearnset, + [SPECIES_CLEFAIRY] = sClefairyLevelUpLearnset, + [SPECIES_CLEFABLE] = sClefableLevelUpLearnset, + [SPECIES_VULPIX] = sVulpixLevelUpLearnset, + [SPECIES_NINETALES] = sNinetalesLevelUpLearnset, + [SPECIES_JIGGLYPUFF] = sJigglypuffLevelUpLearnset, + [SPECIES_WIGGLYTUFF] = sWigglytuffLevelUpLearnset, + [SPECIES_ZUBAT] = sZubatLevelUpLearnset, + [SPECIES_GOLBAT] = sGolbatLevelUpLearnset, + [SPECIES_ODDISH] = sOddishLevelUpLearnset, + [SPECIES_GLOOM] = sGloomLevelUpLearnset, + [SPECIES_VILEPLUME] = sVileplumeLevelUpLearnset, + [SPECIES_PARAS] = sParasLevelUpLearnset, + [SPECIES_PARASECT] = sParasectLevelUpLearnset, + [SPECIES_VENONAT] = sVenonatLevelUpLearnset, + [SPECIES_VENOMOTH] = sVenomothLevelUpLearnset, + [SPECIES_DIGLETT] = sDiglettLevelUpLearnset, + [SPECIES_DUGTRIO] = sDugtrioLevelUpLearnset, + [SPECIES_MEOWTH] = sMeowthLevelUpLearnset, + [SPECIES_PERSIAN] = sPersianLevelUpLearnset, + [SPECIES_PSYDUCK] = sPsyduckLevelUpLearnset, + [SPECIES_GOLDUCK] = sGolduckLevelUpLearnset, + [SPECIES_MANKEY] = sMankeyLevelUpLearnset, + [SPECIES_PRIMEAPE] = sPrimeapeLevelUpLearnset, + [SPECIES_GROWLITHE] = sGrowlitheLevelUpLearnset, + [SPECIES_ARCANINE] = sArcanineLevelUpLearnset, + [SPECIES_POLIWAG] = sPoliwagLevelUpLearnset, + [SPECIES_POLIWHIRL] = sPoliwhirlLevelUpLearnset, + [SPECIES_POLIWRATH] = sPoliwrathLevelUpLearnset, + [SPECIES_ABRA] = sAbraLevelUpLearnset, + [SPECIES_KADABRA] = sKadabraLevelUpLearnset, + [SPECIES_ALAKAZAM] = sAlakazamLevelUpLearnset, + [SPECIES_MACHOP] = sMachopLevelUpLearnset, + [SPECIES_MACHOKE] = sMachokeLevelUpLearnset, + [SPECIES_MACHAMP] = sMachampLevelUpLearnset, + [SPECIES_BELLSPROUT] = sBellsproutLevelUpLearnset, + [SPECIES_WEEPINBELL] = sWeepinbellLevelUpLearnset, + [SPECIES_VICTREEBEL] = sVictreebelLevelUpLearnset, + [SPECIES_TENTACOOL] = sTentacoolLevelUpLearnset, + [SPECIES_TENTACRUEL] = sTentacruelLevelUpLearnset, + [SPECIES_GEODUDE] = sGeodudeLevelUpLearnset, + [SPECIES_GRAVELER] = sGravelerLevelUpLearnset, + [SPECIES_GOLEM] = sGolemLevelUpLearnset, + [SPECIES_PONYTA] = sPonytaLevelUpLearnset, + [SPECIES_RAPIDASH] = sRapidashLevelUpLearnset, + [SPECIES_SLOWPOKE] = sSlowpokeLevelUpLearnset, + [SPECIES_SLOWBRO] = sSlowbroLevelUpLearnset, + [SPECIES_MAGNEMITE] = sMagnemiteLevelUpLearnset, + [SPECIES_MAGNETON] = sMagnetonLevelUpLearnset, + [SPECIES_FARFETCHD] = sFarfetchdLevelUpLearnset, + [SPECIES_DODUO] = sDoduoLevelUpLearnset, + [SPECIES_DODRIO] = sDodrioLevelUpLearnset, + [SPECIES_SEEL] = sSeelLevelUpLearnset, + [SPECIES_DEWGONG] = sDewgongLevelUpLearnset, + [SPECIES_GRIMER] = sGrimerLevelUpLearnset, + [SPECIES_MUK] = sMukLevelUpLearnset, + [SPECIES_SHELLDER] = sShellderLevelUpLearnset, + [SPECIES_CLOYSTER] = sCloysterLevelUpLearnset, + [SPECIES_GASTLY] = sGastlyLevelUpLearnset, + [SPECIES_HAUNTER] = sHaunterLevelUpLearnset, + [SPECIES_GENGAR] = sGengarLevelUpLearnset, + [SPECIES_ONIX] = sOnixLevelUpLearnset, + [SPECIES_DROWZEE] = sDrowzeeLevelUpLearnset, + [SPECIES_HYPNO] = sHypnoLevelUpLearnset, + [SPECIES_KRABBY] = sKrabbyLevelUpLearnset, + [SPECIES_KINGLER] = sKinglerLevelUpLearnset, + [SPECIES_VOLTORB] = sVoltorbLevelUpLearnset, + [SPECIES_ELECTRODE] = sElectrodeLevelUpLearnset, + [SPECIES_EXEGGCUTE] = sExeggcuteLevelUpLearnset, + [SPECIES_EXEGGUTOR] = sExeggutorLevelUpLearnset, + [SPECIES_CUBONE] = sCuboneLevelUpLearnset, + [SPECIES_MAROWAK] = sMarowakLevelUpLearnset, + [SPECIES_HITMONLEE] = sHitmonleeLevelUpLearnset, + [SPECIES_HITMONCHAN] = sHitmonchanLevelUpLearnset, + [SPECIES_LICKITUNG] = sLickitungLevelUpLearnset, + [SPECIES_KOFFING] = sKoffingLevelUpLearnset, + [SPECIES_WEEZING] = sWeezingLevelUpLearnset, + [SPECIES_RHYHORN] = sRhyhornLevelUpLearnset, + [SPECIES_RHYDON] = sRhydonLevelUpLearnset, + [SPECIES_CHANSEY] = sChanseyLevelUpLearnset, + [SPECIES_TANGELA] = sTangelaLevelUpLearnset, + [SPECIES_KANGASKHAN] = sKangaskhanLevelUpLearnset, + [SPECIES_HORSEA] = sHorseaLevelUpLearnset, + [SPECIES_SEADRA] = sSeadraLevelUpLearnset, + [SPECIES_GOLDEEN] = sGoldeenLevelUpLearnset, + [SPECIES_SEAKING] = sSeakingLevelUpLearnset, + [SPECIES_STARYU] = sStaryuLevelUpLearnset, + [SPECIES_STARMIE] = sStarmieLevelUpLearnset, + [SPECIES_MR_MIME] = sMrmimeLevelUpLearnset, + [SPECIES_SCYTHER] = sScytherLevelUpLearnset, + [SPECIES_JYNX] = sJynxLevelUpLearnset, + [SPECIES_ELECTABUZZ] = sElectabuzzLevelUpLearnset, + [SPECIES_MAGMAR] = sMagmarLevelUpLearnset, + [SPECIES_PINSIR] = sPinsirLevelUpLearnset, + [SPECIES_TAUROS] = sTaurosLevelUpLearnset, + [SPECIES_MAGIKARP] = sMagikarpLevelUpLearnset, + [SPECIES_GYARADOS] = sGyaradosLevelUpLearnset, + [SPECIES_LAPRAS] = sLaprasLevelUpLearnset, + [SPECIES_DITTO] = sDittoLevelUpLearnset, + [SPECIES_EEVEE] = sEeveeLevelUpLearnset, + [SPECIES_VAPOREON] = sVaporeonLevelUpLearnset, + [SPECIES_JOLTEON] = sJolteonLevelUpLearnset, + [SPECIES_FLAREON] = sFlareonLevelUpLearnset, + [SPECIES_PORYGON] = sPorygonLevelUpLearnset, + [SPECIES_OMANYTE] = sOmanyteLevelUpLearnset, + [SPECIES_OMASTAR] = sOmastarLevelUpLearnset, + [SPECIES_KABUTO] = sKabutoLevelUpLearnset, + [SPECIES_KABUTOPS] = sKabutopsLevelUpLearnset, + [SPECIES_AERODACTYL] = sAerodactylLevelUpLearnset, + [SPECIES_SNORLAX] = sSnorlaxLevelUpLearnset, + [SPECIES_ARTICUNO] = sArticunoLevelUpLearnset, + [SPECIES_ZAPDOS] = sZapdosLevelUpLearnset, + [SPECIES_MOLTRES] = sMoltresLevelUpLearnset, + [SPECIES_DRATINI] = sDratiniLevelUpLearnset, + [SPECIES_DRAGONAIR] = sDragonairLevelUpLearnset, + [SPECIES_DRAGONITE] = sDragoniteLevelUpLearnset, + [SPECIES_MEWTWO] = sMewtwoLevelUpLearnset, + [SPECIES_MEW] = sMewLevelUpLearnset, + [SPECIES_CHIKORITA] = sChikoritaLevelUpLearnset, + [SPECIES_BAYLEEF] = sBayleefLevelUpLearnset, + [SPECIES_MEGANIUM] = sMeganiumLevelUpLearnset, + [SPECIES_CYNDAQUIL] = sCyndaquilLevelUpLearnset, + [SPECIES_QUILAVA] = sQuilavaLevelUpLearnset, + [SPECIES_TYPHLOSION] = sTyphlosionLevelUpLearnset, + [SPECIES_TOTODILE] = sTotodileLevelUpLearnset, + [SPECIES_CROCONAW] = sCroconawLevelUpLearnset, + [SPECIES_FERALIGATR] = sFeraligatrLevelUpLearnset, + [SPECIES_SENTRET] = sSentretLevelUpLearnset, + [SPECIES_FURRET] = sFurretLevelUpLearnset, + [SPECIES_HOOTHOOT] = sHoothootLevelUpLearnset, + [SPECIES_NOCTOWL] = sNoctowlLevelUpLearnset, + [SPECIES_LEDYBA] = sLedybaLevelUpLearnset, + [SPECIES_LEDIAN] = sLedianLevelUpLearnset, + [SPECIES_SPINARAK] = sSpinarakLevelUpLearnset, + [SPECIES_ARIADOS] = sAriadosLevelUpLearnset, + [SPECIES_CROBAT] = sCrobatLevelUpLearnset, + [SPECIES_CHINCHOU] = sChinchouLevelUpLearnset, + [SPECIES_LANTURN] = sLanturnLevelUpLearnset, + [SPECIES_PICHU] = sPichuLevelUpLearnset, + [SPECIES_CLEFFA] = sCleffaLevelUpLearnset, + [SPECIES_IGGLYBUFF] = sIgglybuffLevelUpLearnset, + [SPECIES_TOGEPI] = sTogepiLevelUpLearnset, + [SPECIES_TOGETIC] = sTogeticLevelUpLearnset, + [SPECIES_NATU] = sNatuLevelUpLearnset, + [SPECIES_XATU] = sXatuLevelUpLearnset, + [SPECIES_MAREEP] = sMareepLevelUpLearnset, + [SPECIES_FLAAFFY] = sFlaaffyLevelUpLearnset, + [SPECIES_AMPHAROS] = sAmpharosLevelUpLearnset, + [SPECIES_BELLOSSOM] = sBellossomLevelUpLearnset, + [SPECIES_MARILL] = sMarillLevelUpLearnset, + [SPECIES_AZUMARILL] = sAzumarillLevelUpLearnset, + [SPECIES_SUDOWOODO] = sSudowoodoLevelUpLearnset, + [SPECIES_POLITOED] = sPolitoedLevelUpLearnset, + [SPECIES_HOPPIP] = sHoppipLevelUpLearnset, + [SPECIES_SKIPLOOM] = sSkiploomLevelUpLearnset, + [SPECIES_JUMPLUFF] = sJumpluffLevelUpLearnset, + [SPECIES_AIPOM] = sAipomLevelUpLearnset, + [SPECIES_SUNKERN] = sSunkernLevelUpLearnset, + [SPECIES_SUNFLORA] = sSunfloraLevelUpLearnset, + [SPECIES_YANMA] = sYanmaLevelUpLearnset, + [SPECIES_WOOPER] = sWooperLevelUpLearnset, + [SPECIES_QUAGSIRE] = sQuagsireLevelUpLearnset, + [SPECIES_ESPEON] = sEspeonLevelUpLearnset, + [SPECIES_UMBREON] = sUmbreonLevelUpLearnset, + [SPECIES_MURKROW] = sMurkrowLevelUpLearnset, + [SPECIES_SLOWKING] = sSlowkingLevelUpLearnset, + [SPECIES_MISDREAVUS] = sMisdreavusLevelUpLearnset, + [SPECIES_UNOWN] = sUnownLevelUpLearnset, + [SPECIES_WOBBUFFET] = sWobbuffetLevelUpLearnset, + [SPECIES_GIRAFARIG] = sGirafarigLevelUpLearnset, + [SPECIES_PINECO] = sPinecoLevelUpLearnset, + [SPECIES_FORRETRESS] = sForretressLevelUpLearnset, + [SPECIES_DUNSPARCE] = sDunsparceLevelUpLearnset, + [SPECIES_GLIGAR] = sGligarLevelUpLearnset, + [SPECIES_STEELIX] = sSteelixLevelUpLearnset, + [SPECIES_SNUBBULL] = sSnubbullLevelUpLearnset, + [SPECIES_GRANBULL] = sGranbullLevelUpLearnset, + [SPECIES_QWILFISH] = sQwilfishLevelUpLearnset, + [SPECIES_SCIZOR] = sScizorLevelUpLearnset, + [SPECIES_SHUCKLE] = sShuckleLevelUpLearnset, + [SPECIES_HERACROSS] = sHeracrossLevelUpLearnset, + [SPECIES_SNEASEL] = sSneaselLevelUpLearnset, + [SPECIES_TEDDIURSA] = sTeddiursaLevelUpLearnset, + [SPECIES_URSARING] = sUrsaringLevelUpLearnset, + [SPECIES_SLUGMA] = sSlugmaLevelUpLearnset, + [SPECIES_MAGCARGO] = sMagcargoLevelUpLearnset, + [SPECIES_SWINUB] = sSwinubLevelUpLearnset, + [SPECIES_PILOSWINE] = sPiloswineLevelUpLearnset, + [SPECIES_CORSOLA] = sCorsolaLevelUpLearnset, + [SPECIES_REMORAID] = sRemoraidLevelUpLearnset, + [SPECIES_OCTILLERY] = sOctilleryLevelUpLearnset, + [SPECIES_DELIBIRD] = sDelibirdLevelUpLearnset, + [SPECIES_MANTINE] = sMantineLevelUpLearnset, + [SPECIES_SKARMORY] = sSkarmoryLevelUpLearnset, + [SPECIES_HOUNDOUR] = sHoundourLevelUpLearnset, + [SPECIES_HOUNDOOM] = sHoundoomLevelUpLearnset, + [SPECIES_KINGDRA] = sKingdraLevelUpLearnset, + [SPECIES_PHANPY] = sPhanpyLevelUpLearnset, + [SPECIES_DONPHAN] = sDonphanLevelUpLearnset, + [SPECIES_PORYGON2] = sPorygon2LevelUpLearnset, + [SPECIES_STANTLER] = sStantlerLevelUpLearnset, + [SPECIES_SMEARGLE] = sSmeargleLevelUpLearnset, + [SPECIES_TYROGUE] = sTyrogueLevelUpLearnset, + [SPECIES_HITMONTOP] = sHitmontopLevelUpLearnset, + [SPECIES_SMOOCHUM] = sSmoochumLevelUpLearnset, + [SPECIES_ELEKID] = sElekidLevelUpLearnset, + [SPECIES_MAGBY] = sMagbyLevelUpLearnset, + [SPECIES_MILTANK] = sMiltankLevelUpLearnset, + [SPECIES_BLISSEY] = sBlisseyLevelUpLearnset, + [SPECIES_RAIKOU] = sRaikouLevelUpLearnset, + [SPECIES_ENTEI] = sEnteiLevelUpLearnset, + [SPECIES_SUICUNE] = sSuicuneLevelUpLearnset, + [SPECIES_LARVITAR] = sLarvitarLevelUpLearnset, + [SPECIES_PUPITAR] = sPupitarLevelUpLearnset, + [SPECIES_TYRANITAR] = sTyranitarLevelUpLearnset, + [SPECIES_LUGIA] = sLugiaLevelUpLearnset, + [SPECIES_HO_OH] = sHoOhLevelUpLearnset, + [SPECIES_CELEBI] = sCelebiLevelUpLearnset, + [SPECIES_OLD_UNOWN_B] = sSpecies252LevelUpLearnset, + [SPECIES_OLD_UNOWN_C] = sSpecies253LevelUpLearnset, + [SPECIES_OLD_UNOWN_D] = sSpecies254LevelUpLearnset, + [SPECIES_OLD_UNOWN_E] = sSpecies255LevelUpLearnset, + [SPECIES_OLD_UNOWN_F] = sSpecies256LevelUpLearnset, + [SPECIES_OLD_UNOWN_G] = sSpecies257LevelUpLearnset, + [SPECIES_OLD_UNOWN_H] = sSpecies258LevelUpLearnset, + [SPECIES_OLD_UNOWN_I] = sSpecies259LevelUpLearnset, + [SPECIES_OLD_UNOWN_J] = sSpecies260LevelUpLearnset, + [SPECIES_OLD_UNOWN_K] = sSpecies261LevelUpLearnset, + [SPECIES_OLD_UNOWN_L] = sSpecies262LevelUpLearnset, + [SPECIES_OLD_UNOWN_M] = sSpecies263LevelUpLearnset, + [SPECIES_OLD_UNOWN_N] = sSpecies264LevelUpLearnset, + [SPECIES_OLD_UNOWN_O] = sSpecies265LevelUpLearnset, + [SPECIES_OLD_UNOWN_P] = sSpecies266LevelUpLearnset, + [SPECIES_OLD_UNOWN_Q] = sSpecies267LevelUpLearnset, + [SPECIES_OLD_UNOWN_R] = sSpecies268LevelUpLearnset, + [SPECIES_OLD_UNOWN_S] = sSpecies269LevelUpLearnset, + [SPECIES_OLD_UNOWN_T] = sSpecies270LevelUpLearnset, + [SPECIES_OLD_UNOWN_U] = sSpecies271LevelUpLearnset, + [SPECIES_OLD_UNOWN_V] = sSpecies272LevelUpLearnset, + [SPECIES_OLD_UNOWN_W] = sSpecies273LevelUpLearnset, + [SPECIES_OLD_UNOWN_X] = sSpecies274LevelUpLearnset, + [SPECIES_OLD_UNOWN_Y] = sSpecies275LevelUpLearnset, + [SPECIES_OLD_UNOWN_Z] = sSpecies276LevelUpLearnset, + [SPECIES_TREECKO] = sTreeckoLevelUpLearnset, + [SPECIES_GROVYLE] = sGrovyleLevelUpLearnset, + [SPECIES_SCEPTILE] = sSceptileLevelUpLearnset, + [SPECIES_TORCHIC] = sTorchicLevelUpLearnset, + [SPECIES_COMBUSKEN] = sCombuskenLevelUpLearnset, + [SPECIES_BLAZIKEN] = sBlazikenLevelUpLearnset, + [SPECIES_MUDKIP] = sMudkipLevelUpLearnset, + [SPECIES_MARSHTOMP] = sMarshtompLevelUpLearnset, + [SPECIES_SWAMPERT] = sSwampertLevelUpLearnset, + [SPECIES_POOCHYENA] = sPoochyenaLevelUpLearnset, + [SPECIES_MIGHTYENA] = sMightyenaLevelUpLearnset, + [SPECIES_ZIGZAGOON] = sZigzagoonLevelUpLearnset, + [SPECIES_LINOONE] = sLinooneLevelUpLearnset, + [SPECIES_WURMPLE] = sWurmpleLevelUpLearnset, + [SPECIES_SILCOON] = sSilcoonLevelUpLearnset, + [SPECIES_BEAUTIFLY] = sBeautiflyLevelUpLearnset, + [SPECIES_CASCOON] = sCascoonLevelUpLearnset, + [SPECIES_DUSTOX] = sDustoxLevelUpLearnset, + [SPECIES_LOTAD] = sLotadLevelUpLearnset, + [SPECIES_LOMBRE] = sLombreLevelUpLearnset, + [SPECIES_LUDICOLO] = sLudicoloLevelUpLearnset, + [SPECIES_SEEDOT] = sSeedotLevelUpLearnset, + [SPECIES_NUZLEAF] = sNuzleafLevelUpLearnset, + [SPECIES_SHIFTRY] = sShiftryLevelUpLearnset, + [SPECIES_NINCADA] = sNincadaLevelUpLearnset, + [SPECIES_NINJASK] = sNinjaskLevelUpLearnset, + [SPECIES_SHEDINJA] = sShedinjaLevelUpLearnset, + [SPECIES_TAILLOW] = sTaillowLevelUpLearnset, + [SPECIES_SWELLOW] = sSwellowLevelUpLearnset, + [SPECIES_SHROOMISH] = sShroomishLevelUpLearnset, + [SPECIES_BRELOOM] = sBreloomLevelUpLearnset, + [SPECIES_SPINDA] = sSpindaLevelUpLearnset, + [SPECIES_WINGULL] = sWingullLevelUpLearnset, + [SPECIES_PELIPPER] = sPelipperLevelUpLearnset, + [SPECIES_SURSKIT] = sSurskitLevelUpLearnset, + [SPECIES_MASQUERAIN] = sMasquerainLevelUpLearnset, + [SPECIES_WAILMER] = sWailmerLevelUpLearnset, + [SPECIES_WAILORD] = sWailordLevelUpLearnset, + [SPECIES_SKITTY] = sSkittyLevelUpLearnset, + [SPECIES_DELCATTY] = sDelcattyLevelUpLearnset, + [SPECIES_KECLEON] = sKecleonLevelUpLearnset, + [SPECIES_BALTOY] = sBaltoyLevelUpLearnset, + [SPECIES_CLAYDOL] = sClaydolLevelUpLearnset, + [SPECIES_NOSEPASS] = sNosepassLevelUpLearnset, + [SPECIES_TORKOAL] = sTorkoalLevelUpLearnset, + [SPECIES_SABLEYE] = sSableyeLevelUpLearnset, + [SPECIES_BARBOACH] = sBarboachLevelUpLearnset, + [SPECIES_WHISCASH] = sWhiscashLevelUpLearnset, + [SPECIES_LUVDISC] = sLuvdiscLevelUpLearnset, + [SPECIES_CORPHISH] = sCorphishLevelUpLearnset, + [SPECIES_CRAWDAUNT] = sCrawdauntLevelUpLearnset, + [SPECIES_FEEBAS] = sFeebasLevelUpLearnset, + [SPECIES_MILOTIC] = sMiloticLevelUpLearnset, + [SPECIES_CARVANHA] = sCarvanhaLevelUpLearnset, + [SPECIES_SHARPEDO] = sSharpedoLevelUpLearnset, + [SPECIES_TRAPINCH] = sTrapinchLevelUpLearnset, + [SPECIES_VIBRAVA] = sVibravaLevelUpLearnset, + [SPECIES_FLYGON] = sFlygonLevelUpLearnset, + [SPECIES_MAKUHITA] = sMakuhitaLevelUpLearnset, + [SPECIES_HARIYAMA] = sHariyamaLevelUpLearnset, + [SPECIES_ELECTRIKE] = sElectrikeLevelUpLearnset, + [SPECIES_MANECTRIC] = sManectricLevelUpLearnset, + [SPECIES_NUMEL] = sNumelLevelUpLearnset, + [SPECIES_CAMERUPT] = sCameruptLevelUpLearnset, + [SPECIES_SPHEAL] = sSphealLevelUpLearnset, + [SPECIES_SEALEO] = sSealeoLevelUpLearnset, + [SPECIES_WALREIN] = sWalreinLevelUpLearnset, + [SPECIES_CACNEA] = sCacneaLevelUpLearnset, + [SPECIES_CACTURNE] = sCacturneLevelUpLearnset, + [SPECIES_SNORUNT] = sSnoruntLevelUpLearnset, + [SPECIES_GLALIE] = sGlalieLevelUpLearnset, + [SPECIES_LUNATONE] = sLunatoneLevelUpLearnset, + [SPECIES_SOLROCK] = sSolrockLevelUpLearnset, + [SPECIES_AZURILL] = sAzurillLevelUpLearnset, + [SPECIES_SPOINK] = sSpoinkLevelUpLearnset, + [SPECIES_GRUMPIG] = sGrumpigLevelUpLearnset, + [SPECIES_PLUSLE] = sPlusleLevelUpLearnset, + [SPECIES_MINUN] = sMinunLevelUpLearnset, + [SPECIES_MAWILE] = sMawileLevelUpLearnset, + [SPECIES_MEDITITE] = sMedititeLevelUpLearnset, + [SPECIES_MEDICHAM] = sMedichamLevelUpLearnset, + [SPECIES_SWABLU] = sSwabluLevelUpLearnset, + [SPECIES_ALTARIA] = sAltariaLevelUpLearnset, + [SPECIES_WYNAUT] = sWynautLevelUpLearnset, + [SPECIES_DUSKULL] = sDuskullLevelUpLearnset, + [SPECIES_DUSCLOPS] = sDusclopsLevelUpLearnset, + [SPECIES_ROSELIA] = sRoseliaLevelUpLearnset, + [SPECIES_SLAKOTH] = sSlakothLevelUpLearnset, + [SPECIES_VIGOROTH] = sVigorothLevelUpLearnset, + [SPECIES_SLAKING] = sSlakingLevelUpLearnset, + [SPECIES_GULPIN] = sGulpinLevelUpLearnset, + [SPECIES_SWALOT] = sSwalotLevelUpLearnset, + [SPECIES_TROPIUS] = sTropiusLevelUpLearnset, + [SPECIES_WHISMUR] = sWhismurLevelUpLearnset, + [SPECIES_LOUDRED] = sLoudredLevelUpLearnset, + [SPECIES_EXPLOUD] = sExploudLevelUpLearnset, + [SPECIES_CLAMPERL] = sClamperlLevelUpLearnset, + [SPECIES_HUNTAIL] = sHuntailLevelUpLearnset, + [SPECIES_GOREBYSS] = sGorebyssLevelUpLearnset, + [SPECIES_ABSOL] = sAbsolLevelUpLearnset, + [SPECIES_SHUPPET] = sShuppetLevelUpLearnset, + [SPECIES_BANETTE] = sBanetteLevelUpLearnset, + [SPECIES_SEVIPER] = sSeviperLevelUpLearnset, + [SPECIES_ZANGOOSE] = sZangooseLevelUpLearnset, + [SPECIES_RELICANTH] = sRelicanthLevelUpLearnset, + [SPECIES_ARON] = sAronLevelUpLearnset, + [SPECIES_LAIRON] = sLaironLevelUpLearnset, + [SPECIES_AGGRON] = sAggronLevelUpLearnset, + [SPECIES_CASTFORM] = sCastformLevelUpLearnset, + [SPECIES_VOLBEAT] = sVolbeatLevelUpLearnset, + [SPECIES_ILLUMISE] = sIllumiseLevelUpLearnset, + [SPECIES_LILEEP] = sLileepLevelUpLearnset, + [SPECIES_CRADILY] = sCradilyLevelUpLearnset, + [SPECIES_ANORITH] = sAnorithLevelUpLearnset, + [SPECIES_ARMALDO] = sArmaldoLevelUpLearnset, + [SPECIES_RALTS] = sRaltsLevelUpLearnset, + [SPECIES_KIRLIA] = sKirliaLevelUpLearnset, + [SPECIES_GARDEVOIR] = sGardevoirLevelUpLearnset, + [SPECIES_BAGON] = sBagonLevelUpLearnset, + [SPECIES_SHELGON] = sShelgonLevelUpLearnset, + [SPECIES_SALAMENCE] = sSalamenceLevelUpLearnset, + [SPECIES_BELDUM] = sBeldumLevelUpLearnset, + [SPECIES_METANG] = sMetangLevelUpLearnset, + [SPECIES_METAGROSS] = sMetagrossLevelUpLearnset, + [SPECIES_REGIROCK] = sRegirockLevelUpLearnset, + [SPECIES_REGICE] = sRegiceLevelUpLearnset, + [SPECIES_REGISTEEL] = sRegisteelLevelUpLearnset, + [SPECIES_KYOGRE] = sKyogreLevelUpLearnset, + [SPECIES_GROUDON] = sGroudonLevelUpLearnset, + [SPECIES_RAYQUAZA] = sRayquazaLevelUpLearnset, + [SPECIES_LATIAS] = sLatiasLevelUpLearnset, + [SPECIES_LATIOS] = sLatiosLevelUpLearnset, + [SPECIES_JIRACHI] = sJirachiLevelUpLearnset, + [SPECIES_DEOXYS] = sDeoxysLevelUpLearnset, + [SPECIES_CHIMECHO] = sChimechoLevelUpLearnset, }; #endif //POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H diff --git a/include/data/pokemon/level_up_learnsets.h b/include/data/pokemon/level_up_learnsets.h index 4035dc66a2..062873aee4 100644 --- a/include/data/pokemon/level_up_learnsets.h +++ b/include/data/pokemon/level_up_learnsets.h @@ -4,7 +4,7 @@ #define LEVEL_UP_MOVE(lvl, move) ((lvl << 9) | move) #define LEVEL_UP_END 0xffff -const u16 gBulbasaurLevelUpLearnset[] = { +static const u16 sBulbasaurLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_GROWL), LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), @@ -19,7 +19,7 @@ const u16 gBulbasaurLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gIvysaurLevelUpLearnset[] = { +static const u16 sIvysaurLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), @@ -36,7 +36,7 @@ const u16 gIvysaurLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gVenusaurLevelUpLearnset[] = { +static const u16 sVenusaurLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), @@ -54,7 +54,7 @@ const u16 gVenusaurLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCharmanderLevelUpLearnset[] = { +static const u16 sCharmanderLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 7, MOVE_EMBER), @@ -68,7 +68,7 @@ const u16 gCharmanderLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCharmeleonLevelUpLearnset[] = { +static const u16 sCharmeleonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_EMBER), @@ -83,7 +83,7 @@ const u16 gCharmeleonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCharizardLevelUpLearnset[] = { +static const u16 sCharizardLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_EMBER), @@ -100,7 +100,7 @@ const u16 gCharizardLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSquirtleLevelUpLearnset[] = { +static const u16 sSquirtleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 7, MOVE_BUBBLE), @@ -115,7 +115,7 @@ const u16 gSquirtleLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWartortleLevelUpLearnset[] = { +static const u16 sWartortleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_BUBBLE), @@ -132,7 +132,7 @@ const u16 gWartortleLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gBlastoiseLevelUpLearnset[] = { +static const u16 sBlastoiseLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_BUBBLE), @@ -150,19 +150,19 @@ const u16 gBlastoiseLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCaterpieLevelUpLearnset[] = { +static const u16 sCaterpieLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), LEVEL_UP_END }; -const u16 gMetapodLevelUpLearnset[] = { +static const u16 sMetapodLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 7, MOVE_HARDEN), LEVEL_UP_END }; -const u16 gButterfreeLevelUpLearnset[] = { +static const u16 sButterfreeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE(10, MOVE_CONFUSION), LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), @@ -177,19 +177,19 @@ const u16 gButterfreeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWeedleLevelUpLearnset[] = { +static const u16 sWeedleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), LEVEL_UP_END }; -const u16 gKakunaLevelUpLearnset[] = { +static const u16 sKakunaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 7, MOVE_HARDEN), LEVEL_UP_END }; -const u16 gBeedrillLevelUpLearnset[] = { +static const u16 sBeedrillLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK), LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), @@ -202,7 +202,7 @@ const u16 gBeedrillLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPidgeyLevelUpLearnset[] = { +static const u16 sPidgeyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 9, MOVE_GUST), @@ -215,7 +215,7 @@ const u16 gPidgeyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPidgeottoLevelUpLearnset[] = { +static const u16 sPidgeottoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_GUST), @@ -230,7 +230,7 @@ const u16 gPidgeottoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPidgeotLevelUpLearnset[] = { +static const u16 sPidgeotLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_GUST), @@ -246,7 +246,7 @@ const u16 gPidgeotLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRattataLevelUpLearnset[] = { +static const u16 sRattataLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), @@ -258,7 +258,7 @@ const u16 gRattataLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRaticateLevelUpLearnset[] = { +static const u16 sRaticateLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), @@ -271,7 +271,7 @@ const u16 gRaticateLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSpearowLevelUpLearnset[] = { +static const u16 sSpearowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 7, MOVE_LEER), @@ -284,7 +284,7 @@ const u16 gSpearowLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gFearowLevelUpLearnset[] = { +static const u16 sFearowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -298,7 +298,7 @@ const u16 gFearowLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gEkansLevelUpLearnset[] = { +static const u16 sEkansLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WRAP), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 8, MOVE_POISON_STING), @@ -313,7 +313,7 @@ const u16 gEkansLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gArbokLevelUpLearnset[] = { +static const u16 sArbokLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WRAP), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_POISON_STING), @@ -330,7 +330,7 @@ const u16 gArbokLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPikachuLevelUpLearnset[] = { +static const u16 sPikachuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), @@ -345,7 +345,7 @@ const u16 gPikachuLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRaichuLevelUpLearnset[] = { +static const u16 sRaichuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), @@ -353,7 +353,7 @@ const u16 gRaichuLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSandshrewLevelUpLearnset[] = { +static const u16 sSandshrewLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), @@ -366,7 +366,7 @@ const u16 gSandshrewLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSandslashLevelUpLearnset[] = { +static const u16 sSandslashLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), @@ -381,7 +381,7 @@ const u16 gSandslashLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNidoranFLevelUpLearnset[] = { +static const u16 sNidoranFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), @@ -395,7 +395,7 @@ const u16 gNidoranFLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNidorinaLevelUpLearnset[] = { +static const u16 sNidorinaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), @@ -409,7 +409,7 @@ const u16 gNidorinaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNidoqueenLevelUpLearnset[] = { +static const u16 sNidoqueenLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), @@ -418,7 +418,7 @@ const u16 gNidoqueenLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNidoranMLevelUpLearnset[] = { +static const u16 sNidoranMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), @@ -432,7 +432,7 @@ const u16 gNidoranMLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNidorinoLevelUpLearnset[] = { +static const u16 sNidorinoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), @@ -446,7 +446,7 @@ const u16 gNidorinoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNidokingLevelUpLearnset[] = { +static const u16 sNidokingLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), @@ -455,7 +455,7 @@ const u16 gNidokingLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gClefairyLevelUpLearnset[] = { +static const u16 sClefairyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_ENCORE), @@ -472,7 +472,7 @@ const u16 gClefairyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gClefableLevelUpLearnset[] = { +static const u16 sClefableLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SING), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), @@ -480,7 +480,7 @@ const u16 gClefableLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gVulpixLevelUpLearnset[] = { +static const u16 sVulpixLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 9, MOVE_ROAR), @@ -495,7 +495,7 @@ const u16 gVulpixLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNinetalesLevelUpLearnset[] = { +static const u16 sNinetalesLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), @@ -504,7 +504,7 @@ const u16 gNinetalesLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gJigglypuffLevelUpLearnset[] = { +static const u16 sJigglypuffLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SING), LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 9, MOVE_POUND), @@ -519,7 +519,7 @@ const u16 gJigglypuffLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWigglytuffLevelUpLearnset[] = { +static const u16 sWigglytuffLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SING), LEVEL_UP_MOVE( 1, MOVE_DISABLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -527,7 +527,7 @@ const u16 gWigglytuffLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gZubatLevelUpLearnset[] = { +static const u16 sZubatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), LEVEL_UP_MOVE(11, MOVE_ASTONISH), @@ -541,7 +541,7 @@ const u16 gZubatLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGolbatLevelUpLearnset[] = { +static const u16 sGolbatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCREECH), LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), @@ -558,7 +558,7 @@ const u16 gGolbatLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gOddishLevelUpLearnset[] = { +static const u16 sOddishLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT), LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), @@ -570,7 +570,7 @@ const u16 gOddishLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGloomLevelUpLearnset[] = { +static const u16 sGloomLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), @@ -584,7 +584,7 @@ const u16 gGloomLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gVileplumeLevelUpLearnset[] = { +static const u16 sVileplumeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), @@ -593,7 +593,7 @@ const u16 gVileplumeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gParasLevelUpLearnset[] = { +static const u16 sParasLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), @@ -606,7 +606,7 @@ const u16 gParasLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gParasectLevelUpLearnset[] = { +static const u16 sParasectLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), @@ -621,7 +621,7 @@ const u16 gParasectLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gVenonatLevelUpLearnset[] = { +static const u16 sVenonatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DISABLE), LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), @@ -636,7 +636,7 @@ const u16 gVenonatLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gVenomothLevelUpLearnset[] = { +static const u16 sVenomothLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SILVER_WIND), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DISABLE), @@ -654,7 +654,7 @@ const u16 gVenomothLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDiglettLevelUpLearnset[] = { +static const u16 sDiglettLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 5, MOVE_GROWL), @@ -667,7 +667,7 @@ const u16 gDiglettLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDugtrioLevelUpLearnset[] = { +static const u16 sDugtrioLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), @@ -683,7 +683,7 @@ const u16 gDugtrioLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMeowthLevelUpLearnset[] = { +static const u16 sMeowthLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE(11, MOVE_BITE), @@ -696,7 +696,7 @@ const u16 gMeowthLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPersianLevelUpLearnset[] = { +static const u16 sPersianLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_BITE), @@ -710,7 +710,7 @@ const u16 gPersianLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPsyduckLevelUpLearnset[] = { +static const u16 sPsyduckLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -723,7 +723,7 @@ const u16 gPsyduckLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGolduckLevelUpLearnset[] = { +static const u16 sGolduckLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -738,7 +738,7 @@ const u16 gGolduckLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMankeyLevelUpLearnset[] = { +static const u16 sMankeyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), @@ -752,7 +752,7 @@ const u16 gMankeyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPrimeapeLevelUpLearnset[] = { +static const u16 sPrimeapeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), @@ -769,7 +769,7 @@ const u16 gPrimeapeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGrowlitheLevelUpLearnset[] = { +static const u16 sGrowlitheLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_ROAR), LEVEL_UP_MOVE( 7, MOVE_EMBER), @@ -783,7 +783,7 @@ const u16 gGrowlitheLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gArcanineLevelUpLearnset[] = { +static const u16 sArcanineLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_ROAR), LEVEL_UP_MOVE( 1, MOVE_EMBER), @@ -792,7 +792,7 @@ const u16 gArcanineLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPoliwagLevelUpLearnset[] = { +static const u16 sPoliwagLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), LEVEL_UP_MOVE(13, MOVE_WATER_GUN), @@ -804,7 +804,7 @@ const u16 gPoliwagLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPoliwhirlLevelUpLearnset[] = { +static const u16 sPoliwhirlLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -818,7 +818,7 @@ const u16 gPoliwhirlLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPoliwrathLevelUpLearnset[] = { +static const u16 sPoliwrathLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), @@ -828,12 +828,12 @@ const u16 gPoliwrathLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAbraLevelUpLearnset[] = { +static const u16 sAbraLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TELEPORT), LEVEL_UP_END }; -const u16 gKadabraLevelUpLearnset[] = { +static const u16 sKadabraLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TELEPORT), LEVEL_UP_MOVE( 1, MOVE_KINESIS), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), @@ -849,7 +849,7 @@ const u16 gKadabraLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAlakazamLevelUpLearnset[] = { +static const u16 sAlakazamLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TELEPORT), LEVEL_UP_MOVE( 1, MOVE_KINESIS), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), @@ -865,7 +865,7 @@ const u16 gAlakazamLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMachopLevelUpLearnset[] = { +static const u16 sMachopLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), @@ -881,7 +881,7 @@ const u16 gMachopLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMachokeLevelUpLearnset[] = { +static const u16 sMachokeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), @@ -898,7 +898,7 @@ const u16 gMachokeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMachampLevelUpLearnset[] = { +static const u16 sMachampLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), @@ -915,7 +915,7 @@ const u16 gMachampLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gBellsproutLevelUpLearnset[] = { +static const u16 sBellsproutLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 6, MOVE_GROWTH), LEVEL_UP_MOVE(11, MOVE_WRAP), @@ -929,7 +929,7 @@ const u16 gBellsproutLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWeepinbellLevelUpLearnset[] = { +static const u16 sWeepinbellLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 1, MOVE_GROWTH), LEVEL_UP_MOVE( 1, MOVE_WRAP), @@ -945,7 +945,7 @@ const u16 gWeepinbellLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gVictreebelLevelUpLearnset[] = { +static const u16 sVictreebelLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), @@ -953,7 +953,7 @@ const u16 gVictreebelLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTentacoolLevelUpLearnset[] = { +static const u16 sTentacoolLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), LEVEL_UP_MOVE(12, MOVE_CONSTRICT), @@ -966,7 +966,7 @@ const u16 gTentacoolLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTentacruelLevelUpLearnset[] = { +static const u16 sTentacruelLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), @@ -981,7 +981,7 @@ const u16 gTentacruelLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGeodudeLevelUpLearnset[] = { +static const u16 sGeodudeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), @@ -996,7 +996,7 @@ const u16 gGeodudeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGravelerLevelUpLearnset[] = { +static const u16 sGravelerLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), @@ -1013,7 +1013,7 @@ const u16 gGravelerLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGolemLevelUpLearnset[] = { +static const u16 sGolemLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), @@ -1030,7 +1030,7 @@ const u16 gGolemLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPonytaLevelUpLearnset[] = { +static const u16 sPonytaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_GROWL), LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), @@ -1044,7 +1044,7 @@ const u16 gPonytaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRapidashLevelUpLearnset[] = { +static const u16 sRapidashLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -1062,7 +1062,7 @@ const u16 gRapidashLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSlowpokeLevelUpLearnset[] = { +static const u16 sSlowpokeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 1, MOVE_YAWN), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -1076,7 +1076,7 @@ const u16 gSlowpokeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSlowbroLevelUpLearnset[] = { +static const u16 sSlowbroLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 1, MOVE_YAWN), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -1092,7 +1092,7 @@ const u16 gSlowbroLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMagnemiteLevelUpLearnset[] = { +static const u16 sMagnemiteLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), @@ -1107,7 +1107,7 @@ const u16 gMagnemiteLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMagnetonLevelUpLearnset[] = { +static const u16 sMagnetonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), @@ -1124,7 +1124,7 @@ const u16 gMagnetonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gFarfetchdLevelUpLearnset[] = { +static const u16 sFarfetchdLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), LEVEL_UP_MOVE(11, MOVE_LEER), @@ -1138,7 +1138,7 @@ const u16 gFarfetchdLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDoduoLevelUpLearnset[] = { +static const u16 sDoduoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 9, MOVE_PURSUIT), @@ -1151,7 +1151,7 @@ const u16 gDoduoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDodrioLevelUpLearnset[] = { +static const u16 sDodrioLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_PURSUIT), @@ -1166,7 +1166,7 @@ const u16 gDodrioLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSeelLevelUpLearnset[] = { +static const u16 sSeelLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), LEVEL_UP_MOVE( 9, MOVE_GROWL), LEVEL_UP_MOVE(17, MOVE_ICY_WIND), @@ -1178,7 +1178,7 @@ const u16 gSeelLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDewgongLevelUpLearnset[] = { +static const u16 sDewgongLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), @@ -1194,7 +1194,7 @@ const u16 gDewgongLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGrimerLevelUpLearnset[] = { +static const u16 sGrimerLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -1208,7 +1208,7 @@ const u16 gGrimerLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMukLevelUpLearnset[] = { +static const u16 sMukLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_HARDEN), @@ -1223,7 +1223,7 @@ const u16 gMukLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gShellderLevelUpLearnset[] = { +static const u16 sShellderLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC), @@ -1235,7 +1235,7 @@ const u16 gShellderLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCloysterLevelUpLearnset[] = { +static const u16 sCloysterLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), @@ -1245,7 +1245,7 @@ const u16 gCloysterLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGastlyLevelUpLearnset[] = { +static const u16 sGastlyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), LEVEL_UP_MOVE( 1, MOVE_LICK), LEVEL_UP_MOVE( 8, MOVE_SPITE), @@ -1258,7 +1258,7 @@ const u16 gGastlyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHaunterLevelUpLearnset[] = { +static const u16 sHaunterLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), LEVEL_UP_MOVE( 1, MOVE_LICK), LEVEL_UP_MOVE( 1, MOVE_SPITE), @@ -1273,7 +1273,7 @@ const u16 gHaunterLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGengarLevelUpLearnset[] = { +static const u16 sGengarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), LEVEL_UP_MOVE( 1, MOVE_LICK), LEVEL_UP_MOVE( 1, MOVE_SPITE), @@ -1288,7 +1288,7 @@ const u16 gGengarLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gOnixLevelUpLearnset[] = { +static const u16 sOnixLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SCREECH), LEVEL_UP_MOVE( 9, MOVE_BIND), @@ -1303,7 +1303,7 @@ const u16 gOnixLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDrowzeeLevelUpLearnset[] = { +static const u16 sDrowzeeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), LEVEL_UP_MOVE(10, MOVE_DISABLE), @@ -1317,7 +1317,7 @@ const u16 gDrowzeeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHypnoLevelUpLearnset[] = { +static const u16 sHypnoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), LEVEL_UP_MOVE( 1, MOVE_DISABLE), @@ -1333,7 +1333,7 @@ const u16 gHypnoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gKrabbyLevelUpLearnset[] = { +static const u16 sKrabbyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 5, MOVE_LEER), LEVEL_UP_MOVE(12, MOVE_VICE_GRIP), @@ -1346,7 +1346,7 @@ const u16 gKrabbyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gKinglerLevelUpLearnset[] = { +static const u16 sKinglerLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP), @@ -1361,7 +1361,7 @@ const u16 gKinglerLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gVoltorbLevelUpLearnset[] = { +static const u16 sVoltorbLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CHARGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 8, MOVE_SCREECH), @@ -1376,7 +1376,7 @@ const u16 gVoltorbLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gElectrodeLevelUpLearnset[] = { +static const u16 sElectrodeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CHARGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SCREECH), @@ -1393,7 +1393,7 @@ const u16 gElectrodeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gExeggcuteLevelUpLearnset[] = { +static const u16 sExeggcuteLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_UPROAR), LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), @@ -1407,7 +1407,7 @@ const u16 gExeggcuteLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gExeggutorLevelUpLearnset[] = { +static const u16 sExeggutorLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), @@ -1416,7 +1416,7 @@ const u16 gExeggutorLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCuboneLevelUpLearnset[] = { +static const u16 sCuboneLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB), @@ -1432,7 +1432,7 @@ const u16 gCuboneLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMarowakLevelUpLearnset[] = { +static const u16 sMarowakLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), @@ -1451,7 +1451,7 @@ const u16 gMarowakLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHitmonleeLevelUpLearnset[] = { +static const u16 sHitmonleeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_REVENGE), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), LEVEL_UP_MOVE( 6, MOVE_MEDITATE), @@ -1468,7 +1468,7 @@ const u16 gHitmonleeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHitmonchanLevelUpLearnset[] = { +static const u16 sHitmonchanLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_REVENGE), LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), LEVEL_UP_MOVE( 7, MOVE_AGILITY), @@ -1484,7 +1484,7 @@ const u16 gHitmonchanLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLickitungLevelUpLearnset[] = { +static const u16 sLickitungLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LICK), LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), LEVEL_UP_MOVE(12, MOVE_DEFENSE_CURL), @@ -1498,7 +1498,7 @@ const u16 gLickitungLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gKoffingLevelUpLearnset[] = { +static const u16 sKoffingLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_SMOG), @@ -1512,7 +1512,7 @@ const u16 gKoffingLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWeezingLevelUpLearnset[] = { +static const u16 sWeezingLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SMOG), @@ -1528,7 +1528,7 @@ const u16 gWeezingLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRhyhornLevelUpLearnset[] = { +static const u16 sRhyhornLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE(10, MOVE_STOMP), @@ -1542,7 +1542,7 @@ const u16 gRhyhornLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRhydonLevelUpLearnset[] = { +static const u16 sRhydonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_STOMP), @@ -1558,7 +1558,7 @@ const u16 gRhydonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gChanseyLevelUpLearnset[] = { +static const u16 sChanseyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -1574,7 +1574,7 @@ const u16 gChanseyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTangelaLevelUpLearnset[] = { +static const u16 sTangelaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_INGRAIN), LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER), @@ -1590,7 +1590,7 @@ const u16 gTangelaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gKangaskhanLevelUpLearnset[] = { +static const u16 sKangaskhanLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 7, MOVE_BITE), @@ -1604,7 +1604,7 @@ const u16 gKangaskhanLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHorseaLevelUpLearnset[] = { +static const u16 sHorseaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), LEVEL_UP_MOVE(15, MOVE_LEER), @@ -1616,7 +1616,7 @@ const u16 gHorseaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSeadraLevelUpLearnset[] = { +static const u16 sSeadraLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -1631,7 +1631,7 @@ const u16 gSeadraLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGoldeenLevelUpLearnset[] = { +static const u16 sGoldeenLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), @@ -1645,7 +1645,7 @@ const u16 gGoldeenLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSeakingLevelUpLearnset[] = { +static const u16 sSeakingLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), @@ -1660,7 +1660,7 @@ const u16 gSeakingLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gStaryuLevelUpLearnset[] = { +static const u16 sStaryuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), @@ -1676,7 +1676,7 @@ const u16 gStaryuLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gStarmieLevelUpLearnset[] = { +static const u16 sStarmieLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), LEVEL_UP_MOVE( 1, MOVE_RECOVER), @@ -1685,7 +1685,7 @@ const u16 gStarmieLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMrmimeLevelUpLearnset[] = { +static const u16 sMrmimeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BARRIER), LEVEL_UP_MOVE( 5, MOVE_CONFUSION), LEVEL_UP_MOVE( 9, MOVE_SUBSTITUTE), @@ -1704,7 +1704,7 @@ const u16 gMrmimeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gScytherLevelUpLearnset[] = { +static const u16 sScytherLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), @@ -1719,7 +1719,7 @@ const u16 gScytherLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gJynxLevelUpLearnset[] = { +static const u16 sJynxLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_LICK), LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS), @@ -1736,7 +1736,7 @@ const u16 gJynxLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gElectabuzzLevelUpLearnset[] = { +static const u16 sElectabuzzLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), @@ -1749,7 +1749,7 @@ const u16 gElectabuzzLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMagmarLevelUpLearnset[] = { +static const u16 sMagmarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_SMOG), @@ -1765,7 +1765,7 @@ const u16 gMagmarLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPinsirLevelUpLearnset[] = { +static const u16 sPinsirLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 7, MOVE_BIND), @@ -1779,7 +1779,7 @@ const u16 gPinsirLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTaurosLevelUpLearnset[] = { +static const u16 sTaurosLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 8, MOVE_RAGE), @@ -1792,14 +1792,14 @@ const u16 gTaurosLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMagikarpLevelUpLearnset[] = { +static const u16 sMagikarpLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE(15, MOVE_TACKLE), LEVEL_UP_MOVE(30, MOVE_FLAIL), LEVEL_UP_END }; -const u16 gGyaradosLevelUpLearnset[] = { +static const u16 sGyaradosLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THRASH), LEVEL_UP_MOVE(20, MOVE_BITE), LEVEL_UP_MOVE(25, MOVE_DRAGON_RAGE), @@ -1812,7 +1812,7 @@ const u16 gGyaradosLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLaprasLevelUpLearnset[] = { +static const u16 sLaprasLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_SING), @@ -1828,12 +1828,12 @@ const u16 gLaprasLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDittoLevelUpLearnset[] = { +static const u16 sDittoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), LEVEL_UP_END }; -const u16 gEeveeLevelUpLearnset[] = { +static const u16 sEeveeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -1846,7 +1846,7 @@ const u16 gEeveeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gVaporeonLevelUpLearnset[] = { +static const u16 sVaporeonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -1861,7 +1861,7 @@ const u16 gVaporeonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gJolteonLevelUpLearnset[] = { +static const u16 sJolteonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -1876,7 +1876,7 @@ const u16 gJolteonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gFlareonLevelUpLearnset[] = { +static const u16 sFlareonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -1891,7 +1891,7 @@ const u16 gFlareonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPorygonLevelUpLearnset[] = { +static const u16 sPorygonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CONVERSION), @@ -1906,7 +1906,7 @@ const u16 gPorygonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gOmanyteLevelUpLearnset[] = { +static const u16 sOmanyteLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), LEVEL_UP_MOVE(13, MOVE_BITE), @@ -1920,7 +1920,7 @@ const u16 gOmanyteLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gOmastarLevelUpLearnset[] = { +static const u16 sOmastarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), LEVEL_UP_MOVE( 1, MOVE_BITE), @@ -1936,7 +1936,7 @@ const u16 gOmastarLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gKabutoLevelUpLearnset[] = { +static const u16 sKabutoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE(13, MOVE_ABSORB), @@ -1950,7 +1950,7 @@ const u16 gKabutoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gKabutopsLevelUpLearnset[] = { +static const u16 sKabutopsLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 1, MOVE_ABSORB), @@ -1966,7 +1966,7 @@ const u16 gKabutopsLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAerodactylLevelUpLearnset[] = { +static const u16 sAerodactylLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), LEVEL_UP_MOVE( 8, MOVE_AGILITY), LEVEL_UP_MOVE(15, MOVE_BITE), @@ -1978,7 +1978,7 @@ const u16 gAerodactylLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSnorlaxLevelUpLearnset[] = { +static const u16 sSnorlaxLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 6, MOVE_AMNESIA), LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL), @@ -1995,7 +1995,7 @@ const u16 gSnorlaxLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gArticunoLevelUpLearnset[] = { +static const u16 sArticunoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE(13, MOVE_MIST), @@ -2008,7 +2008,7 @@ const u16 gArticunoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gZapdosLevelUpLearnset[] = { +static const u16 sZapdosLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), @@ -2021,7 +2021,7 @@ const u16 gZapdosLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMoltresLevelUpLearnset[] = { +static const u16 sMoltresLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE(13, MOVE_FIRE_SPIN), @@ -2034,7 +2034,7 @@ const u16 gMoltresLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDratiniLevelUpLearnset[] = { +static const u16 sDratiniLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WRAP), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), @@ -2048,7 +2048,7 @@ const u16 gDratiniLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDragonairLevelUpLearnset[] = { +static const u16 sDragonairLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WRAP), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), @@ -2064,7 +2064,7 @@ const u16 gDragonairLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDragoniteLevelUpLearnset[] = { +static const u16 sDragoniteLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WRAP), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), @@ -2081,7 +2081,7 @@ const u16 gDragoniteLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMewtwoLevelUpLearnset[] = { +static const u16 sMewtwoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 1, MOVE_DISABLE), LEVEL_UP_MOVE(11, MOVE_BARRIER), @@ -2096,7 +2096,7 @@ const u16 gMewtwoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMewLevelUpLearnset[] = { +static const u16 sMewLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE(10, MOVE_TRANSFORM), LEVEL_UP_MOVE(20, MOVE_MEGA_PUNCH), @@ -2106,7 +2106,7 @@ const u16 gMewLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gChikoritaLevelUpLearnset[] = { +static const u16 sChikoritaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), @@ -2120,7 +2120,7 @@ const u16 gChikoritaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gBayleefLevelUpLearnset[] = { +static const u16 sBayleefLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), @@ -2136,7 +2136,7 @@ const u16 gBayleefLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMeganiumLevelUpLearnset[] = { +static const u16 sMeganiumLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), @@ -2152,7 +2152,7 @@ const u16 gMeganiumLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCyndaquilLevelUpLearnset[] = { +static const u16 sCyndaquilLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), @@ -2164,7 +2164,7 @@ const u16 gCyndaquilLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gQuilavaLevelUpLearnset[] = { +static const u16 sQuilavaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), @@ -2177,7 +2177,7 @@ const u16 gQuilavaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTyphlosionLevelUpLearnset[] = { +static const u16 sTyphlosionLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), @@ -2191,7 +2191,7 @@ const u16 gTyphlosionLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTotodileLevelUpLearnset[] = { +static const u16 sTotodileLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 7, MOVE_RAGE), @@ -2204,7 +2204,7 @@ const u16 gTotodileLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCroconawLevelUpLearnset[] = { +static const u16 sCroconawLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_RAGE), @@ -2218,7 +2218,7 @@ const u16 gCroconawLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gFeraligatrLevelUpLearnset[] = { +static const u16 sFeraligatrLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_RAGE), @@ -2233,7 +2233,7 @@ const u16 gFeraligatrLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSentretLevelUpLearnset[] = { +static const u16 sSentretLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), @@ -2246,7 +2246,7 @@ const u16 gSentretLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gFurretLevelUpLearnset[] = { +static const u16 sFurretLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), @@ -2261,7 +2261,7 @@ const u16 gFurretLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHoothootLevelUpLearnset[] = { +static const u16 sHoothootLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 6, MOVE_FORESIGHT), @@ -2274,7 +2274,7 @@ const u16 gHoothootLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNoctowlLevelUpLearnset[] = { +static const u16 sNoctowlLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), @@ -2289,7 +2289,7 @@ const u16 gNoctowlLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLedybaLevelUpLearnset[] = { +static const u16 sLedybaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), @@ -2303,7 +2303,7 @@ const u16 gLedybaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLedianLevelUpLearnset[] = { +static const u16 sLedianLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), @@ -2318,7 +2318,7 @@ const u16 gLedianLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSpinarakLevelUpLearnset[] = { +static const u16 sSpinarakLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE), @@ -2332,7 +2332,7 @@ const u16 gSpinarakLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAriadosLevelUpLearnset[] = { +static const u16 sAriadosLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), @@ -2348,7 +2348,7 @@ const u16 gAriadosLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCrobatLevelUpLearnset[] = { +static const u16 sCrobatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCREECH), LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), @@ -2365,7 +2365,7 @@ const u16 gCrobatLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gChinchouLevelUpLearnset[] = { +static const u16 sChinchouLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), @@ -2379,7 +2379,7 @@ const u16 gChinchouLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLanturnLevelUpLearnset[] = { +static const u16 sLanturnLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), @@ -2394,7 +2394,7 @@ const u16 gLanturnLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPichuLevelUpLearnset[] = { +static const u16 sPichuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 1, MOVE_CHARM), LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), @@ -2403,7 +2403,7 @@ const u16 gPichuLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCleffaLevelUpLearnset[] = { +static const u16 sCleffaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_CHARM), LEVEL_UP_MOVE( 4, MOVE_ENCORE), @@ -2412,7 +2412,7 @@ const u16 gCleffaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gIgglybuffLevelUpLearnset[] = { +static const u16 sIgglybuffLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SING), LEVEL_UP_MOVE( 1, MOVE_CHARM), LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), @@ -2421,7 +2421,7 @@ const u16 gIgglybuffLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTogepiLevelUpLearnset[] = { +static const u16 sTogepiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_CHARM), LEVEL_UP_MOVE( 6, MOVE_METRONOME), @@ -2435,7 +2435,7 @@ const u16 gTogepiLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTogeticLevelUpLearnset[] = { +static const u16 sTogeticLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_CHARM), LEVEL_UP_MOVE( 6, MOVE_METRONOME), @@ -2449,7 +2449,7 @@ const u16 gTogeticLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNatuLevelUpLearnset[] = { +static const u16 sNatuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE), @@ -2461,7 +2461,7 @@ const u16 gNatuLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gXatuLevelUpLearnset[] = { +static const u16 sXatuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE), @@ -2473,7 +2473,7 @@ const u16 gXatuLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMareepLevelUpLearnset[] = { +static const u16 sMareepLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), @@ -2484,7 +2484,7 @@ const u16 gMareepLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gFlaaffyLevelUpLearnset[] = { +static const u16 sFlaaffyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), @@ -2496,7 +2496,7 @@ const u16 gFlaaffyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAmpharosLevelUpLearnset[] = { +static const u16 sAmpharosLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), @@ -2510,7 +2510,7 @@ const u16 gAmpharosLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gBellossomLevelUpLearnset[] = { +static const u16 sBellossomLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), @@ -2520,7 +2520,7 @@ const u16 gBellossomLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMarillLevelUpLearnset[] = { +static const u16 sMarillLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), @@ -2533,7 +2533,7 @@ const u16 gMarillLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAzumarillLevelUpLearnset[] = { +static const u16 sAzumarillLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -2549,7 +2549,7 @@ const u16 gAzumarillLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSudowoodoLevelUpLearnset[] = { +static const u16 sSudowoodoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), LEVEL_UP_MOVE( 1, MOVE_MIMIC), LEVEL_UP_MOVE( 9, MOVE_FLAIL), @@ -2562,7 +2562,7 @@ const u16 gSudowoodoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPolitoedLevelUpLearnset[] = { +static const u16 sPolitoedLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), @@ -2572,7 +2572,7 @@ const u16 gPolitoedLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHoppipLevelUpLearnset[] = { +static const u16 sHoppipLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -2586,7 +2586,7 @@ const u16 gHoppipLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSkiploomLevelUpLearnset[] = { +static const u16 sSkiploomLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -2603,7 +2603,7 @@ const u16 gSkiploomLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gJumpluffLevelUpLearnset[] = { +static const u16 sJumpluffLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -2620,7 +2620,7 @@ const u16 gJumpluffLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAipomLevelUpLearnset[] = { +static const u16 sAipomLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), @@ -2634,7 +2634,7 @@ const u16 gAipomLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSunkernLevelUpLearnset[] = { +static const u16 sSunkernLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 6, MOVE_GROWTH), LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), @@ -2646,7 +2646,7 @@ const u16 gSunkernLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSunfloraLevelUpLearnset[] = { +static const u16 sSunfloraLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 6, MOVE_GROWTH), @@ -2659,7 +2659,7 @@ const u16 gSunfloraLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gYanmaLevelUpLearnset[] = { +static const u16 sYanmaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), @@ -2673,7 +2673,7 @@ const u16 gYanmaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWooperLevelUpLearnset[] = { +static const u16 sWooperLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE(11, MOVE_SLAM), @@ -2687,7 +2687,7 @@ const u16 gWooperLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gQuagsireLevelUpLearnset[] = { +static const u16 sQuagsireLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE(11, MOVE_SLAM), @@ -2701,7 +2701,7 @@ const u16 gQuagsireLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gEspeonLevelUpLearnset[] = { +static const u16 sEspeonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -2716,7 +2716,7 @@ const u16 gEspeonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gUmbreonLevelUpLearnset[] = { +static const u16 sUmbreonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -2731,7 +2731,7 @@ const u16 gUmbreonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMurkrowLevelUpLearnset[] = { +static const u16 sMurkrowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 9, MOVE_ASTONISH), LEVEL_UP_MOVE(14, MOVE_PURSUIT), @@ -2743,7 +2743,7 @@ const u16 gMurkrowLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSlowkingLevelUpLearnset[] = { +static const u16 sSlowkingLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 1, MOVE_YAWN), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -2757,7 +2757,7 @@ const u16 gSlowkingLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMisdreavusLevelUpLearnset[] = { +static const u16 sMisdreavusLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), LEVEL_UP_MOVE( 6, MOVE_SPITE), @@ -2771,12 +2771,12 @@ const u16 gMisdreavusLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gUnownLevelUpLearnset[] = { +static const u16 sUnownLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), LEVEL_UP_END }; -const u16 gWobbuffetLevelUpLearnset[] = { +static const u16 sWobbuffetLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COUNTER), LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), @@ -2784,7 +2784,7 @@ const u16 gWobbuffetLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGirafarigLevelUpLearnset[] = { +static const u16 sGirafarigLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 7, MOVE_ASTONISH), @@ -2798,7 +2798,7 @@ const u16 gGirafarigLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPinecoLevelUpLearnset[] = { +static const u16 sPinecoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT), @@ -2811,7 +2811,7 @@ const u16 gPinecoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gForretressLevelUpLearnset[] = { +static const u16 sForretressLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), @@ -2825,7 +2825,7 @@ const u16 gForretressLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDunsparceLevelUpLearnset[] = { +static const u16 sDunsparceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_RAGE), LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE(11, MOVE_YAWN), @@ -2838,7 +2838,7 @@ const u16 gDunsparceLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGligarLevelUpLearnset[] = { +static const u16 sGligarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), LEVEL_UP_MOVE(13, MOVE_HARDEN), @@ -2850,7 +2850,7 @@ const u16 gGligarLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSteelixLevelUpLearnset[] = { +static const u16 sSteelixLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SCREECH), LEVEL_UP_MOVE( 9, MOVE_BIND), @@ -2865,7 +2865,7 @@ const u16 gSteelixLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSnubbullLevelUpLearnset[] = { +static const u16 sSnubbullLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), @@ -2879,7 +2879,7 @@ const u16 gSnubbullLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGranbullLevelUpLearnset[] = { +static const u16 sGranbullLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), @@ -2893,7 +2893,7 @@ const u16 gGranbullLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gQwilfishLevelUpLearnset[] = { +static const u16 sQwilfishLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPIKES), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_POISON_STING), @@ -2906,7 +2906,7 @@ const u16 gQwilfishLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gScizorLevelUpLearnset[] = { +static const u16 sScizorLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), @@ -2921,7 +2921,7 @@ const u16 gScizorLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gShuckleLevelUpLearnset[] = { +static const u16 sShuckleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), LEVEL_UP_MOVE( 9, MOVE_WRAP), @@ -2932,7 +2932,7 @@ const u16 gShuckleLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHeracrossLevelUpLearnset[] = { +static const u16 sHeracrossLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 6, MOVE_HORN_ATTACK), @@ -2946,7 +2946,7 @@ const u16 gHeracrossLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSneaselLevelUpLearnset[] = { +static const u16 sSneaselLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_TAUNT), @@ -2962,7 +2962,7 @@ const u16 gSneaselLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTeddiursaLevelUpLearnset[] = { +static const u16 sTeddiursaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 7, MOVE_LICK), @@ -2976,7 +2976,7 @@ const u16 gTeddiursaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gUrsaringLevelUpLearnset[] = { +static const u16 sUrsaringLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_LICK), @@ -2992,7 +2992,7 @@ const u16 gUrsaringLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSlugmaLevelUpLearnset[] = { +static const u16 sSlugmaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_YAWN), LEVEL_UP_MOVE( 1, MOVE_SMOG), LEVEL_UP_MOVE( 8, MOVE_EMBER), @@ -3005,7 +3005,7 @@ const u16 gSlugmaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMagcargoLevelUpLearnset[] = { +static const u16 sMagcargoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_YAWN), LEVEL_UP_MOVE( 1, MOVE_SMOG), LEVEL_UP_MOVE( 1, MOVE_EMBER), @@ -3020,7 +3020,7 @@ const u16 gMagcargoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSwinubLevelUpLearnset[] = { +static const u16 sSwinubLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), @@ -3032,7 +3032,7 @@ const u16 gSwinubLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPiloswineLevelUpLearnset[] = { +static const u16 sPiloswineLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -3047,7 +3047,7 @@ const u16 gPiloswineLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCorsolaLevelUpLearnset[] = { +static const u16 sCorsolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 6, MOVE_HARDEN), LEVEL_UP_MOVE(12, MOVE_BUBBLE), @@ -3061,7 +3061,7 @@ const u16 gCorsolaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRemoraidLevelUpLearnset[] = { +static const u16 sRemoraidLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE(11, MOVE_LOCK_ON), LEVEL_UP_MOVE(22, MOVE_PSYBEAM), @@ -3073,7 +3073,7 @@ const u16 gRemoraidLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gOctilleryLevelUpLearnset[] = { +static const u16 sOctilleryLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE(11, MOVE_CONSTRICT), LEVEL_UP_MOVE(22, MOVE_PSYBEAM), @@ -3086,12 +3086,12 @@ const u16 gOctilleryLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDelibirdLevelUpLearnset[] = { +static const u16 sDelibirdLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PRESENT), LEVEL_UP_END }; -const u16 gMantineLevelUpLearnset[] = { +static const u16 sMantineLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), @@ -3104,7 +3104,7 @@ const u16 gMantineLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSkarmoryLevelUpLearnset[] = { +static const u16 sSkarmoryLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), @@ -3118,7 +3118,7 @@ const u16 gSkarmoryLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHoundourLevelUpLearnset[] = { +static const u16 sHoundourLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 7, MOVE_HOWL), @@ -3132,7 +3132,7 @@ const u16 gHoundourLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHoundoomLevelUpLearnset[] = { +static const u16 sHoundoomLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 1, MOVE_HOWL), @@ -3147,7 +3147,7 @@ const u16 gHoundoomLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gKingdraLevelUpLearnset[] = { +static const u16 sKingdraLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -3162,7 +3162,7 @@ const u16 gKingdraLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPhanpyLevelUpLearnset[] = { +static const u16 sPhanpyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -3175,7 +3175,7 @@ const u16 gPhanpyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDonphanLevelUpLearnset[] = { +static const u16 sDonphanLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -3188,7 +3188,7 @@ const u16 gDonphanLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPorygon2LevelUpLearnset[] = { +static const u16 sPorygon2LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CONVERSION), @@ -3203,7 +3203,7 @@ const u16 gPorygon2LevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gStantlerLevelUpLearnset[] = { +static const u16 sStantlerLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 7, MOVE_LEER), LEVEL_UP_MOVE(13, MOVE_ASTONISH), @@ -3216,7 +3216,7 @@ const u16 gStantlerLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSmeargleLevelUpLearnset[] = { +static const u16 sSmeargleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SKETCH), LEVEL_UP_MOVE(11, MOVE_SKETCH), LEVEL_UP_MOVE(21, MOVE_SKETCH), @@ -3230,12 +3230,12 @@ const u16 gSmeargleLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTyrogueLevelUpLearnset[] = { +static const u16 sTyrogueLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gHitmontopLevelUpLearnset[] = { +static const u16 sHitmontopLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_REVENGE), LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK), LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), @@ -3250,7 +3250,7 @@ const u16 gHitmontopLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSmoochumLevelUpLearnset[] = { +static const u16 sSmoochumLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_LICK), LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), @@ -3265,7 +3265,7 @@ const u16 gSmoochumLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gElekidLevelUpLearnset[] = { +static const u16 sElekidLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH), @@ -3277,7 +3277,7 @@ const u16 gElekidLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMagbyLevelUpLearnset[] = { +static const u16 sMagbyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 7, MOVE_LEER), LEVEL_UP_MOVE(13, MOVE_SMOG), @@ -3290,7 +3290,7 @@ const u16 gMagbyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMiltankLevelUpLearnset[] = { +static const u16 sMiltankLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_GROWL), LEVEL_UP_MOVE( 8, MOVE_DEFENSE_CURL), @@ -3303,7 +3303,7 @@ const u16 gMiltankLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gBlisseyLevelUpLearnset[] = { +static const u16 sBlisseyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), @@ -3319,7 +3319,7 @@ const u16 gBlisseyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRaikouLevelUpLearnset[] = { +static const u16 sRaikouLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), @@ -3333,7 +3333,7 @@ const u16 gRaikouLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gEnteiLevelUpLearnset[] = { +static const u16 sEnteiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE(11, MOVE_EMBER), @@ -3347,7 +3347,7 @@ const u16 gEnteiLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSuicuneLevelUpLearnset[] = { +static const u16 sSuicuneLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE(11, MOVE_BUBBLE_BEAM), @@ -3361,7 +3361,7 @@ const u16 gSuicuneLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLarvitarLevelUpLearnset[] = { +static const u16 sLarvitarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), @@ -3375,7 +3375,7 @@ const u16 gLarvitarLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPupitarLevelUpLearnset[] = { +static const u16 sPupitarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), @@ -3391,7 +3391,7 @@ const u16 gPupitarLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTyranitarLevelUpLearnset[] = { +static const u16 sTyranitarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), @@ -3407,7 +3407,7 @@ const u16 gTyranitarLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLugiaLevelUpLearnset[] = { +static const u16 sLugiaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), LEVEL_UP_MOVE(22, MOVE_GUST), @@ -3421,7 +3421,7 @@ const u16 gLugiaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHoOhLevelUpLearnset[] = { +static const u16 sHoOhLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), LEVEL_UP_MOVE(22, MOVE_GUST), @@ -3435,7 +3435,7 @@ const u16 gHoOhLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCelebiLevelUpLearnset[] = { +static const u16 sCelebiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 1, MOVE_RECOVER), @@ -3448,132 +3448,132 @@ const u16 gCelebiLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSpecies252LevelUpLearnset[] = { +static const u16 sSpecies252LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies253LevelUpLearnset[] = { +static const u16 sSpecies253LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies254LevelUpLearnset[] = { +static const u16 sSpecies254LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies255LevelUpLearnset[] = { +static const u16 sSpecies255LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies256LevelUpLearnset[] = { +static const u16 sSpecies256LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies257LevelUpLearnset[] = { +static const u16 sSpecies257LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies258LevelUpLearnset[] = { +static const u16 sSpecies258LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies259LevelUpLearnset[] = { +static const u16 sSpecies259LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies260LevelUpLearnset[] = { +static const u16 sSpecies260LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies261LevelUpLearnset[] = { +static const u16 sSpecies261LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies262LevelUpLearnset[] = { +static const u16 sSpecies262LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies263LevelUpLearnset[] = { +static const u16 sSpecies263LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies264LevelUpLearnset[] = { +static const u16 sSpecies264LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies265LevelUpLearnset[] = { +static const u16 sSpecies265LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies266LevelUpLearnset[] = { +static const u16 sSpecies266LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies267LevelUpLearnset[] = { +static const u16 sSpecies267LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies268LevelUpLearnset[] = { +static const u16 sSpecies268LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies269LevelUpLearnset[] = { +static const u16 sSpecies269LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies270LevelUpLearnset[] = { +static const u16 sSpecies270LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies271LevelUpLearnset[] = { +static const u16 sSpecies271LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies272LevelUpLearnset[] = { +static const u16 sSpecies272LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies273LevelUpLearnset[] = { +static const u16 sSpecies273LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies274LevelUpLearnset[] = { +static const u16 sSpecies274LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies275LevelUpLearnset[] = { +static const u16 sSpecies275LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gSpecies276LevelUpLearnset[] = { +static const u16 sSpecies276LevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END }; -const u16 gTreeckoLevelUpLearnset[] = { +static const u16 sTreeckoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 6, MOVE_ABSORB), @@ -3588,7 +3588,7 @@ const u16 gTreeckoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGrovyleLevelUpLearnset[] = { +static const u16 sGrovyleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_ABSORB), @@ -3606,7 +3606,7 @@ const u16 gGrovyleLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSceptileLevelUpLearnset[] = { +static const u16 sSceptileLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_ABSORB), @@ -3624,7 +3624,7 @@ const u16 gSceptileLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTorchicLevelUpLearnset[] = { +static const u16 sTorchicLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), @@ -3639,7 +3639,7 @@ const u16 gTorchicLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCombuskenLevelUpLearnset[] = { +static const u16 sCombuskenLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), @@ -3657,7 +3657,7 @@ const u16 gCombuskenLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gBlazikenLevelUpLearnset[] = { +static const u16 sBlazikenLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -3677,7 +3677,7 @@ const u16 gBlazikenLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMudkipLevelUpLearnset[] = { +static const u16 sMudkipLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), @@ -3693,7 +3693,7 @@ const u16 gMudkipLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMarshtompLevelUpLearnset[] = { +static const u16 sMarshtompLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), @@ -3712,7 +3712,7 @@ const u16 gMarshtompLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSwampertLevelUpLearnset[] = { +static const u16 sSwampertLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), @@ -3731,7 +3731,7 @@ const u16 gSwampertLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPoochyenaLevelUpLearnset[] = { +static const u16 sPoochyenaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_HOWL), LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), @@ -3747,7 +3747,7 @@ const u16 gPoochyenaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMightyenaLevelUpLearnset[] = { +static const u16 sMightyenaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HOWL), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), @@ -3766,7 +3766,7 @@ const u16 gMightyenaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gZigzagoonLevelUpLearnset[] = { +static const u16 sZigzagoonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -3782,7 +3782,7 @@ const u16 gZigzagoonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLinooneLevelUpLearnset[] = { +static const u16 sLinooneLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -3800,20 +3800,20 @@ const u16 gLinooneLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWurmpleLevelUpLearnset[] = { +static const u16 sWurmpleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), LEVEL_UP_MOVE( 5, MOVE_POISON_STING), LEVEL_UP_END }; -const u16 gSilcoonLevelUpLearnset[] = { +static const u16 sSilcoonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 7, MOVE_HARDEN), LEVEL_UP_END }; -const u16 gBeautiflyLevelUpLearnset[] = { +static const u16 sBeautiflyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE(10, MOVE_ABSORB), LEVEL_UP_MOVE(13, MOVE_GUST), @@ -3827,13 +3827,13 @@ const u16 gBeautiflyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCascoonLevelUpLearnset[] = { +static const u16 sCascoonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 7, MOVE_HARDEN), LEVEL_UP_END }; -const u16 gDustoxLevelUpLearnset[] = { +static const u16 sDustoxLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE(10, MOVE_CONFUSION), LEVEL_UP_MOVE(13, MOVE_GUST), @@ -3847,7 +3847,7 @@ const u16 gDustoxLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLotadLevelUpLearnset[] = { +static const u16 sLotadLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 3, MOVE_GROWL), LEVEL_UP_MOVE( 7, MOVE_ABSORB), @@ -3858,7 +3858,7 @@ const u16 gLotadLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLombreLevelUpLearnset[] = { +static const u16 sLombreLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 3, MOVE_GROWL), LEVEL_UP_MOVE( 7, MOVE_ABSORB), @@ -3872,7 +3872,7 @@ const u16 gLombreLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLudicoloLevelUpLearnset[] = { +static const u16 sLudicoloLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_ABSORB), @@ -3880,7 +3880,7 @@ const u16 gLudicoloLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSeedotLevelUpLearnset[] = { +static const u16 sSeedotLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BIDE), LEVEL_UP_MOVE( 3, MOVE_HARDEN), LEVEL_UP_MOVE( 7, MOVE_GROWTH), @@ -3891,7 +3891,7 @@ const u16 gSeedotLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNuzleafLevelUpLearnset[] = { +static const u16 sNuzleafLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 3, MOVE_HARDEN), LEVEL_UP_MOVE( 7, MOVE_GROWTH), @@ -3905,7 +3905,7 @@ const u16 gNuzleafLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gShiftryLevelUpLearnset[] = { +static const u16 sShiftryLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 1, MOVE_GROWTH), @@ -3913,7 +3913,7 @@ const u16 gShiftryLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNincadaLevelUpLearnset[] = { +static const u16 sNincadaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), @@ -3927,7 +3927,7 @@ const u16 gNincadaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNinjaskLevelUpLearnset[] = { +static const u16 sNinjaskLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), @@ -3946,7 +3946,7 @@ const u16 gNinjaskLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gShedinjaLevelUpLearnset[] = { +static const u16 sShedinjaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), @@ -3960,7 +3960,7 @@ const u16 gShedinjaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTaillowLevelUpLearnset[] = { +static const u16 sTaillowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), @@ -3973,7 +3973,7 @@ const u16 gTaillowLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSwellowLevelUpLearnset[] = { +static const u16 sSwellowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), @@ -3988,7 +3988,7 @@ const u16 gSwellowLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gShroomishLevelUpLearnset[] = { +static const u16 sShroomishLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 4, MOVE_TACKLE), LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), @@ -4002,7 +4002,7 @@ const u16 gShroomishLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gBreloomLevelUpLearnset[] = { +static const u16 sBreloomLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), @@ -4020,7 +4020,7 @@ const u16 gBreloomLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSpindaLevelUpLearnset[] = { +static const u16 sSpindaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_UPROAR), LEVEL_UP_MOVE(12, MOVE_FAINT_ATTACK), @@ -4035,7 +4035,7 @@ const u16 gSpindaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWingullLevelUpLearnset[] = { +static const u16 sWingullLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), @@ -4047,7 +4047,7 @@ const u16 gWingullLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPelipperLevelUpLearnset[] = { +static const u16 sPelipperLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), @@ -4064,7 +4064,7 @@ const u16 gPelipperLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSurskitLevelUpLearnset[] = { +static const u16 sSurskitLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), @@ -4076,7 +4076,7 @@ const u16 gSurskitLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMasquerainLevelUpLearnset[] = { +static const u16 sMasquerainLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), @@ -4092,7 +4092,7 @@ const u16 gMasquerainLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWailmerLevelUpLearnset[] = { +static const u16 sWailmerLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 5, MOVE_GROWL), LEVEL_UP_MOVE(10, MOVE_WATER_GUN), @@ -4108,7 +4108,7 @@ const u16 gWailmerLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWailordLevelUpLearnset[] = { +static const u16 sWailordLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -4127,7 +4127,7 @@ const u16 gWailordLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSkittyLevelUpLearnset[] = { +static const u16 sSkittyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), @@ -4143,7 +4143,7 @@ const u16 gSkittyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDelcattyLevelUpLearnset[] = { +static const u16 sDelcattyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_ATTRACT), LEVEL_UP_MOVE( 1, MOVE_SING), @@ -4151,7 +4151,7 @@ const u16 gDelcattyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gKecleonLevelUpLearnset[] = { +static const u16 sKecleonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THIEF), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_ASTONISH), @@ -4168,7 +4168,7 @@ const u16 gKecleonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gBaltoyLevelUpLearnset[] = { +static const u16 sBaltoyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 3, MOVE_HARDEN), LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), @@ -4183,7 +4183,7 @@ const u16 gBaltoyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gClaydolLevelUpLearnset[] = { +static const u16 sClaydolLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TELEPORT), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 1, MOVE_HARDEN), @@ -4202,7 +4202,7 @@ const u16 gClaydolLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNosepassLevelUpLearnset[] = { +static const u16 sNosepassLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 7, MOVE_HARDEN), LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), @@ -4216,7 +4216,7 @@ const u16 gNosepassLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTorkoalLevelUpLearnset[] = { +static const u16 sTorkoalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 4, MOVE_SMOG), LEVEL_UP_MOVE( 7, MOVE_CURSE), @@ -4232,7 +4232,7 @@ const u16 gTorkoalLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSableyeLevelUpLearnset[] = { +static const u16 sSableyeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 5, MOVE_FORESIGHT), @@ -4249,7 +4249,7 @@ const u16 gSableyeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gBarboachLevelUpLearnset[] = { +static const u16 sBarboachLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), @@ -4264,7 +4264,7 @@ const u16 gBarboachLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWhiscashLevelUpLearnset[] = { +static const u16 sWhiscashLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TICKLE), LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), @@ -4282,7 +4282,7 @@ const u16 gWhiscashLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLuvdiscLevelUpLearnset[] = { +static const u16 sLuvdiscLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_CHARM), LEVEL_UP_MOVE(12, MOVE_WATER_GUN), @@ -4295,7 +4295,7 @@ const u16 gLuvdiscLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCorphishLevelUpLearnset[] = { +static const u16 sCorphishLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 7, MOVE_HARDEN), LEVEL_UP_MOVE(10, MOVE_VICE_GRIP), @@ -4310,7 +4310,7 @@ const u16 gCorphishLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCrawdauntLevelUpLearnset[] = { +static const u16 sCrawdauntLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP), @@ -4328,14 +4328,14 @@ const u16 gCrawdauntLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gFeebasLevelUpLearnset[] = { +static const u16 sFeebasLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE(15, MOVE_TACKLE), LEVEL_UP_MOVE(30, MOVE_FLAIL), LEVEL_UP_END }; -const u16 gMiloticLevelUpLearnset[] = { +static const u16 sMiloticLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 5, MOVE_WRAP), LEVEL_UP_MOVE(10, MOVE_WATER_SPORT), @@ -4350,7 +4350,7 @@ const u16 gMiloticLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCarvanhaLevelUpLearnset[] = { +static const u16 sCarvanhaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 7, MOVE_RAGE), @@ -4364,7 +4364,7 @@ const u16 gCarvanhaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSharpedoLevelUpLearnset[] = { +static const u16 sSharpedoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_RAGE), @@ -4382,7 +4382,7 @@ const u16 gSharpedoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTrapinchLevelUpLearnset[] = { +static const u16 sTrapinchLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK), @@ -4394,7 +4394,7 @@ const u16 gTrapinchLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gVibravaLevelUpLearnset[] = { +static const u16 sVibravaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK), @@ -4410,7 +4410,7 @@ const u16 gVibravaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gFlygonLevelUpLearnset[] = { +static const u16 sFlygonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK), @@ -4426,7 +4426,7 @@ const u16 gFlygonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMakuhitaLevelUpLearnset[] = { +static const u16 sMakuhitaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), @@ -4443,7 +4443,7 @@ const u16 gMakuhitaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHariyamaLevelUpLearnset[] = { +static const u16 sHariyamaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), @@ -4462,7 +4462,7 @@ const u16 gHariyamaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gElectrikeLevelUpLearnset[] = { +static const u16 sElectrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), LEVEL_UP_MOVE( 9, MOVE_LEER), @@ -4477,7 +4477,7 @@ const u16 gElectrikeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gManectricLevelUpLearnset[] = { +static const u16 sManectricLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -4495,7 +4495,7 @@ const u16 gManectricLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gNumelLevelUpLearnset[] = { +static const u16 sNumelLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(11, MOVE_EMBER), @@ -4509,7 +4509,7 @@ const u16 gNumelLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCameruptLevelUpLearnset[] = { +static const u16 sCameruptLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_EMBER), @@ -4526,7 +4526,7 @@ const u16 gCameruptLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSphealLevelUpLearnset[] = { +static const u16 sSphealLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -4542,7 +4542,7 @@ const u16 gSphealLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSealeoLevelUpLearnset[] = { +static const u16 sSealeoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -4559,7 +4559,7 @@ const u16 gSealeoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWalreinLevelUpLearnset[] = { +static const u16 sWalreinLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -4576,7 +4576,7 @@ const u16 gWalreinLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCacneaLevelUpLearnset[] = { +static const u16 sCacneaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 5, MOVE_ABSORB), @@ -4593,7 +4593,7 @@ const u16 gCacneaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCacturneLevelUpLearnset[] = { +static const u16 sCacturneLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_ABSORB), @@ -4612,7 +4612,7 @@ const u16 gCacturneLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSnoruntLevelUpLearnset[] = { +static const u16 sSnoruntLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM), @@ -4627,7 +4627,7 @@ const u16 gSnoruntLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGlalieLevelUpLearnset[] = { +static const u16 sGlalieLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), @@ -4645,7 +4645,7 @@ const u16 gGlalieLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLunatoneLevelUpLearnset[] = { +static const u16 sLunatoneLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 7, MOVE_CONFUSION), @@ -4659,7 +4659,7 @@ const u16 gLunatoneLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSolrockLevelUpLearnset[] = { +static const u16 sSolrockLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 7, MOVE_CONFUSION), @@ -4673,7 +4673,7 @@ const u16 gSolrockLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAzurillLevelUpLearnset[] = { +static const u16 sAzurillLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 3, MOVE_CHARM), LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), @@ -4683,7 +4683,7 @@ const u16 gAzurillLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSpoinkLevelUpLearnset[] = { +static const u16 sSpoinkLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), @@ -4698,7 +4698,7 @@ const u16 gSpoinkLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGrumpigLevelUpLearnset[] = { +static const u16 sGrumpigLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), @@ -4716,7 +4716,7 @@ const u16 gGrumpigLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gPlusleLevelUpLearnset[] = { +static const u16 sPlusleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), @@ -4731,7 +4731,7 @@ const u16 gPlusleLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMinunLevelUpLearnset[] = { +static const u16 sMinunLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), @@ -4746,7 +4746,7 @@ const u16 gMinunLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMawileLevelUpLearnset[] = { +static const u16 sMawileLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS), LEVEL_UP_MOVE(11, MOVE_BITE), @@ -4762,7 +4762,7 @@ const u16 gMawileLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMedititeLevelUpLearnset[] = { +static const u16 sMedititeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BIDE), LEVEL_UP_MOVE( 4, MOVE_MEDITATE), LEVEL_UP_MOVE( 9, MOVE_CONFUSION), @@ -4777,7 +4777,7 @@ const u16 gMedititeLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMedichamLevelUpLearnset[] = { +static const u16 sMedichamLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), @@ -4798,7 +4798,7 @@ const u16 gMedichamLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSwabluLevelUpLearnset[] = { +static const u16 sSwabluLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 8, MOVE_ASTONISH), @@ -4813,7 +4813,7 @@ const u16 gSwabluLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAltariaLevelUpLearnset[] = { +static const u16 sAltariaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_ASTONISH), @@ -4832,7 +4832,7 @@ const u16 gAltariaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWynautLevelUpLearnset[] = { +static const u16 sWynautLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 1, MOVE_CHARM), LEVEL_UP_MOVE( 1, MOVE_ENCORE), @@ -4843,7 +4843,7 @@ const u16 gWynautLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDuskullLevelUpLearnset[] = { +static const u16 sDuskullLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), LEVEL_UP_MOVE( 5, MOVE_DISABLE), @@ -4858,7 +4858,7 @@ const u16 gDuskullLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDusclopsLevelUpLearnset[] = { +static const u16 sDusclopsLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BIND), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), @@ -4876,7 +4876,7 @@ const u16 gDusclopsLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRoseliaLevelUpLearnset[] = { +static const u16 sRoseliaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 5, MOVE_GROWTH), LEVEL_UP_MOVE( 9, MOVE_POISON_STING), @@ -4895,7 +4895,7 @@ const u16 gRoseliaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSlakothLevelUpLearnset[] = { +static const u16 sSlakothLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_YAWN), LEVEL_UP_MOVE( 7, MOVE_ENCORE), @@ -4908,7 +4908,7 @@ const u16 gSlakothLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gVigorothLevelUpLearnset[] = { +static const u16 sVigorothLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 1, MOVE_ENCORE), @@ -4924,7 +4924,7 @@ const u16 gVigorothLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSlakingLevelUpLearnset[] = { +static const u16 sSlakingLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_YAWN), LEVEL_UP_MOVE( 1, MOVE_ENCORE), @@ -4940,7 +4940,7 @@ const u16 gSlakingLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGulpinLevelUpLearnset[] = { +static const u16 sGulpinLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 6, MOVE_YAWN), LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), @@ -4955,7 +4955,7 @@ const u16 gGulpinLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSwalotLevelUpLearnset[] = { +static const u16 sSwalotLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_YAWN), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), @@ -4974,7 +4974,7 @@ const u16 gSwalotLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gTropiusLevelUpLearnset[] = { +static const u16 sTropiusLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 7, MOVE_GROWTH), @@ -4989,7 +4989,7 @@ const u16 gTropiusLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gWhismurLevelUpLearnset[] = { +static const u16 sWhismurLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 5, MOVE_UPROAR), LEVEL_UP_MOVE(11, MOVE_ASTONISH), @@ -5004,7 +5004,7 @@ const u16 gWhismurLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLoudredLevelUpLearnset[] = { +static const u16 sLoudredLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_UPROAR), LEVEL_UP_MOVE( 1, MOVE_ASTONISH), @@ -5022,7 +5022,7 @@ const u16 gLoudredLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gExploudLevelUpLearnset[] = { +static const u16 sExploudLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_UPROAR), LEVEL_UP_MOVE( 1, MOVE_ASTONISH), @@ -5041,7 +5041,7 @@ const u16 gExploudLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gClamperlLevelUpLearnset[] = { +static const u16 sClamperlLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CLAMP), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), @@ -5049,7 +5049,7 @@ const u16 gClamperlLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gHuntailLevelUpLearnset[] = { +static const u16 sHuntailLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), LEVEL_UP_MOVE( 8, MOVE_BITE), LEVEL_UP_MOVE(15, MOVE_SCREECH), @@ -5061,7 +5061,7 @@ const u16 gHuntailLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGorebyssLevelUpLearnset[] = { +static const u16 sGorebyssLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), LEVEL_UP_MOVE( 8, MOVE_CONFUSION), LEVEL_UP_MOVE(15, MOVE_AGILITY), @@ -5073,7 +5073,7 @@ const u16 gGorebyssLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAbsolLevelUpLearnset[] = { +static const u16 sAbsolLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 5, MOVE_LEER), LEVEL_UP_MOVE( 9, MOVE_TAUNT), @@ -5088,7 +5088,7 @@ const u16 gAbsolLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gShuppetLevelUpLearnset[] = { +static const u16 sShuppetLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), LEVEL_UP_MOVE( 8, MOVE_SCREECH), LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), @@ -5102,7 +5102,7 @@ const u16 gShuppetLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gBanetteLevelUpLearnset[] = { +static const u16 sBanetteLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), LEVEL_UP_MOVE( 1, MOVE_SCREECH), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), @@ -5119,7 +5119,7 @@ const u16 gBanetteLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSeviperLevelUpLearnset[] = { +static const u16 sSeviperLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WRAP), LEVEL_UP_MOVE( 7, MOVE_LICK), LEVEL_UP_MOVE(10, MOVE_BITE), @@ -5133,7 +5133,7 @@ const u16 gSeviperLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gZangooseLevelUpLearnset[] = { +static const u16 sZangooseLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 4, MOVE_LEER), LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), @@ -5148,7 +5148,7 @@ const u16 gZangooseLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRelicanthLevelUpLearnset[] = { +static const u16 sRelicanthLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), @@ -5163,7 +5163,7 @@ const u16 gRelicanthLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAronLevelUpLearnset[] = { +static const u16 sAronLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_HARDEN), LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), @@ -5179,7 +5179,7 @@ const u16 gAronLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLaironLevelUpLearnset[] = { +static const u16 sLaironLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), @@ -5198,7 +5198,7 @@ const u16 gLaironLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAggronLevelUpLearnset[] = { +static const u16 sAggronLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), @@ -5217,7 +5217,7 @@ const u16 gAggronLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCastformLevelUpLearnset[] = { +static const u16 sCastformLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_WATER_GUN), LEVEL_UP_MOVE(10, MOVE_EMBER), @@ -5229,7 +5229,7 @@ const u16 gCastformLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gVolbeatLevelUpLearnset[] = { +static const u16 sVolbeatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_CONFUSE_RAY), LEVEL_UP_MOVE( 9, MOVE_DOUBLE_TEAM), @@ -5243,7 +5243,7 @@ const u16 gVolbeatLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gIllumiseLevelUpLearnset[] = { +static const u16 sIllumiseLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), LEVEL_UP_MOVE( 9, MOVE_CHARM), @@ -5257,7 +5257,7 @@ const u16 gIllumiseLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLileepLevelUpLearnset[] = { +static const u16 sLileepLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), LEVEL_UP_MOVE(15, MOVE_ACID), @@ -5271,7 +5271,7 @@ const u16 gLileepLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gCradilyLevelUpLearnset[] = { +static const u16 sCradilyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), LEVEL_UP_MOVE( 1, MOVE_ACID), @@ -5288,7 +5288,7 @@ const u16 gCradilyLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gAnorithLevelUpLearnset[] = { +static const u16 sAnorithLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 7, MOVE_HARDEN), LEVEL_UP_MOVE(13, MOVE_MUD_SPORT), @@ -5302,7 +5302,7 @@ const u16 gAnorithLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gArmaldoLevelUpLearnset[] = { +static const u16 sArmaldoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), @@ -5319,7 +5319,7 @@ const u16 gArmaldoLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRaltsLevelUpLearnset[] = { +static const u16 sRaltsLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 6, MOVE_CONFUSION), LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), @@ -5333,7 +5333,7 @@ const u16 gRaltsLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gKirliaLevelUpLearnset[] = { +static const u16 sKirliaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), @@ -5350,7 +5350,7 @@ const u16 gKirliaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGardevoirLevelUpLearnset[] = { +static const u16 sGardevoirLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), @@ -5367,7 +5367,7 @@ const u16 gGardevoirLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gBagonLevelUpLearnset[] = { +static const u16 sBagonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_RAGE), LEVEL_UP_MOVE( 5, MOVE_BITE), LEVEL_UP_MOVE( 9, MOVE_LEER), @@ -5382,7 +5382,7 @@ const u16 gBagonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gShelgonLevelUpLearnset[] = { +static const u16 sShelgonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_RAGE), LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -5401,7 +5401,7 @@ const u16 gShelgonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gSalamenceLevelUpLearnset[] = { +static const u16 sSalamenceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_RAGE), LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -5421,12 +5421,12 @@ const u16 gSalamenceLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gBeldumLevelUpLearnset[] = { +static const u16 sBeldumLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), LEVEL_UP_END }; -const u16 gMetangLevelUpLearnset[] = { +static const u16 sMetangLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), LEVEL_UP_MOVE(20, MOVE_CONFUSION), LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), @@ -5440,7 +5440,7 @@ const u16 gMetangLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gMetagrossLevelUpLearnset[] = { +static const u16 sMetagrossLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), @@ -5457,7 +5457,7 @@ const u16 gMetagrossLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRegirockLevelUpLearnset[] = { +static const u16 sRegirockLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), LEVEL_UP_MOVE(17, MOVE_CURSE), @@ -5470,7 +5470,7 @@ const u16 gRegirockLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRegiceLevelUpLearnset[] = { +static const u16 sRegiceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), LEVEL_UP_MOVE(17, MOVE_CURSE), @@ -5483,7 +5483,7 @@ const u16 gRegiceLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRegisteelLevelUpLearnset[] = { +static const u16 sRegisteelLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW), LEVEL_UP_MOVE(17, MOVE_CURSE), @@ -5497,7 +5497,7 @@ const u16 gRegisteelLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gKyogreLevelUpLearnset[] = { +static const u16 sKyogreLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), @@ -5512,7 +5512,7 @@ const u16 gKyogreLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gGroudonLevelUpLearnset[] = { +static const u16 sGroudonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), @@ -5527,7 +5527,7 @@ const u16 gGroudonLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gRayquazaLevelUpLearnset[] = { +static const u16 sRayquazaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TWISTER), LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), @@ -5542,7 +5542,7 @@ const u16 gRayquazaLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLatiasLevelUpLearnset[] = { +static const u16 sLatiasLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), LEVEL_UP_MOVE( 5, MOVE_WISH), LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), @@ -5557,7 +5557,7 @@ const u16 gLatiasLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gLatiosLevelUpLearnset[] = { +static const u16 sLatiosLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), LEVEL_UP_MOVE( 5, MOVE_MEMENTO), LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), @@ -5572,7 +5572,7 @@ const u16 gLatiosLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gJirachiLevelUpLearnset[] = { +static const u16 sJirachiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WISH), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 5, MOVE_REST), @@ -5588,7 +5588,7 @@ const u16 gJirachiLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gDeoxysLevelUpLearnset[] = { +static const u16 sDeoxysLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_WRAP), LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), @@ -5604,7 +5604,7 @@ const u16 gDeoxysLevelUpLearnset[] = { LEVEL_UP_END }; -const u16 gChimechoLevelUpLearnset[] = { +static const u16 sChimechoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WRAP), LEVEL_UP_MOVE( 6, MOVE_GROWL), LEVEL_UP_MOVE( 9, MOVE_ASTONISH), diff --git a/src/pokemon.c b/src/pokemon.c index cd7e45758a..7c010cd391 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -2089,7 +2089,7 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon) s32 level = GetLevelFromBoxMonExp(boxMon); s32 i; - for (i = 0; gLevelUpLearnsets[species][i] != (u16)-1; i++) + for (i = 0; gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++) { u16 moveLevel; u16 move; @@ -2101,7 +2101,7 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon) move = (gLevelUpLearnsets[species][i] & 0x1FF); - if (GiveMoveToBoxMon(boxMon, move) == (u16)-1) + if (GiveMoveToBoxMon(boxMon, move) == 0xFFFF) DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, move); } } @@ -2123,7 +2123,7 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove) while ((gLevelUpLearnsets[species][sLearningMoveTableID] & 0xFE00) != (level << 9)) { sLearningMoveTableID++; - if (gLevelUpLearnsets[species][sLearningMoveTableID] == 0xFFFF) + if (gLevelUpLearnsets[species][sLearningMoveTableID] == LEVEL_UP_END) return 0; } } From 5d899d00e02553db75aa4a7e30e44190170ff45d Mon Sep 17 00:00:00 2001 From: garak Date: Sat, 11 Aug 2018 21:06:27 -0400 Subject: [PATCH 078/174] tone down INSTALL steps --- INSTALL.md | 38 +++++++++++--------------------------- 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 3eb980eb63..0fa9af8e78 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -37,47 +37,31 @@ You can then build pokeemerald using `make` in the MSYS environment provided wit Installing pokeemerald on a Mac requires macOS >= 10.12 (Sierra or higher). -To get pokeemerald up and running, run the following commands in Terminal: +Download a [devkitPRO pacman](https://github.com/devkitPro/pacman/releases/tag/v1.0.0) + +Run the following commands in Terminal: -Make sure you have the right compilers. ``` xcode-select --install -``` - -Download a [devkitPRO pacman](https://github.com/devkitPro/pacman/releases/tag/v1.0.0) package (`.pkg`) and install using the native Installer. -This will install the devkitPRO package in `/opt/devkitpro`. - -You must install devkitARM using - -``` sudo dkp-pacman -S devkitARM -``` -Then set environment variables - -``` export DEVKITPRO=/opt/devkitpro echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc export DEVKITARM=$DEVKITPRO/devkitARM echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc -``` +echo "if [ -f ~/.bashrc ]; then . ~/.bashrc; fi" >> ~/.bash_profile -Now download and install the game's compiler from . You should download and unpack the `.zip` and move the folder to the same folder holding pokeemerald. +git clone https://github.com/pret/pokeemerald +git clone https://github.com/pret/agbcc -``` -cd /PATH/TO/agbcc/ +cd agbcc/ ./build.sh -./install.sh /PATH/TO/pokeemerald -``` +./install.sh ../pokeemerald -Build the necessary tools -``` -cd /PATH/TO/pokeemerald +cd ../pokeemerald ./build_tools.sh ``` -And finally the ROM should be ready to build -``` -make -``` + +And build the ROM with `make -j4`. From 9ee4c23a467a15452d67804139abd68dc7c1d51a Mon Sep 17 00:00:00 2001 From: Garak Date: Sat, 11 Aug 2018 21:11:28 -0400 Subject: [PATCH 079/174] remove -j4 --- INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL.md b/INSTALL.md index 0fa9af8e78..c5425204ca 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -64,4 +64,4 @@ cd ../pokeemerald ./build_tools.sh ``` -And build the ROM with `make -j4`. +And build the ROM with `make`. From 296a539664975b29f25a24958ec513a2ecd008c8 Mon Sep 17 00:00:00 2001 From: Garak Date: Sat, 11 Aug 2018 21:19:27 -0400 Subject: [PATCH 080/174] add faster builds and NODEP sections from pokeruby --- INSTALL.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/INSTALL.md b/INSTALL.md index c5425204ca..bb5e9849d3 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -65,3 +65,32 @@ cd ../pokeemerald ``` And build the ROM with `make`. + +# Faster builds + +After the first build, subsequent builds are faster. You can further speed up the build: + +## Parallel build + +This significantly speeds up the build on modern machines. + +By default `make` only runs a single thread. You can tell `make` to run on multiple threads with `make -j`. See the manfile for usage (`man make`). + +The optimal value for `-j` is the number of logical cores on your machine. You can run `nproc` to see the exact number. + +``` +$ nproc +8 +``` + +If you have 8 cores, run: `make -j8` + +`-j` on its own will spawn a new thread for each job. A clean build will have thousands of jobs, which will be slower than not using -j at all. + +## Disable the dependency scanning + +If you've only changed `.c` or `.s` files, you can turn off the dependency scanning temporarily. Changes to any other files will be ignored, and the build will either fail or not reflect those changes. + +`make NODEP=1` + + From 2cfc7bd358561aa88930a07e2a05d3c919c3beb3 Mon Sep 17 00:00:00 2001 From: Garak Date: Sat, 11 Aug 2018 21:21:43 -0400 Subject: [PATCH 081/174] change darwin check --- Makefile | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 58a93bb55c..38e8fd71ef 100644 --- a/Makefile +++ b/Makefile @@ -31,14 +31,7 @@ LDFLAGS = -Map ../../$(MAP) LIB := -L ../../tools/agbcc/lib -lgcc -lc -ifeq ($(OS),Windows_NT) - SHA1 := sha1sum -c -else ifeq ($(shell uname -s),Darwin) - SHA1 := shasum -c -else - SHA1 := sha1sum -c -endif - +SHA1SUM := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c GFX := tools/gbagfx/gbagfx AIF := tools/aif2pcm/aif2pcm MID := $(abspath tools/mid2agb/mid2agb) From e0a9faacb58311b697cf704823f8279a077716f0 Mon Sep 17 00:00:00 2001 From: Garak Date: Sat, 11 Aug 2018 21:29:54 -0400 Subject: [PATCH 082/174] sha1sum -> sha1 --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 38e8fd71ef..9637d98a80 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ LDFLAGS = -Map ../../$(MAP) LIB := -L ../../tools/agbcc/lib -lgcc -lc -SHA1SUM := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c +SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c GFX := tools/gbagfx/gbagfx AIF := tools/aif2pcm/aif2pcm MID := $(abspath tools/mid2agb/mid2agb) From 3a72e6a80d52215533936f92efbe8e4f3454b7e6 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 11:39:09 +0200 Subject: [PATCH 083/174] Easy chat review changes --- include/global.h | 4 ++-- src/easy_chat.c | 17 +++++++---------- src/lilycove_lady.c | 22 +++++++++++----------- 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/include/global.h b/include/global.h index a0722bcc9b..eaac5ea891 100644 --- a/include/global.h +++ b/include/global.h @@ -719,8 +719,8 @@ struct LilycoveLadyQuiz /*0x000*/ u8 id; /*0x001*/ u8 phase; /*0x002*/ u16 unk_002[9]; - /*0x014*/ u16 unk_014[1]; - /*0x016*/ u16 unk_016[1]; + /*0x014*/ u16 unk_014; + /*0x016*/ u16 unk_016; /*0x018*/ u8 playerName[8]; /*0x020*/ u16 playerTrainerId[4]; /*0x028*/ u16 itemId; diff --git a/src/easy_chat.c b/src/easy_chat.c index 26a69f9ff7..fbf4c0e70a 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -166,7 +166,7 @@ static void sub_811A2FC(u8 taskId) { case 0: SetVBlankCallback(sub_811A290); - BlendPalettes(-1, 16, 0); + BlendPalettes(0xFFFFFFFF, 16, 0); BeginNormalPaletteFade(-1, -1, 16, 0, 0); data[EZCHAT_TASK_STATE] = 5; break; @@ -341,7 +341,7 @@ void easy_chat_input_maybe(void) sizeParam = 2; break; case 15: - words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_016; + words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016; break; case 16: return; @@ -349,7 +349,7 @@ void easy_chat_input_maybe(void) words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_002; break; case 18: - words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_014; + words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014; break; case 19: words = (u16 *)&gSaveBlock2Ptr->field_DC[0].field_0[0x28]; @@ -378,7 +378,7 @@ static void sub_811A7E4(void) if (!gPaletteFade.active) { lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; - lilycoveLady->quiz.unk_016[0] = -1; + lilycoveLady->quiz.unk_016 = -1; overworld_free_bg_tilemaps(); sub_811A8F0(); } @@ -420,7 +420,7 @@ static void sub_811A8A4(u16 word) void sub_811A8CC(void) { - sub_811A20C(0xF, gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, CB2_ReturnToFieldContinueScript, 3); + sub_811A20C(0xF, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, CB2_ReturnToFieldContinueScript, 3); } void sub_811A8F0(void) @@ -430,7 +430,7 @@ void sub_811A8F0(void) void sub_811A914(void) { - sub_811A20C(0x12, gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, CB2_ReturnToFieldContinueScript, 3); + sub_811A20C(0x12, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, CB2_ReturnToFieldContinueScript, 3); } void sub_811A938(void) @@ -494,10 +494,7 @@ static bool8 EasyChat_AllocateResources(u8 kind, u16 *words, u8 sizeParam) static void EasyChat_FreeResources(void) { if (gUnknown_0203A118 != NULL) - { - free(gUnknown_0203A118); - gUnknown_0203A118 = NULL; - } + FREE_AND_SET_NULL(gUnknown_0203A118); } static u16 sub_811AAAC(void) diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 159ede91ed..1012a8e087 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -508,7 +508,7 @@ static void sub_818DF00(void) { gUnknown_0203CD68->unk_002[i] = gUnknown_0860B1A4[v0][i]; } - gUnknown_0203CD68->unk_014[0] = sUnknown_0860B1E4[v0]; + gUnknown_0203CD68->unk_014 = sUnknown_0860B1E4[v0]; gUnknown_0203CD68->itemId = sUnknown_0860B204[v0]; gUnknown_0203CD68->unk_02b = v0; gUnknown_0203CD68->playerName[0] = EOS; @@ -525,8 +525,8 @@ static void SetLilycoveQuizLady(void) { gUnknown_0203CD68->unk_002[i] = -1; } - gUnknown_0203CD68->unk_014[0] = -1; - gUnknown_0203CD68->unk_016[0] = -1; + gUnknown_0203CD68->unk_014 = -1; + gUnknown_0203CD68->unk_016 = -1; for (i = 0; i < 4; i ++) { gUnknown_0203CD68->playerTrainerId[i] = 0; @@ -544,7 +544,7 @@ static void sub_818E004(void) gUnknown_0203CD68->id = LILYCOVE_LADY_QUIZ; gUnknown_0203CD68->phase = 0; gUnknown_0203CD68->unk_02a = 0; - gUnknown_0203CD68->unk_016[0] = -1; + gUnknown_0203CD68->unk_016 = -1; } u8 sub_818E038(void) @@ -572,7 +572,7 @@ u8 sub_818E06C(void) struct LilycoveLadyQuiz *quiz; quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (sub_811F8D8(quiz->unk_014[0]) == 0) + if (sub_811F8D8(quiz->unk_014) == 0) { i = quiz->unk_02b; do @@ -586,7 +586,7 @@ u8 sub_818E06C(void) { quiz->unk_002[j] = gUnknown_0860B1A4[i][j]; } - quiz->unk_014[0] = sUnknown_0860B1E4[i]; + quiz->unk_014 = sUnknown_0860B1E4[i]; quiz->itemId = sUnknown_0860B204[i]; quiz->unk_02b = i; quiz->playerName[0] = EOS; @@ -699,8 +699,8 @@ void sub_818E2FC(void) bool8 sub_818E308(void) { gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - CopyEasyChatWord(gStringVar1, gUnknown_0203CD68->unk_014[0]); - CopyEasyChatWord(gStringVar2, gUnknown_0203CD68->unk_016[0]); + CopyEasyChatWord(gStringVar1, gUnknown_0203CD68->unk_014); + CopyEasyChatWord(gStringVar2, gUnknown_0203CD68->unk_016); return StringCompare(gStringVar1, gStringVar2) ? FALSE : TRUE; } @@ -725,7 +725,7 @@ void sub_818E39C(void) void sub_818E3BC(void) { gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - gUnknown_0203CD68->unk_016[0] = -1; + gUnknown_0203CD68->unk_016 = -1; } void sub_818E3E0(void) @@ -756,7 +756,7 @@ void sub_818E430(void) { gUnknown_0203CD68->unk_002[i] = -1; } - gUnknown_0203CD68->unk_014[0] = -1; + gUnknown_0203CD68->unk_014 = -1; } void sub_818E47C(void) @@ -793,7 +793,7 @@ void sub_818E510(void) void sub_818E538(void) { gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - CopyEasyChatWord(gStringVar3, gUnknown_0203CD68->unk_014[0]); + CopyEasyChatWord(gStringVar3, gUnknown_0203CD68->unk_014); } void sub_818E564(void) From 1229bead2ea61019955ededd5f06e64d7e776155 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 11:50:26 +0200 Subject: [PATCH 084/174] slot machine review changes --- src/slot_machine.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/slot_machine.c b/src/slot_machine.c index fd4726879a..5422103c3c 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -319,7 +319,7 @@ void Task_FadeToSlotMachine(u8 taskId) switch (gTasks[taskId].tState) { case 0: - BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); gTasks[taskId].tState++; break; case 1: @@ -487,10 +487,10 @@ void SlotMachineSetup_2_1(void) SetGpuReg(REG_OFFSET_BG2VOFS, 0); SetGpuReg(REG_OFFSET_BG3HOFS, 0); SetGpuReg(REG_OFFSET_BG3VOFS, 0); - SetGpuReg(REG_OFFSET_WININ, 0x3f); - SetGpuReg(REG_OFFSET_WINOUT, 0x3f); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_OBJ); - SetGpuReg(REG_OFFSET_BLDALPHA, 0x809); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(9, 8)); } extern const s16 gUnknown_083ECCF8[][2]; From e787d5b60230550a4a8f1f3251b90e141bfcc5ff Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 12:08:51 +0200 Subject: [PATCH 085/174] Contest review changes --- src/contest.c | 49 +++++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/src/contest.c b/src/contest.c index b2d35f4505..8513fc4a9a 100644 --- a/src/contest.c +++ b/src/contest.c @@ -42,10 +42,7 @@ #include "script_pokemon_util_80F87D8.h" #include "international_string_util.h" #include "data2.h" - -#define DESTROY_POINTER(ptr) \ - free(ptr); \ - ptr = NULL; +#include "constants/rgb.h" extern void (*gFieldCallback)(void); @@ -265,8 +262,8 @@ void sub_80D7678(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); - SetGpuReg(REG_OFFSET_WININ, 0x3F3F); - SetGpuReg(REG_OFFSET_WINOUT, 0x3F3F); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3 | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); gBattle_BG0_X = 0; @@ -333,10 +330,10 @@ void sub_80D782C(void) s32 i; LoadPalette(gUnknown_08587C30, 0xf0, 0x20); - FillPalette(0, 0, 2); + FillPalette(RGB_BLACK, 0, 2); for (i = 10; i < 14; i++) LoadPalette(gPlttBufferUnfaded + 241, 240 + i, 2); - FillPalette(0x7E3F, 0xF3, 2); + FillPalette(RGB(31, 17, 31), 0xF3, 2); } void sub_80D787C(void) @@ -398,23 +395,23 @@ void sub_80D7988(void) void sub_80D7A5C(void) { - DESTROY_POINTER(gContestResources->field_0); - DESTROY_POINTER(gContestResources->field_4); - DESTROY_POINTER(gContestResources->field_8); - DESTROY_POINTER(gContestResources->field_C); - DESTROY_POINTER(gContestResources->field_10); - DESTROY_POINTER(gContestResources->field_14); - DESTROY_POINTER(gContestResources->field_18); - DESTROY_POINTER(gContestResources->field_1c); - DESTROY_POINTER(gContestResources->field_20); - DESTROY_POINTER(gContestResources->field_24[0]); - DESTROY_POINTER(gContestResources->field_24[1]); - DESTROY_POINTER(gContestResources->field_24[2]); - DESTROY_POINTER(gContestResources->field_24[3]); - DESTROY_POINTER(gContestResources->field_34); - DESTROY_POINTER(gContestResources->field_38); - DESTROY_POINTER(gContestResources->field_3c); - DESTROY_POINTER(gContestResources); + FREE_AND_SET_NULL(gContestResources->field_0); + FREE_AND_SET_NULL(gContestResources->field_4); + FREE_AND_SET_NULL(gContestResources->field_8); + FREE_AND_SET_NULL(gContestResources->field_C); + FREE_AND_SET_NULL(gContestResources->field_10); + FREE_AND_SET_NULL(gContestResources->field_14); + FREE_AND_SET_NULL(gContestResources->field_18); + FREE_AND_SET_NULL(gContestResources->field_1c); + FREE_AND_SET_NULL(gContestResources->field_20); + FREE_AND_SET_NULL(gContestResources->field_24[0]); + FREE_AND_SET_NULL(gContestResources->field_24[1]); + FREE_AND_SET_NULL(gContestResources->field_24[2]); + FREE_AND_SET_NULL(gContestResources->field_24[3]); + FREE_AND_SET_NULL(gContestResources->field_34); + FREE_AND_SET_NULL(gContestResources->field_38); + FREE_AND_SET_NULL(gContestResources->field_3c); + FREE_AND_SET_NULL(gContestResources); gUnknown_0202305C = NULL; gUnknown_02023060 = NULL; } @@ -427,7 +424,7 @@ void sub_80D7B24(void) sContestBgCopyFlags = 0; sub_80D7988(); AllocateMonSpritesGfx(); - DESTROY_POINTER(gMonSpritesGfxPtr->firstDecompressed); + FREE_AND_SET_NULL(gMonSpritesGfxPtr->firstDecompressed); gMonSpritesGfxPtr->firstDecompressed = AllocZeroed(0x4000); SetVBlankCallback(NULL); sub_80D779C(); From 7dac22314ee647645771ec713407bb83b3ec3de4 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 16:40:31 +0200 Subject: [PATCH 086/174] Decompile a bit of pokemon storarage system --- asm/pokemon_storage_system.s | 1533 +----------------------------- data/event_scripts.s | 2 +- data/pokemon_storage_system.s | 12 - data/specials.inc | 2 +- include/pc_screen_effect.h | 16 + include/pokemon_storage_system.h | 72 ++ src/pokemon_storage_system.c | 525 +++++++++- 7 files changed, 609 insertions(+), 1553 deletions(-) create mode 100644 include/pc_screen_effect.h diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 24e041b7f5..9e1cf03d81 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -6,1513 +6,8 @@ .text - thumb_func_start sub_80C7128 -sub_80C7128: @ 80C7128 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - adds r7, r3, 0 - ldr r5, [sp, 0x1C] - ldr r4, [sp, 0x20] - ldr r0, [sp, 0x24] - mov r9, r0 - ldr r0, [sp, 0x28] - ldr r3, [sp, 0x2C] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - mov r0, r9 - lsls r0, 17 - mov r9, r0 - lsrs r2, 11 - adds r2, r1 - lsls r2, 1 - adds r6, r2 - adds r0, r4, 0 - muls r0, r3 - adds r0, r5 - lsls r0, 1 - adds r7, r0 - movs r4, 0 - cmp r4, r8 - bcs _080C7198 - mov r0, r9 - lsrs r0, 1 - mov r9, r0 - lsls r5, r3, 1 -_080C717E: - adds r0, r7, 0 - adds r1, r6, 0 - mov r3, r9 - lsrs r2, r3, 16 - bl CpuSet - adds r6, 0x40 - adds r7, r5 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bcc _080C717E -_080C7198: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C7128 - thumb_func_start sub_80C71A4 -sub_80C71A4: @ 80C71A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [sp, 0x28] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsrs r2, 11 - adds r2, r1 - lsls r2, 1 - adds r4, r2 - lsls r3, 17 - lsrs r0, r3, 16 - str r0, [sp, 0x4] - movs r0, 0 - cmp r0, r10 - bcs _080C724E - movs r6, 0x80 - lsls r6, 5 - mov r5, sp - ldr r7, =0x040000d4 - lsrs r3, 17 - mov r9, r3 - mov r1, r9 - movs r2, 0x81 - lsls r2, 24 - orrs r1, r2 - mov r9, r1 -_080C71EA: - adds r3, r4, 0 - ldr r2, [sp, 0x4] - movs r1, 0x40 - adds r1, r4 - mov r8, r1 - adds r0, 0x1 - mov r12, r0 - cmp r2, r6 - bhi _080C7214 - movs r0, 0 - strh r0, [r5] - mov r2, sp - str r2, [r7] - str r4, [r7, 0x4] - mov r0, r9 - str r0, [r7, 0x8] - ldr r0, [r7, 0x8] - b _080C7242 - .pool -_080C7214: - movs r4, 0 - strh r4, [r5] - ldr r1, =0x040000d4 - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - ldr r0, =0x81000800 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r6 - subs r2, r6 - cmp r2, r6 - bhi _080C7214 - strh r4, [r5] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - lsrs r0, r2, 1 - movs r2, 0x81 - lsls r2, 24 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_080C7242: - mov r4, r8 - mov r1, r12 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, r10 - bcc _080C71EA -_080C724E: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C71A4 - thumb_func_start c3_0808C39C -c3_0808C39C: @ 80C7268 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080C7284 - b _080C756A -_080C7284: - lsls r0, 2 - ldr r1, =_080C7298 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080C7298: - .4byte _080C72AC - .4byte _080C730C - .4byte _080C7320 - .4byte _080C746A - .4byte _080C7544 -_080C72AC: - ldrb r0, [r5, 0xA] - adds r1, r5, 0 - adds r1, 0x26 - bl sub_80C75FC - bl sub_81973A4 - movs r0, 0 - movs r1, 0 - bl NewMenuHelpers_DrawDialogueFrame - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r1, =gUnknown_085716C0 - movs r2, 0xA - ldrsh r0, [r5, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0xFF - bl AddTextPrinterParameterized - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldrh r0, [r5, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl CopyWindowToVram - b _080C7318 - .pool -_080C730C: - bl IsWeatherNotFadingIn - lsls r0, 24 - cmp r0, 0 - bne _080C7318 - b _080C756A -_080C7318: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080C756A -_080C7320: - bl ProcessMenuInput - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0xC] - movs r3, 0xC - ldrsh r1, [r5, r3] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080C73D0 - cmp r1, r0 - bgt _080C7342 - subs r0, 0x1 - cmp r1, r0 - beq _080C7348 - b _080C73F6 -_080C7342: - cmp r1, 0x4 - beq _080C73D0 - b _080C73F6 -_080C7348: - ldrh r3, [r5, 0xA] - strh r3, [r5, 0xE] - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080C7366 - subs r0, r3, 0x1 - strh r0, [r5, 0xE] - lsls r0, 16 - cmp r0, 0 - bge _080C7366 - movs r0, 0x4 - strh r0, [r5, 0xE] -_080C7366: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080C7382 - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080C7382 - movs r0, 0 - strh r0, [r5, 0xE] -_080C7382: - lsls r0, r3, 16 - asrs r0, 16 - ldrh r2, [r5, 0xE] - movs r3, 0xE - ldrsh r1, [r5, r3] - cmp r0, r1 - bne _080C7392 - b _080C756A -_080C7392: - movs r4, 0 - strh r2, [r5, 0xA] - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r1, =gUnknown_085716C0 - movs r2, 0xA - ldrsh r0, [r5, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r2, [r0] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - b _080C756A - .pool -_080C73D0: - ldrh r0, [r5, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_819746C - bl ScriptContext2_Disable - bl EnableBothScriptContexts - ldrh r0, [r5, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl RemoveWindow - adds r0, r4, 0 - bl DestroyTask - b _080C756A -_080C73F6: - movs r3, 0xC - ldrsh r4, [r5, r3] - cmp r4, 0 - bne _080C7428 - bl CountPartyMons - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _080C7428 - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, =gText_PartyFull - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r4, 0x3 - str r4, [sp, 0xC] - b _080C7532 - .pool -_080C7428: - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080C745C - bl CountPartyMons - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _080C745C - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, =gText_JustOnePkmn - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r4, 0x3 - str r4, [sp, 0xC] - b _080C7532 - .pool -_080C745C: - movs r0, 0x1 - movs r1, 0 - bl FadeScreen - movs r0, 0x4 - strh r0, [r5, 0x8] - b _080C756A -_080C746A: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r7, 0x3 - adds r4, r7, 0 - ands r4, r1 - cmp r4, 0 - beq _080C749C - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r1, =gUnknown_085716C0 - movs r2, 0xA - ldrsh r0, [r5, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - b _080C7528 - .pool -_080C749C: - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _080C74E8 - ldrh r0, [r5, 0xA] - subs r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - cmp r0, 0 - bge _080C74B8 - movs r0, 0x4 - strh r0, [r5, 0xA] -_080C74B8: - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xA] - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r1, =gUnknown_085716C0 - movs r3, 0xA - ldrsh r0, [r5, r3] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r2, [r0] - str r4, [sp] - b _080C7528 - .pool -_080C74E8: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080C756A - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080C7500 - strh r6, [r5, 0xA] -_080C7500: - movs r0, 0x1 - bl MoveMenuCursor - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xA] - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r1, =gUnknown_085716C0 - movs r2, 0xA - ldrsh r0, [r5, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r2, [r0] - str r6, [sp] -_080C7528: - movs r4, 0x2 - str r4, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - str r7, [sp, 0xC] -_080C7532: - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - strh r4, [r5, 0x8] - b _080C756A - .pool -_080C7544: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C756A - bl overworld_free_bg_tilemaps - ldrb r0, [r5, 0xC] - bl sub_80C7D74 - ldrh r0, [r5, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl RemoveWindow - adds r0, r4, 0 - bl DestroyTask -_080C756A: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end c3_0808C39C - - thumb_func_start sub_80C7578 -sub_80C7578: @ 80C7578 - push {lr} - ldr r0, =c3_0808C39C - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - bl ScriptContext2_Enable - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C7578 - - thumb_func_start mapldr_0808C6D8 -mapldr_0808C6D8: @ 80C75A8 - push {r4,r5,lr} - ldr r0, =gMain - ldr r5, [r0, 0xC] - movs r0, 0 - bl SetVBlankCallback - ldr r4, =c3_0808C39C - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - ldr r2, =gUnknown_02039D00 - ldrb r2, [r2] - strh r2, [r1, 0xA] - bl _call_via_r4 - adds r0, r5, 0 - bl SetVBlankCallback - bl pal_fill_black - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end mapldr_0808C6D8 - - thumb_func_start sub_80C75FC -sub_80C75FC: @ 80C75FC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - adds r6, r0, 0 - mov r9, r1 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gUnknown_085716E8 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, =gUnknown_085716C0 - mov r8, r0 - movs r1, 0x5 - bl GetMaxWidthInMenuTable - lsls r0, 24 - ldr r2, =0x00ffffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - bl AddWindow - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, r5, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0 - bl NewMenuHelpers_DrawStdWindowFrame - adds r0, r4, 0 - movs r1, 0x5 - mov r2, r8 - bl PrintMenuTable - adds r0, r4, 0 - movs r1, 0x5 - adds r2, r6, 0 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - mov r0, r9 - strh r5, [r0] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C75FC - - thumb_func_start sub_80C7678 -sub_80C7678: @ 80C7678 - push {lr} - bl sub_80CAEA0 - ldr r1, =gUnknown_02039D00 - strb r0, [r1] - ldr r1, =gFieldCallback - ldr r0, =mapldr_0808C6D8 - str r0, [r1] - ldr r0, =CB2_ReturnToField - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C7678 - - thumb_func_start sub_80C76A4 -sub_80C76A4: @ 80C76A4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - lsls r1, 24 - lsrs r0, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - adds r4, r3, 0 - ldr r2, =0x0000ffff - cmp r3, 0x1 - bhi _080C76C6 - movs r2, 0x1 - cmp r3, 0x1 - beq _080C76CA -_080C76C6: - cmp r4, 0x3 - bne _080C7714 -_080C76CA: - lsls r0, 24 - asrs r0, 24 - lsls r2, 16 - asrs r1, r2, 16 - adds r1, r0 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r2, 0 - cmp r1, 0 - blt _080C7760 - cmp r1, r7 - bgt _080C7760 -_080C76E2: - asrs r4, r0, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - add r0, r8 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _080C770C - asrs r0, r6, 16 - adds r0, r4, r0 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _080C7760 - cmp r2, r7 - ble _080C76E2 - b _080C7760 - .pool -_080C770C: - adds r0, r4, 0 - b _080C7764 -_080C7710: - adds r0, r5, 0 - b _080C7764 -_080C7714: - lsls r0, 24 - asrs r0, 24 - lsls r2, 16 - asrs r1, r2, 16 - adds r1, r0 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r2, 0 - cmp r1, 0 - blt _080C7760 - cmp r1, r7 - bgt _080C7760 -_080C772C: - asrs r5, r0, 16 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _080C7750 - adds r0, r4, 0 - movs r1, 0x2D - bl GetBoxMonData - cmp r0, 0 - beq _080C7710 -_080C7750: - asrs r0, r6, 16 - adds r0, r5, r0 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _080C7760 - cmp r2, r7 - ble _080C772C -_080C7760: - movs r0, 0x1 - negs r0, r0 -_080C7764: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C76A4 - - thumb_func_start ResetPokemonStorageSystem -ResetPokemonStorageSystem: @ 80C7770 - push {r4-r6,lr} - movs r0, 0 - bl sub_80D1D18 - movs r5, 0 -_080C777A: - movs r4, 0 - lsls r6, r5, 24 -_080C777E: - lsls r1, r4, 24 - lsrs r1, 24 - lsrs r0, r6, 24 - bl sub_80D2018 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _080C777E - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _080C777A - movs r5, 0 -_080C779E: - lsls r0, r5, 24 - lsrs r0, 24 - bl GetBoxNamePtr - ldr r1, =gText_Box - bl StringCopy - adds r4, r5, 0x1 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - lsls r4, 16 - lsrs r5, r4, 16 - cmp r5, 0xD - bls _080C779E - movs r5, 0 -_080C77C2: - lsls r0, r5, 24 - lsrs r0, 24 - movs r1, 0x3 - ands r1, r5 - bl sub_80D2120 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _080C77C2 - bl ResetWaldaWallpaper - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ResetPokemonStorageSystem - - thumb_func_start sub_80C77E8 -sub_80C77E8: @ 80C77E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x20 - adds r5, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r6, r1, 0 - lsls r2, 16 - lsrs r2, 16 - adds r7, r2, 0 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - ldr r0, =gUnknown_0857173C - str r0, [sp, 0x18] - ldr r1, =0xffff0000 - add r4, sp, 0x18 - ldr r0, [r4, 0x4] - ands r0, r1 - orrs r0, r7 - str r0, [r4, 0x4] - mov r1, sp - ldr r0, =gUnknown_0857175C - str r0, [sp] - movs r0, 0x80 - lsls r0, 4 - strh r0, [r1, 0x4] - strh r6, [r1, 0x6] - ldr r0, =gUnknown_08571F5C - str r0, [sp, 0x8] - movs r0, 0xC0 - lsls r0, 1 - strh r0, [r1, 0xC] - adds r0, r6, 0x1 - strh r0, [r1, 0xE] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x8 - bl memset - ldr r0, [sp, 0x38] - cmp r0, 0 - beq _080C7846 - adds r0, r4, 0 - bl LoadSpritePalette -_080C7846: - mov r0, sp - bl LoadSpriteSheets - ldr r0, =gUnknown_02039D04 - str r5, [r0] - movs r1, 0x90 - lsls r1, 2 - adds r0, r5, r1 - strh r6, [r0] - adds r1, 0x2 - adds r0, r5, r1 - strh r7, [r0] - adds r1, 0x4 - adds r0, r5, r1 - mov r1, r8 - strb r1, [r0] - movs r1, 0x8F - lsls r1, 2 - adds r0, r5, r1 - ldr r1, [sp, 0x38] - str r1, [r0] - add sp, 0x20 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C77E8 - - thumb_func_start sub_80C7890 -sub_80C7890: @ 80C7890 - push {r4,r5,lr} - ldr r5, =gUnknown_02039D04 - ldr r1, [r5] - movs r2, 0x8F - lsls r2, 2 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, 0 - beq _080C78AC - adds r2, 0x6 - adds r0, r1, r2 - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_080C78AC: - ldr r0, [r5] - movs r4, 0x90 - lsls r4, 2 - adds r0, r4 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r5] - adds r0, r4 - ldrh r0, [r0] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - bl FreeSpriteTilesByTag - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C7890 - - thumb_func_start sub_80C78D4 -sub_80C78D4: @ 80C78D4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80C7958 - pop {r0} - bx r0 - thumb_func_end sub_80C78D4 - - thumb_func_start sub_80C78E4 -sub_80C78E4: @ 80C78E4 - push {lr} - bl sub_80C7B14 - pop {r0} - bx r0 - thumb_func_end sub_80C78E4 - - thumb_func_start sub_80C78F0 -sub_80C78F0: @ 80C78F0 - push {lr} - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080C790C - movs r0, 0x5 - bl PlaySE - movs r0, 0xC9 - b _080C7954 - .pool -_080C790C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C792C - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_02039D04 - ldr r0, [r0] - movs r1, 0x91 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - b _080C7954 - .pool -_080C792C: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080C7940 - movs r0, 0x5 - bl PlaySE - bl sub_80C7BB4 - b _080C7952 -_080C7940: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080C7952 - movs r0, 0x5 - bl PlaySE - bl sub_80C7B80 -_080C7952: - movs r0, 0xC8 -_080C7954: - pop {r1} - bx r1 - thumb_func_end sub_80C78F0 - - thumb_func_start sub_80C7958 -sub_80C7958: @ 80C7958 - push {r4-r6,lr} - sub sp, 0x3C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0 - movs r1, 0 - str r0, [sp, 0x34] - str r1, [sp, 0x38] - movs r1, 0xC0 - lsls r1, 24 - ldr r0, [sp, 0x34] - orrs r0, r1 - str r0, [sp, 0x34] - ldr r1, =0xffff0fff - add r4, sp, 0x34 - ldr r0, [r4, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r4, 0x4] - add r1, sp, 0x1C - movs r2, 0 - strh r2, [r1] - mov r0, sp - adds r0, 0x1E - strh r2, [r0] - str r4, [sp, 0x20] - ldr r0, =gDummySpriteAnimTable - str r0, [sp, 0x24] - str r2, [sp, 0x28] - ldr r0, =gDummySpriteAffineAnimTable - str r0, [sp, 0x2C] - ldr r0, =SpriteCallbackDummy - str r0, [sp, 0x30] - add r0, sp, 0x4 - movs r2, 0x18 - bl memcpy - ldr r6, =gUnknown_02039D04 - ldr r0, [r6] - movs r1, 0x91 - lsls r1, 2 - adds r0, r1 - strb r5, [r0] - add r2, sp, 0x4 - ldr r1, [r6] - movs r5, 0x90 - lsls r5, 2 - adds r0, r1, r5 - ldrh r0, [r0] - strh r0, [r2] - ldr r3, =0x00000242 - adds r1, r3 - ldrh r0, [r1] - strh r0, [r2, 0x2] - adds r0, r2, 0 - movs r1, 0xA0 - movs r2, 0x60 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - str r0, [r3] - ldrb r2, [r4, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - ands r1, r0 - movs r0, 0x40 - orrs r1, r0 - strb r1, [r4, 0x3] - add r1, sp, 0x4 - adds r3, r5 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r1] - ldr r0, =sSpriteAnimTable_8571710 - str r0, [sp, 0xC] - movs r4, 0 -_080C7A10: - ldr r0, [r6] - ldr r1, =0x00000246 - adds r0, r1 - ldrb r3, [r0] - add r0, sp, 0x4 - movs r1, 0x7C - movs r2, 0x50 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, [r6] - lsls r3, r4, 2 - adds r2, 0x4 - adds r2, r3 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r1, r0, r1 - str r1, [r2] - movs r5, 0 - movs r0, 0x2 - ands r0, r4 - cmp r0, 0 - beq _080C7A4A - movs r0, 0xC4 - strh r0, [r1, 0x20] - movs r5, 0x2 -_080C7A4A: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080C7A6E - ldr r1, [r6] - adds r1, 0x4 - adds r1, r3 - ldr r2, [r1] - movs r0, 0x70 - strh r0, [r2, 0x22] - ldr r2, [r1] - ldrb r1, [r2, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080C7A6E: - ldr r0, [r6] - adds r0, 0x4 - adds r0, r3 - ldr r0, [r0] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080C7A10 - movs r4, 0 - ldr r5, =gUnknown_02039D04 -_080C7A8C: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 19 - movs r3, 0xF8 - lsls r3, 15 - adds r0, r3 - lsrs r0, 16 - lsls r2, r4, 24 - lsrs r2, 24 - ldr r1, [r5] - ldr r3, =0x00000246 - adds r1, r3 - ldrb r1, [r1] - str r1, [sp] - movs r1, 0x58 - movs r3, 0 - bl sub_80CD2E8 - adds r2, r0, 0 - ldr r0, [r5] - lsls r1, r4, 2 - adds r0, 0x20 - adds r0, r1 - str r2, [r0] - cmp r2, 0 - beq _080C7AD4 - movs r1, 0x1 - cmp r4, 0 - bne _080C7ACC - movs r3, 0x1 - negs r3, r3 - adds r1, r3, 0 -_080C7ACC: - strh r1, [r2, 0x2E] - ldr r1, [r0] - ldr r0, =sub_80C7CF4 - str r0, [r1, 0x1C] -_080C7AD4: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080C7A8C - bl sub_80C7BE4 - add sp, 0x3C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C7958 - - thumb_func_start sub_80C7B14 -sub_80C7B14: @ 80C7B14 - push {r4-r6,lr} - ldr r4, =gUnknown_02039D04 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _080C7B2A - bl DestroySprite - ldr r1, [r4] - movs r0, 0 - str r0, [r1] -_080C7B2A: - movs r5, 0 - adds r6, r4, 0 -_080C7B2E: - ldr r0, [r6] - lsls r4, r5, 2 - adds r0, 0x4 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _080C7B4A - bl DestroySprite - ldr r0, [r6] - adds r0, 0x4 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_080C7B4A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080C7B2E - movs r5, 0 -_080C7B56: - ldr r0, =gUnknown_02039D04 - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, 0x20 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _080C7B6A - bl DestroySprite -_080C7B6A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080C7B56 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C7B14 - - thumb_func_start sub_80C7B80 -sub_80C7B80: @ 80C7B80 - push {lr} - ldr r2, =gUnknown_02039D04 - ldr r1, [r2] - movs r0, 0x91 - lsls r0, 2 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bls _080C7BA6 - ldr r0, [r2] - movs r1, 0x91 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_080C7BA6: - bl sub_80C7BE4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C7B80 - - thumb_func_start sub_80C7BB4 -sub_80C7BB4: @ 80C7BB4 - push {lr} - ldr r0, =gUnknown_02039D04 - ldr r2, [r0] - movs r1, 0x91 - lsls r1, 2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080C7BD0 - subs r1, r0, 0x1 - b _080C7BD2 - .pool -_080C7BD0: - movs r1, 0xD -_080C7BD2: - movs r3, 0x91 - lsls r3, 2 - adds r0, r2, r3 - strb r1, [r0] - bl sub_80C7BE4 - pop {r0} - bx r0 - thumb_func_end sub_80C7BB4 - - thumb_func_start sub_80C7BE4 -sub_80C7BE4: @ 80C7BE4 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x24 - ldr r0, =gUnknown_02039D04 - mov r9, r0 - ldr r0, [r0] - movs r4, 0x91 - lsls r4, 2 - adds r0, r4 - ldrb r0, [r0] - bl GetBoxNamePtr - mov r10, r0 - mov r1, r9 - ldr r0, [r1] - adds r0, r4 - ldrb r0, [r0] - bl CountMonsInBox - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - add r4, sp, 0x1C - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x8 - bl memset - movs r0, 0x8 - strb r0, [r4, 0x3] - movs r0, 0x4 - strb r0, [r4, 0x4] - adds r0, r4, 0 - bl AddWindow - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x44 - bl FillWindowPixelBuffer - movs r0, 0x1 - mov r1, r10 - movs r2, 0x40 - bl GetStringCenterAlignXOffset - lsls r2, r0, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08571734 - mov r8, r0 - str r0, [sp] - movs r6, 0x1 - negs r6, r6 - str r6, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - movs r3, 0x1 - bl box_print - add r0, sp, 0xC - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_08571737 - add r0, sp, 0xC - bl StringAppend - movs r0, 0x1 - add r1, sp, 0xC - movs r2, 0x40 - bl GetStringCenterAlignXOffset - lsls r2, r0, 24 - lsrs r2, 24 - mov r0, r8 - str r0, [sp] - str r6, [sp, 0x4] - add r1, sp, 0xC - str r1, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - movs r3, 0x11 - bl box_print - adds r0, r4, 0 - movs r1, 0x7 - bl GetWindowAttribute - adds r5, r0, 0 - mov r1, r9 - ldr r0, [r1] - movs r1, 0x90 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - bl GetSpriteTileStartByTag - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 11 - ldr r0, =0x06010100 - adds r1, r0 - ldr r2, =0x04000100 - adds r0, r5, 0 - bl CpuSet - adds r0, r4, 0 - bl RemoveWindow - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C7BE4 - - thumb_func_start sub_80C7CF4 -sub_80C7CF4: @ 80C7CF4 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - movs r2, 0 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080C7D24 - strh r2, [r1, 0x30] - ldrh r0, [r1, 0x2E] - ldrh r3, [r1, 0x24] - adds r0, r3 - strh r0, [r1, 0x24] - ldrh r0, [r1, 0x32] - adds r0, 0x1 - strh r0, [r1, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080C7D24 - strh r2, [r1, 0x32] - strh r2, [r1, 0x24] -_080C7D24: - pop {r0} - bx r0 - thumb_func_end sub_80C7CF4 - - thumb_func_start sub_80C7D28 -sub_80C7D28: @ 80C7D28 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_80D2AA4 - bl TransferPlttBuffer - ldr r0, =gUnknown_02039D08 - ldr r0, [r0] - movs r1, 0xB3 - lsls r1, 2 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x18 - bl SetGpuReg - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C7D28 - - thumb_func_start c2_Box -c2_Box: @ 80C7D54 - push {lr} - bl RunTasks - bl do_scheduled_bg_tilemap_copies_to_vram - bl sub_80CA028 - bl sub_80CAA14 - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - thumb_func_end c2_Box thumb_func_start sub_80C7D74 sub_80C7D74: @ 80C7D74 @@ -2473,7 +968,7 @@ _080C8668: ldr r1, =0x000002ca adds r0, r1 ldrb r0, [r0] - bl sub_80D1D18 + bl SetCurrentBox ldr r0, =gUnknown_02039D0C ldrb r0, [r0] cmp r0, 0 @@ -4705,7 +3200,7 @@ _080C9A9C: ldr r2, =0x000002ca adds r0, r2 ldrb r0, [r0] - bl sub_80D1D18 + bl SetCurrentBox ldr r0, =task_pokemon_box_related bl add_to_c3_somehow _080C9AB8: @@ -9968,7 +8463,7 @@ sub_80CC680: @ 80CC680 lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 - bl sub_80D2120 + bl SetBoxWallpaper ldr r0, =gUnknown_02039D08 ldr r0, [r0] ldr r1, =0x00000a62 @@ -13098,7 +11593,7 @@ sub_80CE0E8: @ 80CE0E8 b _080CE10C .pool _080CE108: - bl sub_80D2018 + bl ClearMonInBox _080CE10C: pop {r0} bx r0 @@ -17973,7 +16468,7 @@ _080D09EC: bl sub_80CB778 mov r0, r8 adds r1, r5, 0 - bl sub_80D2018 + bl ClearMonInBox adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -20353,8 +18848,8 @@ StorageGetCurrentBox: @ 80D1D0C .pool thumb_func_end StorageGetCurrentBox - thumb_func_start sub_80D1D18 -sub_80D1D18: @ 80D1D18 + thumb_func_start SetCurrentBox +SetCurrentBox: @ 80D1D18 push {lr} lsls r0, 24 lsrs r1, r0, 24 @@ -20367,7 +18862,7 @@ _080D1D28: pop {r0} bx r0 .pool - thumb_func_end sub_80D1D18 + thumb_func_end SetCurrentBox thumb_func_start GetBoxMonDataFromAnyBox GetBoxMonDataFromAnyBox: @ 80D1D30 @@ -20768,8 +19263,8 @@ _080D2004: .pool thumb_func_end sub_80D1F98 - thumb_func_start sub_80D2018 -sub_80D2018: @ 80D2018 + thumb_func_start ClearMonInBox +ClearMonInBox: @ 80D2018 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 @@ -20798,7 +19293,7 @@ _080D2048: pop {r0} bx r0 .pool - thumb_func_end sub_80D2018 + thumb_func_end ClearMonInBox thumb_func_start sub_80D2054 sub_80D2054: @ 80D2054 @@ -20914,8 +19409,8 @@ _080D2112: .pool thumb_func_end sub_80D20F8 - thumb_func_start sub_80D2120 -sub_80D2120: @ 80D2120 + thumb_func_start SetBoxWallpaper +SetBoxWallpaper: @ 80D2120 push {lr} lsls r0, 24 lsrs r2, r0, 24 @@ -20935,7 +19430,7 @@ _080D213E: pop {r0} bx r0 .pool - thumb_func_end sub_80D2120 + thumb_func_end SetBoxWallpaper thumb_func_start sub_80D214C sub_80D214C: @ 80D214C diff --git a/data/event_scripts.s b/data/event_scripts.s index f28707fbbc..56658a9948 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1802,7 +1802,7 @@ EventScript_271E0E:: @ 8271E0E checkflag FLAG_SYS_PC_LANETTE call_if 1, EventScript_271E3E msgbox gUnknown_082726A3, 4 - special sub_80C7578 + special ShowPokemonStorageSystem waitstate goto EventScript_271DAC end diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s index f05613b005..b859133a66 100644 --- a/data/pokemon_storage_system.s +++ b/data/pokemon_storage_system.s @@ -3,18 +3,6 @@ .section .rodata - .align 2 -gUnknown_0857173C:: @ 857173C - .incbin "graphics/unknown/unknown_57173C.gbapal" - - .align 2 -gUnknown_0857175C:: @ 857175C - .incbin "graphics/pokemon_storage/box_selection_popup_center.4bpp" - - .align 2 -gUnknown_08571F5C:: @ 8571F5C - .incbin "graphics/pokemon_storage/box_selection_popup_sides.4bpp" - .align 2 gUnknown_085720DC:: @ 85720DC .incbin "graphics/pokemon_storage/scrolling_bg.4bpp.lz" diff --git a/data/specials.inc b/data/specials.inc index 86355f4840..d0d04837a0 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -71,7 +71,7 @@ gSpecials:: @ 81DBA64 def_special ShouldTryRematchBattle def_special IsTrainerReadyForRematch def_special BattleSetup_StartRematchBattle - def_special sub_80C7578 + def_special ShowPokemonStorageSystem def_special HasEnoughMonsForDoubleBattle def_special TurnOffTVScreen def_special DoTVShow diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h new file mode 100644 index 0000000000..5cfde00938 --- /dev/null +++ b/include/pc_screen_effect.h @@ -0,0 +1,16 @@ +#ifndef GUARD_PC_SCREEN_EFFECT_H +#define GUARD_PC_SCREEN_EFFECT_H + +struct PCScreenEffectStruct +{ + /*0x00*/ u16 tileTag; + /*0x02*/ u16 paletteTag; + /*0x04*/ u16 unk04; + /*0x06*/ u16 unk06; + /*0x08*/ u16 unk08; + /*0x0A*/ u16 unk0A; + /*0x0C*/ s16 unk0C; + /*0x10*/ u32 selectedPalettes; +}; + +#endif //GUARD_PC_SCREEN_EFFECT_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 990331e860..03f4e0da6d 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -4,6 +4,78 @@ #define TOTAL_BOXES_COUNT 14 #define IN_BOX_COUNT 30 +#include "pc_screen_effect.h" +#include "mon_markings.h" + +struct PokemonStorageSystemFunc +{ + u8 (*func)(void); + s8 unk4; +}; + +struct StorageAction +{ + const u8 *text; + u8 format; +}; + +struct StorageText +{ + const u8 *text; + int textId; +}; + +struct PSS_MenuStringPtrs +{ + const u8 *text; + const u8 *desc; +}; + +struct UnkStruct_2000028 +{ + const u8 *unk_00; + u8 *unk_04; + u16 unk_08; + u16 unk_0a; + void (*unk_0c)(struct UnkStruct_2000028 *data); +}; + +struct UnkStruct_2000020 +{ + struct UnkStruct_2000028 *unk_00; + u8 unk_04; + u8 unk_05; +}; + +struct UnkPSSStruct_2002370 +{ + struct Sprite *unk_0000; + struct Sprite *unk_0004[4]; + u32 unk_0014[3]; + struct Sprite *unk_0020[2]; + u8 filler_0028[0x214]; + u32 unk_023c; + u16 unk_0240; + u16 unk_0242; + u8 curBox; + u8 unk_0245; + u8 unk_0246; +}; + +struct PokemonStorageSystemData +{ + u8 state; + u8 boxOption; + u8 unk_0002; + u8 unk_0003; + u8 taskId; + u8 unk_0005[710]; + u16 bg2_X; +}; + +extern struct UnkPSSStruct_2002370 *gUnknown_02039D04; +extern struct PokemonStorageSystemData *gUnknown_02039D08; + u8* GetBoxNamePtr(u8 boxNumber); struct BoxPokemon *GetBoxedMonPtr(u8, u8); void SetBoxMonNickFromAnyBox(u8, u8, u8 *); diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 7f8c24ab72..7c622c2235 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -7,17 +7,49 @@ #include "text.h" #include "strings.h" #include "window.h" +#include "menu.h" +#include "bg.h" +#include "main.h" +#include "palette.h" +#include "overworld.h" +#include "field_screen.h" +#include "field_weather.h" +#include "script.h" +#include "international_string_util.h" +#include "walda_phrase.h" +#include "sound.h" +#include "gpu_regs.h" +#include "constants/songs.h" IWRAM_DATA u8 gUnknown_03000F78[0x188]; -struct OptionAndDescription -{ - const u8 *optionTxt; - const u8 *descriptionTxt; -}; +extern const u8 gText_PartyFull[]; +extern const u8 gText_Box[]; +extern const u8 gText_JustOnePkmn[]; + +extern u8 gUnknown_02039D00; + +// This file's functions. +void StorageSystemCreatePrimaryMenu(u8 whichMenu, s16 *windowIdPtr); +void sub_80C7D74(u8); +u8 sub_80CAEA0(void); +void SetBoxWallpaper(u8 boxId, u8 wallpaperId); +void SetCurrentBox(u8 boxId); +void ClearMonInBox(u8 boxId, u8 boxPos); +void ResetWaldaWallpaper(void); +void sub_80C7958(u8 curBox); +void sub_80C7B14(void); +void sub_80C7BB4(void); +void sub_80CA028(void); +void sub_80C7B80(void); +void sub_80D2AA4(void); +void sub_80C7BE4(void); +void sub_80CAA14(void); +void sub_80C7CF4(struct Sprite *sprite); +struct Sprite *sub_80CD2E8(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority); // const rom data -const struct OptionAndDescription gUnknown_085716C0[] = +const struct PSS_MenuStringPtrs gUnknown_085716C0[] = { {gText_WithdrawPokemon, gText_WithdrawMonDescription}, {gText_DepositPokemon, gText_DepositMonDescription}, @@ -74,6 +106,10 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_8571730[] = const u8 gUnknown_08571734[] = {4, 0xF, 0xE}; const u8 gUnknown_08571737[] = _("/30"); +const u16 gBoxSelectionPopupPalette[] = INCBIN_U16("graphics/unknown/unknown_57173C.gbapal"); +const u8 gBoxSelectionPopupCenterTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_center.4bpp"); +const u8 gBoxSelectionPopupSidesTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_sides.4bpp"); + // code u8 CountMonsInBox(u8 boxId) { @@ -166,24 +202,473 @@ static u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n) return str; } -/* can't match -static void sub_80C7128(u16 *dst, u16 dstToAdd, u16 dstToMul, const u16 *src, u16 srcToAdd, u16 srcToMul, u32 size, u16 count, u16 srcBy) +static void sub_80C7128(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src, u16 src_left, u16 src_top, u16 dest_width, u16 dest_height, u16 src_width) { u16 i; - size <<= 0x11; - dst += (dstToMul * 32) + dstToAdd; - src += (srcToMul * srcBy) + srcToAdd; - - i = 0; - if (i < count) + dest_width *= 2; + dest += dest_top * 0x20 + dest_left; + src += src_top * src_width + src_left; + for (i = 0; i < dest_height; i++) { - size >>= 1; - for (i = 0; i < count; i++) + CpuCopy16(src, dest, dest_width); + dest += 0x20; + src += src_width; + } +} + +#define MAX_DMA_BLOCK_SIZE 0x1000 +#define Dma3FillLarge_(value, dest, size, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + if (_size <= MAX_DMA_BLOCK_SIZE) \ + { \ + DmaFill##bit(3, value, _dest, _size); \ + break; \ + } \ + DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \ + _dest += MAX_DMA_BLOCK_SIZE; \ + _size -= MAX_DMA_BLOCK_SIZE; \ + } \ +} + +#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16) +#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32) + +void sub_80C71A4(u16 *dest, u16 dest_left, u16 dest_top, u16 width, u16 height) +{ + u16 i; + + dest += dest_top * 0x20 + dest_left; + width *= 2; + for (i = 0; i < height; dest += 0x20, i++) + Dma3FillLarge16_(0, dest, width); +} + +void Task_PokemonStorageSystem(u8 taskId) +{ + struct Task *task = gTasks + taskId; + switch (task->data[0]) + { + case 0: + StorageSystemCreatePrimaryMenu(task->data[1], &task->data[15]); + sub_81973A4(); + NewMenuHelpers_DrawDialogueFrame(0, 0); + FillWindowPixelBuffer(0, 0x11); + AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, TEXT_SPEED_FF, NULL, 2, 1, 3); + CopyWindowToVram(0, 3); + CopyWindowToVram(task->data[15], 3); + task->data[0]++; + break; + case 1: + if (IsWeatherNotFadingIn()) { - CpuSet(src, dst, size >> 0x10); - dst += 0x20; - src += srcBy; + task->data[0]++; + } + break; + case 2: + task->data[2] = ProcessMenuInput(); + switch(task->data[2]) + { + case -2: + task->data[3] = task->data[1]; + if (gMain.newKeys & DPAD_UP && --task->data[3] < 0) + task->data[3] = 4; + + if (gMain.newKeys & DPAD_DOWN && ++task->data[3] > 4) + task->data[3] = 0; + if (task->data[1] != task->data[3]) + { + task->data[1] = task->data[3]; + FillWindowPixelBuffer(0, 0x11); + AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + } + break; + case -1: + case 4: + sub_819746C(task->data[15], TRUE); + ScriptContext2_Disable(); + EnableBothScriptContexts(); + RemoveWindow(task->data[15]); + DestroyTask(taskId); + break; + default: + if (task->data[2] == 0 && CountPartyMons() == PARTY_SIZE) + { + FillWindowPixelBuffer(0, 0x11); + AddTextPrinterParameterized(0, 1, gText_PartyFull, 0, NULL, 2, 1, 3); + task->data[0] = 3; + } + else if (task->data[2] == 1 && CountPartyMons() == 1) + { + FillWindowPixelBuffer(0, 0x11); + AddTextPrinterParameterized(0, 1, gText_JustOnePkmn, 0, NULL, 2, 1, 3); + task->data[0] = 3; + } + else + { + FadeScreen(1, 0); + task->data[0] = 4; + } + break; + } + break; + case 3: + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + FillWindowPixelBuffer(0, 0x11); + AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + task->data[0] = 2; + } + else if (gMain.newKeys & DPAD_UP) + { + if (--task->data[1] < 0) + task->data[1] = 4; + MoveMenuCursor(-1); + task->data[1] = GetMenuCursorPos(); + FillWindowPixelBuffer(0, 0x11); + AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + task->data[0] = 2; + } + else if (gMain.newKeys & DPAD_DOWN) + { + if (++task->data[1] > 3) + task->data[1] = 0; + MoveMenuCursor(1); + task->data[1] = GetMenuCursorPos(); + FillWindowPixelBuffer(0, 0x11); + AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + task->data[0] = 2; + } + break; + case 4: + if (!gPaletteFade.active) + { + overworld_free_bg_tilemaps(); + sub_80C7D74(task->data[2]); + RemoveWindow(task->data[15]); + DestroyTask(taskId); + } + break; + } +} + +void ShowPokemonStorageSystem(void) +{ + u8 taskId = CreateTask(Task_PokemonStorageSystem, 80); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + ScriptContext2_Enable(); +} + +void mapldr_0808C6D8(void) +{ + u8 taskId; + MainCallback vblankCb = gMain.vblankCallback; + + SetVBlankCallback(NULL); + taskId = CreateTask(Task_PokemonStorageSystem, 80); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = gUnknown_02039D00; + Task_PokemonStorageSystem(taskId); + SetVBlankCallback(vblankCb); + pal_fill_black(); +} + +void StorageSystemCreatePrimaryMenu(u8 whichMenu, s16 *windowIdPtr) +{ + s16 windowId; + struct WindowTemplate winTemplate = gUnknown_085716E8; + winTemplate.width = GetMaxWidthInMenuTable((void *)gUnknown_085716C0, ARRAY_COUNT(gUnknown_085716C0)); + windowId = AddWindow(&winTemplate); + + NewMenuHelpers_DrawStdWindowFrame(windowId, FALSE); + PrintMenuTable(windowId, ARRAY_COUNT(gUnknown_085716C0), (void *)gUnknown_085716C0); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, ARRAY_COUNT(gUnknown_085716C0), whichMenu); + *windowIdPtr = windowId; +} + +void sub_80C7678(void) +{ + gUnknown_02039D00 = sub_80CAEA0(); + gFieldCallback = mapldr_0808C6D8; + SetMainCallback2(CB2_ReturnToField); +} + +s16 StorageSystemGetNextMonIndex(struct BoxPokemon *box, s8 startIdx, u8 stopIdx, u8 mode) +{ + s16 i; + s16 direction; + if (mode == 0 || mode == 1) + { + direction = 1; + } + else + { + direction = -1; + } + if (mode == 1 || mode == 3) + { + for (i = startIdx + direction; i >= 0 && i <= stopIdx; i += direction) + { + if (GetBoxMonData(box + i, MON_DATA_SPECIES) != 0) + return i; } } -}*/ + else + { + for (i = startIdx + direction; i >= 0 && i <= stopIdx; i += direction) + { + if (GetBoxMonData(box + i, MON_DATA_SPECIES) != 0 && !GetBoxMonData(box + i, MON_DATA_IS_EGG)) + return i; + } + } + return -1; +} + +void ResetPokemonStorageSystem(void) +{ + u16 boxId; + u16 boxMon; + + SetCurrentBox(0); + for (boxId = 0; boxId < TOTAL_BOXES_COUNT; boxId++) + { + for (boxMon = 0; boxMon < IN_BOX_COUNT; boxMon++) + ClearMonInBox(boxId, boxMon); + } + for (boxId = 0; boxId < TOTAL_BOXES_COUNT; boxId++) + { + u8 *dest = StringCopy(GetBoxNamePtr(boxId), gText_Box); + ConvertIntToDecimalStringN(dest, boxId + 1, STR_CONV_MODE_LEFT_ALIGN, 2); + } + for (boxId = 0; boxId < TOTAL_BOXES_COUNT; boxId++) + { + SetBoxWallpaper(boxId, boxId % 4); + } + ResetWaldaWallpaper(); +} + +void sub_80C77E8(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal) +{ + struct SpritePalette palette = + { + gBoxSelectionPopupPalette, palTag + }; + struct SpriteSheet sheets[] = + { + {gBoxSelectionPopupCenterTiles, 0x800, tileTag}, + {gBoxSelectionPopupSidesTiles, 0x180, tileTag + 1}, + {} + }; + + if (loadPal) + LoadSpritePalette(&palette); + + LoadSpriteSheets(sheets); + gUnknown_02039D04 = a0; + a0->unk_0240 = tileTag; + a0->unk_0242 = palTag; + a0->unk_0246 = a3; + a0->unk_023c = loadPal; +} + +void sub_80C7890(void) +{ + if (gUnknown_02039D04->unk_023c) + FreeSpritePaletteByTag(gUnknown_02039D04->unk_0242); + FreeSpriteTilesByTag(gUnknown_02039D04->unk_0240); + FreeSpriteTilesByTag(gUnknown_02039D04->unk_0240 + 1); +} + +void sub_80C78D4(u8 curBox) +{ + sub_80C7958(curBox); +} + +void sub_80C78E4(void) +{ + sub_80C7B14(); +} + +u8 sub_80C78F0(void) +{ + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + return 201; + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + return gUnknown_02039D04->curBox; + } + if (gMain.newKeys & DPAD_LEFT) + { + PlaySE(SE_SELECT); + sub_80C7BB4(); + } + else if (gMain.newKeys & DPAD_RIGHT) + { + PlaySE(SE_SELECT); + sub_80C7B80(); + } + return 200; +} + +void sub_80C7958(u8 curBox) +{ + u16 i; + u8 spriteId; + struct SpriteTemplate template; + struct OamData oamData = {}; + oamData.size = 3; + oamData.paletteNum = 1; + template = (struct SpriteTemplate){ + 0, 0, &oamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + }; + + gUnknown_02039D04->curBox = curBox; + template.tileTag = gUnknown_02039D04->unk_0240; + template.paletteTag = gUnknown_02039D04->unk_0242; + + spriteId = CreateSprite(&template, 0xA0, 0x60, 0); + gUnknown_02039D04->unk_0000 = gSprites + spriteId; + + oamData.shape = ST_OAM_V_RECTANGLE; + oamData.size = 1; + template.tileTag = gUnknown_02039D04->unk_0240 + 1; + template.anims = sSpriteAnimTable_8571710; + for (i = 0; i < 4; i++) + { + u16 r5; + spriteId = CreateSprite(&template, 0x7c, 0x50, gUnknown_02039D04->unk_0246); + gUnknown_02039D04->unk_0004[i] = gSprites + spriteId; + r5 = 0; + if (i & 2) + { + gUnknown_02039D04->unk_0004[i]->pos1.x = 0xc4; + r5 = 2; + } + if (i & 1) + { + gUnknown_02039D04->unk_0004[i]->pos1.y = 0x70; + gUnknown_02039D04->unk_0004[i]->oam.size = 0; + r5++; + } + StartSpriteAnim(gUnknown_02039D04->unk_0004[i], r5); + } + for (i = 0; i < 2; i++) + { + gUnknown_02039D04->unk_0020[i] = sub_80CD2E8(72 * i + 0x7c, 0x58, i, 0, gUnknown_02039D04->unk_0246); + if (gUnknown_02039D04->unk_0020[i]) + { + gUnknown_02039D04->unk_0020[i]->data[0] = (i == 0 ? -1 : 1); + gUnknown_02039D04->unk_0020[i]->callback = sub_80C7CF4; + } + } + sub_80C7BE4(); +} + +void sub_80C7B14(void) +{ + u16 i; + if (gUnknown_02039D04->unk_0000) + { + DestroySprite(gUnknown_02039D04->unk_0000); + gUnknown_02039D04->unk_0000 = NULL; + } + for (i = 0; i < 4; i++) + { + if (gUnknown_02039D04->unk_0004[i]) + { + DestroySprite(gUnknown_02039D04->unk_0004[i]); + gUnknown_02039D04->unk_0004[i] = NULL; + } + } + for (i = 0; i < 2; i++) + { + if (gUnknown_02039D04->unk_0020[i]) + DestroySprite(gUnknown_02039D04->unk_0020[i]); + } +} + +void sub_80C7B80(void) +{ + if (++gUnknown_02039D04->curBox >= TOTAL_BOXES_COUNT) + gUnknown_02039D04->curBox = 0; + sub_80C7BE4(); +} + +void sub_80C7BB4(void) +{ + gUnknown_02039D04->curBox = (gUnknown_02039D04->curBox == 0 ? TOTAL_BOXES_COUNT - 1 : gUnknown_02039D04->curBox - 1); + sub_80C7BE4(); +} + +void sub_80C7BE4(void) +{ + u8 text[16]; + struct WindowTemplate winTemplate; + u8 windowId; + u8 *boxName = GetBoxNamePtr(gUnknown_02039D04->curBox); + u8 nPokemonInBox = CountMonsInBox(gUnknown_02039D04->curBox); + u32 winTileData; + s32 center; + + memset(&winTemplate, 0, sizeof(winTemplate)); + winTemplate.width = 8; + winTemplate.height = 4; + + windowId = AddWindow(&winTemplate); + FillWindowPixelBuffer(windowId, 0x44); + + center = GetStringCenterAlignXOffset(1, boxName, 0x40); + box_print(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName); + + ConvertIntToDecimalStringN(text, nPokemonInBox, 1, 2); + StringAppend(text, gUnknown_08571737); + center = GetStringCenterAlignXOffset(1, text, 0x40); + box_print(windowId, 1, center, 0x11, gUnknown_08571734, TEXT_SPEED_FF, text); + + winTileData = GetWindowAttribute(windowId, WINDOW_TILE_DATA); + CpuCopy32((void *)winTileData, (void *)OBJ_VRAM0 + 0x100 + (GetSpriteTileStartByTag(gUnknown_02039D04->unk_0240) * 32), 0x400); + + RemoveWindow(windowId); +} + +void sub_80C7CF4(struct Sprite *sprite) +{ + if (++sprite->data[1] > 3) + { + sprite->data[1] = 0; + sprite->pos2.x += sprite->data[0]; + if (++sprite->data[2] > 5) + { + sprite->data[2] = 0; + sprite->pos2.x = 0; + } + } +} + +void sub_80C7D28(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + sub_80D2AA4(); + TransferPlttBuffer(); + SetGpuReg(REG_OFFSET_BG2HOFS, gUnknown_02039D08->bg2_X); +} + +void c2_Box(void) +{ + RunTasks(); + do_scheduled_bg_tilemap_copies_to_vram(); + sub_80CA028(); + sub_80CAA14(); + AnimateSprites(); + BuildOamBuffer(); +} From 8650f2345d1342fe869d4b9af1d662a823fbba14 Mon Sep 17 00:00:00 2001 From: MCboy Date: Sun, 12 Aug 2018 22:28:41 +0430 Subject: [PATCH 087/174] define function in header --- include/rotating_gate.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/rotating_gate.h b/include/rotating_gate.h index 50a8389537..2ae26aa5b8 100644 --- a/include/rotating_gate.h +++ b/include/rotating_gate.h @@ -4,5 +4,6 @@ void RotatingGatePuzzleCameraUpdate(s16, s16); void RotatingGate_InitPuzzleAndGraphics(); u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16); +bool32 CheckForRotatingGatePuzzleCollisionWithoutAnimation(u8, s16, s16); #endif // GUARD_ROTATING_GATE_H From e6db9c5d19275c662969f7e06688935ad476f8da Mon Sep 17 00:00:00 2001 From: MCboy Date: Sun, 12 Aug 2018 22:29:44 +0430 Subject: [PATCH 088/174] add function to header --- include/event_object_movement.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/event_object_movement.h b/include/event_object_movement.h index a8f5caa280..4d6251275e 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -146,6 +146,7 @@ u8 GetJumpInPlaceMovementAction(u32); bool8 EventObjectSetHeldMovement(struct EventObject *eventObject, u8 specialAnimId); bool8 EventObjectIsMovementOverridden(struct EventObject *eventObject); u8 EventObjectCheckHeldMovementStatus(struct EventObject *eventObject); +u8 EventObjectGetHeldMovementActionId(struct EventObject *eventObject); void TryOverrideTemplateCoordsForEventObject(const struct EventObject *eventObject, u8 movementType); void OverrideTemplateCoordsForEventObject(const struct EventObject *eventObject); void ShiftStillEventObjectCoords(struct EventObject *pObject); @@ -185,6 +186,7 @@ bool8 FreezeEventObject(struct EventObject *eventObject); u8 GetMoveDirectionFastAnimNum(u8); u8 GetMoveDirectionFasterAnimNum(u8); u8 GetMoveDirectionFastestAnimNum(u8); +u8 GetLedgeJumpDirection(s16, s16, u8); void MovementType_None(struct Sprite *); void MovementType_LookAround(struct Sprite *); From f7c3151ef24fdf02a724646f033241eff331972a Mon Sep 17 00:00:00 2001 From: MCboy Date: Sun, 12 Aug 2018 22:31:19 +0430 Subject: [PATCH 089/174] add functions to header --- include/field_player_avatar.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 8cd6c275b9..b11b5e21ad 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -45,4 +45,22 @@ void SetPlayerAvatarStateMask(u8 a); u8 GetPlayerAvatarGraphicsIdByStateId(u8 a); u8 GetJumpSpecialMovementAction(u32); +bool8 ForcedMovement_None(void); +bool8 ForcedMovement_Slip(void); +bool8 ForcedMovement_WalkSouth(void); +bool8 ForcedMovement_WalkNorth(void); +bool8 ForcedMovement_WalkWest(void); +bool8 ForcedMovement_WalkEast(void); +bool8 ForcedMovement_PushedSouthByCurrent(void); +bool8 ForcedMovement_PushedNorthByCurrent(void); +bool8 ForcedMovement_PushedWestByCurrent(void); +bool8 ForcedMovement_PushedEastByCurrent(void); +bool8 ForcedMovement_SlideSouth(void); +bool8 ForcedMovement_SlideNorth(void); +bool8 ForcedMovement_SlideWest(void); +bool8 ForcedMovement_SlideEast(void); +bool8 ForcedMovement_0xBB(void); +bool8 ForcedMovement_0xBC(void); +bool8 ForcedMovement_MuddySlope(void); + #endif // GUARD_FIELD_PLAYER_AVATAR_H From 2ddabca996047b0e6404b926f6455b9e73fc27b2 Mon Sep 17 00:00:00 2001 From: MCboy Date: Sun, 12 Aug 2018 22:31:58 +0430 Subject: [PATCH 090/174] apply some changes --- src/field_player_avatar.c | 122 +++++++++++++++----------------------- 1 file changed, 47 insertions(+), 75 deletions(-) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 3289c19856..6ab7216437 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -11,67 +11,36 @@ #include "overworld.h" #include "rotating_gate.h" #include "constants/event_object_movement_constants.h" +#include "field_player_avatar.h" -bool8 ForcedMovement_None(void); -bool8 ForcedMovement_Slip(void); -bool8 ForcedMovement_WalkSouth(void); -bool8 ForcedMovement_WalkNorth(void); -bool8 ForcedMovement_WalkWest(void); -bool8 ForcedMovement_WalkEast(void); -bool8 ForcedMovement_PushedSouthByCurrent(void); -bool8 ForcedMovement_PushedNorthByCurrent(void); -bool8 ForcedMovement_PushedWestByCurrent(void); -bool8 ForcedMovement_PushedEastByCurrent(void); -bool8 ForcedMovement_SlideSouth(void); -bool8 ForcedMovement_SlideNorth(void); -bool8 ForcedMovement_SlideWest(void); -bool8 ForcedMovement_SlideEast(void); -bool8 ForcedMovement_0xBB(void); -bool8 ForcedMovement_0xBC(void); -bool8 ForcedMovement_MuddySlope(void); - -void task_add_bump_boulder(u8, u8); -u8 GetLedgeJumpDirection(s16 x, s16 y, u8 z); -bool32 CheckForRotatingGatePuzzleCollisionWithoutAnimation(u8, s16, s16); // from rotating_gate.c -bool8 ShouldJumpLedge(s16, s16, u8); -bool8 sub_808B1BC(s16, s16, u8); -u8 sub_808B164(struct EventObject *, s16, s16, u8, u8); -u8 CheckForEventObjectCollision(struct EventObject *, s16, s16, u8, u8); -u8 sub_808B238(s16, s16, u8); -void check_acro_bike_metatile(s16, s16, u8, u8 *); -void PlayerNotOnBikeCollide(u8); -void PlayerNotOnBikeCollideWithFarawayIslandMew(u8); -bool8 IsPlayerCollidingWithFarawayIslandMew(u8); -void PlayerRun(u8); -void PlayerTurnInPlace(u8); -void PlayerFaceDirection(u8); -u8 GetPlayerFacingDirection(void); -void MovePlayerNotOnBike(u8, u16); -u8 CheckMovementInputNotOnBike(u8); -u8 GetPlayerMovementDirection(void); -void sub_808C5B0(void); -void sub_808C4D8(void); -void PlayerJumpLedge(u8); -u8 CheckForPlayerAvatarCollision(u8); -void PlayerGoSpeed1(u8); -void PlayerGoSpeed2(u8); -void PlayerGoSpeed3(u8); +extern void task_add_bump_boulder(u8, u8); +static bool8 ShouldJumpLedge(s16, s16, u8); +static bool8 sub_808B1BC(s16, s16, u8); +static u8 sub_808B164(struct EventObject *, s16, s16, u8, u8); +static u8 sub_808B238(s16, s16, u8); +static void check_acro_bike_metatile(s16, s16, u8, u8 *); +extern void PlayerNotOnBikeCollide(u8); +extern void PlayerNotOnBikeCollideWithFarawayIslandMew(u8); +extern void PlayerRun(u8); +static void MovePlayerNotOnBike(u8, u16); +static u8 CheckMovementInputNotOnBike(u8); +extern void sub_808C5B0(void); +extern void sub_808C4D8(void); +static u8 CheckForPlayerAvatarCollision(u8); static u8 EventObjectCB2_NoMovement2(); -void sub_808C280(struct EventObject *); //struct EventObject *playerEventObj -bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *, u8); +extern void sub_808C280(struct EventObject *); +static bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *, u8); void npc_clear_strange_bits(struct EventObject *); -u8 EventObjectGetHeldMovementActionId(struct EventObject *); -void DoPlayerAvatarTransition(void); -bool8 TryDoMetatileBehaviorForcedMovement(); -void MovePlayerAvatarUsingKeypadInput(u8, u16, u16); -void PlayerAllowForcedMovementIfMovingSameDirection(); -void MovePlayerNotOnBike(u8 a, u16 b); -u8 sub_808B028(u8); -u8 GetForcedMovementByMetatileBehavior(); -void PlayerNotOnBikeNotMoving(u8, u16); -void PlayerNotOnBikeTurningInPlace(u8, u16); -void PlayerNotOnBikeMoving(u8, u16); -void sub_808C750(u8); +extern void DoPlayerAvatarTransition(void); +static bool8 TryDoMetatileBehaviorForcedMovement(); +static void MovePlayerAvatarUsingKeypadInput(u8, u16, u16); +static void PlayerAllowForcedMovementIfMovingSameDirection(); +static u8 sub_808B028(u8); +static u8 GetForcedMovementByMetatileBehavior(); +static void PlayerNotOnBikeNotMoving(u8, u16); +static void PlayerNotOnBikeTurningInPlace(u8, u16); +static void PlayerNotOnBikeMoving(u8, u16); +extern void sub_808C750(u8); static bool8 (*const gUnknown_084973FC[])(u8) = { @@ -94,6 +63,7 @@ static bool8 (*const gUnknown_084973FC[])(u8) = MetatileBehavior_IsSecretBaseSpinMat, MetatileBehavior_IsMuddySlope, }; + static bool8 (*const gUnknown_08497444[])(void) = { ForcedMovement_None, @@ -116,6 +86,7 @@ static bool8 (*const gUnknown_08497444[])(void) = ForcedMovement_0xBC, ForcedMovement_MuddySlope, }; + static void (*const gUnknown_08497490[])(u8, u16) = { PlayerNotOnBikeNotMoving, @@ -131,6 +102,7 @@ static bool8 (*const gUnknown_0849749C[])(u8) = MetatileBehavior_IsVerticalRail, MetatileBehavior_IsHorizontalRail, }; + static const u8 gUnknown_084974B0[] = {9, 10, 11, 12, 13, 0, 0, 0}; void MovementType_Player(struct Sprite *sprite) @@ -164,7 +136,7 @@ void player_step(u8 direction, u16 newKeys, u16 heldKeys) } } -bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 direction) +static bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 direction) { #ifdef NONMATCHING u8 r5 = direction; @@ -213,7 +185,7 @@ void npc_clear_strange_bits(struct EventObject *eventObj) gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_DASH; } -void MovePlayerAvatarUsingKeypadInput(u8 direction, u16 newKeys, u16 heldKeys) +static void MovePlayerAvatarUsingKeypadInput(u8 direction, u16 newKeys, u16 heldKeys) { if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE) || (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE)) @@ -222,18 +194,18 @@ void MovePlayerAvatarUsingKeypadInput(u8 direction, u16 newKeys, u16 heldKeys) MovePlayerNotOnBike(direction, heldKeys); } -void PlayerAllowForcedMovementIfMovingSameDirection(void) +static void PlayerAllowForcedMovementIfMovingSameDirection(void) { if (gPlayerAvatar.runningState == MOVING) gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5; } -bool8 TryDoMetatileBehaviorForcedMovement() +static bool8 TryDoMetatileBehaviorForcedMovement() { return gUnknown_08497444[GetForcedMovementByMetatileBehavior()](); } -u8 GetForcedMovementByMetatileBehavior(void) +static u8 GetForcedMovementByMetatileBehavior(void) { u8 i; @@ -404,12 +376,12 @@ bool8 ForcedMovement_MuddySlope(void) } } -void MovePlayerNotOnBike(u8 direction, u16 heldKeys) +static void MovePlayerNotOnBike(u8 direction, u16 heldKeys) { gUnknown_08497490[CheckMovementInputNotOnBike(direction)](direction, heldKeys); } -u8 CheckMovementInputNotOnBike(u8 direction) +static u8 CheckMovementInputNotOnBike(u8 direction) { if (direction == DIR_NONE) { @@ -428,17 +400,17 @@ u8 CheckMovementInputNotOnBike(u8 direction) } } -void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys) +static void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys) { PlayerFaceDirection(GetPlayerFacingDirection()); } -void PlayerNotOnBikeTurningInPlace(u8 direction, u16 heldKeys) +static void PlayerNotOnBikeTurningInPlace(u8 direction, u16 heldKeys) { PlayerTurnInPlace(direction); } -void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) +static void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) { u8 r0 = CheckForPlayerAvatarCollision(direction); @@ -490,7 +462,7 @@ void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) } } -u8 CheckForPlayerAvatarCollision(u8 direction) +static u8 CheckForPlayerAvatarCollision(u8 direction) { s16 x, y; struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; @@ -501,7 +473,7 @@ u8 CheckForPlayerAvatarCollision(u8 direction) return CheckForEventObjectCollision(playerEventObj, x, y, direction, MapGridGetMetatileBehaviorAt(x, y)); } -u8 sub_808B028(u8 direction) +static u8 sub_808B028(u8 direction) { s16 x, y; struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId]; @@ -536,7 +508,7 @@ u8 CheckForEventObjectCollision(struct EventObject *a, s16 x, s16 y, u8 directio return collision; } -u8 sub_808B164(struct EventObject *a, s16 x, s16 y, u8 direction, u8 e) +static u8 sub_808B164(struct EventObject *a, s16 x, s16 y, u8 direction, u8 e) { u8 collision = GetCollisionAtCoords(a, x, y, direction); @@ -549,7 +521,7 @@ u8 sub_808B164(struct EventObject *a, s16 x, s16 y, u8 direction, u8 e) return collision; } -bool8 sub_808B1BC(s16 x, s16 y, u8 direction) +static bool8 sub_808B1BC(s16 x, s16 y, u8 direction) { if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) && MapGridGetZCoordAt(x, y) == 3 @@ -564,7 +536,7 @@ bool8 sub_808B1BC(s16 x, s16 y, u8 direction) } } -bool8 ShouldJumpLedge(s16 x, s16 y, u8 z) +static bool8 ShouldJumpLedge(s16 x, s16 y, u8 z) { if (GetLedgeJumpDirection(x, y, z) != 0) return TRUE; @@ -572,7 +544,7 @@ bool8 ShouldJumpLedge(s16 x, s16 y, u8 z) return FALSE; } -u8 sub_808B238(s16 x, s16 y, u8 direction) +static u8 sub_808B238(s16 x, s16 y, u8 direction) { if (FlagGet(FLAG_SYS_USE_STRENGTH)) { @@ -594,7 +566,7 @@ u8 sub_808B238(s16 x, s16 y, u8 direction) return 0; } -void check_acro_bike_metatile(s16 unused1, s16 unused2, u8 c, u8 *d) +static void check_acro_bike_metatile(s16 unused1, s16 unused2, u8 c, u8 *d) { u8 i; From 9e9ec8dc963c4786ac3af19102ebe690cb7785d5 Mon Sep 17 00:00:00 2001 From: MCboy Date: Sun, 12 Aug 2018 23:17:27 +0430 Subject: [PATCH 091/174] god damn it contributers :c --- include/event_object_movement.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 4d6251275e..1a473eea99 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -187,6 +187,7 @@ u8 GetMoveDirectionFastAnimNum(u8); u8 GetMoveDirectionFasterAnimNum(u8); u8 GetMoveDirectionFastestAnimNum(u8); u8 GetLedgeJumpDirection(s16, s16, u8); +void CameraObjectSetFollowedObjectId(u8 objectId); void MovementType_None(struct Sprite *); void MovementType_LookAround(struct Sprite *); From 2dd5fc23d4d34890e17a412ae9ad80e23c7aa50d Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sun, 12 Aug 2018 12:54:07 -0700 Subject: [PATCH 092/174] Prepare learn_move for merge --- asm/battle_frontier_2.s | 2 +- asm/easy_chat.s | 8 +- asm/learn_move.s | 1652 -------------------- asm/party_menu.s | 26 +- asm/pokemon_storage_system.s | 8 +- asm/pokemon_summary_screen.s | 2 +- asm/rom_8011DC0.s | 8 +- asm/script_menu.s | 4 +- asm/shop.s | 2 +- asm/slot_machine.s | 2 +- asm/trade.s | 6 +- asm/use_pokeblock.s | 2 +- data/learn_move.s | 93 -- data/maps/FallarborTown_House2/scripts.inc | 2 +- data/specials.inc | 2 +- include/learn_move.h | 4 +- include/list_menu.h | 2 + include/menu.h | 4 +- include/pokemon_summary_screen.h | 1 + include/pokenav.h | 5 +- include/strings.h | 10 + ld_script.txt | 1 - src/battle_script_commands.c | 4 +- src/berry_blender.c | 2 +- src/clear_save_data_screen.c | 2 +- src/egg_hatch.c | 2 +- src/evolution_scene.c | 8 +- src/item_menu.c | 2 +- src/learn_move.c | 877 +++++++++-- src/main_menu.c | 4 +- src/menu.c | 8 +- src/menu_helpers.c | 2 +- src/player_pc.c | 4 +- src/pokeblock.c | 2 +- src/pokemon_summary_screen.c | 2 +- src/secret_base.c | 2 +- src/start_menu.c | 6 +- src/starter_choose.c | 2 +- src/wallclock.c | 2 +- 39 files changed, 875 insertions(+), 1902 deletions(-) delete mode 100644 data/learn_move.s diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 38e0d2e621..8f2d7b0e01 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -11771,7 +11771,7 @@ sub_81A070C: @ 81A070C ldrsh r0, [r4, r1] cmp r0, 0 bne _081A0730 - bl ProcessMenuInputNoWrapAround + bl Menu_ProcessInputNoWrapAround b _081A0734 .pool _081A0730: diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 4ee0fa2aea..dadc5bda44 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -1635,7 +1635,7 @@ _0811AF86: thumb_func_start sub_811AF8C sub_811AF8C: @ 811AF8C push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -1684,7 +1684,7 @@ _0811AFE6: thumb_func_start sub_811AFEC sub_811AFEC: @ 811AFEC push {r4,lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -1727,7 +1727,7 @@ _0811B03A: thumb_func_start sub_811B040 sub_811B040: @ 811B040 push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -1832,7 +1832,7 @@ sub_811B0E8: @ 811B0E8 thumb_func_start sub_811B0F8 sub_811B0F8: @ 811B0F8 push {r4,lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 diff --git a/asm/learn_move.s b/asm/learn_move.s index 2bd50789cc..2428f2984b 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -5,1656 +5,4 @@ .text -/* - thumb_func_start sub_8160624 -sub_8160624: @ 8160624 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8160624 -*/ - -/* - thumb_func_start sub_8160638 -sub_8160638: @ 8160638 - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, =sub_8160664 - movs r1, 0xA - bl CreateTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8160638 -*/ - -/* - thumb_func_start sub_8160664 -sub_8160664: @ 8160664 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08160688 - ldr r0, =sub_81606A0 - bl SetMainCallback2 - ldr r1, =gFieldCallback - ldr r0, =sub_80AF168 - str r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_08160688: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8160664 -*/ - -/* - thumb_func_start sub_81606A0 -sub_81606A0: @ 81606A0 - push {r4-r6,lr} - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - bl clear_scheduled_bg_copies_to_vram - ldr r6, =gUnknown_0203BC34 - movs r0, 0x8C - lsls r0, 1 - bl AllocZeroed - str r0, [r6] - ldr r1, =gSpecialVar_0x8004 - ldrh r1, [r1] - adds r0, 0x44 - movs r5, 0 - strb r1, [r0] - ldr r0, =sub_8160624 - bl SetVBlankCallback - bl sub_81607EC - movs r0, 0 - bl sub_81D2824 - ldr r4, =gUnknown_0203BC38 - movs r0, 0 - strh r5, [r4] - strh r5, [r4, 0x2] - strb r0, [r4, 0x4] - bl sub_8161280 - ldr r0, =gUnknown_085CEBB0 - bl LoadSpriteSheet - ldr r0, =gUnknown_085CEBB8 - bl LoadSpritePalette - bl sub_81610B8 - ldr r0, =gMultiuseListMenuTemplate - ldrh r1, [r4] - ldrh r2, [r4, 0x2] - bl ListMenuInit - ldr r1, [r6] - movs r2, 0x89 - lsls r2, 1 //0x112 - adds r1, r2 //partymon + 0x112 - strb r0, [r1] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - bl FillPalette - ldr r0, =sub_816082C - bl SetMainCallback2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81606A0 -*/ - -/* - thumb_func_start sub_8160740 -sub_8160740: @ 8160740 - push {r4,r5,lr} - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - bl clear_scheduled_bg_copies_to_vram - ldr r5, =gUnknown_0203BC34 - movs r0, 0x8C - lsls r0, 1 - bl AllocZeroed - str r0, [r5] - movs r1, 0x1C - strb r1, [r0] - ldr r0, [r5] - ldr r1, =gSpecialVar_0x8004 - ldrh r1, [r1] - adds r0, 0x44 - strb r1, [r0] - ldr r0, [r5] - ldr r1, =gSpecialVar_0x8005 - ldrh r1, [r1] - adds r0, 0x45 - strb r1, [r0] - ldr r0, =sub_8160624 - bl SetVBlankCallback - bl sub_81607EC - ldr r4, =gUnknown_0203BC38 - ldrb r0, [r4, 0x4] - bl sub_81D2824 - bl sub_8161280 - ldr r0, =gUnknown_085CEBB0 - bl LoadSpriteSheet - ldr r0, =gUnknown_085CEBB8 - bl LoadSpritePalette - bl sub_81610B8 - ldr r0, =gMultiuseListMenuTemplate - ldrh r1, [r4] - ldrh r2, [r4, 0x2] - bl ListMenuInit - ldr r1, [r5] - movs r2, 0x89 - lsls r2, 1 - adds r1, r2 - strb r0, [r1] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - bl FillPalette - ldr r0, =sub_816082C - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8160740 -*/ - -/* - thumb_func_start sub_81607EC -sub_81607EC: @ 81607EC - push {lr} - bl ResetVramOamAndBgCntRegs - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085CEC28 - movs r0, 0 - movs r2, 0x2 - bl InitBgsFromTemplates - bl ResetAllBgsCoordinates - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r0} - bx r0 - .pool - thumb_func_end sub_81607EC -*/ - -/* - thumb_func_start sub_816082C -sub_816082C: @ 816082C - push {lr} - bl sub_8160868 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_816082C -*/ - - thumb_func_start sub_816084C -sub_816084C: @ 816084C - push {r4,lr} - adds r1, r0, 0 - ldr r4, =gStringVar4 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - bl sub_81D2BF4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816084C - - thumb_func_start sub_8160868 -sub_8160868: @ 8160868 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r1, =gUnknown_0203BC34 - ldr r0, [r1] - ldrb r0, [r0] - adds r7, r1, 0 - cmp r0, 0x21 - bls _0816087E - b _08160E8A -_0816087E: - lsls r0, 2 - ldr r1, =_08160890 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08160890: - .4byte _08160918 - .4byte _08160932 - .4byte _0816094C - .4byte _08160954 - .4byte _0816095C - .4byte _08160964 - .4byte _08160980 - .4byte _08160E8A - .4byte _08160988 - .4byte _081609A8 - .4byte _08160E8A - .4byte _08160E8A - .4byte _08160A44 - .4byte _08160A64 - .4byte _08160CB8 - .4byte _08160CD8 - .4byte _08160AB8 - .4byte _08160AD0 - .4byte _08160AEC - .4byte _08160C1C - .4byte _08160C48 - .4byte _08160C98 - .4byte _08160CA6 - .4byte _08160E8A - .4byte _08160B2C - .4byte _08160B60 - .4byte _08160B80 - .4byte _08160BDC - .4byte _08160CFC - .4byte _08160D48 - .4byte _08160E0C - .4byte _08160E38 - .4byte _08160E58 - .4byte _08160E70 -_08160918: - ldr r1, [r7] - ldrb r0, [r1] - adds r0, 0x1 - movs r4, 0 - strb r0, [r1] - movs r0, 0 - bl render_previous_quest_text - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - b _08160CAE -_08160932: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08160940 - b _08160E8A -_08160940: - ldr r1, [r7] - movs r0, 0x4 - b _08160E88 - .pool -_0816094C: - ldr r1, [r7] - ldrb r0, [r1] - adds r0, 0x1 - b _08160E88 -_08160954: - movs r0, 0 - bl render_previous_quest_text - b _0816096A -_0816095C: - movs r0, 0 - bl sub_8160F50 - b _08160E8A -_08160964: - movs r0, 0 - bl sub_8161074 -_0816096A: - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl sub_81611AC - b _08160E8A - .pool -_08160980: - movs r0, 0x1 - bl sub_8160F50 - b _08160E8A -_08160988: - bl sub_81D2C3C - lsls r0, 16 - cmp r0, 0 - beq _08160994 - b _08160E8A -_08160994: - bl sub_81D2C50 - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - b _08160E88 - .pool -_081609A8: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _08160A0A - ldr r5, =gUnknown_0203BC34 - ldr r0, [r5] - adds r0, 0x44 - ldrb r1, [r0] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - bl sub_8161054 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl GiveMoveToMon - lsls r0, 16 - ldr r1, =0xffff0000 - cmp r0, r1 - beq _08160A04 - ldr r0, =gText_PkmnLearnedMove4 - bl sub_816084C - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x1 - strh r0, [r1] - ldr r1, [r5] - movs r0, 0x1F - b _08160E88 - .pool -_08160A04: - ldr r1, [r5] - movs r0, 0x10 - b _08160E88 -_08160A0A: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08160A18 - cmp r1, 0x1 - beq _08160A18 - b _08160E8A -_08160A18: - ldr r0, =gUnknown_0203BC38 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _08160A30 - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x3 - b _08160E88 - .pool -_08160A30: - cmp r0, 0x1 - beq _08160A36 - b _08160E8A -_08160A36: - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x5 - b _08160E88 - .pool -_08160A44: - bl sub_81D2C3C - lsls r0, 16 - cmp r0, 0 - beq _08160A50 - b _08160E8A -_08160A50: - bl sub_81D2C50 - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - b _08160E88 - .pool -_08160A64: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _08160A7C - ldr r0, =gSpecialVar_0x8004 - strh r1, [r0] - b _08160E82 - .pool -_08160A7C: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08160A8A - cmp r1, 0x1 - beq _08160A8A - b _08160E8A -_08160A8A: - ldr r0, =gUnknown_0203BC38 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _08160AA4 - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x3 - b _08160E88 - .pool -_08160AA4: - cmp r0, 0x1 - beq _08160AAA - b _08160E8A -_08160AAA: - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x5 - b _08160E88 - .pool -_08160AB8: - ldr r0, =gText_PkmnTryingToLearnMove - bl sub_816084C - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - b _08160E88 - .pool -_08160AD0: - bl sub_81D2C3C - lsls r0, 16 - cmp r0, 0 - beq _08160ADC - b _08160E8A -_08160ADC: - bl sub_81D2C50 - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x12 - b _08160E88 - .pool -_08160AEC: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _08160B10 - ldr r0, =gText_WhichMoveToForget2 - bl sub_816084C - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x13 - b _08160E88 - .pool -_08160B10: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08160B1E - cmp r1, 0x1 - beq _08160B1E - b _08160E8A -_08160B1E: - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x18 - b _08160E88 - .pool -_08160B2C: - ldr r4, =gStringVar2 - bl sub_8161054 - movs r1, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldr r0, =gText_StopTryingToTeachMove - bl sub_816084C - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - b _08160E88 - .pool -_08160B60: - bl sub_81D2C3C - lsls r0, 16 - cmp r0, 0 - beq _08160B6C - b _08160E8A -_08160B6C: - bl sub_81D2C50 - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - b _08160E88 - .pool -_08160B80: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _08160B98 - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x1B - b _08160E88 - .pool -_08160B98: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08160BA6 - cmp r1, 0x1 - beq _08160BA6 - b _08160E8A -_08160BA6: - ldr r0, =gUnknown_0203BC38 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _08160BC4 - ldr r2, =gUnknown_0203BC34 - ldr r1, [r2] - movs r0, 0x3 - strb r0, [r1] - adds r7, r2, 0 - b _08160BD0 - .pool -_08160BC4: - ldr r7, =gUnknown_0203BC34 - cmp r0, 0x1 - bne _08160BD0 - ldr r1, [r7] - movs r0, 0x5 - strb r0, [r1] -_08160BD0: - ldr r1, [r7] - movs r0, 0x10 - b _08160E88 - .pool -_08160BDC: - bl sub_81D2C3C - lsls r0, 16 - cmp r0, 0 - beq _08160BE8 - b _08160E8A -_08160BE8: - movs r0, 0x3 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_0203BC38 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _08160C08 - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x3 - b _08160E88 - .pool -_08160C08: - cmp r0, 0x1 - beq _08160C0E - b _08160E8A -_08160C0E: - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x5 - b _08160E88 - .pool -_08160C1C: - bl sub_81D2C3C - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08160C2A - b _08160E8A -_08160C2A: - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x14 - strb r0, [r1] - subs r0, 0x15 - str r2, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08160E8A - .pool -_08160C48: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08160C56 - b _08160E8A -_08160C56: - bl sub_8161054 - lsls r0, 16 - lsrs r0, 16 - ldr r4, =gPlayerParty - ldr r1, =gUnknown_0203BC34 - ldr r1, [r1] - adds r1, 0x44 - ldrb r1, [r1] - ldr r2, =gPlayerPartyCount - ldrb r2, [r2] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, =sub_8160740 - str r0, [sp] - adds r0, r4, 0 - bl sub_81BFA38 - bl sub_8160EA0 - b _08160E8A - .pool -_08160C98: - bl sub_81D2C3C - lsls r0, 16 - cmp r0, 0 - beq _08160CA4 - b _08160E8A -_08160CA4: - b _08160E82 -_08160CA6: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] -_08160CAE: - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08160E8A -_08160CB8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - b _08160E88 - .pool -_08160CD8: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08160CE6 - b _08160E8A -_08160CE6: - bl sub_8160EA0 - ldr r0, =CB2_ReturnToField - bl SetMainCallback2 - b _08160E8A - .pool -_08160CFC: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, =gUnknown_0203BC38 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _08160D30 - movs r0, 0x1 - bl render_previous_quest_text - b _08160D3A - .pool -_08160D30: - cmp r0, 0x1 - bne _08160D3A - movs r0, 0x1 - bl sub_8161074 -_08160D3A: - bl sub_8161234 - movs r0, 0x3 - movs r1, 0x2 - bl CopyWindowToVram - b _08160E8A -_08160D48: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08160D56 - b _08160E8A -_08160D56: - ldr r1, [r7] - adds r2, r1, 0 - adds r2, 0x45 - ldrb r0, [r2] - cmp r0, 0x4 - bne _08160D6C - movs r0, 0x18 - b _08160E88 - .pool -_08160D6C: - adds r0, r1, 0 - adds r0, 0x44 - ldrb r0, [r0] - movs r4, 0x64 - muls r0, r4 - ldr r5, =gPlayerParty - adds r0, r5 - ldrb r1, [r2] - adds r1, 0xD - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r2, =gStringVar3 - movs r1, 0xD - mov r8, r1 - mov r1, r8 - muls r1, r0 - ldr r6, =gMoveNames - adds r1, r6 - adds r0, r2, 0 - bl StringCopy - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0x44 - ldrb r0, [r0] - muls r0, r4 - adds r0, r5 - adds r1, 0x45 - ldrb r1, [r1] - bl RemoveMonPPBonus - ldr r0, [r7] - adds r0, 0x44 - ldrb r0, [r0] - muls r4, r0 - adds r4, r5 - bl sub_8161054 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [r7] - adds r0, 0x45 - ldrb r2, [r0] - adds r0, r4, 0 - bl SetMonMoveSlot - ldr r4, =gStringVar2 - bl sub_8161054 - mov r1, r8 - muls r1, r0 - adds r1, r6 - adds r0, r4, 0 - bl StringCopy - ldr r0, =gText_12AndPoof - bl sub_816084C - ldr r1, [r7] - movs r0, 0x1E - strb r0, [r1] - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x1 - strh r0, [r1] - b _08160E8A - .pool -_08160E0C: - bl sub_81D2C3C - lsls r0, 16 - cmp r0, 0 - bne _08160E8A - ldr r0, =gText_PkmnForgotMoveAndLearnedNew - bl sub_816084C - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x1F - strb r0, [r1] - ldr r0, =0x0000016f - bl PlayFanfare - b _08160E8A - .pool -_08160E38: - bl sub_81D2C3C - lsls r0, 16 - cmp r0, 0 - bne _08160E8A - ldr r0, =0x0000016f - bl PlayFanfare - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x20 - b _08160E88 - .pool -_08160E58: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08160E8A - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0x21 - b _08160E88 - .pool -_08160E70: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08160E8A - movs r0, 0x5 - bl PlaySE -_08160E82: - ldr r0, =gUnknown_0203BC34 - ldr r1, [r0] - movs r0, 0xE -_08160E88: - strb r0, [r1] -_08160E8A: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8160868 - - thumb_func_start sub_8160EA0 -sub_8160EA0: @ 8160EA0 - push {r4,lr} - bl sub_8161234 - ldr r4, =gUnknown_0203BC34 - ldr r0, [r4] - movs r1, 0x89 - lsls r1, 1 - adds r0, r1 - ldrb r0, [r0] - ldr r1, =gUnknown_0203BC38 - adds r2, r1, 0x2 - bl DestroyListMenuTask - bl FreeAllWindowBuffers - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - bl ResetSpriteData - bl FreeAllSpritePalettes - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8160EA0 - - thumb_func_start render_previous_quest_text -render_previous_quest_text: @ 8160EE0 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0 - ldr r6, =gSprites - ldr r4, =gUnknown_0203BC34 - movs r3, 0x4 -_08160EF0: - ldr r0, [r4] - adds r0, 0x1 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0xF - ble _08160EF0 - cmp r5, 0 - bne _08160F38 - ldr r4, =gStringVar4 - ldr r1, =gText_TeachWhichMoveToPkmn - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x3 - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r0, 0x1 - str r0, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0 - bl PrintTextOnWindow -_08160F38: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end render_previous_quest_text - - thumb_func_start sub_8160F50 -sub_8160F50: @ 8160F50 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r6, =gUnknown_0203BC34 - ldr r0, [r6] - movs r4, 0x89 - lsls r4, 1 - adds r0, r4 - ldrb r0, [r0] - bl ListMenuHandleInputGetItemId - adds r5, r0, 0 - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - ldr r4, =gUnknown_0203BC38 - adds r2, r4, 0x2 - adds r1, r4, 0 - bl ListMenuGetScrollAndRow - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - beq _08160FE4 - adds r0, 0x1 - cmp r5, r0 - bne _08161010 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - bne _08160F9C - bl GetLRKeysState - lsls r0, 24 - cmp r0, 0 - beq _0816103E -_08160F9C: - movs r0, 0x5 - bl PlaySE - cmp r7, 0 - bne _08160FC4 - movs r0, 0x1 - bl PutWindowTilemap - ldr r0, [r6] - movs r1, 0x5 - strb r1, [r0] - movs r0, 0x1 - strb r0, [r4, 0x4] - b _08160FD4 - .pool -_08160FC4: - movs r0, 0 - bl PutWindowTilemap - ldr r0, [r6] - movs r2, 0 - movs r1, 0x3 - strb r1, [r0] - strb r2, [r4, 0x4] -_08160FD4: - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - bl sub_8161054 - bl sub_816137C - b _0816103E -_08160FE4: - movs r0, 0x5 - bl PlaySE - bl sub_8161234 - ldr r1, [r6] - movs r0, 0xC - strb r0, [r1] - ldr r4, =gStringVar4 - ldr r1, =gText_GiveUpTeachingNewMove - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - bl sub_81D2BF4 - b _0816103E - .pool -_08161010: - movs r0, 0x5 - bl PlaySE - bl sub_8161234 - ldr r1, [r6] - movs r0, 0x8 - strb r0, [r1] - ldr r0, =gStringVar2 - movs r1, 0xD - muls r1, r5 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gText_TeachX - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - bl sub_81D2BF4 -_0816103E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8160F50 - - thumb_func_start sub_8161054 -sub_8161054: @ 8161054 - ldr r0, =gUnknown_0203BC34 - ldr r2, [r0] - ldr r1, =gUnknown_0203BC38 - ldrh r0, [r1, 0x2] - ldrh r1, [r1] - adds r0, r1 - lsls r0, 3 - adds r2, 0x4C - adds r2, r0 - ldr r0, [r2] - bx lr - .pool - thumb_func_end sub_8161054 - - thumb_func_start sub_8161074 -sub_8161074: @ 8161074 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _081610A6 - ldr r4, =gStringVar4 - ldr r1, =gText_TeachWhichMoveToPkmn - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x3 - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r0, 0x1 - str r0, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0 - bl PrintTextOnWindow -_081610A6: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161074 - - thumb_func_start sub_81610B8 -sub_81610B8: @ 81610B8 - push {r4-r7,lr} - ldr r2, =gUnknown_0203BC34 - ldr r0, [r2] - movs r1, 0x8A - lsls r1, 1 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, [r2] - ldr r2, =0x00000113 - adds r1, r0, r2 - movs r0, 0x1 - negs r0, r0 - strb r0, [r1] - bl sub_81611AC - movs r4, 0 - ldr r5, =gUnknown_085CEC10 -_081610DC: - adds r2, r4, 0 - cmp r4, 0 - bge _081610E4 - adds r2, r4, 0x3 -_081610E4: - asrs r2, 2 - lsls r1, r2, 2 - subs r1, r4, r1 - lsls r1, 19 - movs r0, 0xD0 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - lsls r2, 19 - movs r0, 0x90 - lsls r0, 14 - adds r2, r0 - asrs r2, 16 - adds r0, r5, 0 - movs r3, 0 - bl CreateSprite - ldr r2, =gUnknown_0203BC34 - ldr r1, [r2] - adds r1, 0x1 - adds r1, r4 - strb r0, [r1] - adds r4, 0x1 - cmp r4, 0x7 - ble _081610DC - movs r4, 0 - ldr r7, =gUnknown_085CEC10 - adds r6, r2, 0 -_0816111C: - adds r2, r4, 0 - cmp r4, 0 - bge _08161124 - adds r2, r4, 0x3 -_08161124: - asrs r2, 2 - lsls r1, r2, 2 - subs r1, r4, r1 - lsls r1, 19 - movs r0, 0xD0 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - lsls r2, 19 - movs r0, 0xD0 - lsls r0, 14 - adds r2, r0 - asrs r2, 16 - adds r0, r7, 0 - movs r3, 0 - bl CreateSprite - ldr r1, [r6] - adds r2, r4, 0 - adds r2, 0x8 - adds r1, 0x1 - adds r1, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x1 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gSprites - adds r0, r5 - movs r1, 0x2 - bl StartSpriteAnim - adds r4, 0x1 - cmp r4, 0x7 - ble _0816111C - movs r4, 0 - ldr r3, =gUnknown_0203BC34 - movs r2, 0x4 -_08161176: - ldr r0, [r3] - adds r0, 0x1 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0xF - ble _08161176 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81610B8 - - thumb_func_start sub_81611AC -sub_81611AC: @ 81611AC - push {r4-r6,lr} - ldr r4, =gUnknown_0203BC34 - ldr r1, [r4] - movs r2, 0x8A - lsls r2, 1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081611D4 - ldr r0, =gUnknown_085CEBC0 - movs r3, 0x8B - lsls r3, 1 - adds r1, r3 - bl AddScrollIndicatorArrowPair - ldr r1, [r4] - movs r5, 0x8A - lsls r5, 1 - adds r1, r5 - strb r0, [r1] -_081611D4: - ldr r0, [r4] - ldr r6, =0x00000113 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08161210 - ldr r0, =gTempScrollArrowTemplate - adds r2, r0, 0 - ldr r1, =gUnknown_085CEBD0 - ldm r1!, {r3,r5,r6} - stm r2!, {r3,r5,r6} - ldr r1, [r1] - str r1, [r2] - ldr r2, [r4] - movs r3, 0x88 - lsls r3, 1 - adds r1, r2, r3 - ldrb r1, [r1] - ldr r5, =0x00000111 - adds r2, r5 - ldrb r2, [r2] - subs r1, r2 - strh r1, [r0, 0x8] - ldr r1, =gUnknown_0203BC38 - bl AddScrollIndicatorArrowPair - ldr r1, [r4] - ldr r6, =0x00000113 - adds r1, r6 - strb r0, [r1] -_08161210: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81611AC - - thumb_func_start sub_8161234 -sub_8161234: @ 8161234 - push {r4,lr} - ldr r4, =gUnknown_0203BC34 - ldr r0, [r4] - movs r2, 0x8A - lsls r2, 1 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08161256 - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - movs r1, 0x8A - lsls r1, 1 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] -_08161256: - ldr r0, [r4] - ldr r2, =0x00000113 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08161270 - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r2, =0x00000113 - adds r1, r0, r2 - movs r0, 0xFF - strb r0, [r1] -_08161270: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161234 - - thumb_func_start sub_8161280 -sub_8161280: @ 8161280 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - ldr r4, =gUnknown_0203BC34 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x44 - ldrb r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - adds r1, 0x12 - bl GetMoveRelearnerMoves - ldr r1, [r4] - movs r6, 0x88 - lsls r6, 1 - adds r1, r6 - strb r0, [r1] - movs r5, 0 - ldr r0, [r4] - adds r0, r6 - ldrb r0, [r0] - cmp r5, r0 - bge _081612F6 - mov r8, r4 - movs r0, 0xD - mov r12, r0 - ldr r2, =gMoveNames - mov r9, r2 -_081612C2: - mov r7, r8 - ldr r4, [r7] - lsls r3, r5, 3 - adds r2, r4, 0 - adds r2, 0x48 - adds r2, r3 - lsls r0, r5, 1 - adds r1, r4, 0 - adds r1, 0x12 - adds r1, r0 - ldrh r0, [r1] - mov r7, r12 - muls r7, r0 - adds r0, r7, 0 - add r0, r9 - str r0, [r2] - adds r0, r4, 0 - adds r0, 0x4C - adds r0, r3 - ldrh r1, [r1] - str r1, [r0] - adds r5, 0x1 - adds r0, r4, r6 - ldrb r0, [r0] - cmp r5, r0 - blt _081612C2 -_081612F6: - ldr r4, =gUnknown_0203BC34 - ldr r0, [r4] - adds r0, 0x44 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - ldr r0, =gStringVar1 - mov r1, sp - bl StringCopy10 - ldr r2, [r4] - movs r5, 0x88 - lsls r5, 1 - adds r3, r2, r5 - ldrb r0, [r3] - lsls r0, 3 - adds r1, r2, 0 - adds r1, 0x48 - adds r1, r0 - ldr r0, =gText_Cancel - str r0, [r1] - ldrb r0, [r3] - lsls r0, 3 - adds r2, 0x4C - adds r2, r0 - movs r0, 0x2 - negs r0, r0 - str r0, [r2] - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x48 - adds r1, r5 - ldrb r1, [r1] - bl sub_81D28C8 - ldr r1, [r4] - ldr r2, =0x00000111 - adds r1, r2 - strb r0, [r1] - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161280 - - thumb_func_start sub_816137C -sub_816137C: @ 816137C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - ldr r0, =gUnknown_0203BC38 - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _08161394 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - bne _081613CC -_08161394: - movs r5, 0 - ldr r4, =gSprites - ldr r3, =gUnknown_0203BC34 - movs r2, 0x4 -_0816139C: - ldr r0, [r3] - adds r0, 0x1 - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xF - bls _0816139C - b _081614FE - .pool -_081613CC: - ldr r1, =gContestEffects - ldr r0, =gContestMoves - lsls r4, 3 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r6, r0, 24 - mov r8, r4 - cmp r6, 0xFF - bne _081613EE - movs r6, 0 -_081613EE: - movs r5, 0 - ldr r7, =gUnknown_0203BC34 - ldr r4, =gSprites -_081613F4: - cmp r5, r6 - bcs _08161420 - ldr r0, [r7] - adds r0, 0x1 - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAnim - b _08161436 - .pool -_08161420: - ldr r0, [r7] - adds r0, 0x1 - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0 - bl StartSpriteAnim -_08161436: - ldr r0, [r7] - adds r0, 0x1 - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r3, 0x5 - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x7 - bls _081613F4 - ldr r1, =gContestEffects - ldr r0, =gContestMoves - add r0, r8 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xFF - bne _0816147C - movs r6, 0 -_0816147C: - movs r5, 0 - ldr r0, =gUnknown_0203BC34 - mov r8, r0 - ldr r7, =gSprites -_08161484: - cmp r5, r6 - bcs _081614B8 - mov r1, r8 - ldr r0, [r1] - adds r4, r5, 0 - adds r4, 0x8 - adds r0, 0x1 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0x3 - bl StartSpriteAnim - b _081614D4 - .pool -_081614B8: - mov r3, r8 - ldr r0, [r3] - adds r4, r5, 0 - adds r4, 0x8 - adds r0, 0x1 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0x2 - bl StartSpriteAnim -_081614D4: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x1 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x3E - ldrb r1, [r0] - movs r3, 0x5 - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x7 - bls _08161484 -_081614FE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_816137C - .align 2, 0 @ Don't pad with nop. diff --git a/asm/party_menu.s b/asm/party_menu.s index 0d5c6b6313..5c70e218e6 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -2740,7 +2740,7 @@ sub_81B1708: @ 81B1708 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -4196,7 +4196,7 @@ sub_81B227C: @ 81B227C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -6692,7 +6692,7 @@ sub_81B3730: @ 81B3730 ldrb r0, [r0, 0x17] cmp r0, 0x3 bhi _081B3774 - bl ProcessMenuInputNoWrapAround_other + bl Menu_ProcessInputNoWrapAround_other b _081B3778 .pool _081B3774: @@ -8138,7 +8138,7 @@ sub_81B43DC: @ 81B43DC push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -8671,7 +8671,7 @@ sub_81B48DC: @ 81B48DC muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -8963,7 +8963,7 @@ sub_81B4BA0: @ 81B4BA0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -9069,7 +9069,7 @@ sub_81B4C94: @ 81B4C94 push {r7} lsls r0, 24 lsrs r5, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -9877,7 +9877,7 @@ sub_81B5430: @ 81B5430 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -10171,7 +10171,7 @@ sub_81B56D8: @ 81B56D8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -13156,7 +13156,7 @@ sub_81B7028: @ 81B7028 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -13235,7 +13235,7 @@ sub_81B70B8: @ 81B70B8 ldr r3, =sub_81B70F0 ldrh r4, [r4, 0xE] str r4, [sp] - bl sub_81BFA38 + bl ShowSelectMovePokemonSummaryScreen add sp, 0x4 pop {r4} pop {r0} @@ -13458,7 +13458,7 @@ sub_81B72C8: @ 81B72C8 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r5, r0, 24 cmp r5, 0 @@ -15240,7 +15240,7 @@ sub_81B82D4: @ 81B82D4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 24e041b7f5..e4475c1594 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -3409,7 +3409,7 @@ _080C8F0C: adds r0, 0x1 strb r0, [r1] _080C8F22: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -4133,7 +4133,7 @@ _080C9584: b _080C9664 .pool _080C95A4: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -4927,7 +4927,7 @@ _080C9C78: b _080C9CAA .pool _080C9C8C: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -5058,7 +5058,7 @@ _080C9DAC: b _080C9DE0 .pool _080C9DC0: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index b2cba6dab6..91b1693fd8 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -3040,7 +3040,7 @@ sub_81C5F68: @ 81C5F68 lsrs r0, 24 cmp r0, 0x1 beq _081C5FD0 - bl ProcessMenuInputNoWrapAround + bl Menu_ProcessInputNoWrapAround lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s index 61324b2078..306e2892d5 100644 --- a/asm/rom_8011DC0.s +++ b/asm/rom_8011DC0.s @@ -2920,7 +2920,7 @@ _080170E0: negs r0, r0 b _08017110 _080170F2: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 movs r2, 0x80 @@ -6278,7 +6278,7 @@ _08018BD6: b _08018C3E .pool _08018BE4: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r6, r0, 24 movs r1, 0x80 @@ -28890,7 +28890,7 @@ _0802426A: bl sub_8197930 b _080242D0 _08024270: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 @@ -47811,7 +47811,7 @@ _0802DA84: thumb_func_start sub_802DA8C sub_802DA8C: @ 802DA8C push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r0, 24 pop {r1} diff --git a/asm/script_menu.s b/asm/script_menu.s index 670740a777..b521121bfd 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -327,7 +327,7 @@ _080E2090: ldrsh r0, [r5, r1] cmp r0, 0 bne _080E209E - bl ProcessMenuInputNoWrapAround + bl Menu_ProcessInputNoWrapAround b _080E20A2 _080E209E: bl ProcessMenuInput @@ -444,7 +444,7 @@ task_yes_no_maybe: @ 80E215C b _080E21C4 .pool _080E2180: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 diff --git a/asm/shop.s b/asm/shop.s index 1412fef22a..30a5ec278a 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -137,7 +137,7 @@ Task_ShopMenu: @ 80DFB88 lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 - bl ProcessMenuInputNoWrapAround + bl Menu_ProcessInputNoWrapAround lsls r0, 24 asrs r2, r0, 24 movs r0, 0x2 diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 4f76d1b699..0f7b84d3cc 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -1581,7 +1581,7 @@ sub_812B158: @ 812B158 thumb_func_start sub_812B1B0 sub_812B1B0: @ 812B1B0 push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 diff --git a/asm/trade.s b/asm/trade.s index 763b1a9ec3..19dfd5ff92 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -3349,7 +3349,7 @@ sub_8078EF8: @ 8078EF8 sub_8078F50: @ 8078F50 push {lr} sub sp, 0x4 - bl ProcessMenuInputNoWrapAround + bl Menu_ProcessInputNoWrapAround lsls r0, 24 asrs r0, 24 movs r1, 0x1 @@ -3695,7 +3695,7 @@ _0807920E: thumb_func_start sub_8079218 sub_8079218: @ 8079218 push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -3797,7 +3797,7 @@ _080792D8: thumb_func_start sub_80792E4 sub_80792E4: @ 80792E4 push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s index 5047ec65e8..4cee3c4d90 100644 --- a/asm/use_pokeblock.s +++ b/asm/use_pokeblock.s @@ -900,7 +900,7 @@ sub_8166D44: @ 8166D44 thumb_func_start sub_8166DE4 sub_8166DE4: @ 8166DE4 push {r4,lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrap_ lsls r0, 24 lsrs r4, r0, 24 asrs r1, r0, 24 diff --git a/data/learn_move.s b/data/learn_move.s deleted file mode 100644 index 0a2c31e581..0000000000 --- a/data/learn_move.s +++ /dev/null @@ -1,93 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_085CE9F8:: @ 85CE9F8 - .incbin "graphics/interface/ui_learn_move.gbapal" - -gUnknown_085CEA18:: @ 85CEA18 - .incbin "graphics/interface/ui_learn_move.4bpp" - -gUnknown_085CEB98:: @ 85CEB98 - .2byte 0 - .2byte 0 - .2byte 0 - .2byte 0 - .2byte 0x8000 - .2byte 0 - .2byte 0 - .2byte 0 - .2byte 0x4000 - .2byte 0 - .2byte 0 - .2byte 0 - -gUnknown_085CEBB0:: @ 85CEBB0 - obj_tiles gUnknown_085CEA18, 0x180, 0x1595 - -gUnknown_085CEBB8:: @ 85CEBB8 - obj_pal gUnknown_085CE9F8, 0x1596 - -gUnknown_085CEBC0:: @ 85CEBC0 - .byte 0 - .byte 0x1B - .byte 16 - .byte 1 - .byte 0x75 - .byte 16 - .2byte 0xFFFF - .2byte 0xFFFF - .2byte 0x14CD - .2byte 0x14CD - .byte 0, 0 - -gUnknown_085CEBD0:: @ 85CEBD0 - .byte 2 - .byte 0xC0 - .byte 8 - .byte 3 - .byte 0xC0 - .byte 0x68 - .2byte 0 - .2byte 0 - .2byte 0x1531 - .2byte 0x1531 - .byte 0, 0 - -gUnknown_085CEBE0:: @ 85CEBE0 - .2byte 8 - .2byte 5 - .2byte 0xFFFF - .2byte 0 - -gUnknown_085CEBE8:: @ 85CEBE8 - .2byte 9 - .2byte 5 - .2byte 0xFFFF - .2byte 0 - -gUnknown_085CEBF0:: @ 85CEBF0 - .2byte 10 - .2byte 5 - .2byte 0xFFFF - .2byte 0 - -gUnknown_085CEBF8:: @ 85CEBF8 - .2byte 11 - .2byte 5 - .2byte 0xFFFF - .2byte 0 - -gUnknown_085CEC00:: @ 85CEC00 - .4byte gUnknown_085CEBE0 - .4byte gUnknown_085CEBE8 - .4byte gUnknown_085CEBF0 - .4byte gUnknown_085CEBF8 - -gUnknown_085CEC10:: @ 85CEC10 - spr_template 0x1595, 0x1596, gUnknown_085CEB98, gUnknown_085CEC00, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_085CEC28:: @ 85CEC28 - .4byte 0x1F0 - .4byte 0x11E1 diff --git a/data/maps/FallarborTown_House2/scripts.inc b/data/maps/FallarborTown_House2/scripts.inc index b78756e0af..7ab0666e89 100644 --- a/data/maps/FallarborTown_House2/scripts.inc +++ b/data/maps/FallarborTown_House2/scripts.inc @@ -38,7 +38,7 @@ FallarborTown_House2_EventScript_2013D6:: @ 82013D6 FallarborTown_House2_EventScript_20140C:: @ 820140C msgbox FallarborTown_House2_Text_2015C3, 4 - special sub_8160638 + special TeachMoveTutorMove waitstate compare VAR_0x8004, 0 goto_eq FallarborTown_House2_EventScript_2013D6 diff --git a/data/specials.inc b/data/specials.inc index 86355f4840..01bb9cb896 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -235,7 +235,7 @@ gSpecials:: @ 81DBA64 def_special sub_81B9770 def_special sub_81B9718 def_special sub_81B96D0 - def_special sub_8160638 + def_special TeachMoveTutorMove def_special GetRecordedCyclingRoadResults def_special Special_BeginCyclingRoadChallenge def_special GetPlayerAvatarBike diff --git a/include/learn_move.h b/include/learn_move.h index 034d689d42..9a7a779df8 100644 --- a/include/learn_move.h +++ b/include/learn_move.h @@ -1,7 +1,7 @@ #ifndef GUARD_LEARN_MOVE_H #define GUARD_LEARN_MOVE_H -void sub_8160624(void); -void sub_8160638(void); +void VBlankCB_LearnMove(void); +void TeachMoveTutorMove(void); #endif //GUARD_LEARN_MOVE_H diff --git a/include/list_menu.h b/include/list_menu.h index d38980213c..ee3d60f3da 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -1,6 +1,8 @@ #ifndef GUARD_LIST_MENU_H #define GUARD_LIST_MENU_H +#include "window.h" + #define LIST_NOTHING_CHOSEN -1 #define LIST_B_PRESSED -2 #define LIST_HEADER -3 diff --git a/include/menu.h b/include/menu.h index 4cc43dd4c5..5dfd99c64e 100644 --- a/include/menu.h +++ b/include/menu.h @@ -46,7 +46,7 @@ void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs); u8 InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 windowId, u8 numItems, u8 initialCursorPos); u8 GetMenuCursorPos(void); s8 ProcessMenuInput(void); -s8 ProcessMenuInputNoWrapAround(void); +s8 Menu_ProcessInputNoWrapAround(void); void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y); void reset_temp_tile_data_buffers(void); void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode); @@ -54,7 +54,7 @@ bool8 free_temp_tile_data_buffers_if_possible(void); struct WindowTemplate CreateWindowTemplate(u8, u8, u8, u8, u8, u8, u16); void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode); -s8 ProcessMenuInputNoWrap_(void); +s8 Menu_ProcessInputNoWrap_(void); s8 ProcessMenuInput_other(void); void do_scheduled_bg_tilemap_copies_to_vram(void); void clear_scheduled_bg_copies_to_vram(void); diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index adadcea038..75caa9a3a0 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -2,5 +2,6 @@ #define GUARD_POKEMON_SUMMARY_SCREEN_H void sub_81C4F98(u8, void(*)(void)); +void ShowSelectMovePokemonSummaryScreen(void *a, u8 b, u8 c, void *d, u16 e); #endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/include/pokenav.h b/include/pokenav.h index 2bca4db941..1fef8c91bd 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -22,6 +22,9 @@ void sub_81D1D04(u8); bool8 sub_81D1C44(u8); void sub_81D5FB4(u16*); bool8 sub_81D4A58(struct EventObject*); - +void sub_81D2BF4(u8 *); +u16 sub_81D2C3C(void); +void sub_81D2C50(void); +u8 sub_81D28C8(const struct ListMenuItem *items, u16 numChoices); #endif //GUARD_POKENAV_H diff --git a/include/strings.h b/include/strings.h index 528f70f69e..f8d108eba5 100644 --- a/include/strings.h +++ b/include/strings.h @@ -762,4 +762,14 @@ extern const u8 gText_Winona[]; extern const u8 gText_Phoebe[]; extern const u8 gText_Glacia[]; +extern const u8 gText_PkmnLearnedMove4[]; +extern const u8 gText_PkmnTryingToLearnMove[]; +extern const u8 gText_WhichMoveToForget2[]; +extern const u8 gText_StopTryingToTeachMove[]; +extern const u8 gText_12AndPoof[]; +extern const u8 gText_PkmnForgotMoveAndLearnedNew[]; +extern const u8 gText_TeachWhichMoveToPkmn[]; +extern const u8 gText_GiveUpTeachingNewMove[]; +extern const u8 gText_TeachX[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 69e677e9b2..972ced45be 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -486,7 +486,6 @@ SECTIONS { data/contest_ai.o(.rodata); src/battle_controller_safari.o(.rodata); data/battle_anim_815A0D4.o(.rodata); - data/learn_move.o(.rodata); src/learn_move.o(.rodata); src/roamer.o(.rodata); data/battle_tower.o(.rodata); diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 7f5a4fb487..b13727a126 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -55,7 +55,7 @@ extern const u8* const gBattleScriptsForMoveEffects[]; // functions extern void sub_81A5718(u8 battlerId); // battle frontier 2 extern void sub_81A56B4(void); // battle frontier 2 -extern void sub_81BFA38(struct Pokemon* party, u8 monPartyId, u8 monCount, void (*callback)(void), u16 move); // pokemon summary screen +extern void ShowSelectMovePokemonSummaryScreen(struct Pokemon* party, u8 monPartyId, u8 monCount, void (*callback)(void), u16 move); // pokemon summary screen extern u8 sub_81C1B94(void); // pokemon summary screen extern void sub_81D388C(struct Pokemon* mon, void* statStoreLocation); // pokenav.s extern void sub_81D3640(u8 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); // pokenav.s @@ -5732,7 +5732,7 @@ static void atk5A_yesnoboxlearnmove(void) if (!gPaletteFade.active) { FreeAllWindowBuffers(); - sub_81BFA38(gPlayerParty, gBattleStruct->expGetterMonId, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn); + ShowSelectMovePokemonSummaryScreen(gPlayerParty, gBattleStruct->expGetterMonId, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn); gBattleScripting.learnMoveState++; } break; diff --git a/src/berry_blender.c b/src/berry_blender.c index 257c7233fa..46b0f76ada 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -2436,7 +2436,7 @@ static void CB2_HandleBlenderEndGame(void) sBerryBlenderData->gameEndState++; break; case 10: - switch (ProcessMenuInputNoWrap_()) + switch (Menu_ProcessInputNoWrap_()) { case 1: case -1: diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 266ea8250f..5c1f7db20d 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -86,7 +86,7 @@ static void Task_DoClearSaveDataScreenYesNo(u8 taskId) static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId) { - switch(ProcessMenuInputNoWrap_()) + switch(Menu_ProcessInputNoWrap_()) { case 0: FillWindowPixelBuffer(0, 17); diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 67876f33b6..ab0cd92a23 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -659,7 +659,7 @@ static void CB2_EggHatch_1(void) } break; case 10: - switch (ProcessMenuInputNoWrap_()) + switch (Menu_ProcessInputNoWrap_()) { case 0: GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3); diff --git a/src/evolution_scene.c b/src/evolution_scene.c index f039c5f245..7960d6cba1 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -66,7 +66,7 @@ extern void sub_807F19C(void); extern void sub_807B140(void); extern void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies); extern void Overworld_PlaySpecialMapMusic(void); -extern void sub_81BFA38(struct Pokemon *party, u8 monId, u8 partyCount, void *CB2_ptr, u16 move); +extern void ShowSelectMovePokemonSummaryScreen(struct Pokemon *party, u8 monId, u8 partyCount, void *CB2_ptr, u16 move); extern u8 sub_81C1B94(void); extern void sub_807F1A8(u8 arg0, const u8 *arg1, u8 arg2); extern void sub_800E084(void); @@ -918,7 +918,7 @@ static void Task_EvolutionScene(u8 taskID) if (!gPaletteFade.active) { FreeAllWindowBuffers(); - sub_81BFA38(gPlayerParty, gTasks[taskID].tPartyID, + ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskID].tPartyID, gPlayerPartyCount - 1, CB2_EvolutionSceneLoadGraphics, gMoveToLearn); gTasks[taskID].tLearnMoveState++; @@ -1222,7 +1222,7 @@ static void Task_TradeEvolutionScene(u8 taskID) } break; case 4: - switch (ProcessMenuInputNoWrap_()) + switch (Menu_ProcessInputNoWrap_()) { case 0: sEvoCursorPos = 0; @@ -1252,7 +1252,7 @@ static void Task_TradeEvolutionScene(u8 taskID) Free(GetBgTilemapBuffer(0)); FreeAllWindowBuffers(); - sub_81BFA38(gPlayerParty, gTasks[taskID].tPartyID, + ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskID].tPartyID, gPlayerPartyCount - 1, CB2_TradeEvolutionSceneLoadGraphics, gMoveToLearn); gTasks[taskID].tLearnMoveState++; diff --git a/src/item_menu.c b/src/item_menu.c index d134e63751..f58c2b8b3e 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1369,7 +1369,7 @@ void Task_HandleInBattleItemMenuInput(u8 taskId) { if (sub_81221EC() != TRUE) { - s8 r4 = ProcessMenuInputNoWrapAround(); + s8 r4 = Menu_ProcessInputNoWrapAround(); switch (r4) { case -2: diff --git a/src/learn_move.c b/src/learn_move.c index addae6a385..b65fd2045d 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -1,26 +1,219 @@ #include "global.h" #include "main.h" -#include "task.h" -#include "script.h" -#include "sprite.h" -#include "palette.h" -#include "menu.h" -#include "menu_helpers.h" -#include "list_menu.h" -#include "malloc.h" -#include "field_screen.h" -#include "event_data.h" #include "bg.h" +#include "data2.h" +#include "event_data.h" +#include "field_screen.h" #include "gpu_regs.h" #include "learn_move.h" +#include "list_menu.h" +#include "malloc.h" +#include "menu.h" +#include "menu_helpers.h" +#include "overworld.h" +#include "palette.h" +#include "pokemon_summary_screen.h" +#include "pokenav.h" +#include "script.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "constants/rgb.h" +#include "constants/songs.h" -EWRAM_DATA u8 *gUnknown_0203BC34 = 0; -EWRAM_DATA u8 gUnknown_0203BC38[8] = {0}; +struct LearnMoveStruct +{ + u8 state; + u8 spriteIds[16]; /*0x001*/ + u8 filler11; /*0x011*/ + u16 movesToLearn[4]; /*0x012*/ + u8 filler1A[0x44 - 0x1A]; /*0x01A*/ + u8 partyMon; /*0x044*/ + u8 unk045; /*0x045*/ + u8 filler46[2]; /*0x046*/ + struct ListMenuItem menuItems[4]; /*0x048*/ + u8 filler68[0x110 - 0x68]; /*0x068*/ + u8 numMenuChoices; /*0x110*/ + u8 unk111; /*0x111*/ + u8 listMenuTask; /*0x112*/ + u8 unk113; /*0x113*/ + u8 unk114; /*0x114*/ + u16 unk116; /*0x116*/ +}; + +EWRAM_DATA struct LearnMoveStruct *sLearnMoveStruct = {0}; +EWRAM_DATA struct { + u16 listOffset; + u16 listRow; + u8 showContestInfo; +} gUnknown_0203BC38 = {0}; extern void (*gFieldCallback)(void); -extern const struct SpritePalette gUnknown_085CEBB8; -extern const struct SpriteSheet gUnknown_085CEBB0; -extern const struct BgTemplate gUnknown_085CEC28; + +const u16 gUnknown_085CE9F8[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); +const u8 gUnknown_085CEA18[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp"); + +const struct OamData gUnknown_085CEB98 = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const struct OamData gUnknown_085CEBA0 = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_V_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const struct OamData gUnknown_085CEBA8 = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const struct SpriteSheet gUnknown_085CEBB0 = +{ + .data = gUnknown_085CEA18, + .size = 0x180, + .tag = 5525 +}; + +const struct SpritePalette gUnknown_085CEBB8 = +{ + .data = gUnknown_085CE9F8, + .tag = 5526 +}; + +const struct ScrollArrowsTemplate gUnknown_085CEBC0 = +{ + .firstArrowType = 0, + .firstX = 27, + .firstY = 16, + .secondArrowType = 1, + .secondX = 117, + .secondY = 16, + .fullyUpThreshold = -1, + .fullyDownThreshold = -1, + .tileTag = 5325, + .palTag = 5325, + .palNum = 0, +}; + +const struct ScrollArrowsTemplate gUnknown_085CEBD0 = +{ + .firstArrowType = 2, + .firstX = 192, + .firstY = 8, + .secondArrowType = 3, + .secondX = 192, + .secondY = 104, + .fullyUpThreshold = 0, + .fullyDownThreshold = 0, + .tileTag = 5425, + .palTag = 5425, + .palNum = 0, +}; + +const union AnimCmd gUnknown_085CEBE0[] = +{ + ANIMCMD_FRAME(8, 5, FALSE, FALSE), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_085CEBE8[] = +{ + ANIMCMD_FRAME(9, 5, FALSE, FALSE), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_085CEBF0[] = +{ + ANIMCMD_FRAME(10, 5, FALSE, FALSE), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_085CEBF8[] = +{ + ANIMCMD_FRAME(11, 5, FALSE, FALSE), + ANIMCMD_END +}; + +const union AnimCmd *const gUnknown_085CEC00[] = +{ + gUnknown_085CEBE0, + gUnknown_085CEBE8, + gUnknown_085CEBF0, + gUnknown_085CEBF8, +}; + +const struct SpriteTemplate gUnknown_085CEC10 = +{ + .tileTag = 5525, + .paletteTag = 5526, + .oam = &gUnknown_085CEB98, + .anims = gUnknown_085CEC00, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct BgTemplate gUnknown_085CEC28[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0, + }, +}; + extern void sub_81D2824(u16); void sub_8160868(void); @@ -29,111 +222,621 @@ void sub_81610B8(void); void sub_816082C(void); static void sub_8160664(u8 taskId); -void sub_81606A0(void); //CB2_InitLearnMove +void CB2_InitLearnMove(void); void sub_8160740(void); void sub_81607EC(void); void sub_816082C(void); -void sub_8160624(void) //VBlankCB_LearnMove +void VBlankCB_LearnMove(void) { - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); } -void sub_8160638(void) //TeachMoveTutorMove +void TeachMoveTutorMove(void) { - ScriptContext2_Enable(); - CreateTask(sub_8160664, 0xA); - BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + ScriptContext2_Enable(); + CreateTask(sub_8160664, 0xA); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); } void sub_8160664(u8 taskId) { - if (!gPaletteFade.active) - { - SetMainCallback2(sub_81606A0); - gFieldCallback = sub_80AF168; - DestroyTask(taskId); - } + if (!gPaletteFade.active) + { + SetMainCallback2(CB2_InitLearnMove); + gFieldCallback = sub_80AF168; + DestroyTask(taskId); + } } -// Doesn't match -void sub_81606A0(void) //CB2_InitLearnMove +void CB2_InitLearnMove(void) { - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + sLearnMoveStruct = AllocZeroed(sizeof(struct LearnMoveStruct)); + sLearnMoveStruct->partyMon = gSpecialVar_0x8004; + SetVBlankCallback(VBlankCB_LearnMove); - gUnknown_0203BC34 = AllocZeroed(0x118); //gUnknown_0203BC34 ? - gUnknown_0203BC34[68] = gSpecialVar_0x8004; + sub_81607EC(); + sub_81D2824(0); - SetVBlankCallback(sub_8160624); - sub_81607EC(); - sub_81D2824(0); + gUnknown_0203BC38.listOffset = 0; + gUnknown_0203BC38.listRow = 0; + gUnknown_0203BC38.showContestInfo = 0; - //gUnknown_0203BC38 ? - gUnknown_0203BC38[0] = 0; - gUnknown_0203BC38[2] = 0; - gUnknown_0203BC38[4] = 0; + sub_8161280(); - sub_8161280(); + LoadSpriteSheet(&gUnknown_085CEBB0); + LoadSpritePalette(&gUnknown_085CEBB8); + sub_81610B8(); - LoadSpriteSheet(&gUnknown_085CEBB0); - LoadSpritePalette(&gUnknown_085CEBB8); - sub_81610B8(); - - gUnknown_0203BC34[274] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203BC38[0], gUnknown_0203BC38[2]); - FillPalette(0, 0, 2); - SetMainCallback2(sub_816082C); + sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203BC38.listOffset, gUnknown_0203BC38.listRow); + FillPalette(RGB_BLACK, 0, 2); + SetMainCallback2(sub_816082C); } -// Doesn't match void sub_8160740(void) { - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + sLearnMoveStruct = AllocZeroed(sizeof(struct LearnMoveStruct)); + sLearnMoveStruct->state = 28; + sLearnMoveStruct->partyMon = gSpecialVar_0x8004; + sLearnMoveStruct->unk045 = gSpecialVar_0x8005; + SetVBlankCallback(VBlankCB_LearnMove); - gUnknown_0203BC34 = AllocZeroed(0x118); //gUnknown_0203BC34 ? - gUnknown_0203BC34[68] = gSpecialVar_0x8004; - gUnknown_0203BC34[69] = gSpecialVar_0x8005; + sub_81607EC(); + sub_81D2824(gUnknown_0203BC38.showContestInfo); + sub_8161280(); - SetVBlankCallback(sub_8160624); - sub_81607EC(); + LoadSpriteSheet(&gUnknown_085CEBB0); + LoadSpritePalette(&gUnknown_085CEBB8); + sub_81610B8(); - //gUnknown_0203BC38 ? - sub_81D2824(gUnknown_0203BC38[4]); - sub_8161280(); - - LoadSpriteSheet(&gUnknown_085CEBB0); - LoadSpritePalette(&gUnknown_085CEBB8); - - gUnknown_0203BC34[274] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203BC38[0], gUnknown_0203BC38[2]); - FillPalette(0, 0, 2); - SetMainCallback2(sub_816082C); + sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203BC38.listOffset, gUnknown_0203BC38.listRow); + FillPalette(RGB_BLACK, 0, 2); + SetMainCallback2(sub_816082C); } void sub_81607EC(void) { - ResetVramOamAndBgCntRegs(); - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, &gUnknown_085CEC28, 2); - ResetAllBgsCoordinates(); - SetGpuReg(0, 0x1040); - ShowBg(0); - ShowBg(1); - SetGpuReg(0x50, 0); + ResetVramOamAndBgCntRegs(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_085CEC28, 2); + ResetAllBgsCoordinates(); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | + DISPCNT_OBJ_1D_MAP | + DISPCNT_OBJ_ON); + ShowBg(0); + ShowBg(1); + SetGpuReg(REG_OFFSET_BLDCNT, 0); } void sub_816082C(void) { - sub_8160868(); - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); - UpdatePaletteFade(); + sub_8160868(); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +void sub_816084C(const u8 *src) +{ + StringExpandPlaceholders(gStringVar4, src); + sub_81D2BF4(gStringVar4); +} + +void sub_81611AC(void); +void sub_8160F50(u8); +void sub_8161074(u8); +s32 sub_8161054(void); +void sub_8160EA0(void); +void sub_8161234(void); +void render_previous_quest_text(bool8); + +void sub_8160868(void) +{ + switch (sLearnMoveStruct->state) + { + case 0: + sLearnMoveStruct->state++; + render_previous_quest_text(FALSE); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + break; + case 1: + if (!gPaletteFade.active) + { + sLearnMoveStruct->state = 4; + } + break; + case 2: + sLearnMoveStruct->state++; + break; + case 3: + render_previous_quest_text(FALSE); + sLearnMoveStruct->state++; + sub_81611AC(); + break; + case 4: + sub_8160F50(0); + return; + case 5: + sub_8161074(0); + sLearnMoveStruct->state++; + sub_81611AC(); + break; + case 6: + sub_8160F50(1); + break; + case 8: + if (!sub_81D2C3C()) + { + sub_81D2C50(); + sLearnMoveStruct->state++; + } + break; + case 9: + { + s8 selection = Menu_ProcessInputNoWrap_(); + + if (selection == 0) + { + if (GiveMoveToMon(&gPlayerParty[sLearnMoveStruct->partyMon], sub_8161054()) != 0xFFFF) + { + sub_816084C(gText_PkmnLearnedMove4); + gSpecialVar_0x8004 = 1; + sLearnMoveStruct->state = 31; + } + else + { + sLearnMoveStruct->state = 16; + } + } + else if (selection == -1 || selection == 1) + { + if (gUnknown_0203BC38.showContestInfo == FALSE) + { + sLearnMoveStruct->state = 3; + } + else if (gUnknown_0203BC38.showContestInfo == TRUE) + { + sLearnMoveStruct->state = 5; + } + } + } + break; + case 12: + if (!sub_81D2C3C()) + { + sub_81D2C50(); + sLearnMoveStruct->state++; + } + break; + case 13: + { + s8 selection = Menu_ProcessInputNoWrap_(); + + if (selection == 0) + { + gSpecialVar_0x8004 = selection; + sLearnMoveStruct->state = 14; + } + else if (selection == -1 || selection == 1) + { + if (gUnknown_0203BC38.showContestInfo == FALSE) + { + sLearnMoveStruct->state = 3; + } + else if (gUnknown_0203BC38.showContestInfo == TRUE) + { + sLearnMoveStruct->state = 5; + } + } + } + break; + case 16: + sub_816084C(gText_PkmnTryingToLearnMove); + sLearnMoveStruct->state++; + break; + case 17: + if (!sub_81D2C3C()) + { + sub_81D2C50(); + sLearnMoveStruct->state = 18; + } + break; + case 18: + { + s8 var = Menu_ProcessInputNoWrap_(); + + if (var == 0) + { + sub_816084C(gText_WhichMoveToForget2); + sLearnMoveStruct->state = 19; + } + else if (var == -1 || var == 1) + { + sLearnMoveStruct->state = 24; + } + } + break; + case 24: + StringCopy(gStringVar2, gMoveNames[sub_8161054()]); + sub_816084C(gText_StopTryingToTeachMove); + sLearnMoveStruct->state++; + break; + case 25: + if (!sub_81D2C3C()) + { + sub_81D2C50(); + sLearnMoveStruct->state++; + } + break; + case 26: + { + s8 var = Menu_ProcessInputNoWrap_(); + + if (var == 0) + { + sLearnMoveStruct->state = 27; + } + else if (var == -1 || var == 1) + { + // What's the point? It gets set to 16, anyway. + if (gUnknown_0203BC38.showContestInfo == FALSE) + { + sLearnMoveStruct->state = 3; + } + else if (gUnknown_0203BC38.showContestInfo == TRUE) + { + sLearnMoveStruct->state = 5; + } + sLearnMoveStruct->state = 16; + } + } + break; + case 27: + if (!sub_81D2C3C()) + { + FillWindowPixelBuffer(3, 0x11); + if (gUnknown_0203BC38.showContestInfo == FALSE) + { + sLearnMoveStruct->state = 3; + } + else if (gUnknown_0203BC38.showContestInfo == TRUE) + { + sLearnMoveStruct->state = 5; + } + } + break; + case 19: + if (!sub_81D2C3C()) + { + sLearnMoveStruct->state = 20; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + } + break; + case 20: + if (!gPaletteFade.active) + { + ShowSelectMovePokemonSummaryScreen(gPlayerParty, sLearnMoveStruct->partyMon, gPlayerPartyCount - 1, sub_8160740, sub_8161054()); + sub_8160EA0(); + } + break; + case 21: + if (!sub_81D2C3C()) + { + sLearnMoveStruct->state = 14; + } + break; + case 22: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + break; + case 14: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + sLearnMoveStruct->state++; + break; + case 15: + if (!gPaletteFade.active) + { + sub_8160EA0(); + SetMainCallback2(CB2_ReturnToField); + } + break; + case 28: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + sLearnMoveStruct->state++; + if (gUnknown_0203BC38.showContestInfo == FALSE) + { + render_previous_quest_text(TRUE); + } + else if (gUnknown_0203BC38.showContestInfo == TRUE) + { + sub_8161074(1); + } + sub_8161234(); + CopyWindowToVram(3, 2); + break; + case 29: + if (!gPaletteFade.active) + { + if (sLearnMoveStruct->unk045 == 4) + { + sLearnMoveStruct->state = 24; + } + else + { + u16 moveId = GetMonData(&gPlayerParty[sLearnMoveStruct->partyMon], MON_DATA_MOVE1 + sLearnMoveStruct->unk045); + + StringCopy(gStringVar3, gMoveNames[moveId]); + RemoveMonPPBonus(&gPlayerParty[sLearnMoveStruct->partyMon], sLearnMoveStruct->unk045); + SetMonMoveSlot(&gPlayerParty[sLearnMoveStruct->partyMon], sub_8161054(), sLearnMoveStruct->unk045); + StringCopy(gStringVar2, gMoveNames[sub_8161054()]); + sub_816084C(gText_12AndPoof); + sLearnMoveStruct->state = 30; + gSpecialVar_0x8004 = 1; + } + } + break; + case 30: + if (!sub_81D2C3C()) + { + sub_816084C(gText_PkmnForgotMoveAndLearnedNew); + sLearnMoveStruct->state = 31; + PlayFanfare(MUS_FANFA1); + } + break; + case 31: + if (!sub_81D2C3C()) + { + PlayFanfare(MUS_FANFA1); + sLearnMoveStruct->state = 32; + } + break; + case 32: + if (IsFanfareTaskInactive()) + { + sLearnMoveStruct->state = 33; + } + break; + case 33: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sLearnMoveStruct->state = 14; + } + break; + } +} + +void sub_8160EA0(void) +{ + sub_8161234(); + DestroyListMenuTask(sLearnMoveStruct->listMenuTask, &gUnknown_0203BC38.listOffset, &gUnknown_0203BC38.listRow); + FreeAllWindowBuffers(); + FREE_AND_SET_NULL(sLearnMoveStruct); + ResetSpriteData(); + FreeAllSpritePalettes(); +} + +void render_previous_quest_text(bool8 a) +{ + s32 i; + + for (i = 0; i < 16; i++) + { + gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE; + } + + if (!a) + { + StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); + FillWindowPixelBuffer(3, 0x11); + PrintTextOnWindow(3, 1, gStringVar4, 0, 1, 0, NULL); + } +} + +void sub_816137C(s32); + +void sub_8160F50(u8 a0) +{ + s32 itemId = ListMenuHandleInputGetItemId(sLearnMoveStruct->listMenuTask); + ListMenuGetScrollAndRow(sLearnMoveStruct->listMenuTask, &gUnknown_0203BC38.listOffset, &gUnknown_0203BC38.listRow); + + switch (itemId) + { + case LIST_NOTHING_CHOSEN: + if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysState()) + { + break; + } + + PlaySE(SE_SELECT); + + if (a0 == 0) + { + PutWindowTilemap(1); + sLearnMoveStruct->state = 5; + gUnknown_0203BC38.showContestInfo = TRUE; + } + else + { + PutWindowTilemap(0); + sLearnMoveStruct->state = 3; + gUnknown_0203BC38.showContestInfo = FALSE; + } + + schedule_bg_copy_tilemap_to_vram(1); + sub_816137C(sub_8161054()); + break; + case LIST_B_PRESSED: + PlaySE(SE_SELECT); + sub_8161234(); + sLearnMoveStruct->state = 12; + StringExpandPlaceholders(gStringVar4, gText_GiveUpTeachingNewMove); + sub_81D2BF4(gStringVar4); + break; + default: + PlaySE(SE_SELECT); + sub_8161234(); + sLearnMoveStruct->state = 8; + StringCopy(gStringVar2, gMoveNames[itemId]); + StringExpandPlaceholders(gStringVar4, gText_TeachX); + sub_81D2BF4(gStringVar4); + break; + } +} + +s32 sub_8161054(void) +{ + return sLearnMoveStruct->menuItems[gUnknown_0203BC38.listRow + gUnknown_0203BC38.listOffset].id; +} + +void sub_8161074(u8 a0) +{ + if (!a0) + { + StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); + FillWindowPixelBuffer(3, 0x11); + PrintTextOnWindow(3, 1, gStringVar4, 0, 1, 0, NULL); + } +} + +void sub_81610B8(void) +{ + int i; + + sLearnMoveStruct->unk114 = 0xFF; + sLearnMoveStruct->unk113 = -1; + sub_81611AC(); + + for (i = 0; i < 8; i++) + { + sLearnMoveStruct->spriteIds[i] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0); + } + + for (i = 0; i < 8; i++) + { + sLearnMoveStruct->spriteIds[i + 8] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 52, 0); + StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 2); + } + + for (i = 0; i < 16; i++) + { + gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE; + } +} + +void sub_81611AC(void) +{ + if (sLearnMoveStruct->unk114 == 0xFF) + { + sLearnMoveStruct->unk114 = AddScrollIndicatorArrowPair(&gUnknown_085CEBC0, &sLearnMoveStruct->unk116); + } + + if (sLearnMoveStruct->unk113 == 0xFF) + { + gTempScrollArrowTemplate = gUnknown_085CEBD0; + gTempScrollArrowTemplate.fullyDownThreshold = sLearnMoveStruct->numMenuChoices - sLearnMoveStruct->unk111; + sLearnMoveStruct->unk113 = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &gUnknown_0203BC38.listOffset); + } +} + +void sub_8161234(void) +{ + if (sLearnMoveStruct->unk114 != 0xFF) + { + RemoveScrollIndicatorArrowPair(sLearnMoveStruct->unk114); + sLearnMoveStruct->unk114 = 0xFF; + } + + if (sLearnMoveStruct->unk113 != 0xFF) + { + RemoveScrollIndicatorArrowPair(sLearnMoveStruct->unk113); + sLearnMoveStruct->unk113 = 0xFF; + } +} + +void sub_8161280(void) +{ + s32 i; + u8 nickname[POKEMON_NAME_LENGTH + 1]; + + sLearnMoveStruct->numMenuChoices = GetMoveRelearnerMoves(&gPlayerParty[sLearnMoveStruct->partyMon], sLearnMoveStruct->movesToLearn); + + for (i = 0; i < sLearnMoveStruct->numMenuChoices; i++) + { + sLearnMoveStruct->menuItems[i].name = gMoveNames[sLearnMoveStruct->movesToLearn[i]]; + sLearnMoveStruct->menuItems[i].id = sLearnMoveStruct->movesToLearn[i]; + } + + GetMonData(&gPlayerParty[sLearnMoveStruct->partyMon], MON_DATA_NICKNAME, nickname); + StringCopy10(gStringVar1, nickname); + sLearnMoveStruct->menuItems[sLearnMoveStruct->numMenuChoices].name = gText_Cancel; + sLearnMoveStruct->menuItems[sLearnMoveStruct->numMenuChoices].id = LIST_B_PRESSED; + sLearnMoveStruct->numMenuChoices++; + sLearnMoveStruct->unk111 = sub_81D28C8(sLearnMoveStruct->menuItems, sLearnMoveStruct->numMenuChoices); +} + +void sub_816137C(s32 item) +{ + u16 i; + + if (!gUnknown_0203BC38.showContestInfo || item == LIST_NOTHING_CHOSEN) + { + for (i = 0; i < 16; i++) + { + gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE; + } + } + else + { + u8 temp1 = gContestEffects[gContestMoves[item].effect].appeal / 10; + + if (temp1 == 0xFF) + { + temp1 = 0; + } + + for (i = 0; i < 8; i++) + { + if (i < temp1) + { + StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 1); + } + else + { + StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 0); + } + gSprites[sLearnMoveStruct->spriteIds[i]].invisible = FALSE; + } + + temp1 = gContestEffects[gContestMoves[item].effect].jam / 10; + + if (temp1 == 0xFF) + { + temp1 = 0; + } + + for (i = 0; i < 8; i++) + { + if (i < temp1) + { + StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 3); + } + else + { + StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 2); + } + gSprites[sLearnMoveStruct->spriteIds[i]].invisible = FALSE; + } + } } diff --git a/src/main_menu.c b/src/main_menu.c index 3afe1abe58..052035e348 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1362,7 +1362,7 @@ void task_new_game_prof_birch_speech_part2_3(u8 taskId) void task_new_game_prof_birch_speech_part2_4(u8 taskId) { - switch (ProcessMenuInputNoWrap_()) + switch (Menu_ProcessInputNoWrap_()) { case 0: PlaySE(SE_SELECT); @@ -1802,7 +1802,7 @@ void sub_8031D74(void) s8 sub_8031DB4(void) { - return ProcessMenuInputNoWrapAround(); + return Menu_ProcessInputNoWrapAround(); } void set_default_player_name(u8 nameId) diff --git a/src/menu.c b/src/menu.c index f4ffec0232..eda9513ba6 100644 --- a/src/menu.c +++ b/src/menu.c @@ -986,7 +986,7 @@ s8 ProcessMenuInput(void) return MENU_NOTHING_CHOSEN; } -s8 ProcessMenuInputNoWrapAround(void) +s8 Menu_ProcessInputNoWrapAround(void) { u8 oldPos = gUnknown_0203CD90.cursorPos; @@ -1044,7 +1044,7 @@ s8 ProcessMenuInput_other(void) return MENU_NOTHING_CHOSEN; } -s8 ProcessMenuInputNoWrapAround_other(void) +s8 Menu_ProcessInputNoWrapAround_other(void) { u8 oldPos = gUnknown_0203CD90.cursorPos; @@ -1187,9 +1187,9 @@ void sub_8198C34(const struct WindowTemplate *window, u8 fontId, u16 baseTileNum sub_8198AF8(window, fontId, 0, 1, baseTileNum, paletteNum, 0); } -s8 ProcessMenuInputNoWrap_(void) +s8 Menu_ProcessInputNoWrap_(void) { - s8 result = ProcessMenuInputNoWrapAround(); + s8 result = Menu_ProcessInputNoWrapAround(); if (result != MENU_NOTHING_CHOSEN) sub_8198C78(); return result; diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 178fbb5fac..217fdabaec 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -169,7 +169,7 @@ void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *templa static void Task_CallYesOrNoCallback(u8 taskId) { - switch (ProcessMenuInputNoWrap_()) + switch (Menu_ProcessInputNoWrap_()) { case 0: PlaySE(SE_SELECT); diff --git a/src/player_pc.c b/src/player_pc.c index ba18b45ab7..ef00e2e062 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -272,7 +272,7 @@ static void PlayerPCProcessMenuInput(u8 taskId) if(gPcItemMenuOptionsNum > 3) inputOptionId = ProcessMenuInput(); else - inputOptionId = ProcessMenuInputNoWrapAround(); + inputOptionId = Menu_ProcessInputNoWrapAround(); switch(inputOptionId) { @@ -686,7 +686,7 @@ static void Mailbox_DrawYesNoBeforeMove(u8 taskId) static void Mailbox_MoveToBagYesNoPrompt(u8 taskId) { - switch(ProcessMenuInputNoWrap_()) + switch(Menu_ProcessInputNoWrap_()) { case 0: Mailbox_DoMailMoveToBag(taskId); diff --git a/src/pokeblock.c b/src/pokeblock.c index 7dd20b237a..e615693b94 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -1042,7 +1042,7 @@ static void Task_HandlePokeblockOptionsInput(u8 taskId) if (sub_81221EC() == TRUE) return; - itemId = ProcessMenuInputNoWrapAround(); + itemId = Menu_ProcessInputNoWrapAround(); if (itemId == MENU_NOTHING_CHOSEN) { return; diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 728b887f86..55600b3c44 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -384,7 +384,7 @@ void sub_81BF8EC(u8 a, void *b, u8 c, u8 d, void *e) SetMainCallback2(sub_81BFAE4); } -void sub_81BFA38(void *a, u8 b, u8 c, void *d, u16 e) +void ShowSelectMovePokemonSummaryScreen(void *a, u8 b, u8 c, void *d, u16 e) { sub_81BF8EC(3, a, b, c, d); gUnknown_0203CF1C->unk40C4 = e; diff --git a/src/secret_base.c b/src/secret_base.c index c71f7ed23a..b75163200e 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -997,7 +997,7 @@ void sub_80E9FB0(u8 taskId) { s8 input; - input = ProcessMenuInputNoWrapAround(); + input = Menu_ProcessInputNoWrapAround(); switch (input) { case -1: diff --git a/src/start_menu.c b/src/start_menu.c index 7591d3b57c..60271317a3 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -985,7 +985,7 @@ static u8 SaveYesNoCallback(void) static u8 SaveConfirmInputCallback(void) { - switch (ProcessMenuInputNoWrap_()) + switch (Menu_ProcessInputNoWrap_()) { case 0: // Yes switch (gSaveFileStatus) @@ -1045,7 +1045,7 @@ static u8 SaveConfirmOverwriteCallback(void) static u8 SaveOverwriteInputCallback(void) { - switch (ProcessMenuInputNoWrap_()) + switch (Menu_ProcessInputNoWrap_()) { case 0: // Yes sSaveDialogCallback = SaveSavingMessageCallback; @@ -1169,7 +1169,7 @@ static u8 BattlePyramidRetireYesNoCallback(void) static u8 BattlePyramidRetireInputCallback(void) { - switch (ProcessMenuInputNoWrap_()) + switch (Menu_ProcessInputNoWrap_()) { case 0: // Yes return SAVE_CANCELED; diff --git a/src/starter_choose.c b/src/starter_choose.c index b55b0fbc51..36e2b121a5 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -258,7 +258,7 @@ static void Task_StarterChoose5(u8 taskId) { u8 spriteId; - switch (ProcessMenuInputNoWrap_()) + switch (Menu_ProcessInputNoWrap_()) { case 0: // YES // Return the starter choice and exit. diff --git a/src/wallclock.c b/src/wallclock.c index 3d95d75aca..5be20d5c9c 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -763,7 +763,7 @@ static void Task_SetClock3(u8 taskId) static void Task_SetClock4(u8 taskId) { - switch (ProcessMenuInputNoWrap_()) + switch (Menu_ProcessInputNoWrap_()) { case 0: PlaySE(SE_SELECT); From f1daf7442dfd25d12daacd7f59b4c42129d48c09 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 22:04:49 +0200 Subject: [PATCH 093/174] event data review changes --- include/constants/flags.h | 1 + include/constants/vars.h | 1 + src/event_data.c | 10 +++++----- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/include/constants/flags.h b/include/constants/flags.h index 6c1400410b..a74dffccf9 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1570,6 +1570,7 @@ #define FLAG_0x95E (SYSTEM_FLAGS + 0xFE) #define FLAG_0x95F (SYSTEM_FLAGS + 0xFF) +#define SPECIAL_FLAGS_START 0x4000 // SPECIAL FLAGS (unknown purpose) #define FLAG_SPECIAL_FLAG_0x4000 0x4000 #define FLAG_SPECIAL_FLAG_0x4001 0x4001 diff --git a/include/constants/vars.h b/include/constants/vars.h index 7cf232efe4..e2c59b4fb2 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -273,6 +273,7 @@ #define VAR_0x40FE 0x40FE #define VAR_0x40FF 0x40FF +#define SPECIAL_VARS_START 0x8000 // special vars // They are commonly used as parameters to commands, or return values from commands. #define VAR_0x8000 0x8000 diff --git a/src/event_data.c b/src/event_data.c index e42f5d5140..2cbe50f13b 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -25,7 +25,7 @@ EWRAM_DATA u16 gSpecialVar_MonBoxPos = 0; EWRAM_DATA u16 gSpecialVar_0x8014 = 0; EWRAM_DATA static u8 gUnknown_020375FC[16] = {0}; -extern u16 * const gSpecialVars[]; +extern u16 *const gSpecialVars[]; extern void sub_80BB358(void); @@ -166,10 +166,10 @@ u16 *GetVarPointer(u16 id) { if (id < VARS_START) return NULL; - else if (id < VAR_0x8000) + else if (id < SPECIAL_VARS_START) return &gSaveBlock1Ptr->vars[id - VARS_START]; else - return gSpecialVars[id - VAR_0x8000]; + return gSpecialVars[id - SPECIAL_VARS_START]; } u16 VarGet(u16 id) @@ -198,10 +198,10 @@ u8 *GetFlagPointer(u16 id) { if (id == 0) return NULL; - else if (id < FLAG_SPECIAL_FLAG_0x4000) + else if (id < SPECIAL_FLAGS_START) return &gSaveBlock1Ptr->flags[id / 8]; else - return &gUnknown_020375FC[(id - FLAG_SPECIAL_FLAG_0x4000) / 8]; + return &gUnknown_020375FC[(id - SPECIAL_FLAGS_START) / 8]; } u8 FlagSet(u16 id) From b40957c09b0fdebae2923b9080e1a08d92ad0812 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sun, 12 Aug 2018 13:33:41 -0700 Subject: [PATCH 094/174] Finish decompiling learn_move --- include/learn_move.h | 2 +- include/pokenav.h | 1 + src/event_data.c | 8 +- src/learn_move.c | 186 +++++++++++++++++++++---------------------- src/slot_machine.c | 2 +- 5 files changed, 96 insertions(+), 103 deletions(-) diff --git a/include/learn_move.h b/include/learn_move.h index 9a7a779df8..2acc21cde2 100644 --- a/include/learn_move.h +++ b/include/learn_move.h @@ -1,7 +1,7 @@ #ifndef GUARD_LEARN_MOVE_H #define GUARD_LEARN_MOVE_H -void VBlankCB_LearnMove(void); void TeachMoveTutorMove(void); +void sub_816137C(s32); #endif //GUARD_LEARN_MOVE_H diff --git a/include/pokenav.h b/include/pokenav.h index 1fef8c91bd..dd3fd49051 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -26,5 +26,6 @@ void sub_81D2BF4(u8 *); u16 sub_81D2C3C(void); void sub_81D2C50(void); u8 sub_81D28C8(const struct ListMenuItem *items, u16 numChoices); +void sub_81D2824(u16); #endif //GUARD_POKENAV_H diff --git a/src/event_data.c b/src/event_data.c index 2cbe50f13b..8a998fe262 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -168,8 +168,8 @@ u16 *GetVarPointer(u16 id) return NULL; else if (id < SPECIAL_VARS_START) return &gSaveBlock1Ptr->vars[id - VARS_START]; - else - return gSpecialVars[id - SPECIAL_VARS_START]; + else + return gSpecialVars[id - SPECIAL_VARS_START]; } u16 VarGet(u16 id) @@ -200,8 +200,8 @@ u8 *GetFlagPointer(u16 id) return NULL; else if (id < SPECIAL_FLAGS_START) return &gSaveBlock1Ptr->flags[id / 8]; - else - return &gUnknown_020375FC[(id - SPECIAL_FLAGS_START) / 8]; + else + return &gUnknown_020375FC[(id - SPECIAL_FLAGS_START) / 8]; } u8 FlagSet(u16 id) diff --git a/src/learn_move.c b/src/learn_move.c index b65fd2045d..9058a3287f 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -1,6 +1,7 @@ #include "global.h" #include "main.h" #include "bg.h" +#include "contest_effect.h" #include "data2.h" #include "event_data.h" #include "field_screen.h" @@ -23,34 +24,31 @@ #include "constants/rgb.h" #include "constants/songs.h" -struct LearnMoveStruct +static EWRAM_DATA struct { u8 state; - u8 spriteIds[16]; /*0x001*/ - u8 filler11; /*0x011*/ - u16 movesToLearn[4]; /*0x012*/ - u8 filler1A[0x44 - 0x1A]; /*0x01A*/ - u8 partyMon; /*0x044*/ - u8 unk045; /*0x045*/ - u8 filler46[2]; /*0x046*/ - struct ListMenuItem menuItems[4]; /*0x048*/ - u8 filler68[0x110 - 0x68]; /*0x068*/ - u8 numMenuChoices; /*0x110*/ - u8 unk111; /*0x111*/ - u8 listMenuTask; /*0x112*/ - u8 unk113; /*0x113*/ - u8 unk114; /*0x114*/ - u16 unk116; /*0x116*/ -}; + u8 spriteIds[16]; /*0x001*/ + u8 filler11; /*0x011*/ + u16 movesToLearn[4]; /*0x012*/ + u8 filler1A[0x44 - 0x1A]; /*0x01A*/ + u8 partyMon; /*0x044*/ + u8 unk045; /*0x045*/ + u8 filler46[2]; /*0x046*/ + struct ListMenuItem menuItems[4]; /*0x048*/ + u8 filler68[0x110 - 0x68]; /*0x068*/ + u8 numMenuChoices; /*0x110*/ + u8 unk111; /*0x111*/ + u8 listMenuTask; /*0x112*/ + u8 unk113; /*0x113*/ + u8 unk114; /*0x114*/ + u16 unk116; /*0x116*/ +} *sLearnMoveStruct = {0}; -EWRAM_DATA struct LearnMoveStruct *sLearnMoveStruct = {0}; -EWRAM_DATA struct { +static EWRAM_DATA struct { u16 listOffset; u16 listRow; u8 showContestInfo; -} gUnknown_0203BC38 = {0}; - -extern void (*gFieldCallback)(void); +} sLearnMoveStruct2 = {0}; const u16 gUnknown_085CE9F8[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); const u8 gUnknown_085CEA18[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp"); @@ -214,20 +212,23 @@ const struct BgTemplate gUnknown_085CEC28[] = }, }; -extern void sub_81D2824(u16); - -void sub_8160868(void); -void sub_8161280(void); -void sub_81610B8(void); -void sub_816082C(void); - +static void sub_8160868(void); +static void sub_8161280(void); +static void sub_81610B8(void); +static void sub_816082C(void); static void sub_8160664(u8 taskId); -void CB2_InitLearnMove(void); -void sub_8160740(void); -void sub_81607EC(void); -void sub_816082C(void); +static void CB2_InitLearnMove(void); +static void sub_8160740(void); +static void sub_81607EC(void); +static void sub_81611AC(void); +static void sub_8160F50(u8); +static void sub_8161074(u8); +static s32 sub_8161054(void); +static void sub_8160EA0(void); +static void sub_8161234(void); +static void render_previous_quest_text(bool8); -void VBlankCB_LearnMove(void) +static void VBlankCB_LearnMove(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -241,7 +242,7 @@ void TeachMoveTutorMove(void) BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); } -void sub_8160664(u8 taskId) +static void sub_8160664(u8 taskId) { if (!gPaletteFade.active) { @@ -251,22 +252,22 @@ void sub_8160664(u8 taskId) } } -void CB2_InitLearnMove(void) +static void CB2_InitLearnMove(void) { ResetSpriteData(); FreeAllSpritePalettes(); ResetTasks(); clear_scheduled_bg_copies_to_vram(); - sLearnMoveStruct = AllocZeroed(sizeof(struct LearnMoveStruct)); + sLearnMoveStruct = AllocZeroed(sizeof(*sLearnMoveStruct)); sLearnMoveStruct->partyMon = gSpecialVar_0x8004; SetVBlankCallback(VBlankCB_LearnMove); sub_81607EC(); sub_81D2824(0); - gUnknown_0203BC38.listOffset = 0; - gUnknown_0203BC38.listRow = 0; - gUnknown_0203BC38.showContestInfo = 0; + sLearnMoveStruct2.listOffset = 0; + sLearnMoveStruct2.listRow = 0; + sLearnMoveStruct2.showContestInfo = 0; sub_8161280(); @@ -274,37 +275,37 @@ void CB2_InitLearnMove(void) LoadSpritePalette(&gUnknown_085CEBB8); sub_81610B8(); - sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203BC38.listOffset, gUnknown_0203BC38.listRow); + sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sLearnMoveStruct2.listOffset, sLearnMoveStruct2.listRow); FillPalette(RGB_BLACK, 0, 2); SetMainCallback2(sub_816082C); } -void sub_8160740(void) +static void sub_8160740(void) { ResetSpriteData(); FreeAllSpritePalettes(); ResetTasks(); clear_scheduled_bg_copies_to_vram(); - sLearnMoveStruct = AllocZeroed(sizeof(struct LearnMoveStruct)); + sLearnMoveStruct = AllocZeroed(sizeof(*sLearnMoveStruct)); sLearnMoveStruct->state = 28; sLearnMoveStruct->partyMon = gSpecialVar_0x8004; sLearnMoveStruct->unk045 = gSpecialVar_0x8005; SetVBlankCallback(VBlankCB_LearnMove); sub_81607EC(); - sub_81D2824(gUnknown_0203BC38.showContestInfo); + sub_81D2824(sLearnMoveStruct2.showContestInfo); sub_8161280(); LoadSpriteSheet(&gUnknown_085CEBB0); LoadSpritePalette(&gUnknown_085CEBB8); sub_81610B8(); - sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203BC38.listOffset, gUnknown_0203BC38.listRow); + sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sLearnMoveStruct2.listOffset, sLearnMoveStruct2.listRow); FillPalette(RGB_BLACK, 0, 2); SetMainCallback2(sub_816082C); } -void sub_81607EC(void) +static void sub_81607EC(void) { ResetVramOamAndBgCntRegs(); ResetBgsAndClearDma3BusyFlags(0); @@ -318,7 +319,7 @@ void sub_81607EC(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); } -void sub_816082C(void) +static void sub_816082C(void) { sub_8160868(); RunTasks(); @@ -328,21 +329,13 @@ void sub_816082C(void) UpdatePaletteFade(); } -void sub_816084C(const u8 *src) +static void sub_816084C(const u8 *src) { StringExpandPlaceholders(gStringVar4, src); sub_81D2BF4(gStringVar4); } -void sub_81611AC(void); -void sub_8160F50(u8); -void sub_8161074(u8); -s32 sub_8161054(void); -void sub_8160EA0(void); -void sub_8161234(void); -void render_previous_quest_text(bool8); - -void sub_8160868(void) +static void sub_8160868(void) { switch (sLearnMoveStruct->state) { @@ -402,11 +395,11 @@ void sub_8160868(void) } else if (selection == -1 || selection == 1) { - if (gUnknown_0203BC38.showContestInfo == FALSE) + if (sLearnMoveStruct2.showContestInfo == FALSE) { sLearnMoveStruct->state = 3; } - else if (gUnknown_0203BC38.showContestInfo == TRUE) + else if (sLearnMoveStruct2.showContestInfo == TRUE) { sLearnMoveStruct->state = 5; } @@ -431,11 +424,11 @@ void sub_8160868(void) } else if (selection == -1 || selection == 1) { - if (gUnknown_0203BC38.showContestInfo == FALSE) + if (sLearnMoveStruct2.showContestInfo == FALSE) { sLearnMoveStruct->state = 3; } - else if (gUnknown_0203BC38.showContestInfo == TRUE) + else if (sLearnMoveStruct2.showContestInfo == TRUE) { sLearnMoveStruct->state = 5; } @@ -491,11 +484,11 @@ void sub_8160868(void) else if (var == -1 || var == 1) { // What's the point? It gets set to 16, anyway. - if (gUnknown_0203BC38.showContestInfo == FALSE) + if (sLearnMoveStruct2.showContestInfo == FALSE) { sLearnMoveStruct->state = 3; } - else if (gUnknown_0203BC38.showContestInfo == TRUE) + else if (sLearnMoveStruct2.showContestInfo == TRUE) { sLearnMoveStruct->state = 5; } @@ -507,11 +500,11 @@ void sub_8160868(void) if (!sub_81D2C3C()) { FillWindowPixelBuffer(3, 0x11); - if (gUnknown_0203BC38.showContestInfo == FALSE) + if (sLearnMoveStruct2.showContestInfo == FALSE) { sLearnMoveStruct->state = 3; } - else if (gUnknown_0203BC38.showContestInfo == TRUE) + else if (sLearnMoveStruct2.showContestInfo == TRUE) { sLearnMoveStruct->state = 5; } @@ -554,11 +547,11 @@ void sub_8160868(void) case 28: BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); sLearnMoveStruct->state++; - if (gUnknown_0203BC38.showContestInfo == FALSE) + if (sLearnMoveStruct2.showContestInfo == FALSE) { render_previous_quest_text(TRUE); } - else if (gUnknown_0203BC38.showContestInfo == TRUE) + else if (sLearnMoveStruct2.showContestInfo == TRUE) { sub_8161074(1); } @@ -617,17 +610,17 @@ void sub_8160868(void) } } -void sub_8160EA0(void) +static void sub_8160EA0(void) { sub_8161234(); - DestroyListMenuTask(sLearnMoveStruct->listMenuTask, &gUnknown_0203BC38.listOffset, &gUnknown_0203BC38.listRow); + DestroyListMenuTask(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow); FreeAllWindowBuffers(); FREE_AND_SET_NULL(sLearnMoveStruct); ResetSpriteData(); FreeAllSpritePalettes(); } -void render_previous_quest_text(bool8 a) +static void render_previous_quest_text(bool8 a) { s32 i; @@ -644,12 +637,10 @@ void render_previous_quest_text(bool8 a) } } -void sub_816137C(s32); - -void sub_8160F50(u8 a0) +static void sub_8160F50(u8 a0) { s32 itemId = ListMenuHandleInputGetItemId(sLearnMoveStruct->listMenuTask); - ListMenuGetScrollAndRow(sLearnMoveStruct->listMenuTask, &gUnknown_0203BC38.listOffset, &gUnknown_0203BC38.listRow); + ListMenuGetScrollAndRow(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow); switch (itemId) { @@ -665,13 +656,13 @@ void sub_8160F50(u8 a0) { PutWindowTilemap(1); sLearnMoveStruct->state = 5; - gUnknown_0203BC38.showContestInfo = TRUE; + sLearnMoveStruct2.showContestInfo = TRUE; } else { PutWindowTilemap(0); sLearnMoveStruct->state = 3; - gUnknown_0203BC38.showContestInfo = FALSE; + sLearnMoveStruct2.showContestInfo = FALSE; } schedule_bg_copy_tilemap_to_vram(1); @@ -695,12 +686,12 @@ void sub_8160F50(u8 a0) } } -s32 sub_8161054(void) +static s32 sub_8161054(void) { - return sLearnMoveStruct->menuItems[gUnknown_0203BC38.listRow + gUnknown_0203BC38.listOffset].id; + return sLearnMoveStruct->menuItems[sLearnMoveStruct2.listRow + sLearnMoveStruct2.listOffset].id; } -void sub_8161074(u8 a0) +static void sub_8161074(u8 a0) { if (!a0) { @@ -710,11 +701,11 @@ void sub_8161074(u8 a0) } } -void sub_81610B8(void) +static void sub_81610B8(void) { int i; - sLearnMoveStruct->unk114 = 0xFF; + sLearnMoveStruct->unk114 = -1; sLearnMoveStruct->unk113 = -1; sub_81611AC(); @@ -735,7 +726,7 @@ void sub_81610B8(void) } } -void sub_81611AC(void) +static void sub_81611AC(void) { if (sLearnMoveStruct->unk114 == 0xFF) { @@ -746,11 +737,11 @@ void sub_81611AC(void) { gTempScrollArrowTemplate = gUnknown_085CEBD0; gTempScrollArrowTemplate.fullyDownThreshold = sLearnMoveStruct->numMenuChoices - sLearnMoveStruct->unk111; - sLearnMoveStruct->unk113 = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &gUnknown_0203BC38.listOffset); + sLearnMoveStruct->unk113 = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sLearnMoveStruct2.listOffset); } } -void sub_8161234(void) +static void sub_8161234(void) { if (sLearnMoveStruct->unk114 != 0xFF) { @@ -765,7 +756,7 @@ void sub_8161234(void) } } -void sub_8161280(void) +static void sub_8161280(void) { s32 i; u8 nickname[POKEMON_NAME_LENGTH + 1]; @@ -788,9 +779,10 @@ void sub_8161280(void) void sub_816137C(s32 item) { + u16 numHearts; u16 i; - if (!gUnknown_0203BC38.showContestInfo || item == LIST_NOTHING_CHOSEN) + if (!sLearnMoveStruct2.showContestInfo || item == LIST_B_PRESSED) { for (i = 0; i < 16; i++) { @@ -799,16 +791,16 @@ void sub_816137C(s32 item) } else { - u8 temp1 = gContestEffects[gContestMoves[item].effect].appeal / 10; + numHearts = (u8)(gContestEffects[gContestMoves[item].effect].appeal / 10); - if (temp1 == 0xFF) + if (numHearts == 0xFF) { - temp1 = 0; + numHearts = 0; } for (i = 0; i < 8; i++) { - if (i < temp1) + if (i < numHearts) { StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 1); } @@ -819,24 +811,24 @@ void sub_816137C(s32 item) gSprites[sLearnMoveStruct->spriteIds[i]].invisible = FALSE; } - temp1 = gContestEffects[gContestMoves[item].effect].jam / 10; + numHearts = (u8)(gContestEffects[gContestMoves[item].effect].jam / 10); - if (temp1 == 0xFF) + if (numHearts == 0xFF) { - temp1 = 0; + numHearts = 0; } for (i = 0; i < 8; i++) { - if (i < temp1) + if (i < numHearts) { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 3); + StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 3); } else { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 2); + StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 2); } - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = FALSE; + gSprites[sLearnMoveStruct->spriteIds[i + 8]].invisible = FALSE; } } } diff --git a/src/slot_machine.c b/src/slot_machine.c index 5422103c3c..6b6a46cf8a 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -975,7 +975,7 @@ bool8 sub_8102318(struct Task *task) bool8 sub_8102344(struct Task *task) { - s8 input = ProcessMenuInputNoWrap_(); + s8 input = Menu_ProcessInputNoWrap_(); if (input == 0) { sub_8197434(0, TRUE); From 0d68af7f061ec0826e7f38751b91bae0fd296d55 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 23:20:17 +0200 Subject: [PATCH 095/174] copy contest effect from ruby --- asm/contest.s | 46 +- asm/contest_ai.s | 2 +- asm/contest_effect.s | 3175 ------------------------ data/contest_effect.s | 18 +- data/contest_effect_function_table.inc | 50 - data/contest_effects.inc | 289 --- data/contest_moves.inc | 2486 ------------------- include/contest.h | 7 + include/contest_effect.h | 2 +- ld_script.txt | 2 + src/contest.c | 10 +- src/contest_effect.c | 1174 +++++++++ src/data/contest_moves.h | 536 ++++ 13 files changed, 1750 insertions(+), 6047 deletions(-) delete mode 100644 data/contest_effect_function_table.inc delete mode 100644 data/contest_effects.inc delete mode 100644 data/contest_moves.inc create mode 100644 src/contest_effect.c create mode 100644 src/data/contest_moves.h diff --git a/asm/contest.s b/asm/contest.s index 6504e7bf10..aec0becbb4 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -43,7 +43,7 @@ sub_80DB8B8: @ 80DB8B8 lsrs r4, r0, 24 adds r5, r4, 0 adds r0, r4, 0 - bl sub_80DBCA8 + bl Contest_IsMonsTurnDisabled lsls r0, 24 cmp r0, 0 beq _080DB8D0 @@ -568,8 +568,8 @@ _080DBC3C: .pool thumb_func_end sub_80DBAA0 - thumb_func_start sub_80DBCA8 -sub_80DBCA8: @ 80DBCA8 + thumb_func_start Contest_IsMonsTurnDisabled +Contest_IsMonsTurnDisabled: @ 80DBCA8 push {lr} lsls r0, 24 lsrs r0, 24 @@ -599,7 +599,7 @@ _080DBCD8: _080DBCDA: pop {r1} bx r1 - thumb_func_end sub_80DBCA8 + thumb_func_end Contest_IsMonsTurnDisabled thumb_func_start sub_80DBCE0 sub_80DBCE0: @ 80DBCE0 @@ -3233,7 +3233,7 @@ _080DD166: ands r0, r2 strb r0, [r1, 0x15] _080DD1B4: - ldr r0, =gContestEffectFunctionTable + ldr r0, =gContestEffectFuncs add r0, r9 ldr r0, [r0] bl _call_via_r0 @@ -3506,8 +3506,8 @@ _080DD3C4: .pool thumb_func_end sub_80DD080 - thumb_func_start sub_80DD3D4 -sub_80DD3D4: @ 80DD3D4 + thumb_func_start SetContestantEffectStringID +SetContestantEffectStringID: @ 80DD3D4 lsls r0, 24 lsrs r0, 24 ldr r2, =gContestResources @@ -3520,10 +3520,10 @@ sub_80DD3D4: @ 80DD3D4 strb r1, [r2, 0x13] bx lr .pool - thumb_func_end sub_80DD3D4 + thumb_func_end SetContestantEffectStringID - thumb_func_start sub_80DD3F0 -sub_80DD3F0: @ 80DD3F0 + thumb_func_start SetContestantEffectStringID2 +SetContestantEffectStringID2: @ 80DD3F0 lsls r0, 24 lsrs r0, 24 ldr r2, =gContestResources @@ -3536,10 +3536,10 @@ sub_80DD3F0: @ 80DD3F0 strb r1, [r2, 0x14] bx lr .pool - thumb_func_end sub_80DD3F0 + thumb_func_end SetContestantEffectStringID2 - thumb_func_start sub_80DD40C -sub_80DD40C: @ 80DD40C + thumb_func_start SetStartledString +SetStartledString: @ 80DD40C push {lr} lsls r0, 24 lsrs r0, 24 @@ -3550,36 +3550,36 @@ sub_80DD40C: @ 80DD40C cmp r1, 0x3B bls _080DD426 movs r1, 0x35 - bl sub_80DD3D4 + bl SetContestantEffectStringID b _080DD456 _080DD426: cmp r1, 0x27 bls _080DD432 movs r1, 0x34 - bl sub_80DD3D4 + bl SetContestantEffectStringID b _080DD456 _080DD432: cmp r1, 0x1D bls _080DD43E movs r1, 0x33 - bl sub_80DD3D4 + bl SetContestantEffectStringID b _080DD456 _080DD43E: cmp r1, 0x13 bls _080DD44A movs r1, 0x32 - bl sub_80DD3D4 + bl SetContestantEffectStringID b _080DD456 _080DD44A: cmp r2, 0x9 bls _080DD456 adds r0, r3, 0 movs r1, 0x31 - bl sub_80DD3D4 + bl SetContestantEffectStringID _080DD456: pop {r0} bx r0 - thumb_func_end sub_80DD40C + thumb_func_end SetStartledString thumb_func_start sub_80DD45C sub_80DD45C: @ 80DD45C @@ -3678,8 +3678,8 @@ _080DD52C: .pool thumb_func_end sub_80DD45C - thumb_func_start sub_80DD560 -sub_80DD560: @ 80DD560 + thumb_func_start MakeContestantNervous +MakeContestantNervous: @ 80DD560 push {r4,lr} lsls r0, 24 lsrs r0, 24 @@ -3703,7 +3703,7 @@ sub_80DD560: @ 80DD560 pop {r0} bx r0 .pool - thumb_func_end sub_80DD560 + thumb_func_end MakeContestantNervous thumb_func_start sub_80DD590 sub_80DD590: @ 80DD590 @@ -5136,7 +5136,7 @@ _080DE146: beq _080DE1CA lsls r0, r7, 24 lsrs r0, 24 - bl sub_80DBCA8 + bl Contest_IsMonsTurnDisabled lsls r0, 24 cmp r0, 0 bne _080DE1CA diff --git a/asm/contest_ai.s b/asm/contest_ai.s index ff48661f08..0ccc5e9ec0 100644 --- a/asm/contest_ai.s +++ b/asm/contest_ai.s @@ -3329,7 +3329,7 @@ sub_8157C48: @ 8157C48 bl sub_81564AC lsls r0, 24 lsrs r0, 24 - bl sub_80DBCA8 + bl Contest_IsMonsTurnDisabled lsls r0, 24 cmp r0, 0 beq _08157C74 diff --git a/asm/contest_effect.s b/asm/contest_effect.s index 65a720a65c..e69de29bb2 100644 --- a/asm/contest_effect.s +++ b/asm/contest_effect.s @@ -1,3175 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start AreMovesContestCombo -@ u8 AreMovesContestCombo(u16 moveId1, u16 moveId2) -AreMovesContestCombo: @ 80E5414 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsls r1, 16 - ldr r2, =gContestMoves - lsrs r0, 13 - adds r0, r2 - ldrb r4, [r0, 0x2] - mov r3, sp - lsrs r1, 13 - adds r1, r2 - ldrb r0, [r1, 0x3] - strb r0, [r3] - mov r2, sp - ldrb r0, [r1, 0x4] - strb r0, [r2, 0x1] - ldrb r0, [r1, 0x5] - strb r0, [r2, 0x2] - mov r0, sp - ldrb r1, [r1, 0x6] - strb r1, [r0, 0x3] - cmp r4, 0 - beq _080E5470 - mov r0, sp - ldrb r0, [r0] - cmp r4, r0 - beq _080E545E - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r4, r0 - beq _080E545E - mov r0, sp - ldrb r0, [r0, 0x2] - cmp r4, r0 - beq _080E545E - cmp r4, r1 - bne _080E5470 -_080E545E: - ldr r0, =gComboStarterLookupTable - adds r0, r4, r0 - ldrb r0, [r0] - b _080E5472 - .pool -_080E5470: - movs r0, 0 -_080E5472: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end AreMovesContestCombo - - thumb_func_start ContestEffectFunc_080E547C -ContestEffectFunc_080E547C: @ 80E547C - bx lr - thumb_func_end ContestEffectFunc_080E547C - - thumb_func_start ContestEffectFunc_080E5480 -ContestEffectFunc_080E5480: @ 80E5480 - push {lr} - ldr r3, =gContestResources - ldr r1, [r3] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x10] - ldr r0, [r3] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0 - bl sub_80DD3D4 - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5480 - - thumb_func_start ContestEffectFunc_080E54B0 -ContestEffectFunc_080E54B0: @ 80E54B0 - push {lr} - ldr r3, =gContestResources - ldr r1, [r3] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x11] - ldr r0, [r3] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x1 - bl sub_80DD3D4 - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E54B0 - - thumb_func_start ContestEffectFunc_080E54E0 -ContestEffectFunc_080E54E0: @ 80E54E0 - ldr r3, =gContestResources - ldr r1, [r3] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x10] - ldr r1, [r3] - ldr r0, [r1, 0x8] - ldrb r0, [r0, 0x11] - ldr r2, [r1, 0x4] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x15] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x15] - ldr r1, [r3] - ldr r0, [r1, 0x8] - ldrb r0, [r0, 0x11] - ldr r2, [r1, 0x4] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0xB] - movs r0, 0x71 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xB] - bx lr - .pool - thumb_func_end ContestEffectFunc_080E54E0 - - thumb_func_start ContestEffectFunc_080E5534 -ContestEffectFunc_080E5534: @ 80E5534 - push {lr} - ldr r3, =gContestResources - ldr r1, [r3] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0, 0x12] - ldr r0, [r3] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x2 - bl sub_80DD3D4 - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5534 - - thumb_func_start ContestEffectFunc_080E5560 -ContestEffectFunc_080E5560: @ 80E5560 - push {lr} - ldr r3, =gContestResources - ldr r1, [r3] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x10] - ldr r0, [r3] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x3 - bl sub_80DD3D4 - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5560 - - thumb_func_start ContestEffectFunc_080E5590 -ContestEffectFunc_080E5590: @ 80E5590 - push {lr} - ldr r3, =gContestResources - ldr r1, [r3] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x14 - strb r1, [r0, 0xF] - ldr r0, [r3] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x4 - bl sub_80DD3D4 - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5590 - - thumb_func_start ContestEffectFunc_080E55BC -ContestEffectFunc_080E55BC: @ 80E55BC - push {lr} - ldr r3, =gContestResources - ldr r1, [r3] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x10] - ldr r0, [r3] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x5 - bl sub_80DD3D4 - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E55BC - - thumb_func_start ContestEffectFunc_080E55EC -ContestEffectFunc_080E55EC: @ 80E55EC - push {r4,r5,lr} - movs r2, 0 - ldr r5, =gContestResources - ldr r0, [r5] - ldr r1, [r0, 0x8] - ldrb r4, [r1, 0x11] - adds r3, r1, r4 - ldrb r0, [r3] - cmp r0, 0 - beq _080E563A - subs r0, 0x1 - ldrb r1, [r1] - cmp r0, r1 - beq _080E5622 - adds r3, r5, 0 -_080E560A: - adds r2, 0x1 - cmp r2, 0x3 - bgt _080E5622 - ldr r0, [r3] - ldr r1, [r0, 0x8] - adds r0, r1, r4 - ldrb r0, [r0] - subs r0, 0x1 - adds r1, r2 - ldrb r1, [r1] - cmp r0, r1 - bne _080E560A -_080E5622: - ldr r1, =gContestResources - ldr r0, [r1] - ldr r0, [r0, 0x8] - strb r2, [r0, 0x8] - ldr r0, [r1] - ldr r1, [r0, 0x8] - movs r0, 0xFF - strb r0, [r1, 0x9] - bl sub_80E6A2C - lsls r0, 24 - lsrs r2, r0, 24 -_080E563A: - cmp r2, 0 - bne _080E564C - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80DD3F0 -_080E564C: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80DD3D4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E55EC - - thumb_func_start ContestEffectFunc_080E5664 -ContestEffectFunc_080E5664: @ 80E5664 - push {r4-r6,lr} - movs r1, 0 - ldr r2, =gContestResources - ldr r0, [r2] - ldr r0, [r0, 0x8] - ldrb r5, [r0, 0x11] - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0 - beq _080E56B4 - movs r3, 0 - movs r4, 0 - adds r6, r2, 0 -_080E567E: - ldr r0, [r6] - ldr r2, [r0, 0x8] - adds r0, r2, r5 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E5698 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r4 - strb r3, [r0] - adds r4, 0x1 -_080E5698: - adds r3, 0x1 - cmp r3, 0x3 - ble _080E567E - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - adds r0, 0x8 - adds r0, r4 - movs r1, 0xFF - strb r1, [r0] - bl sub_80E6A2C - lsls r0, 24 - lsrs r1, r0, 24 -_080E56B4: - cmp r1, 0 - bne _080E56C6 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80DD3F0 -_080E56C6: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80DD3D4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5664 - - thumb_func_start ContestEffectFunc_080E56E0 -ContestEffectFunc_080E56E0: @ 80E56E0 - push {lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x14 - cmp r0, 0x1 - bls _080E5702 - movs r1, 0x3C - cmp r0, 0x7 - bhi _080E5702 - movs r1, 0x28 -_080E5702: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - strh r1, [r0, 0x4] - bl ContestEffectFunc_080E55EC - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E56E0 - - thumb_func_start ContestEffectFunc_080E5718 -ContestEffectFunc_080E5718: @ 80E5718 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r7, 0 - ldr r1, =gContestResources - ldr r0, [r1] - ldr r0, [r0, 0x8] - ldrb r5, [r0, 0x11] - adds r0, r5 - ldrb r0, [r0] - mov r8, r1 - cmp r0, 0 - beq _080E579E - movs r4, 0 - mov r6, r8 -_080E5736: - ldr r0, [r6] - ldr r2, [r0, 0x8] - adds r0, r2, r5 - adds r1, r2, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E5798 - strb r4, [r2, 0x8] - ldr r0, [r6] - ldr r1, [r0, 0x8] - movs r0, 0xFF - strb r0, [r1, 0x9] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - cmp r0, 0 - beq _080E5782 - movs r1, 0xA - cmp r0, 0x2 - bls _080E5782 - movs r1, 0x14 - cmp r0, 0x4 - bls _080E5782 - movs r1, 0x1E - cmp r0, 0x6 - bls _080E5782 - movs r1, 0x3C - cmp r0, 0x8 - bhi _080E5782 - movs r1, 0x28 -_080E5782: - ldr r0, [r6] - ldr r0, [r0, 0x8] - strh r1, [r0, 0x4] - bl sub_80E6A2C - lsls r0, 24 - cmp r0, 0 - beq _080E5798 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080E5798: - adds r4, 0x1 - cmp r4, 0x3 - ble _080E5736 -_080E579E: - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80DD3D4 - cmp r7, 0 - bne _080E57BE - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80DD3F0 -_080E57BE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5718 - - thumb_func_start ContestEffectFunc_080E57CC -ContestEffectFunc_080E57CC: @ 80E57CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r9, r0 - ldr r1, =gContestResources - ldr r0, [r1] - ldr r0, [r0, 0x8] - ldrb r2, [r0, 0x11] - mov r8, r2 - add r0, r8 - ldrb r0, [r0] - mov r10, r1 - cmp r0, 0 - beq _080E5858 - movs r6, 0 - mov r7, r10 - movs r5, 0 -_080E57F4: - ldr r2, [r7] - ldr r0, [r2, 0x8] - mov r3, r8 - adds r1, r0, r3 - adds r0, r6 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bls _080E5850 - ldr r0, [r2, 0x4] - adds r0, r5, r0 - ldrb r1, [r0, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E5850 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80E69C8 - lsls r0, 24 - cmp r0, 0 - beq _080E5850 - ldr r0, [r7] - ldr r2, [r0, 0x4] - adds r2, r5, r2 - ldrb r0, [r2, 0x15] - movs r3, 0x11 - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - strb r0, [r2, 0x15] - ldr r0, [r7] - ldr r2, [r0, 0x4] - adds r2, r5, r2 - ldrb r0, [r2, 0x15] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0x15] - adds r0, r4, 0 - movs r1, 0x8 - bl sub_80DD3D4 - movs r0, 0x1 - mov r9, r0 -_080E5850: - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _080E57F4 -_080E5858: - mov r1, r10 - ldr r0, [r1] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x7 - bl sub_80DD3D4 - mov r2, r9 - cmp r2, 0 - bne _080E587A - mov r3, r10 - ldr r0, [r3] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80DD3F0 -_080E587A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E57CC - - thumb_func_start ContestEffectFunc_080E588C -ContestEffectFunc_080E588C: @ 80E588C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r9, r0 - ldr r1, =gContestResources - ldr r0, [r1] - ldr r0, [r0, 0x8] - ldrb r7, [r0, 0x11] - adds r0, r7 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0 - beq _080E590A - movs r5, 0 - movs r6, 0 - mov r8, r4 -_080E58B0: - ldr r3, [r4] - ldr r2, [r3, 0x8] - adds r0, r2, r7 - adds r1, r2, r5 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E5900 - ldr r0, [r3, 0x4] - adds r0, r6, r0 - ldrb r1, [r0, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E58D8 - movs r0, 0x32 - b _080E58DA - .pool -_080E58D8: - movs r0, 0xA -_080E58DA: - strh r0, [r2, 0x4] - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, 0x8] - strb r5, [r0, 0x8] - ldr r0, [r1] - ldr r1, [r0, 0x8] - movs r0, 0xFF - strb r0, [r1, 0x9] - bl sub_80E6A2C - lsls r0, 24 - cmp r0, 0 - beq _080E5900 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080E5900: - adds r6, 0x1C - adds r5, 0x1 - ldr r4, =gContestResources - cmp r5, 0x3 - ble _080E58B0 -_080E590A: - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80DD3D4 - mov r0, r9 - cmp r0, 0 - bne _080E5928 - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80DD3F0 -_080E5928: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E588C - - thumb_func_start ContestEffectFunc_080E5938 -ContestEffectFunc_080E5938: @ 80E5938 - push {r4,lr} - ldr r4, =gContestResources - ldr r1, [r4] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x11] - bl ContestEffectFunc_080E5664 - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80DD3D4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5938 - - thumb_func_start ContestEffectFunc_080E5970 -ContestEffectFunc_080E5970: @ 80E5970 - push {r4,lr} - ldr r4, =gContestResources - ldr r1, [r4] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x6] - ldr r1, =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 29 - bl sub_80E6934 - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80DD3D4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5970 - - thumb_func_start ContestEffectFunc_080E59B0 -ContestEffectFunc_080E59B0: @ 80E59B0 - push {lr} - movs r0, 0 - bl sub_80E6934 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80DD3D4 - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E59B0 - - thumb_func_start ContestEffectFunc_080E59D0 -ContestEffectFunc_080E59D0: @ 80E59D0 - push {lr} - movs r0, 0x1 - bl sub_80E6934 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80DD3D4 - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E59D0 - - thumb_func_start ContestEffectFunc_080E59F0 -ContestEffectFunc_080E59F0: @ 80E59F0 - push {lr} - movs r0, 0x2 - bl sub_80E6934 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80DD3D4 - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E59F0 - - thumb_func_start ContestEffectFunc_080E5A10 -ContestEffectFunc_080E5A10: @ 80E5A10 - push {lr} - movs r0, 0x3 - bl sub_80E6934 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80DD3D4 - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5A10 - - thumb_func_start ContestEffectFunc_080E5A30 -ContestEffectFunc_080E5A30: @ 80E5A30 - push {lr} - movs r0, 0x4 - bl sub_80E6934 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80DD3D4 - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5A30 - - thumb_func_start ContestEffectFunc_080E5A50 -ContestEffectFunc_080E5A50: @ 80E5A50 - push {r4-r6,lr} - movs r4, 0 - ldr r2, =gContestResources - ldr r0, [r2] - ldr r0, [r0, 0x8] - ldrb r1, [r0, 0x11] - adds r0, r1 - ldrb r0, [r0] - adds r6, r2, 0 - cmp r0, 0x3 - beq _080E5AB0 - movs r5, 0 -_080E5A68: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0x8] - ldrb r0, [r1, 0x11] - adds r0, r1, r0 - ldrb r0, [r0] - adds r0, 0x1 - adds r1, r5 - ldrb r1, [r1] - cmp r0, r1 - bne _080E5AAA - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80E69C8 - lsls r0, 24 - cmp r0, 0 - beq _080E5AA0 - adds r0, r4, 0 - bl sub_80DD560 - adds r0, r4, 0 - movs r1, 0xA - b _080E5AA4 - .pool -_080E5AA0: - adds r0, r4, 0 - movs r1, 0x3C -_080E5AA4: - bl sub_80DD3D4 - movs r4, 0x1 -_080E5AAA: - adds r5, 0x1 - cmp r5, 0x3 - ble _080E5A68 -_080E5AB0: - ldr r0, [r6] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x9 - bl sub_80DD3D4 - cmp r4, 0 - bne _080E5ACC - ldr r0, [r6] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80DD3F0 -_080E5ACC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ContestEffectFunc_080E5A50 - - thumb_func_start ContestEffectFunc_080E5AD4 -ContestEffectFunc_080E5AD4: @ 80E5AD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - movs r0, 0 - mov r9, r0 - movs r1, 0 - str r1, [sp, 0x18] - mov r0, sp - movs r1, 0xFF - movs r2, 0x5 - bl memset - movs r5, 0 - movs r4, 0 - add r2, sp, 0x10 - mov r8, r2 - add r3, sp, 0x8 - mov r10, r3 - movs r6, 0 -_080E5B00: - ldr r0, =gContestResources - ldr r2, [r0] - ldr r1, [r2, 0x8] - ldrb r0, [r1, 0x11] - adds r0, r1, r0 - adds r1, r5 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcs _080E5B38 - ldr r0, [r2, 0x4] - adds r0, r6, r0 - ldrb r1, [r0, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080E5B38 - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_80DBCA8 - lsls r0, 24 - cmp r0, 0 - bne _080E5B38 - mov r1, sp - adds r0, r1, r4 - strb r5, [r0] - adds r4, 0x1 -_080E5B38: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080E5B00 - cmp r4, 0x1 - bne _080E5B50 - movs r0, 0x3C - mov r2, r8 - strh r0, [r2] - b _080E5B7E - .pool -_080E5B50: - cmp r4, 0x2 - bne _080E5B5E - movs r0, 0x1E - mov r3, r8 - strh r0, [r3] - strh r0, [r3, 0x2] - b _080E5B7E -_080E5B5E: - cmp r4, 0x3 - bne _080E5B6E - movs r0, 0x14 - mov r6, r8 - strh r0, [r6] - strh r0, [r6, 0x2] - strh r0, [r6, 0x4] - b _080E5B7E -_080E5B6E: - mov r1, r8 - movs r2, 0 - mov r0, r8 - adds r0, 0x6 -_080E5B76: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _080E5B76 -_080E5B7E: - movs r5, 0 - ldr r7, =gContestResources - movs r6, 0 - mov r4, r10 -_080E5B86: - ldr r0, [r7] - ldr r0, [r0, 0x4] - adds r0, r6, r0 - ldrb r1, [r0, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E5BD0 - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_80DE1E8 - lsls r0, 24 - cmp r0, 0 - beq _080E5BD0 - ldr r0, [r7] - ldr r0, [r0, 0x4] - adds r0, r6, r0 - ldrh r0, [r0, 0x8] - lsls r0, 3 - ldr r1, =gContestMoves - adds r0, r1 - ldrb r0, [r0, 0x2] - ldr r2, =gComboStarterLookupTable - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - b _080E5BD2 - .pool -_080E5BD0: - movs r0, 0 -_080E5BD2: - strh r0, [r4] - ldr r0, [r7] - ldr r0, [r0, 0x4] - adds r0, r6, r0 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - asrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4] - subs r0, r1 - strh r0, [r4] - adds r6, 0x1C - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _080E5B86 - mov r3, r8 - movs r6, 0 - ldrsh r0, [r3, r6] - cmp r0, 0 - beq _080E5CA0 - movs r5, 0 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0xFF - beq _080E5CA0 - mov r4, sp -_080E5C16: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r5, 1 - add r1, r8 - movs r3, 0 - ldrsh r2, [r1, r3] - ldrb r3, [r4] - lsls r1, r3, 1 - add r1, r10 - movs r6, 0 - ldrsh r1, [r1, r6] - adds r2, r1 - cmp r0, r2 - bge _080E5C66 - adds r0, r3, 0 - bl sub_80E69C8 - lsls r0, 24 - cmp r0, 0 - beq _080E5C70 - ldrb r0, [r4] - bl sub_80DD560 - ldrb r0, [r4] - movs r1, 0xA - bl sub_80DD3D4 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - b _080E5C6A -_080E5C66: - movs r0, 0x1 - str r0, [sp, 0x18] -_080E5C6A: - ldr r1, [sp, 0x18] - cmp r1, 0 - beq _080E5C86 -_080E5C70: - movs r2, 0 - str r2, [sp, 0x18] - ldrb r0, [r4] - movs r1, 0x3C - bl sub_80DD3D4 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080E5C86: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - adds r0, 0xD - ldrb r3, [r4] - adds r0, r3 - movs r1, 0x1 - strb r1, [r0] - adds r4, 0x1 - adds r5, 0x1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080E5C16 -_080E5CA0: - ldr r6, =gContestResources - ldr r0, [r6] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0xB - bl sub_80DD3D4 - mov r0, r9 - cmp r0, 0 - bne _080E5CC0 - ldr r0, [r6] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80DD3F0 -_080E5CC0: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5AD4 - - thumb_func_start ContestEffectFunc_080E5CD4 -ContestEffectFunc_080E5CD4: @ 80E5CD4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0 - mov r8, r0 - movs r6, 0 - ldr r7, =gContestResources - movs r5, 0 -_080E5CE4: - ldr r2, [r7] - ldr r0, [r2, 0x8] - ldrb r1, [r0, 0x11] - adds r1, r0, r1 - adds r0, r6 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bls _080E5D46 - ldr r0, [r2, 0x4] - adds r0, r5, r0 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _080E5D46 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80E69C8 - lsls r0, 24 - cmp r0, 0 - beq _080E5D46 - ldr r0, [r7] - ldr r0, [r0, 0x4] - adds r0, r5, r0 - movs r1, 0 - strb r1, [r0, 0xD] - ldr r0, [r7] - ldr r2, [r0, 0x4] - adds r2, r5, r2 - ldrb r1, [r2, 0x10] - movs r3, 0x31 - negs r3, r3 - adds r0, r3, 0 - ands r1, r0 - movs r0, 0x20 - orrs r1, r0 - strb r1, [r2, 0x10] - adds r0, r4, 0 - movs r1, 0xD - bl sub_80DD3D4 - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_080E5D46: - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _080E5CE4 - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0xC - bl sub_80DD3D4 - mov r0, r8 - cmp r0, 0 - bne _080E5D6E - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x39 - bl sub_80DD3F0 -_080E5D6E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5CD4 - - thumb_func_start ContestEffectFunc_080E5D7C -ContestEffectFunc_080E5D7C: @ 80E5D7C - push {r4-r7,lr} - movs r7, 0 - movs r4, 0 - ldr r5, =gContestResources - movs r6, 0 -_080E5D86: - ldr r3, [r5] - ldr r2, [r3, 0x8] - ldrb r0, [r2, 0x11] - adds r0, r2, r0 - adds r1, r2, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E5DD2 - ldr r0, [r3, 0x4] - adds r0, r6, r0 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _080E5DB0 - movs r0, 0x28 - b _080E5DB2 - .pool -_080E5DB0: - movs r0, 0xA -_080E5DB2: - strh r0, [r2, 0x4] - ldr r0, [r5] - ldr r0, [r0, 0x8] - strb r4, [r0, 0x8] - ldr r0, [r5] - ldr r1, [r0, 0x8] - movs r0, 0xFF - strb r0, [r1, 0x9] - bl sub_80E6A2C - lsls r0, 24 - cmp r0, 0 - beq _080E5DD2 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080E5DD2: - adds r6, 0x1C - adds r4, 0x1 - cmp r4, 0x3 - ble _080E5D86 - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0xE - bl sub_80DD3D4 - cmp r7, 0 - bne _080E5DF8 - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x39 - bl sub_80DD3F0 -_080E5DF8: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5D7C - - thumb_func_start ContestEffectFunc_080E5E04 -ContestEffectFunc_080E5E04: @ 80E5E04 - push {r4,lr} - ldr r1, =gUnknown_02039F26 - ldr r0, =gContestResources - ldr r4, [r0] - ldr r0, [r4, 0x8] - ldrb r2, [r0, 0x11] - adds r1, r2, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _080E5E46 - ldr r0, [r4, 0x4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x6] - ldr r3, =gContestEffects - ldr r2, =gContestMoves - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldr r0, [r4, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0xF - bl sub_80DD3D4 -_080E5E46: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5E04 - - thumb_func_start ContestEffectFunc_080E5E5C -ContestEffectFunc_080E5E5C: @ 80E5E5C - push {r4,lr} - ldr r1, =gUnknown_02039F26 - ldr r0, =gContestResources - ldr r4, [r0] - ldr r0, [r4, 0x8] - ldrb r2, [r0, 0x11] - adds r1, r2, r1 - ldrb r0, [r1] - cmp r0, 0x3 - bne _080E5E9E - ldr r0, [r4, 0x4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x6] - ldr r3, =gContestEffects - ldr r2, =gContestMoves - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldr r0, [r4, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x10 - bl sub_80DD3D4 -_080E5E9E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5E5C - - thumb_func_start ContestEffectFunc_080E5EB4 -ContestEffectFunc_080E5EB4: @ 80E5EB4 - push {r4-r7,lr} - movs r1, 0 - movs r5, 0 - ldr r0, =gContestResources - ldr r4, [r0] - ldr r2, [r4, 0x8] - ldrb r0, [r2, 0x11] - adds r0, r2, r0 - ldrb r6, [r0] - movs r3, 0 -_080E5EC8: - adds r0, r2, r1 - ldrb r0, [r0] - cmp r6, r0 - bls _080E5EDA - ldr r0, [r4, 0x4] - adds r0, r3, r0 - movs r7, 0x2 - ldrsh r0, [r0, r7] - adds r5, r0 -_080E5EDA: - adds r3, 0x1C - adds r1, 0x1 - cmp r1, 0x3 - ble _080E5EC8 - cmp r5, 0 - bge _080E5EE8 - movs r5, 0 -_080E5EE8: - ldr r0, =gContestResources - ldr r3, [r0] - ldr r0, [r3, 0x8] - ldrb r2, [r0, 0x11] - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080E5EFC - cmp r5, 0 - bne _080E5F0C -_080E5EFC: - adds r0, r2, 0 - movs r1, 0x12 - bl sub_80DD3D4 - b _080E5F2C - .pool -_080E5F0C: - ldr r0, [r3, 0x4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldr r0, [r3, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x11 - bl sub_80DD3D4 -_080E5F2C: - ldr r4, =gContestResources - ldr r1, [r4] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - movs r7, 0x2 - ldrsh r0, [r0, r7] - bl sub_80E6B70 - ldr r2, [r4] - ldr r1, [r2, 0x8] - ldrb r3, [r1, 0x11] - ldr r2, [r2, 0x4] - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r2 - strh r0, [r1, 0x2] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E5EB4 - - thumb_func_start ContestEffectFunc_080E5F64 -ContestEffectFunc_080E5F64: @ 80E5F64 - push {r4-r7,lr} - movs r6, 0 - ldr r0, =gContestResources - ldr r4, [r0] - ldr r2, [r4, 0x8] - ldrb r1, [r2, 0x11] - adds r3, r2, r1 - ldrb r1, [r3] - adds r7, r0, 0 - cmp r1, 0 - beq _080E5FB2 - movs r1, 0 - adds r5, r4, 0 - adds r4, r2, 0 - ldrb r0, [r3] - subs r3, r0, 0x1 - movs r2, 0 -_080E5F86: - adds r0, r4, r1 - ldrb r0, [r0] - cmp r3, r0 - bne _080E5F94 - ldr r0, [r5, 0x4] - adds r0, r2, r0 - ldrh r6, [r0, 0x2] -_080E5F94: - adds r2, 0x1C - adds r1, 0x1 - cmp r1, 0x3 - ble _080E5F86 - ldr r3, [r7] - ldr r0, [r3, 0x8] - ldrb r2, [r0, 0x11] - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080E5FB2 - lsls r0, r6, 16 - asrs r4, r0, 16 - cmp r4, 0 - bgt _080E5FC4 -_080E5FB2: - ldr r0, [r7] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x14 - bl sub_80DD3D4 - b _080E5FDE - .pool -_080E5FC4: - ldr r1, [r3, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x2] - adds r1, r4, r1 - strh r1, [r0, 0x2] - ldr r0, [r3, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x13 - bl sub_80DD3D4 -_080E5FDE: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffectFunc_080E5F64 - - thumb_func_start ContestEffectFunc_080E5FE4 -ContestEffectFunc_080E5FE4: @ 80E5FE4 - push {r4,r5,lr} - ldr r1, =gContestResources - ldr r3, [r1] - ldr r0, [r3, 0x8] - ldrb r2, [r0, 0x11] - adds r0, r2 - ldrb r4, [r0] - adds r5, r1, 0 - cmp r4, 0 - bne _080E600C - ldr r0, [r3, 0x4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - movs r0, 0xA - b _080E601C - .pool -_080E600C: - ldr r0, [r3, 0x4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 2 -_080E601C: - strh r0, [r1, 0x2] - cmp r4, 0 - bne _080E6030 - ldr r0, [r5] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x15 - bl sub_80DD3D4 - b _080E6060 -_080E6030: - cmp r4, 0x1 - bne _080E6042 - ldr r0, [r5] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x16 - bl sub_80DD3D4 - b _080E6060 -_080E6042: - cmp r4, 0x2 - bne _080E6054 - ldr r0, [r5] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x17 - bl sub_80DD3D4 - b _080E6060 -_080E6054: - ldr r0, [r5] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x18 - bl sub_80DD3D4 -_080E6060: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ContestEffectFunc_080E5FE4 - - thumb_func_start ContestEffectFunc_080E6068 -ContestEffectFunc_080E6068: @ 80E6068 - push {r4,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x2 - bhi _080E6098 - movs r4, 0xA - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x1A - bl sub_80DD3D4 - b _080E60FC - .pool -_080E6098: - cmp r0, 0x5 - bhi _080E60B4 - movs r4, 0x14 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x1B - bl sub_80DD3D4 - b _080E60FC - .pool -_080E60B4: - cmp r0, 0x7 - bhi _080E60D0 - movs r4, 0x28 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x1C - bl sub_80DD3D4 - b _080E60FC - .pool -_080E60D0: - cmp r1, 0x8 - bhi _080E60EC - movs r4, 0x3C - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x1D - bl sub_80DD3D4 - b _080E60FC - .pool -_080E60EC: - movs r4, 0x50 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x1E - bl sub_80DD3D4 -_080E60FC: - ldr r0, =gContestResources - ldr r1, [r0] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - strh r4, [r0, 0x2] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E6068 - - thumb_func_start ContestEffectFunc_080E611C -ContestEffectFunc_080E611C: @ 80E611C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r2, =gContestResources - ldr r0, [r2] - ldr r3, [r0, 0x8] - ldrb r0, [r3, 0x11] - adds r0, r3, r0 - movs r1, 0 - ldrsb r1, [r0, r1] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r2 - cmp r1, 0 - beq _080E61F8 - mov r7, r8 - ldrb r6, [r3] -_080E6140: - movs r2, 0 - lsls r0, r4, 24 - asrs r1, r0, 24 - adds r5, r0, 0 - cmp r6, r1 - beq _080E616A - ldr r4, =gContestResources -_080E614E: - lsls r0, r2, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r2, r0, 24 - asrs r3, r0, 24 - cmp r3, 0x3 - bgt _080E616A - ldr r0, [r4] - ldr r0, [r0, 0x8] - adds r0, r3 - ldrb r0, [r0] - cmp r0, r1 - bne _080E614E -_080E616A: - ldr r0, [r7] - lsls r3, r2, 24 - asrs r1, r3, 24 - ldr r2, [r0, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r2, r0, r2 - ldrb r1, [r2, 0xB] - movs r0, 0x80 - ands r0, r1 - mov r12, r3 - cmp r0, 0 - bne _080E6190 - ldrb r1, [r2, 0xC] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _080E61A4 -_080E6190: - movs r1, 0xFF - lsls r1, 24 - adds r0, r5, r1 - lsrs r4, r0, 24 - cmp r0, 0 - blt _080E61F8 - b _080E6140 - .pool -_080E61A4: - mov r2, r8 - ldr r6, [r2] - ldr r0, [r6, 0x8] - ldrb r1, [r0, 0x11] - ldr r4, [r6, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r5, r0, r4 - ldrh r0, [r5, 0x6] - ldr r3, =gContestMoves - lsls r0, 3 - adds r7, r0, r3 - ldrb r2, [r7, 0x1] - lsls r2, 29 - mov r0, r12 - asrs r1, r0, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x6] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r2, r0 - bne _080E61F8 - ldr r1, =gContestEffects - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r5, 0x2] - ldr r0, [r6, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x1F - bl sub_80DD3D4 -_080E61F8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E611C - - thumb_func_start ContestEffectFunc_080E620C -ContestEffectFunc_080E620C: @ 80E620C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gContestResources - ldr r3, [r0] - ldr r1, [r3, 0x8] - ldrb r2, [r1, 0x11] - adds r1, r2 - ldrb r1, [r1] - mov r9, r0 - cmp r1, 0 - beq _080E62AC - ldr r1, [r3, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x6] - mov r8, r0 - movs r6, 0 - ldr r0, =gContestMoves - mov r12, r0 - movs r7, 0 -_080E623C: - mov r1, r9 - ldr r4, [r1] - ldr r0, [r4, 0x8] - ldrb r2, [r0, 0x11] - adds r1, r0, r2 - ldrb r1, [r1] - subs r1, 0x1 - adds r0, r6 - ldrb r0, [r0] - cmp r1, r0 - bne _080E62A4 - mov r1, r8 - lsls r0, r1, 3 - mov r1, r12 - adds r5, r0, r1 - ldrb r1, [r5, 0x1] - lsls r1, 29 - ldr r3, [r4, 0x4] - adds r0, r7, r3 - ldrh r0, [r0, 0x6] - lsls r0, 3 - add r0, r12 - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r1, r0 - beq _080E62A4 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r3 - ldr r2, =gContestEffects - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldr r0, [r4, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x20 - bl sub_80DD3D4 - b _080E62AC - .pool -_080E62A4: - adds r7, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _080E623C -_080E62AC: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffectFunc_080E620C - - thumb_func_start ContestEffectFunc_080E62B8 -ContestEffectFunc_080E62B8: @ 80E62B8 - push {r4-r7,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r1, [r0, 0x11] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080E632E - movs r5, 0 - movs r6, 0 -_080E62CE: - ldr r0, =gContestResources - ldr r4, [r0] - ldr r1, [r4, 0x8] - ldrb r2, [r1, 0x11] - adds r0, r1, r2 - ldrb r0, [r0] - subs r0, 0x1 - adds r1, r5 - ldrb r1, [r1] - cmp r0, r1 - bne _080E6326 - ldr r1, [r4, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r3, r0, r1 - adds r1, r6, r1 - movs r0, 0x2 - ldrsh r2, [r3, r0] - movs r7, 0x2 - ldrsh r0, [r1, r7] - cmp r2, r0 - ble _080E6314 - adds r0, r2, 0 - lsls r0, 1 - strh r0, [r3, 0x2] - ldr r0, [r4, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x21 - bl sub_80DD3D4 - b _080E6326 - .pool -_080E6314: - cmp r2, r0 - bge _080E6326 - movs r0, 0 - strh r0, [r3, 0x2] - ldr r0, [r4, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x22 - bl sub_80DD3D4 -_080E6326: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080E62CE -_080E632E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffectFunc_080E62B8 - - thumb_func_start ContestEffectFunc_080E6334 -ContestEffectFunc_080E6334: @ 80E6334 - push {r4,lr} - ldr r4, =gContestResources - ldr r1, [r4] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r1, r0, r1 - ldrb r3, [r1, 0xD] - movs r0, 0xD - ldrsb r0, [r1, r0] - cmp r0, 0x1D - bgt _080E6388 - adds r0, r3, 0 - adds r0, 0xA - strb r0, [r1, 0xD] - ldr r1, [r4] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x10] - movs r1, 0x31 - negs r1, r1 - ands r1, r2 - movs r2, 0x10 - orrs r1, r2 - strb r1, [r0, 0x10] - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x23 - bl sub_80DD3D4 - b _080E6390 - .pool -_080E6388: - adds r0, r2, 0 - movs r1, 0x3A - bl sub_80DD3D4 -_080E6390: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestEffectFunc_080E6334 - - thumb_func_start ContestEffectFunc_080E6398 -ContestEffectFunc_080E6398: @ 80E6398 - push {lr} - ldr r3, =gContestResources - ldr r1, [r3] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x11] - ldr r1, [r3] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E63DC - adds r0, r2, 0 - movs r1, 0x24 - bl sub_80DD3D4 - b _080E63E4 - .pool -_080E63DC: - adds r0, r2, 0 - movs r1, 0x3B - bl sub_80DD3D4 -_080E63E4: - pop {r0} - bx r0 - thumb_func_end ContestEffectFunc_080E6398 - - thumb_func_start ContestEffectFunc_080E63E8 -ContestEffectFunc_080E63E8: @ 80E63E8 - push {r4-r7,lr} - sub sp, 0x4 - ldr r0, =gContestResources - ldr r2, [r0] - ldr r1, [r2] - ldrb r1, [r1, 0x1] - mov r12, r0 - cmp r1, 0x4 - bne _080E63FC - b _080E6518 -_080E63FC: - movs r6, 0 - adds r4, r2, 0 -_080E6400: - lsls r1, r6, 24 - asrs r1, 24 - mov r0, sp - adds r3, r0, r1 - ldr r2, [r4, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x19] - strb r0, [r3] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080E6400 - mov r1, r12 - ldr r0, [r1] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, 0xFF - strb r0, [r1] - movs r6, 0 - mov r3, r12 - ldr r7, [r3] -_080E6438: - movs r5, 0 -_080E643A: - lsls r0, r5, 24 - asrs r2, r0, 24 - ldr r0, [r7, 0x8] - ldrb r0, [r0, 0x11] - cmp r2, r0 - beq _080E6474 - lsls r0, r6, 24 - asrs r3, r0, 24 - mov r0, sp - adds r4, r0, r2 - ldrb r1, [r4] - cmp r3, r1 - bne _080E6474 - ldr r0, [r7, 0x4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - lsls r0, r3, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x19] - cmp r0, r1 - bne _080E6474 - adds r0, r3, 0x1 - strb r0, [r4] - b _080E6484 - .pool -_080E6474: - lsls r0, r5, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r5, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080E643A -_080E6484: - cmp r5, 0x4 - beq _080E6498 - lsls r0, r6, 24 - movs r3, 0x80 - lsls r3, 17 - adds r0, r3 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080E6438 -_080E6498: - mov r4, r12 - ldr r1, [r4] - ldr r0, [r1, 0x8] - ldrb r0, [r0, 0x11] - mov r3, sp - adds r2, r3, r0 - movs r0, 0 - strb r0, [r2] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x10] - movs r1, 0x3F - ands r1, r2 - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0, 0x10] - movs r6, 0 - mov r3, r12 -_080E64C6: - ldr r0, [r3] - lsls r1, r6, 24 - asrs r1, 24 - ldr r2, [r0, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - mov r4, sp - adds r2, r4, r1 - ldrb r2, [r2] - strb r2, [r0, 0x19] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080E64C6 - mov r0, r12 - ldr r1, [r0] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x11] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x11] - mov r1, r12 - ldr r0, [r1] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x25 - bl sub_80DD3D4 -_080E6518: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffectFunc_080E63E8 - - thumb_func_start ContestEffectFunc_080E6520 -ContestEffectFunc_080E6520: @ 80E6520 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r0, =gContestResources - ldr r2, [r0] - ldr r1, [r2] - ldrb r1, [r1, 0x1] - mov r12, r0 - cmp r1, 0x4 - bne _080E6538 - b _080E6658 -_080E6538: - movs r6, 0 - adds r4, r2, 0 -_080E653C: - lsls r1, r6, 24 - asrs r1, 24 - mov r0, sp - adds r3, r0, r1 - ldr r2, [r4, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x19] - strb r0, [r3] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080E653C - mov r1, r12 - ldr r0, [r1] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, 0xFF - strb r0, [r1] - movs r6, 0x3 - mov r3, r12 - ldr r7, [r3] - movs r4, 0x1 - negs r4, r4 - mov r8, r4 -_080E657A: - movs r5, 0 -_080E657C: - lsls r0, r5, 24 - asrs r2, r0, 24 - ldr r0, [r7, 0x8] - ldrb r0, [r0, 0x11] - cmp r2, r0 - beq _080E65B4 - lsls r0, r6, 24 - asrs r3, r0, 24 - mov r0, sp - adds r4, r0, r2 - ldrb r1, [r4] - cmp r3, r1 - bne _080E65B4 - ldr r0, [r7, 0x4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - lsls r0, r3, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x19] - cmp r0, r1 - bne _080E65B4 - subs r0, r3, 0x1 - strb r0, [r4] - b _080E65C4 - .pool -_080E65B4: - lsls r0, r5, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r5, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080E657C -_080E65C4: - cmp r5, 0x4 - beq _080E65D8 - lsls r0, r6, 24 - movs r3, 0xFF - lsls r3, 24 - adds r0, r3 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, r8 - bgt _080E657A -_080E65D8: - mov r4, r12 - ldr r1, [r4] - ldr r0, [r1, 0x8] - ldrb r0, [r0, 0x11] - mov r3, sp - adds r2, r3, r0 - movs r0, 0x3 - strb r0, [r2] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x10] - movs r1, 0x3F - ands r1, r2 - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0, 0x10] - movs r6, 0 - mov r3, r12 -_080E6606: - ldr r0, [r3] - lsls r1, r6, 24 - asrs r1, 24 - ldr r2, [r0, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - mov r4, sp - adds r2, r4, r1 - ldrb r2, [r2] - strb r2, [r0, 0x19] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080E6606 - mov r0, r12 - ldr r1, [r0] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x11] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x11] - mov r1, r12 - ldr r0, [r1] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x26 - bl sub_80DD3D4 -_080E6658: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffectFunc_080E6520 - - thumb_func_start ContestEffectFunc_080E6664 -ContestEffectFunc_080E6664: @ 80E6664 - bx lr - thumb_func_end ContestEffectFunc_080E6664 - - thumb_func_start ContestEffectFunc_080E6668 -ContestEffectFunc_080E6668: @ 80E6668 - push {r4-r7,lr} - sub sp, 0x8 - ldr r0, =gContestResources - ldr r1, [r0] - ldr r0, [r1] - ldrb r0, [r0, 0x1] - cmp r0, 0x4 - beq _080E676C - movs r6, 0 - add r5, sp, 0x4 - adds r4, r1, 0 - adds r7, r5, 0 -_080E6680: - lsls r1, r6, 24 - asrs r1, 24 - mov r0, sp - adds r3, r0, r1 - ldr r2, [r4, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x19] - strb r0, [r3] - adds r0, r7, r1 - strb r6, [r0] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080E6680 - movs r6, 0 - adds r7, r5, 0 -_080E66AA: - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r2, r6, 24 - asrs r2, 24 - movs r1, 0x4 - subs r1, r2 - bl __modsi3 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0 -_080E66C4: - lsls r0, r1, 24 - asrs r2, r0, 24 - adds r3, r7, r2 - ldrb r1, [r3] - adds r5, r0, 0 - cmp r1, 0xFF - beq _080E66EE - cmp r4, 0 - bne _080E66E8 - mov r1, sp - adds r0, r1, r2 - strb r6, [r0] - movs r0, 0xFF - strb r0, [r3] - b _080E66FC - .pool -_080E66E8: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080E66EE: - movs r1, 0x80 - lsls r1, 17 - adds r0, r5, r1 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080E66C4 -_080E66FC: - lsls r0, r6, 24 - movs r6, 0x80 - lsls r6, 17 - adds r0, r6 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080E66AA - movs r6, 0 - ldr r5, =gContestResources - adds r4, r5, 0 -_080E6712: - ldr r0, [r4] - lsls r3, r6, 24 - asrs r3, 24 - ldr r1, [r0, 0x4] - lsls r2, r3, 3 - subs r2, r3 - lsls r2, 2 - adds r1, r2, r1 - mov r6, sp - adds r0, r6, r3 - ldrb r0, [r0] - strb r0, [r1, 0x19] - ldr r0, [r4] - ldr r0, [r0, 0x4] - adds r2, r0 - ldrb r1, [r2, 0x10] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x10] - adds r3, 0x1 - lsls r3, 24 - lsrs r6, r3, 24 - asrs r3, 24 - cmp r3, 0x3 - ble _080E6712 - ldr r1, [r5] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x11] - ldr r0, [r5] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x27 - bl sub_80DD3D4 -_080E676C: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E6668 - - thumb_func_start ContestEffectFunc_080E6778 -ContestEffectFunc_080E6778: @ 80E6778 - push {lr} - ldr r3, =gContestMoves - ldr r0, =gContestResources - ldr r1, [r0] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r2, r0, r1 - ldrh r0, [r2, 0x6] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 29 - ldr r1, =gSpecialVar_ContestCategory - lsrs r0, 29 - ldrh r1, [r1] - cmp r0, r1 - beq _080E67AA - ldrb r0, [r2, 0x11] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2, 0x11] -_080E67AA: - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E6778 - - thumb_func_start ContestEffectFunc_080E67BC -ContestEffectFunc_080E67BC: @ 80E67BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0 - mov r8, r0 - movs r4, 0 - ldr r5, =gContestResources - movs r6, 0 -_080E67CC: - ldr r3, [r5] - ldr r2, [r3, 0x8] - ldrb r0, [r2, 0x11] - adds r0, r2, r0 - adds r1, r2, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E682E - ldr r0, [r3, 0x4] - adds r1, r6, r0 - movs r7, 0x2 - ldrsh r0, [r1, r7] - cmp r0, 0 - ble _080E6808 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r2, 0x4] - ldr r0, [r3, 0x8] - movs r1, 0x4 - ldrsh r0, [r0, r1] - bl sub_80E6BB4 - ldr r1, [r5] - ldr r1, [r1, 0x8] - strh r0, [r1, 0x4] - b _080E680C - .pool -_080E6808: - movs r0, 0xA - strh r0, [r2, 0x4] -_080E680C: - ldr r0, [r5] - ldr r0, [r0, 0x8] - strb r4, [r0, 0x8] - ldr r0, [r5] - ldr r1, [r0, 0x8] - movs r0, 0xFF - strb r0, [r1, 0x9] - bl sub_80E6A2C - lsls r0, 24 - cmp r0, 0 - beq _080E682E - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_080E682E: - adds r6, 0x1C - adds r4, 0x1 - cmp r4, 0x3 - ble _080E67CC - mov r7, r8 - cmp r7, 0 - bne _080E684A - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80DD3F0 -_080E684A: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80DD3D4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E67BC - - thumb_func_start ContestEffectFunc_080E6868 -ContestEffectFunc_080E6868: @ 80E6868 - push {r4,lr} - ldr r0, =gContestResources - ldr r1, [r0] - ldr r0, [r1] - ldrb r0, [r0, 0x13] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080E688C - movs r4, 0xA - ldr r0, [r1, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x1A - bl sub_80DD3D4 - b _080E68CE - .pool -_080E688C: - cmp r0, 0x1 - bne _080E689E - movs r4, 0x14 - ldr r0, [r1, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x1B - bl sub_80DD3D4 - b _080E68CE -_080E689E: - cmp r0, 0x2 - bne _080E68B0 - movs r4, 0x1E - ldr r0, [r1, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x1C - bl sub_80DD3D4 - b _080E68CE -_080E68B0: - cmp r0, 0x3 - bne _080E68C2 - movs r4, 0x32 - ldr r0, [r1, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x1D - bl sub_80DD3D4 - b _080E68CE -_080E68C2: - movs r4, 0x3C - ldr r0, [r1, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x1E - bl sub_80DD3D4 -_080E68CE: - ldr r0, =gContestResources - ldr r1, [r0] - ldr r0, [r1, 0x8] - ldrb r2, [r0, 0x11] - ldr r1, [r1, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - strh r4, [r0, 0x2] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E6868 - - thumb_func_start ContestEffectFunc_080E68EC -ContestEffectFunc_080E68EC: @ 80E68EC - push {r4,lr} - ldr r4, =gContestResources - ldr r0, [r4] - ldr r2, [r0, 0x10] - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080E692A - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r0, [r4] - ldr r3, [r0, 0x10] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x7 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r3, 0x1] - movs r0, 0xF - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x1] - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x3D - bl sub_80DD3D4 -_080E692A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ContestEffectFunc_080E68EC - - thumb_func_start sub_80E6934 -sub_80E6934: @ 80E6934 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r7, 0 - movs r4, 0 - ldr r6, =gContestResources - ldr r0, =gContestMoves - mov r9, r0 - movs r5, 0 -_080E694E: - ldr r3, [r6] - ldr r2, [r3, 0x8] - ldrb r0, [r2, 0x11] - adds r0, r2, r0 - adds r1, r2, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E699E - ldr r0, [r3, 0x4] - adds r0, r5, r0 - ldrh r0, [r0, 0x6] - lsls r0, 3 - add r0, r9 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 29 - cmp r8, r0 - bne _080E6980 - movs r0, 0x28 - b _080E6982 - .pool -_080E6980: - movs r0, 0xA -_080E6982: - strh r0, [r2, 0x4] - ldr r0, [r6] - ldr r0, [r0, 0x8] - strb r4, [r0, 0x8] - ldr r0, [r6] - ldr r1, [r0, 0x8] - movs r0, 0xFF - strb r0, [r1, 0x9] - bl sub_80E6A2C - lsls r0, 24 - cmp r0, 0 - beq _080E699E - adds r7, 0x1 -_080E699E: - adds r5, 0x1C - adds r4, 0x1 - cmp r4, 0x3 - ble _080E694E - cmp r7, 0 - bne _080E69B8 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80DD3F0 -_080E69B8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E6934 - - thumb_func_start sub_80E69C8 -sub_80E69C8: @ 80E69C8 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, =gContestResources - ldr r0, [r2] - ldr r0, [r0, 0x8] - adds r0, 0xD - adds r0, r3 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r2] - ldr r1, [r0, 0x4] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r2, r0, r1 - ldrb r1, [r2, 0x10] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E69FC - adds r0, r3, 0 - movs r1, 0x2D - b _080E6A22 - .pool -_080E69FC: - ldrb r0, [r2, 0x12] - cmp r0, 0 - bne _080E6A1A - ldrb r1, [r2, 0xB] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E6A26 - ldrb r1, [r2, 0xC] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080E6A26 - movs r0, 0x1 - b _080E6A28 -_080E6A1A: - subs r0, 0x1 - strb r0, [r2, 0x12] - adds r0, r3, 0 - movs r1, 0x2C -_080E6A22: - bl sub_80DD3D4 -_080E6A26: - movs r0, 0 -_080E6A28: - pop {r1} - bx r1 - thumb_func_end sub_80E69C8 - - thumb_func_start sub_80E6A2C -sub_80E6A2C: @ 80E6A2C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - mov r0, sp - movs r1, 0 - movs r2, 0x8 - bl memset - movs r7, 0 - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrb r0, [r0, 0x8] - cmp r0, 0xFF - beq _080E6B10 - mov r8, r4 -_080E6A4E: - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, 0x8] - adds r0, 0x8 - adds r0, r7 - ldrb r5, [r0] - adds r6, r5, 0 - adds r0, r5, 0 - bl sub_80E69C8 - lsls r0, 24 - cmp r0, 0 - beq _080E6AFE - ldr r2, [r4] - ldr r1, [r2, 0x8] - ldrh r0, [r1, 0x4] - strh r0, [r1, 0x6] - ldr r1, [r2, 0x4] - lsls r0, r5, 3 - subs r0, r5 - lsls r4, r0, 2 - adds r1, r4, r1 - ldrb r1, [r1, 0x10] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E6A8E - ldr r1, [r2, 0x8] - movs r2, 0x6 - ldrsh r0, [r1, r2] - lsls r0, 1 - strh r0, [r1, 0x6] -_080E6A8E: - mov r0, r8 - ldr r3, [r0] - ldr r0, [r3, 0x4] - adds r1, r4, r0 - ldrb r0, [r1, 0x10] - movs r4, 0x1 - ands r4, r0 - cmp r4, 0 - beq _080E6AB4 - ldr r1, [r3, 0x8] - movs r0, 0xA - strh r0, [r1, 0x6] - adds r0, r5, 0 - movs r1, 0x2F - bl sub_80DD3D4 - b _080E6AFE - .pool -_080E6AB4: - ldr r2, [r3, 0x8] - ldrb r1, [r1, 0xF] - ldrh r0, [r2, 0x6] - subs r0, r1 - strh r0, [r2, 0x6] - ldr r2, [r3, 0x8] - ldrh r1, [r2, 0x6] - movs r3, 0x6 - ldrsh r0, [r2, r3] - cmp r0, 0 - bgt _080E6AD6 - strh r4, [r2, 0x6] - adds r0, r5, 0 - movs r1, 0x2E - bl sub_80DD3D4 - b _080E6AFE -_080E6AD6: - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_80E6B3C - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, 0x8] - ldrb r1, [r0, 0x6] - adds r0, r6, 0 - bl sub_80DD40C - lsls r0, r6, 1 - mov r2, sp - adds r1, r2, r0 - mov r3, r8 - ldr r0, [r3] - ldr r0, [r0, 0x8] - ldrh r0, [r0, 0x6] - strh r0, [r1] -_080E6AFE: - adds r7, 0x1 - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0, 0x8] - adds r0, 0x8 - adds r0, r7 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080E6A4E -_080E6B10: - movs r7, 0 - mov r1, sp -_080E6B14: - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080E6B24 - movs r0, 0x1 - b _080E6B2E - .pool -_080E6B24: - adds r1, 0x2 - adds r7, 0x1 - cmp r7, 0x3 - ble _080E6B14 - movs r0, 0 -_080E6B2E: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E6A2C - - thumb_func_start sub_80E6B3C -sub_80E6B3C: @ 80E6B3C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gContestResources - ldr r4, [r2] - ldr r3, [r4, 0x4] - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - adds r3, r2, r3 - ldrh r0, [r3, 0x2] - subs r0, r1 - strh r0, [r3, 0x2] - ldr r0, [r4, 0x4] - adds r2, r0 - ldrb r0, [r2, 0xE] - adds r1, r0 - strb r1, [r2, 0xE] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E6B3C - - thumb_func_start sub_80E6B70 -sub_80E6B70: @ 80E6B70 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - cmp r4, 0 - bge _080E6B80 - negs r0, r4 -_080E6B80: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r4, 0 - bge _080E6B9E - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080E6BA8 - adds r0, r4, 0 - subs r0, 0xA - adds r0, r1, r0 - b _080E6BA4 -_080E6B9E: - lsls r0, 16 - asrs r0, 16 - subs r0, r4, r0 -_080E6BA4: - lsls r0, 16 - lsrs r5, r0, 16 -_080E6BA8: - lsls r0, r5, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80E6B70 - - thumb_func_start sub_80E6BB4 -sub_80E6BB4: @ 80E6BB4 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - cmp r4, 0 - bge _080E6BC4 - negs r0, r4 -_080E6BC4: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080E6BDC - adds r0, r4, 0 - adds r0, 0xA - subs r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 -_080E6BDC: - lsls r0, r5, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80E6BB4 - - .align 2, 0 @ Don't pad with nop. diff --git a/data/contest_effect.s b/data/contest_effect.s index 31b2948367..6c8edba3a5 100644 --- a/data/contest_effect.s +++ b/data/contest_effect.s @@ -3,20 +3,4 @@ .section .rodata -@ 858C2B4 - .include "data/contest_moves.inc" - -@ 858CDCC - .include "data/contest_effects.inc" - -@ A lookup table with a 1 for each combo starter ID and a 0 for ID 0, -@ which means "not a combo starter move". -gComboStarterLookupTable:: @ 858CE8C - .byte 0 - .rept 62 - .byte 1 - .endr - - .align 2 -@ 858CECC - .include "data/contest_effect_function_table.inc" + .align 2 \ No newline at end of file diff --git a/data/contest_effect_function_table.inc b/data/contest_effect_function_table.inc deleted file mode 100644 index 57d1068449..0000000000 --- a/data/contest_effect_function_table.inc +++ /dev/null @@ -1,50 +0,0 @@ - .align 2 -gContestEffectFunctionTable:: @ 858CECC - .4byte ContestEffectFunc_080E547C - .4byte ContestEffectFunc_080E5480 - .4byte ContestEffectFunc_080E54B0 - .4byte ContestEffectFunc_080E54E0 - .4byte ContestEffectFunc_080E5534 - .4byte ContestEffectFunc_080E5560 - .4byte ContestEffectFunc_080E5590 - .4byte ContestEffectFunc_080E55BC - .4byte ContestEffectFunc_080E55EC - .4byte ContestEffectFunc_080E5664 - .4byte ContestEffectFunc_080E55EC - .4byte ContestEffectFunc_080E5664 - .4byte ContestEffectFunc_080E55EC - .4byte ContestEffectFunc_080E5664 - .4byte ContestEffectFunc_080E56E0 - .4byte ContestEffectFunc_080E5718 - .4byte ContestEffectFunc_080E57CC - .4byte ContestEffectFunc_080E588C - .4byte ContestEffectFunc_080E5938 - .4byte ContestEffectFunc_080E5970 - .4byte ContestEffectFunc_080E59B0 - .4byte ContestEffectFunc_080E59D0 - .4byte ContestEffectFunc_080E59F0 - .4byte ContestEffectFunc_080E5A10 - .4byte ContestEffectFunc_080E5A30 - .4byte ContestEffectFunc_080E5A50 - .4byte ContestEffectFunc_080E5AD4 - .4byte ContestEffectFunc_080E5CD4 - .4byte ContestEffectFunc_080E5D7C - .4byte ContestEffectFunc_080E5E04 - .4byte ContestEffectFunc_080E5E5C - .4byte ContestEffectFunc_080E5EB4 - .4byte ContestEffectFunc_080E5F64 - .4byte ContestEffectFunc_080E5FE4 - .4byte ContestEffectFunc_080E6068 - .4byte ContestEffectFunc_080E611C - .4byte ContestEffectFunc_080E620C - .4byte ContestEffectFunc_080E62B8 - .4byte ContestEffectFunc_080E6334 - .4byte ContestEffectFunc_080E6398 - .4byte ContestEffectFunc_080E63E8 - .4byte ContestEffectFunc_080E6520 - .4byte ContestEffectFunc_080E6664 - .4byte ContestEffectFunc_080E6668 - .4byte ContestEffectFunc_080E6778 - .4byte ContestEffectFunc_080E67BC - .4byte ContestEffectFunc_080E6868 - .4byte ContestEffectFunc_080E68EC diff --git a/data/contest_effects.inc b/data/contest_effects.inc deleted file mode 100644 index 46da79e451..0000000000 --- a/data/contest_effects.inc +++ /dev/null @@ -1,289 +0,0 @@ - .align 2 -gContestEffects:: @ 858CDCC -@ 0x00 - .byte 0 @ effect type - .byte 40 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x01 - .byte 0 @ effect type - .byte 60 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x02 - .byte 0 @ effect type - .byte 80 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x03 - .byte 0 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x04 - .byte 1 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x05 - .byte 1 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x06 - .byte 1 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x07 - .byte 1 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x08 - .byte 2 @ effect type - .byte 30 @ appeal - .byte 20 @ jam - .byte 0 @ padding - -@ 0x09 - .byte 3 @ effect type - .byte 30 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 0x0a - .byte 2 @ effect type - .byte 20 @ appeal - .byte 30 @ jam - .byte 0 @ padding - -@ 0x0b - .byte 3 @ effect type - .byte 20 @ appeal - .byte 20 @ jam - .byte 0 @ padding - -@ 0x0c - .byte 2 @ effect type - .byte 10 @ appeal - .byte 40 @ jam - .byte 0 @ padding - -@ 0x0d - .byte 3 @ effect type - .byte 10 @ appeal - .byte 30 @ jam - .byte 0 @ padding - -@ 0x0e - .byte 2 @ effect type - .byte 30 @ appeal - .byte 20 @ jam - .byte 0 @ padding - -@ 0x0f - .byte 3 @ effect type - .byte 30 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 0x10 - .byte 4 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x11 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 0x12 - .byte 3 @ effect type - .byte 40 @ appeal - .byte 40 @ jam - .byte 0 @ padding - -@ 0x13 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 0x14 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 0x15 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 0x16 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 0x17 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 0x18 - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 0x19 - .byte 4 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x1a - .byte 4 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x1b - .byte 4 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x1c - .byte 3 @ effect type - .byte 30 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 0x1d - .byte 5 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x1e - .byte 5 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x1f - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x20 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x21 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x22 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x23 - .byte 5 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x24 - .byte 5 @ effect type - .byte 20 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x25 - .byte 5 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x26 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x27 - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x28 - .byte 6 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x29 - .byte 6 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x2a - .byte 6 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x2b - .byte 6 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x2c - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x2d - .byte 3 @ effect type - .byte 20 @ appeal - .byte 10 @ jam - .byte 0 @ padding - -@ 0x2e - .byte 5 @ effect type - .byte 10 @ appeal - .byte 0 @ jam - .byte 0 @ padding - -@ 0x2f - .byte 4 @ effect type - .byte 30 @ appeal - .byte 0 @ jam - .byte 0 @ padding diff --git a/data/contest_moves.inc b/data/contest_moves.inc deleted file mode 100644 index aecea3a8da..0000000000 --- a/data/contest_moves.inc +++ /dev/null @@ -1,2486 +0,0 @@ - .align 2 -gContestMoves:: @ 858C2B4 -@ - - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Pound - .byte 0x00 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_POUND @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Karate Chop - .byte 0x25 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Double Slap - .byte 0x11 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_POUND, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Comet Punch - .byte 0x23 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mega Punch - .byte 0x00 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Pay Day - .byte 0x2e @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Fire Punch - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_FIRE_PUNCH @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_ICE_PUNCH, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Ice Punch - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_ICE_PUNCH @ combo starter ID - .byte COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_FIRE_PUNCH, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Thunder Punch - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte COMBO_STARTER_THUNDER_PUNCH @ combo starter ID - .byte COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_ICE_PUNCH, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Scratch - .byte 0x00 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_SCRATCH @ combo starter ID - .byte COMBO_STARTER_LEER, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Vice Grip - .byte 0x00 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_VICE_GRIP @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Guillotine - .byte 0x2d @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_VICE_GRIP, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Razor Wind - .byte 0x25 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Swords Dance - .byte 0x26 @ effect ID - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_SWORDS_DANCE @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Cut - .byte 0x2d @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWORDS_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Gust - .byte 0x2b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Wing Attack - .byte 0x23 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Whirlwind - .byte 0x2b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Fly - .byte 0x05 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Bind - .byte 0x2f @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_VICE_GRIP, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Slam - .byte 0x13 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_POUND, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Vine Whip - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Stomp - .byte 0x0c @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, COMBO_STARTER_LEER, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Double Kick - .byte 0x23 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mega Kick - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Jump Kick - .byte 0x01 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_MIND_READER, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Rolling Kick - .byte 0x0d @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sand-Attack - .byte 0x11 @ effect ID - .byte CONTEST_CUTE - .byte COMBO_STARTER_SAND_ATTACK @ combo starter ID - .byte COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Headbutt - .byte 0x0a @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Horn Attack - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte COMBO_STARTER_HORN_ATTACK @ combo starter ID - .byte COMBO_STARTER_LEER, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Fury Attack - .byte 0x11 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_HORN_ATTACK, COMBO_STARTER_PECK, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Horn Drill - .byte 0x2d @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_HORN_ATTACK, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Tackle - .byte 0x00 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_LEER, COMBO_STARTER_HARDEN, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Body Slam - .byte 0x0c @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Wrap - .byte 0x2f @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Take Down - .byte 0x01 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Thrash - .byte 0x12 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAGE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Double-Edge - .byte 0x01 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Tail Whip - .byte 0x1e @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARM, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Poison Sting - .byte 0x0a @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Twineedle - .byte 0x0a @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Pin Missile - .byte 0x11 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Leer - .byte 0x2f @ effect ID - .byte CONTEST_COOL - .byte COMBO_STARTER_LEER @ combo starter ID - .byte COMBO_STARTER_RAGE, COMBO_STARTER_SCARY_FACE, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Bite - .byte 0x0d @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_LEER, COMBO_STARTER_SCARY_FACE, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Growl - .byte 0x1e @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARM, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Roar - .byte 0x2b @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sing - .byte 0x1a @ effect ID - .byte CONTEST_CUTE - .byte COMBO_STARTER_SING @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Supersonic - .byte 0x2b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sonic Boom - .byte 0x23 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Disable - .byte 0x1a @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Acid - .byte 0x0c @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Ember - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Flamethrower - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mist - .byte 0x05 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Water Gun - .byte 0x00 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_WATER_SPORT, COMBO_STARTER_MUD_SPORT, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Hydro Pump - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Surf - .byte 0x25 @ effect ID - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_SURF @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_DIVE, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Ice Beam - .byte 0x13 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Blizzard - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_POWDER_SNOW, COMBO_STARTER_HAIL, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Psybeam - .byte 0x2b @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Bubble Beam - .byte 0x0d @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Aurora Beam - .byte 0x13 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Hyper Beam - .byte 0x12 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Peck - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte COMBO_STARTER_PECK @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Drill Peck - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_PECK, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Submission - .byte 0x01 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_MIND_READER, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Low Kick - .byte 0x0c @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Counter - .byte 0x04 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_TAUNT, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Seismic Toss - .byte 0x13 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FAKE_OUT, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Strength - .byte 0x13 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Absorb - .byte 0x0a @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mega Drain - .byte 0x0c @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Leech Seed - .byte 0x0b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Growth - .byte 0x26 @ effect ID - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_GROWTH @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Razor Leaf - .byte 0x25 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Solar Beam - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_GROWTH, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Poison Powder - .byte 0x1b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWEET_SCENT, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Stun Spore - .byte 0x2d @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWEET_SCENT, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sleep Powder - .byte 0x0d @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWEET_SCENT, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Petal Dance - .byte 0x12 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ String Shot - .byte 0x0a @ effect ID - .byte CONTEST_SMART - .byte COMBO_STARTER_STRING_SHOT @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Dragon Rage - .byte 0x21 @ effect ID - .byte CONTEST_COOL - .byte COMBO_STARTER_DRAGON_RAGE @ combo starter ID - .byte COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Fire Spin - .byte 0x2f @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Thunder Shock - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Thunderbolt - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Thunder Wave - .byte 0x2d @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Thunder - .byte 0x0b @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Rock Throw - .byte 0x23 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_ROCK_THROW @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Earthquake - .byte 0x0d @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_EARTHQUAKE @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Fissure - .byte 0x2d @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_EARTHQUAKE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Dig - .byte 0x05 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Toxic - .byte 0x1b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Confusion - .byte 0x0a @ effect ID - .byte CONTEST_SMART - .byte COMBO_STARTER_CONFUSION @ combo starter ID - .byte COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CALM_MIND, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Psychic - .byte 0x0d @ effect ID - .byte CONTEST_SMART - .byte COMBO_STARTER_PSYCHIC @ combo starter ID - .byte COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Hypnosis - .byte 0x0d @ effect ID - .byte CONTEST_SMART - .byte COMBO_STARTER_HYPNOSIS @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Meditate - .byte 0x26 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Agility - .byte 0x28 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Quick Attack - .byte 0x28 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Rage - .byte 0x03 @ effect ID - .byte CONTEST_COOL - .byte COMBO_STARTER_RAGE @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Teleport - .byte 0x05 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_DOUBLE_TEAM, COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Night Shade - .byte 0x13 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mimic - .byte 0x20 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Screech - .byte 0x0d @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Double Team - .byte 0x04 @ effect ID - .byte CONTEST_COOL - .byte COMBO_STARTER_DOUBLE_TEAM @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Recover - .byte 0x13 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Harden - .byte 0x04 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_HARDEN @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Minimize - .byte 0x04 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Smokescreen - .byte 0x10 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SMOG, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Confuse Ray - .byte 0x2b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Withdraw - .byte 0x05 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Defense Curl - .byte 0x04 @ effect ID - .byte CONTEST_CUTE - .byte COMBO_STARTER_DEFENSE_CURL @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Barrier - .byte 0x05 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Light Screen - .byte 0x05 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Haze - .byte 0x1b @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Reflect - .byte 0x05 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Focus Energy - .byte 0x0d @ effect ID - .byte CONTEST_COOL - .byte COMBO_STARTER_FOCUS_ENERGY @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Bide - .byte 0x05 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Metronome - .byte 0x03 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mirror Move - .byte 0x20 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Self-Destruct - .byte 0x02 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Egg Bomb - .byte 0x00 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SOFT_BOILED, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Lick - .byte 0x0c @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Smog - .byte 0x0d @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_SMOG @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sludge - .byte 0x0c @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_SLUDGE @ combo starter ID - .byte COMBO_STARTER_SLUDGE_BOMB, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Bone Club - .byte 0x11 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_BONE_CLUB @ combo starter ID - .byte COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Fire Blast - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Waterfall - .byte 0x1e @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Clamp - .byte 0x2f @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Swift - .byte 0x1d @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Skull Bash - .byte 0x0c @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Spike Cannon - .byte 0x11 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Constrict - .byte 0x0a @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Amnesia - .byte 0x26 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Kinesis - .byte 0x2f @ effect ID - .byte CONTEST_SMART - .byte COMBO_STARTER_KINESIS @ combo starter ID - .byte COMBO_STARTER_PSYCHIC, COMBO_STARTER_CONFUSION, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Soft-Boiled - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_SOFT_BOILED @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Hi Jump Kick - .byte 0x01 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_MIND_READER, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Glare - .byte 0x0d @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_LEER, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Dream Eater - .byte 0x0b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_HYPNOSIS, COMBO_STARTER_CALM_MIND, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Poison Gas - .byte 0x1b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Barrage - .byte 0x23 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Leech Life - .byte 0x0a @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Lovely Kiss - .byte 0x0d @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sky Attack - .byte 0x25 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Transform - .byte 0x03 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Bubble - .byte 0x0b @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Dizzy Punch - .byte 0x0c @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Spore - .byte 0x0d @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Flash - .byte 0x10 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Psywave - .byte 0x2d @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Splash - .byte 0x1e @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Acid Armor - .byte 0x26 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Crabhammer - .byte 0x25 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SWORDS_DANCE, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Explosion - .byte 0x02 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Fury Swipes - .byte 0x11 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SCRATCH, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Bonemerang - .byte 0x00 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_BONEMERANG @ combo starter ID - .byte COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONE_RUSH, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Rest - .byte 0x04 @ effect ID - .byte CONTEST_CUTE - .byte COMBO_STARTER_REST @ combo starter ID - .byte COMBO_STARTER_BELLY_DRUM, COMBO_STARTER_CHARM, COMBO_STARTER_YAWN, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Rock Slide - .byte 0x0d @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ROCK_THROW, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Hyper Fang - .byte 0x0c @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sharpen - .byte 0x26 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Conversion - .byte 0x23 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Tri Attack - .byte 0x0b @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_LOCK_ON, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Super Fang - .byte 0x2d @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SCARY_FACE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Slash - .byte 0x25 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWORDS_DANCE, COMBO_STARTER_SCRATCH, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Substitute - .byte 0x04 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Struggle - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sketch - .byte 0x20 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Triple Kick - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Thief - .byte 0x1f @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Spider Web - .byte 0x1a @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_STRING_SHOT, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mind Reader - .byte 0x2f @ effect ID - .byte CONTEST_SMART - .byte COMBO_STARTER_MIND_READER @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Nightmare - .byte 0x0d @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_HYPNOSIS, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Flame Wheel - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Snore - .byte 0x00 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_REST, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Curse - .byte 0x29 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_CURSE @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Flail - .byte 0x21 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ENDURE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Conversion 2 - .byte 0x23 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Aeroblast - .byte 0x25 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Cotton Spore - .byte 0x11 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Reversal - .byte 0x1e @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ENDURE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Spite - .byte 0x21 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CURSE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Powder Snow - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_POWDER_SNOW @ combo starter ID - .byte COMBO_STARTER_HAIL, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Protect - .byte 0x05 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_HARDEN, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mach Punch - .byte 0x28 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Scary Face - .byte 0x11 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_SCARY_FACE @ combo starter ID - .byte COMBO_STARTER_RAGE, COMBO_STARTER_LEER, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Faint Attack - .byte 0x1d @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FAKE_OUT, COMBO_STARTER_LEER, COMBO_STARTER_POUND, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sweet Kiss - .byte 0x1a @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARM, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Belly Drum - .byte 0x26 @ effect ID - .byte CONTEST_CUTE - .byte COMBO_STARTER_BELLY_DRUM @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sludge Bomb - .byte 0x11 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_SLUDGE_BOMB @ combo starter ID - .byte COMBO_STARTER_SLUDGE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mud-Slap - .byte 0x11 @ effect ID - .byte CONTEST_CUTE - .byte COMBO_STARTER_MUD_SLAP @ combo starter ID - .byte COMBO_STARTER_SAND_ATTACK, COMBO_STARTER_MUD_SPORT, COMBO_STARTER_SANDSTORM, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Octazooka - .byte 0x11 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Spikes - .byte 0x1a @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Zap Cannon - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_LOCK_ON, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Foresight - .byte 0x1b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Destiny Bond - .byte 0x02 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_CURSE, COMBO_STARTER_ENDURE, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Perish Song - .byte 0x2d @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_SING, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Icy Wind - .byte 0x0d @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Detect - .byte 0x04 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_TAUNT, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Bone Rush - .byte 0x00 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_BONE_RUSH @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Lock-On - .byte 0x2f @ effect ID - .byte CONTEST_SMART - .byte COMBO_STARTER_LOCK_ON @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Outrage - .byte 0x12 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sandstorm - .byte 0x2b @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_SANDSTORM @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Giga Drain - .byte 0x11 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Endure - .byte 0x04 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_ENDURE @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Charm - .byte 0x13 @ effect ID - .byte CONTEST_CUTE - .byte COMBO_STARTER_CHARM @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Rollout - .byte 0x2f @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ False Swipe - .byte 0x0d @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWORDS_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Swagger - .byte 0x1d @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Milk Drink - .byte 0x23 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Spark - .byte 0x0c @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Fury Cutter - .byte 0x03 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWORDS_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Steel Wing - .byte 0x23 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mean Look - .byte 0x1a @ effect ID - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_MEAN_LOOK @ combo starter ID - .byte COMBO_STARTER_CURSE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Attract - .byte 0x1a @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sleep Talk - .byte 0x03 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_REST, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Heal Bell - .byte 0x1e @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Return - .byte 0x2c @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Present - .byte 0x03 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Frustration - .byte 0x2c @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Safeguard - .byte 0x05 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Pain Split - .byte 0x0c @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ENDURE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sacred Fire - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Magnitude - .byte 0x2e @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Dynamic Punch - .byte 0x11 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Megahorn - .byte 0x23 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Dragon Breath - .byte 0x0d @ effect ID - .byte CONTEST_COOL - .byte COMBO_STARTER_DRAGON_BREATH @ combo starter ID - .byte COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Baton Pass - .byte 0x1a @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Encore - .byte 0x1a @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Pursuit - .byte 0x2d @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Rapid Spin - .byte 0x04 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sweet Scent - .byte 0x0d @ effect ID - .byte CONTEST_CUTE - .byte COMBO_STARTER_SWEET_SCENT @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Iron Tail - .byte 0x0c @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Metal Claw - .byte 0x00 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_METAL_SOUND, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Vital Throw - .byte 0x29 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FAKE_OUT, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Morning Sun - .byte 0x22 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Synthesis - .byte 0x22 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Moonlight - .byte 0x22 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Hidden Power - .byte 0x03 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Cross Chop - .byte 0x25 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Twister - .byte 0x2b @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Rain Dance - .byte 0x2e @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_RAIN_DANCE @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sunny Day - .byte 0x2e @ effect ID - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_SUNNY_DAY @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Crunch - .byte 0x0c @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SCARY_FACE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mirror Coat - .byte 0x04 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_TAUNT, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Psych Up - .byte 0x23 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Extreme Speed - .byte 0x28 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Ancient Power - .byte 0x26 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Shadow Ball - .byte 0x10 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Future Sight - .byte 0x2f @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Rock Smash - .byte 0x27 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Whirlpool - .byte 0x2f @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Beat Up - .byte 0x2d @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Fake Out - .byte 0x13 @ effect ID - .byte CONTEST_CUTE - .byte COMBO_STARTER_FAKE_OUT @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Uproar - .byte 0x2b @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Stockpile - .byte 0x04 @ effect ID - .byte CONTEST_TOUGH - .byte COMBO_STARTER_STOCKPILE @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Spit Up - .byte 0x00 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_STOCKPILE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Swallow - .byte 0x26 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_STOCKPILE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Heat Wave - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Hail - .byte 0x0d @ effect ID - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_HAIL @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Torment - .byte 0x1a @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Flatter - .byte 0x1a @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARM, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Will-O-Wisp - .byte 0x0c @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Memento - .byte 0x02 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Facade - .byte 0x1e @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Focus Punch - .byte 0x29 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Smelling Salt - .byte 0x0a @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Follow Me - .byte 0x2f @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Nature Power - .byte 0x2e @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Charge - .byte 0x23 @ effect ID - .byte CONTEST_SMART - .byte COMBO_STARTER_CHARGE @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Taunt - .byte 0x1a @ effect ID - .byte CONTEST_SMART - .byte COMBO_STARTER_TAUNT @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Helping Hand - .byte 0x1a @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Trick - .byte 0x23 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Role Play - .byte 0x1f @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Wish - .byte 0x2f @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Assist - .byte 0x22 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Ingrain - .byte 0x05 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Superpower - .byte 0x01 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_LOCK_ON, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Magic Coat - .byte 0x05 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Recycle - .byte 0x03 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Revenge - .byte 0x29 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Brick Break - .byte 0x0c @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Yawn - .byte 0x1a @ effect ID - .byte CONTEST_CUTE - .byte COMBO_STARTER_YAWN @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Knock Off - .byte 0x0c @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FAKE_OUT, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Endeavor - .byte 0x1e @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ENDURE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Eruption - .byte 0x21 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ENDURE, COMBO_STARTER_EARTHQUAKE, COMBO_STARTER_SUNNY_DAY, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Skill Swap - .byte 0x1f @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Imprison - .byte 0x1b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Refresh - .byte 0x26 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_WATER_SPORT, COMBO_STARTER_SING, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Grudge - .byte 0x21 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CURSE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Snatch - .byte 0x2d @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Secret Power - .byte 0x27 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Dive - .byte 0x04 @ effect ID - .byte CONTEST_BEAUTY - .byte COMBO_STARTER_DIVE @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SURF, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Arm Thrust - .byte 0x11 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_FAKE_OUT, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Camouflage - .byte 0x25 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Tail Glow - .byte 0x26 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Luster Purge - .byte 0x0a @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mist Ball - .byte 0x0c @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Feather Dance - .byte 0x1e @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Teeter Dance - .byte 0x12 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Blaze Kick - .byte 0x00 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mud Sport - .byte 0x00 @ effect ID - .byte CONTEST_CUTE - .byte COMBO_STARTER_MUD_SPORT @ combo starter ID - .byte COMBO_STARTER_MUD_SLAP, COMBO_STARTER_WATER_SPORT, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Ice Ball - .byte 0x2f @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Needle Arm - .byte 0x0c @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Slack Off - .byte 0x21 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte COMBO_STARTER_YAWN, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Hyper Voice - .byte 0x0d @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Poison Fang - .byte 0x1b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Crush Claw - .byte 0x0c @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SWORDS_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Blast Burn - .byte 0x12 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Hydro Cannon - .byte 0x12 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Meteor Mash - .byte 0x23 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Astonish - .byte 0x0a @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Weather Ball - .byte 0x00 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_HAIL, COMBO_STARTER_SANDSTORM @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Aromatherapy - .byte 0x1e @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Fake Tears - .byte 0x1e @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Air Cutter - .byte 0x13 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Overheat - .byte 0x01 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Odor Sleuth - .byte 0x1b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Rock Tomb - .byte 0x2f @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_ROCK_THROW, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Silver Wind - .byte 0x26 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Metal Sound - .byte 0x0d @ effect ID - .byte CONTEST_SMART - .byte COMBO_STARTER_METAL_SOUND @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Grass Whistle - .byte 0x0d @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Tickle - .byte 0x1b @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Cosmic Power - .byte 0x26 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Water Spout - .byte 0x21 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Signal Beam - .byte 0x2b @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Shadow Punch - .byte 0x1d @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Extrasensory - .byte 0x0c @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sky Uppercut - .byte 0x13 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sand Tomb - .byte 0x2f @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_SANDSTORM, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Sheer Cold - .byte 0x2d @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Muddy Water - .byte 0x11 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Bullet Seed - .byte 0x2d @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Aerial Ace - .byte 0x1d @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Icicle Spear - .byte 0x13 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Iron Defense - .byte 0x05 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Block - .byte 0x1a @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Howl - .byte 0x26 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Dragon Claw - .byte 0x13 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Frenzy Plant - .byte 0x12 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Bulk Up - .byte 0x26 @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Bounce - .byte 0x05 @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Mud Shot - .byte 0x0d @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Poison Tail - .byte 0x1b @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Covet - .byte 0x1f @ effect ID - .byte CONTEST_CUTE - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Volt Tackle - .byte 0x01 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Magical Leaf - .byte 0x1d @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Water Sport - .byte 0x00 @ effect ID - .byte CONTEST_CUTE - .byte COMBO_STARTER_WATER_SPORT @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_MUD_SPORT, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Calm Mind - .byte 0x04 @ effect ID - .byte CONTEST_SMART - .byte COMBO_STARTER_CALM_MIND @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Leaf Blade - .byte 0x25 @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Dragon Dance - .byte 0x26 @ effect ID - .byte CONTEST_COOL - .byte COMBO_STARTER_DRAGON_DANCE @ combo starter ID - .byte COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_BREATH, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Rock Blast - .byte 0x23 @ effect ID - .byte CONTEST_TOUGH - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Shock Wave - .byte 0x1d @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Water Pulse - .byte 0x2b @ effect ID - .byte CONTEST_BEAUTY - .byte 0 @ combo starter ID - .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Doom Desire - .byte 0x2f @ effect ID - .byte CONTEST_COOL - .byte 0 @ combo starter ID - .byte 0, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding - -@ Psycho Boost - .byte 0x01 @ effect ID - .byte CONTEST_SMART - .byte 0 @ combo starter ID - .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo - .byte 0 @ padding diff --git a/include/contest.h b/include/contest.h index b7324e26b5..79c3629088 100644 --- a/include/contest.h +++ b/include/contest.h @@ -414,8 +414,15 @@ extern struct ContestResources *gContestResources; #define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000)) extern u32 gContestRngValue; +extern u8 gUnknown_02039F26[4]; bool8 IsSpeciesNotUnown(u16 species); void LoadContestBgAfterMoveAnim(void); +void SetContestantEffectStringID(u8 a, u8 b); +void SetContestantEffectStringID2(u8 a, u8 b); +void MakeContestantNervous(u8 p); +bool8 Contest_IsMonsTurnDisabled(u8 a); +bool8 sub_80DE1E8(u8 a); +void SetStartledString(u8 a, u8 b); #endif //GUARD_CONTEST_H diff --git a/include/contest_effect.h b/include/contest_effect.h index 3484ca5df8..1f147aa096 100644 --- a/include/contest_effect.h +++ b/include/contest_effect.h @@ -17,6 +17,6 @@ struct ContestEffect }; extern const struct ContestMove gContestMoves[]; -extern struct ContestEffect gContestEffects[]; +extern const struct ContestEffect gContestEffects[]; #endif //GUARD_CONTEST_EFFECT_H diff --git a/ld_script.txt b/ld_script.txt index 7e0a351db7..78dd9334f9 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -143,6 +143,7 @@ SECTIONS { asm/script_menu.o(.text); src/naming_screen.o(.text); src/money.o(.text); + src/contest_effect.o(.text); asm/contest_effect.o(.text); src/record_mixing.o(.text); src/secret_base.o(.text); @@ -443,6 +444,7 @@ SECTIONS { data/script_menu.o(.rodata); src/naming_screen.o(.rodata); src/money.o(.rodata); + src/contest_effect.o(.rodata); data/contest_effect.o(.rodata); src/record_mixing.o(.rodata); src/secret_base.o(.rodata); diff --git a/src/contest.c b/src/contest.c index 8513fc4a9a..910637387b 100644 --- a/src/contest.c +++ b/src/contest.c @@ -107,7 +107,7 @@ u16 sub_80DE84C(u16); void sub_80DB89C(void); u16 sub_80DB8B8(u8); void sub_80DB918(void); -bool8 sub_80DBCA8(u8); +bool8 Contest_IsMonsTurnDisabled(u8); void sub_80DBF68(void); void sub_80DBF90(void); void sub_80DC2BC(void); @@ -721,7 +721,7 @@ void sub_80D833C(u8 taskId) sub_80DCD48(); DmaCopy32Defvars(3, gPlttBufferUnfaded, shared18000.unk18204, 0x400); ConvertIntToDecimalStringN(gStringVar1, gContestResources->field_0->turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); - if (!sub_80DBCA8(gContestPlayerMonIndex)) + if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) StringCopy(gDisplayedStringBattle, gText_0827D507); else StringCopy(gDisplayedStringBattle, gText_0827D531); @@ -745,7 +745,7 @@ void sub_80D8424(u8 taskId) if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys == B_BUTTON)) { PlaySE(SE_SELECT); - if (!sub_80DBCA8(gContestPlayerMonIndex)) + if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) { sub_80DC490(TRUE); gTasks[taskId].func = sub_80D8490; @@ -819,7 +819,7 @@ void sub_80D8610(u8 taskId) PlaySE(SE_SELECT); sub_80DC490(FALSE); ConvertIntToDecimalStringN(gStringVar1, gContestResources->field_0->turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); - if (!sub_80DBCA8(gContestPlayerMonIndex)) + if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) StringCopy(gDisplayedStringBattle, gText_0827D507); else StringCopy(gDisplayedStringBattle, gText_0827D531); @@ -2636,7 +2636,7 @@ void sub_80DB4E0(u16 move, u8 b) { u8 r7 = gUnknown_02039F26[b] * 5 + 2; - if (!sub_80DBCA8(b) && move != MOVE_NONE) + if (!Contest_IsMonsTurnDisabled(b) && move != MOVE_NONE) { u16 tile = sub_80DB2EC(move, b); diff --git a/src/contest_effect.c b/src/contest_effect.c new file mode 100644 index 0000000000..40774641df --- /dev/null +++ b/src/contest_effect.c @@ -0,0 +1,1174 @@ +#include "global.h" +#include "random.h" +#include "contest.h" +#include "contest_effect.h" + +static void ContestEffect_HighlyAppealing(void); +static void ContestEffect_UserMoreEasilyStartled(void); +static void ContestEffect_GreatAppealButNoMoreMoves(void); +static void ContestEffect_RepetitionNotBoring(void); +static void ContestEffect_AvoidStartleOnce(void); +static void ContestEffect_AvoidStartle(void); +static void ContestEffect_AvoidStartleSlightly(void); +static void ContestEffect_UserLessEasilyStartled(void); +static void ContestEffect_StartleFrontMon(void); +static void ContestEffect_StartlePrevMons(void); +static void ContestEffect_StartlePrevMon2(void); +static void ContestEffect_StartlePrevMons2(void); +static void ContestEffect_ShiftJudgeAttention(void); +static void ContestEffect_StartleMonWithJudgesAttention(void); +static void ContestEffect_JamsOthersButMissOneTurn(void); +static void ContestEffect_StartleMonsSameTypeAppeal(void); +static void ContestEffect_StartleMonsCoolAppeal(void); +static void ContestEffect_StartleMonsBeautyAppeal(void); +static void ContestEffect_StartleMonsCuteAppeal(void); +static void ContestEffect_StartleMonsSmartAppeal(void); +static void ContestEffect_StartleMonsToughAppeal(void); +static void ContestEffect_MakeFollowingMonNervous(void); +static void ContestEffect_MakeFollowingMonsNervous(void); +static void ContestEffect_WorsenConditionOfPrevMons(void); +static void ContestEffect_BadlyStartlesMonsInGoodCondition(void); +static void ContestEffect_BetterIfFirst(void); +static void ContestEffect_BetterIfLast(void); +static void ContestEffect_AppealAsGoodAsPrevOnes(void); +static void ContestEffect_AppealAsGoodAsPrevOne(void); +static void ContestEffect_BetterWhenLater(void); +static void ContestEffect_QualityDependsOnTiming(void); +static void ContestEffect_BetterIfSameType(void); +static void ContestEffect_BetterIfDiffType(void); +static void ContestEffect_AffectedByPrevAppeal(void); +static void ContestEffect_ImproveConditionPreventNervousness(void); +static void ContestEffect_BetterWithGoodCondition(void); +static void ContestEffect_NextAppealEarlier(void); +static void ContestEffect_NextAppealLater(void); +static void ContestEffect_MakeScramblingTurnOrderEasier(void); +static void ContestEffect_ScrambleNextTurnOrder(void); +static void ContestEffect_ExciteAudienceInAnyContest(void); +static void ContestEffect_BadlyStartleMonsWithGoodAppeals(void); +static void ContestEffect_BetterWhenAudienceExcited(void); +static void ContestEffect_DontExciteAudience(void); +static void JamByMoveCategory(u8); +static bool8 CanUnnerveContestant(u8); +static u8 WasAtLeastOneOpponentJammed(void); +static void JamContestant(u8, u8); +static s16 RoundTowardsZero(s16); +static s16 RoundUp(s16); + +#include "data/contest_moves.h" + +bool8 AreMovesContestCombo(u16 lastMove, u16 nextMove) +{ + u8 nextMoveComboMoves[4]; + u8 lastMoveComboStarterId = gContestMoves[lastMove].comboStarterId; + nextMoveComboMoves[0] = gContestMoves[nextMove].comboMoves[0]; + nextMoveComboMoves[1] = gContestMoves[nextMove].comboMoves[1]; + nextMoveComboMoves[2] = gContestMoves[nextMove].comboMoves[2]; + nextMoveComboMoves[3] = gContestMoves[nextMove].comboMoves[3]; + + if (lastMoveComboStarterId == 0) + return 0; + + if (lastMoveComboStarterId == nextMoveComboMoves[0] || lastMoveComboStarterId == nextMoveComboMoves[1] || lastMoveComboStarterId == nextMoveComboMoves[2] || lastMoveComboStarterId == nextMoveComboMoves[3]) + return gComboStarterLookupTable[lastMoveComboStarterId]; + + return 0; +} + +// A highly appealing move. +static void ContestEffect_HighlyAppealing(void) +{ +} + +// After this move, the user is more easily startled. +static void ContestEffect_UserMoreEasilyStartled(void) +{ + sContestantStatus[shared192D0.contestant].moreEasilyStartled = TRUE; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_MORE_CONSCIOUS); +} + +// Makes a great appeal, but allows no more to the end. +static void ContestEffect_GreatAppealButNoMoreMoves(void) +{ + sContestantStatus[shared192D0.contestant].exploded = TRUE; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_NO_APPEAL); +} + +// Can be used repeatedly without boring the JUDGE. +static void ContestEffect_RepetitionNotBoring(void) +{ + sContestantStatus[shared192D0.contestant].usedRepeatableMove = TRUE; + sContestantStatus[shared192D0.contestant].disappointedRepeat = FALSE; + sContestantStatus[shared192D0.contestant].moveRepeatCount = 0; +} + +// Can avoid being startled by others once. +static void ContestEffect_AvoidStartleOnce(void) +{ + sContestantStatus[shared192D0.contestant].jamSafetyCount = 1; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_SETTLE_DOWN); +} + +// Can avoid being startled by others. +static void ContestEffect_AvoidStartle(void) +{ + sContestantStatus[shared192D0.contestant].immune = TRUE; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_OBLIVIOUS_TO_OTHERS); +} + +// Can avoid being startled by others a little. +static void ContestEffect_AvoidStartleSlightly(void) +{ + sContestantStatus[shared192D0.contestant].jamReduction = 20; + SetContestantEffectStringID(shared192D0.contestant,CONTEST_STRING_LESS_AWARE); +} + +// After this move, the user is less likely to be startled. +static void ContestEffect_UserLessEasilyStartled(void) +{ + sContestantStatus[shared192D0.contestant].resistant = TRUE; + SetContestantEffectStringID(shared192D0.contestant,CONTEST_STRING_STOPPED_CARING); +} + +// Slightly startles the POKéMON in front. +static void ContestEffect_StartleFrontMon(void) +{ + u8 idx = 0; + u8 a = shared192D0.contestant; + + if (shared192D0.turnOrder[a] != 0) { + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[a] - 1 == shared192D0.turnOrder[i]) + break; + } + shared192D0.jamQueue[0] = i; + shared192D0.jamQueue[1] = 0xFF; + idx = WasAtLeastOneOpponentJammed(); + } + if (idx == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Slightly startles those that have made appeals. +static void ContestEffect_StartlePrevMons(void) +{ + u8 idx = 0; + u8 a = shared192D0.contestant; + + if (shared192D0.turnOrder[a] != 0) { + int i; + int j = 0; + + for (i = 0; i < 4; i++) + if (shared192D0.turnOrder[a] > shared192D0.turnOrder[i]) + shared192D0.jamQueue[j++] = i; + shared192D0.jamQueue[j] = 0xFF; + idx = WasAtLeastOneOpponentJammed(); + } + if (idx == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Startles the POKéMON that appealed before the user. +static void ContestEffect_StartlePrevMon2(void) +{ + u8 rval = Random() % 10; + int jam; + + if (rval < 2) + jam = 20; + else if (rval < 8) + jam = 40; + else + jam = 60; + shared192D0.jam = jam; + ContestEffect_StartleFrontMon(); +} + +// Startles all POKéMON that appealed before the user. +static void ContestEffect_StartlePrevMons2(void) +{ + u8 numStartled = 0; + u8 contestant = shared192D0.contestant; + + if (shared192D0.turnOrder[contestant] != 0) + { + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[contestant] > shared192D0.turnOrder[i]) + { + shared192D0.jamQueue[0] = i; + shared192D0.jamQueue[1] = 0xFF; + { + u8 rval = Random() % 10; + int jam; + + if (rval == 0) + jam = 0; + else if (rval <= 2) + jam = 10; + else if (rval <= 4) + jam = 20; + else if (rval <= 6) + jam = 30; + else if (rval <= 8) + jam = 40; + else + jam = 60; + shared192D0.jam = jam; + } + if (WasAtLeastOneOpponentJammed()) + numStartled++; + } + } + } + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + if (numStartled == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); +} + +// Shifts the JUDGE’s attention from others. +static void ContestEffect_ShiftJudgeAttention(void) +{ + bool32 hitAny = FALSE; + u8 contestant = shared192D0.contestant; + + if (shared192D0.turnOrder[shared192D0.contestant] != 0) + { + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[contestant] > shared192D0.turnOrder[i] && + sContestantStatus[i].hasJudgesAttention && + CanUnnerveContestant(i)) + { + sContestantStatus[i].hasJudgesAttention = FALSE; + sContestantStatus[i].judgesAttentionWasRemoved = TRUE; + SetContestantEffectStringID(i, CONTEST_STRING_JUDGE_LOOK_AWAY2); + hitAny = TRUE; + } + } + } + SetContestantEffectStringID(shared192D0.contestant,CONTEST_STRING_DAZZLE_ATTEMPT); + if (!hitAny) + { + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); + } +} + +// Startles the POKéMON that has the JUDGE’s attention. +static void ContestEffect_StartleMonWithJudgesAttention(void) +{ + u8 numStartled = 0; + u8 contestant = shared192D0.contestant; + + if (shared192D0.turnOrder[shared192D0.contestant] != 0) + { + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[contestant] > shared192D0.turnOrder[i]) + { + if (sContestantStatus[i].hasJudgesAttention) + shared192D0.jam = 50; + else + shared192D0.jam = 10; + shared192D0.jamQueue[0] = i; + shared192D0.jamQueue[1] = 0xFF; + if (WasAtLeastOneOpponentJammed()) + numStartled++; + } + } + } + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + if (numStartled == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); +} + +// Jams the others, and misses one turn of appeals. +static void ContestEffect_JamsOthersButMissOneTurn(void) +{ + sContestantStatus[shared192D0.contestant].turnSkipped = TRUE; + ContestEffect_StartlePrevMons(); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Startles POKéMON that made a same-type appeal. +static void ContestEffect_StartleMonsSameTypeAppeal(void) +{ + u16 move = sContestantStatus[shared192D0.contestant].currMove; + JamByMoveCategory(gContestMoves[move].contestCategory); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Badly startles POKéMON that made COOL appeals. +static void ContestEffect_StartleMonsCoolAppeal(void) +{ + JamByMoveCategory(CONTEST_CATEGORY_COOL); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Badly startles POKéMON that made BEAUTY appeals. +static void ContestEffect_StartleMonsBeautyAppeal(void) +{ + JamByMoveCategory(CONTEST_CATEGORY_BEAUTY); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Badly startles POKéMON that made CUTE appeals. +static void ContestEffect_StartleMonsCuteAppeal(void) +{ + JamByMoveCategory(CONTEST_CATEGORY_CUTE); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Badly startles POKéMON that made SMART appeals. +static void ContestEffect_StartleMonsSmartAppeal(void) +{ + JamByMoveCategory(CONTEST_CATEGORY_SMART); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Badly startles POKéMON that made TOUGH appeals. +static void ContestEffect_StartleMonsToughAppeal(void) +{ + JamByMoveCategory(CONTEST_CATEGORY_TOUGH); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// Makes one POKéMON after the user nervous. +static void ContestEffect_MakeFollowingMonNervous(void) +{ + bool32 hitAny = FALSE; + + if (shared192D0.turnOrder[shared192D0.contestant] != 3) + { + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] + 1 == shared192D0.turnOrder[i]) + { + if (CanUnnerveContestant(i)) + { + MakeContestantNervous(i); + SetContestantEffectStringID(i, CONTEST_STRING_NERVOUS); + hitAny = TRUE; + } + else + { + SetContestantEffectStringID(i, CONTEST_STRING_UNAFFECTED); + hitAny = TRUE; + } + } + } + } + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_UNNERVE_ATTEMPT); + if (!hitAny) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); +} + +// Makes all POKéMON after the user nervous. +static void ContestEffect_MakeFollowingMonsNervous(void) +{ + u8 numUnnerved = 0; + bool32 contestantUnnerved = FALSE; + u8 contestantIds[5]; + int i; + int numAfter; + s16 oddsMod[4]; + s16 odds[4]; + + memset(contestantIds, 0xFF, ARRAY_COUNT(contestantIds)); + for (i = 0, numAfter = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] < shared192D0.turnOrder[i] && + !sContestantStatus[i].nervous && !Contest_IsMonsTurnDisabled(i)) + contestantIds[numAfter++] = i; + } + + if (numAfter == 1) + { + odds[0] = 60; + } + else if (numAfter == 2) + { + odds[0] = 30; + odds[1] = 30; + } + else if (numAfter == 3) + { + odds[0] = 20; + odds[1] = 20; + odds[2] = 20; + } + else + { + for (i = 0; i < 4; i++) + odds[i] = 0; + } + for (i = 0; i < 4; i++) + { + if (sContestantStatus[i].hasJudgesAttention && sub_80DE1E8(i)) + oddsMod[i] = gComboStarterLookupTable[gContestMoves[sContestantStatus[i].prevMove].comboStarterId] * 10; + else + oddsMod[i] = 0; + oddsMod[i] -= (sContestantStatus[i].condition / 10) * 10; + } + if (odds[0] != 0) + { + for (i = 0; contestantIds[i] != 0xFF; i++) + { + if (Random() % 100 < odds[i] + oddsMod[contestantIds[i]]) + { + if (CanUnnerveContestant(contestantIds[i])) + { + MakeContestantNervous(contestantIds[i]); + SetContestantEffectStringID(contestantIds[i], CONTEST_STRING_NERVOUS); + numUnnerved++; + } else + contestantUnnerved = TRUE; + } else + contestantUnnerved = TRUE; + if (contestantUnnerved) + { + contestantUnnerved = FALSE; + SetContestantEffectStringID(contestantIds[i], CONTEST_STRING_UNAFFECTED); + numUnnerved++; + } + shared192D0.unnervedPokes[contestantIds[i]] = 1; + } + } + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_UNNERVE_WAITING); + if (numUnnerved == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); +} + +// Worsens the condition of those that made appeals. +static void ContestEffect_WorsenConditionOfPrevMons(void) +{ + u8 numHit = 0; + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] > shared192D0.turnOrder[i] && + sContestantStatus[i].condition > 0 && + CanUnnerveContestant(i)) + { + sContestantStatus[i].condition = 0; + sContestantStatus[i].conditionMod = 2; + SetContestantEffectStringID(i, CONTEST_STRING_REGAINED_FORM); + numHit++; + } + } + + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_TAUNT_WELL); + if (numHit == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_IGNORED); +} + +// Badly startles POKéMON in good condition. +static void ContestEffect_BadlyStartlesMonsInGoodCondition(void) +{ + u8 numHit = 0; + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] > shared192D0.turnOrder[i]) + { + if (sContestantStatus[i].condition > 0) + shared192D0.jam = 40; + else + shared192D0.jam = 10; + shared192D0.jamQueue[0] = i; + shared192D0.jamQueue[1] = 0xFF; + if (WasAtLeastOneOpponentJammed()) + numHit++; + } + } + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_JAM_WELL); + if (numHit == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_IGNORED); +} + +// The appeal works great if performed first. +static void ContestEffect_BetterIfFirst(void) +{ + if (gUnknown_02039F26[shared192D0.contestant] == 0) + { + u16 move = sContestantStatus[shared192D0.contestant].currMove; + sContestantStatus[shared192D0.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_HUSTLE_STANDOUT); + } +} + +// The appeal works great if performed last. +static void ContestEffect_BetterIfLast(void) +{ + if (gUnknown_02039F26[shared192D0.contestant] == 3) + { + u16 move = sContestantStatus[shared192D0.contestant].currMove; + sContestantStatus[shared192D0.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_WORK_HARD_UNNOTICED); + } +} + +// Makes the appeal as good as those before it. +static void ContestEffect_AppealAsGoodAsPrevOnes(void) +{ + int i; + int appealSum; + + for (i = 0, appealSum = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] > shared192D0.turnOrder[i]) + appealSum += sContestantStatus[i].appeal2; + } + if (appealSum < 0) + appealSum = 0; + if (shared192D0.turnOrder[shared192D0.contestant] == 0 || appealSum == 0) + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_NOT_WELL); + else + { + sContestantStatus[shared192D0.contestant].appeal2 += appealSum / 2; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_WORK_BEFORE); + } + sContestantStatus[shared192D0.contestant].appeal2 = RoundTowardsZero(sContestantStatus[shared192D0.contestant].appeal2); +} + +// Makes the appeal as good as the one before it. +static void ContestEffect_AppealAsGoodAsPrevOne(void) +{ + s16 appeal = 0; + + if (shared192D0.turnOrder[shared192D0.contestant] != 0) + { + int i; + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] - 1 == shared192D0.turnOrder[i]) + appeal = sContestantStatus[i].appeal2; + } + } + if (shared192D0.turnOrder[shared192D0.contestant] == 0 || appeal <= 0) + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_NOT_WELL2); + else + { + sContestantStatus[shared192D0.contestant].appeal2 += appeal; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_WORK_PRECEDING); + } +} + +// The appeal works better the later it is performed. +static void ContestEffect_BetterWhenLater(void) +{ + u8 whichTurn = shared192D0.turnOrder[shared192D0.contestant]; + if (whichTurn == 0) + sContestantStatus[shared192D0.contestant].appeal2 = 10; + else + sContestantStatus[shared192D0.contestant].appeal2 = 20 * whichTurn; + if (whichTurn == 0) + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_NOT_SHOWN_WELL); + else if (whichTurn == 1) + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL); + else if (whichTurn == 2) + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL); + else + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY); +} + +// The appeal’s quality varies depending on its timing. +static void ContestEffect_QualityDependsOnTiming(void) +{ + u8 rval = Random() % 10; + s16 appeal; + + if (rval < 3) + { + appeal = 10; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); + } else if (rval < 6) + { + appeal = 20; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); + } else if (rval < 8) + { + appeal = 40; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); + } else if (rval < 9) + { + appeal = 60; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_VERY_WELL); + } + else + { + appeal = 80; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); + } + sContestantStatus[shared192D0.contestant].appeal2 = appeal; +} + +#ifdef NONMATCHING +// Not even close, send help +// Works well if it’s the same type as the one before. +static void ContestEffect_BetterIfSameType(void) +{ + s8 r4; + s8 r2; + + for (r4 = shared192D0.turnOrder[shared192D0.contestant]; r4 > 0; r4--) + { + for (r2 = 0; r2 < 4; r2++) + { + if (shared192D0.turnOrder[r2] == r4 - 1) + break; + } + if (!(sContestantStatus[r2].noMoreTurns || sContestantStatus[r2].nervous || sContestantStatus[r2].numTurnsSkipped)) + { + u16 move = sContestantStatus[shared192D0.contestant].currMove; + + if (gContestMoves[move].contestCategory == gContestMoves[sContestantStatus[r2].currMove].contestCategory) + { + sContestantStatus[shared192D0.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_SAME_TYPE_GOOD); + } + break; + } + } +} +#else +NAKED void ContestEffect_BetterIfSameType(void) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + ldr r2, =gContestResources\n\ + ldr r0, [r2]\n\ + ldr r3, [r0, 0x8]\n\ + ldrb r0, [r3, 0x11]\n\ + adds r0, r3, r0\n\ + movs r1, 0\n\ + ldrsb r1, [r0, r1]\n\ + subs r0, r1, 0x1\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + mov r8, r2\n\ + cmp r1, 0\n\ + beq _080E61F8\n\ + mov r7, r8\n\ + ldrb r6, [r3]\n\ +_080E6140:\n\ + movs r2, 0\n\ + lsls r0, r4, 24\n\ + asrs r1, r0, 24\n\ + adds r5, r0, 0\n\ + cmp r6, r1\n\ + beq _080E616A\n\ + ldr r4, =gContestResources\n\ +_080E614E:\n\ + lsls r0, r2, 24\n\ + movs r2, 0x80\n\ + lsls r2, 17\n\ + adds r0, r2\n\ + lsrs r2, r0, 24\n\ + asrs r3, r0, 24\n\ + cmp r3, 0x3\n\ + bgt _080E616A\n\ + ldr r0, [r4]\n\ + ldr r0, [r0, 0x8]\n\ + adds r0, r3\n\ + ldrb r0, [r0]\n\ + cmp r0, r1\n\ + bne _080E614E\n\ +_080E616A:\n\ + ldr r0, [r7]\n\ + lsls r3, r2, 24\n\ + asrs r1, r3, 24\n\ + ldr r2, [r0, 0x4]\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + lsls r0, 2\n\ + adds r2, r0, r2\n\ + ldrb r1, [r2, 0xB]\n\ + movs r0, 0x80\n\ + ands r0, r1\n\ + mov r12, r3\n\ + cmp r0, 0\n\ + bne _080E6190\n\ + ldrb r1, [r2, 0xC]\n\ + movs r0, 0x7\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080E61A4\n\ +_080E6190:\n\ + movs r1, 0xFF\n\ + lsls r1, 24\n\ + adds r0, r5, r1\n\ + lsrs r4, r0, 24\n\ + cmp r0, 0\n\ + blt _080E61F8\n\ + b _080E6140\n\ + .pool\n\ +_080E61A4:\n\ + mov r2, r8\n\ + ldr r6, [r2]\n\ + ldr r0, [r6, 0x8]\n\ + ldrb r1, [r0, 0x11]\n\ + ldr r4, [r6, 0x4]\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + lsls r0, 2\n\ + adds r5, r0, r4\n\ + ldrh r0, [r5, 0x6]\n\ + ldr r3, =gContestMoves\n\ + lsls r0, 3\n\ + adds r7, r0, r3\n\ + ldrb r2, [r7, 0x1]\n\ + lsls r2, 29\n\ + mov r0, r12\n\ + asrs r1, r0, 24\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + lsls r0, 2\n\ + adds r0, r4\n\ + ldrh r0, [r0, 0x6]\n\ + lsls r0, 3\n\ + adds r0, r3\n\ + ldrb r0, [r0, 0x1]\n\ + lsls r0, 29\n\ + cmp r2, r0\n\ + bne _080E61F8\n\ + ldr r1, =gContestEffects\n\ + ldrb r0, [r7]\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r0, [r0, 0x1]\n\ + lsls r0, 1\n\ + ldrh r1, [r5, 0x2]\n\ + adds r0, r1\n\ + strh r0, [r5, 0x2]\n\ + ldr r0, [r6, 0x8]\n\ + ldrb r0, [r0, 0x11]\n\ + movs r1, 0x1F\n\ + bl SetContestantEffectStringID\n\ +_080E61F8:\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\ + "); +} +#endif + +// Works well if different in type than the one before. +static void ContestEffect_BetterIfDiffType(void) +{ + if (shared192D0.turnOrder[shared192D0.contestant] != 0) + { + u16 move = sContestantStatus[shared192D0.contestant].currMove; + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] - 1 == shared192D0.turnOrder[i] && + gContestMoves[move].contestCategory != gContestMoves[sContestantStatus[i].currMove].contestCategory) + { + sContestantStatus[shared192D0.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_DIFF_TYPE_GOOD); + break; + } + } + } +} + +// Affected by how well the appeal in front goes. +static void ContestEffect_AffectedByPrevAppeal(void) +{ + if (shared192D0.turnOrder[shared192D0.contestant] != 0) + { + int i; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] - 1 == shared192D0.turnOrder[i]) + { + if (sContestantStatus[shared192D0.contestant].appeal2 > sContestantStatus[i].appeal2) + { + sContestantStatus[shared192D0.contestant].appeal2 *= 2; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_STOOD_OUT_AS_MUCH); + } + else if (sContestantStatus[shared192D0.contestant].appeal2 < sContestantStatus[i].appeal2) + { + sContestantStatus[shared192D0.contestant].appeal2 = 0; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_NOT_AS_WELL); + } + } + } + } +} + +// Ups the user’s condition. Helps prevent nervousness. +static void ContestEffect_ImproveConditionPreventNervousness(void) +{ + if (sContestantStatus[shared192D0.contestant].condition < 30) + { + sContestantStatus[shared192D0.contestant].condition += 10; + sContestantStatus[shared192D0.contestant].conditionMod = 1; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_CONDITION_ROSE); + } + else + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_NO_CONDITION_IMPROVE); +} + +// The appeal works well if the user’s condition is good. +static void ContestEffect_BetterWithGoodCondition(void) +{ + sContestantStatus[shared192D0.contestant].appealTripleCondition = TRUE; + if (sContestantStatus[shared192D0.contestant].condition != 0) + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_HOT_STATUS); + else + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_BAD_CONDITION_WEAK_APPEAL); +} + +// The next appeal can be made earlier next turn. +static void ContestEffect_NextAppealEarlier(void) +{ + s8 i; + s8 j; + u8 turnOrder[4]; + + if (sContest.turnNumber != 4) + { + for (i = 0; i < 4; i++) + turnOrder[i] = sContestantStatus[i].nextTurnOrder; + + turnOrder[shared192D0.contestant] = 0xFF; + + for (i = 0; i < 4; i++) + { + for (j = 0; j < 4; j++) + { + if (j != shared192D0.contestant && + i == turnOrder[j] && + turnOrder[j] == sContestantStatus[j].nextTurnOrder) + { + turnOrder[j]++; + break; + } + } + if (j == 4) + break; + } + + turnOrder[shared192D0.contestant] = 0; + sContestantStatus[shared192D0.contestant].turnOrderMod = 1; + + for (i = 0; i < 4; i++) + { + sContestantStatus[i].nextTurnOrder = turnOrder[i]; + } + sContestantStatus[shared192D0.contestant].turnOrderModAction = 1; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_MOVE_UP_LINE); + } +} + +// The next appeal can be made later next turn. +static void ContestEffect_NextAppealLater(void) +{ + s8 i; + s8 j; + u8 turnOrder[4]; + + if (sContest.turnNumber != 4) + { + for (i = 0; i < 4; i++) + turnOrder[i] = sContestantStatus[i].nextTurnOrder; + + turnOrder[shared192D0.contestant] = 0xFF; + + for (i = 3; i > -1; i--) + { + for (j = 0; j < 4; j++) + { + if (j != shared192D0.contestant && + i == turnOrder[j] && + turnOrder[j] == sContestantStatus[j].nextTurnOrder) + { + turnOrder[j]--; + break; + } + } + if (j == 4) + break; + } + + turnOrder[shared192D0.contestant] = 3; + sContestantStatus[shared192D0.contestant].turnOrderMod = 1; + + for (i = 0; i < 4; i++) + { + sContestantStatus[i].nextTurnOrder = turnOrder[i]; + } + sContestantStatus[shared192D0.contestant].turnOrderModAction = 2; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_MOVE_BACK_LINE); + } +} + +// Makes the next turn’s order more easily scrambled. +static void ContestEffect_MakeScramblingTurnOrderEasier(void) +{ + // dummied out? +} + +// Scrambles the order of appeals on the next turn. +static void ContestEffect_ScrambleNextTurnOrder(void) +{ + s8 i; + s8 j; + u8 turnOrder[4]; + u8 unselectedContestants[4]; + + if (sContest.turnNumber != 4) + { + for (i = 0; i < 4; i++) + { + turnOrder[i] = sContestantStatus[i].nextTurnOrder; + unselectedContestants[i] = i; + } + + for (i = 0; i < 4; i++) + { + u8 rval = Random() % (4 - i); + + for (j = 0; j < 4; j++) + { + if (unselectedContestants[j] != 0xFF) + { + if (rval == 0) + { + turnOrder[j] = i; + unselectedContestants[j] = 0xFF; + break; + } + else + rval--; + } + } + } + + for (i = 0; i < 4; i++) + { + sContestantStatus[i].nextTurnOrder = turnOrder[i]; + sContestantStatus[i].turnOrderMod = 2; + } + sContestantStatus[shared192D0.contestant].turnOrderModAction = 3; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_SCRAMBLE_ORDER); + } +} + +// An appeal that excites the audience in any CONTEST. +static void ContestEffect_ExciteAudienceInAnyContest(void) +{ + if (gContestMoves[sContestantStatus[shared192D0.contestant].currMove].contestCategory != gSpecialVar_ContestCategory) + { + sContestantStatus[shared192D0.contestant].overrideCategoryExcitementMod = TRUE; + } +} + +// Badly startles all POKéMON that made good appeals. +static void ContestEffect_BadlyStartleMonsWithGoodAppeals(void) +{ + int i; + u8 numJammed = 0; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] > shared192D0.turnOrder[i]) + { + if (sContestantStatus[i].appeal2 > 0) + { + shared192D0.jam = sContestantStatus[i].appeal2 / 2; + shared192D0.jam = RoundUp(shared192D0.jam); + } + else + shared192D0.jam = 10; + shared192D0.jamQueue[0] = i; + shared192D0.jamQueue[1] = 0xFF; + if (WasAtLeastOneOpponentJammed()) + numJammed++; + } + } + if (numJammed == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTEMPT_STARTLE); +} + +// The appeal works best the more the crowd is excited. +static void ContestEffect_BetterWhenAudienceExcited(void) +{ + s16 appeal; + + if (sContest.applauseLevel == 0) + { + appeal = 10; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); + } + else if (sContest.applauseLevel == 1) + { + appeal = 20; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); + } + else if (sContest.applauseLevel == 2) + { + appeal = 30; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); + } + else if (sContest.applauseLevel == 3) + { + appeal = 50; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_VERY_WELL); + } + else + { + appeal = 60; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); + } + sContestantStatus[shared192D0.contestant].appeal2 = appeal; +} + +// Temporarily stops the crowd from growing excited. +static void ContestEffect_DontExciteAudience(void) +{ + if (!shared19328.excitementFrozen) + { + shared19328.excitementFrozen = TRUE; + shared19328.excitementFreezer = shared192D0.contestant; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_ATTRACTED_ATTENTION); + } +} + +static void JamByMoveCategory(u8 category) +{ + int i; + int numJammed = 0; + + for (i = 0; i < 4; i++) + { + if (shared192D0.turnOrder[shared192D0.contestant] > shared192D0.turnOrder[i]) + { + if (category == gContestMoves[sContestantStatus[i].currMove].contestCategory) + shared192D0.jam = 40; + else + shared192D0.jam = 10; + shared192D0.jamQueue[0] = i; + shared192D0.jamQueue[1] = 0xFF; + if (WasAtLeastOneOpponentJammed()) + numJammed++; + } + } + + if (numJammed == 0) + SetContestantEffectStringID2(shared192D0.contestant, CONTEST_STRING_MESSED_UP2); +} + +static bool8 CanUnnerveContestant(u8 i) +{ + shared192D0.unnervedPokes[i] = 1; + if (sContestantStatus[i].immune) + { + SetContestantEffectStringID(i, CONTEST_STRING_AVOID_SEEING); + return FALSE; + } + else if (sContestantStatus[i].jamSafetyCount != 0) + { + sContestantStatus[i].jamSafetyCount--; + SetContestantEffectStringID(i, CONTEST_STRING_AVERT_GAZE); + return FALSE; + } + else if (!sContestantStatus[i].noMoreTurns && sContestantStatus[i].numTurnsSkipped == 0) + { + return TRUE; + } + + return FALSE; +} + +static bool8 WasAtLeastOneOpponentJammed(void) +{ + s16 jamBuffer[4] = {0}; + int i; + + for (i = 0; shared192D0.jamQueue[i] != 0xFF; i++) + { + u8 contestant = shared192D0.jamQueue[i]; + if (CanUnnerveContestant(contestant)) + { + shared192D0.jam2 = shared192D0.jam; + if (sContestantStatus[contestant].moreEasilyStartled) + shared192D0.jam2 *= 2; + if (sContestantStatus[contestant].resistant) + { + shared192D0.jam2 = 10; + SetContestantEffectStringID(contestant, CONTEST_STRING_LITTLE_DISTRACTED); + } + else if ((shared192D0.jam2 -= sContestantStatus[contestant].jamReduction) <= 0) + { + shared192D0.jam2 = 0; + SetContestantEffectStringID(contestant, CONTEST_STRING_NOT_FAZED); + } + else + { + JamContestant(contestant, shared192D0.jam2); + SetStartledString(contestant, shared192D0.jam2); + jamBuffer[contestant] = shared192D0.jam2; + } + } + } + + for (i = 0; i < 4; i++) + { + if (jamBuffer[i] != 0) + return TRUE; + } + return FALSE; +} + +static void JamContestant(u8 i, u8 jam) +{ + sContestantStatus[i].appeal2 -= jam; + sContestantStatus[i].jam += jam; +} + +static s16 RoundTowardsZero(s16 score) +{ + s16 absScore = abs(score) % 10; + if (score < 0) + { + if (absScore != 0) + score -= 10 - absScore; + } + else + score -= absScore; + return score; +} + +static s16 RoundUp(s16 score) +{ + s16 absScore = abs(score) % 10; + if (absScore != 0) + score += 10 - absScore; + return score; +} diff --git a/src/data/contest_moves.h b/src/data/contest_moves.h new file mode 100644 index 0000000000..fd0bc55647 --- /dev/null +++ b/src/data/contest_moves.h @@ -0,0 +1,536 @@ +#ifndef POKEEMERALD_CONTEST_MOVES_H +#define POKEEMERALD_CONTEST_MOVES_H + +const struct ContestMove gContestMoves[] = +{ + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // NONE + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_POUND, {0, 0, 0, 0}}, // POUND + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // KARATE_CHOP + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_POUND, 0, 0, 0}}, // DOUBLE_SLAP + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // COMET_PUNCH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, // MEGA_PUNCH + {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // PAY_DAY + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_FIRE_PUNCH, {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_ICE_PUNCH, 0}}, // FIRE_PUNCH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_ICE_PUNCH, {COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_FIRE_PUNCH, 0, 0}}, // ICE_PUNCH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_THUNDER_PUNCH, {COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_ICE_PUNCH, 0}}, // THUNDER_PUNCH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SCRATCH, {COMBO_STARTER_LEER, 0, 0, 0}}, // SCRATCH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_VICE_GRIP, {0, 0, 0, 0}}, // VICE_GRIP + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_VICE_GRIP, 0, 0, 0}}, // GUILLOTINE + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // RAZOR_WIND + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SWORDS_DANCE, {0, 0, 0, 0}}, // SWORDS_DANCE + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, // CUT + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // GUST + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // WING_ATTACK + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // WHIRLWIND + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // FLY + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_VICE_GRIP, 0, 0, 0}}, // BIND + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_POUND, 0, 0, 0}}, // SLAM + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // VINE_WHIP + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, COMBO_STARTER_LEER, 0, 0}}, // STOMP + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // DOUBLE_KICK + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, // MEGA_KICK + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, // JUMP_KICK + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // ROLLING_KICK + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SAND_ATTACK, {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM, 0, 0}}, // SAND_ATTACK + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // HEADBUTT + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_HORN_ATTACK, {COMBO_STARTER_LEER, 0, 0, 0}}, // HORN_ATTACK + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_HORN_ATTACK, COMBO_STARTER_PECK, 0, 0}}, // FURY_ATTACK + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_HORN_ATTACK, 0, 0, 0}}, // HORN_DRILL + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_LEER, COMBO_STARTER_HARDEN, 0}}, // TACKLE + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // BODY_SLAM + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // WRAP + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0}}, // TAKE_DOWN + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAGE, 0, 0, 0}}, // THRASH + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0}}, // DOUBLE_EDGE + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, // TAIL_WHIP + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // POISON_STING + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // TWINEEDLE + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // PIN_MISSILE + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_COOL, COMBO_STARTER_LEER, {COMBO_STARTER_RAGE, COMBO_STARTER_SCARY_FACE, 0, 0}}, // LEER + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LEER, COMBO_STARTER_SCARY_FACE, 0, 0}}, // BITE + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, // GROWL + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // ROAR + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SING, {0, 0, 0, 0}}, // SING + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SUPERSONIC + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // SONIC_BOOM + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // DISABLE + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // ACID + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // EMBER + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // FLAMETHROWER + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // MIST + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_WATER_SPORT, COMBO_STARTER_MUD_SPORT, 0}}, // WATER_GUN + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // HYDRO_PUMP + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SURF, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_DIVE, 0, 0}}, // SURF + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // ICE_BEAM + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_POWDER_SNOW, COMBO_STARTER_HAIL, 0, 0}}, // BLIZZARD + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // PSYBEAM + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // BUBBLE_BEAM + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // AURORA_BEAM + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // HYPER_BEAM + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_PECK, {0, 0, 0, 0}}, // PECK + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_PECK, 0, 0, 0}}, // DRILL_PECK + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, // SUBMISSION + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // LOW_KICK + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, // COUNTER + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, // SEISMIC_TOSS + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // STRENGTH + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // ABSORB + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // MEGA_DRAIN + {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // LEECH_SEED + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_GROWTH, {0, 0, 0, 0}}, // GROWTH + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // RAZOR_LEAF + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_GROWTH, 0, 0}}, // SOLAR_BEAM + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, // POISON_POWDER + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, // STUN_SPORE + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, // SLEEP_POWDER + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // PETAL_DANCE + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, COMBO_STARTER_STRING_SHOT, {0, 0, 0, 0}}, // STRING_SHOT + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_RAGE, {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, 0, 0}}, // DRAGON_RAGE + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // FIRE_SPIN + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // THUNDER_SHOCK + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // THUNDERBOLT + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // THUNDER_WAVE + {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0}}, // THUNDER + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_ROCK_THROW, {0, 0, 0, 0}}, // ROCK_THROW + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_EARTHQUAKE, {0, 0, 0, 0}}, // EARTHQUAKE + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_EARTHQUAKE, 0, 0, 0}}, // FISSURE + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // DIG + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // TOXIC + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, COMBO_STARTER_CONFUSION, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CALM_MIND, 0}}, // CONFUSION + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_PSYCHIC, {COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND, 0}}, // PSYCHIC + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_HYPNOSIS, {0, 0, 0, 0}}, // HYPNOSIS + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // MEDITATE + {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0}}, // AGILITY + {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0}}, // QUICK_ATTACK + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_COOL, COMBO_STARTER_RAGE, {0, 0, 0, 0}}, // RAGE + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION}}, // TELEPORT + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // NIGHT_SHADE + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // MIMIC + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SCREECH + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, COMBO_STARTER_DOUBLE_TEAM, {0, 0, 0, 0}}, // DOUBLE_TEAM + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // RECOVER + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_HARDEN, {0, 0, 0, 0}}, // HARDEN + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // MINIMIZE + {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SMOG, 0, 0, 0}}, // SMOKESCREEN + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // CONFUSE_RAY + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WITHDRAW + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, COMBO_STARTER_DEFENSE_CURL, {0, 0, 0, 0}}, // DEFENSE_CURL + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // BARRIER + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // LIGHT_SCREEN + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // HAZE + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // REFLECT + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, COMBO_STARTER_FOCUS_ENERGY, {0, 0, 0, 0}}, // FOCUS_ENERGY + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // BIDE + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // METRONOME + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // MIRROR_MOVE + {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SELF_DESTRUCT + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SOFT_BOILED, 0, 0, 0}}, // EGG_BOMB + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // LICK + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SMOG, {0, 0, 0, 0}}, // SMOG + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SLUDGE, {COMBO_STARTER_SLUDGE_BOMB, 0, 0, 0}}, // SLUDGE + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONE_CLUB, {COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH, 0, 0}}, // BONE_CLUB + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // FIRE_BLAST + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WATERFALL + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // CLAMP + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // SWIFT + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // SKULL_BASH + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // SPIKE_CANNON + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // CONSTRICT + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // AMNESIA + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_KINESIS, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_CONFUSION, 0, 0}}, // KINESIS + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SOFT_BOILED, {0, 0, 0, 0}}, // SOFT_BOILED + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, // HI_JUMP_KICK + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LEER, 0, 0, 0}}, // GLARE + {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_HYPNOSIS, COMBO_STARTER_CALM_MIND, 0, 0}}, // DREAM_EATER + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // POISON_GAS + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // BARRAGE + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // LEECH_LIFE + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // LOVELY_KISS + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // SKY_ATTACK + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // TRANSFORM + {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // BUBBLE + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // DIZZY_PUNCH + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SPORE + {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // FLASH + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // PSYWAVE + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // SPLASH + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // ACID_ARMOR + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SWORDS_DANCE, 0, 0}}, // CRABHAMMER + {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // EXPLOSION + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCRATCH, 0, 0, 0}}, // FURY_SWIPES + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONEMERANG, {COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONE_RUSH, 0, 0}}, // BONEMERANG + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, COMBO_STARTER_REST, {COMBO_STARTER_BELLY_DRUM, COMBO_STARTER_CHARM, COMBO_STARTER_YAWN, 0}}, // REST + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_ROCK_THROW, 0, 0, 0}}, // ROCK_SLIDE + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // HYPER_FANG + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // SHARPEN + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // CONVERSION + {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, // TRI_ATTACK + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCARY_FACE, 0, 0, 0}}, // SUPER_FANG + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, COMBO_STARTER_SCRATCH, 0, 0}}, // SLASH + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SUBSTITUTE + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // STRUGGLE + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SKETCH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // TRIPLE_KICK + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // THIEF + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_STRING_SHOT, 0, 0, 0}}, // SPIDER_WEB + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_MIND_READER, {0, 0, 0, 0}}, // MIND_READER + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_HYPNOSIS, 0, 0, 0}}, // NIGHTMARE + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // FLAME_WHEEL + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_REST, 0, 0, 0}}, // SNORE + {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_CURSE, {0, 0, 0, 0}}, // CURSE + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, // FLAIL + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // CONVERSION_2 + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // AEROBLAST + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // COTTON_SPORE + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, // REVERSAL + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_CURSE, 0, 0, 0}}, // SPITE + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_POWDER_SNOW, {COMBO_STARTER_HAIL, 0, 0, 0}}, // POWDER_SNOW + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_HARDEN, 0, 0, 0}}, // PROTECT + {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // MACH_PUNCH + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SCARY_FACE, {COMBO_STARTER_RAGE, COMBO_STARTER_LEER, 0, 0}}, // SCARY_FACE + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_FAKE_OUT, COMBO_STARTER_LEER, COMBO_STARTER_POUND, 0}}, // FAINT_ATTACK + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, // SWEET_KISS + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_BELLY_DRUM, {0, 0, 0, 0}}, // BELLY_DRUM + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SLUDGE_BOMB, {COMBO_STARTER_SLUDGE, 0, 0, 0}}, // SLUDGE_BOMB + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_CUTE, COMBO_STARTER_MUD_SLAP, {COMBO_STARTER_SAND_ATTACK, COMBO_STARTER_MUD_SPORT, COMBO_STARTER_SANDSTORM, 0}}, // MUD_SLAP + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0, 0}}, // OCTAZOOKA + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SPIKES + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, // ZAP_CANNON + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // FORESIGHT + {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_CURSE, COMBO_STARTER_ENDURE, 0}}, // DESTINY_BOND + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_SING, 0, 0}}, // PERISH_SONG + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // ICY_WIND + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, // DETECT + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONE_RUSH, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG, 0}}, // BONE_RUSH + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_LOCK_ON, {0, 0, 0, 0}}, // LOCK_ON + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // OUTRAGE + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SANDSTORM, {0, 0, 0, 0}}, // SANDSTORM + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // GIGA_DRAIN + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_ENDURE, {0, 0, 0, 0}}, // ENDURE + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_CUTE, COMBO_STARTER_CHARM, {0, 0, 0, 0}}, // CHARM + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN, 0, 0}}, // ROLLOUT + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, // FALSE_SWIPE + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // SWAGGER + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // MILK_DRINK + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // SPARK + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, // FURY_CUTTER + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // STEEL_WING + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_MEAN_LOOK, {COMBO_STARTER_CURSE, 0, 0, 0}}, // MEAN_LOOK + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // ATTRACT + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_REST, 0, 0, 0}}, // SLEEP_TALK + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // HEAL_BELL + {CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // RETURN + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // PRESENT + {CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // FRUSTRATION + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SAFEGUARD + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, // PAIN_SPLIT + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // SACRED_FIRE + {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // MAGNITUDE + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, // DYNAMIC_PUNCH + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // MEGAHORN + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_BREATH, {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0, 0}}, // DRAGON_BREATH + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // BATON_PASS + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // ENCORE + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // PURSUIT + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // RAPID_SPIN + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SWEET_SCENT, {0, 0, 0, 0}}, // SWEET_SCENT + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // IRON_TAIL + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_METAL_SOUND, 0, 0, 0}}, // METAL_CLAW + {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, // VITAL_THROW + {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // MORNING_SUN + {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // SYNTHESIS + {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // MOONLIGHT + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // HIDDEN_POWER + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // CROSS_CHOP + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // TWISTER + {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_RAIN_DANCE, {0, 0, 0, 0}}, // RAIN_DANCE + {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SUNNY_DAY, {0, 0, 0, 0}}, // SUNNY_DAY + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCARY_FACE, 0, 0, 0}}, // CRUNCH + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, // MIRROR_COAT + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // PSYCH_UP + {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // EXTREME_SPEED + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // ANCIENT_POWER + {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SHADOW_BALL + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND}}, // FUTURE_SIGHT + {CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // ROCK_SMASH + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WHIRLPOOL + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // BEAT_UP + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_CUTE, COMBO_STARTER_FAKE_OUT, {0, 0, 0, 0}}, // FAKE_OUT + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // UPROAR + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_STOCKPILE, {0, 0, 0, 0}}, // STOCKPILE + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_STOCKPILE, 0, 0, 0}}, // SPIT_UP + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_STOCKPILE, 0, 0, 0}}, // SWALLOW + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // HEAT_WAVE + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_HAIL, {0, 0, 0, 0}}, // HAIL + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // TORMENT + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, // FLATTER + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // WILL_O_WISP + {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // MEMENTO + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // FACADE + {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // FOCUS_PUNCH + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SMELLING_SALT + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // FOLLOW_ME + {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // NATURE_POWER + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, COMBO_STARTER_CHARGE, {0, 0, 0, 0}}, // CHARGE + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, COMBO_STARTER_TAUNT, {0, 0, 0, 0}}, // TAUNT + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // HELPING_HAND + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // TRICK + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // ROLE_PLAY + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // WISH + {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // ASSIST + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // INGRAIN + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, // SUPERPOWER + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // MAGIC_COAT + {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // RECYCLE + {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // REVENGE + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // BRICK_BREAK + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_YAWN, {0, 0, 0, 0}}, // YAWN + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, // KNOCK_OFF + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, // ENDEAVOR + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_ENDURE, COMBO_STARTER_EARTHQUAKE, COMBO_STARTER_SUNNY_DAY, 0}}, // ERUPTION + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SKILL_SWAP + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // IMPRISON + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_WATER_SPORT, COMBO_STARTER_SING, 0, 0}}, // REFRESH + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_CURSE, 0, 0, 0}}, // GRUDGE + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SNATCH + {CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SECRET_POWER + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_DIVE, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SURF, 0, 0}}, // DIVE + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_FAKE_OUT, 0, 0}}, // ARM_THRUST + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // CAMOUFLAGE + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // TAIL_GLOW + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // LUSTER_PURGE + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // MIST_BALL + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // FEATHER_DANCE + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // TEETER_DANCE + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // BLAZE_KICK + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, COMBO_STARTER_MUD_SPORT, {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_WATER_SPORT, 0, 0}}, // MUD_SPORT + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // ICE_BALL + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // NEEDLE_ARM + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_YAWN, 0, 0, 0}}, // SLACK_OFF + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // HYPER_VOICE + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // POISON_FANG + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, // CRUSH_CLAW + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // BLAST_BURN + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // HYDRO_CANNON + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // METEOR_MASH + {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // ASTONISH + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_HAIL, COMBO_STARTER_SANDSTORM}}, // WEATHER_BALL + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // AROMATHERAPY + {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // FAKE_TEARS + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // AIR_CUTTER + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // OVERHEAT + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // ODOR_SLEUTH + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_ROCK_THROW, 0, 0, 0}}, // ROCK_TOMB + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SILVER_WIND + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_METAL_SOUND, {0, 0, 0, 0}}, // METAL_SOUND + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // GRASS_WHISTLE + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // TICKLE + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // COSMIC_POWER + {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WATER_SPOUT + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SIGNAL_BEAM + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SHADOW_PUNCH + {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // EXTRASENSORY + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // SKY_UPPERCUT + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SANDSTORM, 0, 0, 0}}, // SAND_TOMB + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SHEER_COLD + {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // MUDDY_WATER + {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // BULLET_SEED + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // AERIAL_ACE + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // ICICLE_SPEAR + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // IRON_DEFENSE + {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // BLOCK + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // HOWL + {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0}}, // DRAGON_CLAW + {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // FRENZY_PLANT + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // BULK_UP + {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // BOUNCE + {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // MUD_SHOT + {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // POISON_TAIL + {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // COVET + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // VOLT_TACKLE + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // MAGICAL_LEAF + {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, COMBO_STARTER_WATER_SPORT, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_MUD_SPORT, 0, 0}}, // WATER_SPORT + {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_CALM_MIND, {0, 0, 0, 0}}, // CALM_MIND + {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // LEAF_BLADE + {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_DANCE, {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_BREATH, 0, 0}}, // DRAGON_DANCE + {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // ROCK_BLAST + {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // SHOCK_WAVE + {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WATER_PULSE + {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // DOOM_DESIRE + {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // PSYCHO_BOOST +}; + +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 +}; + +// A lookup table with TRUE for each combo starter ID and FALSE for ID 0, +// which means "not a combo starter move". +const bool8 gComboStarterLookupTable[] = +{ + FALSE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE, + TRUE +}; + +void (*const gContestEffectFuncs[])(void) = +{ + ContestEffect_HighlyAppealing, + ContestEffect_UserMoreEasilyStartled, + ContestEffect_GreatAppealButNoMoreMoves, + ContestEffect_RepetitionNotBoring, + ContestEffect_AvoidStartleOnce, + ContestEffect_AvoidStartle, + ContestEffect_AvoidStartleSlightly, + ContestEffect_UserLessEasilyStartled, + ContestEffect_StartleFrontMon, + ContestEffect_StartlePrevMons, + ContestEffect_StartleFrontMon, + ContestEffect_StartlePrevMons, + ContestEffect_StartleFrontMon, + ContestEffect_StartlePrevMons, + ContestEffect_StartlePrevMon2, + ContestEffect_StartlePrevMons2, + ContestEffect_ShiftJudgeAttention, + ContestEffect_StartleMonWithJudgesAttention, + ContestEffect_JamsOthersButMissOneTurn, + ContestEffect_StartleMonsSameTypeAppeal, + ContestEffect_StartleMonsCoolAppeal, + ContestEffect_StartleMonsBeautyAppeal, + ContestEffect_StartleMonsCuteAppeal, + ContestEffect_StartleMonsSmartAppeal, + ContestEffect_StartleMonsToughAppeal, + ContestEffect_MakeFollowingMonNervous, + ContestEffect_MakeFollowingMonsNervous, + ContestEffect_WorsenConditionOfPrevMons, + ContestEffect_BadlyStartlesMonsInGoodCondition, + ContestEffect_BetterIfFirst, + ContestEffect_BetterIfLast, + ContestEffect_AppealAsGoodAsPrevOnes, + ContestEffect_AppealAsGoodAsPrevOne, + ContestEffect_BetterWhenLater, + ContestEffect_QualityDependsOnTiming, + ContestEffect_BetterIfSameType, + ContestEffect_BetterIfDiffType, + ContestEffect_AffectedByPrevAppeal, + ContestEffect_ImproveConditionPreventNervousness, + ContestEffect_BetterWithGoodCondition, + ContestEffect_NextAppealEarlier, + ContestEffect_NextAppealLater, + ContestEffect_MakeScramblingTurnOrderEasier, + ContestEffect_ScrambleNextTurnOrder, + ContestEffect_ExciteAudienceInAnyContest, + ContestEffect_BadlyStartleMonsWithGoodAppeals, + ContestEffect_BetterWhenAudienceExcited, + ContestEffect_DontExciteAudience, +}; + +#endif // POKEEMERALD_CONTEST_MOVES_H From 6dac87abfd2bea0ddf126cdc1e9c31757c8fee36 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sun, 12 Aug 2018 14:01:08 -0700 Subject: [PATCH 096/174] Cleanup and document learn_move --- asm/learn_move.s | 8 -- asm/pokenav.s | 2 +- include/learn_move.h | 2 +- include/pokenav.h | 1 + ld_script.txt | 1 - src/learn_move.c | 181 +++++++++++++++++++++---------------------- 6 files changed, 93 insertions(+), 102 deletions(-) delete mode 100644 asm/learn_move.s diff --git a/asm/learn_move.s b/asm/learn_move.s deleted file mode 100644 index 2428f2984b..0000000000 --- a/asm/learn_move.s +++ /dev/null @@ -1,8 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav.s b/asm/pokenav.s index c9fe787e0c..250eca0f27 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -22585,7 +22585,7 @@ sub_81D2ACC: @ 81D2ACC push {r7} sub sp, 0xC adds r4, r0, 0 - bl sub_816137C + bl ShowHideHearts movs r0, 0x1 movs r1, 0x11 bl FillWindowPixelBuffer diff --git a/include/learn_move.h b/include/learn_move.h index 2acc21cde2..542ae6a5af 100644 --- a/include/learn_move.h +++ b/include/learn_move.h @@ -2,6 +2,6 @@ #define GUARD_LEARN_MOVE_H void TeachMoveTutorMove(void); -void sub_816137C(s32); +void ShowHideHearts(s32); #endif //GUARD_LEARN_MOVE_H diff --git a/include/pokenav.h b/include/pokenav.h index dd3fd49051..b595e2be91 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -1,6 +1,7 @@ #ifndef GUARD_POKENAV_H #define GUARD_POKENAV_H #include "player_pc.h" +#include "list_menu.h" bool8 sub_81D5C18(void); bool8 sub_81D20BC(void *arg0); diff --git a/ld_script.txt b/ld_script.txt index 1bd90e19a0..5f9d356173 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -209,7 +209,6 @@ SECTIONS { src/fldeff_sweetscent.o(.text); asm/battle_anim_815A0D4.o(.text); src/learn_move.o(.text); - asm/learn_move.o(.text); src/fldeff_softboiled.o(.text); src/decoration_inventory.o(.text); src/roamer.o(.text); diff --git a/src/learn_move.c b/src/learn_move.c index 9058a3287f..e288a393dd 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -1,5 +1,6 @@ #include "global.h" #include "main.h" +#include "battle.h" #include "bg.h" #include "contest_effect.h" #include "data2.h" @@ -28,20 +29,18 @@ static EWRAM_DATA struct { u8 state; u8 spriteIds[16]; /*0x001*/ - u8 filler11; /*0x011*/ u16 movesToLearn[4]; /*0x012*/ u8 filler1A[0x44 - 0x1A]; /*0x01A*/ u8 partyMon; /*0x044*/ - u8 unk045; /*0x045*/ - u8 filler46[2]; /*0x046*/ - struct ListMenuItem menuItems[4]; /*0x048*/ - u8 filler68[0x110 - 0x68]; /*0x068*/ + u8 moveSlot; /*0x045*/ + struct ListMenuItem menuItems[20]; /*0x048*/ + u8 fillerE8[0x110 - 0xE8]; /*0x0E8*/ u8 numMenuChoices; /*0x110*/ - u8 unk111; /*0x111*/ + u8 numToShowAtOnce; /*0x111*/ u8 listMenuTask; /*0x112*/ - u8 unk113; /*0x113*/ - u8 unk114; /*0x114*/ - u16 unk116; /*0x116*/ + u8 scrollArrowTaskId1; /*0x113*/ + u8 scrollArrowTaskId2; /*0x114*/ + u16 scrollOffset; /*0x116*/ } *sLearnMoveStruct = {0}; static EWRAM_DATA struct { @@ -212,21 +211,21 @@ const struct BgTemplate gUnknown_085CEC28[] = }, }; -static void sub_8160868(void); -static void sub_8161280(void); -static void sub_81610B8(void); -static void sub_816082C(void); -static void sub_8160664(u8 taskId); +static void LearnMoveMain(void); +static void CreateMenuItemsList(void); +static void CreateHearts(void); +static void CB2_Main(void); +static void Task_WaitForFadeOut(u8 taskId); static void CB2_InitLearnMove(void); -static void sub_8160740(void); -static void sub_81607EC(void); -static void sub_81611AC(void); -static void sub_8160F50(u8); -static void sub_8161074(u8); -static s32 sub_8161054(void); -static void sub_8160EA0(void); -static void sub_8161234(void); -static void render_previous_quest_text(bool8); +static void CB2_InitLearnMoveReturnFromSelectMove(void); +static void InitBGs(void); +static void AddScrollArrows(void); +static void HandleInput(u8); +static void ShowTeachMoveText(u8); +static s32 GetCurrentItemId(void); +static void FreeListMenuResources(void); +static void RemoveScrollArrows(void); +static void HideSpritesAndPrintTeachText(bool8); static void VBlankCB_LearnMove(void) { @@ -238,11 +237,11 @@ static void VBlankCB_LearnMove(void) void TeachMoveTutorMove(void) { ScriptContext2_Enable(); - CreateTask(sub_8160664, 0xA); + CreateTask(Task_WaitForFadeOut, 0xA); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); } -static void sub_8160664(u8 taskId) +static void Task_WaitForFadeOut(u8 taskId) { if (!gPaletteFade.active) { @@ -262,25 +261,25 @@ static void CB2_InitLearnMove(void) sLearnMoveStruct->partyMon = gSpecialVar_0x8004; SetVBlankCallback(VBlankCB_LearnMove); - sub_81607EC(); + InitBGs(); sub_81D2824(0); sLearnMoveStruct2.listOffset = 0; sLearnMoveStruct2.listRow = 0; - sLearnMoveStruct2.showContestInfo = 0; + sLearnMoveStruct2.showContestInfo = FALSE; - sub_8161280(); + CreateMenuItemsList(); LoadSpriteSheet(&gUnknown_085CEBB0); LoadSpritePalette(&gUnknown_085CEBB8); - sub_81610B8(); + CreateHearts(); sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sLearnMoveStruct2.listOffset, sLearnMoveStruct2.listRow); FillPalette(RGB_BLACK, 0, 2); - SetMainCallback2(sub_816082C); + SetMainCallback2(CB2_Main); } -static void sub_8160740(void) +static void CB2_InitLearnMoveReturnFromSelectMove(void) { ResetSpriteData(); FreeAllSpritePalettes(); @@ -289,23 +288,23 @@ static void sub_8160740(void) sLearnMoveStruct = AllocZeroed(sizeof(*sLearnMoveStruct)); sLearnMoveStruct->state = 28; sLearnMoveStruct->partyMon = gSpecialVar_0x8004; - sLearnMoveStruct->unk045 = gSpecialVar_0x8005; + sLearnMoveStruct->moveSlot = gSpecialVar_0x8005; SetVBlankCallback(VBlankCB_LearnMove); - sub_81607EC(); + InitBGs(); sub_81D2824(sLearnMoveStruct2.showContestInfo); - sub_8161280(); + CreateMenuItemsList(); LoadSpriteSheet(&gUnknown_085CEBB0); LoadSpritePalette(&gUnknown_085CEBB8); - sub_81610B8(); + CreateHearts(); sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sLearnMoveStruct2.listOffset, sLearnMoveStruct2.listRow); FillPalette(RGB_BLACK, 0, 2); - SetMainCallback2(sub_816082C); + SetMainCallback2(CB2_Main); } -static void sub_81607EC(void) +static void InitBGs(void) { ResetVramOamAndBgCntRegs(); ResetBgsAndClearDma3BusyFlags(0); @@ -319,9 +318,9 @@ static void sub_81607EC(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); } -static void sub_816082C(void) +static void CB2_Main(void) { - sub_8160868(); + LearnMoveMain(); RunTasks(); AnimateSprites(); BuildOamBuffer(); @@ -335,13 +334,13 @@ static void sub_816084C(const u8 *src) sub_81D2BF4(gStringVar4); } -static void sub_8160868(void) +static void LearnMoveMain(void) { switch (sLearnMoveStruct->state) { case 0: sLearnMoveStruct->state++; - render_previous_quest_text(FALSE); + HideSpritesAndPrintTeachText(FALSE); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); break; case 1: @@ -354,20 +353,20 @@ static void sub_8160868(void) sLearnMoveStruct->state++; break; case 3: - render_previous_quest_text(FALSE); + HideSpritesAndPrintTeachText(FALSE); sLearnMoveStruct->state++; - sub_81611AC(); + AddScrollArrows(); break; case 4: - sub_8160F50(0); + HandleInput(FALSE); return; case 5: - sub_8161074(0); + ShowTeachMoveText(FALSE); sLearnMoveStruct->state++; - sub_81611AC(); + AddScrollArrows(); break; case 6: - sub_8160F50(1); + HandleInput(TRUE); break; case 8: if (!sub_81D2C3C()) @@ -382,7 +381,7 @@ static void sub_8160868(void) if (selection == 0) { - if (GiveMoveToMon(&gPlayerParty[sLearnMoveStruct->partyMon], sub_8161054()) != 0xFFFF) + if (GiveMoveToMon(&gPlayerParty[sLearnMoveStruct->partyMon], GetCurrentItemId()) != 0xFFFF) { sub_816084C(gText_PkmnLearnedMove4); gSpecialVar_0x8004 = 1; @@ -462,7 +461,7 @@ static void sub_8160868(void) } break; case 24: - StringCopy(gStringVar2, gMoveNames[sub_8161054()]); + StringCopy(gStringVar2, gMoveNames[GetCurrentItemId()]); sub_816084C(gText_StopTryingToTeachMove); sLearnMoveStruct->state++; break; @@ -520,8 +519,8 @@ static void sub_8160868(void) case 20: if (!gPaletteFade.active) { - ShowSelectMovePokemonSummaryScreen(gPlayerParty, sLearnMoveStruct->partyMon, gPlayerPartyCount - 1, sub_8160740, sub_8161054()); - sub_8160EA0(); + ShowSelectMovePokemonSummaryScreen(gPlayerParty, sLearnMoveStruct->partyMon, gPlayerPartyCount - 1, CB2_InitLearnMoveReturnFromSelectMove, GetCurrentItemId()); + FreeListMenuResources(); } break; case 21: @@ -540,7 +539,7 @@ static void sub_8160868(void) case 15: if (!gPaletteFade.active) { - sub_8160EA0(); + FreeListMenuResources(); SetMainCallback2(CB2_ReturnToField); } break; @@ -549,30 +548,30 @@ static void sub_8160868(void) sLearnMoveStruct->state++; if (sLearnMoveStruct2.showContestInfo == FALSE) { - render_previous_quest_text(TRUE); + HideSpritesAndPrintTeachText(TRUE); } else if (sLearnMoveStruct2.showContestInfo == TRUE) { - sub_8161074(1); + ShowTeachMoveText(TRUE); } - sub_8161234(); + RemoveScrollArrows(); CopyWindowToVram(3, 2); break; case 29: if (!gPaletteFade.active) { - if (sLearnMoveStruct->unk045 == 4) + if (sLearnMoveStruct->moveSlot == MAX_MON_MOVES) { sLearnMoveStruct->state = 24; } else { - u16 moveId = GetMonData(&gPlayerParty[sLearnMoveStruct->partyMon], MON_DATA_MOVE1 + sLearnMoveStruct->unk045); + u16 moveId = GetMonData(&gPlayerParty[sLearnMoveStruct->partyMon], MON_DATA_MOVE1 + sLearnMoveStruct->moveSlot); StringCopy(gStringVar3, gMoveNames[moveId]); - RemoveMonPPBonus(&gPlayerParty[sLearnMoveStruct->partyMon], sLearnMoveStruct->unk045); - SetMonMoveSlot(&gPlayerParty[sLearnMoveStruct->partyMon], sub_8161054(), sLearnMoveStruct->unk045); - StringCopy(gStringVar2, gMoveNames[sub_8161054()]); + RemoveMonPPBonus(&gPlayerParty[sLearnMoveStruct->partyMon], sLearnMoveStruct->moveSlot); + SetMonMoveSlot(&gPlayerParty[sLearnMoveStruct->partyMon], GetCurrentItemId(), sLearnMoveStruct->moveSlot); + StringCopy(gStringVar2, gMoveNames[GetCurrentItemId()]); sub_816084C(gText_12AndPoof); sLearnMoveStruct->state = 30; gSpecialVar_0x8004 = 1; @@ -610,9 +609,9 @@ static void sub_8160868(void) } } -static void sub_8160EA0(void) +static void FreeListMenuResources(void) { - sub_8161234(); + RemoveScrollArrows(); DestroyListMenuTask(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow); FreeAllWindowBuffers(); FREE_AND_SET_NULL(sLearnMoveStruct); @@ -620,7 +619,7 @@ static void sub_8160EA0(void) FreeAllSpritePalettes(); } -static void render_previous_quest_text(bool8 a) +static void HideSpritesAndPrintTeachText(bool8 a) { s32 i; @@ -637,7 +636,7 @@ static void render_previous_quest_text(bool8 a) } } -static void sub_8160F50(u8 a0) +static void HandleInput(bool8 showContest) { s32 itemId = ListMenuHandleInputGetItemId(sLearnMoveStruct->listMenuTask); ListMenuGetScrollAndRow(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow); @@ -652,7 +651,7 @@ static void sub_8160F50(u8 a0) PlaySE(SE_SELECT); - if (a0 == 0) + if (showContest == FALSE) { PutWindowTilemap(1); sLearnMoveStruct->state = 5; @@ -666,18 +665,18 @@ static void sub_8160F50(u8 a0) } schedule_bg_copy_tilemap_to_vram(1); - sub_816137C(sub_8161054()); + ShowHideHearts(GetCurrentItemId()); break; case LIST_B_PRESSED: PlaySE(SE_SELECT); - sub_8161234(); + RemoveScrollArrows(); sLearnMoveStruct->state = 12; StringExpandPlaceholders(gStringVar4, gText_GiveUpTeachingNewMove); sub_81D2BF4(gStringVar4); break; default: PlaySE(SE_SELECT); - sub_8161234(); + RemoveScrollArrows(); sLearnMoveStruct->state = 8; StringCopy(gStringVar2, gMoveNames[itemId]); StringExpandPlaceholders(gStringVar4, gText_TeachX); @@ -686,14 +685,14 @@ static void sub_8160F50(u8 a0) } } -static s32 sub_8161054(void) +static s32 GetCurrentItemId(void) { return sLearnMoveStruct->menuItems[sLearnMoveStruct2.listRow + sLearnMoveStruct2.listOffset].id; } -static void sub_8161074(u8 a0) +static void ShowTeachMoveText(bool8 showContest) { - if (!a0) + if (showContest == FALSE) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); FillWindowPixelBuffer(3, 0x11); @@ -701,13 +700,13 @@ static void sub_8161074(u8 a0) } } -static void sub_81610B8(void) +static void CreateHearts(void) { int i; - sLearnMoveStruct->unk114 = -1; - sLearnMoveStruct->unk113 = -1; - sub_81611AC(); + sLearnMoveStruct->scrollArrowTaskId2 = -1; + sLearnMoveStruct->scrollArrowTaskId1 = -1; + AddScrollArrows(); for (i = 0; i < 8; i++) { @@ -726,37 +725,37 @@ static void sub_81610B8(void) } } -static void sub_81611AC(void) +static void AddScrollArrows(void) { - if (sLearnMoveStruct->unk114 == 0xFF) + if (sLearnMoveStruct->scrollArrowTaskId2 == 0xFF) { - sLearnMoveStruct->unk114 = AddScrollIndicatorArrowPair(&gUnknown_085CEBC0, &sLearnMoveStruct->unk116); + sLearnMoveStruct->scrollArrowTaskId2 = AddScrollIndicatorArrowPair(&gUnknown_085CEBC0, &sLearnMoveStruct->scrollOffset); } - if (sLearnMoveStruct->unk113 == 0xFF) + if (sLearnMoveStruct->scrollArrowTaskId1 == 0xFF) { gTempScrollArrowTemplate = gUnknown_085CEBD0; - gTempScrollArrowTemplate.fullyDownThreshold = sLearnMoveStruct->numMenuChoices - sLearnMoveStruct->unk111; - sLearnMoveStruct->unk113 = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sLearnMoveStruct2.listOffset); + gTempScrollArrowTemplate.fullyDownThreshold = sLearnMoveStruct->numMenuChoices - sLearnMoveStruct->numToShowAtOnce; + sLearnMoveStruct->scrollArrowTaskId1 = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sLearnMoveStruct2.listOffset); } } -static void sub_8161234(void) +static void RemoveScrollArrows(void) { - if (sLearnMoveStruct->unk114 != 0xFF) + if (sLearnMoveStruct->scrollArrowTaskId2 != 0xFF) { - RemoveScrollIndicatorArrowPair(sLearnMoveStruct->unk114); - sLearnMoveStruct->unk114 = 0xFF; + RemoveScrollIndicatorArrowPair(sLearnMoveStruct->scrollArrowTaskId2); + sLearnMoveStruct->scrollArrowTaskId2 = 0xFF; } - if (sLearnMoveStruct->unk113 != 0xFF) + if (sLearnMoveStruct->scrollArrowTaskId1 != 0xFF) { - RemoveScrollIndicatorArrowPair(sLearnMoveStruct->unk113); - sLearnMoveStruct->unk113 = 0xFF; + RemoveScrollIndicatorArrowPair(sLearnMoveStruct->scrollArrowTaskId1); + sLearnMoveStruct->scrollArrowTaskId1 = 0xFF; } } -static void sub_8161280(void) +static void CreateMenuItemsList(void) { s32 i; u8 nickname[POKEMON_NAME_LENGTH + 1]; @@ -774,10 +773,10 @@ static void sub_8161280(void) sLearnMoveStruct->menuItems[sLearnMoveStruct->numMenuChoices].name = gText_Cancel; sLearnMoveStruct->menuItems[sLearnMoveStruct->numMenuChoices].id = LIST_B_PRESSED; sLearnMoveStruct->numMenuChoices++; - sLearnMoveStruct->unk111 = sub_81D28C8(sLearnMoveStruct->menuItems, sLearnMoveStruct->numMenuChoices); + sLearnMoveStruct->numToShowAtOnce = sub_81D28C8(sLearnMoveStruct->menuItems, sLearnMoveStruct->numMenuChoices); } -void sub_816137C(s32 item) +void ShowHideHearts(s32 item) { u16 numHearts; u16 i; From 1a0e6f7aedf66d0c0da07eccd1dd00c4cbc38a93 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 13 Aug 2018 21:24:11 +0200 Subject: [PATCH 097/174] match contest effect --- asm/contest_effect.s | 0 data/contest_effect.s | 6 - ld_script.txt | 2 - src/contest_effect.c | 44 ++- src/data/contest_moves.h | 712 +++++++++++++++++++-------------------- 5 files changed, 383 insertions(+), 381 deletions(-) delete mode 100644 asm/contest_effect.s delete mode 100644 data/contest_effect.s diff --git a/asm/contest_effect.s b/asm/contest_effect.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/data/contest_effect.s b/data/contest_effect.s deleted file mode 100644 index 6c8edba3a5..0000000000 --- a/data/contest_effect.s +++ /dev/null @@ -1,6 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index 78dd9334f9..bd0ac12dc2 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -144,7 +144,6 @@ SECTIONS { src/naming_screen.o(.text); src/money.o(.text); src/contest_effect.o(.text); - asm/contest_effect.o(.text); src/record_mixing.o(.text); src/secret_base.o(.text); src/tv.o(.text); @@ -445,7 +444,6 @@ SECTIONS { src/naming_screen.o(.rodata); src/money.o(.rodata); src/contest_effect.o(.rodata); - data/contest_effect.o(.rodata); src/record_mixing.o(.rodata); src/secret_base.o(.rodata); src/tv.o(.rodata); diff --git a/src/contest_effect.c b/src/contest_effect.c index 40774641df..bf155240c2 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -1,5 +1,6 @@ #include "global.h" #include "random.h" +#include "constants/moves.h" #include "contest.h" #include "contest_effect.h" @@ -158,13 +159,16 @@ static void ContestEffect_StartlePrevMons(void) u8 idx = 0; u8 a = shared192D0.contestant; - if (shared192D0.turnOrder[a] != 0) { - int i; - int j = 0; + if (shared192D0.turnOrder[a] != 0) + { + int i, j; - for (i = 0; i < 4; i++) + for (i = 0, j = 0; i < 4; i++) + { if (shared192D0.turnOrder[a] > shared192D0.turnOrder[i]) shared192D0.jamQueue[j++] = i; + } + shared192D0.jamQueue[j] = 0xFF; idx = WasAtLeastOneOpponentJammed(); } @@ -185,6 +189,7 @@ static void ContestEffect_StartlePrevMon2(void) jam = 40; else jam = 60; + shared192D0.jam = jam; ContestEffect_StartleFrontMon(); } @@ -193,7 +198,7 @@ static void ContestEffect_StartlePrevMon2(void) static void ContestEffect_StartlePrevMons2(void) { u8 numStartled = 0; - u8 contestant = shared192D0.contestant; + register u32 contestant asm("r5") = shared192D0.contestant; if (shared192D0.turnOrder[contestant] != 0) { @@ -203,11 +208,11 @@ static void ContestEffect_StartlePrevMons2(void) { if (shared192D0.turnOrder[contestant] > shared192D0.turnOrder[i]) { + u8 rval, jam; + shared192D0.jamQueue[0] = i; shared192D0.jamQueue[1] = 0xFF; - { - u8 rval = Random() % 10; - int jam; + rval = Random() % 10; if (rval == 0) jam = 0; @@ -221,8 +226,9 @@ static void ContestEffect_StartlePrevMons2(void) jam = 40; else jam = 60; + shared192D0.jam = jam; - } + if (WasAtLeastOneOpponentJammed()) numStartled++; } @@ -1124,16 +1130,20 @@ static bool8 WasAtLeastOneOpponentJammed(void) shared192D0.jam2 = 10; SetContestantEffectStringID(contestant, CONTEST_STRING_LITTLE_DISTRACTED); } - else if ((shared192D0.jam2 -= sContestantStatus[contestant].jamReduction) <= 0) - { - shared192D0.jam2 = 0; - SetContestantEffectStringID(contestant, CONTEST_STRING_NOT_FAZED); - } else { - JamContestant(contestant, shared192D0.jam2); - SetStartledString(contestant, shared192D0.jam2); - jamBuffer[contestant] = shared192D0.jam2; + shared192D0.jam2 -= sContestantStatus[contestant].jamReduction; + if (shared192D0.jam2 <= 0) + { + shared192D0.jam2 = 0; + SetContestantEffectStringID(contestant, CONTEST_STRING_NOT_FAZED); + } + else + { + JamContestant(contestant, shared192D0.jam2); + SetStartledString(contestant, shared192D0.jam2); + jamBuffer[contestant] = shared192D0.jam2; + } } } } diff --git a/src/data/contest_moves.h b/src/data/contest_moves.h index fd0bc55647..b47eecb236 100644 --- a/src/data/contest_moves.h +++ b/src/data/contest_moves.h @@ -1,363 +1,363 @@ #ifndef POKEEMERALD_CONTEST_MOVES_H #define POKEEMERALD_CONTEST_MOVES_H -const struct ContestMove gContestMoves[] = +const struct ContestMove gContestMoves[MOVES_COUNT] = { - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // NONE - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_POUND, {0, 0, 0, 0}}, // POUND - {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // KARATE_CHOP - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_POUND, 0, 0, 0}}, // DOUBLE_SLAP - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // COMET_PUNCH - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, // MEGA_PUNCH - {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // PAY_DAY - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_FIRE_PUNCH, {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_ICE_PUNCH, 0}}, // FIRE_PUNCH - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_ICE_PUNCH, {COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_FIRE_PUNCH, 0, 0}}, // ICE_PUNCH - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_THUNDER_PUNCH, {COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_ICE_PUNCH, 0}}, // THUNDER_PUNCH - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SCRATCH, {COMBO_STARTER_LEER, 0, 0, 0}}, // SCRATCH - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_VICE_GRIP, {0, 0, 0, 0}}, // VICE_GRIP - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_VICE_GRIP, 0, 0, 0}}, // GUILLOTINE - {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // RAZOR_WIND - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SWORDS_DANCE, {0, 0, 0, 0}}, // SWORDS_DANCE - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, // CUT - {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // GUST - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // WING_ATTACK - {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // WHIRLWIND - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // FLY - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_VICE_GRIP, 0, 0, 0}}, // BIND - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_POUND, 0, 0, 0}}, // SLAM - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // VINE_WHIP - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, COMBO_STARTER_LEER, 0, 0}}, // STOMP - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // DOUBLE_KICK - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, // MEGA_KICK - {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, // JUMP_KICK - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // ROLLING_KICK - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SAND_ATTACK, {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM, 0, 0}}, // SAND_ATTACK - {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // HEADBUTT - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_HORN_ATTACK, {COMBO_STARTER_LEER, 0, 0, 0}}, // HORN_ATTACK - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_HORN_ATTACK, COMBO_STARTER_PECK, 0, 0}}, // FURY_ATTACK - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_HORN_ATTACK, 0, 0, 0}}, // HORN_DRILL - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_LEER, COMBO_STARTER_HARDEN, 0}}, // TACKLE - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // BODY_SLAM - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // WRAP - {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0}}, // TAKE_DOWN - {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAGE, 0, 0, 0}}, // THRASH - {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0}}, // DOUBLE_EDGE - {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, // TAIL_WHIP - {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // POISON_STING - {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // TWINEEDLE - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // PIN_MISSILE - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_COOL, COMBO_STARTER_LEER, {COMBO_STARTER_RAGE, COMBO_STARTER_SCARY_FACE, 0, 0}}, // LEER - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LEER, COMBO_STARTER_SCARY_FACE, 0, 0}}, // BITE - {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, // GROWL - {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // ROAR - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SING, {0, 0, 0, 0}}, // SING - {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SUPERSONIC - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // SONIC_BOOM - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // DISABLE - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // ACID - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // EMBER - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // FLAMETHROWER - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // MIST - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_WATER_SPORT, COMBO_STARTER_MUD_SPORT, 0}}, // WATER_GUN - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // HYDRO_PUMP - {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SURF, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_DIVE, 0, 0}}, // SURF - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // ICE_BEAM - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_POWDER_SNOW, COMBO_STARTER_HAIL, 0, 0}}, // BLIZZARD - {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // PSYBEAM - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // BUBBLE_BEAM - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // AURORA_BEAM - {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // HYPER_BEAM - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_PECK, {0, 0, 0, 0}}, // PECK - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_PECK, 0, 0, 0}}, // DRILL_PECK - {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, // SUBMISSION - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // LOW_KICK - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, // COUNTER - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, // SEISMIC_TOSS - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // STRENGTH - {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // ABSORB - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // MEGA_DRAIN - {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // LEECH_SEED - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_GROWTH, {0, 0, 0, 0}}, // GROWTH - {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // RAZOR_LEAF - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_GROWTH, 0, 0}}, // SOLAR_BEAM - {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, // POISON_POWDER - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, // STUN_SPORE - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, // SLEEP_POWDER - {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // PETAL_DANCE - {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, COMBO_STARTER_STRING_SHOT, {0, 0, 0, 0}}, // STRING_SHOT - {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_RAGE, {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, 0, 0}}, // DRAGON_RAGE - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // FIRE_SPIN - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // THUNDER_SHOCK - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // THUNDERBOLT - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // THUNDER_WAVE - {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0}}, // THUNDER - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_ROCK_THROW, {0, 0, 0, 0}}, // ROCK_THROW - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_EARTHQUAKE, {0, 0, 0, 0}}, // EARTHQUAKE - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_EARTHQUAKE, 0, 0, 0}}, // FISSURE - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // DIG - {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // TOXIC - {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, COMBO_STARTER_CONFUSION, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CALM_MIND, 0}}, // CONFUSION - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_PSYCHIC, {COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND, 0}}, // PSYCHIC - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_HYPNOSIS, {0, 0, 0, 0}}, // HYPNOSIS - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // MEDITATE - {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0}}, // AGILITY - {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0}}, // QUICK_ATTACK - {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_COOL, COMBO_STARTER_RAGE, {0, 0, 0, 0}}, // RAGE - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION}}, // TELEPORT - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // NIGHT_SHADE - {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // MIMIC - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SCREECH - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, COMBO_STARTER_DOUBLE_TEAM, {0, 0, 0, 0}}, // DOUBLE_TEAM - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // RECOVER - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_HARDEN, {0, 0, 0, 0}}, // HARDEN - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // MINIMIZE - {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SMOG, 0, 0, 0}}, // SMOKESCREEN - {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // CONFUSE_RAY - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WITHDRAW - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, COMBO_STARTER_DEFENSE_CURL, {0, 0, 0, 0}}, // DEFENSE_CURL - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // BARRIER - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // LIGHT_SCREEN - {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // HAZE - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // REFLECT - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, COMBO_STARTER_FOCUS_ENERGY, {0, 0, 0, 0}}, // FOCUS_ENERGY - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // BIDE - {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // METRONOME - {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // MIRROR_MOVE - {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SELF_DESTRUCT - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SOFT_BOILED, 0, 0, 0}}, // EGG_BOMB - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // LICK - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SMOG, {0, 0, 0, 0}}, // SMOG - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SLUDGE, {COMBO_STARTER_SLUDGE_BOMB, 0, 0, 0}}, // SLUDGE - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONE_CLUB, {COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH, 0, 0}}, // BONE_CLUB - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // FIRE_BLAST - {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WATERFALL - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // CLAMP - {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // SWIFT - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // SKULL_BASH - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // SPIKE_CANNON - {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // CONSTRICT - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // AMNESIA - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_KINESIS, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_CONFUSION, 0, 0}}, // KINESIS - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SOFT_BOILED, {0, 0, 0, 0}}, // SOFT_BOILED - {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, // HI_JUMP_KICK - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LEER, 0, 0, 0}}, // GLARE - {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_HYPNOSIS, COMBO_STARTER_CALM_MIND, 0, 0}}, // DREAM_EATER - {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // POISON_GAS - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // BARRAGE - {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // LEECH_LIFE - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // LOVELY_KISS - {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // SKY_ATTACK - {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // TRANSFORM - {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // BUBBLE - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // DIZZY_PUNCH - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SPORE - {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // FLASH - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // PSYWAVE - {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // SPLASH - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // ACID_ARMOR - {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SWORDS_DANCE, 0, 0}}, // CRABHAMMER - {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // EXPLOSION - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCRATCH, 0, 0, 0}}, // FURY_SWIPES - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONEMERANG, {COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONE_RUSH, 0, 0}}, // BONEMERANG - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, COMBO_STARTER_REST, {COMBO_STARTER_BELLY_DRUM, COMBO_STARTER_CHARM, COMBO_STARTER_YAWN, 0}}, // REST - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_ROCK_THROW, 0, 0, 0}}, // ROCK_SLIDE - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // HYPER_FANG - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // SHARPEN - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // CONVERSION - {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, // TRI_ATTACK - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCARY_FACE, 0, 0, 0}}, // SUPER_FANG - {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, COMBO_STARTER_SCRATCH, 0, 0}}, // SLASH - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SUBSTITUTE - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // STRUGGLE - {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SKETCH - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // TRIPLE_KICK - {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // THIEF - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_STRING_SHOT, 0, 0, 0}}, // SPIDER_WEB - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_MIND_READER, {0, 0, 0, 0}}, // MIND_READER - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_HYPNOSIS, 0, 0, 0}}, // NIGHTMARE - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // FLAME_WHEEL - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_REST, 0, 0, 0}}, // SNORE - {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_CURSE, {0, 0, 0, 0}}, // CURSE - {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, // FLAIL - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // CONVERSION_2 - {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // AEROBLAST - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // COTTON_SPORE - {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, // REVERSAL - {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_CURSE, 0, 0, 0}}, // SPITE - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_POWDER_SNOW, {COMBO_STARTER_HAIL, 0, 0, 0}}, // POWDER_SNOW - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_HARDEN, 0, 0, 0}}, // PROTECT - {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // MACH_PUNCH - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SCARY_FACE, {COMBO_STARTER_RAGE, COMBO_STARTER_LEER, 0, 0}}, // SCARY_FACE - {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_FAKE_OUT, COMBO_STARTER_LEER, COMBO_STARTER_POUND, 0}}, // FAINT_ATTACK - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, // SWEET_KISS - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_BELLY_DRUM, {0, 0, 0, 0}}, // BELLY_DRUM - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SLUDGE_BOMB, {COMBO_STARTER_SLUDGE, 0, 0, 0}}, // SLUDGE_BOMB - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_CUTE, COMBO_STARTER_MUD_SLAP, {COMBO_STARTER_SAND_ATTACK, COMBO_STARTER_MUD_SPORT, COMBO_STARTER_SANDSTORM, 0}}, // MUD_SLAP - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0, 0}}, // OCTAZOOKA - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SPIKES - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, // ZAP_CANNON - {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // FORESIGHT - {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_CURSE, COMBO_STARTER_ENDURE, 0}}, // DESTINY_BOND - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_SING, 0, 0}}, // PERISH_SONG - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // ICY_WIND - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, // DETECT - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONE_RUSH, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG, 0}}, // BONE_RUSH - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_LOCK_ON, {0, 0, 0, 0}}, // LOCK_ON - {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // OUTRAGE - {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SANDSTORM, {0, 0, 0, 0}}, // SANDSTORM - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // GIGA_DRAIN - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_ENDURE, {0, 0, 0, 0}}, // ENDURE - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_CUTE, COMBO_STARTER_CHARM, {0, 0, 0, 0}}, // CHARM - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN, 0, 0}}, // ROLLOUT - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, // FALSE_SWIPE - {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // SWAGGER - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // MILK_DRINK - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // SPARK - {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, // FURY_CUTTER - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // STEEL_WING - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_MEAN_LOOK, {COMBO_STARTER_CURSE, 0, 0, 0}}, // MEAN_LOOK - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // ATTRACT - {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_REST, 0, 0, 0}}, // SLEEP_TALK - {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // HEAL_BELL - {CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // RETURN - {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // PRESENT - {CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // FRUSTRATION - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SAFEGUARD - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, // PAIN_SPLIT - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // SACRED_FIRE - {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // MAGNITUDE - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, // DYNAMIC_PUNCH - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // MEGAHORN - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_BREATH, {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0, 0}}, // DRAGON_BREATH - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // BATON_PASS - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // ENCORE - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // PURSUIT - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // RAPID_SPIN - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SWEET_SCENT, {0, 0, 0, 0}}, // SWEET_SCENT - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // IRON_TAIL - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_METAL_SOUND, 0, 0, 0}}, // METAL_CLAW - {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, // VITAL_THROW - {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // MORNING_SUN - {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // SYNTHESIS - {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // MOONLIGHT - {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // HIDDEN_POWER - {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // CROSS_CHOP - {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // TWISTER - {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_RAIN_DANCE, {0, 0, 0, 0}}, // RAIN_DANCE - {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SUNNY_DAY, {0, 0, 0, 0}}, // SUNNY_DAY - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCARY_FACE, 0, 0, 0}}, // CRUNCH - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, // MIRROR_COAT - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // PSYCH_UP - {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // EXTREME_SPEED - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // ANCIENT_POWER - {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SHADOW_BALL - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND}}, // FUTURE_SIGHT - {CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // ROCK_SMASH - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WHIRLPOOL - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // BEAT_UP - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_CUTE, COMBO_STARTER_FAKE_OUT, {0, 0, 0, 0}}, // FAKE_OUT - {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // UPROAR - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_STOCKPILE, {0, 0, 0, 0}}, // STOCKPILE - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_STOCKPILE, 0, 0, 0}}, // SPIT_UP - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_STOCKPILE, 0, 0, 0}}, // SWALLOW - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // HEAT_WAVE - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_HAIL, {0, 0, 0, 0}}, // HAIL - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // TORMENT - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, // FLATTER - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // WILL_O_WISP - {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // MEMENTO - {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // FACADE - {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // FOCUS_PUNCH - {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SMELLING_SALT - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // FOLLOW_ME - {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // NATURE_POWER - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, COMBO_STARTER_CHARGE, {0, 0, 0, 0}}, // CHARGE - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, COMBO_STARTER_TAUNT, {0, 0, 0, 0}}, // TAUNT - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // HELPING_HAND - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // TRICK - {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // ROLE_PLAY - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // WISH - {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // ASSIST - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // INGRAIN - {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, // SUPERPOWER - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // MAGIC_COAT - {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // RECYCLE - {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // REVENGE - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // BRICK_BREAK - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_YAWN, {0, 0, 0, 0}}, // YAWN - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, // KNOCK_OFF - {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, // ENDEAVOR - {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_ENDURE, COMBO_STARTER_EARTHQUAKE, COMBO_STARTER_SUNNY_DAY, 0}}, // ERUPTION - {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SKILL_SWAP - {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // IMPRISON - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_WATER_SPORT, COMBO_STARTER_SING, 0, 0}}, // REFRESH - {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_CURSE, 0, 0, 0}}, // GRUDGE - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SNATCH - {CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SECRET_POWER - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_DIVE, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SURF, 0, 0}}, // DIVE - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_FAKE_OUT, 0, 0}}, // ARM_THRUST - {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // CAMOUFLAGE - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // TAIL_GLOW - {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // LUSTER_PURGE - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // MIST_BALL - {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // FEATHER_DANCE - {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // TEETER_DANCE - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // BLAZE_KICK - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, COMBO_STARTER_MUD_SPORT, {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_WATER_SPORT, 0, 0}}, // MUD_SPORT - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // ICE_BALL - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // NEEDLE_ARM - {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_YAWN, 0, 0, 0}}, // SLACK_OFF - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // HYPER_VOICE - {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // POISON_FANG - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, // CRUSH_CLAW - {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // BLAST_BURN - {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // HYDRO_CANNON - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // METEOR_MASH - {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // ASTONISH - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_HAIL, COMBO_STARTER_SANDSTORM}}, // WEATHER_BALL - {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // AROMATHERAPY - {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // FAKE_TEARS - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // AIR_CUTTER - {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, // OVERHEAT - {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // ODOR_SLEUTH - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_ROCK_THROW, 0, 0, 0}}, // ROCK_TOMB - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SILVER_WIND - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_METAL_SOUND, {0, 0, 0, 0}}, // METAL_SOUND - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // GRASS_WHISTLE - {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // TICKLE - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // COSMIC_POWER - {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WATER_SPOUT - {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SIGNAL_BEAM - {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // SHADOW_PUNCH - {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // EXTRASENSORY - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, // SKY_UPPERCUT - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SANDSTORM, 0, 0, 0}}, // SAND_TOMB - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // SHEER_COLD - {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // MUDDY_WATER - {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // BULLET_SEED - {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // AERIAL_ACE - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // ICICLE_SPEAR - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // IRON_DEFENSE - {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // BLOCK - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // HOWL - {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0}}, // DRAGON_CLAW - {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // FRENZY_PLANT - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, // BULK_UP - {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // BOUNCE - {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // MUD_SHOT - {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, // POISON_TAIL - {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, // COVET - {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // VOLT_TACKLE - {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, // MAGICAL_LEAF - {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, COMBO_STARTER_WATER_SPORT, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_MUD_SPORT, 0, 0}}, // WATER_SPORT - {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_CALM_MIND, {0, 0, 0, 0}}, // CALM_MIND - {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // LEAF_BLADE - {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_DANCE, {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_BREATH, 0, 0}}, // DRAGON_DANCE - {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, // ROCK_BLAST - {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, // SHOCK_WAVE - {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, // WATER_PULSE - {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, // DOOM_DESIRE - {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, // PSYCHO_BOOST + [MOVE_NONE] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_POUND] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_POUND, {0, 0, 0, 0}}, + [MOVE_KARATE_CHOP] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, + [MOVE_DOUBLE_SLAP] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_POUND, 0, 0, 0}}, + [MOVE_COMET_PUNCH] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_MEGA_PUNCH] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, + [MOVE_PAY_DAY] = {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_FIRE_PUNCH] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_FIRE_PUNCH, {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_ICE_PUNCH, 0}}, + [MOVE_ICE_PUNCH] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_ICE_PUNCH, {COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_FIRE_PUNCH, 0, 0}}, + [MOVE_THUNDER_PUNCH] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_THUNDER_PUNCH, {COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_ICE_PUNCH, 0}}, + [MOVE_SCRATCH] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SCRATCH, {COMBO_STARTER_LEER, 0, 0, 0}}, + [MOVE_VICE_GRIP] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_VICE_GRIP, {0, 0, 0, 0}}, + [MOVE_GUILLOTINE] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_VICE_GRIP, 0, 0, 0}}, + [MOVE_RAZOR_WIND] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_SWORDS_DANCE] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SWORDS_DANCE, {0, 0, 0, 0}}, + [MOVE_CUT] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, + [MOVE_GUST] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_WING_ATTACK] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_WHIRLWIND] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_FLY] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_BIND] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_VICE_GRIP, 0, 0, 0}}, + [MOVE_SLAM] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_POUND, 0, 0, 0}}, + [MOVE_VINE_WHIP] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, + [MOVE_STOMP] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, COMBO_STARTER_LEER, 0, 0}}, + [MOVE_DOUBLE_KICK] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_MEGA_KICK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, + [MOVE_JUMP_KICK] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, + [MOVE_ROLLING_KICK] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_SAND_ATTACK] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SAND_ATTACK, {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM, 0, 0}}, + [MOVE_HEADBUTT] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, + [MOVE_HORN_ATTACK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_HORN_ATTACK, {COMBO_STARTER_LEER, 0, 0, 0}}, + [MOVE_FURY_ATTACK] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_HORN_ATTACK, COMBO_STARTER_PECK, 0, 0}}, + [MOVE_HORN_DRILL] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_HORN_ATTACK, 0, 0, 0}}, + [MOVE_TACKLE] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_LEER, COMBO_STARTER_HARDEN, 0}}, + [MOVE_BODY_SLAM] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_WRAP] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_TAKE_DOWN] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0}}, + [MOVE_THRASH] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAGE, 0, 0, 0}}, + [MOVE_DOUBLE_EDGE] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0}}, + [MOVE_TAIL_WHIP] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, + [MOVE_POISON_STING] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_TWINEEDLE] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_PIN_MISSILE] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_LEER] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_COOL, COMBO_STARTER_LEER, {COMBO_STARTER_RAGE, COMBO_STARTER_SCARY_FACE, 0, 0}}, + [MOVE_BITE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LEER, COMBO_STARTER_SCARY_FACE, 0, 0}}, + [MOVE_GROWL] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, + [MOVE_ROAR] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_SING] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SING, {0, 0, 0, 0}}, + [MOVE_SUPERSONIC] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_SONIC_BOOM] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_DISABLE] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_ACID] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_EMBER] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_FLAMETHROWER] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_MIST] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_WATER_GUN] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_WATER_SPORT, COMBO_STARTER_MUD_SPORT, 0}}, + [MOVE_HYDRO_PUMP] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, + [MOVE_SURF] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SURF, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_DIVE, 0, 0}}, + [MOVE_ICE_BEAM] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_BLIZZARD] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_POWDER_SNOW, COMBO_STARTER_HAIL, 0, 0}}, + [MOVE_PSYBEAM] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, + [MOVE_BUBBLE_BEAM] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, + [MOVE_AURORA_BEAM] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_HYPER_BEAM] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_PECK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_PECK, {0, 0, 0, 0}}, + [MOVE_DRILL_PECK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_PECK, 0, 0, 0}}, + [MOVE_SUBMISSION] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, + [MOVE_LOW_KICK] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_COUNTER] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, + [MOVE_SEISMIC_TOSS] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, + [MOVE_STRENGTH] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_ABSORB] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, + [MOVE_MEGA_DRAIN] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, + [MOVE_LEECH_SEED] = {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_GROWTH] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_GROWTH, {0, 0, 0, 0}}, + [MOVE_RAZOR_LEAF] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, + [MOVE_SOLAR_BEAM] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_GROWTH, 0, 0}}, + [MOVE_POISON_POWDER] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, + [MOVE_STUN_SPORE] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, + [MOVE_SLEEP_POWDER] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, + [MOVE_PETAL_DANCE] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, + [MOVE_STRING_SHOT] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, COMBO_STARTER_STRING_SHOT, {0, 0, 0, 0}}, + [MOVE_DRAGON_RAGE] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_RAGE, {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, 0, 0}}, + [MOVE_FIRE_SPIN] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_THUNDER_SHOCK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, + [MOVE_THUNDERBOLT] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, + [MOVE_THUNDER_WAVE] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, + [MOVE_THUNDER] = {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0}}, + [MOVE_ROCK_THROW] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_ROCK_THROW, {0, 0, 0, 0}}, + [MOVE_EARTHQUAKE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_EARTHQUAKE, {0, 0, 0, 0}}, + [MOVE_FISSURE] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_EARTHQUAKE, 0, 0, 0}}, + [MOVE_DIG] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_TOXIC] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_CONFUSION] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, COMBO_STARTER_CONFUSION, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CALM_MIND, 0}}, + [MOVE_PSYCHIC] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_PSYCHIC, {COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND, 0}}, + [MOVE_HYPNOSIS] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_HYPNOSIS, {0, 0, 0, 0}}, + [MOVE_MEDITATE] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, + [MOVE_AGILITY] = {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0}}, + [MOVE_QUICK_ATTACK] = {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0}}, + [MOVE_RAGE] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_COOL, COMBO_STARTER_RAGE, {0, 0, 0, 0}}, + [MOVE_TELEPORT] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION}}, + [MOVE_NIGHT_SHADE] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_MIMIC] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_SCREECH] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_DOUBLE_TEAM] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, COMBO_STARTER_DOUBLE_TEAM, {0, 0, 0, 0}}, + [MOVE_RECOVER] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_HARDEN] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_HARDEN, {0, 0, 0, 0}}, + [MOVE_MINIMIZE] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_SMOKESCREEN] = {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SMOG, 0, 0, 0}}, + [MOVE_CONFUSE_RAY] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_WITHDRAW] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, + [MOVE_DEFENSE_CURL] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, COMBO_STARTER_DEFENSE_CURL, {0, 0, 0, 0}}, + [MOVE_BARRIER] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_LIGHT_SCREEN] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, + [MOVE_HAZE] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_REFLECT] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, + [MOVE_FOCUS_ENERGY] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, COMBO_STARTER_FOCUS_ENERGY, {0, 0, 0, 0}}, + [MOVE_BIDE] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_METRONOME] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_MIRROR_MOVE] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_SELF_DESTRUCT] = {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_EGG_BOMB] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SOFT_BOILED, 0, 0, 0}}, + [MOVE_LICK] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_SMOG] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SMOG, {0, 0, 0, 0}}, + [MOVE_SLUDGE] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SLUDGE, {COMBO_STARTER_SLUDGE_BOMB, 0, 0, 0}}, + [MOVE_BONE_CLUB] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONE_CLUB, {COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH, 0, 0}}, + [MOVE_FIRE_BLAST] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_WATERFALL] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, + [MOVE_CLAMP] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, + [MOVE_SWIFT] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_SKULL_BASH] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_SPIKE_CANNON] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_CONSTRICT] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_AMNESIA] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_KINESIS] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_KINESIS, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_CONFUSION, 0, 0}}, + [MOVE_SOFT_BOILED] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SOFT_BOILED, {0, 0, 0, 0}}, + [MOVE_HI_JUMP_KICK] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, + [MOVE_GLARE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LEER, 0, 0, 0}}, + [MOVE_DREAM_EATER] = {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_HYPNOSIS, COMBO_STARTER_CALM_MIND, 0, 0}}, + [MOVE_POISON_GAS] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_BARRAGE] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_LEECH_LIFE] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_LOVELY_KISS] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_SKY_ATTACK] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_TRANSFORM] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_BUBBLE] = {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, + [MOVE_DIZZY_PUNCH] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_SPORE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_FLASH] = {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_PSYWAVE] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, + [MOVE_SPLASH] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_ACID_ARMOR] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_CRABHAMMER] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SWORDS_DANCE, 0, 0}}, + [MOVE_EXPLOSION] = {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_FURY_SWIPES] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCRATCH, 0, 0, 0}}, + [MOVE_BONEMERANG] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONEMERANG, {COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONE_RUSH, 0, 0}}, + [MOVE_REST] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, COMBO_STARTER_REST, {COMBO_STARTER_BELLY_DRUM, COMBO_STARTER_CHARM, COMBO_STARTER_YAWN, 0}}, + [MOVE_ROCK_SLIDE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_ROCK_THROW, 0, 0, 0}}, + [MOVE_HYPER_FANG] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_SHARPEN] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_CONVERSION] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_TRI_ATTACK] = {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, + [MOVE_SUPER_FANG] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCARY_FACE, 0, 0, 0}}, + [MOVE_SLASH] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, COMBO_STARTER_SCRATCH, 0, 0}}, + [MOVE_SUBSTITUTE] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_STRUGGLE] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_SKETCH] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_TRIPLE_KICK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, + [MOVE_THIEF] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_SPIDER_WEB] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_STRING_SHOT, 0, 0, 0}}, + [MOVE_MIND_READER] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_MIND_READER, {0, 0, 0, 0}}, + [MOVE_NIGHTMARE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_HYPNOSIS, 0, 0, 0}}, + [MOVE_FLAME_WHEEL] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_SNORE] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_REST, 0, 0, 0}}, + [MOVE_CURSE] = {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_CURSE, {0, 0, 0, 0}}, + [MOVE_FLAIL] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, + [MOVE_CONVERSION_2] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_AEROBLAST] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_COTTON_SPORE] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_REVERSAL] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, + [MOVE_SPITE] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_CURSE, 0, 0, 0}}, + [MOVE_POWDER_SNOW] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_POWDER_SNOW, {COMBO_STARTER_HAIL, 0, 0, 0}}, + [MOVE_PROTECT] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_HARDEN, 0, 0, 0}}, + [MOVE_MACH_PUNCH] = {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_SCARY_FACE] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SCARY_FACE, {COMBO_STARTER_RAGE, COMBO_STARTER_LEER, 0, 0}}, + [MOVE_FAINT_ATTACK] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_FAKE_OUT, COMBO_STARTER_LEER, COMBO_STARTER_POUND, 0}}, + [MOVE_SWEET_KISS] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, + [MOVE_BELLY_DRUM] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_BELLY_DRUM, {0, 0, 0, 0}}, + [MOVE_SLUDGE_BOMB] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SLUDGE_BOMB, {COMBO_STARTER_SLUDGE, 0, 0, 0}}, + [MOVE_MUD_SLAP] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_CUTE, COMBO_STARTER_MUD_SLAP, {COMBO_STARTER_SAND_ATTACK, COMBO_STARTER_MUD_SPORT, COMBO_STARTER_SANDSTORM, 0}}, + [MOVE_OCTAZOOKA] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0, 0}}, + [MOVE_SPIKES] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_ZAP_CANNON] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, + [MOVE_FORESIGHT] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_DESTINY_BOND] = {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_CURSE, COMBO_STARTER_ENDURE, 0}}, + [MOVE_PERISH_SONG] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_SING, 0, 0}}, + [MOVE_ICY_WIND] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_DETECT] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, + [MOVE_BONE_RUSH] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONE_RUSH, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG, 0}}, + [MOVE_LOCK_ON] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_LOCK_ON, {0, 0, 0, 0}}, + [MOVE_OUTRAGE] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_SANDSTORM] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SANDSTORM, {0, 0, 0, 0}}, + [MOVE_GIGA_DRAIN] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, + [MOVE_ENDURE] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_ENDURE, {0, 0, 0, 0}}, + [MOVE_CHARM] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_CUTE, COMBO_STARTER_CHARM, {0, 0, 0, 0}}, + [MOVE_ROLLOUT] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN, 0, 0}}, + [MOVE_FALSE_SWIPE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, + [MOVE_SWAGGER] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_MILK_DRINK] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_SPARK] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, + [MOVE_FURY_CUTTER] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, + [MOVE_STEEL_WING] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_MEAN_LOOK] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_MEAN_LOOK, {COMBO_STARTER_CURSE, 0, 0, 0}}, + [MOVE_ATTRACT] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_SLEEP_TALK] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_REST, 0, 0, 0}}, + [MOVE_HEAL_BELL] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_RETURN] = {CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_PRESENT] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_FRUSTRATION] = {CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_SAFEGUARD] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_PAIN_SPLIT] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, + [MOVE_SACRED_FIRE] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_MAGNITUDE] = {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_DYNAMIC_PUNCH] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, + [MOVE_MEGAHORN] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_DRAGON_BREATH] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_BREATH, {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0, 0}}, + [MOVE_BATON_PASS] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_ENCORE] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_PURSUIT] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_RAPID_SPIN] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_SWEET_SCENT] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SWEET_SCENT, {0, 0, 0, 0}}, + [MOVE_IRON_TAIL] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_METAL_CLAW] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_METAL_SOUND, 0, 0, 0}}, + [MOVE_VITAL_THROW] = {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, + [MOVE_MORNING_SUN] = {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_SYNTHESIS] = {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_MOONLIGHT] = {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_HIDDEN_POWER] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_CROSS_CHOP] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, + [MOVE_TWISTER] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_RAIN_DANCE] = {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_RAIN_DANCE, {0, 0, 0, 0}}, + [MOVE_SUNNY_DAY] = {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SUNNY_DAY, {0, 0, 0, 0}}, + [MOVE_CRUNCH] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCARY_FACE, 0, 0, 0}}, + [MOVE_MIRROR_COAT] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, + [MOVE_PSYCH_UP] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_EXTREME_SPEED] = {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_ANCIENT_POWER] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_SHADOW_BALL] = {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_FUTURE_SIGHT] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND}}, + [MOVE_ROCK_SMASH] = {CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_WHIRLPOOL] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, + [MOVE_BEAT_UP] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_FAKE_OUT] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_CUTE, COMBO_STARTER_FAKE_OUT, {0, 0, 0, 0}}, + [MOVE_UPROAR] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_STOCKPILE] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_STOCKPILE, {0, 0, 0, 0}}, + [MOVE_SPIT_UP] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_STOCKPILE, 0, 0, 0}}, + [MOVE_SWALLOW] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_STOCKPILE, 0, 0, 0}}, + [MOVE_HEAT_WAVE] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_HAIL] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_HAIL, {0, 0, 0, 0}}, + [MOVE_TORMENT] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_FLATTER] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, + [MOVE_WILL_O_WISP] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_MEMENTO] = {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_FACADE] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_FOCUS_PUNCH] = {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, + [MOVE_SMELLING_SALT] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_FOLLOW_ME] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_NATURE_POWER] = {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_CHARGE] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, COMBO_STARTER_CHARGE, {0, 0, 0, 0}}, + [MOVE_TAUNT] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, COMBO_STARTER_TAUNT, {0, 0, 0, 0}}, + [MOVE_HELPING_HAND] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_TRICK] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_ROLE_PLAY] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_WISH] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_ASSIST] = {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_INGRAIN] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_SUPERPOWER] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, + [MOVE_MAGIC_COAT] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_RECYCLE] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_REVENGE] = {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_BRICK_BREAK] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, + [MOVE_YAWN] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_YAWN, {0, 0, 0, 0}}, + [MOVE_KNOCK_OFF] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, + [MOVE_ENDEAVOR] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, + [MOVE_ERUPTION] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_ENDURE, COMBO_STARTER_EARTHQUAKE, COMBO_STARTER_SUNNY_DAY, 0}}, + [MOVE_SKILL_SWAP] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_IMPRISON] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_REFRESH] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_WATER_SPORT, COMBO_STARTER_SING, 0, 0}}, + [MOVE_GRUDGE] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_CURSE, 0, 0, 0}}, + [MOVE_SNATCH] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_SECRET_POWER] = {CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_DIVE] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_DIVE, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SURF, 0, 0}}, + [MOVE_ARM_THRUST] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_FAKE_OUT, 0, 0}}, + [MOVE_CAMOUFLAGE] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_TAIL_GLOW] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_LUSTER_PURGE] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, + [MOVE_MIST_BALL] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, + [MOVE_FEATHER_DANCE] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_TEETER_DANCE] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_BLAZE_KICK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_MUD_SPORT] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, COMBO_STARTER_MUD_SPORT, {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_WATER_SPORT, 0, 0}}, + [MOVE_ICE_BALL] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_NEEDLE_ARM] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_SLACK_OFF] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_YAWN, 0, 0, 0}}, + [MOVE_HYPER_VOICE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_POISON_FANG] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_CRUSH_CLAW] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, + [MOVE_BLAST_BURN] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_HYDRO_CANNON] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, + [MOVE_METEOR_MASH] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_ASTONISH] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_WEATHER_BALL] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_HAIL, COMBO_STARTER_SANDSTORM}}, + [MOVE_AROMATHERAPY] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_FAKE_TEARS] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_AIR_CUTTER] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_OVERHEAT] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, + [MOVE_ODOR_SLEUTH] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_ROCK_TOMB] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_ROCK_THROW, 0, 0, 0}}, + [MOVE_SILVER_WIND] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_METAL_SOUND] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_METAL_SOUND, {0, 0, 0, 0}}, + [MOVE_GRASS_WHISTLE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_TICKLE] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_COSMIC_POWER] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_WATER_SPOUT] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, + [MOVE_SIGNAL_BEAM] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_SHADOW_PUNCH] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_EXTRASENSORY] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_SKY_UPPERCUT] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, + [MOVE_SAND_TOMB] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SANDSTORM, 0, 0, 0}}, + [MOVE_SHEER_COLD] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_MUDDY_WATER] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, + [MOVE_BULLET_SEED] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, + [MOVE_AERIAL_ACE] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_ICICLE_SPEAR] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_IRON_DEFENSE] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_BLOCK] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_HOWL] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_DRAGON_CLAW] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0}}, + [MOVE_FRENZY_PLANT] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, + [MOVE_BULK_UP] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, + [MOVE_BOUNCE] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_MUD_SHOT] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_POISON_TAIL] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, + [MOVE_COVET] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, + [MOVE_VOLT_TACKLE] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, + [MOVE_MAGICAL_LEAF] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, + [MOVE_WATER_SPORT] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, COMBO_STARTER_WATER_SPORT, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_MUD_SPORT, 0, 0}}, + [MOVE_CALM_MIND] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_CALM_MIND, {0, 0, 0, 0}}, + [MOVE_LEAF_BLADE] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_DRAGON_DANCE] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_DANCE, {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_BREATH, 0, 0}}, + [MOVE_ROCK_BLAST] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, + [MOVE_SHOCK_WAVE] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, + [MOVE_WATER_PULSE] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, + [MOVE_DOOM_DESIRE] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, + [MOVE_PSYCHO_BOOST] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, }; const struct ContestEffect gContestEffects[] = From c72b55a5c4793a75480ba641634d155c806f1cd3 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 14 Aug 2018 22:28:25 +0200 Subject: [PATCH 098/174] Match the worst function ever --- src/contest_effect.c | 164 ++++++------------------------------------- 1 file changed, 22 insertions(+), 142 deletions(-) diff --git a/src/contest_effect.c b/src/contest_effect.c index bf155240c2..34b9b5807d 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -624,160 +624,40 @@ static void ContestEffect_QualityDependsOnTiming(void) sContestantStatus[shared192D0.contestant].appeal2 = appeal; } -#ifdef NONMATCHING -// Not even close, send help -// Works well if it’s the same type as the one before. static void ContestEffect_BetterIfSameType(void) { - s8 r4; - s8 r2; + s8 turnOrder = shared192D0.turnOrder[shared192D0.contestant]; + s8 i = turnOrder - 1, j; + u16 move; - for (r4 = shared192D0.turnOrder[shared192D0.contestant]; r4 > 0; r4--) + if (turnOrder == 0) + return; + + while (1) { - for (r2 = 0; r2 < 4; r2++) + for (j = 0; j < 4; j++) { - if (shared192D0.turnOrder[r2] == r4 - 1) + if (shared192D0.turnOrder[j] == i) break; } - if (!(sContestantStatus[r2].noMoreTurns || sContestantStatus[r2].nervous || sContestantStatus[r2].numTurnsSkipped)) + if (sContestantStatus[j].noMoreTurns || sContestantStatus[j].nervous || sContestantStatus[j].numTurnsSkipped) + { + if (--i < 0) + return; + } + else { - u16 move = sContestantStatus[shared192D0.contestant].currMove; - - if (gContestMoves[move].contestCategory == gContestMoves[sContestantStatus[r2].currMove].contestCategory) - { - sContestantStatus[shared192D0.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; - SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_SAME_TYPE_GOOD); - } break; } } + + move = sContestantStatus[shared192D0.contestant].currMove; + if (gContestMoves[move].contestCategory == gContestMoves[sContestantStatus[j].currMove].contestCategory) + { + sContestantStatus[shared192D0.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; + SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_SAME_TYPE_GOOD); + } } -#else -NAKED void ContestEffect_BetterIfSameType(void) -{ - asm_unified("\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - ldr r2, =gContestResources\n\ - ldr r0, [r2]\n\ - ldr r3, [r0, 0x8]\n\ - ldrb r0, [r3, 0x11]\n\ - adds r0, r3, r0\n\ - movs r1, 0\n\ - ldrsb r1, [r0, r1]\n\ - subs r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - mov r8, r2\n\ - cmp r1, 0\n\ - beq _080E61F8\n\ - mov r7, r8\n\ - ldrb r6, [r3]\n\ -_080E6140:\n\ - movs r2, 0\n\ - lsls r0, r4, 24\n\ - asrs r1, r0, 24\n\ - adds r5, r0, 0\n\ - cmp r6, r1\n\ - beq _080E616A\n\ - ldr r4, =gContestResources\n\ -_080E614E:\n\ - lsls r0, r2, 24\n\ - movs r2, 0x80\n\ - lsls r2, 17\n\ - adds r0, r2\n\ - lsrs r2, r0, 24\n\ - asrs r3, r0, 24\n\ - cmp r3, 0x3\n\ - bgt _080E616A\n\ - ldr r0, [r4]\n\ - ldr r0, [r0, 0x8]\n\ - adds r0, r3\n\ - ldrb r0, [r0]\n\ - cmp r0, r1\n\ - bne _080E614E\n\ -_080E616A:\n\ - ldr r0, [r7]\n\ - lsls r3, r2, 24\n\ - asrs r1, r3, 24\n\ - ldr r2, [r0, 0x4]\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - lsls r0, 2\n\ - adds r2, r0, r2\n\ - ldrb r1, [r2, 0xB]\n\ - movs r0, 0x80\n\ - ands r0, r1\n\ - mov r12, r3\n\ - cmp r0, 0\n\ - bne _080E6190\n\ - ldrb r1, [r2, 0xC]\n\ - movs r0, 0x7\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080E61A4\n\ -_080E6190:\n\ - movs r1, 0xFF\n\ - lsls r1, 24\n\ - adds r0, r5, r1\n\ - lsrs r4, r0, 24\n\ - cmp r0, 0\n\ - blt _080E61F8\n\ - b _080E6140\n\ - .pool\n\ -_080E61A4:\n\ - mov r2, r8\n\ - ldr r6, [r2]\n\ - ldr r0, [r6, 0x8]\n\ - ldrb r1, [r0, 0x11]\n\ - ldr r4, [r6, 0x4]\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - lsls r0, 2\n\ - adds r5, r0, r4\n\ - ldrh r0, [r5, 0x6]\n\ - ldr r3, =gContestMoves\n\ - lsls r0, 3\n\ - adds r7, r0, r3\n\ - ldrb r2, [r7, 0x1]\n\ - lsls r2, 29\n\ - mov r0, r12\n\ - asrs r1, r0, 24\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - lsls r0, 2\n\ - adds r0, r4\n\ - ldrh r0, [r0, 0x6]\n\ - lsls r0, 3\n\ - adds r0, r3\n\ - ldrb r0, [r0, 0x1]\n\ - lsls r0, 29\n\ - cmp r2, r0\n\ - bne _080E61F8\n\ - ldr r1, =gContestEffects\n\ - ldrb r0, [r7]\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r0, [r0, 0x1]\n\ - lsls r0, 1\n\ - ldrh r1, [r5, 0x2]\n\ - adds r0, r1\n\ - strh r0, [r5, 0x2]\n\ - ldr r0, [r6, 0x8]\n\ - ldrb r0, [r0, 0x11]\n\ - movs r1, 0x1F\n\ - bl SetContestantEffectStringID\n\ -_080E61F8:\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\ - "); -} -#endif // Works well if different in type than the one before. static void ContestEffect_BetterIfDiffType(void) From 0c7063c5bae47d7152c9563751381b5eee384e4a Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 14 Aug 2018 23:50:58 +0200 Subject: [PATCH 099/174] Make contest effect table easier to edit in the future --- src/contest_effect.c | 9 +- src/data/contest_moves.h | 3187 +++++++++++++++++++++++++++++++++----- 2 files changed, 2836 insertions(+), 360 deletions(-) diff --git a/src/contest_effect.c b/src/contest_effect.c index 34b9b5807d..d54fb769ef 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -67,12 +67,11 @@ bool8 AreMovesContestCombo(u16 lastMove, u16 nextMove) nextMoveComboMoves[3] = gContestMoves[nextMove].comboMoves[3]; if (lastMoveComboStarterId == 0) - return 0; - - if (lastMoveComboStarterId == nextMoveComboMoves[0] || lastMoveComboStarterId == nextMoveComboMoves[1] || lastMoveComboStarterId == nextMoveComboMoves[2] || lastMoveComboStarterId == nextMoveComboMoves[3]) + return FALSE; + else if (lastMoveComboStarterId == nextMoveComboMoves[0] || lastMoveComboStarterId == nextMoveComboMoves[1] || lastMoveComboStarterId == nextMoveComboMoves[2] || lastMoveComboStarterId == nextMoveComboMoves[3]) return gComboStarterLookupTable[lastMoveComboStarterId]; - - return 0; + else + return FALSE; } // A highly appealing move. diff --git a/src/data/contest_moves.h b/src/data/contest_moves.h index b47eecb236..fc262dd211 100644 --- a/src/data/contest_moves.h +++ b/src/data/contest_moves.h @@ -3,361 +3,2838 @@ const struct ContestMove gContestMoves[MOVES_COUNT] = { - [MOVE_NONE] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_POUND] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_POUND, {0, 0, 0, 0}}, - [MOVE_KARATE_CHOP] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, - [MOVE_DOUBLE_SLAP] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_POUND, 0, 0, 0}}, - [MOVE_COMET_PUNCH] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_MEGA_PUNCH] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, - [MOVE_PAY_DAY] = {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_FIRE_PUNCH] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_FIRE_PUNCH, {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_ICE_PUNCH, 0}}, - [MOVE_ICE_PUNCH] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_ICE_PUNCH, {COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_FIRE_PUNCH, 0, 0}}, - [MOVE_THUNDER_PUNCH] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_THUNDER_PUNCH, {COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_ICE_PUNCH, 0}}, - [MOVE_SCRATCH] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SCRATCH, {COMBO_STARTER_LEER, 0, 0, 0}}, - [MOVE_VICE_GRIP] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_VICE_GRIP, {0, 0, 0, 0}}, - [MOVE_GUILLOTINE] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_VICE_GRIP, 0, 0, 0}}, - [MOVE_RAZOR_WIND] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_SWORDS_DANCE] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SWORDS_DANCE, {0, 0, 0, 0}}, - [MOVE_CUT] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, - [MOVE_GUST] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_WING_ATTACK] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_WHIRLWIND] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_FLY] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_BIND] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_VICE_GRIP, 0, 0, 0}}, - [MOVE_SLAM] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_POUND, 0, 0, 0}}, - [MOVE_VINE_WHIP] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, - [MOVE_STOMP] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, COMBO_STARTER_LEER, 0, 0}}, - [MOVE_DOUBLE_KICK] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_MEGA_KICK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, - [MOVE_JUMP_KICK] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, - [MOVE_ROLLING_KICK] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_SAND_ATTACK] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SAND_ATTACK, {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM, 0, 0}}, - [MOVE_HEADBUTT] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, - [MOVE_HORN_ATTACK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_HORN_ATTACK, {COMBO_STARTER_LEER, 0, 0, 0}}, - [MOVE_FURY_ATTACK] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_HORN_ATTACK, COMBO_STARTER_PECK, 0, 0}}, - [MOVE_HORN_DRILL] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_HORN_ATTACK, 0, 0, 0}}, - [MOVE_TACKLE] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_LEER, COMBO_STARTER_HARDEN, 0}}, - [MOVE_BODY_SLAM] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_WRAP] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_TAKE_DOWN] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0}}, - [MOVE_THRASH] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAGE, 0, 0, 0}}, - [MOVE_DOUBLE_EDGE] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0}}, - [MOVE_TAIL_WHIP] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, - [MOVE_POISON_STING] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_TWINEEDLE] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_PIN_MISSILE] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_LEER] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_COOL, COMBO_STARTER_LEER, {COMBO_STARTER_RAGE, COMBO_STARTER_SCARY_FACE, 0, 0}}, - [MOVE_BITE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LEER, COMBO_STARTER_SCARY_FACE, 0, 0}}, - [MOVE_GROWL] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, - [MOVE_ROAR] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_SING] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SING, {0, 0, 0, 0}}, - [MOVE_SUPERSONIC] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_SONIC_BOOM] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_DISABLE] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_ACID] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_EMBER] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_FLAMETHROWER] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_MIST] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_WATER_GUN] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_WATER_SPORT, COMBO_STARTER_MUD_SPORT, 0}}, - [MOVE_HYDRO_PUMP] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, - [MOVE_SURF] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SURF, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_DIVE, 0, 0}}, - [MOVE_ICE_BEAM] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_BLIZZARD] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_POWDER_SNOW, COMBO_STARTER_HAIL, 0, 0}}, - [MOVE_PSYBEAM] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, - [MOVE_BUBBLE_BEAM] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, - [MOVE_AURORA_BEAM] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_HYPER_BEAM] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_PECK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, COMBO_STARTER_PECK, {0, 0, 0, 0}}, - [MOVE_DRILL_PECK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_PECK, 0, 0, 0}}, - [MOVE_SUBMISSION] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, - [MOVE_LOW_KICK] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_COUNTER] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, - [MOVE_SEISMIC_TOSS] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, - [MOVE_STRENGTH] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_ABSORB] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, - [MOVE_MEGA_DRAIN] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, - [MOVE_LEECH_SEED] = {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_GROWTH] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_GROWTH, {0, 0, 0, 0}}, - [MOVE_RAZOR_LEAF] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, - [MOVE_SOLAR_BEAM] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_GROWTH, 0, 0}}, - [MOVE_POISON_POWDER] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, - [MOVE_STUN_SPORE] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, - [MOVE_SLEEP_POWDER] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SWEET_SCENT, 0, 0, 0}}, - [MOVE_PETAL_DANCE] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, - [MOVE_STRING_SHOT] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, COMBO_STARTER_STRING_SHOT, {0, 0, 0, 0}}, - [MOVE_DRAGON_RAGE] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_RAGE, {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, 0, 0}}, - [MOVE_FIRE_SPIN] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_THUNDER_SHOCK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, - [MOVE_THUNDERBOLT] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, - [MOVE_THUNDER_WAVE] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, - [MOVE_THUNDER] = {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0}}, - [MOVE_ROCK_THROW] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_ROCK_THROW, {0, 0, 0, 0}}, - [MOVE_EARTHQUAKE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_EARTHQUAKE, {0, 0, 0, 0}}, - [MOVE_FISSURE] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_EARTHQUAKE, 0, 0, 0}}, - [MOVE_DIG] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_TOXIC] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_CONFUSION] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, COMBO_STARTER_CONFUSION, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CALM_MIND, 0}}, - [MOVE_PSYCHIC] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_PSYCHIC, {COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND, 0}}, - [MOVE_HYPNOSIS] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_HYPNOSIS, {0, 0, 0, 0}}, - [MOVE_MEDITATE] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, - [MOVE_AGILITY] = {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0}}, - [MOVE_QUICK_ATTACK] = {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0}}, - [MOVE_RAGE] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_COOL, COMBO_STARTER_RAGE, {0, 0, 0, 0}}, - [MOVE_TELEPORT] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DOUBLE_TEAM, COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION}}, - [MOVE_NIGHT_SHADE] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_MIMIC] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_SCREECH] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_DOUBLE_TEAM] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, COMBO_STARTER_DOUBLE_TEAM, {0, 0, 0, 0}}, - [MOVE_RECOVER] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_HARDEN] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_HARDEN, {0, 0, 0, 0}}, - [MOVE_MINIMIZE] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_SMOKESCREEN] = {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SMOG, 0, 0, 0}}, - [MOVE_CONFUSE_RAY] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_WITHDRAW] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, - [MOVE_DEFENSE_CURL] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, COMBO_STARTER_DEFENSE_CURL, {0, 0, 0, 0}}, - [MOVE_BARRIER] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_LIGHT_SCREEN] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, - [MOVE_HAZE] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_REFLECT] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, - [MOVE_FOCUS_ENERGY] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, COMBO_STARTER_FOCUS_ENERGY, {0, 0, 0, 0}}, - [MOVE_BIDE] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_METRONOME] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_MIRROR_MOVE] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_SELF_DESTRUCT] = {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_EGG_BOMB] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SOFT_BOILED, 0, 0, 0}}, - [MOVE_LICK] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_SMOG] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SMOG, {0, 0, 0, 0}}, - [MOVE_SLUDGE] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SLUDGE, {COMBO_STARTER_SLUDGE_BOMB, 0, 0, 0}}, - [MOVE_BONE_CLUB] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONE_CLUB, {COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH, 0, 0}}, - [MOVE_FIRE_BLAST] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_WATERFALL] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, - [MOVE_CLAMP] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, - [MOVE_SWIFT] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_SKULL_BASH] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_SPIKE_CANNON] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_CONSTRICT] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_AMNESIA] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_KINESIS] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_KINESIS, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_CONFUSION, 0, 0}}, - [MOVE_SOFT_BOILED] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SOFT_BOILED, {0, 0, 0, 0}}, - [MOVE_HI_JUMP_KICK] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_MIND_READER, 0, 0, 0}}, - [MOVE_GLARE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LEER, 0, 0, 0}}, - [MOVE_DREAM_EATER] = {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_HYPNOSIS, COMBO_STARTER_CALM_MIND, 0, 0}}, - [MOVE_POISON_GAS] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_BARRAGE] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_LEECH_LIFE] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_LOVELY_KISS] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_SKY_ATTACK] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_TRANSFORM] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_BUBBLE] = {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, - [MOVE_DIZZY_PUNCH] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_SPORE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_FLASH] = {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_PSYWAVE] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, - [MOVE_SPLASH] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_ACID_ARMOR] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_CRABHAMMER] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SWORDS_DANCE, 0, 0}}, - [MOVE_EXPLOSION] = {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_FURY_SWIPES] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCRATCH, 0, 0, 0}}, - [MOVE_BONEMERANG] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONEMERANG, {COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONE_RUSH, 0, 0}}, - [MOVE_REST] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_CUTE, COMBO_STARTER_REST, {COMBO_STARTER_BELLY_DRUM, COMBO_STARTER_CHARM, COMBO_STARTER_YAWN, 0}}, - [MOVE_ROCK_SLIDE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_ROCK_THROW, 0, 0, 0}}, - [MOVE_HYPER_FANG] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_SHARPEN] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_CONVERSION] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_TRI_ATTACK] = {CONTEST_EFFECT_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, - [MOVE_SUPER_FANG] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCARY_FACE, 0, 0, 0}}, - [MOVE_SLASH] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, COMBO_STARTER_SCRATCH, 0, 0}}, - [MOVE_SUBSTITUTE] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_STRUGGLE] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_SKETCH] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_TRIPLE_KICK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, - [MOVE_THIEF] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_SPIDER_WEB] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_STRING_SHOT, 0, 0, 0}}, - [MOVE_MIND_READER] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_MIND_READER, {0, 0, 0, 0}}, - [MOVE_NIGHTMARE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_HYPNOSIS, 0, 0, 0}}, - [MOVE_FLAME_WHEEL] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_SNORE] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_REST, 0, 0, 0}}, - [MOVE_CURSE] = {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_CURSE, {0, 0, 0, 0}}, - [MOVE_FLAIL] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, - [MOVE_CONVERSION_2] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_AEROBLAST] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_COTTON_SPORE] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_REVERSAL] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, - [MOVE_SPITE] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_CURSE, 0, 0, 0}}, - [MOVE_POWDER_SNOW] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_POWDER_SNOW, {COMBO_STARTER_HAIL, 0, 0, 0}}, - [MOVE_PROTECT] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_HARDEN, 0, 0, 0}}, - [MOVE_MACH_PUNCH] = {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_SCARY_FACE] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SCARY_FACE, {COMBO_STARTER_RAGE, COMBO_STARTER_LEER, 0, 0}}, - [MOVE_FAINT_ATTACK] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_FAKE_OUT, COMBO_STARTER_LEER, COMBO_STARTER_POUND, 0}}, - [MOVE_SWEET_KISS] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, - [MOVE_BELLY_DRUM] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_BELLY_DRUM, {0, 0, 0, 0}}, - [MOVE_SLUDGE_BOMB] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SLUDGE_BOMB, {COMBO_STARTER_SLUDGE, 0, 0, 0}}, - [MOVE_MUD_SLAP] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_CUTE, COMBO_STARTER_MUD_SLAP, {COMBO_STARTER_SAND_ATTACK, COMBO_STARTER_MUD_SPORT, COMBO_STARTER_SANDSTORM, 0}}, - [MOVE_OCTAZOOKA] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0, 0}}, - [MOVE_SPIKES] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_ZAP_CANNON] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, - [MOVE_FORESIGHT] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_DESTINY_BOND] = {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_CURSE, COMBO_STARTER_ENDURE, 0}}, - [MOVE_PERISH_SONG] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_SING, 0, 0}}, - [MOVE_ICY_WIND] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_DETECT] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, - [MOVE_BONE_RUSH] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_BONE_RUSH, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG, 0}}, - [MOVE_LOCK_ON] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_LOCK_ON, {0, 0, 0, 0}}, - [MOVE_OUTRAGE] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_SANDSTORM] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_SANDSTORM, {0, 0, 0, 0}}, - [MOVE_GIGA_DRAIN] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, - [MOVE_ENDURE] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_ENDURE, {0, 0, 0, 0}}, - [MOVE_CHARM] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_CUTE, COMBO_STARTER_CHARM, {0, 0, 0, 0}}, - [MOVE_ROLLOUT] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN, 0, 0}}, - [MOVE_FALSE_SWIPE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, - [MOVE_SWAGGER] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_MILK_DRINK] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_SPARK] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, - [MOVE_FURY_CUTTER] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, - [MOVE_STEEL_WING] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_MEAN_LOOK] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_MEAN_LOOK, {COMBO_STARTER_CURSE, 0, 0, 0}}, - [MOVE_ATTRACT] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_SLEEP_TALK] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_REST, 0, 0, 0}}, - [MOVE_HEAL_BELL] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_RETURN] = {CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_PRESENT] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_FRUSTRATION] = {CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_SAFEGUARD] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_PAIN_SPLIT] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, - [MOVE_SACRED_FIRE] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_MAGNITUDE] = {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_DYNAMIC_PUNCH] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0}}, - [MOVE_MEGAHORN] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_DRAGON_BREATH] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_BREATH, {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0, 0}}, - [MOVE_BATON_PASS] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_ENCORE] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_PURSUIT] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_RAPID_SPIN] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_SWEET_SCENT] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_SWEET_SCENT, {0, 0, 0, 0}}, - [MOVE_IRON_TAIL] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_METAL_CLAW] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_METAL_SOUND, 0, 0, 0}}, - [MOVE_VITAL_THROW] = {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, - [MOVE_MORNING_SUN] = {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_SYNTHESIS] = {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_MOONLIGHT] = {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_HIDDEN_POWER] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_CROSS_CHOP] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, - [MOVE_TWISTER] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_RAIN_DANCE] = {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_RAIN_DANCE, {0, 0, 0, 0}}, - [MOVE_SUNNY_DAY] = {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_SUNNY_DAY, {0, 0, 0, 0}}, - [MOVE_CRUNCH] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_SCARY_FACE, 0, 0, 0}}, - [MOVE_MIRROR_COAT] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_TAUNT, 0, 0, 0}}, - [MOVE_PSYCH_UP] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_EXTREME_SPEED] = {CONTEST_EFFECT_NEXT_APPEAL_EARLIER, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_ANCIENT_POWER] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_SHADOW_BALL] = {CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_FUTURE_SIGHT] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND}}, - [MOVE_ROCK_SMASH] = {CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_WHIRLPOOL] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, - [MOVE_BEAT_UP] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_FAKE_OUT] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_CUTE, COMBO_STARTER_FAKE_OUT, {0, 0, 0, 0}}, - [MOVE_UPROAR] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_STOCKPILE] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_TOUGH, COMBO_STARTER_STOCKPILE, {0, 0, 0, 0}}, - [MOVE_SPIT_UP] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_STOCKPILE, 0, 0, 0}}, - [MOVE_SWALLOW] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_STOCKPILE, 0, 0, 0}}, - [MOVE_HEAT_WAVE] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_HAIL] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_HAIL, {0, 0, 0, 0}}, - [MOVE_TORMENT] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_FLATTER] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CHARM, 0, 0, 0}}, - [MOVE_WILL_O_WISP] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_MEMENTO] = {CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_FACADE] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_FOCUS_PUNCH] = {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, - [MOVE_SMELLING_SALT] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_FOLLOW_ME] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_NATURE_POWER] = {CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_CHARGE] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, COMBO_STARTER_CHARGE, {0, 0, 0, 0}}, - [MOVE_TAUNT] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, COMBO_STARTER_TAUNT, {0, 0, 0, 0}}, - [MOVE_HELPING_HAND] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_TRICK] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_ROLE_PLAY] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_WISH] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_ASSIST] = {CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_INGRAIN] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_SUPERPOWER] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_LOCK_ON, 0, 0, 0}}, - [MOVE_MAGIC_COAT] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_RECYCLE] = {CONTEST_EFFECT_REPETITION_NOT_BORING, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_REVENGE] = {CONTEST_EFFECT_NEXT_APPEAL_LATER, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_BRICK_BREAK] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, - [MOVE_YAWN] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, COMBO_STARTER_YAWN, {0, 0, 0, 0}}, - [MOVE_KNOCK_OFF] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_FAKE_OUT, 0, 0, 0}}, - [MOVE_ENDEAVOR] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_ENDURE, 0, 0, 0}}, - [MOVE_ERUPTION] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_ENDURE, COMBO_STARTER_EARTHQUAKE, COMBO_STARTER_SUNNY_DAY, 0}}, - [MOVE_SKILL_SWAP] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_IMPRISON] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_REFRESH] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_WATER_SPORT, COMBO_STARTER_SING, 0, 0}}, - [MOVE_GRUDGE] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_CURSE, 0, 0, 0}}, - [MOVE_SNATCH] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_SECRET_POWER] = {CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_DIVE] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_BEAUTY, COMBO_STARTER_DIVE, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SURF, 0, 0}}, - [MOVE_ARM_THRUST] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_FAKE_OUT, 0, 0}}, - [MOVE_CAMOUFLAGE] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_TAIL_GLOW] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_LUSTER_PURGE] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, - [MOVE_MIST_BALL] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, - [MOVE_FEATHER_DANCE] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_TEETER_DANCE] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_BLAZE_KICK] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_MUD_SPORT] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, COMBO_STARTER_MUD_SPORT, {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_WATER_SPORT, 0, 0}}, - [MOVE_ICE_BALL] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_NEEDLE_ARM] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_SLACK_OFF] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_CUTE, 0, {COMBO_STARTER_YAWN, 0, 0, 0}}, - [MOVE_HYPER_VOICE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_POISON_FANG] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_CRUSH_CLAW] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_SWORDS_DANCE, 0, 0, 0}}, - [MOVE_BLAST_BURN] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_HYDRO_CANNON] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, - [MOVE_METEOR_MASH] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_ASTONISH] = {CONTEST_EFFECT_STARTLE_PREV_MON, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_WEATHER_BALL] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_HAIL, COMBO_STARTER_SANDSTORM}}, - [MOVE_AROMATHERAPY] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_FAKE_TEARS] = {CONTEST_EFFECT_BETTER_IF_LAST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_AIR_CUTTER] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_OVERHEAT] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_SUNNY_DAY, 0, 0, 0}}, - [MOVE_ODOR_SLEUTH] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_ROCK_TOMB] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_ROCK_THROW, 0, 0, 0}}, - [MOVE_SILVER_WIND] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_METAL_SOUND] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, COMBO_STARTER_METAL_SOUND, {0, 0, 0, 0}}, - [MOVE_GRASS_WHISTLE] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_TICKLE] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_COSMIC_POWER] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_WATER_SPOUT] = {CONTEST_EFFECT_BETTER_WHEN_LATER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, - [MOVE_SIGNAL_BEAM] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_SHADOW_PUNCH] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_EXTRASENSORY] = {CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_SKY_UPPERCUT] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0}}, - [MOVE_SAND_TOMB] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_SANDSTORM, 0, 0, 0}}, - [MOVE_SHEER_COLD] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_MUDDY_WATER] = {CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, CONTEST_CATEGORY_TOUGH, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, - [MOVE_BULLET_SEED] = {CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, - [MOVE_AERIAL_ACE] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_ICICLE_SPEAR] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_IRON_DEFENSE] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_BLOCK] = {CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_HOWL] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_DRAGON_CLAW] = {CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0}}, - [MOVE_FRENZY_PLANT] = {CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, - [MOVE_BULK_UP] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_BEAUTY, 0, {0, 0, 0, 0}}, - [MOVE_BOUNCE] = {CONTEST_EFFECT_AVOID_STARTLE, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_MUD_SHOT] = {CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_POISON_TAIL] = {CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, CONTEST_CATEGORY_SMART, 0, {0, 0, 0, 0}}, - [MOVE_COVET] = {CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, CONTEST_CATEGORY_CUTE, 0, {0, 0, 0, 0}}, - [MOVE_VOLT_TACKLE] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, - [MOVE_MAGICAL_LEAF] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_GROWTH, 0, 0, 0}}, - [MOVE_WATER_SPORT] = {CONTEST_EFFECT_HIGHLY_APPEALING, CONTEST_CATEGORY_CUTE, COMBO_STARTER_WATER_SPORT, {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_MUD_SPORT, 0, 0}}, - [MOVE_CALM_MIND] = {CONTEST_EFFECT_AVOID_STARTLE_ONCE, CONTEST_CATEGORY_SMART, COMBO_STARTER_CALM_MIND, {0, 0, 0, 0}}, - [MOVE_LEAF_BLADE] = {CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_DRAGON_DANCE] = {CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, CONTEST_CATEGORY_COOL, COMBO_STARTER_DRAGON_DANCE, {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_BREATH, 0, 0}}, - [MOVE_ROCK_BLAST] = {CONTEST_EFFECT_BETTER_IF_SAME_TYPE, CONTEST_CATEGORY_TOUGH, 0, {0, 0, 0, 0}}, - [MOVE_SHOCK_WAVE] = {CONTEST_EFFECT_BETTER_IF_FIRST, CONTEST_CATEGORY_COOL, 0, {COMBO_STARTER_CHARGE, 0, 0, 0}}, - [MOVE_WATER_PULSE] = {CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, CONTEST_CATEGORY_BEAUTY, 0, {COMBO_STARTER_RAIN_DANCE, 0, 0, 0}}, - [MOVE_DOOM_DESIRE] = {CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, CONTEST_CATEGORY_COOL, 0, {0, 0, 0, 0}}, - [MOVE_PSYCHO_BOOST] = {CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, CONTEST_CATEGORY_SMART, 0, {COMBO_STARTER_CALM_MIND, 0, 0, 0}}, + [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[] = From 0b22ad4ab520d007b1d0f8b9e1fe9027a2302c40 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 00:01:43 +0200 Subject: [PATCH 100/174] make contest effect build --- src/pokemon_summary_screen.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 38b1fea4fb..83554eba55 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -42,7 +42,6 @@ extern struct UnkStruct_61CC04 gUnknown_0861CC10; extern struct UnkStruct_61CC04 gUnknown_0861CBEC; extern struct UnkStruct_61CC04 gUnknown_0861CBF8; extern u16 gSummaryScreenWindow_Tilemap[]; -extern struct ContestEffect gContestEffects[]; extern struct WindowTemplate gUnknown_0861CC24; extern u8 gUnknown_0861CD2C[][3]; extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; From ba225f8eaab5e46f7fc825adc6df833f3996b38d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 00:25:19 +0200 Subject: [PATCH 101/174] Fix fakematching in contest effect --- src/contest_effect.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/contest_effect.c b/src/contest_effect.c index d54fb769ef..7c086b7994 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -197,9 +197,10 @@ static void ContestEffect_StartlePrevMon2(void) static void ContestEffect_StartlePrevMons2(void) { u8 numStartled = 0; - register u32 contestant asm("r5") = shared192D0.contestant; + u8 contestant = shared192D0.contestant; + u8 turnOrder = shared192D0.turnOrder[contestant]; - if (shared192D0.turnOrder[contestant] != 0) + if (turnOrder != 0) { int i; From a07d69d7c2e65ed8ea71ec88cc3c4cadbb444510 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Tue, 14 Aug 2018 21:56:11 -0700 Subject: [PATCH 102/174] Finish pokemon_summary_screen --- ...emon_summary_screen.s => battle_pyramid.s} | 1533 +---------- data/pokemon_summary_screen.s | 507 ---- data/unk_pokedex_area_screen_helper.s | 110 + include/battle_controllers.h | 2 + include/battle_frontier_2.h | 1 + include/battle_tent.h | 6 + include/contest_effect.h | 1 + include/graphics.h | 20 + include/m4a.h | 1 + include/menu.h | 2 + include/menu_helpers.h | 1 + include/mon_markings.h | 2 + include/party_menu.h | 3 + include/pokeball.h | 2 + include/pokemon_storage_system.h | 1 + include/pokemon_summary_screen.h | 2 +- include/region_map.h | 1 + include/strings.h | 48 + ld_script.txt | 7 +- src/battle_pyramid.c | 248 ++ src/data/text/nature_names.h | 54 + src/pokemon_summary_screen.c | 2396 +++++++++-------- src/unk_pokedex_area_screen_helper.c | 75 + sym_ewram.txt | 27 +- 24 files changed, 1930 insertions(+), 3120 deletions(-) rename asm/{pokemon_summary_screen.s => battle_pyramid.s} (70%) delete mode 100644 data/pokemon_summary_screen.s create mode 100644 data/unk_pokedex_area_screen_helper.s create mode 100644 include/battle_tent.h create mode 100644 src/battle_pyramid.c create mode 100644 src/data/text/nature_names.h create mode 100644 src/unk_pokedex_area_screen_helper.c diff --git a/asm/pokemon_summary_screen.s b/asm/battle_pyramid.s similarity index 70% rename from asm/pokemon_summary_screen.s rename to asm/battle_pyramid.s index 91b1693fd8..ea07fdd0a6 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/battle_pyramid.s @@ -5,1523 +5,6 @@ .text - - - thumb_func_start sub_81C4568 -sub_81C4568: @ 81C4568 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_0203CF1C - ldr r2, [r2] - adds r0, 0x3 - ldr r3, =0x000040d3 - adds r2, r3 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r5, =gSprites - adds r4, r5 - adds r1, 0x3 - adds r2, r1 - ldrb r0, [r2] - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r5 - adds r5, r4, 0 - adds r5, 0x2A - ldrb r1, [r5] - adds r2, r3, 0 - adds r2, 0x2A - ldrb r0, [r2] - strb r0, [r5] - strb r1, [r2] - ldrb r6, [r4, 0x5] - lsrs r5, r6, 4 - ldrb r2, [r3, 0x5] - lsrs r2, 4 - lsls r2, 4 - movs r1, 0xF - adds r0, r1, 0 - ands r0, r6 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r5, 4 - ldrb r0, [r3, 0x5] - ands r1, r0 - orrs r1, r5 - strb r1, [r3, 0x5] - adds r4, 0x3F - ldrb r0, [r4] - movs r2, 0x4 - orrs r0, r2 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r4] - adds r3, 0x3F - ldrb r0, [r3] - orrs r0, r2 - ands r0, r1 - strb r0, [r3] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4568 - - thumb_func_start sub_81C45F4 -sub_81C45F4: @ 81C45F4 - push {r4-r6,lr} - adds r3, r0, 0 - adds r6, r1, 0 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - adds r5, r2, 0 - adds r5, 0x70 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _081C4620 - cmp r0, 0x1 - bne _081C4610 - b _081C4750 -_081C4610: - adds r0, r3, 0 - bl sub_81C47B4 - lsls r0, 24 - lsrs r0, 24 - b _081C4770 - .pool -_081C4620: - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C4680 - ldr r1, =0x000040be - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, 0x3 - bl sub_80688F8 - lsls r0, 24 - cmp r0, 0 - beq _081C4668 - ldrh r2, [r5, 0x2] - lsls r0, r2, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - ldr r1, =gMonSpritesGfxPtr - ldr r1, [r1] - ldr r1, [r1, 0x8] - b _081C46D6 - .pool -_081C4668: - ldrh r2, [r5, 0x2] - lsls r0, r2, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - ldr r1, =gMonSpritesGfxPtr - ldr r1, [r1] - b _081C46B0 - .pool -_081C4680: - ldr r0, =gMonSpritesGfxPtr - ldr r3, [r0] - adds r4, r0, 0 - cmp r3, 0 - beq _081C46E4 - ldr r1, [r2] - ldr r0, =gPlayerParty - cmp r1, r0 - beq _081C46A6 - ldr r1, =0x000040bc - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _081C46A6 - adds r1, 0x33 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C46CC -_081C46A6: - ldrh r2, [r5, 0x2] - lsls r0, r2, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - ldr r1, [r4] -_081C46B0: - ldr r1, [r1, 0x8] - ldr r3, [r5, 0xC] - bl HandleLoadSpecialPokePic_2 - b _081C4768 - .pool -_081C46CC: - ldrh r2, [r5, 0x2] - lsls r0, r2, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - ldr r1, [r3, 0x8] -_081C46D6: - ldr r3, [r5, 0xC] - bl HandleLoadSpecialPokePic_DontHandleDeoxys - b _081C4768 - .pool -_081C46E4: - ldr r1, [r2] - ldr r0, =gPlayerParty - cmp r1, r0 - beq _081C4700 - ldr r1, =0x000040bc - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _081C4700 - adds r1, 0x33 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C472C -_081C4700: - ldrh r4, [r5, 0x2] - lsls r4, 3 - ldr r0, =gMonFrontPicTable - adds r4, r0 - movs r0, 0 - movs r1, 0x1 - bl sub_806F4F8 - adds r1, r0, 0 - ldrh r2, [r5, 0x2] - ldr r3, [r5, 0xC] - adds r0, r4, 0 - bl HandleLoadSpecialPokePic_2 - b _081C4768 - .pool -_081C472C: - ldrh r4, [r5, 0x2] - lsls r4, 3 - ldr r0, =gMonFrontPicTable - adds r4, r0 - movs r0, 0 - movs r1, 0x1 - bl sub_806F4F8 - adds r1, r0, 0 - ldrh r2, [r5, 0x2] - ldr r3, [r5, 0xC] - adds r0, r4, 0 - bl HandleLoadSpecialPokePic_DontHandleDeoxys - b _081C4768 - .pool -_081C4750: - ldrh r0, [r5, 0x2] - ldr r1, [r5, 0x48] - ldr r2, [r5, 0xC] - bl GetMonSpritePalStructFromOtIdPersonality - adds r4, r0, 0 - bl LoadCompressedObjectPalette - ldrh r0, [r4, 0x4] - movs r1, 0x1 - bl SetMultiuseSpriteTemplateToPokemon -_081C4768: - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - movs r0, 0xFF -_081C4770: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81C45F4 - - thumb_func_start sub_81C4778 -sub_81C4778: @ 81C4778 - push {r4,lr} - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - adds r4, r1, 0 - adds r4, 0x70 - ldrb r0, [r4, 0x4] - cmp r0, 0 - bne _081C47AE - adds r0, r1, 0 - adds r0, 0xC - bl ShouldPlayNormalMonCry - cmp r0, 0x1 - bne _081C47A4 - ldrh r0, [r4, 0x2] - movs r1, 0 - movs r2, 0 - bl PlayCry3 - b _081C47AE - .pool -_081C47A4: - ldrh r0, [r4, 0x2] - movs r1, 0 - movs r2, 0xB - bl PlayCry3 -_081C47AE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C4778 - - thumb_func_start sub_81C47B4 -sub_81C47B4: @ 81C47B4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gUnknown_0203CF1C - ldr r6, [r0] - adds r6, 0x70 - ldr r0, =gMultiuseSpriteTemplate - movs r1, 0x28 - movs r2, 0x40 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, r0, 4 - add r4, r8 - lsls r4, 2 - ldr r5, =gSprites - adds r7, r4, r5 - adds r0, r7, 0 - bl FreeSpriteOamMatrix - ldrh r0, [r6, 0x2] - movs r1, 0 - strh r0, [r7, 0x2E] - strh r1, [r7, 0x32] - adds r5, 0x1C - adds r4, r5 - ldr r0, =sub_81C4844 - str r0, [r4] - ldrb r1, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r7, 0x5] - ldrh r0, [r6, 0x2] - bl IsMonSpriteNotFlipped - lsls r0, 24 - cmp r0, 0 - bne _081C4828 - adds r0, r7, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _081C4836 - .pool -_081C4828: - adds r2, r7, 0 - adds r2, 0x3F - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_081C4836: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81C47B4 - - thumb_func_start sub_81C4844 -sub_81C4844: @ 81C4844 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r5, r0, 0 - adds r5, 0x70 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081C487E - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _081C487E - ldrh r0, [r4, 0x2E] - bl IsMonSpriteNotFlipped - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x30] - bl sub_81C4778 - ldrh r1, [r4, 0x2E] - ldrb r2, [r5, 0x4] - adds r0, r4, 0 - bl PokemonSummaryDoMonAnimation -_081C487E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4844 - - thumb_func_start sub_81C488C -sub_81C488C: @ 81C488C - ldr r1, =gUnknown_0203CF24 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_81C488C - - thumb_func_start sub_81C4898 -sub_81C4898: @ 81C4898 - push {r4,lr} - ldr r4, =gUnknown_0203CF24 - ldrb r0, [r4] - cmp r0, 0xFF - beq _081C48AA - bl DestroyTask - movs r0, 0xFF - strb r0, [r4] -_081C48AA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4898 - - thumb_func_start sub_81C48B4 -sub_81C48B4: @ 81C48B4 - push {lr} - ldr r2, =gSprites - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040d3 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =SpriteCallbackDummy - cmp r1, r0 - beq _081C48E8 - movs r0, 0x1 - b _081C48EA - .pool -_081C48E8: - movs r0, 0 -_081C48EA: - pop {r1} - bx r1 - thumb_func_end sub_81C48B4 - - thumb_func_start sub_81C48F0 -sub_81C48F0: @ 81C48F0 - push {r4-r6,lr} - ldr r6, =gSprites - ldr r5, =gUnknown_0203CF1C - ldr r0, [r5] - ldr r4, =0x000040d3 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =SpriteCallbackDummy - str r1, [r0] - bl sub_806EE98 - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - lsls r3, r0, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - orrs r3, r0 - movs r2, 0 - ldr r5, =gPlttBufferUnfaded - ldr r4, =gPlttBufferFaded -_081C494C: - adds r0, r2, r3 - lsls r0, 16 - lsrs r0, 15 - adds r1, r0, r5 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _081C494C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C48F0 - - thumb_func_start sub_81C4984 -sub_81C4984: @ 81C4984 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r1, =0x00007533 - ldr r2, =gUnknown_0861D120 - adds r0, r1, 0 - bl sub_811FF94 - adds r4, r0, 0 - ldr r6, =gUnknown_0203CF1C - ldr r0, [r6] - str r4, [r0, 0x8] - cmp r4, 0 - beq _081C49CE - adds r0, r5, 0 - movs r1, 0x8 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r1, [r6] - ldr r2, [r1, 0x8] - movs r0, 0x3C - strh r0, [r2, 0x20] - ldr r2, [r1, 0x8] - movs r0, 0x1A - strh r0, [r2, 0x22] - ldr r2, [r1, 0x8] - ldrb r1, [r2, 0x5] - subs r0, 0x27 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] -_081C49CE: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4984 - - thumb_func_start sub_81C49E0 -sub_81C49E0: @ 81C49E0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r0, [r0, 0x8] - bl DestroySprite - ldr r0, =0x00007533 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl sub_81C4984 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C49E0 - - thumb_func_start sub_81C4A08 -sub_81C4A08: @ 81C4A08 - push {r4,lr} - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl ItemIdToBallId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl LoadBallGfx - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, =gBallSpriteTemplates - adds r0, r1 - movs r1, 0x10 - movs r2, 0x88 - movs r3, 0 - bl CreateSprite - ldr r2, =gUnknown_0203CF1C - ldr r1, [r2] - ldr r3, =0x000040d4 - adds r1, r3 - strb r0, [r1] - ldr r4, =gSprites - ldr r2, [r2] - adds r2, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =SpriteCallbackDummy - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4A08 - - thumb_func_start sub_81C4A88 -sub_81C4A88: @ 81C4A88 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CF1C - ldr r0, [r5] - ldr r1, =0x000040d5 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _081C4AA6 - ldr r0, =gUnknown_0861D108 - movs r1, 0x40 - movs r2, 0x98 - movs r3, 0 - bl CreateSprite - strb r0, [r4] -_081C4AA6: - ldr r0, [r5] - adds r0, 0xC - bl sub_81B205C - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _081C4AE8 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - subs r1, r2, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - movs r0, 0x2 - movs r1, 0 - bl sub_81C4204 - b _081C4AF0 - .pool -_081C4AE8: - movs r0, 0x2 - movs r1, 0x1 - bl sub_81C4204 -_081C4AF0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C4A88 - - thumb_func_start sub_81C4AF8 -sub_81C4AF8: @ 81C4AF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, =gUnknown_0203CF1C - ldr r1, =0x000040d3 - add r1, r8 - ldr r0, [r0] - adds r7, r0, r1 - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bls _081C4BD2 - movs r0, 0 - mov r9, r0 - mov r1, r8 - cmp r1, 0x8 - bne _081C4B2A - movs r0, 0x1 - mov r9, r0 -_081C4B2A: - movs r5, 0 - ldr r6, =gSprites - mov r10, r5 -_081C4B30: - lsls r1, r5, 20 - movs r0, 0xB2 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - ldr r0, =gUnknown_0861D084 - movs r2, 0x28 - mov r3, r9 - bl CreateSprite - adds r1, r7, r5 - strb r0, [r1] - adds r4, r1, 0 - cmp r5, 0 - bne _081C4B74 - ldrb r1, [r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x4 - bl StartSpriteAnim - b _081C4B9A - .pool -_081C4B74: - cmp r5, 0x9 - bne _081C4B8A - ldrb r1, [r7, 0x9] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - bl StartSpriteAnim - b _081C4B9A -_081C4B8A: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x6 - bl StartSpriteAnim -_081C4B9A: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_81C4BE4 - str r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r8 - strh r1, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r10 - strh r1, [r0, 0x30] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _081C4B30 -_081C4BD2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4AF8 - - thumb_func_start sub_81C4BE4 -sub_81C4BE4: @ 81C4BE4 - push {lr} - adds r3, r0, 0 - adds r0, 0x2A - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _081C4C1C - ldrh r0, [r3, 0x30] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r3, 0x30] - cmp r0, 0x18 - ble _081C4C10 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - b _081C4C2A -_081C4C10: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - b _081C4C28 -_081C4C1C: - movs r0, 0 - strh r0, [r3, 0x30] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 -_081C4C28: - ands r0, r1 -_081C4C2A: - strb r0, [r2] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0x8 - bne _081C4C44 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c6 - b _081C4C4A - .pool -_081C4C44: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c7 -_081C4C4A: - adds r0, r1 - ldrb r0, [r0] - lsls r0, 4 - strh r0, [r3, 0x26] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4BE4 - - thumb_func_start sub_81C4C60 -sub_81C4C60: @ 81C4C60 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 -_081C4C68: - adds r0, r5, r4 - lsls r0, 24 - lsrs r0, 24 - bl sub_81C41C0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _081C4C68 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C4C60 - - thumb_func_start sub_81C4C84 -sub_81C4C84: @ 81C4C84 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040db - adds r5, r0, r1 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 24 - movs r4, 0 - ldr r7, =gSprites - movs r2, 0x80 - lsls r2, 19 - adds r2, r0 - mov r9, r2 - lsrs r6, r0, 24 - movs r1, 0xA0 - lsls r1, 19 - adds r1, r0 - mov r8, r1 -_081C4CB4: - cmp r4, 0 - bne _081C4CD4 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r2, r9 - b _081C4CE4 - .pool -_081C4CD4: - cmp r4, 0x9 - bne _081C4CEC - ldrb r1, [r5, 0x9] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r2, r8 -_081C4CE4: - lsrs r1, r2, 24 - bl StartSpriteAnim - b _081C4D02 -_081C4CEC: - adds r0, r5, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r1, r6, 0x6 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim -_081C4D02: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _081C4CB4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C4C84 - - thumb_func_start sub_81C4D18 -sub_81C4D18: @ 81C4D18 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CF1C - ldr r2, =0x000040d3 - adds r0, r2 - ldr r1, [r1] - adds r5, r1, r0 - movs r3, 0 - ldr r4, =gSprites - movs r7, 0x5 - negs r7, r7 - movs r6, 0 -_081C4D32: - adds r2, r5, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r6, [r0, 0x30] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x9 - bls _081C4D32 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4D18 - - thumb_func_start sub_81C4D70 -sub_81C4D70: @ 81C4D70 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldr r4, =gUnknown_0203CF28 - movs r0, 0x4 - bl Alloc - str r0, [r4] - ldr r1, [r5] - lsls r0, r1, 20 - lsrs r4, r0, 30 - cmp r4, 0 - bne _081C4DDC - lsls r0, r1, 30 - lsrs r0, 30 - movs r1, 0x8 - movs r2, 0 - bl SetBgAttribute - ldr r3, [r5] - lsls r0, r3, 30 - lsrs r0, 30 - ldr r1, =gUnknown_0861D1A0 - lsls r3, 22 - lsrs r3, 24 - str r4, [sp] - movs r2, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - ldr r1, =gUnknown_0861DEF4 - movs r2, 0x1 - str r2, [sp] - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, [r5] - lsls r1, 22 - lsrs r1, 24 - str r4, [sp] - movs r2, 0x20 - movs r3, 0x20 - bl sub_8199D3C - b _081C4E2E - .pool -_081C4DDC: - lsls r0, r1, 30 - lsrs r0, 30 - movs r1, 0x8 - movs r2, 0x2 - bl SetBgAttribute - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x9 - movs r2, 0x1 - bl SetBgAttribute - ldr r3, [r5] - lsls r0, r3, 30 - lsrs r0, 30 - ldr r1, =gUnknown_0861E208 - lsls r3, 22 - lsrs r3, 24 - movs r2, 0 - str r2, [sp] - bl decompress_and_copy_tile_data_to_vram - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - ldr r1, =gUnknown_0861EF64 - movs r4, 0x1 - str r4, [sp] - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, [r5] - lsls r1, 22 - lsrs r1, 24 - str r4, [sp] - movs r2, 0x40 - movs r3, 0x40 - bl sub_8199D3C -_081C4E2E: - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x4 - movs r2, 0x1 - bl SetBgAttribute - ldr r0, =gUnknown_0861D140 - ldr r1, =gPlttBufferUnfaded + 0xE0 - ldr r2, =0x04000018 - bl CpuSet - ldr r0, =gUnknown_0203CF28 - ldr r1, [r0] - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r1] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4D70 - - thumb_func_start sub_81C4E90 -sub_81C4E90: @ 81C4E90 - push {lr} - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _081C4EA0 - movs r0, 0x1 - b _081C4EAC -_081C4EA0: - ldr r0, =gUnknown_0203CF28 - ldr r0, [r0] - ldrb r0, [r0] - bl ShowBg - movs r0, 0 -_081C4EAC: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C4E90 - - thumb_func_start sub_81C4EB4 -sub_81C4EB4: @ 81C4EB4 - push {r4,lr} - ldr r4, =gUnknown_0203CF28 - ldr r0, [r4] - cmp r0, 0 - beq _081C4EC6 - bl Free - movs r0, 0 - str r0, [r4] -_081C4EC6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4EB4 - - thumb_func_start sub_81C4ED0 -sub_81C4ED0: @ 81C4ED0 - push {lr} - adds r1, r0, 0 - ldr r0, =gUnknown_0203CF28 - ldr r0, [r0] - ldrb r0, [r0] - lsls r1, 8 - movs r2, 0 - bl ChangeBgY - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4ED0 - - thumb_func_start sub_81C4EEC -sub_81C4EEC: @ 81C4EEC - ldr r1, =gUnknown_0203CF30 - movs r0, 0 - strh r0, [r1, 0x6] - strh r0, [r1, 0x8] - bx lr - .pool - thumb_func_end sub_81C4EEC - - thumb_func_start sub_81C4EFC -sub_81C4EFC: @ 81C4EFC - push {lr} - ldr r1, =CB2_ReturnToFieldWithOpenMenu - movs r0, 0 - bl sub_81C4F98 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4EFC - - thumb_func_start sub_81C4F10 -sub_81C4F10: @ 81C4F10 - push {lr} - ldr r1, =SetCB2ToReshowScreenAfterMenu2 - movs r0, 0x1 - bl sub_81C4F98 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4F10 - - thumb_func_start sub_81C4F24 -sub_81C4F24: @ 81C4F24 - push {lr} - bl ScriptContext2_Enable - movs r0, 0x1 - movs r1, 0 - bl FadeScreen - ldr r0, =sub_81C4F44 - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4F24 - - thumb_func_start sub_81C4F44 -sub_81C4F44: @ 81C4F44 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081C4F6E - bl overworld_free_bg_tilemaps - ldr r0, =gFieldCallback2 - ldr r1, =hm_add_c3_without_phase_2 - str r1, [r0] - ldr r1, =CB2_ReturnToField - movs r0, 0x3 - bl sub_81C4F98 - adds r0, r4, 0 - bl DestroyTask -_081C4F6E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4F44 - - thumb_func_start sub_81C4F84 -sub_81C4F84: @ 81C4F84 - push {lr} - ldr r0, =gUnknown_0203CF30 - ldr r1, [r0] - movs r0, 0x4 - bl sub_81C4F98 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4F84 - - thumb_func_start sub_81C4F98 -sub_81C4F98: @ 81C4F98 - push {r4-r6,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r6, =gUnknown_0203CF2C - ldr r0, =0x0000098c - bl AllocZeroed - str r0, [r6] - cmp r4, 0x4 - beq _081C4FB2 - ldr r0, =gUnknown_0203CF30 - strb r4, [r0, 0x4] -_081C4FB2: - cmp r5, 0 - beq _081C4FBA - ldr r0, =gUnknown_0203CF30 - str r5, [r0] -_081C4FBA: - ldr r0, [r6] - movs r1, 0 - str r1, [r0] - ldr r1, =0x00000814 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, [r6] - ldr r1, =0x00000816 - adds r0, r1 - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - ldr r0, [r6] - ldr r1, =0x00000804 - adds r0, r1 - movs r1, 0xFF - movs r2, 0xB - bl memset - ldr r0, [r6] - ldr r1, =0x0000080f - adds r0, r1 - movs r1, 0xFF - movs r2, 0x5 - bl memset - ldr r0, =sub_81C504C - bl SetMainCallback2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4F98 - - thumb_func_start sub_81C501C -sub_81C501C: @ 81C501C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_81C501C - - thumb_func_start sub_81C5038 -sub_81C5038: @ 81C5038 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81C5038 - - thumb_func_start sub_81C504C -sub_81C504C: @ 81C504C - push {lr} -_081C504E: - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C5072 - bl sub_81C5078 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C5072 - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C504E -_081C5072: - pop {r0} - bx r0 - thumb_func_end sub_81C504C - - thumb_func_start sub_81C5078 -sub_81C5078: @ 81C5078 - push {lr} - sub sp, 0x4 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x10 - bls _081C508C - b _081C51BC -_081C508C: - lsls r0, 2 - ldr r1, =_081C50A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C50A0: - .4byte _081C50E4 - .4byte _081C50EE - .4byte _081C50F4 - .4byte _081C50FA - .4byte _081C510C - .4byte _081C5112 - .4byte _081C5122 - .4byte _081C513C - .4byte _081C5148 - .4byte _081C514E - .4byte _081C515C - .4byte _081C5162 - .4byte _081C5168 - .4byte _081C516E - .4byte _081C5174 - .4byte _081C517A - .4byte _081C5188 -_081C50E4: - bl SetVBlankHBlankCallbacksToNull - bl clear_scheduled_bg_copies_to_vram - b _081C51A2 -_081C50EE: - bl ScanlineEffect_Stop - b _081C51A2 -_081C50F4: - bl FreeAllSpritePalettes - b _081C51A2 -_081C50FA: - bl ResetPaletteFade - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - b _081C51A0 - .pool -_081C510C: - bl ResetSpriteData - b _081C51A2 -_081C5112: - bl sub_81221AC - lsls r0, 24 - cmp r0, 0 - bne _081C51A2 - bl ResetTasks - b _081C51A2 -_081C5122: - bl sub_81C51DC - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000984 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081C51A2 - .pool -_081C513C: - bl sub_81C5238 - lsls r0, 24 - cmp r0, 0 - beq _081C51D4 - b _081C51A2 -_081C5148: - bl sub_81C6BD8 - b _081C51A2 -_081C514E: - bl sub_81C5924 - bl sub_81C59BC - bl sub_81C5A20 - b _081C51A2 -_081C515C: - bl sub_81C5314 - b _081C51A2 -_081C5162: - bl sub_81C56F8 - b _081C51A2 -_081C5168: - bl sub_81C6EF4 - b _081C51A2 -_081C516E: - bl sub_81C5674 - b _081C51A2 -_081C5174: - bl sub_81C700C - b _081C51A2 -_081C517A: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _081C51A2 -_081C5188: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 -_081C51A0: - strb r0, [r2, 0x8] -_081C51A2: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081C51D4 - .pool -_081C51BC: - ldr r0, =sub_81C5038 - bl SetVBlankCallback - ldr r0, =sub_81C501C - bl SetMainCallback2 - movs r0, 0x1 - b _081C51D6 - .pool -_081C51D4: - movs r0, 0 -_081C51D6: - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_81C5078 - - thumb_func_start sub_81C51DC -sub_81C51DC: @ 81C51DC - push {lr} - bl ResetVramOamAndBgCntRegs - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0861F2B4 - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - adds r1, 0x4 - movs r0, 0x2 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C51DC - thumb_func_start sub_81C5238 sub_81C5238: @ 81C5238 push {r4,lr} @@ -2001,7 +484,7 @@ sub_81C5674: @ 81C5674 ldr r0, =0x00000b5e str r0, [sp, 0x4] str r0, [sp, 0x8] - ldr r0, =gUnknown_0203CF38 + ldr r0, =gUnknown_0203CF30+8 str r0, [sp, 0xC] movs r0, 0x2 movs r1, 0xAC @@ -2604,7 +1087,7 @@ sub_81C5B4C: @ 81C5B4C cmp r0, 0 bne _081C5BBC ldrb r0, [r2] - ldr r4, =gUnknown_0203CF38 + ldr r4, =gUnknown_0203CF30+8 subs r2, r4, 0x2 adds r1, r4, 0 bl DestroyListMenuTask @@ -2706,7 +1189,7 @@ _081C5C5C: bl ListMenuHandleInputGetItemId adds r6, r0, 0 ldrb r0, [r7] - ldr r1, =gUnknown_0203CF38 + ldr r1, =gUnknown_0203CF30+8 mov r8, r1 mov r2, r8 subs r2, 0x2 @@ -3763,7 +2246,7 @@ sub_81C65CC: @ 81C65CC lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 - ldr r6, =gUnknown_0203CF38 + ldr r6, =gUnknown_0203CF30+8 subs r7, r6, 0x2 ldr r0, =gMain ldrh r1, [r0, 0x2E] @@ -4089,7 +2572,7 @@ sub_81C68B0: @ 81C68B0 movs r0, 0x5 bl PlaySE ldrb r0, [r4] - ldr r1, =gUnknown_0203CF38 + ldr r1, =gUnknown_0203CF30+8 subs r2, r1, 0x2 bl ListMenuGetScrollAndRow b _081C6940 @@ -4099,7 +2582,7 @@ _081C68F8: bl ListMenuHandleInputGetItemId adds r6, r0, 0 ldrb r0, [r4] - ldr r4, =gUnknown_0203CF38 + ldr r4, =gUnknown_0203CF30+8 subs r2, r4, 0x2 adds r1, r4, 0 bl ListMenuGetScrollAndRow @@ -4156,7 +2639,7 @@ sub_81C6964: @ 81C6964 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 - ldr r7, =gUnknown_0203CF38 + ldr r7, =gUnknown_0203CF30+8 subs r0, r7, 0x2 mov r8, r0 ldrh r0, [r0] @@ -4234,7 +2717,7 @@ sub_81C6A14: @ 81C6A14 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 - ldr r5, =gUnknown_0203CF38 + ldr r5, =gUnknown_0203CF30+8 subs r7, r5, 0x2 ldr r0, =gUnknown_0203CF2C ldr r0, [r0] diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s deleted file mode 100644 index 0c22aa6cd7..0000000000 --- a/data/pokemon_summary_screen.s +++ /dev/null @@ -1,507 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -@ 861CAAC - .include "data/text/nature_names.inc" - - .align 2 -gUnknown_0861CBB4:: @ 861CBB4 - .4byte 0x000001f0, 0x000013b9, 0x0000239a, 0x000033db - - .align 2 -gUnknown_0861CBC4:: @ 861CBC4 - .incbin "graphics/interface/unk_tilemap2.bin" - - .align 2 -gUnknown_0861CBEC:: @ 861CBEC - .4byte gUnknown_0861CBC4 - .byte 0x01, 0x00, 0x0a, 0x02, 0x00, 0x12 - - .align 2 -gUnknown_0861CBF8:: @ 861CBF8 - .4byte gUnknown_0861CBC4 - .byte 0x01, 0x00, 0x0a, 0x02, 0x00, 0x32 - - .align 2 -gUnknown_0861CC04:: @ 861CC04 - .4byte gSummaryScreenPowAcc_Tilemap - .byte 0x00 - .byte 0x00 - .byte 0x0A - .byte 0x07 - .byte 0x00 - .byte 0x2D - - .align 2 -gUnknown_0861CC10:: @ 861CC10 - .4byte gUnknown_08DC3C34 - .byte 0x00 - .byte 0x00 - .byte 0x0A - .byte 0x07 - .byte 0x00 - .byte 0x2D - - .align 2 -gUnknown_0861CC1C:: @ 861CC1C - .byte 0x00, 0x02, 0x03, 0x01, 0x04, 0x05, 0x00, 0x00 - - .align 2 -gUnknown_0861CC24:: @ 861CC24 - window_template 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x0001 - window_template 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x0017 - window_template 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x002d - window_template 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x0043 - window_template 0x00, 0x16, 0x00, 0x08, 0x02, 0x07, 0x0059 - window_template 0x00, 0x16, 0x00, 0x08, 0x02, 0x07, 0x0069 - window_template 0x00, 0x16, 0x00, 0x08, 0x02, 0x07, 0x0079 - window_template 0x00, 0x0b, 0x04, 0x00, 0x02, 0x06, 0x0089 - window_template 0x00, 0x0b, 0x04, 0x12, 0x02, 0x06, 0x0089 - window_template 0x00, 0x0b, 0x06, 0x12, 0x02, 0x06, 0x00ad - window_template 0x00, 0x0a, 0x07, 0x06, 0x06, 0x06, 0x00d1 - window_template 0x00, 0x16, 0x07, 0x05, 0x06, 0x06, 0x00f5 - window_template 0x00, 0x0a, 0x0e, 0x0b, 0x04, 0x06, 0x0113 - window_template 0x00, 0x00, 0x12, 0x06, 0x02, 0x06, 0x013f - window_template 0x00, 0x01, 0x0f, 0x09, 0x04, 0x06, 0x014b - window_template 0x00, 0x01, 0x0f, 0x05, 0x04, 0x06, 0x016f - window_template 0x00, 0x16, 0x04, 0x00, 0x02, 0x06, 0x0183 - window_template 0x00, 0x01, 0x02, 0x04, 0x02, 0x07, 0x0183 - window_template 0x00, 0x01, 0x0c, 0x09, 0x02, 0x06, 0x018b - window_template 0x00, 0x01, 0x0e, 0x09, 0x04, 0x06, 0x019d - null_window_template - - .align 2 -gUnknown_0861CCCC:: @ 861CCCC - window_template 0x00, 0x0b, 0x04, 0x0b, 0x02, 0x06, 0x01c1 - window_template 0x00, 0x16, 0x04, 0x07, 0x02, 0x06, 0x01d7 - window_template 0x00, 0x0b, 0x09, 0x12, 0x04, 0x06, 0x01e5 - window_template 0x00, 0x0b, 0x0e, 0x12, 0x06, 0x06, 0x022d - - .align 2 -gUnknown_0861CCEC:: @ 861CCEC - window_template 0x00, 0x0a, 0x04, 0x0a, 0x02, 0x06, 0x01c1 - window_template 0x00, 0x14, 0x04, 0x0a, 0x02, 0x06, 0x01d5 - window_template 0x00, 0x10, 0x07, 0x06, 0x06, 0x06, 0x01e9 - window_template 0x00, 0x1b, 0x07, 0x03, 0x06, 0x06, 0x020d - window_template 0x00, 0x18, 0x0e, 0x06, 0x04, 0x06, 0x021f - - .align 2 -gUnknown_0861CD14:: @ 861CD14 - window_template 0x00, 0x0f, 0x04, 0x09, 0x0a, 0x06, 0x01c1 - window_template 0x00, 0x18, 0x04, 0x06, 0x0a, 0x08, 0x021b - window_template 0x00, 0x0a, 0x0f, 0x14, 0x04, 0x06, 0x0257 - -gUnknown_0861CD2C:: @ 861CD2C - .byte 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x00, 0x05, 0x06, 0x00, 0x07, 0x08, 0x00, 0x09, 0x0a, 0x00, 0x0b, 0x0c, 0x00, 0x0d, 0x0e, 0x00, 0x07, 0x08, 0x0d, 0x0f, 0x0e, 0x00, 0x01, 0x02, 0x00, 0x03 - .byte 0x04, 0x00, 0x05, 0x06, 0x00, 0x07, 0x08 - -gUnknown_0861CD53:: @ 861CD53 - .incbin "graphics/interface/summary_a_button.4bpp" - -gUnknown_0861CDD3:: @ 861CDD3 - .incbin "graphics/interface/summary_b_button.4bpp" - - .align 2 -gUnknown_0861CE54:: @ 861CE54 - .4byte sub_81C2E00 - .4byte sub_81C3530 - .4byte sub_81C3984 - .4byte sub_81C3D08 - - .align 2 -gUnknown_0861CE64:: @ 861CE64 - .4byte sub_81C2E40 - .4byte sub_81C3554 - .4byte sub_81C39F0 - .4byte sub_81C3D54 - -gUnknown_0861CE74:: @ 861CE74 - .string "{COLOR LIGHT_RED}{SHADOW GREEN}$" - -gUnknown_0861CE7B:: @ 861CE7B - .string "{COLOR WHITE}{SHADOW DARK_GREY}$" - -gUnknown_0861CE82:: @ 861CE82 - .string "{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n" - .string "{SPECIAL_F7 0x02}\n" - .string "{SPECIAL_F7 0x03}$" - -gUnknown_0861CE8E:: @ 861CE8E - .string "{SPECIAL_F7 0x00}\n" - .string "{SPECIAL_F7 0x01}\n" - .string "{SPECIAL_F7 0x02}$" - -gUnknown_0861CE97:: @ 861CE97 - .string "{PP}{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}$" - - .align 2 -gOamData_861CEA0:: @ 861CEA0 - .2byte 0x4000, 0x8000, 0x0400, 0x0000 - - .align 2 -gSpriteAnim_861CEA8:: @ 861CEA8 - .2byte 0x0000, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CEB0:: @ 861CEB0 - .2byte 0x0008, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CEB8:: @ 861CEB8 - .2byte 0x0010, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CEC0:: @ 861CEC0 - .2byte 0x0018, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CEC8:: @ 861CEC8 - .2byte 0x0020, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CED0:: @ 861CED0 - .2byte 0x0028, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CED8:: @ 861CED8 - .2byte 0x0030, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CEE0:: @ 861CEE0 - .2byte 0x0038, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CEE8:: @ 861CEE8 - .2byte 0x0040, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CEF0:: @ 861CEF0 - .2byte 0x0048, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CEF8:: @ 861CEF8 - .2byte 0x0050, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CF00:: @ 861CF00 - .2byte 0x0058, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CF08:: @ 861CF08 - .2byte 0x0060, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CF10:: @ 861CF10 - .2byte 0x0068, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CF18:: @ 861CF18 - .2byte 0x0070, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CF20:: @ 861CF20 - .2byte 0x0078, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CF28:: @ 861CF28 - .2byte 0x0080, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CF30:: @ 861CF30 - .2byte 0x0088, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CF38:: @ 861CF38 - .2byte 0x0090, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CF40:: @ 861CF40 - .2byte 0x0098, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CF48:: @ 861CF48 - .2byte 0x00a0, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CF50:: @ 861CF50 - .2byte 0x00a8, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861CF58:: @ 861CF58 - .2byte 0x00b0, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnimTable_861CF60:: @ 861CF60 - .4byte gSpriteAnim_861CEA8 - .4byte gSpriteAnim_861CEB0 - .4byte gSpriteAnim_861CEB8 - .4byte gSpriteAnim_861CEC0 - .4byte gSpriteAnim_861CEC8 - .4byte gSpriteAnim_861CED0 - .4byte gSpriteAnim_861CED8 - .4byte gSpriteAnim_861CEE0 - .4byte gSpriteAnim_861CEE8 - .4byte gSpriteAnim_861CEF0 - .4byte gSpriteAnim_861CEF8 - .4byte gSpriteAnim_861CF00 - .4byte gSpriteAnim_861CF08 - .4byte gSpriteAnim_861CF10 - .4byte gSpriteAnim_861CF18 - .4byte gSpriteAnim_861CF20 - .4byte gSpriteAnim_861CF28 - .4byte gSpriteAnim_861CF30 - .4byte gSpriteAnim_861CF38 - .4byte gSpriteAnim_861CF40 - .4byte gSpriteAnim_861CF48 - .4byte gSpriteAnim_861CF50 - .4byte gSpriteAnim_861CF58 - - .align 2 -gUnknown_0861CFBC:: @ 861CFBC - obj_tiles gMoveTypes_Gfx, 0x1700, 0x7532 - - .align 2 -gUnknown_0861CFC4:: @ 861CFC4 - spr_template 0x7532, 0x7532, gOamData_861CEA0, gSpriteAnimTable_861CF60, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_0861CFDC:: @ 861CFDC - .byte 0x0d, 0x0d, 0x0e, 0x0e, 0x0d, 0x0d, 0x0f, 0x0e, 0x0d, 0x0f, 0x0d, 0x0e, 0x0f, 0x0d, 0x0e, 0x0e, 0x0f, 0x0d, 0x0d, 0x0e, 0x0e, 0x0f, 0x0d, 0x00 - - .align 2 -gOamData_861CFF4:: @ 861CFF4 - .2byte 0x0000, 0x4000, 0x0400, 0x0000 - - .align 2 -gSpriteAnim_861CFFC:: @ 861CFFC - .2byte 0x0000, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D004:: @ 861D004 - .2byte 0x0004, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D00C:: @ 861D00C - .2byte 0x0008, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D014:: @ 861D014 - .2byte 0x000c, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D01C:: @ 861D01C - .2byte 0x0010, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D024:: @ 861D024 - .2byte 0x0010, 0x0040, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D02C:: @ 861D02C - .2byte 0x0014, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D034:: @ 861D034 - .2byte 0x0018, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D03C:: @ 861D03C - .2byte 0x0018, 0x0040, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D044:: @ 861D044 - .2byte 0x001c, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnimTable_861D04C:: @ 861D04C - .4byte gSpriteAnim_861CFFC - .4byte gSpriteAnim_861D004 - .4byte gSpriteAnim_861D00C - .4byte gSpriteAnim_861D014 - .4byte gSpriteAnim_861D01C - .4byte gSpriteAnim_861D024 - .4byte gSpriteAnim_861D02C - .4byte gSpriteAnim_861D034 - .4byte gSpriteAnim_861D03C - .4byte gSpriteAnim_861D044 - - .align 2 -gUnknown_0861D074:: @ 861D074 - obj_tiles gUnknown_08D97BEC, 0x0400, 0x7530 - - .align 2 -gUnknown_0861D07C:: @ 861D07C - obj_pal gUnknown_08D97CF4, 0x7530 - - .align 2 -gUnknown_0861D084:: @ 861D084 - spr_template 0x7530, 0x7530, gOamData_861CFF4, gSpriteAnimTable_861D04C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gOamData_861D09C:: @ 861D09C - .2byte 0x4000, 0x4000, 0x0c00, 0x0000 - - .align 2 -gSpriteAnim_861D0A4:: @ 861D0A4 - .2byte 0x0000, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D0AC:: @ 861D0AC - .2byte 0x0004, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D0B4:: @ 861D0B4 - .2byte 0x0008, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D0BC:: @ 861D0BC - .2byte 0x000c, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D0C4:: @ 861D0C4 - .2byte 0x0010, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D0CC:: @ 861D0CC - .2byte 0x0014, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_861D0D4:: @ 861D0D4 - .2byte 0x0018, 0x0000, 0xffff, 0x0000 - - .align 2 -gSpriteAnimTable_861D0DC:: @ 861D0DC - .4byte gSpriteAnim_861D0A4 - .4byte gSpriteAnim_861D0AC - .4byte gSpriteAnim_861D0B4 - .4byte gSpriteAnim_861D0BC - .4byte gSpriteAnim_861D0C4 - .4byte gSpriteAnim_861D0CC - .4byte gSpriteAnim_861D0D4 - - .align 2 -gUnknown_0861D0F8:: @ 861D0F8 - obj_tiles gStatusGfx_Icons, 0x0380, 0x7531 - - .align 2 -gUnknown_0861D100:: @ 861D100 - obj_pal gStatusPal_Icons, 0x7531 - - .align 2 -gUnknown_0861D108:: @ 861D108 - spr_template 0x7531, 0x7531, gOamData_861D09C, gSpriteAnimTable_861D0DC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_0861D120:: @ 861D120 - .incbin "graphics/interface/summary_markings.gbapal" - - .align 2 -gUnknown_0861D140:: @ 861D140 - .incbin "graphics/interface/region_map.gbapal" - - .align 2 -gUnknown_0861D1A0:: @ 861D1A0 - .incbin "graphics/interface/region_map.8bpp.lz" - - .align 2 -gUnknown_0861DEF4:: @ 861DEF4 - .incbin "graphics/interface/region_map.bin.lz" - - .align 2 -gUnknown_0861E208:: @ 861E208 - .incbin "graphics/interface/region_map_affine.8bpp.lz" - - .align 2 -gUnknown_0861EF64:: @ 861EF64 - .incbin "graphics/interface/region_map_affine.bin.lz" - - .align 2 -gUnknown_0861F2B4:: @ 861F2B4 - .4byte 0x000011f0, 0x000001e1, 0x000021de - - .align 2 -gUnknown_0861F2C0:: @ 861F2C0 - .4byte 0x00000000, sub_81C5460, sub_81C5518, 0x00000000, 0x00080000, 0x07003021 - - .align 2 -gUnknown_0861F2D8:: @ 861F2D8 - .4byte gMenuText_Use, sub_81C61E0 - .4byte gMenuText_Toss, sub_81C62C4 - .4byte gMenuText_Give, sub_81C6648 - .4byte gText_Cancel2, sub_81C6258 - .4byte gMenuText_Use, sub_81C679C - .4byte gText_EmptyString2, NULL - -gUnknown_0861F308:: @ 861F308 - .byte 0x00, 0x02, 0x01, 0x03 - -gUnknown_0861F30C:: @ 861F30C - .byte 0x01, 0x03 - -gUnknown_0861F30E:: @ 861F30E - .byte 0x04, 0x03 - -gUnknown_0861F310:: @ 861F310 - .byte 0x03, 0x00, 0x00, 0x00 - -gUnknown_0861F314:: @ 861F314 - .4byte sub_81C654C - .4byte sub_81C63D0 - -gUnknown_0861F31C:: @ 861F31C - .byte 0x00, 0x02, 0x03, 0x00, 0x03, 0x01, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_0861F328:: @ 861F328 - window_template 0x00, 0x0e, 0x02, 0x0f, 0x10, 0x0f, 0x001e - window_template 0x00, 0x00, 0x0d, 0x0e, 0x06, 0x0f, 0x010e - window_template 0x01, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x0162 - window_template 0x01, 0x18, 0x11, 0x05, 0x02, 0x0f, 0x01ce - null_window_template - - .align 2 -gUnknown_0861F350:: @ 861F350 - window_template 0x01, 0x16, 0x11, 0x07, 0x02, 0x0f, 0x01d8 - window_template 0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01d8 - window_template 0x01, 0x0f, 0x0f, 0x0e, 0x04, 0x0f, 0x01d8 - window_template 0x01, 0x0f, 0x0d, 0x0e, 0x06, 0x0f, 0x01d8 - - .align 2 -gUnknown_0861F370:: @ 861F370 - window_template 0x01, 0x18, 0x0f, 0x05, 0x04, 0x0f, 0x01d8 - - .align 2 -gOamData_861F378:: @ 861F378 - .2byte 0x0100, 0xc000, 0x0400, 0x0000 - - .align 2 -gSpriteAnim_861F380:: @ 861F380 - .2byte 0x0000, 0x0004, 0xffff, 0x0000 - - .align 2 -gSpriteAnimTable_861F388:: @ 861F388 - .4byte gSpriteAnim_861F380 - - .align 2 -gSpriteAffineAnim_861F38C:: @ 861F38C - .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gSpriteAffineAnim_861F39C:: @ 861F39C - .2byte 0x0000, 0x0000, 0x02fe, 0x0000, 0x0000, 0x0000, 0x0402, 0x0000, 0x0000, 0x0000, 0x04fe, 0x0000, 0x0000, 0x0000, 0x0202, 0x0000 - .2byte 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gSpriteAffineAnimTable_861F3C4:: @ 861F3C4 - .4byte gSpriteAffineAnim_861F38C - .4byte gSpriteAffineAnim_861F39C - - .align 2 -gUnknown_0861F3CC:: @ 861F3CC - obj_tiles gBattleFrontierGfx_PyramidBag, 0x0800, 0x1024 - - .align 2 -gUnknown_0861F3D4:: @ 861F3D4 - spr_template 0x1024, 0x1024, gOamData_861F378, gSpriteAnimTable_861F388, NULL, gSpriteAffineAnimTable_861F3C4, SpriteCallbackDummy - diff --git a/data/unk_pokedex_area_screen_helper.s b/data/unk_pokedex_area_screen_helper.s new file mode 100644 index 0000000000..2f3881446f --- /dev/null +++ b/data/unk_pokedex_area_screen_helper.s @@ -0,0 +1,110 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 +gUnknown_0861D1A0:: @ 861D1A0 + .incbin "graphics/interface/region_map.8bpp.lz" + + .align 2 +gUnknown_0861DEF4:: @ 861DEF4 + .incbin "graphics/interface/region_map.bin.lz" + + .align 2 +gUnknown_0861E208:: @ 861E208 + .incbin "graphics/interface/region_map_affine.8bpp.lz" + + .align 2 +gUnknown_0861EF64:: @ 861EF64 + .incbin "graphics/interface/region_map_affine.bin.lz" + + .align 2 +gUnknown_0861F2B4:: @ 861F2B4 + .4byte 0x000011f0, 0x000001e1, 0x000021de + + .align 2 +gUnknown_0861F2C0:: @ 861F2C0 + .4byte 0x00000000, sub_81C5460, sub_81C5518, 0x00000000, 0x00080000, 0x07003021 + + .align 2 +gUnknown_0861F2D8:: @ 861F2D8 + .4byte gMenuText_Use, sub_81C61E0 + .4byte gMenuText_Toss, sub_81C62C4 + .4byte gMenuText_Give, sub_81C6648 + .4byte gText_Cancel2, sub_81C6258 + .4byte gMenuText_Use, sub_81C679C + .4byte gText_EmptyString2, NULL + +gUnknown_0861F308:: @ 861F308 + .byte 0x00, 0x02, 0x01, 0x03 + +gUnknown_0861F30C:: @ 861F30C + .byte 0x01, 0x03 + +gUnknown_0861F30E:: @ 861F30E + .byte 0x04, 0x03 + +gUnknown_0861F310:: @ 861F310 + .byte 0x03, 0x00, 0x00, 0x00 + +gUnknown_0861F314:: @ 861F314 + .4byte sub_81C654C + .4byte sub_81C63D0 + +gUnknown_0861F31C:: @ 861F31C + .byte 0x00, 0x02, 0x03, 0x00, 0x03, 0x01, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_0861F328:: @ 861F328 + window_template 0x00, 0x0e, 0x02, 0x0f, 0x10, 0x0f, 0x001e + window_template 0x00, 0x00, 0x0d, 0x0e, 0x06, 0x0f, 0x010e + window_template 0x01, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x0162 + window_template 0x01, 0x18, 0x11, 0x05, 0x02, 0x0f, 0x01ce + null_window_template + + .align 2 +gUnknown_0861F350:: @ 861F350 + window_template 0x01, 0x16, 0x11, 0x07, 0x02, 0x0f, 0x01d8 + window_template 0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01d8 + window_template 0x01, 0x0f, 0x0f, 0x0e, 0x04, 0x0f, 0x01d8 + window_template 0x01, 0x0f, 0x0d, 0x0e, 0x06, 0x0f, 0x01d8 + + .align 2 +gUnknown_0861F370:: @ 861F370 + window_template 0x01, 0x18, 0x0f, 0x05, 0x04, 0x0f, 0x01d8 + + .align 2 +gOamData_861F378:: @ 861F378 + .2byte 0x0100, 0xc000, 0x0400, 0x0000 + + .align 2 +gSpriteAnim_861F380:: @ 861F380 + .2byte 0x0000, 0x0004, 0xffff, 0x0000 + + .align 2 +gSpriteAnimTable_861F388:: @ 861F388 + .4byte gSpriteAnim_861F380 + + .align 2 +gSpriteAffineAnim_861F38C:: @ 861F38C + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gSpriteAffineAnim_861F39C:: @ 861F39C + .2byte 0x0000, 0x0000, 0x02fe, 0x0000, 0x0000, 0x0000, 0x0402, 0x0000, 0x0000, 0x0000, 0x04fe, 0x0000, 0x0000, 0x0000, 0x0202, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gSpriteAffineAnimTable_861F3C4:: @ 861F3C4 + .4byte gSpriteAffineAnim_861F38C + .4byte gSpriteAffineAnim_861F39C + + .align 2 +gUnknown_0861F3CC:: @ 861F3CC + obj_tiles gBattleFrontierGfx_PyramidBag, 0x0800, 0x1024 + + .align 2 +gUnknown_0861F3D4:: @ 861F3D4 + spr_template 0x1024, 0x1024, gOamData_861F378, gSpriteAnimTable_861F388, NULL, gSpriteAffineAnimTable_861F3C4, SpriteCallbackDummy + diff --git a/include/battle_controllers.h b/include/battle_controllers.h index ff5a629af5..b449bb501d 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -1,6 +1,8 @@ #ifndef GUARD_BATTLE_CONTROLLERS_H #define GUARD_BATTLE_CONTROLLERS_H +#include "battle.h" + enum { REQUEST_ALL_BATTLE, diff --git a/include/battle_frontier_2.h b/include/battle_frontier_2.h index d410749b9a..09e9740685 100644 --- a/include/battle_frontier_2.h +++ b/include/battle_frontier_2.h @@ -11,5 +11,6 @@ void sub_81AA078(u16*, u8); void sub_81A4C30(void); void sub_819A4F8(void); void sub_819DC00(void); +bool8 sub_81A6BF4(void); #endif // GUARD_BATTLE_FRONTIER_2_H diff --git a/include/battle_tent.h b/include/battle_tent.h new file mode 100644 index 0000000000..a894d4cfb2 --- /dev/null +++ b/include/battle_tent.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BATTLE_TENT_H +#define GUARD_BATTLE_TENT_H + +bool8 sub_81B9E94(void); + +#endif //GUARD_BATTLE_TENT_H diff --git a/include/contest_effect.h b/include/contest_effect.h index 3484ca5df8..c8f5e389ac 100644 --- a/include/contest_effect.h +++ b/include/contest_effect.h @@ -18,5 +18,6 @@ struct ContestEffect extern const struct ContestMove gContestMoves[]; extern struct ContestEffect gContestEffects[]; +extern const u8 *const gContestEffectDescriptionPointers[]; #endif //GUARD_CONTEST_EFFECT_H diff --git a/include/graphics.h b/include/graphics.h index 2dc5e99bf4..a5acca6253 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -3382,4 +3382,24 @@ extern const u8 gCreditsCopyrightEnd_Gfx[]; extern const u8 gPokenavConditionMarker_Gfx[]; extern const u16 gPokenavConditionMarker_Pal[]; +extern const u8 gUnknown_08D9862C[]; +extern const u8 gUnknown_08D98CC8[]; +extern const u8 gUnknown_08D987FC[]; +extern const u8 gUnknown_08D9898C[]; +extern const u8 gUnknown_08D98B28[]; +extern const u8 gUnknown_08D9853C[]; +extern const u8 gUnknown_08D85620[]; +extern const u16 gSummaryScreenWindow_Tilemap[]; +extern const u16 gMoveTypes_Pal[]; +extern const u8 gUnknown_08D97D0C[]; + +extern const u16 gSummaryScreenPowAcc_Tilemap[]; +extern const u16 gUnknown_08DC3C34[]; + +extern const u8 gMoveTypes_Gfx[]; +extern const u8 gUnknown_08D97BEC[]; +extern const u8 gUnknown_08D97CF4[]; +extern const u8 gStatusGfx_Icons[]; +extern const u8 gStatusPal_Icons[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/m4a.h b/include/m4a.h index a1f413cf5f..5953794958 100644 --- a/include/m4a.h +++ b/include/m4a.h @@ -17,6 +17,7 @@ void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed); void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed); void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo); +extern struct MusicPlayerInfo gMPlayInfo_BGM; extern struct MusicPlayerInfo gMPlayInfo_SE1; extern struct MusicPlayerInfo gMPlayInfo_SE2; extern struct MusicPlayerInfo gMPlayInfo_SE3; diff --git a/include/menu.h b/include/menu.h index 5dfd99c64e..054d8cb341 100644 --- a/include/menu.h +++ b/include/menu.h @@ -85,5 +85,7 @@ void RemoveMapNamePopUpWindow(void); u8 GetMapNamePopUpWindowId(void); u8 AddMapNamePopUpWindow(void); void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing); +void sub_8199C30(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette); +void sub_8199D3C(void *ptr, int delta, int width, int height, bool32 is8BPP); #endif // GUARD_MENU_H diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 387a89fdd6..ee8501d189 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -2,6 +2,7 @@ #define GUARD_MENU_HELPERS_H #include "task.h" +#include "window.h" // Exported type declarations diff --git a/include/mon_markings.h b/include/mon_markings.h index 852e8b4eb6..22c3f14a4f 100644 --- a/include/mon_markings.h +++ b/include/mon_markings.h @@ -21,4 +21,6 @@ struct PokemonMarkMenu /*0x10B4*/ u8 tileLoadState; }; // 10b8 +struct Sprite *sub_811FF94(u16 tileTag, u16 paletteTag, const u16 *palette); + #endif //POKEEMERALD_MON_MARKINGS_H diff --git a/include/party_menu.h b/include/party_menu.h index cb2c388911..02e4812002 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -57,5 +57,8 @@ u8 sub_81B1360(void); void sub_81B8904(u8 arg0, void (*callback)(void)); void OpenPartyMenuInBattle(u8 caseId); u16 ItemIdToBattleMoveId(u16 itemId); +u8 sub_81B205C(struct Pokemon* a); +u8 sub_81B6D14(u16 a); +bool8 hm_add_c3_without_phase_2(void); #endif // GUARD_PARTY_MENU_H diff --git a/include/pokeball.h b/include/pokeball.h index 84178b5b22..30a1d8b11e 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -18,6 +18,8 @@ enum POKEBALL_COUNT }; +extern const struct SpriteTemplate gBallSpriteTemplates[]; + #define POKEBALL_PLAYER_SENDOUT 0xFF #define POKEBALL_OPPONENT_SENDOUT 0xFE diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 03f4e0da6d..a73958d904 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -83,5 +83,6 @@ void CompactPartySlots(void); u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request); bool8 CheckFreePokemonStorageSpace(void); u8 StorageGetCurrentBox(void); +u8 sub_80D214C(struct BoxPokemon* a, u8 b, u8 c, u8 d); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 75caa9a3a0..0580e793c6 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -2,6 +2,6 @@ #define GUARD_POKEMON_SUMMARY_SCREEN_H void sub_81C4F98(u8, void(*)(void)); -void ShowSelectMovePokemonSummaryScreen(void *a, u8 b, u8 c, void *d, u16 e); +void ShowSelectMovePokemonSummaryScreen(struct Pokemon *a, u8 b, u8 c, void *d, u16 e); #endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/include/region_map.h b/include/region_map.h index af331ad816..6339f7a88e 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -94,5 +94,6 @@ void CreateRegionMapCursor(u16 tileTag, u16 paletteTag); u8 *GetMapName(u8 *, u16, u16); bool32 sub_8124668(u8 mapSecId); u8 *sub_81245DC(u8 *dest, u16 mapSecId); +u8 *sub_8124610(u8 *dest, u16 mapSecId); #endif //GUARD_REGION_MAP_H diff --git a/include/strings.h b/include/strings.h index f8b216a39d..f88425b26d 100644 --- a/include/strings.h +++ b/include/strings.h @@ -776,4 +776,52 @@ extern const u8 gText_TeachWhichMoveToPkmn[]; extern const u8 gText_GiveUpTeachingNewMove[]; extern const u8 gText_TeachX[]; +extern const u8 gText_LevelSymbol[]; +extern const u8 gText_PkmnInfo[]; +extern const u8 gText_PkmnSkills[]; +extern const u8 gText_BattleMoves[]; +extern const u8 gText_ContestMoves[]; +extern const u8 gText_HMMovesCantBeForgotten2[]; +extern const u8 gText_Info[]; +extern const u8 gText_Switch[]; +extern const u8 gText_RentalPkmn[]; +extern const u8 gText_TypeSlash[]; +extern const u8 gText_HP4[]; +extern const u8 gText_Attack3[]; +extern const u8 gText_Defense3[]; +extern const u8 gText_SpAtk4[]; +extern const u8 gText_SpDef4[]; +extern const u8 gText_Speed2[]; +extern const u8 gText_ExpPoints[]; +extern const u8 gText_NextLv[]; +extern const u8 gText_Status[]; +extern const u8 gText_Power[]; +extern const u8 gText_Accuracy2[]; +extern const u8 gText_Appeal[]; +extern const u8 gText_Jam[]; +extern const u8 gText_OTSlash[]; +extern const u8 gText_UnkCtrlF907F908[]; +extern const u8 gText_XNature[]; +extern const u8 gText_XNatureHatchedAtYZ[]; +extern const u8 gText_XNatureHatchedSomewhereAt[]; +extern const u8 gText_XNatureMetAtYZ[]; +extern const u8 gText_XNatureMetSomewhereAt[]; +extern const u8 gText_XNatureFatefulEncounter[]; +extern const u8 gText_XNatureProbablyMetAt[]; +extern const u8 gText_XNatureObtainedInTrade[]; +extern const u8 gText_EmptyString5[]; +extern const u8 gText_EggWillTakeALongTime[]; +extern const u8 gText_EggAboutToHatch[]; +extern const u8 gText_EggWillHatchSoon[]; +extern const u8 gText_EggWillTakeSomeTime[]; +extern const u8 gText_PeculiarEggNicePlace[]; +extern const u8 gText_PeculiarEggTrade[]; +extern const u8 gText_EggFromTraveler[]; +extern const u8 gText_EggFromHotSprings[]; +extern const u8 gText_OddEggFoundByCouple[]; +extern const u8 gText_None[]; +extern const u8 gText_RibbonsVar1[]; +extern const u8 gText_OneDash[]; +extern const u8 gText_TwoDashes[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 5f9d356173..462af2946c 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -262,7 +262,9 @@ SECTIONS { asm/fossil_specials.o(.text); src/berry_fix_program.o(.text); src/pokemon_summary_screen.o(.text); - asm/pokemon_summary_screen.o(.text); + src/unk_pokedex_area_screen_helper.o(.text); + src/battle_pyramid.o(.text); + asm/battle_pyramid.o(.text); asm/pokenav.o(.text); src/match_call.o(.text); asm/pokenav.o(.text.after.match.call); @@ -537,7 +539,8 @@ SECTIONS { src/fldeff_groundshake.o(.rodata); src/berry_fix_program.o(.rodata); src/pokemon_summary_screen.o(.rodata); - data/pokemon_summary_screen.o(.rodata); + src/unk_pokedex_area_screen_helper.o(.rodata); + data/unk_pokedex_area_screen_helper.o(.rodata); data/pokenav.o(.rodata); src/match_call.o(.rodata); data/pokenav.o(.rodata.after.match.call); diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c new file mode 100644 index 0000000000..f9cc48a9a8 --- /dev/null +++ b/src/battle_pyramid.c @@ -0,0 +1,248 @@ +#include "global.h" +#include "main.h" +#include "battle_controllers.h" +#include "bg.h" +#include "field_effect.h" +#include "field_weather.h" +#include "gpu_regs.h" +#include "malloc.h" +#include "menu.h" +#include "menu_helpers.h" +#include "overworld.h" +#include "palette.h" +#include "party_menu.h" +#include "scanline_effect.h" +#include "script.h" +#include "task.h" +#include "constants/rgb.h" + +EWRAM_DATA struct +{ + u32 unk0; + u8 filler4[0x804 - 0x4]; + u8 unk804[11]; + u8 unk80F[5]; + u8 unk814; + u8 filler815; + s8 unk816; + u8 filler817[0x984 - 0x817]; + u16 unk984; + u8 filler986[0x98C - 0x986]; +} *gUnknown_0203CF2C = NULL; +EWRAM_DATA struct +{ + void (*callback)(void); + u8 unk4; + u16 unk6; + u16 unk8; +} gUnknown_0203CF30 = {0}; + +extern const struct BgTemplate gUnknown_0861F2B4[3]; + +void sub_81C4F98(u8 a0, void (*callback)(void)); +void sub_81C4F44(u8 taskId); +void sub_81C504C(void); +bool8 sub_81C5078(void); +void sub_81C51DC(void); +bool8 sub_81C5238(void); +void sub_81C5314(void); +void sub_81C5674(void); +void sub_81C56F8(void); +void sub_81C5924(void); +void sub_81C59BC(void); +void sub_81C5A20(void); +void sub_81C6BD8(void); +void sub_81C6EF4(void); +void sub_81C700C(void); + +void sub_81C4EEC(void) +{ + gUnknown_0203CF30.unk6 = 0; + gUnknown_0203CF30.unk8 = 0; +} + +void sub_81C4EFC(void) +{ + sub_81C4F98(0, CB2_ReturnToFieldWithOpenMenu); +} + +void sub_81C4F10(void) +{ + sub_81C4F98(1, SetCB2ToReshowScreenAfterMenu2); +} + +void sub_81C4F24(void) +{ + ScriptContext2_Enable(); + FadeScreen(1, 0); + CreateTask(sub_81C4F44, 10); +} + +void sub_81C4F44(u8 taskId) +{ + if (!gPaletteFade.active) + { + overworld_free_bg_tilemaps(); + gFieldCallback2 = hm_add_c3_without_phase_2; + sub_81C4F98(3, CB2_ReturnToField); + DestroyTask(taskId); + } +} + +void sub_81C4F84(void) +{ + sub_81C4F98(4, gUnknown_0203CF30.callback); +} + +void sub_81C4F98(u8 a0, void (*callback)(void)) +{ + gUnknown_0203CF2C = AllocZeroed(sizeof(*gUnknown_0203CF2C)); + + if (a0 != 4) + { + gUnknown_0203CF30.unk4 = a0; + } + + if (callback != NULL) + { + gUnknown_0203CF30.callback = callback; + } + + gUnknown_0203CF2C->unk0 = 0; + gUnknown_0203CF2C->unk814 = -1; + gUnknown_0203CF2C->unk816 = -1; + + memset(gUnknown_0203CF2C->unk804, 0xFF, sizeof(gUnknown_0203CF2C->unk804)); + memset(gUnknown_0203CF2C->unk80F, 0xFF, sizeof(gUnknown_0203CF2C->unk80F)); + + SetMainCallback2(sub_81C504C); +} + +void sub_81C501C(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +void sub_81C5038(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_81C504C(void) +{ + while (sub_81221EC() != TRUE && sub_81C5078() != TRUE && sub_81221AC() != TRUE); +} + +bool8 sub_81C5078(void) +{ + switch (gMain.state) + { + case 0: + SetVBlankHBlankCallbacksToNull(); + clear_scheduled_bg_copies_to_vram(); + gMain.state++; + break; + case 1: + ScanlineEffect_Stop(); + gMain.state++; + break; + case 2: + FreeAllSpritePalettes(); + gMain.state++; + break; + case 3: + ResetPaletteFade(); + gPaletteFade.bufferTransferDisabled = TRUE; + gMain.state++; + break; + case 4: + ResetSpriteData(); + gMain.state++; + break; + case 5: + if (!sub_81221AC()) + { + ResetTasks(); + } + gMain.state++; + break; + case 6: + sub_81C51DC(); + gUnknown_0203CF2C->unk984 = 0; + gMain.state++; + break; + case 7: + if (sub_81C5238()) + { + gMain.state++; + } + break; + case 8: + sub_81C6BD8(); + gMain.state++; + break; + case 9: + sub_81C5924(); + sub_81C59BC(); + sub_81C5A20(); + gMain.state++; + break; + case 10: + sub_81C5314(); + gMain.state++; + break; + case 11: + sub_81C56F8(); + gMain.state++; + break; + case 12: + sub_81C6EF4(); + gMain.state++; + break; + case 13: + sub_81C5674(); + gMain.state++; + break; + case 14: + sub_81C700C(); + gMain.state++; + break; + case 15: + BlendPalettes(0xFFFFFFFF, 0x10, 0); + gMain.state++; + break; + case 16: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + gPaletteFade.bufferTransferDisabled = FALSE; + gMain.state++; + break; + default: + SetVBlankCallback(sub_81C5038); + SetMainCallback2(sub_81C501C); + return TRUE; + } + return FALSE; +} + +void sub_81C51DC(void) +{ + ResetVramOamAndBgCntRegs(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_0861F2B4, ARRAY_COUNT(gUnknown_0861F2B4)); + SetBgTilemapBuffer(2, gUnknown_0203CF2C->filler4); + ResetAllBgsCoordinates(); + schedule_bg_copy_tilemap_to_vram(2); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | + DISPCNT_OBJ_1D_MAP | + DISPCNT_OBJ_ON); + ShowBg(0); + ShowBg(1); + ShowBg(2); + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} diff --git a/src/data/text/nature_names.h b/src/data/text/nature_names.h new file mode 100644 index 0000000000..d0d217d9bc --- /dev/null +++ b/src/data/text/nature_names.h @@ -0,0 +1,54 @@ +static const u8 sHardyNatureName[] = _("HARDY"); +static const u8 sLonelyNatureName[] = _("LONELY"); +static const u8 sBraveNatureName[] = _("BRAVE"); +static const u8 sAdamantNatureName[] = _("ADAMANT"); +static const u8 sNaughtyNatureName[] = _("NAUGHTY"); +static const u8 sBoldNatureName[] = _("BOLD"); +static const u8 sDocileNatureName[] = _("DOCILE"); +static const u8 sRelaxedNatureName[] = _("RELAXED"); +static const u8 sImpishNatureName[] = _("IMPISH"); +static const u8 sLaxNatureName[] = _("LAX"); +static const u8 sTimidNatureName[] = _("TIMID"); +static const u8 sHastyNatureName[] = _("HASTY"); +static const u8 sSeriousNatureName[] = _("SERIOUS"); +static const u8 sJollyNatureName[] = _("JOLLY"); +static const u8 sNaiveNatureName[] = _("NAIVE"); +static const u8 sModestNatureName[] = _("MODEST"); +static const u8 sMildNatureName[] = _("MILD"); +static const u8 sQuietNatureName[] = _("QUIET"); +static const u8 sBashfulNatureName[] = _("BASHFUL"); +static const u8 sRashNatureName[] = _("RASH"); +static const u8 sCalmNatureName[] = _("CALM"); +static const u8 sGentleNatureName[] = _("GENTLE"); +static const u8 sSassyNatureName[] = _("SASSY"); +static const u8 sCarefulNatureName[] = _("CAREFUL"); +static const u8 sQuirkyNatureName[] = _("QUIRKY"); + +const u8 *const gNatureNamePointers[] = +{ + [NATURE_HARDY] = sHardyNatureName, + [NATURE_LONELY] = sLonelyNatureName, + [NATURE_BRAVE] = sBraveNatureName, + [NATURE_ADAMANT] = sAdamantNatureName, + [NATURE_NAUGHTY] = sNaughtyNatureName, + [NATURE_BOLD] = sBoldNatureName, + [NATURE_DOCILE] = sDocileNatureName, + [NATURE_RELAXED] = sRelaxedNatureName, + [NATURE_IMPISH] = sImpishNatureName, + [NATURE_LAX] = sLaxNatureName, + [NATURE_TIMID] = sTimidNatureName, + [NATURE_HASTY] = sHastyNatureName, + [NATURE_SERIOUS] = sSeriousNatureName, + [NATURE_JOLLY] = sJollyNatureName, + [NATURE_NAIVE] = sNaiveNatureName, + [NATURE_MODEST] = sModestNatureName, + [NATURE_MILD] = sMildNatureName, + [NATURE_QUIET] = sQuietNatureName, + [NATURE_BASHFUL] = sBashfulNatureName, + [NATURE_RASH] = sRashNatureName, + [NATURE_CALM] = sCalmNatureName, + [NATURE_GENTLE] = sGentleNatureName, + [NATURE_SASSY] = sSassyNatureName, + [NATURE_CAREFUL] = sCarefulNatureName, + [NATURE_QUIRKY] = sQuirkyNatureName, +}; diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 7e20a2a92d..b5117d45da 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1,364 +1,731 @@ #include "global.h" -#include "battle.h" -#include "bg.h" -#include "decompress.h" -#include "item.h" -#include "constants/items.h" -#include "link.h" -#include "m4a.h" #include "main.h" -#include "malloc.h" -#include "constants/moves.h" -#include "palette.h" -#include "pokemon.h" -#include "constants/songs.h" -#include "sound.h" -#include "constants/species.h" -#include "sprite.h" -#include "dynamic_placeholder_text_util.h" -#include "string_util.h" -#include "task.h" -#include "text.h" -#include "window.h" -#include "event_data.h" -#include "gpu_regs.h" -#include "menu.h" -#include "international_string_util.h" -#include "scanline_effect.h" -#include "menu_helpers.h" -#include "daycare.h" -#include "data2.h" +#include "battle.h" +#include "battle_anim.h" +#include "battle_frontier_2.h" +#include "battle_message.h" +#include "battle_tent.h" +#include "bg.h" #include "contest.h" #include "contest_effect.h" +#include "data2.h" +#include "daycare.h" +#include "decompress.h" +#include "dynamic_placeholder_text_util.h" +#include "event_data.h" +#include "gpu_regs.h" +#include "graphics.h" +#include "international_string_util.h" +#include "item.h" +#include "link.h" +#include "m4a.h" +#include "malloc.h" +#include "menu.h" +#include "menu_helpers.h" +#include "mon_markings.h" +#include "party_menu.h" +#include "palette.h" +#include "pokeball.h" +#include "pokemon.h" +#include "pokemon_storage_system.h" +#include "region_map.h" +#include "scanline_effect.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "text.h" +#include "tv.h" +#include "window.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/songs.h" +#include "constants/species.h" -extern struct UnkSummaryStruct* gUnknown_0203CF1C; -extern struct BgTemplate gUnknown_0861CBB4; -extern u8 gUnknown_0203CF20; -extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern s8 gUnknown_0861CC1C[]; -extern u8 gUnknown_0203CF21; -extern struct UnkStruct_61CC04 gUnknown_0861CC04; -extern struct UnkStruct_61CC04 gUnknown_0861CC10; -extern struct UnkStruct_61CC04 gUnknown_0861CBEC; -extern struct UnkStruct_61CC04 gUnknown_0861CBF8; -extern u16 gSummaryScreenWindow_Tilemap[]; -extern struct ContestEffect gContestEffects[]; -extern struct WindowTemplate gUnknown_0861CC24; -extern u8 gUnknown_0861CD2C[][3]; -extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; -extern u8 gText_MaleSymbol[]; -extern u8 gText_FemaleSymbol[]; -extern u8 gUnknown_0861CDD3[]; -extern void (*const gUnknown_0861CE54[])(); -extern void (*const gUnknown_0861CE64[])(u8 taskId); -extern struct WindowTemplate gUnknown_0861CCCC; -extern u8 gUnknown_0861CE74[]; -extern u8 gUnknown_0861CE7B[]; -extern struct WindowTemplate gUnknown_0861CCEC; -extern struct WindowTemplate gUnknown_0861CD14; -extern const u8 *const gContestEffectDescriptionPointers[]; - -void sub_81C488C(u8 a); -extern u8 sub_81221EC(); -extern u8 sub_81221AC(); -extern u8 gUnknown_08D9862C; -extern u8 gUnknown_08D98CC8; -extern u8 gUnknown_08D987FC; -extern u8 gUnknown_08D9898C; -extern u8 gUnknown_08D98B28; -extern u8 gUnknown_08D9853C; -extern u8 gUnknown_08D85620; -extern struct CompressedSpriteSheet gUnknown_0861CFBC; -extern struct CompressedSpriteSheet gUnknown_0861D074; -extern struct CompressedSpriteSheet gUnknown_0861D0F8; -extern struct CompressedSpritePalette gUnknown_0861D100; -extern struct CompressedSpritePalette gUnknown_0861D07C; -extern u8 gMoveTypes_Pal; -extern u8 gUnknown_08D97D0C; -extern void sub_81C1E20(u8 taskId); -extern u8 *GetMonNickname(struct Pokemon *mon, u8 *dest); -extern u16 SpeciesToPokedexNum(u16 species); -extern u8 gText_UnkCtrlF908Clear01[]; -extern u8 gText_LevelSymbol[]; -extern u8 gText_PkmnInfo[]; -extern u8 gText_PkmnSkills[]; -extern u8 gText_BattleMoves[]; -extern u8 gText_ContestMoves[]; -extern u8 gText_HMMovesCantBeForgotten2[]; -extern u8 gText_Cancel2[]; -extern u8 gText_Info[]; -extern u8 gText_Switch[]; -extern u8 gText_RentalPkmn[]; -extern u8 gText_TypeSlash[]; -extern u8 gText_HP4[]; -extern u8 gText_Attack3[]; -extern u8 gText_Defense3[]; -extern u8 gText_SpAtk4[]; -extern u8 gText_SpDef4[]; -extern u8 gText_Speed2[]; -extern u8 gText_ExpPoints[]; -extern u8 gText_NextLv[]; -extern u8 gText_Status[]; -extern u8 gText_Power[]; -extern u8 gText_Accuracy2[]; -extern u8 gText_Appeal[]; -extern u8 gText_Jam[]; -extern u8 gText_OTSlash[]; -extern u8 gText_UnkCtrlF907F908[]; -extern u8 gText_XNature[]; -extern u8 gText_XNatureHatchedAtYZ[]; -extern u8 gText_XNatureHatchedSomewhereAt[]; -extern u8 gText_XNatureMetAtYZ[]; -extern u8 gText_XNatureMetSomewhereAt[]; -extern u8 gText_XNatureFatefulEncounter[]; -extern u8 gText_XNatureProbablyMetAt[]; -extern u8 gText_XNatureObtainedInTrade[]; -extern u8 *gNatureNamePointers[]; -extern u8 gText_EmptyString5[]; -extern u32 gBattleTypeFlags; -extern u8 gText_FiveMarks[]; -extern u8 gText_EggWillTakeALongTime[]; -extern u8 gText_EggAboutToHatch[]; -extern u8 gText_EggWillHatchSoon[]; -extern u8 gText_EggWillTakeSomeTime[]; -extern u8 gText_PeculiarEggNicePlace[]; -extern u8 gText_PeculiarEggTrade[]; -extern u8 gText_EggFromTraveler[]; -extern u8 gText_EggFromHotSprings[]; -extern u8 gText_OddEggFoundByCouple[]; -extern u8 gText_None[]; -extern u8 gText_RibbonsVar1[]; -extern u8 gUnknown_0861CE82[]; -extern u8 gUnknown_0861CE8E[]; -extern u8 gText_OneDash[]; -extern u8 gText_TwoDashes[]; -extern u8 gText_ThreeDashes[]; -extern u8 gText_Cancel[]; -extern u8 gUnknown_0861CE97[]; -extern const struct SpriteTemplate gUnknown_0861CFC4; - -extern void sub_8199C30(u8 a, u8 b, u8 c, u8 d, u8 e, u8 f); -extern bool8 sub_81A6BF4(); -extern bool8 sub_81B9E94(); -extern void DynamicPlaceholderTextUtil_Reset(); -extern void sub_8124610(u8 *a, u8 b); -extern int GetPlayerIDAsU32(); -extern u8 GetCurrentPpToMaxPpState(u8 a, u8 b); - -void sub_81BFAE4(void); -void sub_81BFE24(); -u8 sub_81BFEB0(); -void sub_81C2554(); -void sub_81C1BA0(); -void sub_81C0098(struct Pokemon* a); -bool8 sub_81C00F0(struct Pokemon* a); -void sub_81C25E8(); -void sub_81C286C(); -void sub_81C2D9C(u8 a); -void sub_81C0348(); -void sub_81C2AFC(u8 a); -void sub_81C4190(); -void sub_81C42C8(); -u8 sub_81C45F4(void* a, u16* b); -void sub_81C4984(); -void sub_81C4A08(); -void sub_81C4A88(); -void sub_81C4280(); -void sub_81C43A0(); -void sub_81C4484(); -void sub_81C4420(); -void sub_81C0510(u8 taskId); -void sub_81C171C(u8 taskId); -void ResetAllBgsCoordinates(); -u8 sub_81B205C(struct Pokemon* a); -void sub_81C1DA4(u16 a, s16 b); -void sub_81C1EFC(u16 a, s16 b, u16 c); -void sub_81C240C(u16 a); -void sub_81C2194(u16 *a, u16 b, u8 c); -void sub_81C2074(u16 a, s16 b); -void sub_81C2524(); -void sub_81C2228(struct Pokemon* mon); -void sub_81C0484(u8 taskId); -void sub_81C4898(); -void sub_806F47C(u8 a); -u8 GetLRKeysState(); -void sub_81C0604(u8 taskId, s8 a); -void sub_81C0A8C(u8 taskId, s8 a); -void sub_81C48F0(); -void sub_81C0E48(u8 taskId); -void sub_81C0704(u8 taskId); -s8 sub_81C09B4(s8 a); -s8 sub_81C08F8(s8 a); -void sub_81C4204(u8 a, u8 b); -void sub_81C20F0(u8 taskId); -bool8 sub_81C0A50(struct Pokemon* mon); -void sub_81C49E0(); -void sub_81C0E24(); -void sub_81C2C38(u8 a); -void sub_81C0B8C(u8 taskId); -void sub_81C0CC4(u8 taskId); -void sub_81C2DE4(u8 a); -void sub_81C424C(); -void sub_81C0C68(u8 taskId); -void sub_81C0D44(u8 taskId); -void sub_81C22CC(struct Pokemon* mon); -void sub_81C0F44(u8 taskId); -void sub_81C3E9C(u16 a); -void sub_81C3F44(); -void sub_81C44F0(); -void sub_81C4AF8(u8 a); -void sub_81C1070(s16* a, s8 b, u8* c); -void sub_81C11F4(u8 a); -void sub_81C129C(u8 a); -bool8 sub_81C1040(); -void sub_81C4064(); -void sub_81C4C60(u8 a); -void sub_81C12E4(u8 taskId); -void sub_81C4C84(u8 a); -void sub_81C13B0(u8 a, u8 b); -void sub_81C14BC(struct Pokemon *mon, u8 a, u8 b); -void sub_81C15EC(struct BoxPokemon *mon, u8 a, u8 b); -void sub_81C40A0(u8 a, u8 b); -void sub_81C4568(u8 a, u8 b); -void sub_81C174C(u8 taskId); -bool8 sub_81C18A8(); -void sub_81C18F4(u8 a); -u8 sub_81B6D14(u16 a); -void sub_81C1940(u8 taskId); -void sub_81C4154(); -void sub_81C1F80(u8 taskId); -void sub_81C2628(); -void sub_81C2794(); -void sub_81C27DC(struct Pokemon *mon, u16 a); -void sub_81C2D68(u8 a); -void sub_81C335C(); -void sub_81C33CC(); -void sub_81C3428(); -void sub_81C349C(); -void sub_81C2EC4(); -void sub_81C2F5C(); -void sub_81C2FD8(); -void sub_81C302C(); -void sub_81C307C(); -void sub_81C3194(); -void sub_81C31C0(); -bool8 sub_81C3304(); -void sub_81C31F0(u8 *a); -u8 sub_81C3220(); -bool8 sub_81C32BC(); -void sub_81C35E4(); -void sub_81C3690(); -void sub_81C3710(); -void sub_81C37D8(); -void sub_81C3808(); -void sub_81C3890(); -void sub_81C38C0(); -void sub_81C3B08(u8 a); -void sub_81C3E2C(u8 a); -void sub_81C4D18(); - -void SetBgAttribute(u8 bg, u8 attributeId, u8 value); - -bool8 sub_81BFB10(); -u8 sub_81B1250(); - -union UnkUnion +static EWRAM_DATA struct UnkSummaryStruct { - struct Pokemon mon[6]; - struct BoxPokemon boxMon[6]; -}; - - -u8 sub_80D214C(union UnkUnion* a, u8 b, u8 c, u8 d); - -struct PokeSummary -{ - u16 species; // 0x0 - u16 species2; // 0x2 - u8 isEgg; // 0x4 - u8 level; // 0x5 - u8 ribbons; // 0x6 - u8 unk7; // 0x7 - u8 altAbility; // 0x8 - u8 metLocation; // 0x9 - u8 metLevel; // 0xA - u8 metGame; // 0xB - u32 pid; // 0xC - u32 exp; // 0x10 - u16 moves[4]; // 0x14 - u8 pp[4]; // 0x1C - u16 currentHP; // 0x20 - u16 maxHP; // 0x22 - u16 atk; // 0x24 - u16 def; // 0x26 - u16 spatk; // 0x28 - u16 spdef; // 0x2A - u16 speed; // 0x2C - u16 item; // 0x2E - u16 friendship; // 0x30 - u8 OTGender; // 0x32 - u8 nature; // 0x33 - u8 ppBonuses; // 0x34 - u8 sanity; // 0x35 - u8 OTName[8]; // 0x36 - u8 unk3E[9]; // 0x3E - u32 OTID; // 0x48 -}; - -struct UnkSummaryStruct -{ - /*0x00*/ union UnkUnion *unk0; - /*0x04*/ void *unk4; - /*0x08*/ void *unk8; + /*0x00*/ union + { + struct Pokemon *mons; + struct BoxPokemon *boxMons; + } monList; + /*0x04*/ void (*callback)(void); + /*0x08*/ struct Sprite *markingsSpriteId; /*0x0C*/ struct Pokemon currentMon; - /*0x70*/ struct PokeSummary summary; - u16 unkTilemap0[0x400]; - u16 unkTilemap0_1[0x400]; - u16 unkTilemap1[0x400]; - u16 unkTilemap1_1[0x400]; - u16 unkTilemap2[0x400]; - u16 unkTilemap2_1[0x400]; - u16 unkTilemap3[0x400]; - u16 unkTilemap3_1[0x400]; - u8 unk40BC; - u8 unk40BD; - u8 unk40BE; - u8 unk40BF; + /*0x70*/ struct PokeSummary + { + u16 species; // 0x0 + u16 species2; // 0x2 + u8 isEgg; // 0x4 + u8 level; // 0x5 + u8 ribbons; // 0x6 + u8 unk7; // 0x7 + u8 altAbility; // 0x8 + u8 metLocation; // 0x9 + u8 metLevel; // 0xA + u8 metGame; // 0xB + u32 pid; // 0xC + u32 exp; // 0x10 + u16 moves[4]; // 0x14 + u8 pp[4]; // 0x1C + u16 currentHP; // 0x20 + u16 maxHP; // 0x22 + u16 atk; // 0x24 + u16 def; // 0x26 + u16 spatk; // 0x28 + u16 spdef; // 0x2A + u16 speed; // 0x2C + u16 item; // 0x2E + u16 friendship; // 0x30 + u8 OTGender; // 0x32 + u8 nature; // 0x33 + u8 ppBonuses; // 0x34 + u8 sanity; // 0x35 + u8 OTName[8]; // 0x36 + u8 unk3E[9]; // 0x3E + u32 OTID; // 0x48 + } summary; + u16 bgTilemapBuffer1[0x800]; + u16 bgTilemapBuffer2[0x800]; + u16 bgTilemapBuffer3[0x800]; + u16 bgTilemapBuffer4[0x800]; + u8 mode; + bool8 isBoxMon; + u8 curMonIndex; + u8 maxMonIndex; u8 unk40C0; u8 unk40C1; u8 unk40C2; - u8 unk40C3; - u16 unk40C4; - u8 unk40C6; - u8 unk40C7; - u8 unk40C8; + bool8 unk40C3; + u16 newMove; + u8 firstMoveIndex; + u8 secondMoveIndex; + bool8 unk40C8; u8 unk40C9; - u8 unk40CA; - u8 unk40CB[8]; - u8 unk40D3[0x1C]; - u8 unk40EF; + u8 filler40CA; + u8 windowIds[8]; + u8 spriteIds[28]; + bool8 unk40EF; s16 unk40F0; u8 unk_filler4[6]; +} *gUnknown_0203CF1C = NULL; +EWRAM_DATA u8 gUnknown_0203CF20 = 0; +static EWRAM_DATA u8 gUnknown_0203CF21 = 0; +static EWRAM_DATA u8 gFiller_0203CF22[2] = {0}; +static EWRAM_DATA u8 sUnusedTaskId = 0; +static EWRAM_DATA u8 gFiller_0203CF25[3] = {0}; + +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; + +struct UnkStruct_61CC04 +{ + const u16 *ptr; + u16 field_4; + u8 field_6; + u8 field_7; + u8 field_8; + u8 field_9; }; +// forward declarations +bool8 sub_81B1250(void); +bool8 sub_81BFB10(void); +void sub_81BFAE4(void); +void sub_81BFE24(void); +u8 sub_81BFEB0(void); +void sub_81C0098(struct Pokemon* a); +bool8 sub_81C00F0(struct Pokemon* a); +void sub_81C0348(void); +void sub_81C0484(u8 taskId); +void sub_81C0510(u8 taskId); +void sub_81C0604(u8 taskId, s8 a); +void sub_81C0704(u8 taskId); +s8 sub_81C08F8(s8 a); +s8 sub_81C09B4(s8 a); +bool8 sub_81C0A50(struct Pokemon* mon); +void sub_81C0A8C(u8 taskId, s8 a); +void sub_81C0B8C(u8 taskId); +void sub_81C0C68(u8 taskId); +void sub_81C0CC4(u8 taskId); +void sub_81C0D44(u8 taskId); +void sub_81C0E24(void); +void sub_81C0E48(u8 taskId); +void sub_81C0F44(u8 taskId); +bool8 sub_81C1040(void); +void sub_81C1070(s16* a, s8 b, u8* c); +void sub_81C11F4(u8 a); +void sub_81C129C(u8 a); +void sub_81C12E4(u8 taskId); +void sub_81C13B0(u8 a, u8 b); +void sub_81C14BC(struct Pokemon *mon, u8 a, u8 b); +void sub_81C15EC(struct BoxPokemon *mon, u8 a, u8 b); +void sub_81C171C(u8 taskId); +void sub_81C174C(u8 taskId); +bool8 sub_81C18A8(void); +void sub_81C18F4(u8 a); +void sub_81C1940(u8 taskId); +void sub_81C1BA0(void); +void sub_81C1DA4(u16 a, s16 b); +void sub_81C1E20(u8 taskId); +void sub_81C1EFC(u16 a, s16 b, u16 c); +void sub_81C1F80(u8 taskId); +void sub_81C2074(u16 a, s16 b); +void sub_81C20F0(u8 taskId); +void sub_81C2194(u16 *a, u16 b, u8 c); +void sub_81C2228(struct Pokemon* mon); +void sub_81C22CC(struct Pokemon* mon); +void sub_81C240C(u16 a); +void sub_81C2524(void); +void sub_81C2554(void); +void sub_81C25E8(void); +void sub_81C2628(void); +void sub_81C2794(void); +void sub_81C27DC(struct Pokemon *mon, u16 a); +void sub_81C286C(void); +void sub_81C2AFC(u8 a); +void sub_81C2C38(u8 a); +void sub_81C2D68(u8 a); +void sub_81C2D9C(u8 a); +void sub_81C2DE4(u8 a); +void sub_81C2E00(void); +void sub_81C2E40(u8 taskId); +void sub_81C2EC4(void); +void sub_81C2F5C(void); +void sub_81C2FD8(void); +void sub_81C302C(void); +void sub_81C307C(void); +void sub_81C3194(void); +void sub_81C31C0(void); +void sub_81C31F0(u8 *a); +u8 sub_81C3220(void); +bool8 sub_81C32BC(void); +bool8 sub_81C3304(void); +void sub_81C335C(void); +void sub_81C33CC(void); +void sub_81C3428(void); +void sub_81C349C(void); +void sub_81C3554(u8 taskId); +void sub_81C35E4(void); +void sub_81C3530(void); +void sub_81C3690(void); +void sub_81C3710(void); +void sub_81C37D8(void); +void sub_81C3808(void); +void sub_81C3890(void); +void sub_81C38C0(void); +void sub_81C3984(void); +void sub_81C39F0(u8 taskId); +void sub_81C3B08(u8 a); +void sub_81C3D08(void); +void sub_81C3D54(u8 taskId); +void sub_81C3E2C(u8 a); +void sub_81C3E9C(u16 a); +void sub_81C3F44(void); +void sub_81C4064(void); +void sub_81C40A0(u8 a, u8 b); +void sub_81C4154(void); +void sub_81C4190(void); +void sub_81C4204(u8 a, u8 b); +void sub_81C424C(void); +void sub_81C4280(void); +void sub_81C42C8(void); +void sub_81C43A0(void); +void sub_81C4420(void); +void sub_81C4484(void); +void sub_81C44F0(void); +void sub_81C4568(u8 a, u8 b); +u8 sub_81C45F4(struct Pokemon *a, s16 *b); +u8 sub_81C47B4(struct Pokemon *unused); +void sub_81C4844(struct Sprite *); +void sub_81C488C(u8 a); +void sub_81C4898(void); +void sub_81C48F0(void); +void sub_81C4984(struct Pokemon *mon); +void sub_81C49E0(struct Pokemon *mon); +void sub_81C4A08(struct Pokemon *mon); +void sub_81C4A88(void); +void sub_81C4AF8(u8 a); +void sub_81C4BE4(struct Sprite *sprite); +void sub_81C4C60(u8 a); +void sub_81C4C84(u8 a); +void sub_81C4D18(u8 a); + // const rom data #include "data/text/move_descriptions.h" +#include "data/text/nature_names.h" + +static const struct BgTemplate gUnknown_0861CBB4[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, + { + .bg = 1, + .charBaseIndex = 2, + .mapBaseIndex = 27, + .screenSize = 1, + .paletteMode = 0, + .priority = 1, + .baseTile = 0, + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 25, + .screenSize = 1, + .paletteMode = 0, + .priority = 2, + .baseTile = 0, + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 29, + .screenSize = 1, + .paletteMode = 0, + .priority = 3, + .baseTile = 0, + }, +}; + +static const u16 gUnknown_0861CBC4[] = INCBIN_U16("graphics/interface/unk_tilemap2.bin"); +static const struct UnkStruct_61CC04 gUnknown_0861CBEC = +{ + gUnknown_0861CBC4, 1, 10, 2, 0, 18 +}; +static const struct UnkStruct_61CC04 gUnknown_0861CBF8 = +{ + gUnknown_0861CBC4, 1, 10, 2, 0, 50 +}; +static const struct UnkStruct_61CC04 gUnknown_0861CC04 = +{ + gSummaryScreenPowAcc_Tilemap, 0, 10, 7, 0, 45 +}; +static const struct UnkStruct_61CC04 gUnknown_0861CC10 = +{ + gUnknown_08DC3C34, 0, 10, 7, 0, 45 +}; +static const s8 gUnknown_0861CC1C[] = {0, 2, 3, 1, 4, 5}; +static const struct WindowTemplate gUnknown_0861CC24[] = +{ + { 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x0001 }, + { 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x0017 }, + { 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x002d }, + { 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x0043 }, + { 0x00, 0x16, 0x00, 0x08, 0x02, 0x07, 0x0059 }, + { 0x00, 0x16, 0x00, 0x08, 0x02, 0x07, 0x0069 }, + { 0x00, 0x16, 0x00, 0x08, 0x02, 0x07, 0x0079 }, + { 0x00, 0x0b, 0x04, 0x00, 0x02, 0x06, 0x0089 }, + { 0x00, 0x0b, 0x04, 0x12, 0x02, 0x06, 0x0089 }, + { 0x00, 0x0b, 0x06, 0x12, 0x02, 0x06, 0x00ad }, + { 0x00, 0x0a, 0x07, 0x06, 0x06, 0x06, 0x00d1 }, + { 0x00, 0x16, 0x07, 0x05, 0x06, 0x06, 0x00f5 }, + { 0x00, 0x0a, 0x0e, 0x0b, 0x04, 0x06, 0x0113 }, + { 0x00, 0x00, 0x12, 0x06, 0x02, 0x06, 0x013f }, + { 0x00, 0x01, 0x0f, 0x09, 0x04, 0x06, 0x014b }, + { 0x00, 0x01, 0x0f, 0x05, 0x04, 0x06, 0x016f }, + { 0x00, 0x16, 0x04, 0x00, 0x02, 0x06, 0x0183 }, + { 0x00, 0x01, 0x02, 0x04, 0x02, 0x07, 0x0183 }, + { 0x00, 0x01, 0x0c, 0x09, 0x02, 0x06, 0x018b }, + { 0x00, 0x01, 0x0e, 0x09, 0x04, 0x06, 0x019d }, + DUMMY_WIN_TEMPLATE +}; +static const struct WindowTemplate gUnknown_0861CCCC[] = +{ + { 0x00, 0x0b, 0x04, 0x0b, 0x02, 0x06, 0x01c1 }, + { 0x00, 0x16, 0x04, 0x07, 0x02, 0x06, 0x01d7 }, + { 0x00, 0x0b, 0x09, 0x12, 0x04, 0x06, 0x01e5 }, + { 0x00, 0x0b, 0x0e, 0x12, 0x06, 0x06, 0x022d }, +}; +static const struct WindowTemplate gUnknown_0861CCEC[] = +{ + { 0x00, 0x0a, 0x04, 0x0a, 0x02, 0x06, 0x01c1 }, + { 0x00, 0x14, 0x04, 0x0a, 0x02, 0x06, 0x01d5 }, + { 0x00, 0x10, 0x07, 0x06, 0x06, 0x06, 0x01e9 }, + { 0x00, 0x1b, 0x07, 0x03, 0x06, 0x06, 0x020d }, + { 0x00, 0x18, 0x0e, 0x06, 0x04, 0x06, 0x021f }, +}; +static const struct WindowTemplate gUnknown_0861CD14[] = +{ + { 0x00, 0x0f, 0x04, 0x09, 0x0a, 0x06, 0x01c1 }, + { 0x00, 0x18, 0x04, 0x06, 0x0a, 0x08, 0x021b }, + { 0x00, 0x0a, 0x0f, 0x14, 0x04, 0x06, 0x0257 }, +}; +static const u8 sTextColors_861CD2C[][3] = +{ + {0, 1, 2}, + {0, 3, 4}, + {0, 5, 6}, + {0, 7, 8}, + {0, 9, 10}, + {0, 11, 12}, + {0, 13, 14}, + {0, 7, 8}, + {13, 15, 14}, + {0, 1, 2}, + {0, 3, 4}, + {0, 5, 6}, + {0, 7, 8} +}; +static const u8 gUnknown_0861CD53[] = INCBIN_U8("graphics/interface/summary_a_button.4bpp"); +static const u8 gUnknown_0861CDD3[] = INCBIN_U8("graphics/interface/summary_b_button.4bpp"); +static void (*const gUnknown_0861CE54[])(void) = +{ + sub_81C2E00, + sub_81C3530, + sub_81C3984, + sub_81C3D08 +}; +static void (*const gUnknown_0861CE64[])(u8 taskId) = +{ + sub_81C2E40, + sub_81C3554, + sub_81C39F0, + sub_81C3D54 +}; +static const u8 gUnknown_0861CE74[] = _("{COLOR LIGHT_RED}{SHADOW GREEN}"); +static const u8 gUnknown_0861CE7B[] = _("{COLOR WHITE}{SHADOW DARK_GREY}"); +static const u8 gUnknown_0861CE82[] = _("{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}\n{SPECIAL_F7 0x03}"); +static const u8 gUnknown_0861CE8E[] = _("{SPECIAL_F7 0x00}\n{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}"); +static const u8 gUnknown_0861CE97[] = _("{PP}{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}"); +static const struct OamData gOamData_861CEA0 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_861CEA8[] = { + ANIMCMD_FRAME(0, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CEB0[] = { + ANIMCMD_FRAME(8, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CEB8[] = { + ANIMCMD_FRAME(16, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CEC0[] = { + ANIMCMD_FRAME(24, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CEC8[] = { + ANIMCMD_FRAME(32, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CED0[] = { + ANIMCMD_FRAME(40, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CED8[] = { + ANIMCMD_FRAME(48, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CEE0[] = { + ANIMCMD_FRAME(56, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CEE8[] = { + ANIMCMD_FRAME(64, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CEF0[] = { + ANIMCMD_FRAME(72, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CEF8[] = { + ANIMCMD_FRAME(80, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CF00[] = { + ANIMCMD_FRAME(88, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CF08[] = { + ANIMCMD_FRAME(96, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CF10[] = { + ANIMCMD_FRAME(104, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CF18[] = { + ANIMCMD_FRAME(112, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CF20[] = { + ANIMCMD_FRAME(120, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CF28[] = { + ANIMCMD_FRAME(128, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CF30[] = { + ANIMCMD_FRAME(136, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CF38[] = { + ANIMCMD_FRAME(144, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CF40[] = { + ANIMCMD_FRAME(152, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CF48[] = { + ANIMCMD_FRAME(160, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CF50[] = { + ANIMCMD_FRAME(168, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861CF58[] = { + ANIMCMD_FRAME(176, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd *const gSpriteAnimTable_861CF60[] = { + gSpriteAnim_861CEA8, + gSpriteAnim_861CEB0, + gSpriteAnim_861CEB8, + gSpriteAnim_861CEC0, + gSpriteAnim_861CEC8, + gSpriteAnim_861CED0, + gSpriteAnim_861CED8, + gSpriteAnim_861CEE0, + gSpriteAnim_861CEE8, + gSpriteAnim_861CEF0, + gSpriteAnim_861CEF8, + gSpriteAnim_861CF00, + gSpriteAnim_861CF08, + gSpriteAnim_861CF10, + gSpriteAnim_861CF18, + gSpriteAnim_861CF20, + gSpriteAnim_861CF28, + gSpriteAnim_861CF30, + gSpriteAnim_861CF38, + gSpriteAnim_861CF40, + gSpriteAnim_861CF48, + gSpriteAnim_861CF50, + gSpriteAnim_861CF58, +}; +static const struct CompressedSpriteSheet gUnknown_0861CFBC = +{ + .data = gMoveTypes_Gfx, + .size = 0x1700, + .tag = 30002 +}; +static const struct SpriteTemplate gUnknown_0861CFC4 = +{ + .tileTag = 30002, + .paletteTag = 30002, + .oam = &gOamData_861CEA0, + .anims = gSpriteAnimTable_861CF60, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; +static const u8 gUnknown_0861CFDC[] = {13, 13, 14, 14, 13, 13, 15, 14, 13, 15, 13, 14, 15, 13, 14, 14, 15, 13, 13, 14, 14, 15, 13}; +static const struct OamData gOamData_861CFF4 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_861CFFC[] = { + ANIMCMD_FRAME(0, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D004[] = { + ANIMCMD_FRAME(4, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D00C[] = { + ANIMCMD_FRAME(8, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D014[] = { + ANIMCMD_FRAME(12, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D01C[] = { + ANIMCMD_FRAME(16, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D024[] = { + ANIMCMD_FRAME(16, 0, TRUE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D02C[] = { + ANIMCMD_FRAME(20, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D034[] = { + ANIMCMD_FRAME(24, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D03C[] = { + ANIMCMD_FRAME(24, 0, TRUE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D044[] = { + ANIMCMD_FRAME(28, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd *const gSpriteAnimTable_861D04C[] = { + gSpriteAnim_861CFFC, + gSpriteAnim_861D004, + gSpriteAnim_861D00C, + gSpriteAnim_861D014, + gSpriteAnim_861D01C, + gSpriteAnim_861D024, + gSpriteAnim_861D02C, + gSpriteAnim_861D034, + gSpriteAnim_861D03C, + gSpriteAnim_861D044, +}; +static const struct CompressedSpriteSheet gUnknown_0861D074 = +{ + .data = gUnknown_08D97BEC, + .size = 0x400, + .tag = 30000 +}; +static const struct CompressedSpritePalette gUnknown_0861D07C = +{ + .data = gUnknown_08D97CF4, + .tag = 30000 +}; +static const struct SpriteTemplate gUnknown_0861D084 = +{ + .tileTag = 30000, + .paletteTag = 30000, + .oam = &gOamData_861CFF4, + .anims = gSpriteAnimTable_861D04C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + const struct OamData gOamData_861D09C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_861D0A4[] = { + ANIMCMD_FRAME(0, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D0AC[] = { + ANIMCMD_FRAME(4, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D0B4[] = { + ANIMCMD_FRAME(8, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D0BC[] = { + ANIMCMD_FRAME(12, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D0C4[] = { + ANIMCMD_FRAME(16, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D0CC[] = { + ANIMCMD_FRAME(20, 0, FALSE, FALSE), + ANIMCMD_END +}; +static const union AnimCmd gSpriteAnim_861D0D4[] = { + ANIMCMD_FRAME(24, 0, FALSE, FALSE), + ANIMCMD_END +}; + const union AnimCmd *const gSpriteAnimTable_861D0DC[] = { + gSpriteAnim_861D0A4, + gSpriteAnim_861D0AC, + gSpriteAnim_861D0B4, + gSpriteAnim_861D0BC, + gSpriteAnim_861D0C4, + gSpriteAnim_861D0CC, + gSpriteAnim_861D0D4, +}; +static const struct CompressedSpriteSheet gUnknown_0861D0F8 = +{ + .data = gStatusGfx_Icons, + .size = 0x380, + .tag = 30001 +}; +static const struct CompressedSpritePalette gUnknown_0861D100 = +{ + .data = gStatusPal_Icons, + .tag = 30001 +}; +static const struct SpriteTemplate gUnknown_0861D108 = +{ + .tileTag = 30001, + .paletteTag = 30001, + .oam = &gOamData_861D09C, + .anims = gSpriteAnimTable_861D0DC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; +static const u16 gUnknown_0861D120[] = INCBIN_U16("graphics/interface/summary_markings.gbapal"); // code -void sub_81BF8EC(u8 a, void *b, u8 c, u8 d, void *e) +void sub_81BF8EC(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) { - u8 byte; - gUnknown_0203CF1C = AllocZeroed(sizeof(struct UnkSummaryStruct)); - gUnknown_0203CF1C->unk40BC = a; - gUnknown_0203CF1C->unk0 = b; - gUnknown_0203CF1C->unk40BE = c; - gUnknown_0203CF1C->unk40BF = d; - gUnknown_0203CF1C->unk4 = e; - if (a == 2) - gUnknown_0203CF1C->unk40BD = 1; + gUnknown_0203CF1C = AllocZeroed(sizeof(*gUnknown_0203CF1C)); + gUnknown_0203CF1C->mode = mode; + gUnknown_0203CF1C->monList.mons = mons; + gUnknown_0203CF1C->curMonIndex = monIndex; + gUnknown_0203CF1C->maxMonIndex = maxMonIndex; + gUnknown_0203CF1C->callback = callback; + + if (mode == 2) + gUnknown_0203CF1C->isBoxMon = TRUE; else - gUnknown_0203CF1C->unk40BD = 0; - switch (a) + gUnknown_0203CF1C->isBoxMon = FALSE; + + switch (mode) { case 0: case 2: @@ -368,32 +735,34 @@ void sub_81BF8EC(u8 a, void *b, u8 c, u8 d, void *e) case 1: gUnknown_0203CF1C->unk40C1 = 0; gUnknown_0203CF1C->unk40C2 = 3; - gUnknown_0203CF1C->unk40C8 = 1; + gUnknown_0203CF1C->unk40C8 = TRUE; break; case 3: gUnknown_0203CF1C->unk40C1 = 2; gUnknown_0203CF1C->unk40C2 = 3; - gUnknown_0203CF1C->unk40C3 = 1; + gUnknown_0203CF1C->unk40C3 = TRUE; break; } - byte = gUnknown_0203CF1C->unk40C1; - gUnknown_0203CF1C->unk40C0 = byte; - sub_81C488C(0xFF); + + gUnknown_0203CF1C->unk40C0 = gUnknown_0203CF1C->unk40C1; + sub_81C488C(-1); + if (gMonSpritesGfxPtr == 0) sub_806F2AC(0, 0); + SetMainCallback2(sub_81BFAE4); } -void ShowSelectMovePokemonSummaryScreen(void *a, u8 b, u8 c, void *d, u16 e) +void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void), u16 newMove) { - sub_81BF8EC(3, a, b, c, d); - gUnknown_0203CF1C->unk40C4 = e; + sub_81BF8EC(3, mons, monIndex, maxMonIndex, callback); + gUnknown_0203CF1C->newMove = newMove; } -void sub_81BFA80(u8 a, void *b, u8 c, u8 d, void *e) +void sub_81BFA80(u8 a, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) { - sub_81BF8EC(a, b, c, d, e); - gUnknown_0203CF1C->unk40EF = 1; + sub_81BF8EC(a, mons, monIndex, maxMonIndex, callback); + gUnknown_0203CF1C->unk40EF = TRUE; } void sub_81BFAB4(void) @@ -412,13 +781,9 @@ void sub_81BFAD0(void) TransferPlttBuffer(); } -void sub_81BFAE4() +void sub_81BFAE4(void) { - while (1) - { - if (sub_81221EC() == 1 || sub_81BFB10() == TRUE || sub_81221AC() == 1) - break; - } + while (sub_81221EC() != TRUE && sub_81BFB10() != TRUE && sub_81221AC() != TRUE); } bool8 sub_81BFB10(void) @@ -454,7 +819,7 @@ bool8 sub_81BFB10(void) gMain.state++; break; case 6: - if (sub_81BFEB0() != 0) + if (sub_81BFEB0() != FALSE) gMain.state++; break; case 7: @@ -501,8 +866,8 @@ bool8 sub_81BFB10(void) gMain.state++; break; case 17: - gUnknown_0203CF1C->unk40D3[0] = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &gUnknown_0203CF1C->unk40F0); - if (gUnknown_0203CF1C->unk40D3[0] != 0xFF) + gUnknown_0203CF1C->spriteIds[0] = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &gUnknown_0203CF1C->unk40F0); + if (gUnknown_0203CF1C->spriteIds[0] != 0xFF) { gUnknown_0203CF1C->unk40F0 = 0; gMain.state++; @@ -525,7 +890,7 @@ bool8 sub_81BFB10(void) gMain.state++; break; case 22: - if (gUnknown_0203CF1C->unk40BC != 3) + if (gUnknown_0203CF1C->mode != 3) CreateTask(sub_81C0510, 0); else CreateTask(sub_81C171C, 0); @@ -548,13 +913,13 @@ bool8 sub_81BFB10(void) return FALSE; } -void sub_81BFE24() +void sub_81BFE24(void) { ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, &gUnknown_0861CBB4, 4); - SetBgTilemapBuffer(1, &gUnknown_0203CF1C->unkTilemap2); - SetBgTilemapBuffer(2, &gUnknown_0203CF1C->unkTilemap1); - SetBgTilemapBuffer(3, &gUnknown_0203CF1C->unkTilemap0); + InitBgsFromTemplates(0, gUnknown_0861CBB4, ARRAY_COUNT(gUnknown_0861CBB4)); + SetBgTilemapBuffer(1, &gUnknown_0203CF1C->bgTilemapBuffer3); + SetBgTilemapBuffer(2, &gUnknown_0203CF1C->bgTilemapBuffer2); + SetBgTilemapBuffer(3, &gUnknown_0203CF1C->bgTilemapBuffer1); ResetAllBgsCoordinates(); schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); @@ -567,7 +932,7 @@ void sub_81BFE24() ShowBg(3); } -u8 sub_81BFEB0() +bool8 sub_81BFEB0(void) { switch (gUnknown_0203CF1C->unk40F0) { @@ -579,24 +944,24 @@ u8 sub_81BFEB0() case 1: if (free_temp_tile_data_buffers_if_possible() != 1) { - LZDecompressWram(&gUnknown_08D9862C, gUnknown_0203CF1C->unkTilemap0); + LZDecompressWram(&gUnknown_08D9862C, &gUnknown_0203CF1C->bgTilemapBuffer1[0]); gUnknown_0203CF1C->unk40F0++; } break; case 2: - LZDecompressWram(&gUnknown_08D98CC8, gUnknown_0203CF1C->unkTilemap0_1); + LZDecompressWram(&gUnknown_08D98CC8, &gUnknown_0203CF1C->bgTilemapBuffer1[0x400]); gUnknown_0203CF1C->unk40F0++; break; case 3: - LZDecompressWram(&gUnknown_08D987FC, gUnknown_0203CF1C->unkTilemap1_1); + LZDecompressWram(&gUnknown_08D987FC, &gUnknown_0203CF1C->bgTilemapBuffer2[0x400]); gUnknown_0203CF1C->unk40F0++; break; case 4: - LZDecompressWram(&gUnknown_08D9898C, gUnknown_0203CF1C->unkTilemap2_1); + LZDecompressWram(&gUnknown_08D9898C, &gUnknown_0203CF1C->bgTilemapBuffer3[0x400]); gUnknown_0203CF1C->unk40F0++; break; case 5: - LZDecompressWram(&gUnknown_08D98B28, gUnknown_0203CF1C->unkTilemap3_1); + LZDecompressWram(&gUnknown_08D98B28, &gUnknown_0203CF1C->bgTilemapBuffer4[0x400]); gUnknown_0203CF1C->unk40F0++; break; case 6: @@ -627,22 +992,22 @@ u8 sub_81BFEB0() case 12: LoadCompressedPalette(&gMoveTypes_Pal, 0x1D0, 0x60); gUnknown_0203CF1C->unk40F0 = 0; - return 1; + return TRUE; } - return 0; + return FALSE; } void sub_81C0098(struct Pokemon *mon) { - if (gUnknown_0203CF1C->unk40BD == 0) + if (!gUnknown_0203CF1C->isBoxMon) { - struct Pokemon *partyMon = gUnknown_0203CF1C->unk0->mon; - *mon = partyMon[gUnknown_0203CF1C->unk40BE]; + struct Pokemon *partyMon = gUnknown_0203CF1C->monList.mons; + *mon = partyMon[gUnknown_0203CF1C->curMonIndex]; } else { - struct BoxPokemon *boxMon = gUnknown_0203CF1C->unk0->boxMon; - BoxMonToMon(&boxMon[gUnknown_0203CF1C->unk40BE], mon); + struct BoxPokemon *boxMon = gUnknown_0203CF1C->monList.boxMons; + BoxMonToMon(&boxMon[gUnknown_0203CF1C->curMonIndex], mon); } } @@ -675,7 +1040,7 @@ bool8 sub_81C00F0(struct Pokemon *a) sum->ppBonuses = GetMonData(a, MON_DATA_PP_BONUSES); break; case 2: - if ((struct Pokemon*)gUnknown_0203CF1C->unk0 == gPlayerParty || gUnknown_0203CF1C->unk40BC == 2 || gUnknown_0203CF1C->unk40EF == 1) + if (gUnknown_0203CF1C->monList.mons == gPlayerParty || gUnknown_0203CF1C->mode == 2 || gUnknown_0203CF1C->unk40EF == TRUE) { sum->nature = GetNature(a); sum->currentHP = GetMonData(a, MON_DATA_HP); @@ -726,14 +1091,14 @@ void sub_81C0348(void) } else { - sub_81C240C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]); - sub_81C2194(&gUnknown_0203CF1C->unkTilemap2[0], 3, 0); - sub_81C2194(&gUnknown_0203CF1C->unkTilemap3[0], 1, 0); - SetBgTilemapBuffer(1, &gUnknown_0203CF1C->unkTilemap3); - SetBgTilemapBuffer(2, &gUnknown_0203CF1C->unkTilemap2); + sub_81C240C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]); + sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer3[0], 3, 0); + sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer4[0], 1, 0); + SetBgTilemapBuffer(1, &gUnknown_0203CF1C->bgTilemapBuffer4); + SetBgTilemapBuffer(2, &gUnknown_0203CF1C->bgTilemapBuffer3); ChangeBgX(2, 0x10000, 1); - ClearWindowTilemap(0x13); - ClearWindowTilemap(0xD); + ClearWindowTilemap(19); + ClearWindowTilemap(13); } if (gUnknown_0203CF1C->summary.unk7 == 0) { @@ -742,13 +1107,13 @@ void sub_81C0348(void) else { if (gUnknown_0203CF1C->unk40C0 != 2 && gUnknown_0203CF1C->unk40C0 != 3) - PutWindowTilemap(0xD); + PutWindowTilemap(13); } sub_81C2524(); sub_81C2228(&gUnknown_0203CF1C->currentMon); } -void sub_81C0434() +void sub_81C0434(void) { FreeAllWindowBuffers(); Free(gUnknown_0203CF1C); @@ -764,8 +1129,8 @@ void sub_81C0484(u8 taskId) { if (sub_81221EC() != 1 && !gPaletteFade.active) { - SetMainCallback2(gUnknown_0203CF1C->unk4); - gUnknown_0203CF20 = gUnknown_0203CF1C->unk40BE; + SetMainCallback2(gUnknown_0203CF1C->callback); + gUnknown_0203CF20 = gUnknown_0203CF1C->curMonIndex; sub_81C4898(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -828,9 +1193,9 @@ void sub_81C0604(u8 taskId, s8 a) { s8 r4_2; - if (gUnknown_0203CF1C->unk40C3 == 0) + if (!gUnknown_0203CF1C->unk40C3) { - if (gUnknown_0203CF1C->unk40BD == 1) + if (gUnknown_0203CF1C->isBoxMon == TRUE) { if (gUnknown_0203CF1C->unk40C0 != 0) { @@ -846,7 +1211,7 @@ void sub_81C0604(u8 taskId, s8 a) else a = 3; } - r4_2 = sub_80D214C(gUnknown_0203CF1C->unk0, gUnknown_0203CF1C->unk40BE, gUnknown_0203CF1C->unk40BF, a); + r4_2 = sub_80D214C(gUnknown_0203CF1C->monList.boxMons, gUnknown_0203CF1C->curMonIndex, gUnknown_0203CF1C->maxMonIndex, a); } else if (sub_81B1250() == 1) { @@ -867,7 +1232,7 @@ void sub_81C0604(u8 taskId, s8 a) schedule_bg_copy_tilemap_to_vram(0); sub_81C2074(0, 2); } - gUnknown_0203CF1C->unk40BE = r4_2; + gUnknown_0203CF1C->curMonIndex = r4_2; gTasks[taskId].data[0] = 0; gTasks[taskId].func = sub_81C0704; } @@ -885,10 +1250,10 @@ void sub_81C0704(u8 taskId) break; case 1: sub_81C4898(); - DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D3[0]]); + DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->spriteIds[0]]); break; case 2: - DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D3[1]]); + DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->spriteIds[1]]); break; case 3: sub_81C0098(&gUnknown_0203CF1C->currentMon); @@ -911,10 +1276,10 @@ void sub_81C0704(u8 taskId) data[1] = 0; break; case 8: - gUnknown_0203CF1C->unk40D3[0] = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &data[1]); - if (gUnknown_0203CF1C->unk40D3[0] == 0xFF) + gUnknown_0203CF1C->spriteIds[0] = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &data[1]); + if (gUnknown_0203CF1C->spriteIds[0] == 0xFF) return; - gSprites[gUnknown_0203CF1C->unk40D3[0]].data[2] = 1; + gSprites[gUnknown_0203CF1C->spriteIds[0]].data[2] = 1; sub_81C0E24(); data[1] = 0; break; @@ -929,7 +1294,7 @@ void sub_81C0704(u8 taskId) sub_81C2524(); break; case 12: - gSprites[gUnknown_0203CF1C->unk40D3[0]].data[2] = 0; + gSprites[gUnknown_0203CF1C->spriteIds[0]].data[2] = 0; break; default: if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0) @@ -944,24 +1309,24 @@ void sub_81C0704(u8 taskId) s8 sub_81C08F8(s8 a) { - struct Pokemon *mon = gUnknown_0203CF1C->unk0->mon; + struct Pokemon *mon = gUnknown_0203CF1C->monList.mons; if (gUnknown_0203CF1C->unk40C0 == 0) { - if (a == -1 && gUnknown_0203CF1C->unk40BE == 0) + if (a == -1 && gUnknown_0203CF1C->curMonIndex == 0) return -1; - if (a == 1 && gUnknown_0203CF1C->unk40BE >= gUnknown_0203CF1C->unk40BF) + if (a == 1 && gUnknown_0203CF1C->curMonIndex >= gUnknown_0203CF1C->maxMonIndex) return -1; - return gUnknown_0203CF1C->unk40BE + a; + return gUnknown_0203CF1C->curMonIndex + a; } else { - s8 index = gUnknown_0203CF1C->unk40BE; + s8 index = gUnknown_0203CF1C->curMonIndex; do { index += a; - if (index < 0 || index > gUnknown_0203CF1C->unk40BF) + if (index < 0 || index > gUnknown_0203CF1C->maxMonIndex) return -1; } while (GetMonData(&mon[index], MON_DATA_IS_EGG) != 0); return index; @@ -970,23 +1335,23 @@ s8 sub_81C08F8(s8 a) s8 sub_81C09B4(s8 a) { - struct Pokemon *mon = gUnknown_0203CF1C->unk0->mon; + struct Pokemon *mon = gUnknown_0203CF1C->monList.mons; s8 r5 = 0; u8 i; for (i = 0; i < 6; i++) { - if (gUnknown_0861CC1C[i] == gUnknown_0203CF1C->unk40BE) + if (gUnknown_0861CC1C[i] == gUnknown_0203CF1C->curMonIndex) { r5 = i; break; } } - while (1) + while (TRUE) { int b; - s8* c = &gUnknown_0861CC1C[0]; + const s8* c = gUnknown_0861CC1C; r5 += a; if (r5 < 0 || r5 >= 6) @@ -1001,7 +1366,7 @@ bool8 sub_81C0A50(struct Pokemon* mon) { if (GetMonData(mon, MON_DATA_SPECIES) == 0) return FALSE; - else if (gUnknown_0203CF1C->unk40BE != 0 || GetMonData(mon, MON_DATA_IS_EGG) == 0) + else if (gUnknown_0203CF1C->curMonIndex != 0 || GetMonData(mon, MON_DATA_IS_EGG) == 0) return TRUE; else return FALSE; @@ -1014,10 +1379,11 @@ void sub_81C0A8C(u8 taskId, s8 b) if (summary->isEgg) return; - if (b == -1 && gUnknown_0203CF1C->unk40C0 == gUnknown_0203CF1C->unk40C1) + else if (b == -1 && gUnknown_0203CF1C->unk40C0 == gUnknown_0203CF1C->unk40C1) return; - if (b == 1 && gUnknown_0203CF1C->unk40C0 == gUnknown_0203CF1C->unk40C2) + else if (b == 1 && gUnknown_0203CF1C->unk40C0 == gUnknown_0203CF1C->unk40C2) return; + PlaySE(SE_SELECT); sub_81C2C38(gUnknown_0203CF1C->unk40C0); gUnknown_0203CF1C->unk40C0 += b; @@ -1122,7 +1488,7 @@ void sub_81C0D44(u8 taskId) SwitchTaskToFollowupFunc(taskId); } -void sub_81C0E24() +void sub_81C0E24(void) { if (gUnknown_0203CF1C->unk40C0 == 1) sub_81C22CC(&gUnknown_0203CF1C->currentMon); @@ -1131,20 +1497,20 @@ void sub_81C0E24() void sub_81C0E48(u8 taskId) { u16 move; - gUnknown_0203CF1C->unk40C6 = 0; - move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]; + gUnknown_0203CF1C->firstMoveIndex = 0; + move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; ClearWindowTilemap(0x13); - if (gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible == 0) + if (gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible == 0) ClearWindowTilemap(0xD); sub_81C1DA4(9, -3); sub_81C1EFC(9, -3, move); - if (gUnknown_0203CF1C->unk40C8 == 0) + if (!gUnknown_0203CF1C->unk40C8) { ClearWindowTilemap(5); PutWindowTilemap(6); } - sub_81C2194(&gUnknown_0203CF1C->unkTilemap2[0], 3, 0); - sub_81C2194(&gUnknown_0203CF1C->unkTilemap3[0], 1, 0); + sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer3[0], 3, 0); + sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer4[0], 1, 0); sub_81C3E9C(move); sub_81C3F44(); sub_81C44F0(); @@ -1165,17 +1531,17 @@ void sub_81C0F44(u8 taskId) if (gMain.newKeys & DPAD_UP) { data[0] = 4; - sub_81C1070(data, -1, &gUnknown_0203CF1C->unk40C6); + sub_81C1070(data, -1, &gUnknown_0203CF1C->firstMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 4; - sub_81C1070(data, 1, &gUnknown_0203CF1C->unk40C6); + sub_81C1070(data, 1, &gUnknown_0203CF1C->firstMoveIndex); } else if (gMain.newKeys & A_BUTTON) { - if (gUnknown_0203CF1C->unk40C8 == 1 - || (gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + if (gUnknown_0203CF1C->unk40C8 == TRUE + || (gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) { PlaySE(SE_SELECT); sub_81C11F4(taskId); @@ -1226,7 +1592,7 @@ void sub_81C1070(s16 *a, s8 b, u8 *c) moveIndex = a[0]; if (moveIndex == 4) { - move = gUnknown_0203CF1C->unk40C4; + move = gUnknown_0203CF1C->newMove; break; } move = gUnknown_0203CF1C->summary.moves[moveIndex]; @@ -1237,16 +1603,16 @@ void sub_81C1070(s16 *a, s8 b, u8 *c) schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); sub_81C3E9C(move); - if ((*c == 4 && gUnknown_0203CF1C->unk40C4 == 0) || a[1] == 1) + if ((*c == 4 && gUnknown_0203CF1C->newMove == MOVE_NONE) || a[1] == 1) { ClearWindowTilemap(19); - if (!gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible) + if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) ClearWindowTilemap(13); schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(9, -3); sub_81C1EFC(9, -3, move); } - if (*c != 4 && moveIndex == 4 && gUnknown_0203CF1C->unk40C4 == 0) + if (*c != 4 && moveIndex == 4 && gUnknown_0203CF1C->newMove == MOVE_NONE) { ClearWindowTilemap(14); ClearWindowTilemap(15); @@ -1255,7 +1621,7 @@ void sub_81C1070(s16 *a, s8 b, u8 *c) sub_81C1EFC(0, 3, 0); } *c = moveIndex; - if (c == &gUnknown_0203CF1C->unk40C6) + if (c == &gUnknown_0203CF1C->firstMoveIndex) sub_81C4D18(8); else sub_81C4D18(18); @@ -1267,10 +1633,10 @@ void sub_81C11F4(u8 taskId) ClearWindowTilemap(6); PutWindowTilemap(5); sub_81C3E9C(0); - sub_81C2194(&gUnknown_0203CF1C->unkTilemap2[0], 3, 1); - sub_81C2194(&gUnknown_0203CF1C->unkTilemap3[0], 1, 1); + sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer3[0], 3, 1); + sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer4[0], 1, 1); sub_81C4064(); - if (gUnknown_0203CF1C->unk40C6 != 4) + if (gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) { ClearWindowTilemap(14); ClearWindowTilemap(15); @@ -1285,7 +1651,7 @@ void sub_81C11F4(u8 taskId) void sub_81C129C(u8 taskId) { - gUnknown_0203CF1C->unk40C7 = gUnknown_0203CF1C->unk40C6; + gUnknown_0203CF1C->secondMoveIndex = gUnknown_0203CF1C->firstMoveIndex; sub_81C4C84(1); sub_81C4AF8(18); gTasks[taskId].func = sub_81C12E4; @@ -1300,16 +1666,16 @@ void sub_81C12E4(u8 taskId) if (gMain.newKeys & DPAD_UP) { data[0] = 3; - sub_81C1070(&data[0], -1, &gUnknown_0203CF1C->unk40C7); + sub_81C1070(&data[0], -1, &gUnknown_0203CF1C->secondMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 3; - sub_81C1070(&data[0], 1, &gUnknown_0203CF1C->unk40C7); + sub_81C1070(&data[0], 1, &gUnknown_0203CF1C->secondMoveIndex); } else if (gMain.newKeys & A_BUTTON) { - if (gUnknown_0203CF1C->unk40C6 == gUnknown_0203CF1C->unk40C7) + if (gUnknown_0203CF1C->firstMoveIndex == gUnknown_0203CF1C->secondMoveIndex) { sub_81C13B0(taskId, 0); } @@ -1329,22 +1695,22 @@ void sub_81C13B0(u8 taskId, u8 b) sub_81C4C60(18); if (b == 1) { - if (gUnknown_0203CF1C->unk40BD == 0) + if (!gUnknown_0203CF1C->isBoxMon) { - struct Pokemon *why = gUnknown_0203CF1C->unk0->mon; - sub_81C14BC(&why[gUnknown_0203CF1C->unk40BE], gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7); + struct Pokemon *why = gUnknown_0203CF1C->monList.mons; + sub_81C14BC(&why[gUnknown_0203CF1C->curMonIndex], gUnknown_0203CF1C->firstMoveIndex, gUnknown_0203CF1C->secondMoveIndex); } else { - struct BoxPokemon *why = gUnknown_0203CF1C->unk0->boxMon; - sub_81C15EC(&why[gUnknown_0203CF1C->unk40BE], gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7); + struct BoxPokemon *why = gUnknown_0203CF1C->monList.boxMons; + sub_81C15EC(&why[gUnknown_0203CF1C->curMonIndex], gUnknown_0203CF1C->firstMoveIndex, gUnknown_0203CF1C->secondMoveIndex); } sub_81C0098(&gUnknown_0203CF1C->currentMon); - sub_81C40A0(gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7); - sub_81C4568(gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7); - gUnknown_0203CF1C->unk40C6 = gUnknown_0203CF1C->unk40C7; + sub_81C40A0(gUnknown_0203CF1C->firstMoveIndex, gUnknown_0203CF1C->secondMoveIndex); + sub_81C4568(gUnknown_0203CF1C->firstMoveIndex, gUnknown_0203CF1C->secondMoveIndex); + gUnknown_0203CF1C->firstMoveIndex = gUnknown_0203CF1C->secondMoveIndex; } - move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]; + move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; sub_81C3E9C(move); sub_81C240C(move); schedule_bg_copy_tilemap_to_vram(1); @@ -1793,12 +2159,12 @@ void sub_81C174C(u8 taskId) if (gMain.newKeys & DPAD_UP) { data[0] = 4; - sub_81C1070(data, -1, &gUnknown_0203CF1C->unk40C6); + sub_81C1070(data, -1, &gUnknown_0203CF1C->firstMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 4; - sub_81C1070(data, 1, &gUnknown_0203CF1C->unk40C6); + sub_81C1070(data, 1, &gUnknown_0203CF1C->firstMoveIndex); } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { @@ -1814,7 +2180,7 @@ void sub_81C174C(u8 taskId) { sub_81C48F0(); PlaySE(SE_SELECT); - gUnknown_0203CF21 = gUnknown_0203CF1C->unk40C6; + gUnknown_0203CF21 = gUnknown_0203CF1C->firstMoveIndex; gSpecialVar_0x8005 = gUnknown_0203CF21; sub_81C044C(taskId); } @@ -1837,9 +2203,9 @@ void sub_81C174C(u8 taskId) } } -bool8 sub_81C18A8() +bool8 sub_81C18A8(void) { - if (gUnknown_0203CF1C->unk40C6 == 4 || gUnknown_0203CF1C->unk40C4 == 0 || sub_81B6D14(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]) != 1) + if (gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES || gUnknown_0203CF1C->newMove == MOVE_NONE || sub_81B6D14(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]) != 1) return TRUE; else return FALSE; @@ -1866,7 +2232,7 @@ void sub_81C1940(u8 taskId) { data[1] = 1; data[0] = 4; - sub_81C1070(&data[0], -1, &gUnknown_0203CF1C->unk40C6); + sub_81C1070(&data[0], -1, &gUnknown_0203CF1C->firstMoveIndex); data[1] = 0; gTasks[taskId].func = sub_81C174C; } @@ -1874,7 +2240,7 @@ void sub_81C1940(u8 taskId) { data[1] = 1; data[0] = 4; - sub_81C1070(&data[0], 1, &gUnknown_0203CF1C->unk40C6); + sub_81C1070(&data[0], 1, &gUnknown_0203CF1C->firstMoveIndex); data[1] = 0; gTasks[taskId].func = sub_81C174C; } @@ -1882,11 +2248,10 @@ void sub_81C1940(u8 taskId) { if (gUnknown_0203CF1C->unk40C0 != 2) { - ClearWindowTilemap(19); - if (!gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible) + if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) ClearWindowTilemap(13); - move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]; + move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; gTasks[taskId].func = sub_81C174C; sub_81C0A8C(taskId, -1); sub_81C1DA4(9, -2); @@ -1898,9 +2263,9 @@ void sub_81C1940(u8 taskId) if (gUnknown_0203CF1C->unk40C0 != 3) { ClearWindowTilemap(19); - if (!gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible) + if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) ClearWindowTilemap(13); - move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]; + move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; gTasks[taskId].func = sub_81C174C; sub_81C0A8C(taskId, 1); sub_81C1DA4(9, -2); @@ -1910,9 +2275,9 @@ void sub_81C1940(u8 taskId) else if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { ClearWindowTilemap(19); - if (!gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible) + if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) ClearWindowTilemap(13); - move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]; + move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; sub_81C3E9C(move); schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(9, -3); @@ -1922,12 +2287,12 @@ void sub_81C1940(u8 taskId) } } -u8 sub_81C1B94() +u8 sub_81C1B94(void) { return gUnknown_0203CF21; } -void sub_81C1BA0() +void sub_81C1BA0(void) { u16 *alloced = Alloc(32); u8 i; @@ -1992,173 +2357,34 @@ void sub_81C1BA0() Free(alloced); } -struct UnkStruct_61CC04 +void sub_81C1CB0(const struct UnkStruct_61CC04 *unkStruct, u16 *dest, u8 c, bool8 d) { - u8 *ptr; - u8 field_4; - u8 field_5; - u8 field_6; - u8 field_7; - u8 field_8; - u8 field_9; -}; - -#ifdef NONMATCHING -void sub_81C1CB0(struct UnkStruct_61CC04 *a, u16 *b, u8 c, u8 d) -{ - u8 *alloced = Alloc(a->field_6 * (a->field_7 << 1)); - CpuFill16(a->field_4, alloced, a->field_7*a->field_6); - if (a->field_6 != c) + u16 i; + u16 *alloced = Alloc(unkStruct->field_6 * 2 * unkStruct->field_7); + CpuFill16(unkStruct->field_4, alloced, unkStruct->field_6 * 2 * unkStruct->field_7); + if (unkStruct->field_6 != c) { if (!d) { - for (d;d < a->field_7; d++) + for (i = 0; i < unkStruct->field_7; i++) { - CpuCopy16(&a->ptr + ((c + a->field_6*d)), alloced + ((a->field_6*d) << 1), (a->field_6 - c) * 2); + CpuCopy16(&unkStruct->ptr[c + unkStruct->field_6 * i], &alloced[unkStruct->field_6 * i], (unkStruct->field_6 - c) * 2); } } else { - for (d = 0;d < a->field_7; d++) + for (i = 0; i < unkStruct->field_7; i++) { - CpuCopy16(&a->ptr + (a->field_6*d), alloced + ((c + a->field_6*d) << 1), (a->field_6 - c) * 2); + CpuCopy16(&unkStruct->ptr[unkStruct->field_6 * i], &alloced[c + unkStruct->field_6 * i], (unkStruct->field_6 - c) * 2); } } } - d = 0; - while (d < a->field_7) + for (i = 0; i < unkStruct->field_7; i++) { - CpuCopy16(alloced + ((a->field_6*d) << 1), b + ((((a->field_9 + d) << 5) + a->field_8) << 1), a->field_6 * 2); - d++; + CpuCopy16(&alloced[unkStruct->field_6 * i], &dest[(unkStruct->field_9 + i) * 32 + unkStruct->field_8], unkStruct->field_6 * 2); } Free(alloced); } -#else -NAKED -void sub_81C1CB0(struct UnkStruct_61CC04 *a, u16 *b, u8 c, u8 d) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - sub sp, 0x4\n\ - adds r4, r0, 0\n\ - mov r8, r1\n\ - lsls r2, 24\n\ - lsrs r6, r2, 24\n\ - lsls r3, 24\n\ - lsrs r5, r3, 24\n\ - ldrb r1, [r4, 0x6]\n\ - ldrb r0, [r4, 0x7]\n\ - lsls r0, 1\n\ - muls r0, r1\n\ - bl Alloc\n\ - adds r7, r0, 0\n\ - mov r1, sp\n\ - ldrh r0, [r4, 0x4]\n\ - strh r0, [r1]\n\ - ldrb r1, [r4, 0x7]\n\ - ldrb r0, [r4, 0x6]\n\ - adds r2, r1, 0\n\ - muls r2, r0\n\ - movs r0, 0x80\n\ - lsls r0, 17\n\ - orrs r2, r0\n\ - mov r0, sp\n\ - adds r1, r7, 0\n\ - bl CpuSet\n\ - ldrb r0, [r4, 0x6]\n\ - cmp r0, r6\n\ - beq _081C1D60\n\ - cmp r5, 0\n\ - bne _081C1D30\n\ - movs r5, 0\n\ - ldrb r0, [r4, 0x7]\n\ - cmp r5, r0\n\ - bcs _081C1D60\n\ -_081C1D00:\n\ - ldrb r2, [r4, 0x6]\n\ - adds r1, r2, 0\n\ - muls r1, r5\n\ - adds r3, r6, r1\n\ - lsls r3, 1\n\ - ldr r0, [r4]\n\ - adds r0, r3\n\ - lsls r1, 1\n\ - adds r1, r7, r1\n\ - subs r2, r6\n\ - ldr r3, =0x001fffff\n\ - ands r2, r3\n\ - bl CpuSet\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - ldrb r3, [r4, 0x7]\n\ - cmp r5, r3\n\ - bcc _081C1D00\n\ - b _081C1D60\n\ - .pool\n\ -_081C1D30:\n\ - movs r5, 0\n\ - ldrb r0, [r4, 0x7]\n\ - cmp r5, r0\n\ - bcs _081C1D60\n\ -_081C1D38:\n\ - ldrb r2, [r4, 0x6]\n\ - adds r1, r2, 0\n\ - muls r1, r5\n\ - lsls r3, r1, 1\n\ - ldr r0, [r4]\n\ - adds r0, r3\n\ - adds r1, r6, r1\n\ - lsls r1, 1\n\ - adds r1, r7, r1\n\ - subs r2, r6\n\ - ldr r3, =0x001fffff\n\ - ands r2, r3\n\ - bl CpuSet\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - ldrb r3, [r4, 0x7]\n\ - cmp r5, r3\n\ - bcc _081C1D38\n\ -_081C1D60:\n\ - movs r5, 0\n\ - b _081C1D8A\n\ - .pool\n\ -_081C1D68:\n\ - ldrb r2, [r4, 0x6]\n\ - adds r0, r2, 0\n\ - muls r0, r5\n\ - lsls r0, 1\n\ - adds r0, r7, r0\n\ - ldrb r1, [r4, 0x9]\n\ - adds r1, r5\n\ - lsls r1, 5\n\ - ldrb r3, [r4, 0x8]\n\ - adds r1, r3\n\ - lsls r1, 1\n\ - add r1, r8\n\ - bl CpuSet\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ -_081C1D8A:\n\ - ldrb r0, [r4, 0x7]\n\ - cmp r5, r0\n\ - bcc _081C1D68\n\ - adds r0, r7, 0\n\ - bl Free\n\ - add sp, 0x4\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided\n"); -} -#endif void sub_81C1DA4(u16 a, s16 b) { @@ -2166,7 +2392,7 @@ void sub_81C1DA4(u16 a, s16 b) b = gUnknown_0861CC04.field_6; if (b == 0 || b == gUnknown_0861CC04.field_6) { - sub_81C1CB0(&gUnknown_0861CC04, &gUnknown_0203CF1C->unkTilemap2[0], b, 1); + sub_81C1CB0(&gUnknown_0861CC04, &gUnknown_0203CF1C->bgTilemapBuffer3[0], b, 1); } else { @@ -2192,18 +2418,17 @@ void sub_81C1E20(u8 taskId) { data[1] = gUnknown_0861CC04.field_6; } - sub_81C1CB0(&gUnknown_0861CC04, &gUnknown_0203CF1C->unkTilemap2[0], data[1], 1); + sub_81C1CB0(&gUnknown_0861CC04, &gUnknown_0203CF1C->bgTilemapBuffer3[0], data[1], 1); if (data[1] <= 0 || data[1] >= gUnknown_0861CC04.field_6) { if (data[0] < 0) { if (gUnknown_0203CF1C->unk40C0 == 2) PutWindowTilemap(14); - } else { - if (!gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible) + if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) PutWindowTilemap(13); PutWindowTilemap(19); } @@ -2219,7 +2444,7 @@ void sub_81C1EFC(u16 a, s16 b, u16 move) if (b > gUnknown_0861CC10.field_6) b = gUnknown_0861CC10.field_6; if (b == 0 || b == gUnknown_0861CC10.field_6) - sub_81C1CB0(&gUnknown_0861CC10, &gUnknown_0203CF1C->unkTilemap3[0], b, 1); + sub_81C1CB0(&gUnknown_0861CC10, &gUnknown_0203CF1C->bgTilemapBuffer4[0], b, 1); else { u8 taskId = FindTaskIdByFunc(sub_81C1F80); @@ -2243,7 +2468,7 @@ void sub_81C1F80(u8 taskId) { data[1] = gUnknown_0861CC10.field_6; } - sub_81C1CB0(&gUnknown_0861CC10, &gUnknown_0203CF1C->unkTilemap3[0], data[1], 1); + sub_81C1CB0(&gUnknown_0861CC10, &gUnknown_0203CF1C->bgTilemapBuffer4[0], data[1], 1); if (data[1] <= 0 || data[1] >= gUnknown_0861CC10.field_6) { if (data[0] < 0) @@ -2254,7 +2479,7 @@ void sub_81C1F80(u8 taskId) } else { - if (!gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible) + if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) { PutWindowTilemap(13); } @@ -2273,8 +2498,8 @@ void sub_81C2074(u16 a, s16 b) b = gUnknown_0861CBEC.field_6; if (b == 0 || b == gUnknown_0861CBEC.field_6) { - sub_81C1CB0(&gUnknown_0861CBEC, &gUnknown_0203CF1C->unkTilemap0[0], b, 0); - sub_81C1CB0(&gUnknown_0861CBF8, &gUnknown_0203CF1C->unkTilemap0[0], b, 0); + sub_81C1CB0(&gUnknown_0861CBEC, &gUnknown_0203CF1C->bgTilemapBuffer1[0], b, 0); + sub_81C1CB0(&gUnknown_0861CBF8, &gUnknown_0203CF1C->bgTilemapBuffer1[0], b, 0); } else { @@ -2292,8 +2517,8 @@ void sub_81C20F0(u8 taskId) data[1] = 0; else if (data[1] > gUnknown_0861CBEC.field_6) data[1] = gUnknown_0861CBEC.field_6; - sub_81C1CB0(&gUnknown_0861CBEC, &gUnknown_0203CF1C->unkTilemap0[0], data[1], 0); - sub_81C1CB0(&gUnknown_0861CBF8, &gUnknown_0203CF1C->unkTilemap0[0], data[1], 0); + sub_81C1CB0(&gUnknown_0861CBEC, &gUnknown_0203CF1C->bgTilemapBuffer1[0], data[1], 0); + sub_81C1CB0(&gUnknown_0861CBF8, &gUnknown_0203CF1C->bgTilemapBuffer1[0], data[1], 0); schedule_bg_copy_tilemap_to_vram(3); if (data[1] <= 0 || data[1] >= gUnknown_0861CBEC.field_6) { @@ -2307,126 +2532,44 @@ void sub_81C20F0(u8 taskId) } } -// somebody send help this is a complete fucking mess -#ifdef NONMATCHING -void sub_81C2194(u16 *a, u16 b, u8 c) +void sub_81C2194(u16 *output, u16 palette, bool8 c) { u16 i; - int var; - b *= 0x1000; + u32 var; + palette <<= 12; var = 0x56A; if (c == 0) { for (i = 0; i < 20; i++) { - a[(i + var) << 1] = gSummaryScreenWindow_Tilemap[i] + b; - a[((i + var) << 1) + 0x40] = gSummaryScreenWindow_Tilemap[i] + b; - a[((i + var) << 1) + 0x80] = gSummaryScreenWindow_Tilemap[i + 20] + b; + output[var + i] = gSummaryScreenWindow_Tilemap[i] + palette; + output[var + i + 0x20] = gSummaryScreenWindow_Tilemap[i] + palette; + output[var + i + 0x40] = gSummaryScreenWindow_Tilemap[i + 20] + palette; } } else { for (i = 0; i < 20; i++) { - a[(i + var)] = gSummaryScreenWindow_Tilemap[i + 20] + b; - a[((i + var)) + 0x40] = gSummaryScreenWindow_Tilemap[i + 40] + b; - a[((i + var)) + 0x80] = gSummaryScreenWindow_Tilemap[i + 40] + b; + output[var + i] = gSummaryScreenWindow_Tilemap[i + 20] + palette; + output[var + i + 0x20] = gSummaryScreenWindow_Tilemap[i + 40] + palette; + output[var + i + 0x40] = gSummaryScreenWindow_Tilemap[i + 40] + palette; } } } -#else -NAKED -void sub_81C2194(u16 *a, u16 b, u8 c) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - adds r6, r0, 0\n\ - lsls r2, 24\n\ - lsls r1, 28\n\ - lsrs r4, r1, 16\n\ - ldr r7, =0x0000056a\n\ - cmp r2, 0\n\ - bne _081C21E4\n\ - movs r3, 0\n\ - ldr r5, =gSummaryScreenWindow_Tilemap\n\ -_081C21A8:\n\ - adds r2, r7, r3\n\ - lsls r2, 1\n\ - adds r2, r6\n\ - lsls r0, r3, 1\n\ - adds r0, r5\n\ - ldrh r1, [r0]\n\ - adds r1, r4, r1\n\ - strh r1, [r2]\n\ - adds r0, r2, 0\n\ - adds r0, 0x40\n\ - strh r1, [r0]\n\ - adds r2, 0x80\n\ - adds r0, r3, 0\n\ - adds r0, 0x14\n\ - lsls r0, 1\n\ - adds r0, r5\n\ - ldrh r0, [r0]\n\ - adds r0, r4, r0\n\ - strh r0, [r2]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x13\n\ - bls _081C21A8\n\ - b _081C221C\n\ - .pool\n\ -_081C21E4:\n\ - movs r3, 0\n\ - ldr r5, =gSummaryScreenWindow_Tilemap\n\ -_081C21E8:\n\ - adds r1, r7, r3\n\ - lsls r1, 1\n\ - adds r1, r6\n\ - adds r0, r3, 0\n\ - adds r0, 0x14\n\ - lsls r0, 1\n\ - adds r0, r5\n\ - ldrh r0, [r0]\n\ - adds r0, r4, r0\n\ - strh r0, [r1]\n\ - adds r2, r1, 0\n\ - adds r2, 0x40\n\ - adds r0, r3, 0\n\ - adds r0, 0x28\n\ - lsls r0, 1\n\ - adds r0, r5\n\ - ldrh r0, [r0]\n\ - adds r0, r4, r0\n\ - strh r0, [r2]\n\ - adds r1, 0x80\n\ - strh r0, [r1]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x13\n\ - bls _081C21E8\n\ -_081C221C:\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif void sub_81C2228(struct Pokemon *mon) { if (!CheckPartyPokerus(mon, 0) && CheckPartyHasHadPokerus(mon, 0)) { - gUnknown_0203CF1C->unkTilemap0[0x223] = 0x2C; - gUnknown_0203CF1C->unkTilemap0_1[0x223] = 0x2C; + gUnknown_0203CF1C->bgTilemapBuffer1[0x223] = 0x2C; + gUnknown_0203CF1C->bgTilemapBuffer1[0x623] = 0x2C; } else { - gUnknown_0203CF1C->unkTilemap0[0x223] = 0x81A; - gUnknown_0203CF1C->unkTilemap0_1[0x223] = 0x81A; + gUnknown_0203CF1C->bgTilemapBuffer1[0x223] = 0x81A; + gUnknown_0203CF1C->bgTilemapBuffer1[0x623] = 0x81A; } schedule_bg_copy_tilemap_to_vram(3); } @@ -2461,7 +2604,7 @@ void sub_81C22CC(struct Pokemon *unused) r6r7 = 0; } - r9 = &gUnknown_0203CF1C->unkTilemap1_1[0x255]; + r9 = &gUnknown_0203CF1C->bgTilemapBuffer2[0x655]; for (i = 0; i < 8; i++) { if (r6r7 > 7) @@ -2473,7 +2616,7 @@ void sub_81C22CC(struct Pokemon *unused) r6r7 = 0; } - if (GetBgTilemapBuffer(1) == gUnknown_0203CF1C->unkTilemap1) + if (GetBgTilemapBuffer(1) == gUnknown_0203CF1C->bgTilemapBuffer2) schedule_bg_copy_tilemap_to_vram(1); else schedule_bg_copy_tilemap_to_vram(2); @@ -2481,7 +2624,7 @@ void sub_81C22CC(struct Pokemon *unused) void sub_81C240C(u16 move) { - u16* r5 = &gUnknown_0203CF1C->unkTilemap3_1[0]; + u16* r5 = &gUnknown_0203CF1C->bgTilemapBuffer4[0x400]; u8 i; u8 r4; if (move != MOVE_NONE) @@ -2513,7 +2656,7 @@ void sub_81C240C(u16 move) } } -void sub_81C2524() +void sub_81C2524(void) { if (gUnknown_0203CF1C->summary.isEgg != 0) ChangeBgX(3, 0x10000, 0); @@ -2521,23 +2664,23 @@ void sub_81C2524() ChangeBgX(3, 0, 0); } -void sub_81C2554() +void sub_81C2554(void) { u8 i; - InitWindows(&gUnknown_0861CC24); + InitWindows(gUnknown_0861CC24); DeactivateAllTextPrinters(); for (i = 0; i < 20; i++) FillWindowPixelBuffer(i, 0); for (i = 0; i < 8; i++) - gUnknown_0203CF1C->unk40CB[i] |= 0xFF; + gUnknown_0203CF1C->windowIds[i] |= 0xFF; } void sub_81C25A4(u8 a, const u8 *b, u8 c, u8 d, u8 e, u8 f) { - AddTextPrinterParameterized2(a, 1, c, d, 0, e, gUnknown_0861CD2C[f], 0, b); + AddTextPrinterParameterized2(a, 1, c, d, 0, e, sTextColors_861CD2C[f], 0, b); } -void sub_81C25E8() +void sub_81C25E8(void) { FillWindowPixelBuffer(17, 0); FillWindowPixelBuffer(18, 0); @@ -2549,7 +2692,7 @@ void sub_81C25E8() schedule_bg_copy_tilemap_to_vram(0); } -void sub_81C2628() +void sub_81C2628(void) { u8 strArray[16]; struct Pokemon *mon = &gUnknown_0203CF1C->currentMon; @@ -2594,7 +2737,7 @@ void sub_81C2628() PutWindowTilemap(19); } -void sub_81C2794() +void sub_81C2794(void) { GetMonNickname(&gUnknown_0203CF1C->currentMon, gStringVar1); sub_81C25A4(18, gStringVar1, 0, 1, 0, 1); @@ -2625,7 +2768,7 @@ void sub_81C2838(u8 a, bool8 b, u32 c) BlitBitmapToWindow(a, (b) ? &gUnknown_0861CDD3[0] : &gUnknown_0861CDD3[0] - 0x80, c, 0, 16, 16); } -void sub_81C286C() +void sub_81C286C(void) { int r4; int r2; @@ -2705,9 +2848,9 @@ void sub_81C2AFC(u8 a) break; case 2: PutWindowTilemap(2); - if (gUnknown_0203CF1C->unk40BC == 3) + if (gUnknown_0203CF1C->mode == 3) { - if(!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + if(!(gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) PutWindowTilemap(14); } else @@ -2715,9 +2858,9 @@ void sub_81C2AFC(u8 a) break; case 3: PutWindowTilemap(3); - if (gUnknown_0203CF1C->unk40BC == 3) + if (gUnknown_0203CF1C->mode == 3) { - if(!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + if(!(gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) PutWindowTilemap(15); } else @@ -2726,7 +2869,7 @@ void sub_81C2AFC(u8 a) } for (i = 0; i < 8; i++) { - PutWindowTilemap(gUnknown_0203CF1C->unk40CB[i]); + PutWindowTilemap(gUnknown_0203CF1C->windowIds[i]); } schedule_bg_copy_tilemap_to_vram(0); } @@ -2748,18 +2891,18 @@ void sub_81C2C38(u8 a) ClearWindowTilemap(12); break; case 2: - if (gUnknown_0203CF1C->unk40BC == 3) + if (gUnknown_0203CF1C->mode == 3) { - if(!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + if(!(gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) ClearWindowTilemap(14); } else ClearWindowTilemap(5); break; case 3: - if (gUnknown_0203CF1C->unk40BC == 3) + if (gUnknown_0203CF1C->mode == 3) { - if(!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + if(!(gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) ClearWindowTilemap(15); } else @@ -2771,9 +2914,9 @@ void sub_81C2C38(u8 a) schedule_bg_copy_tilemap_to_vram(0); } -u8 sub_81C2D2C(struct WindowTemplate *template, u8 a) +u8 sub_81C2D2C(const struct WindowTemplate *template, u8 a) { - u8 *windowIdPtr = &(gUnknown_0203CF1C->unk40CB[a]); + u8 *windowIdPtr = &(gUnknown_0203CF1C->windowIds[a]); if (*windowIdPtr == 0xFF) { *windowIdPtr = AddWindow(&template[a]); @@ -2784,7 +2927,7 @@ u8 sub_81C2D2C(struct WindowTemplate *template, u8 a) void sub_81C2D68(u8 a) { - u8 *windowIdPtr = &(gUnknown_0203CF1C->unk40CB[a]); + u8 *windowIdPtr = &(gUnknown_0203CF1C->windowIds[a]); if (*windowIdPtr != 0xFF) { ClearWindowTilemap(*windowIdPtr); @@ -2798,8 +2941,8 @@ void sub_81C2D9C(u8 a) u16 i; for (i = 0; i < 8; i++) { - if (gUnknown_0203CF1C->unk40CB[i] != 0xFF) - FillWindowPixelBuffer(gUnknown_0203CF1C->unk40CB[i], 0); + if (gUnknown_0203CF1C->windowIds[i] != 0xFF) + FillWindowPixelBuffer(gUnknown_0203CF1C->windowIds[i], 0); } gUnknown_0861CE54[a](); } @@ -2809,7 +2952,7 @@ void sub_81C2DE4(u8 a) CreateTask(gUnknown_0861CE64[a], 16); } -void sub_81C2E00() +void sub_81C2E00(void) { if (gUnknown_0203CF1C->summary.isEgg) { @@ -2860,13 +3003,13 @@ void sub_81C2E40(u8 taskId) data[0]++; } -void sub_81C2EC4() +void sub_81C2EC4(void) { u8 r5; int r2; if (sub_81A6BF4() != 1 && sub_81B9E94() != 1) { - r5 = sub_81C2D2C(&gUnknown_0861CCCC, 0); + r5 = sub_81C2D2C(gUnknown_0861CCCC, 0); sub_81C25A4(r5, gText_OTSlash, 0, 1, 0, 1); r2 = GetStringWidth(1, gText_OTSlash, 0); if (gUnknown_0203CF1C->summary.OTGender == 0) @@ -2876,33 +3019,33 @@ void sub_81C2EC4() } } -void sub_81C2F5C() +void sub_81C2F5C(void) { int r4; if (sub_81A6BF4() != TRUE && sub_81B9E94() != TRUE) { ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)gUnknown_0203CF1C->summary.OTID, 2, 5); r4 = GetStringRightAlignXOffset(1, gStringVar1, 0x38); - sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 1), gStringVar1, r4, 1, 0, 1); + sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 1), gStringVar1, r4, 1, 0, 1); } } -void sub_81C2FD8() +void sub_81C2FD8(void) { u8 ability = GetAbilityBySpecies(gUnknown_0203CF1C->summary.species, gUnknown_0203CF1C->summary.altAbility); - sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 2), gAbilityNames[ability], 0, 1, 0, 1); + sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 2), gAbilityNames[ability], 0, 1, 0, 1); } -void sub_81C302C() +void sub_81C302C(void) { u8 ability = GetAbilityBySpecies(gUnknown_0203CF1C->summary.species, gUnknown_0203CF1C->summary.altAbility); - sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 2), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); + sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 2), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); } -void sub_81C307C() +void sub_81C307C(void) { struct PokeSummary *sum = &gUnknown_0203CF1C->summary; - u8 *text; + const u8 *text; DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_0861CE74); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_0861CE7B); @@ -2938,12 +3081,12 @@ void sub_81C307C() } } -void sub_81C3194() +void sub_81C3194(void) { - sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 3), gStringVar4, 0, 1, 0, 0); + sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 3), gStringVar4, 0, 1, 0, 0); } -void sub_81C31C0() +void sub_81C31C0(void) { struct UnkSummaryStruct *sumStruct = gUnknown_0203CF1C; DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gNatureNamePointers[sumStruct->summary.nature]); @@ -2959,14 +3102,15 @@ void sub_81C31F0(u8 *a) DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, a); } -u8 sub_81C3220() +u8 sub_81C3220(void) { struct PokeSummary *sum = &gUnknown_0203CF1C->summary; u32 r4; u8 r5; - if (gUnknown_0203CF1C->unk0 == (union UnkUnion *)&gEnemyParty) + + if (gUnknown_0203CF1C->monList.mons == gEnemyParty) { - u8 multiID = GetMultiplayerId()^1; + u8 multiID = GetMultiplayerId() ^ 1; r4 = (u16)gLinkPlayers[multiID].trainerId; r5 = gLinkPlayers[multiID].gender; StringCopy(gStringVar1, gLinkPlayers[multiID].name); @@ -2984,7 +3128,7 @@ u8 sub_81C3220() return 1; } -bool8 sub_81C32BC() +bool8 sub_81C32BC(void) { struct PokeSummary *sum = &gUnknown_0203CF1C->summary; u8 r0 = sum->metGame - 1; @@ -2993,7 +3137,7 @@ bool8 sub_81C32BC() return FALSE; } -bool8 sub_81C32E0() +bool8 sub_81C32E0(void) { struct PokeSummary *sum = &gUnknown_0203CF1C->summary; u8 r0 = sum->metGame - 1; @@ -3002,91 +3146,36 @@ bool8 sub_81C32E0() return FALSE; } -bool8 sub_81C3304() +bool8 sub_81C3304(void) { if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) && gMain.inBattle) { - if (gUnknown_0203CF1C->unk40BE == 1 || gUnknown_0203CF1C->unk40BE == 4 || gUnknown_0203CF1C->unk40BE == 5) + if (gUnknown_0203CF1C->curMonIndex == 1 || gUnknown_0203CF1C->curMonIndex == 4 || gUnknown_0203CF1C->curMonIndex == 5) return TRUE; } return FALSE; } -#ifdef NONMATCHING -void sub_81C335C() +void sub_81C335C(void) { - u8 r4 = sub_81C2D2C(&gUnknown_0861CCCC, 0); - u32 r5 = GetStringWidth(1, gText_OTSlash, 0); - sub_81C25A4(r4, gText_OTSlash, 0, 1, 0, 1); - sub_81C25A4(r4, gText_FiveMarks, r5, 1, 0, 1); + u32 windowId = sub_81C2D2C(gUnknown_0861CCCC, 0); + u32 width = GetStringWidth(1, gText_OTSlash, 0); + sub_81C25A4(windowId, gText_OTSlash, 0, 1, 0, 1); + sub_81C25A4(windowId, gText_FiveMarks, width, 1, 0, 1); } -#else -NAKED -void sub_81C335C() -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5,r6}\n\ - sub sp, 0x8\n\ - ldr r0, =gUnknown_0861CCCC\n\ - movs r1, 0\n\ - bl sub_81C2D2C\n\ - adds r4, r0, 0\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - ldr r0, =gText_OTSlash\n\ - mov r8, r0\n\ - movs r0, 0x1\n\ - mov r1, r8\n\ - movs r2, 0\n\ - bl GetStringWidth\n\ - adds r5, r0, 0\n\ - movs r0, 0\n\ - mov r9, r0\n\ - str r0, [sp]\n\ - movs r6, 0x1\n\ - str r6, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - mov r1, r8\n\ - movs r2, 0\n\ - movs r3, 0x1\n\ - bl sub_81C25A4\n\ - ldr r1, =gText_FiveMarks\n\ - lsls r5, 24\n\ - lsrs r5, 24\n\ - mov r0, r9\n\ - str r0, [sp]\n\ - str r6, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - adds r2, r5, 0\n\ - movs r3, 0x1\n\ - bl sub_81C25A4\n\ - add sp, 0x8\n\ - pop {r3,r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif -void sub_81C33CC() +void sub_81C33CC(void) { int r4; StringCopy(gStringVar1, gText_UnkCtrlF907F908); StringAppend(gStringVar1, gText_FiveMarks); r4 = GetStringRightAlignXOffset(1, gStringVar1, 0x38); - sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 1), gStringVar1, r4, 1, 0, 1); + sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 1), gStringVar1, r4, 1, 0, 1); } -void sub_81C3428() +void sub_81C3428(void) { - u8 *text; + const u8 *text; struct PokeSummary *sum = &gUnknown_0203CF1C->summary; if (gUnknown_0203CF1C->summary.sanity == 1) text = gText_EggWillTakeALongTime; @@ -3098,12 +3187,12 @@ void sub_81C3428() text = gText_EggWillTakeSomeTime; else text = gText_EggWillTakeALongTime; - sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 2), text, 0, 1, 0, 0); + sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 2), text, 0, 1, 0, 0); } -void sub_81C349C() +void sub_81C349C(void) { - u8 *text; + const u8 *text; struct PokeSummary *sum = &gUnknown_0203CF1C->summary; if (gUnknown_0203CF1C->summary.sanity != 1) { @@ -3118,10 +3207,10 @@ void sub_81C349C() } else text = gText_OddEggFoundByCouple; - sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 3), text, 0, 1, 0, 0); + sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 3), text, 0, 1, 0, 0); } -void sub_81C3530() +void sub_81C3530(void) { sub_81C35E4(); sub_81C3690(); @@ -3166,11 +3255,11 @@ void sub_81C3554(u8 taskId) data[0]++; } -void sub_81C35E4() +void sub_81C35E4(void) { const u8 *text; int offset; - if (gUnknown_0203CF1C->summary.item == ITEM_ENIGMA_BERRY && sub_81B1250() == 1 && (gUnknown_0203CF1C->unk40BE == 1 || gUnknown_0203CF1C->unk40BE == 4 || gUnknown_0203CF1C->unk40BE == 5)) + if (gUnknown_0203CF1C->summary.item == ITEM_ENIGMA_BERRY && sub_81B1250() == 1 && (gUnknown_0203CF1C->curMonIndex == 1 || gUnknown_0203CF1C->curMonIndex == 4 || gUnknown_0203CF1C->curMonIndex == 5)) { text = ItemId_GetName(ITEM_ENIGMA_BERRY); } @@ -3182,12 +3271,12 @@ void sub_81C35E4() text = gStringVar1; } offset = GetStringCenterAlignXOffset(1, text, 0x48) + 6; - sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCEC, 0), text, offset, 1, 0, 0); + sub_81C25A4(sub_81C2D2C(gUnknown_0861CCEC, 0), text, offset, 1, 0, 0); } -void sub_81C3690() +void sub_81C3690(void) { - u8 *text; + const u8 *text; int offset; if (gUnknown_0203CF1C->summary.ribbons == 0) text = gText_None; @@ -3198,10 +3287,10 @@ void sub_81C3690() text = gStringVar4; } offset = GetStringCenterAlignXOffset(1, text, 0x46) + 6; - sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCEC, 1), text, offset, 1, 0, 0); + sub_81C25A4(sub_81C2D2C(gUnknown_0861CCEC, 1), text, offset, 1, 0, 0); } -void sub_81C3710() +void sub_81C3710(void) { u8 *alloced1 = Alloc(8); u8 *alloced2 = Alloc(8); @@ -3223,12 +3312,12 @@ void sub_81C3710() Free(alloced4); } -void sub_81C37D8() +void sub_81C37D8(void) { - sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCEC, 2), gStringVar4, 4, 1, 0, 0); + sub_81C25A4(sub_81C2D2C(gUnknown_0861CCEC, 2), gStringVar4, 4, 1, 0, 0); } -void sub_81C3808() +void sub_81C3808(void) { ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.spatk, 1, 3); ConvertIntToDecimalStringN(gStringVar2, gUnknown_0203CF1C->summary.spdef, 1, 3); @@ -3240,15 +3329,15 @@ void sub_81C3808() DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE8E); } -void sub_81C3890() +void sub_81C3890(void) { - sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCEC, 3), gStringVar4, 2, 1, 0, 0); + sub_81C25A4(sub_81C2D2C(gUnknown_0861CCEC, 3), gStringVar4, 2, 1, 0, 0); } -void sub_81C38C0() +void sub_81C38C0(void) { struct PokeSummary *sum = &gUnknown_0203CF1C->summary; - u8 r6 = sub_81C2D2C(&gUnknown_0861CCEC, 4); + u8 r6 = sub_81C2D2C(gUnknown_0861CCEC, 4); int offset; u32 expToNextLevel; ConvertIntToDecimalStringN(gStringVar1, sum->exp, 1, 7); @@ -3263,22 +3352,22 @@ void sub_81C38C0() sub_81C25A4(r6, gStringVar1, offset, 17, 0, 0); } -void sub_81C3984() +void sub_81C3984(void) { sub_81C3B08(0); sub_81C3B08(1); sub_81C3B08(2); sub_81C3B08(3); - if (gUnknown_0203CF1C->unk40BC == 3) + if (gUnknown_0203CF1C->mode == 3) { sub_81C3F44(); - if (gUnknown_0203CF1C->unk40C6 == 4) + if (gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES) { - if (gUnknown_0203CF1C->unk40C4 != 0) - sub_81C3E9C(gUnknown_0203CF1C->unk40C4); + if (gUnknown_0203CF1C->newMove != MOVE_NONE) + sub_81C3E9C(gUnknown_0203CF1C->newMove); } else - sub_81C3E9C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]); + sub_81C3E9C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]); } } @@ -3302,22 +3391,22 @@ void sub_81C39F0(u8 taskId) sub_81C3B08(3); break; case 4: - if (gUnknown_0203CF1C->unk40BC == 3) + if (gUnknown_0203CF1C->mode == 3) sub_81C3F44(); break; case 5: - if (gUnknown_0203CF1C->unk40BC == 3) + if (gUnknown_0203CF1C->mode == 3) { - if (gUnknown_0203CF1C->unk40C6 == 4) - data[1] = gUnknown_0203CF1C->unk40C4; + if (gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES) + data[1] = gUnknown_0203CF1C->newMove; else - data[1] = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]; + data[1] = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; } break; case 6: - if (gUnknown_0203CF1C->unk40BC == 3) + if (gUnknown_0203CF1C->mode == 3) { - if (!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) + if (!(gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) sub_81C3E9C(data[1]); } break; @@ -3328,193 +3417,44 @@ void sub_81C39F0(u8 taskId) data[0]++; } -#ifdef NONMATCHING void sub_81C3B08(u8 a) { - struct UnkSummaryStruct *r10 = gUnknown_0203CF1C; - u8 r8 = sub_81C2D2C(&gUnknown_0861CD14, 0); - u8 sp = sub_81C2D2C(&gUnknown_0861CD14, 1); - u8 r6; - u8 r5; - u8 *text; - int offset; - u16 move; - if (r10->summary.moves[a] != 0) + u8 pp; + u32 ppState; + const u8 *text; + u32 offset; + struct UnkSummaryStruct *summaryStruct = gUnknown_0203CF1C; + u8 r8 = sub_81C2D2C(gUnknown_0861CD14, 0); + u8 sp = sub_81C2D2C(gUnknown_0861CD14, 1); + u16 move = summaryStruct->summary.moves[a]; + + if (move != 0) { - move = r10->summary.moves[a]; - r6 = CalculatePPWithBonus(move, r10->summary.ppBonuses, a); - sub_81C25A4(r8, gMoveNames[move], 0, (a<<4) + 1, 0, 1); - ConvertIntToDecimalStringN(gStringVar1, r10->summary.pp[a], 1, 2); - ConvertIntToDecimalStringN(gStringVar2, r6, 1, 2); + pp = CalculatePPWithBonus(move, summaryStruct->summary.ppBonuses, a); + sub_81C25A4(r8, gMoveNames[move], 0, a * 16 + 1, 0, 1); + ConvertIntToDecimalStringN(gStringVar1, summaryStruct->summary.pp[a], 1, 2); + ConvertIntToDecimalStringN(gStringVar2, pp, 1, 2); DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2); DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE97); text = gStringVar4; - r5 = GetCurrentPpToMaxPpState(r10->summary.pp[a], r6) + 9; + ppState = GetCurrentPpToMaxPpState(summaryStruct->summary.pp[a], pp) + 9; offset = GetStringRightAlignXOffset(1, text, 0x2C); } else { - sub_81C25A4(r8, gText_OneDash, 0, (a<<4) + 1, 0, 1); + sub_81C25A4(r8, gText_OneDash, 0, a * 16 + 1, 0, 1); text = gText_TwoDashes; - r5 = 12; + ppState = 12; offset = GetStringCenterAlignXOffset(1, text, 0x2C); } - sub_81C25A4(sp, text, offset, (a<<4), 0, r5); + sub_81C25A4(sp, text, offset, a * 16 + 1, 0, ppState); } -#else -NAKED -void sub_81C3B08(u8 a) -{ - 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 r7, r0, 24\n\ - ldr r0, =gUnknown_0203CF1C\n\ - ldr r0, [r0]\n\ - mov r10, r0\n\ - ldr r4, =gUnknown_0861CD14\n\ - adds r0, r4, 0\n\ - movs r1, 0\n\ - bl sub_81C2D2C\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0x1\n\ - bl sub_81C2D2C\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x8]\n\ - lsls r1, r7, 1\n\ - mov r0, r10\n\ - adds r0, 0x84\n\ - adds r0, r1\n\ - ldrh r5, [r0]\n\ - cmp r5, 0\n\ - beq _081C3C00\n\ - mov r0, r10\n\ - adds r0, 0xA4\n\ - ldrb r1, [r0]\n\ - adds r0, r5, 0\n\ - adds r2, r7, 0\n\ - bl CalculatePPWithBonus\n\ - adds r6, r0, 0\n\ - lsls r6, 24\n\ - lsrs r6, 24\n\ - movs r0, 0xD\n\ - adds r1, r5, 0\n\ - muls r1, r0\n\ - ldr r0, =gMoveNames\n\ - adds r1, r0\n\ - lsls r0, r7, 4\n\ - mov r9, r0\n\ - mov r3, r9\n\ - adds r3, 0x1\n\ - lsls r3, 24\n\ - lsrs r3, 24\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - movs r0, 0x1\n\ - str r0, [sp, 0x4]\n\ - mov r0, r8\n\ - movs r2, 0\n\ - bl sub_81C25A4\n\ - ldr r0, =gStringVar1\n\ - mov r8, r0\n\ - mov r5, r10\n\ - adds r5, 0x8C\n\ - adds r5, r7\n\ - ldrb r1, [r5]\n\ - movs r2, 0x1\n\ - movs r3, 0x2\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r4, =gStringVar2\n\ - adds r0, r4, 0\n\ - adds r1, r6, 0\n\ - movs r2, 0x1\n\ - movs r3, 0x2\n\ - bl ConvertIntToDecimalStringN\n\ - bl DynamicPlaceholderTextUtil_Reset\n\ - movs r0, 0\n\ - mov r1, r8\n\ - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr\n\ - movs r0, 0x1\n\ - adds r1, r4, 0\n\ - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr\n\ - ldr r4, =gStringVar4\n\ - ldr r1, =gUnknown_0861CE97\n\ - adds r0, r4, 0\n\ - bl DynamicPlaceholderTextUtil_ExpandPlaceholders\n\ - adds r7, r4, 0\n\ - ldrb r0, [r5]\n\ - adds r1, r6, 0\n\ - bl GetCurrentPpToMaxPpState\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - adds r5, r0, 0\n\ - adds r5, 0x9\n\ - movs r0, 0x1\n\ - adds r1, r7, 0\n\ - movs r2, 0x2C\n\ - bl GetStringRightAlignXOffset\n\ - mov r4, r9\n\ - b _081C3C26\n\ - .pool\n\ -_081C3C00:\n\ - ldr r1, =gText_OneDash\n\ - lsls r4, r7, 4\n\ - adds r3, r4, 0x1\n\ - lsls r3, 24\n\ - lsrs r3, 24\n\ - str r5, [sp]\n\ - movs r0, 0x1\n\ - str r0, [sp, 0x4]\n\ - mov r0, r8\n\ - movs r2, 0\n\ - bl sub_81C25A4\n\ - ldr r7, =gText_TwoDashes\n\ - movs r5, 0xC\n\ - movs r0, 0x1\n\ - adds r1, r7, 0\n\ - movs r2, 0x2C\n\ - bl GetStringCenterAlignXOffset\n\ -_081C3C26:\n\ - lsls r2, r0, 24\n\ - lsrs r2, 24\n\ - adds r3, r4, 0x1\n\ - lsls r3, 24\n\ - lsrs r3, 24\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - lsls r0, r5, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x4]\n\ - ldr r0, [sp, 0x8]\n\ - adds r1, r7, 0\n\ - bl sub_81C25A4\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\n\ - .pool\n\ - .syntax divided\n"); -} -#endif void sub_81C3C5C(u16 move) { - u8 *text; + const u8 *text; if (move != 0) { FillWindowPixelRect(14, 0, 0x35, 0, 0x13, 0x20); @@ -3537,16 +3477,16 @@ void sub_81C3C5C(u16 move) } } -void sub_81C3D08() +void sub_81C3D08(void) { sub_81C3B08(0); sub_81C3B08(1); sub_81C3B08(2); sub_81C3B08(3); - if (gUnknown_0203CF1C->unk40BC == 3) + if (gUnknown_0203CF1C->mode == 3) { sub_81C3F44(); - sub_81C3E2C(gUnknown_0203CF1C->unk40C6); + sub_81C3E2C(gUnknown_0203CF1C->firstMoveIndex); } } @@ -3570,14 +3510,14 @@ void sub_81C3D54(u8 taskId) sub_81C3B08(3); break; case 4: - if (gUnknown_0203CF1C->unk40BC == 3) + if (gUnknown_0203CF1C->mode == 3) sub_81C3F44(); break; case 5: - if (gUnknown_0203CF1C->unk40BC == 3) + if (gUnknown_0203CF1C->mode == 3) { - if (!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4)) - sub_81C3E2C(gUnknown_0203CF1C->unk40C6); + if (!(gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) + sub_81C3E2C(gUnknown_0203CF1C->firstMoveIndex); } break; case 6: @@ -3592,20 +3532,20 @@ void sub_81C3E2C(u8 moveSlot) u16 move; if (moveSlot == 4) - move = gUnknown_0203CF1C->unk40C4; + move = gUnknown_0203CF1C->newMove; else move = gUnknown_0203CF1C->summary.moves[moveSlot]; if (move != MOVE_NONE) { - u8 windowId = sub_81C2D2C(&gUnknown_0861CD14, 2); + u8 windowId = sub_81C2D2C(gUnknown_0861CD14, 2); sub_81C25A4(windowId, gContestEffectDescriptionPointers[gContestMoves[move].effect], 6, 1, 0, 0); } } void sub_81C3E9C(u16 move) { - u8 windowId = sub_81C2D2C(&gUnknown_0861CD14, 2); + u8 windowId = sub_81C2D2C(gUnknown_0861CD14, 2); FillWindowPixelBuffer(windowId, 0); if (move != MOVE_NONE) { @@ -3630,15 +3570,15 @@ void sub_81C3E9C(u16 move) void sub_81C3F44(void) { - u8 windowId1 = sub_81C2D2C(&gUnknown_0861CD14, 0); - u8 windowId2 = sub_81C2D2C(&gUnknown_0861CD14, 1); - if (gUnknown_0203CF1C->unk40C4 == MOVE_NONE) + u8 windowId1 = sub_81C2D2C(gUnknown_0861CD14, 0); + u8 windowId2 = sub_81C2D2C(gUnknown_0861CD14, 1); + if (gUnknown_0203CF1C->newMove == MOVE_NONE) { sub_81C25A4(windowId1, gText_Cancel, 0, 0x41, 0, 1); } else { - u16 move = gUnknown_0203CF1C->unk40C4; + u16 move = gUnknown_0203CF1C->newMove; if (gUnknown_0203CF1C->unk40C0 == 2) sub_81C25A4(windowId1, gMoveNames[move], 0, 0x41, 0, 6); else @@ -3655,15 +3595,15 @@ void sub_81C3F44(void) void sub_81C4064(void) { - u8 windowId = sub_81C2D2C(&gUnknown_0861CD14, 0); + u8 windowId = sub_81C2D2C(gUnknown_0861CD14, 0); FillWindowPixelRect(windowId, 0, 0, 0x42, 0x48, 0x10); CopyWindowToVram(windowId, 2); } void sub_81C40A0(u8 a, u8 b) { - u8 windowId1 = sub_81C2D2C(&gUnknown_0861CD14, 0); - u8 windowId2 = sub_81C2D2C(&gUnknown_0861CD14, 1); + u8 windowId1 = sub_81C2D2C(gUnknown_0861CD14, 0); + u8 windowId2 = sub_81C2D2C(gUnknown_0861CD14, 1); FillWindowPixelRect(windowId1, 0, 0, a * 16, 0x48, 0x10); FillWindowPixelRect(windowId1, 0, 0, b * 16, 0x48, 0x10); @@ -3677,7 +3617,7 @@ void sub_81C40A0(u8 a, u8 b) void sub_81C4154(void) { - u8 windowId = sub_81C2D2C(&gUnknown_0861CD14, 2); + u8 windowId = sub_81C2D2C(gUnknown_0861CD14, 2); FillWindowPixelBuffer(windowId, 0); sub_81C25A4(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0); } @@ -3687,21 +3627,21 @@ void sub_81C4190(void) u8 i; for (i = 0; i < 28; i++) - gUnknown_0203CF1C->unk40D3[i] |= 0xFF; + gUnknown_0203CF1C->spriteIds[i] |= 0xFF; } void sub_81C41C0(u8 spriteArrayId) { - if (gUnknown_0203CF1C->unk40D3[spriteArrayId] != 0xFF) + if (gUnknown_0203CF1C->spriteIds[spriteArrayId] != 0xFF) { - DestroySprite(&gSprites[gUnknown_0203CF1C->unk40D3[spriteArrayId]]); - gUnknown_0203CF1C->unk40D3[spriteArrayId] = 0xFF; + DestroySprite(&gSprites[gUnknown_0203CF1C->spriteIds[spriteArrayId]]); + gUnknown_0203CF1C->spriteIds[spriteArrayId] = 0xFF; } } void sub_81C4204(u8 spriteArrayId, bool8 invisible) { - gSprites[gUnknown_0203CF1C->unk40D3[spriteArrayId]].invisible = invisible; + gSprites[gUnknown_0203CF1C->spriteIds[spriteArrayId]].invisible = invisible; } void sub_81C424C(void) @@ -3710,7 +3650,7 @@ void sub_81C424C(void) for (i = 3; i < 28; i++) { - if (gUnknown_0203CF1C->unk40D3[i] != 0xFF) + if (gUnknown_0203CF1C->spriteIds[i] != 0xFF) sub_81C4204(i, TRUE); } } @@ -3739,18 +3679,16 @@ void sub_81C42C8(void) for (i = 3; i < 8; i++) { - if (gUnknown_0203CF1C->unk40D3[i] == 0xFF) - gUnknown_0203CF1C->unk40D3[i] = CreateSprite(&gUnknown_0861CFC4, 0, 0, 2); + if (gUnknown_0203CF1C->spriteIds[i] == 0xFF) + gUnknown_0203CF1C->spriteIds[i] = CreateSprite(&gUnknown_0861CFC4, 0, 0, 2); sub_81C4204(i, TRUE); } } -extern const u8 gUnknown_0861CFDC[]; - void sub_81C4318(u8 typeId, u8 x, u8 y, u8 spriteArrayId) { - struct Sprite *sprite = &gSprites[gUnknown_0203CF1C->unk40D3[spriteArrayId]]; + struct Sprite *sprite = &gSprites[gUnknown_0203CF1C->spriteIds[spriteArrayId]]; StartSpriteAnim(sprite, typeId); sprite->oam.paletteNum = gUnknown_0861CFDC[typeId]; sprite->pos1.x = x + 16; @@ -3809,15 +3747,351 @@ void sub_81C4484(void) void sub_81C44F0(void) { - if (gUnknown_0203CF1C->unk40C4 == MOVE_NONE) + if (gUnknown_0203CF1C->newMove == MOVE_NONE) { sub_81C4204(7, TRUE); } else { if (gUnknown_0203CF1C->unk40C0 == 2) - sub_81C4318(gBattleMoves[gUnknown_0203CF1C->unk40C4].type, 0x55, 0x60, 7); + sub_81C4318(gBattleMoves[gUnknown_0203CF1C->newMove].type, 0x55, 0x60, 7); else - sub_81C4318(NUMBER_OF_MON_TYPES + gContestMoves[gUnknown_0203CF1C->unk40C4].contestCategory, 0x55, 0x60, 7); + sub_81C4318(NUMBER_OF_MON_TYPES + gContestMoves[gUnknown_0203CF1C->newMove].contestCategory, 0x55, 0x60, 7); + } +} + +void sub_81C4568(u8 a0, u8 a1) +{ + struct Sprite *sprite1 = &gSprites[gUnknown_0203CF1C->spriteIds[a0 + 3]]; + struct Sprite *sprite2 = &gSprites[gUnknown_0203CF1C->spriteIds[a1 + 3]]; + + u8 temp = sprite1->animNum; + sprite1->animNum = sprite2->animNum; + sprite2->animNum = temp; + + temp = sprite1->oam.paletteNum; + sprite1->oam.paletteNum = sprite2->oam.paletteNum; + sprite2->oam.paletteNum = temp; + + sprite1->animBeginning = TRUE; + sprite1->animEnded = FALSE; + sprite2->animBeginning = TRUE; + sprite2->animEnded = FALSE; +} + +u8 sub_81C45F4(struct Pokemon *mon, s16 *a1) +{ + const struct CompressedSpritePalette *pal; + struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + + switch (*a1) + { + default: + return sub_81C47B4(mon); + case 0: + if (gMain.inBattle) + { + if (sub_80688F8(3, gUnknown_0203CF1C->curMonIndex)) + { + HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid); + } + else + { + HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid); + } + } + else + { + if (gMonSpritesGfxPtr != NULL) + { + if (gUnknown_0203CF1C->monList.mons == gPlayerParty || gUnknown_0203CF1C->mode == 2 || gUnknown_0203CF1C->unk40EF == TRUE) + { + HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid); + } + else + { + HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid); + } + } + else + { + if (gUnknown_0203CF1C->monList.mons == gPlayerParty || gUnknown_0203CF1C->mode == 2 || gUnknown_0203CF1C->unk40EF == TRUE) + { + HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], sub_806F4F8(0, 1), summary->species2, summary->pid); + } + else + { + HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], sub_806F4F8(0, 1), summary->species2, summary->pid); + } + } + } + (*a1)++; + return -1; + case 1: + pal = GetMonSpritePalStructFromOtIdPersonality(summary->species2, summary->OTID, summary->pid); + LoadCompressedObjectPalette(pal); + SetMultiuseSpriteTemplateToPokemon(pal->tag, 1); + (*a1)++; + return -1; + } +} + +void sub_81C4778(void) +{ + struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + if (!summary->isEgg) + { + if (ShouldPlayNormalMonCry(&gUnknown_0203CF1C->currentMon) == TRUE) + { + PlayCry3(summary->species2, 0, 0); + } + else + { + PlayCry3(summary->species2, 0, 11); + } + } +} + +u8 sub_81C47B4(struct Pokemon *unused) +{ + struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + u8 spriteId = CreateSprite(&gMultiuseSpriteTemplate, 40, 64, 5); + struct Sprite *sprite = &gSprites[spriteId]; + + FreeSpriteOamMatrix(sprite); + + sprite->data[0] = summary->species2; + sprite->data[2] = 0; + gSprites[spriteId].callback = sub_81C4844; + sprite->oam.priority = 0; + + if (!IsMonSpriteNotFlipped(summary->species2)) + { + sprite->hFlip = TRUE; + } + else + { + sprite->hFlip = FALSE; + } + + return spriteId; +} + +void sub_81C4844(struct Sprite *sprite) +{ + struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + + if (!gPaletteFade.active && sprite->data[2] != 1) + { + sprite->data[1] = IsMonSpriteNotFlipped(sprite->data[0]); + sub_81C4778(); + PokemonSummaryDoMonAnimation(sprite, sprite->data[0], summary->isEgg); + } +} + +void sub_81C488C(u8 a0) +{ + sUnusedTaskId = a0; +} + +void sub_81C4898(void) +{ + if (sUnusedTaskId != 0xFF) + { + DestroyTask(sUnusedTaskId); + sUnusedTaskId = 0xFF; + } +} + +bool32 sub_81C48B4(void) +{ + if (gSprites[gUnknown_0203CF1C->spriteIds[0]].callback == SpriteCallbackDummy) + { + return FALSE; + } + else + { + return TRUE; + } +} + +void sub_81C48F0(void) +{ + u16 i; + u16 paletteIndex; + + gSprites[gUnknown_0203CF1C->spriteIds[0]].animPaused = TRUE; + gSprites[gUnknown_0203CF1C->spriteIds[0]].callback = SpriteCallbackDummy; + sub_806EE98(); + + paletteIndex = (gSprites[gUnknown_0203CF1C->spriteIds[0]].oam.paletteNum * 16) | 0x100; + + for (i = 0; i < 16; i++) + { + gPlttBufferUnfaded[(u16)(i + paletteIndex)] = gPlttBufferFaded[(u16)(i + paletteIndex)]; + } +} + +void sub_81C4984(struct Pokemon *mon) +{ + struct Sprite *sprite = sub_811FF94(30003, 30003, gUnknown_0861D120); + + gUnknown_0203CF1C->markingsSpriteId = sprite; + + if (sprite != NULL) + { + StartSpriteAnim(sprite, GetMonData(mon, MON_DATA_MARKINGS)); + gUnknown_0203CF1C->markingsSpriteId->pos1.x = 60; + gUnknown_0203CF1C->markingsSpriteId->pos1.y = 26; + gUnknown_0203CF1C->markingsSpriteId->oam.priority = 1; + } +} + +void sub_81C49E0(struct Pokemon *mon) +{ + DestroySprite(gUnknown_0203CF1C->markingsSpriteId); + FreeSpriteTilesByTag(30003); + sub_81C4984(mon); +} + +void sub_81C4A08(struct Pokemon *mon) +{ + u8 ball = ItemIdToBallId(GetMonData(mon, MON_DATA_POKEBALL)); + + LoadBallGfx(ball); + gUnknown_0203CF1C->spriteIds[1] = CreateSprite(&gBallSpriteTemplates[ball], 16, 136, 0); + gSprites[gUnknown_0203CF1C->spriteIds[1]].callback = SpriteCallbackDummy; + gSprites[gUnknown_0203CF1C->spriteIds[1]].oam.priority = 3; +} + +void sub_81C4A88(void) +{ + u8 *spriteId = &gUnknown_0203CF1C->spriteIds[2]; + u8 anim; + + if (*spriteId == 0xFF) + { + *spriteId = CreateSprite(&gUnknown_0861D108, 64, 152, 0); + } + + anim = sub_81B205C(&gUnknown_0203CF1C->currentMon); + + if (anim != 0) + { + StartSpriteAnim(&gSprites[*spriteId], anim - 1); + sub_81C4204(2, FALSE); + } + else + { + sub_81C4204(2, TRUE); + } +} + +void sub_81C4AF8(u8 a0) +{ + u8 i; + u8 *spriteIds = &gUnknown_0203CF1C->spriteIds[a0]; + + if (gUnknown_0203CF1C->unk40C0 > 1) + { + u8 subsprite = 0; + if (a0 == 8) + { + subsprite = 1; + } + + for (i = 0; i < 10; i++) + { + spriteIds[i] = CreateSprite(&gUnknown_0861D084, i * 16 + 89, 40, subsprite); + if (i == 0) + { + StartSpriteAnim(&gSprites[spriteIds[0]], 4); + } + else if (i == 9) + { + StartSpriteAnim(&gSprites[spriteIds[9]], 5); + } + else + { + StartSpriteAnim(&gSprites[spriteIds[i]], 6); + } + gSprites[spriteIds[i]].callback = sub_81C4BE4; + gSprites[spriteIds[i]].data[0] = a0; + gSprites[spriteIds[i]].data[1] = 0; + } + } +} + +void sub_81C4BE4(struct Sprite *sprite) +{ + if (sprite->animNum > 3 && sprite->animNum < 7) + { + sprite->data[1] = (sprite->data[1] + 1) & 0x1F; + if (sprite->data[1] > 24) + { + sprite->invisible = TRUE; + } + else + { + sprite->invisible = FALSE; + } + } + else + { + sprite->data[1] = 0; + sprite->invisible = FALSE; + } + + if (sprite->data[0] == 8) + { + sprite->pos2.y = gUnknown_0203CF1C->firstMoveIndex * 16; + } + else + { + sprite->pos2.y = gUnknown_0203CF1C->secondMoveIndex * 16; + } +} + +void sub_81C4C60(u8 a0) +{ + u8 i; + for (i = 0; i < 10; i++) + { + sub_81C41C0(a0 + i); + } +} + +void sub_81C4C84(u8 a0) +{ + u8 i; + u8 *spriteIds = &gUnknown_0203CF1C->spriteIds[8]; + a0 *= 3; + + for (i = 0; i < 10; i++) + { + if (i == 0) + { + StartSpriteAnim(&gSprites[spriteIds[0]], a0 + 4); + } + else if (i == 9) + { + StartSpriteAnim(&gSprites[spriteIds[9]], a0 + 5); + } + else + { + StartSpriteAnim(&gSprites[spriteIds[i]], a0 + 6); + } + } +} + +void sub_81C4D18(u8 a0) +{ + u8 i; + u8 *spriteIds = &gUnknown_0203CF1C->spriteIds[a0]; + + for (i = 0; i < 10; i++) + { + gSprites[spriteIds[i]].data[1] = 0; + gSprites[spriteIds[i]].invisible = FALSE; } } diff --git a/src/unk_pokedex_area_screen_helper.c b/src/unk_pokedex_area_screen_helper.c new file mode 100644 index 0000000000..3bed79a655 --- /dev/null +++ b/src/unk_pokedex_area_screen_helper.c @@ -0,0 +1,75 @@ +#include "global.h" +#include "main.h" +#include "menu.h" +#include "bg.h" +#include "malloc.h" +#include "palette.h" + +EWRAM_DATA u8 *gUnknown_0203CF28 = NULL; + +static const u16 gUnknown_0861D140[] = INCBIN_U16("graphics/interface/region_map.gbapal"); +extern const u8 gUnknown_0861D1A0[]; +extern const u8 gUnknown_0861DEF4[]; +extern const u8 gUnknown_0861E208[]; +extern const u8 gUnknown_0861EF64[]; + +struct UnkStruct_1C4D70 +{ + u32 bg:2; + u32 unk2:8; + u32 unk10:2; + u32 unk12:20; +}; + +void sub_81C4D70(struct UnkStruct_1C4D70 *template) +{ + u8 unk; + gUnknown_0203CF28 = Alloc(4); + unk = template->unk10; + + if (unk == 0) + { + SetBgAttribute(template->bg, BG_CTRL_ATTR_WRAPAROUND, 0); + decompress_and_copy_tile_data_to_vram(template->bg, gUnknown_0861D1A0, 0, template->unk2, unk); + sub_8199D3C(decompress_and_copy_tile_data_to_vram(template->bg, gUnknown_0861DEF4, 0, 0, 1), template->unk2, 32, 32, unk); + } + else + { + SetBgAttribute(template->bg, BG_CTRL_ATTR_WRAPAROUND, 2); + SetBgAttribute(template->bg, 9, 1); + decompress_and_copy_tile_data_to_vram(template->bg, gUnknown_0861E208, 0, template->unk2, 0); + sub_8199D3C(decompress_and_copy_tile_data_to_vram(template->bg, gUnknown_0861EF64, 0, 0, 1), template->unk2, 64, 64, 1); + } + + ChangeBgX(template->bg, 0, 0); + ChangeBgY(template->bg, 0, 0); + SetBgAttribute(template->bg, BG_CTRL_ATTR_SCREENSIZE, 1); + CpuCopy32(gUnknown_0861D140, &gPlttBufferUnfaded[0x70], 0x60); + *gUnknown_0203CF28 = template->bg; +} + +bool32 sub_81C4E90(void) +{ + if (!free_temp_tile_data_buffers_if_possible()) + { + ShowBg(*gUnknown_0203CF28); + return FALSE; + } + else + { + return TRUE; + } +} + +void sub_81C4EB4(void) +{ + if (gUnknown_0203CF28 != NULL) + { + FREE_AND_SET_NULL(gUnknown_0203CF28); + } +} + +void sub_81C4ED0(u32 a0) +{ + ChangeBgY(*gUnknown_0203CF28, a0 * 0x100, 0); +} diff --git a/sym_ewram.txt b/sym_ewram.txt index cf1c8b8d7f..b54d52f905 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -739,30 +739,9 @@ gUnknown_0203CF00: @ 203CF00 .include "src/fossil_specials.o" .include "src/fldeff_groundshake.o" - -gUnknown_0203CF1C: @ 203CF1C - .space 0x4 - -gUnknown_0203CF20: @ 203CF20 - .space 0x1 - -gUnknown_0203CF21: @ 203CF21 - .space 0x3 - -gUnknown_0203CF24: @ 203CF24 - .space 0x4 - -gUnknown_0203CF28: @ 203CF28 - .space 0x4 - -gUnknown_0203CF2C: @ 203CF2C - .space 0x4 - -gUnknown_0203CF30: @ 203CF30 - .space 0x8 - -gUnknown_0203CF38: @ 203CF38 - .space 0x4 + .include "src/pokemon_summary_screen.o" + .include "src/unk_pokedex_area_screen_helper.o" + .include "src/battle_pyramid.o" gUnknown_0203CF3C: @ 203CF3C .space 0x4 From 332a8bcb1d6c9b01e27cc4f5a7a08ae26bf62f79 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Tue, 14 Aug 2018 22:05:48 -0700 Subject: [PATCH 103/174] Extract rodata for unk_pokedex_area_screen_helper --- ...ex_area_screen_helper.s => battle_pyramid.s} | 16 ---------------- include/pokemon_storage_system.h | 2 +- include/pokemon_summary_screen.h | 2 +- ld_script.txt | 2 +- src/pokemon_summary_screen.c | 17 ++++++++--------- src/unk_pokedex_area_screen_helper.c | 8 ++++---- 6 files changed, 15 insertions(+), 32 deletions(-) rename data/{unk_pokedex_area_screen_helper.s => battle_pyramid.s} (87%) diff --git a/data/unk_pokedex_area_screen_helper.s b/data/battle_pyramid.s similarity index 87% rename from data/unk_pokedex_area_screen_helper.s rename to data/battle_pyramid.s index 2f3881446f..7327fb1f80 100644 --- a/data/unk_pokedex_area_screen_helper.s +++ b/data/battle_pyramid.s @@ -3,22 +3,6 @@ .section .rodata - .align 2 -gUnknown_0861D1A0:: @ 861D1A0 - .incbin "graphics/interface/region_map.8bpp.lz" - - .align 2 -gUnknown_0861DEF4:: @ 861DEF4 - .incbin "graphics/interface/region_map.bin.lz" - - .align 2 -gUnknown_0861E208:: @ 861E208 - .incbin "graphics/interface/region_map_affine.8bpp.lz" - - .align 2 -gUnknown_0861EF64:: @ 861EF64 - .incbin "graphics/interface/region_map_affine.bin.lz" - .align 2 gUnknown_0861F2B4:: @ 861F2B4 .4byte 0x000011f0, 0x000001e1, 0x000021de diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index a73958d904..9b5358f062 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -83,6 +83,6 @@ void CompactPartySlots(void); u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request); bool8 CheckFreePokemonStorageSpace(void); u8 StorageGetCurrentBox(void); -u8 sub_80D214C(struct BoxPokemon* a, u8 b, u8 c, u8 d); +u8 sub_80D214C(struct BoxPokemon *a, u8 b, u8 c, u8 d); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 0580e793c6..b29548258d 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -2,6 +2,6 @@ #define GUARD_POKEMON_SUMMARY_SCREEN_H void sub_81C4F98(u8, void(*)(void)); -void ShowSelectMovePokemonSummaryScreen(struct Pokemon *a, u8 b, u8 c, void *d, u16 e); +void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16); #endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/ld_script.txt b/ld_script.txt index 462af2946c..2311301b00 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -540,7 +540,7 @@ SECTIONS { src/berry_fix_program.o(.rodata); src/pokemon_summary_screen.o(.rodata); src/unk_pokedex_area_screen_helper.o(.rodata); - data/unk_pokedex_area_screen_helper.o(.rodata); + data/battle_pyramid.o(.rodata); data/pokenav.o(.rodata); src/match_call.o(.rodata); data/pokenav.o(.rodata.after.match.call); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index b5117d45da..4d194f74ac 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -45,13 +45,12 @@ static EWRAM_DATA struct UnkSummaryStruct { - /*0x00*/ union - { + /*0x00*/ union { struct Pokemon *mons; struct BoxPokemon *boxMons; } monList; - /*0x04*/ void (*callback)(void); - /*0x08*/ struct Sprite *markingsSpriteId; + /*0x04*/ MainCallback callback; + /*0x08*/ struct Sprite *markingsSprite; /*0x0C*/ struct Pokemon currentMon; /*0x70*/ struct PokeSummary { @@ -3936,20 +3935,20 @@ void sub_81C4984(struct Pokemon *mon) { struct Sprite *sprite = sub_811FF94(30003, 30003, gUnknown_0861D120); - gUnknown_0203CF1C->markingsSpriteId = sprite; + gUnknown_0203CF1C->markingsSprite = sprite; if (sprite != NULL) { StartSpriteAnim(sprite, GetMonData(mon, MON_DATA_MARKINGS)); - gUnknown_0203CF1C->markingsSpriteId->pos1.x = 60; - gUnknown_0203CF1C->markingsSpriteId->pos1.y = 26; - gUnknown_0203CF1C->markingsSpriteId->oam.priority = 1; + gUnknown_0203CF1C->markingsSprite->pos1.x = 60; + gUnknown_0203CF1C->markingsSprite->pos1.y = 26; + gUnknown_0203CF1C->markingsSprite->oam.priority = 1; } } void sub_81C49E0(struct Pokemon *mon) { - DestroySprite(gUnknown_0203CF1C->markingsSpriteId); + DestroySprite(gUnknown_0203CF1C->markingsSprite); FreeSpriteTilesByTag(30003); sub_81C4984(mon); } diff --git a/src/unk_pokedex_area_screen_helper.c b/src/unk_pokedex_area_screen_helper.c index 3bed79a655..521af6dd9b 100644 --- a/src/unk_pokedex_area_screen_helper.c +++ b/src/unk_pokedex_area_screen_helper.c @@ -8,10 +8,10 @@ EWRAM_DATA u8 *gUnknown_0203CF28 = NULL; static const u16 gUnknown_0861D140[] = INCBIN_U16("graphics/interface/region_map.gbapal"); -extern const u8 gUnknown_0861D1A0[]; -extern const u8 gUnknown_0861DEF4[]; -extern const u8 gUnknown_0861E208[]; -extern const u8 gUnknown_0861EF64[]; +static const u8 gUnknown_0861D1A0[] = INCBIN_U8("graphics/interface/region_map.8bpp.lz"); +static const u8 gUnknown_0861DEF4[] = INCBIN_U8("graphics/interface/region_map.bin.lz"); +static const u8 gUnknown_0861E208[] = INCBIN_U8("graphics/interface/region_map_affine.8bpp.lz"); +static const u8 gUnknown_0861EF64[] = INCBIN_U8("graphics/interface/region_map_affine.bin.lz"); struct UnkStruct_1C4D70 { From 0bc975bf57a1603d2d23265ea9fad39cc05622b9 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 15 Aug 2018 01:44:20 -0700 Subject: [PATCH 104/174] Document and cleanup pokemon_summary_screen --- asm/battle_frontier_2.s | 4 +- asm/party_menu.s | 6 +- asm/pokemon_storage_system.s | 4 +- asm/trade.s | 4 +- include/constants/region_map_sections.h | 4 + include/pokemon_summary_screen.h | 10 + src/pokemon_summary_screen.c | 984 +++++++++++++----------- 7 files changed, 554 insertions(+), 462 deletions(-) diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 8f2d7b0e01..7e72aaf763 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -1244,7 +1244,7 @@ _0819AF1A: movs r0, 0x1 adds r2, r6, 0 movs r3, 0x5 - bl sub_81BF8EC + bl ShowPokemonSummaryScreen _0819AF50: add sp, 0x4 pop {r4-r6} @@ -4373,7 +4373,7 @@ _0819C9C4: str r0, [sp] movs r0, 0 movs r3, 0x2 - bl sub_81BF8EC + bl ShowPokemonSummaryScreen _0819C9F0: add sp, 0x4 pop {r4-r6} diff --git a/asm/party_menu.s b/asm/party_menu.s index 5c70e218e6..92c4905a49 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -6796,7 +6796,7 @@ sub_81B3828: @ 81B3828 ldr r0, =sub_81B3894 str r0, [sp] movs r0, 0x1 - bl sub_81BF8EC + bl ShowPokemonSummaryScreen b _081B3880 .pool _081B3868: @@ -6810,7 +6810,7 @@ _081B3868: ldr r0, =sub_81B3894 str r0, [sp] movs r0, 0 - bl sub_81BF8EC + bl ShowPokemonSummaryScreen _081B3880: add sp, 0x4 pop {r4} @@ -17663,7 +17663,7 @@ sub_81B968C: @ 81B968C ldr r0, =CB2_ReturnToField str r0, [sp] movs r0, 0x3 - bl sub_81BF8EC + bl ShowPokemonSummaryScreen ldr r1, =gFieldCallback ldr r0, =sub_80AF168 str r0, [r1] diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 2633db13f5..8fb4f2decc 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -3685,7 +3685,7 @@ _080C9EB4: adds r1, r4, 0 adds r2, r7, 0 adds r3, r6, 0 - bl sub_81BFA80 + bl ShowPokemonSummaryScreenSet40EF b _080C9F56 .pool _080C9F04: @@ -3695,7 +3695,7 @@ _080C9F04: adds r1, r4, 0 adds r2, r7, 0 adds r3, r6, 0 - bl sub_81BF8EC + bl ShowPokemonSummaryScreen b _080C9F56 .pool _080C9F1C: diff --git a/asm/trade.s b/asm/trade.s index 19dfd5ff92..958bb77ea3 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -3499,7 +3499,7 @@ sub_807905C: @ 807905C ldr r0, =sub_8077B74 str r0, [sp] movs r0, 0x1 - bl sub_81BF8EC + bl ShowPokemonSummaryScreen b _080790C0 .pool _080790A4: @@ -3515,7 +3515,7 @@ _080790A4: ldr r0, =sub_8077B74 str r0, [sp] movs r0, 0x1 - bl sub_81BF8EC + bl ShowPokemonSummaryScreen _080790C0: bl FreeAllWindowBuffers _080790C4: diff --git a/include/constants/region_map_sections.h b/include/constants/region_map_sections.h index b9c518b1b6..8ff75dfa98 100644 --- a/include/constants/region_map_sections.h +++ b/include/constants/region_map_sections.h @@ -216,4 +216,8 @@ #define MAPSEC_TRAINER_HILL 0xD4 #define MAPSEC_NONE 0xD5 +#define MAPSEC_SPECIAL_EGG 0xFD +#define MAPSEC_IN_GAME_TRADE 0xFE +#define MAPSEC_FATEFUL_ENCOUNTER 0xFF + #endif //GUARD_REGIONMAPSEC_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index b29548258d..51175a36a0 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -4,4 +4,14 @@ void sub_81C4F98(u8, void(*)(void)); void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16); +// The Pokemon Summary Screen can operate in different modes. Certain features, +// such as move re-ordering, are available in the different modes. +enum PokemonSummaryScreenMode +{ + PSS_MODE_NORMAL, + PSS_MODE_UNK1, + PSS_MODE_UNK2, + PSS_MODE_SELECT_MOVE, +}; + #endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 4d194f74ac..347f382859 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -28,6 +28,7 @@ #include "pokeball.h" #include "pokemon.h" #include "pokemon_storage_system.h" +#include "pokemon_summary_screen.h" #include "region_map.h" #include "scanline_effect.h" #include "sound.h" @@ -40,6 +41,7 @@ #include "window.h" #include "constants/items.h" #include "constants/moves.h" +#include "constants/region_map_sections.h" #include "constants/songs.h" #include "constants/species.h" @@ -58,7 +60,7 @@ static EWRAM_DATA struct UnkSummaryStruct u16 species2; // 0x2 u8 isEgg; // 0x4 u8 level; // 0x5 - u8 ribbons; // 0x6 + u8 ribbonCount; // 0x6 u8 unk7; // 0x7 u8 altAbility; // 0x8 u8 metLocation; // 0x9 @@ -93,9 +95,9 @@ static EWRAM_DATA struct UnkSummaryStruct bool8 isBoxMon; u8 curMonIndex; u8 maxMonIndex; - u8 unk40C0; - u8 unk40C1; - u8 unk40C2; + u8 currPageIndex; + u8 minPageIndex; + u8 maxPageIndex; bool8 unk40C3; u16 newMove; u8 firstMoveIndex; @@ -131,10 +133,10 @@ struct UnkStruct_61CC04 bool8 sub_81B1250(void); bool8 sub_81BFB10(void); void sub_81BFAE4(void); -void sub_81BFE24(void); +static void InitBGs(void); u8 sub_81BFEB0(void); -void sub_81C0098(struct Pokemon* a); -bool8 sub_81C00F0(struct Pokemon* a); +void CopyMonToSummaryStruct(struct Pokemon* a); +bool8 ExtractMonDataToSummaryStruct(struct Pokemon* a); void sub_81C0348(void); void sub_81C0484(u8 taskId); void sub_81C0510(u8 taskId); @@ -156,7 +158,7 @@ void sub_81C1070(s16* a, s8 b, u8* c); void sub_81C11F4(u8 a); void sub_81C129C(u8 a); void sub_81C12E4(u8 taskId); -void sub_81C13B0(u8 a, u8 b); +void sub_81C13B0(u8 taskId, bool8 b); void sub_81C14BC(struct Pokemon *mon, u8 a, u8 b); void sub_81C15EC(struct BoxPokemon *mon, u8 a, u8 b); void sub_81C171C(u8 taskId); @@ -181,7 +183,7 @@ void sub_81C25E8(void); void sub_81C2628(void); void sub_81C2794(void); void sub_81C27DC(struct Pokemon *mon, u16 a); -void sub_81C286C(void); +void PrintRentalMonStatsPage(void); void sub_81C2AFC(u8 a); void sub_81C2C38(u8 a); void sub_81C2D68(u8 a); @@ -189,38 +191,38 @@ void sub_81C2D9C(u8 a); void sub_81C2DE4(u8 a); void sub_81C2E00(void); void sub_81C2E40(u8 taskId); -void sub_81C2EC4(void); -void sub_81C2F5C(void); -void sub_81C2FD8(void); -void sub_81C302C(void); -void sub_81C307C(void); -void sub_81C3194(void); -void sub_81C31C0(void); -void sub_81C31F0(u8 *a); -u8 sub_81C3220(void); -bool8 sub_81C32BC(void); -bool8 sub_81C3304(void); -void sub_81C335C(void); -void sub_81C33CC(void); -void sub_81C3428(void); -void sub_81C349C(void); +void PrintMonOTName(void); +void PrintMonOTID(void); +void PrintMonAbilityName(void); +void PrintMonAbilityDescription(void); +void BufferMonTrainerMemo(void); +void PrintMonTrainerMemo(void); +void BufferNatureString(void); +void GetMetLevelString(u8 *a); +bool8 DoesMonOTMatchOwner(void); +bool8 MonCameFromGBAGames(void); +bool8 IsInGamePartnerMon(void); +void PrintEggOTName(void); +void PrintEggOTID(void); +void PrintEggState(void); +void PrintEggMemo(void); void sub_81C3554(u8 taskId); -void sub_81C35E4(void); +void PrintHeldItemName(void); void sub_81C3530(void); -void sub_81C3690(void); -void sub_81C3710(void); -void sub_81C37D8(void); -void sub_81C3808(void); -void sub_81C3890(void); -void sub_81C38C0(void); +void PrintRibbonCount(void); +void BufferLeftColumnStats(void); +void PrintLeftColumnStats(void); +void BufferRightColumnStats(void); +void PrintRightColumnStats(void); +void PrintExpPointsNextLevel(void); void sub_81C3984(void); void sub_81C39F0(u8 taskId); -void sub_81C3B08(u8 a); +void PrintMoveNameAndPP(u8 a); void sub_81C3D08(void); void sub_81C3D54(u8 taskId); void sub_81C3E2C(u8 a); void sub_81C3E9C(u16 a); -void sub_81C3F44(void); +void PrintNewMoveDetailsOrCancelText(void); void sub_81C4064(void); void sub_81C40A0(u8 a, u8 b); void sub_81C4154(void); @@ -238,7 +240,7 @@ u8 sub_81C45F4(struct Pokemon *a, s16 *b); u8 sub_81C47B4(struct Pokemon *unused); void sub_81C4844(struct Sprite *); void sub_81C488C(u8 a); -void sub_81C4898(void); +void DestoryUnusedTask(void); void sub_81C48F0(void); void sub_81C4984(struct Pokemon *mon); void sub_81C49E0(struct Pokemon *mon); @@ -710,7 +712,7 @@ static const struct SpriteTemplate gUnknown_0861D108 = static const u16 gUnknown_0861D120[] = INCBIN_U16("graphics/interface/summary_markings.gbapal"); // code -void sub_81BF8EC(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) +void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) { gUnknown_0203CF1C = AllocZeroed(sizeof(*gUnknown_0203CF1C)); gUnknown_0203CF1C->mode = mode; @@ -719,31 +721,31 @@ void sub_81BF8EC(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callba gUnknown_0203CF1C->maxMonIndex = maxMonIndex; gUnknown_0203CF1C->callback = callback; - if (mode == 2) + if (mode == PSS_MODE_UNK2) gUnknown_0203CF1C->isBoxMon = TRUE; else gUnknown_0203CF1C->isBoxMon = FALSE; switch (mode) { - case 0: - case 2: - gUnknown_0203CF1C->unk40C1 = 0; - gUnknown_0203CF1C->unk40C2 = 3; + case PSS_MODE_NORMAL: + case PSS_MODE_UNK2: + gUnknown_0203CF1C->minPageIndex = 0; + gUnknown_0203CF1C->maxPageIndex = 3; break; - case 1: - gUnknown_0203CF1C->unk40C1 = 0; - gUnknown_0203CF1C->unk40C2 = 3; + case PSS_MODE_UNK1: + gUnknown_0203CF1C->minPageIndex = 0; + gUnknown_0203CF1C->maxPageIndex = 3; gUnknown_0203CF1C->unk40C8 = TRUE; break; - case 3: - gUnknown_0203CF1C->unk40C1 = 2; - gUnknown_0203CF1C->unk40C2 = 3; + case PSS_MODE_SELECT_MOVE: + gUnknown_0203CF1C->minPageIndex = 2; + gUnknown_0203CF1C->maxPageIndex = 3; gUnknown_0203CF1C->unk40C3 = TRUE; break; } - gUnknown_0203CF1C->unk40C0 = gUnknown_0203CF1C->unk40C1; + gUnknown_0203CF1C->currPageIndex = gUnknown_0203CF1C->minPageIndex; sub_81C488C(-1); if (gMonSpritesGfxPtr == 0) @@ -754,13 +756,13 @@ void sub_81BF8EC(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callba void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void), u16 newMove) { - sub_81BF8EC(3, mons, monIndex, maxMonIndex, callback); + ShowPokemonSummaryScreen(PSS_MODE_SELECT_MOVE, mons, monIndex, maxMonIndex, callback); gUnknown_0203CF1C->newMove = newMove; } -void sub_81BFA80(u8 a, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) +void ShowPokemonSummaryScreenSet40EF(u8 mode, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) { - sub_81BF8EC(a, mons, monIndex, maxMonIndex, callback); + ShowPokemonSummaryScreen(mode, mons, monIndex, maxMonIndex, callback); gUnknown_0203CF1C->unk40EF = TRUE; } @@ -813,7 +815,7 @@ bool8 sub_81BFB10(void) gMain.state++; break; case 5: - sub_81BFE24(); + InitBGs(); gUnknown_0203CF1C->unk40F0 = 0; gMain.state++; break; @@ -830,12 +832,12 @@ bool8 sub_81BFB10(void) gMain.state++; break; case 9: - sub_81C0098(&gUnknown_0203CF1C->currentMon); + CopyMonToSummaryStruct(&gUnknown_0203CF1C->currentMon); gUnknown_0203CF1C->unk40F0 = 0; gMain.state++; break; case 10: - if (sub_81C00F0(&gUnknown_0203CF1C->currentMon) != 0) + if (ExtractMonDataToSummaryStruct(&gUnknown_0203CF1C->currentMon) != 0) gMain.state++; break; case 11: @@ -843,11 +845,11 @@ bool8 sub_81BFB10(void) gMain.state++; break; case 12: - sub_81C286C(); + PrintRentalMonStatsPage(); gMain.state++; break; case 13: - sub_81C2D9C(gUnknown_0203CF1C->unk40C0); + sub_81C2D9C(gUnknown_0203CF1C->currPageIndex); gMain.state++; break; case 14: @@ -855,7 +857,7 @@ bool8 sub_81BFB10(void) gMain.state++; break; case 15: - sub_81C2AFC(gUnknown_0203CF1C->unk40C0); + sub_81C2AFC(gUnknown_0203CF1C->currPageIndex); gMain.state++; break; case 16: @@ -889,7 +891,7 @@ bool8 sub_81BFB10(void) gMain.state++; break; case 22: - if (gUnknown_0203CF1C->mode != 3) + if (gUnknown_0203CF1C->mode != PSS_MODE_SELECT_MOVE) CreateTask(sub_81C0510, 0); else CreateTask(sub_81C171C, 0); @@ -912,7 +914,7 @@ bool8 sub_81BFB10(void) return FALSE; } -void sub_81BFE24(void) +static void InitBGs(void) { ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gUnknown_0861CBB4, ARRAY_COUNT(gUnknown_0861CBB4)); @@ -996,7 +998,7 @@ bool8 sub_81BFEB0(void) return FALSE; } -void sub_81C0098(struct Pokemon *mon) +void CopyMonToSummaryStruct(struct Pokemon *mon) { if (!gUnknown_0203CF1C->isBoxMon) { @@ -1010,7 +1012,7 @@ void sub_81C0098(struct Pokemon *mon) } } -bool8 sub_81C00F0(struct Pokemon *a) +bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a) { u32 i; struct PokeSummary *sum = &gUnknown_0203CF1C->summary; @@ -1025,10 +1027,12 @@ bool8 sub_81C00F0(struct Pokemon *a) sum->item = GetMonData(a, MON_DATA_HELD_ITEM); sum->pid = GetMonData(a, MON_DATA_PERSONALITY); sum->sanity = GetMonData(a, MON_DATA_SANITY_BIT1); - if (sum->sanity != 0) - sum->isEgg = 1; + + if (sum->sanity) + sum->isEgg = TRUE; else sum->isEgg = GetMonData(a, MON_DATA_IS_EGG); + break; case 1: for (i = 0; i < 4; i++) @@ -1039,7 +1043,7 @@ bool8 sub_81C00F0(struct Pokemon *a) sum->ppBonuses = GetMonData(a, MON_DATA_PP_BONUSES); break; case 2: - if (gUnknown_0203CF1C->monList.mons == gPlayerParty || gUnknown_0203CF1C->mode == 2 || gUnknown_0203CF1C->unk40EF == TRUE) + if (gUnknown_0203CF1C->monList.mons == gPlayerParty || gUnknown_0203CF1C->mode == PSS_MODE_UNK2 || gUnknown_0203CF1C->unk40EF == TRUE) { sum->nature = GetNature(a); sum->currentHP = GetMonData(a, MON_DATA_HP); @@ -1074,7 +1078,7 @@ bool8 sub_81C00F0(struct Pokemon *a) sum->friendship = GetMonData(a, MON_DATA_FRIENDSHIP); break; default: - sum->ribbons = GetMonData(a, MON_DATA_RIBBON_COUNT); + sum->ribbonCount = GetMonData(a, MON_DATA_RIBBON_COUNT); return TRUE; } gUnknown_0203CF1C->unk40F0++; @@ -1083,7 +1087,7 @@ bool8 sub_81C00F0(struct Pokemon *a) void sub_81C0348(void) { - if (gUnknown_0203CF1C->unk40C0 != 2 && gUnknown_0203CF1C->unk40C0 != 3) + if (gUnknown_0203CF1C->currPageIndex != 2 && gUnknown_0203CF1C->currPageIndex != 3) { sub_81C1DA4(0, 255); sub_81C1EFC(0, 255, 0); @@ -1105,7 +1109,7 @@ void sub_81C0348(void) } else { - if (gUnknown_0203CF1C->unk40C0 != 2 && gUnknown_0203CF1C->unk40C0 != 3) + if (gUnknown_0203CF1C->currPageIndex != 2 && gUnknown_0203CF1C->currPageIndex != 3) PutWindowTilemap(13); } sub_81C2524(); @@ -1130,7 +1134,7 @@ void sub_81C0484(u8 taskId) { SetMainCallback2(gUnknown_0203CF1C->callback); gUnknown_0203CF20 = gUnknown_0203CF1C->curMonIndex; - sub_81C4898(); + DestoryUnusedTask(); ResetSpriteData(); FreeAllSpritePalettes(); StopCryAndClearCrySongs(); @@ -1164,9 +1168,9 @@ void sub_81C0510(u8 taskId) } else if (gMain.newKeys & A_BUTTON) { - if (gUnknown_0203CF1C->unk40C0 != 1) + if (gUnknown_0203CF1C->currPageIndex != 1) { - if (gUnknown_0203CF1C->unk40C0 == 0) + if (gUnknown_0203CF1C->currPageIndex == 0) { sub_81C48F0(); PlaySE(SE_SELECT); @@ -1196,7 +1200,7 @@ void sub_81C0604(u8 taskId, s8 a) { if (gUnknown_0203CF1C->isBoxMon == TRUE) { - if (gUnknown_0203CF1C->unk40C0 != 0) + if (gUnknown_0203CF1C->currPageIndex != 0) { if (a == 1) a = 0; @@ -1227,7 +1231,7 @@ void sub_81C0604(u8 taskId, s8 a) if (gUnknown_0203CF1C->summary.unk7 != 0) { sub_81C4204(2, 1); - ClearWindowTilemap(0xD); + ClearWindowTilemap(13); schedule_bg_copy_tilemap_to_vram(0); sub_81C2074(0, 2); } @@ -1248,18 +1252,18 @@ void sub_81C0704(u8 taskId) StopCryAndClearCrySongs(); break; case 1: - sub_81C4898(); + DestoryUnusedTask(); DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->spriteIds[0]]); break; case 2: DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->spriteIds[1]]); break; case 3: - sub_81C0098(&gUnknown_0203CF1C->currentMon); + CopyMonToSummaryStruct(&gUnknown_0203CF1C->currentMon); gUnknown_0203CF1C->unk40F0 = 0; break; case 4: - if (sub_81C00F0(&gUnknown_0203CF1C->currentMon) == FALSE) + if (ExtractMonDataToSummaryStruct(&gUnknown_0203CF1C->currentMon) == FALSE) return; break; case 5: @@ -1289,7 +1293,7 @@ void sub_81C0704(u8 taskId) sub_81C25E8(); break; case 11: - sub_81C2D9C(gUnknown_0203CF1C->unk40C0); + sub_81C2D9C(gUnknown_0203CF1C->currPageIndex); sub_81C2524(); break; case 12: @@ -1310,7 +1314,7 @@ s8 sub_81C08F8(s8 a) { struct Pokemon *mon = gUnknown_0203CF1C->monList.mons; - if (gUnknown_0203CF1C->unk40C0 == 0) + if (gUnknown_0203CF1C->currPageIndex == 0) { if (a == -1 && gUnknown_0203CF1C->curMonIndex == 0) return -1; @@ -1378,20 +1382,20 @@ void sub_81C0A8C(u8 taskId, s8 b) if (summary->isEgg) return; - else if (b == -1 && gUnknown_0203CF1C->unk40C0 == gUnknown_0203CF1C->unk40C1) + else if (b == -1 && gUnknown_0203CF1C->currPageIndex == gUnknown_0203CF1C->minPageIndex) return; - else if (b == 1 && gUnknown_0203CF1C->unk40C0 == gUnknown_0203CF1C->unk40C2) + else if (b == 1 && gUnknown_0203CF1C->currPageIndex == gUnknown_0203CF1C->maxPageIndex) return; PlaySE(SE_SELECT); - sub_81C2C38(gUnknown_0203CF1C->unk40C0); - gUnknown_0203CF1C->unk40C0 += b; + sub_81C2C38(gUnknown_0203CF1C->currPageIndex); + gUnknown_0203CF1C->currPageIndex += b; data[0] = 0; if (b == 1) SetTaskFuncWithFollowupFunc(taskId, sub_81C0B8C, gTasks[taskId].func); else SetTaskFuncWithFollowupFunc(taskId, sub_81C0CC4, gTasks[taskId].func); - sub_81C2DE4(gUnknown_0203CF1C->unk40C0); + sub_81C2DE4(gUnknown_0203CF1C->currPageIndex); sub_81C424C(); } @@ -1415,7 +1419,7 @@ void sub_81C0B8C(u8 taskId) schedule_bg_copy_tilemap_to_vram(2); } ChangeBgX(data[1], 0, 0); - SetBgTilemapBuffer(data[1], (u8*)gUnknown_0203CF1C + ((gUnknown_0203CF1C->unk40C0 << 12) + 0xBC)); + SetBgTilemapBuffer(data[1], (u8*)gUnknown_0203CF1C + ((gUnknown_0203CF1C->currPageIndex << 12) + 0xBC)); ShowBg(1); ShowBg(2); } @@ -1432,7 +1436,7 @@ void sub_81C0C68(u8 taskId) data[1] = 0; data[0] = 0; sub_81C1BA0(); - sub_81C2AFC(gUnknown_0203CF1C->unk40C0); + sub_81C2AFC(gUnknown_0203CF1C->currPageIndex); sub_81C4280(); sub_81C0E24(); SwitchTaskToFollowupFunc(taskId); @@ -1470,9 +1474,9 @@ void sub_81C0D44(u8 taskId) SetBgAttribute(1, 7, 2); schedule_bg_copy_tilemap_to_vram(1); } - if (gUnknown_0203CF1C->unk40C0 > 1) + if (gUnknown_0203CF1C->currPageIndex > 1) { - SetBgTilemapBuffer(data[1], (u8*)gUnknown_0203CF1C + ((gUnknown_0203CF1C->unk40C0 << 12) + 0xFFFFF0BC)); + SetBgTilemapBuffer(data[1], (u8*)gUnknown_0203CF1C + ((gUnknown_0203CF1C->currPageIndex << 12) + 0xFFFFF0BC)); ChangeBgX(data[1], 0x10000, 0); } ShowBg(1); @@ -1481,7 +1485,7 @@ void sub_81C0D44(u8 taskId) data[1] = 0; data[0] = 0; sub_81C1BA0(); - sub_81C2AFC(gUnknown_0203CF1C->unk40C0); + sub_81C2AFC(gUnknown_0203CF1C->currPageIndex); sub_81C4280(); sub_81C0E24(); SwitchTaskToFollowupFunc(taskId); @@ -1489,7 +1493,7 @@ void sub_81C0D44(u8 taskId) void sub_81C0E24(void) { - if (gUnknown_0203CF1C->unk40C0 == 1) + if (gUnknown_0203CF1C->currPageIndex == 1) sub_81C22CC(&gUnknown_0203CF1C->currentMon); } @@ -1511,7 +1515,7 @@ void sub_81C0E48(u8 taskId) sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer3[0], 3, 0); sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer4[0], 1, 0); sub_81C3E9C(move); - sub_81C3F44(); + PrintNewMoveDetailsOrCancelText(); sub_81C44F0(); schedule_bg_copy_tilemap_to_vram(0); schedule_bg_copy_tilemap_to_vram(1); @@ -1658,9 +1662,9 @@ void sub_81C129C(u8 taskId) void sub_81C12E4(u8 taskId) { - u8 a = taskId; s16* data = gTasks[taskId].data; - if (sub_81221EC() != 1) + + if (sub_81221EC() != TRUE) { if (gMain.newKeys & DPAD_UP) { @@ -1679,20 +1683,26 @@ void sub_81C12E4(u8 taskId) sub_81C13B0(taskId, 0); } else + { sub_81C13B0(taskId, 1); + } } else if (gMain.newKeys & B_BUTTON) - sub_81C13B0(a, 0); + { + sub_81C13B0(taskId, 0); + } } } -void sub_81C13B0(u8 taskId, u8 b) +void sub_81C13B0(u8 taskId, bool8 b) { u16 move; + PlaySE(SE_SELECT); sub_81C4C84(0); sub_81C4C60(18); - if (b == 1) + + if (b == TRUE) { if (!gUnknown_0203CF1C->isBoxMon) { @@ -1704,11 +1714,12 @@ void sub_81C13B0(u8 taskId, u8 b) struct BoxPokemon *why = gUnknown_0203CF1C->monList.boxMons; sub_81C15EC(&why[gUnknown_0203CF1C->curMonIndex], gUnknown_0203CF1C->firstMoveIndex, gUnknown_0203CF1C->secondMoveIndex); } - sub_81C0098(&gUnknown_0203CF1C->currentMon); + CopyMonToSummaryStruct(&gUnknown_0203CF1C->currentMon); sub_81C40A0(gUnknown_0203CF1C->firstMoveIndex, gUnknown_0203CF1C->secondMoveIndex); sub_81C4568(gUnknown_0203CF1C->firstMoveIndex, gUnknown_0203CF1C->secondMoveIndex); gUnknown_0203CF1C->firstMoveIndex = gUnknown_0203CF1C->secondMoveIndex; } + move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; sub_81C3E9C(move); sub_81C240C(move); @@ -2245,7 +2256,7 @@ void sub_81C1940(u8 taskId) } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { - if (gUnknown_0203CF1C->unk40C0 != 2) + if (gUnknown_0203CF1C->currPageIndex != 2) { ClearWindowTilemap(19); if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) @@ -2259,7 +2270,7 @@ void sub_81C1940(u8 taskId) } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2) { - if (gUnknown_0203CF1C->unk40C0 != 3) + if (gUnknown_0203CF1C->currPageIndex != 3) { ClearWindowTilemap(19); if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) @@ -2298,30 +2309,30 @@ void sub_81C1BA0(void) for (i = 0; i < 4; i++) { u8 j = i << 1; - if (i < gUnknown_0203CF1C->unk40C1) + if (i < gUnknown_0203CF1C->minPageIndex) { alloced[j+0] = 0x40; alloced[j+1] = 0x40; alloced[j+8] = 0x50; alloced[j+9] = 0x50; } - else if (i > gUnknown_0203CF1C->unk40C2) + else if (i > gUnknown_0203CF1C->maxPageIndex) { alloced[j+0] = 0x4A; alloced[j+1] = 0x4A; alloced[j+8] = 0x5A; alloced[j+9] = 0x5A; } - else if (i < gUnknown_0203CF1C->unk40C0) + else if (i < gUnknown_0203CF1C->currPageIndex) { alloced[j+0] = 0x46; alloced[j+1] = 0x47; alloced[j+8] = 0x56; alloced[j+9] = 0x57; } - else if (i == gUnknown_0203CF1C->unk40C0) + else if (i == gUnknown_0203CF1C->currPageIndex) { - if (i != gUnknown_0203CF1C->unk40C2) + if (i != gUnknown_0203CF1C->maxPageIndex) { alloced[j+0] = 0x41; alloced[j+1] = 0x42; @@ -2336,7 +2347,7 @@ void sub_81C1BA0(void) alloced[j+9] = 0x5C; } } - else if (i != gUnknown_0203CF1C->unk40C2) + else if (i != gUnknown_0203CF1C->maxPageIndex) { alloced[j+0] = 0x43; alloced[j+1] = 0x44; @@ -2422,7 +2433,7 @@ void sub_81C1E20(u8 taskId) { if (data[0] < 0) { - if (gUnknown_0203CF1C->unk40C0 == 2) + if (gUnknown_0203CF1C->currPageIndex == 2) PutWindowTilemap(14); } else @@ -2472,7 +2483,7 @@ void sub_81C1F80(u8 taskId) { if (data[0] < 0) { - if (gUnknown_0203CF1C->unk40C0 == 3 && FuncIsActiveTask(sub_81C0B8C) == 0) + if (gUnknown_0203CF1C->currPageIndex == 3 && FuncIsActiveTask(sub_81C0B8C) == 0) PutWindowTilemap(15); sub_81C240C(data[2]); } @@ -2573,9 +2584,9 @@ void sub_81C2228(struct Pokemon *mon) schedule_bg_copy_tilemap_to_vram(3); } -void sub_81C228C(u8 a) +void sub_81C228C(bool8 isMonShiny) { - if (a == 0) + if (!isMonShiny) sub_8199C30(3, 1, 4, 8, 8, 0); else sub_8199C30(3, 1, 4, 8, 8, 5); @@ -2623,41 +2634,51 @@ void sub_81C22CC(struct Pokemon *unused) void sub_81C240C(u16 move) { - u16* r5 = &gUnknown_0203CF1C->bgTilemapBuffer4[0x400]; + u16* tilemap = &gUnknown_0203CF1C->bgTilemapBuffer4[0x400]; u8 i; - u8 r4; + u8 effectValue; + if (move != MOVE_NONE) { - r4 = gContestEffects[gContestMoves[move].effect].appeal; - if (r4 != 0xFF) - r4 /= 10; - for (i = 0;i < 8; i++) + effectValue = gContestEffects[gContestMoves[move].effect].appeal; + + if (effectValue != 0xFF) + effectValue /= 10; + + for (i = 0; i < 8; i++) { - if (r4 != 0xFF && i < r4) + if (effectValue != 0xFF && i < effectValue) { - r5[((i>>2)*32)+(i&3)+0x1E6] = 0x103A; + tilemap[(i / 4 * 32) + (i & 3) + 0x1E6] = 0x103A; } else - r5[((i>>2)*32)+(i&3)+0x1E6] = 0x1039; + { + tilemap[(i / 4 * 32) + (i & 3) + 0x1E6] = 0x1039; + } } - r4 = gContestEffects[gContestMoves[move].effect].jam; - if (r4 != 0xFF) - r4 /= 10; - for (i = 0;i < 8; i++) + + effectValue = gContestEffects[gContestMoves[move].effect].jam; + + if (effectValue != 0xFF) + effectValue /= 10; + + for (i = 0; i < 8; i++) { - if (r4 != 0xFF && i < r4) + if (effectValue != 0xFF && i < effectValue) { - r5[((i>>2)*32)+(i&3)+0x226] = 0x103C; + tilemap[(i / 4 * 32) + (i & 3) + 0x226] = 0x103C; } else - r5[((i>>2)*32)+(i&3)+0x226] = 0x103D; + { + tilemap[(i / 4 * 32) + (i & 3) + 0x226] = 0x103D; + } } } } void sub_81C2524(void) { - if (gUnknown_0203CF1C->summary.isEgg != 0) + if (gUnknown_0203CF1C->summary.isEgg) ChangeBgX(3, 0x10000, 0); else ChangeBgX(3, 0, 0); @@ -2668,15 +2689,20 @@ void sub_81C2554(void) u8 i; InitWindows(gUnknown_0861CC24); DeactivateAllTextPrinters(); + for (i = 0; i < 20; i++) + { FillWindowPixelBuffer(i, 0); + } for (i = 0; i < 8; i++) - gUnknown_0203CF1C->windowIds[i] |= 0xFF; + { + gUnknown_0203CF1C->windowIds[i] = 0xFF; + } } -void sub_81C25A4(u8 a, const u8 *b, u8 c, u8 d, u8 e, u8 f) +static void SummaryScreen_PrintTextOnWindow(u8 windowId, const u8 *string, u8 x, u8 y, u8 lineSpacing, u8 colorId) { - AddTextPrinterParameterized2(a, 1, c, d, 0, e, sTextColors_861CD2C[f], 0, b); + AddTextPrinterParameterized2(windowId, 1, x, y, 0, lineSpacing, sTextColors_861CD2C[colorId], 0, string); } void sub_81C25E8(void) @@ -2684,7 +2710,7 @@ void sub_81C25E8(void) FillWindowPixelBuffer(17, 0); FillWindowPixelBuffer(18, 0); FillWindowPixelBuffer(19, 0); - if (gUnknown_0203CF1C->summary.isEgg == 0) + if (!gUnknown_0203CF1C->summary.isEgg) sub_81C2628(); else sub_81C2794(); @@ -2696,41 +2722,41 @@ void sub_81C2628(void) u8 strArray[16]; struct Pokemon *mon = &gUnknown_0203CF1C->currentMon; struct PokeSummary *summary = &gUnknown_0203CF1C->summary; - u16 r5 = SpeciesToPokedexNum(summary->species); - if (r5 != 0xFFFF) + u16 dexNum = SpeciesToPokedexNum(summary->species); + if (dexNum != 0xFFFF) { StringCopy(gStringVar1, &gText_UnkCtrlF908Clear01[0]); - ConvertIntToDecimalStringN(gStringVar2, r5, 2, 3); + ConvertIntToDecimalStringN(gStringVar2, dexNum, 2, 3); StringAppend(gStringVar1, gStringVar2); - if (IsMonShiny(mon) == 0) + if (!IsMonShiny(mon)) { - sub_81C25A4(17, gStringVar1, 0, 1, 0, 1); - sub_81C228C(0); + SummaryScreen_PrintTextOnWindow(17, gStringVar1, 0, 1, 0, 1); + sub_81C228C(FALSE); } else { - sub_81C25A4(17, gStringVar1, 0, 1, 0, 7); - sub_81C228C(1); + SummaryScreen_PrintTextOnWindow(17, gStringVar1, 0, 1, 0, 7); + sub_81C228C(TRUE); } PutWindowTilemap(17); } else { ClearWindowTilemap(17); - if (IsMonShiny(mon) == 0) - sub_81C228C(0); + if (!IsMonShiny(mon)) + sub_81C228C(FALSE); else - sub_81C228C(1); + sub_81C228C(TRUE); } StringCopy(gStringVar1, &gText_LevelSymbol[0]); ConvertIntToDecimalStringN(gStringVar2, summary->level, 0, 3); StringAppend(gStringVar1, gStringVar2); - sub_81C25A4(19, gStringVar1, 0x18, 17, 0, 1); + SummaryScreen_PrintTextOnWindow(19, gStringVar1, 0x18, 17, 0, 1); GetMonNickname(mon, gStringVar1); - sub_81C25A4(18, gStringVar1, 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(18, gStringVar1, 0, 1, 0, 1); strArray[0] = CHAR_SLASH; StringCopy(&strArray[1], &gSpeciesNames[summary->species2][0]); - sub_81C25A4(19, &strArray[0], 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(19, &strArray[0], 0, 1, 0, 1); sub_81C27DC(mon, summary->species2); PutWindowTilemap(18); PutWindowTilemap(19); @@ -2739,7 +2765,7 @@ void sub_81C2628(void) void sub_81C2794(void) { GetMonNickname(&gUnknown_0203CF1C->currentMon, gStringVar1); - sub_81C25A4(18, gStringVar1, 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(18, gStringVar1, 0, 1, 0, 1); PutWindowTilemap(18); ClearWindowTilemap(17); ClearWindowTilemap(19); @@ -2753,74 +2779,73 @@ void sub_81C27DC(struct Pokemon *mon, u16 a) switch (gender) { case 0: - sub_81C25A4(0x13, &gText_MaleSymbol[0], 0x39, 17, 0, 3); + SummaryScreen_PrintTextOnWindow(19, &gText_MaleSymbol[0], 57, 17, 0, 3); break; case 0xFE: - sub_81C25A4(0x13, &gText_FemaleSymbol[0], 0x39, 17, 0, 4); + SummaryScreen_PrintTextOnWindow(19, &gText_FemaleSymbol[0], 57, 17, 0, 4); break; } } } -void sub_81C2838(u8 a, bool8 b, u32 c) +void PrintAOrBButtonIcon(u8 windowId, bool8 bButton, u32 x) { - BlitBitmapToWindow(a, (b) ? &gUnknown_0861CDD3[0] : &gUnknown_0861CDD3[0] - 0x80, c, 0, 16, 16); + BlitBitmapToWindow(windowId, (bButton) ? gUnknown_0861CDD3 : gUnknown_0861CDD3 - 0x80, x, 0, 16, 16); } -void sub_81C286C(void) +void PrintRentalMonStatsPage(void) { - int r4; - int r2; - int temp; - sub_81C25A4(0, gText_PkmnInfo, 2, 1, 0, 1); - sub_81C25A4(1, gText_PkmnSkills, 2, 1, 0, 1); - sub_81C25A4(2, gText_BattleMoves, 2, 1, 0, 1); - sub_81C25A4(3, gText_ContestMoves, 2, 1, 0, 1); - r4 = GetStringRightAlignXOffset(1, gText_Cancel2, 0x3E); - r2 = r4 - 16; - if (r2 < 0) - r2 = 0; - sub_81C2838(4, 0, r2); - sub_81C25A4(4, gText_Cancel2, r4, 1, 0, 0); - r4 = GetStringRightAlignXOffset(1, gText_Info, 0x3E); - r2 = r4 - 16; - if (r2 < 0) - r2 = 0; - sub_81C2838(5, 0, r2); - sub_81C25A4(5, gText_Info, r4, 1, 0, 0); - r4 = GetStringRightAlignXOffset(1, gText_Switch, 0x3E); - r2 = r4 - 16; - if (r2 < 0) - r2 = 0; - sub_81C2838(6, 0, r2); - sub_81C25A4(6, gText_Switch, r4, 1, 0, 0); - sub_81C25A4(8, gText_RentalPkmn, 0, 1, 0, 1); - sub_81C25A4(9, gText_TypeSlash, 0, 1, 0, 0); - temp = 6; - temp += GetStringCenterAlignXOffset(1, gText_HP4, 42); - sub_81C25A4(10, gText_HP4, temp, 1, 0, 1); - temp = 6; - temp += GetStringCenterAlignXOffset(1, gText_Attack3, 42); - sub_81C25A4(10, gText_Attack3, temp, 17, 0, 1); - temp = 6; - temp += GetStringCenterAlignXOffset(1, gText_Defense3, 42); - sub_81C25A4(10, gText_Defense3, temp, 33, 0, 1); - temp = 2; - temp += GetStringCenterAlignXOffset(1, gText_SpAtk4, 36); - sub_81C25A4(11, gText_SpAtk4, temp, 1, 0, 1); - temp = 2; - temp += GetStringCenterAlignXOffset(1, gText_SpDef4, 36); - sub_81C25A4(11, gText_SpDef4, temp, 17, 0, 1); - temp = 2; - temp += GetStringCenterAlignXOffset(1, gText_Speed2, 36); - sub_81C25A4(11, gText_Speed2, temp, 33, 0, 1); - sub_81C25A4(12, gText_ExpPoints, 6, 1, 0, 1); - sub_81C25A4(12, gText_NextLv, 6, 17, 0, 1); - sub_81C25A4(13, gText_Status, 2, 1, 0, 1); - sub_81C25A4(14, gText_Power, 0, 1, 0, 1); - sub_81C25A4(14, gText_Accuracy2, 0, 17, 0, 1); - sub_81C25A4(15, gText_Appeal, 0, 1, 0, 1); - sub_81C25A4(15, gText_Jam, 0, 17, 0, 1); + int stringXPos; + int iconXPos; + int statsXPos; + + SummaryScreen_PrintTextOnWindow(0, gText_PkmnInfo, 2, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(1, gText_PkmnSkills, 2, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(2, gText_BattleMoves, 2, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(3, gText_ContestMoves, 2, 1, 0, 1); + + stringXPos = GetStringRightAlignXOffset(1, gText_Cancel2, 0x3E); + iconXPos = stringXPos - 16; + if (iconXPos < 0) + iconXPos = 0; + PrintAOrBButtonIcon(4, FALSE, iconXPos); + SummaryScreen_PrintTextOnWindow(4, gText_Cancel2, stringXPos, 1, 0, 0); + + stringXPos = GetStringRightAlignXOffset(1, gText_Info, 0x3E); + iconXPos = stringXPos - 16; + if (iconXPos < 0) + iconXPos = 0; + PrintAOrBButtonIcon(5, FALSE, iconXPos); + SummaryScreen_PrintTextOnWindow(5, gText_Info, stringXPos, 1, 0, 0); + + stringXPos = GetStringRightAlignXOffset(1, gText_Switch, 0x3E); + iconXPos = stringXPos - 16; + if (iconXPos < 0) + iconXPos = 0; + PrintAOrBButtonIcon(6, FALSE, iconXPos); + SummaryScreen_PrintTextOnWindow(6, gText_Switch, stringXPos, 1, 0, 0); + + SummaryScreen_PrintTextOnWindow(8, gText_RentalPkmn, 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(9, gText_TypeSlash, 0, 1, 0, 0); + statsXPos = 6 + GetStringCenterAlignXOffset(1, gText_HP4, 42); + SummaryScreen_PrintTextOnWindow(10, gText_HP4, statsXPos, 1, 0, 1); + statsXPos = 6 + GetStringCenterAlignXOffset(1, gText_Attack3, 42); + SummaryScreen_PrintTextOnWindow(10, gText_Attack3, statsXPos, 17, 0, 1); + statsXPos = 6 + GetStringCenterAlignXOffset(1, gText_Defense3, 42); + SummaryScreen_PrintTextOnWindow(10, gText_Defense3, statsXPos, 33, 0, 1); + statsXPos = 2 + GetStringCenterAlignXOffset(1, gText_SpAtk4, 36); + SummaryScreen_PrintTextOnWindow(11, gText_SpAtk4, statsXPos, 1, 0, 1); + statsXPos = 2 + GetStringCenterAlignXOffset(1, gText_SpDef4, 36); + SummaryScreen_PrintTextOnWindow(11, gText_SpDef4, statsXPos, 17, 0, 1); + statsXPos = 2 + GetStringCenterAlignXOffset(1, gText_Speed2, 36); + SummaryScreen_PrintTextOnWindow(11, gText_Speed2, statsXPos, 33, 0, 1); + SummaryScreen_PrintTextOnWindow(12, gText_ExpPoints, 6, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(12, gText_NextLv, 6, 17, 0, 1); + SummaryScreen_PrintTextOnWindow(13, gText_Status, 2, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(14, gText_Power, 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(14, gText_Accuracy2, 0, 17, 0, 1); + SummaryScreen_PrintTextOnWindow(15, gText_Appeal, 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(15, gText_Jam, 0, 17, 0, 1); } void sub_81C2AFC(u8 a) @@ -2847,23 +2872,27 @@ void sub_81C2AFC(u8 a) break; case 2: PutWindowTilemap(2); - if (gUnknown_0203CF1C->mode == 3) + if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) { - if(!(gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) + if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) PutWindowTilemap(14); } else + { PutWindowTilemap(5); + } break; case 3: PutWindowTilemap(3); - if (gUnknown_0203CF1C->mode == 3) + if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) { - if(!(gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) + if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) PutWindowTilemap(15); } else + { PutWindowTilemap(5); + } break; } for (i = 0; i < 8; i++) @@ -2890,22 +2919,26 @@ void sub_81C2C38(u8 a) ClearWindowTilemap(12); break; case 2: - if (gUnknown_0203CF1C->mode == 3) + if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) { - if(!(gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) + if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) ClearWindowTilemap(14); } else + { ClearWindowTilemap(5); + } break; case 3: - if (gUnknown_0203CF1C->mode == 3) + if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) { - if(!(gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) + if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) ClearWindowTilemap(15); } else + { ClearWindowTilemap(5); + } break; } for (i = 0; i < 8; i++) @@ -2913,12 +2946,12 @@ void sub_81C2C38(u8 a) schedule_bg_copy_tilemap_to_vram(0); } -u8 sub_81C2D2C(const struct WindowTemplate *template, u8 a) +u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 templateId) { - u8 *windowIdPtr = &(gUnknown_0203CF1C->windowIds[a]); + u8 *windowIdPtr = &(gUnknown_0203CF1C->windowIds[templateId]); if (*windowIdPtr == 0xFF) { - *windowIdPtr = AddWindow(&template[a]); + *windowIdPtr = AddWindow(&template[templateId]); FillWindowPixelBuffer(*windowIdPtr, 0); } return *windowIdPtr; @@ -2935,7 +2968,7 @@ void sub_81C2D68(u8 a) } } -void sub_81C2D9C(u8 a) +void sub_81C2D9C(u8 pageIndex) { u16 i; for (i = 0; i < 8; i++) @@ -2943,209 +2976,219 @@ void sub_81C2D9C(u8 a) if (gUnknown_0203CF1C->windowIds[i] != 0xFF) FillWindowPixelBuffer(gUnknown_0203CF1C->windowIds[i], 0); } - gUnknown_0861CE54[a](); + gUnknown_0861CE54[pageIndex](); } -void sub_81C2DE4(u8 a) +void sub_81C2DE4(u8 pageIndex) { - CreateTask(gUnknown_0861CE64[a], 16); + CreateTask(gUnknown_0861CE64[pageIndex], 16); } void sub_81C2E00(void) { if (gUnknown_0203CF1C->summary.isEgg) { - sub_81C335C(); - sub_81C33CC(); - sub_81C3428(); - sub_81C349C(); + PrintEggOTName(); + PrintEggOTID(); + PrintEggState(); + PrintEggMemo(); } else { - sub_81C2EC4(); - sub_81C2F5C(); - sub_81C2FD8(); - sub_81C302C(); - sub_81C307C(); - sub_81C3194(); + PrintMonOTName(); + PrintMonOTID(); + PrintMonAbilityName(); + PrintMonAbilityDescription(); + BufferMonTrainerMemo(); + PrintMonTrainerMemo(); } } void sub_81C2E40(u8 taskId) { s16 *data = gTasks[taskId].data; - s16 dataa = data[0] - 1; - switch (dataa) + switch (data[0]) { - case 0: - sub_81C2EC4(); - break; case 1: - sub_81C2F5C(); + PrintMonOTName(); break; case 2: - sub_81C2FD8(); + PrintMonOTID(); break; case 3: - sub_81C302C(); + PrintMonAbilityName(); break; case 4: - sub_81C307C(); + PrintMonAbilityDescription(); break; case 5: - sub_81C3194(); + BufferMonTrainerMemo(); break; case 6: + PrintMonTrainerMemo(); + break; + case 7: DestroyTask(taskId); return; } data[0]++; } -void sub_81C2EC4(void) +void PrintMonOTName(void) { - u8 r5; - int r2; - if (sub_81A6BF4() != 1 && sub_81B9E94() != 1) + u8 windowId; + int x; + if (sub_81A6BF4() != TRUE && sub_81B9E94() != TRUE) { - r5 = sub_81C2D2C(gUnknown_0861CCCC, 0); - sub_81C25A4(r5, gText_OTSlash, 0, 1, 0, 1); - r2 = GetStringWidth(1, gText_OTSlash, 0); + windowId = AddWindowFromTemplateList(gUnknown_0861CCCC, 0); + SummaryScreen_PrintTextOnWindow(windowId, gText_OTSlash, 0, 1, 0, 1); + x = GetStringWidth(1, gText_OTSlash, 0); if (gUnknown_0203CF1C->summary.OTGender == 0) - sub_81C25A4(r5, gUnknown_0203CF1C->summary.OTName, r2, 1, 0, 5); + SummaryScreen_PrintTextOnWindow(windowId, gUnknown_0203CF1C->summary.OTName, x, 1, 0, 5); else - sub_81C25A4(r5, gUnknown_0203CF1C->summary.OTName, r2, 1, 0, 6); + SummaryScreen_PrintTextOnWindow(windowId, gUnknown_0203CF1C->summary.OTName, x, 1, 0, 6); } } -void sub_81C2F5C(void) +void PrintMonOTID(void) { - int r4; + int xPos; if (sub_81A6BF4() != TRUE && sub_81B9E94() != TRUE) { ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)gUnknown_0203CF1C->summary.OTID, 2, 5); - r4 = GetStringRightAlignXOffset(1, gStringVar1, 0x38); - sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 1), gStringVar1, r4, 1, 0, 1); + xPos = GetStringRightAlignXOffset(1, gStringVar1, 56); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 1), gStringVar1, xPos, 1, 0, 1); } } -void sub_81C2FD8(void) +void PrintMonAbilityName(void) { u8 ability = GetAbilityBySpecies(gUnknown_0203CF1C->summary.species, gUnknown_0203CF1C->summary.altAbility); - sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 2), gAbilityNames[ability], 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), gAbilityNames[ability], 0, 1, 0, 1); } -void sub_81C302C(void) +void PrintMonAbilityDescription(void) { u8 ability = GetAbilityBySpecies(gUnknown_0203CF1C->summary.species, gUnknown_0203CF1C->summary.altAbility); - sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 2), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); } -void sub_81C307C(void) +void BufferMonTrainerMemo(void) { struct PokeSummary *sum = &gUnknown_0203CF1C->summary; const u8 *text; + DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_0861CE74); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_0861CE7B); - sub_81C31C0(); - if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE || sub_81C3304() == TRUE) + BufferNatureString(); + + if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE || IsInGamePartnerMon() == TRUE) + { DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_XNature); + } else { - u8 *alloced1 = Alloc(32); - u8 *alloced2 = Alloc(32); - sub_81C31F0(alloced1); - if (sum->metLocation <= 0xD4) + u8 *metLevelString = Alloc(32); + u8 *metLocationString = Alloc(32); + GetMetLevelString(metLevelString); + + if (sum->metLocation < MAPSEC_NONE) { - sub_8124610(alloced2, sum->metLocation); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, alloced2); + sub_8124610(metLocationString, sum->metLocation); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, metLocationString); } - if (sub_81C3220() == 1) + + if (DoesMonOTMatchOwner() == TRUE) { if (sum->metLevel == 0) - text = (sum->metLocation > 0xD4) ? gText_XNatureHatchedSomewhereAt : gText_XNatureHatchedAtYZ; + text = (sum->metLocation >= MAPSEC_NONE) ? gText_XNatureHatchedSomewhereAt : gText_XNatureHatchedAtYZ; else - text = (sum->metLocation > 0xD4) ? gText_XNatureMetSomewhereAt : gText_XNatureMetAtYZ; + text = (sum->metLocation >= MAPSEC_NONE) ? gText_XNatureMetSomewhereAt : gText_XNatureMetAtYZ; } - else if (sum->metLocation == 0xFF) + else if (sum->metLocation == MAPSEC_FATEFUL_ENCOUNTER) + { text = gText_XNatureFatefulEncounter; - else if (sum->metLocation != 0xFE && sub_81C32BC()) - text = (sum->metLocation > 0xD4) ? gText_XNatureObtainedInTrade : gText_XNatureProbablyMetAt; + } + else if (sum->metLocation != MAPSEC_IN_GAME_TRADE && MonCameFromGBAGames()) + { + text = (sum->metLocation >= MAPSEC_NONE) ? gText_XNatureObtainedInTrade : gText_XNatureProbablyMetAt; + } else + { text = gText_XNatureObtainedInTrade; + } + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, text); - Free(alloced1); - Free(alloced2); + Free(metLevelString); + Free(metLocationString); } } -void sub_81C3194(void) +void PrintMonTrainerMemo(void) { - sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 3), gStringVar4, 0, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 3), gStringVar4, 0, 1, 0, 0); } -void sub_81C31C0(void) +void BufferNatureString(void) { struct UnkSummaryStruct *sumStruct = gUnknown_0203CF1C; DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gNatureNamePointers[sumStruct->summary.nature]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, gText_EmptyString5); } -void sub_81C31F0(u8 *a) +void GetMetLevelString(u8 *output) { u8 level = gUnknown_0203CF1C->summary.metLevel; if (level == 0) level = EGG_HATCH_LEVEL; - ConvertIntToDecimalStringN(a, level, 0, 3); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, a); + ConvertIntToDecimalStringN(output, level, 0, 3); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, output); } -u8 sub_81C3220(void) +bool8 DoesMonOTMatchOwner(void) { struct PokeSummary *sum = &gUnknown_0203CF1C->summary; - u32 r4; - u8 r5; + u32 trainerId; + u8 gender; if (gUnknown_0203CF1C->monList.mons == gEnemyParty) { u8 multiID = GetMultiplayerId() ^ 1; - r4 = (u16)gLinkPlayers[multiID].trainerId; - r5 = gLinkPlayers[multiID].gender; + trainerId = (u16)gLinkPlayers[multiID].trainerId; + gender = gLinkPlayers[multiID].gender; StringCopy(gStringVar1, gLinkPlayers[multiID].name); } else { - r4 = GetPlayerIDAsU32() & 0xFFFF; - r5 = gSaveBlock2Ptr->playerGender; + trainerId = GetPlayerIDAsU32() & 0xFFFF; + gender = gSaveBlock2Ptr->playerGender; StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); } - if (r5 != sum->OTGender || r4 != (sum->OTID & 0xFFFF) || StringCompareWithoutExtCtrlCodes(gStringVar1, sum->OTName)) + if (gender != sum->OTGender || trainerId != (sum->OTID & 0xFFFF) || StringCompareWithoutExtCtrlCodes(gStringVar1, sum->OTName)) { - return 0; + return FALSE; } - return 1; + return TRUE; } -bool8 sub_81C32BC(void) +bool8 MonCameFromGBAGames(void) { struct PokeSummary *sum = &gUnknown_0203CF1C->summary; - u8 r0 = sum->metGame - 1; - if (r0 <= 4) + if (sum->metGame > 0 && sum->metGame <= VERSION_LEAF_GREEN) return TRUE; return FALSE; } -bool8 sub_81C32E0(void) +bool8 MonCameFromRSE(void) { struct PokeSummary *sum = &gUnknown_0203CF1C->summary; - u8 r0 = sum->metGame - 1; - if (r0 <= 2) + if (sum->metGame > 0 && sum->metGame <= VERSION_EMERALD) return TRUE; return FALSE; } -bool8 sub_81C3304(void) +bool8 IsInGamePartnerMon(void) { if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) && gMain.inBattle) { @@ -3155,28 +3198,29 @@ bool8 sub_81C3304(void) return FALSE; } -void sub_81C335C(void) +void PrintEggOTName(void) { - u32 windowId = sub_81C2D2C(gUnknown_0861CCCC, 0); + u32 windowId = AddWindowFromTemplateList(gUnknown_0861CCCC, 0); u32 width = GetStringWidth(1, gText_OTSlash, 0); - sub_81C25A4(windowId, gText_OTSlash, 0, 1, 0, 1); - sub_81C25A4(windowId, gText_FiveMarks, width, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(windowId, gText_OTSlash, 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(windowId, gText_FiveMarks, width, 1, 0, 1); } -void sub_81C33CC(void) +void PrintEggOTID(void) { - int r4; + int x; StringCopy(gStringVar1, gText_UnkCtrlF907F908); StringAppend(gStringVar1, gText_FiveMarks); - r4 = GetStringRightAlignXOffset(1, gStringVar1, 0x38); - sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 1), gStringVar1, r4, 1, 0, 1); + x = GetStringRightAlignXOffset(1, gStringVar1, 56); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 1), gStringVar1, x, 1, 0, 1); } -void sub_81C3428(void) +void PrintEggState(void) { const u8 *text; struct PokeSummary *sum = &gUnknown_0203CF1C->summary; - if (gUnknown_0203CF1C->summary.sanity == 1) + + if (gUnknown_0203CF1C->summary.sanity == TRUE) text = gText_EggWillTakeALongTime; else if (sum->friendship <= 5) text = gText_EggAboutToHatch; @@ -3186,141 +3230,158 @@ void sub_81C3428(void) text = gText_EggWillTakeSomeTime; else text = gText_EggWillTakeALongTime; - sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 2), text, 0, 1, 0, 0); + + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), text, 0, 1, 0, 0); } -void sub_81C349C(void) +void PrintEggMemo(void) { const u8 *text; struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + if (gUnknown_0203CF1C->summary.sanity != 1) { - if (sum->metLocation == 0xFF) + if (sum->metLocation == MAPSEC_FATEFUL_ENCOUNTER) text = gText_PeculiarEggNicePlace; - else if (sub_81C32BC() == 0 || sub_81C3220() == 0) + else if (MonCameFromGBAGames() == FALSE || DoesMonOTMatchOwner() == FALSE) text = gText_PeculiarEggTrade; - else if (sum->metLocation == 0xFD) - text = (sub_81C32E0() == TRUE) ? gText_EggFromHotSprings : gText_EggFromTraveler; + else if (sum->metLocation == MAPSEC_SPECIAL_EGG) + text = (MonCameFromRSE() == TRUE) ? gText_EggFromHotSprings : gText_EggFromTraveler; else text = gText_OddEggFoundByCouple; } else + { text = gText_OddEggFoundByCouple; - sub_81C25A4(sub_81C2D2C(gUnknown_0861CCCC, 3), text, 0, 1, 0, 0); + } + + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 3), text, 0, 1, 0, 0); } void sub_81C3530(void) { - sub_81C35E4(); - sub_81C3690(); - sub_81C3710(); - sub_81C37D8(); - sub_81C3808(); - sub_81C3890(); - sub_81C38C0(); + PrintHeldItemName(); + PrintRibbonCount(); + BufferLeftColumnStats(); + PrintLeftColumnStats(); + BufferRightColumnStats(); + PrintRightColumnStats(); + PrintExpPointsNextLevel(); } void sub_81C3554(u8 taskId) { s16 *data = gTasks[taskId].data; - s16 dataa = data[0] - 1; - switch (dataa) + + switch (data[0]) { - case 0: - sub_81C35E4(); - break; case 1: - sub_81C3690(); + PrintHeldItemName(); break; case 2: - sub_81C3710(); + PrintRibbonCount(); break; case 3: - sub_81C37D8(); + BufferLeftColumnStats(); break; case 4: - sub_81C3808(); + PrintLeftColumnStats(); break; case 5: - sub_81C3890(); + BufferRightColumnStats(); break; case 6: - sub_81C38C0(); + PrintRightColumnStats(); break; case 7: + PrintExpPointsNextLevel(); + break; + case 8: DestroyTask(taskId); return; } data[0]++; } -void sub_81C35E4(void) +void PrintHeldItemName(void) { const u8 *text; int offset; - if (gUnknown_0203CF1C->summary.item == ITEM_ENIGMA_BERRY && sub_81B1250() == 1 && (gUnknown_0203CF1C->curMonIndex == 1 || gUnknown_0203CF1C->curMonIndex == 4 || gUnknown_0203CF1C->curMonIndex == 5)) + + if (gUnknown_0203CF1C->summary.item == ITEM_ENIGMA_BERRY && sub_81B1250() == TRUE && (gUnknown_0203CF1C->curMonIndex == 1 || gUnknown_0203CF1C->curMonIndex == 4 || gUnknown_0203CF1C->curMonIndex == 5)) { text = ItemId_GetName(ITEM_ENIGMA_BERRY); } else if (gUnknown_0203CF1C->summary.item == ITEM_NONE) + { text = gText_None; + } else { CopyItemName(gUnknown_0203CF1C->summary.item, gStringVar1); text = gStringVar1; } - offset = GetStringCenterAlignXOffset(1, text, 0x48) + 6; - sub_81C25A4(sub_81C2D2C(gUnknown_0861CCEC, 0), text, offset, 1, 0, 0); + + offset = GetStringCenterAlignXOffset(1, text, 72) + 6; + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 0), text, offset, 1, 0, 0); } -void sub_81C3690(void) +void PrintRibbonCount(void) { const u8 *text; int offset; - if (gUnknown_0203CF1C->summary.ribbons == 0) + + if (gUnknown_0203CF1C->summary.ribbonCount == 0) + { text = gText_None; + } else { - ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.ribbons, 1, 2); + ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.ribbonCount, 1, 2); StringExpandPlaceholders(gStringVar4, gText_RibbonsVar1); text = gStringVar4; } - offset = GetStringCenterAlignXOffset(1, text, 0x46) + 6; - sub_81C25A4(sub_81C2D2C(gUnknown_0861CCEC, 1), text, offset, 1, 0, 0); + + offset = GetStringCenterAlignXOffset(1, text, 70) + 6; + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 1), text, offset, 1, 0, 0); } -void sub_81C3710(void) +void BufferLeftColumnStats(void) { - u8 *alloced1 = Alloc(8); - u8 *alloced2 = Alloc(8); - u8 *alloced3 = Alloc(8); - u8 *alloced4 = Alloc(8); - ConvertIntToDecimalStringN(alloced1, gUnknown_0203CF1C->summary.currentHP, 1, 3); - ConvertIntToDecimalStringN(alloced2, gUnknown_0203CF1C->summary.maxHP, 1, 3); - ConvertIntToDecimalStringN(alloced3, gUnknown_0203CF1C->summary.atk, 1, 7); - ConvertIntToDecimalStringN(alloced4, gUnknown_0203CF1C->summary.def, 1, 7); + u8 *currentHPString = Alloc(8); + u8 *maxHPString = Alloc(8); + u8 *attackString = Alloc(8); + u8 *defenseString = Alloc(8); + + ConvertIntToDecimalStringN(currentHPString, gUnknown_0203CF1C->summary.currentHP, 1, 3); + ConvertIntToDecimalStringN(maxHPString, gUnknown_0203CF1C->summary.maxHP, 1, 3); + ConvertIntToDecimalStringN(attackString, gUnknown_0203CF1C->summary.atk, 1, 7); + ConvertIntToDecimalStringN(defenseString, gUnknown_0203CF1C->summary.def, 1, 7); + DynamicPlaceholderTextUtil_Reset(); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, alloced1); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, alloced2); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, alloced3); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, alloced4); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, currentHPString); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, maxHPString); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, attackString); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, defenseString); DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE82); - Free(alloced1); - Free(alloced2); - Free(alloced3); - Free(alloced4); + + Free(currentHPString); + Free(maxHPString); + Free(attackString); + Free(defenseString); } -void sub_81C37D8(void) +void PrintLeftColumnStats(void) { - sub_81C25A4(sub_81C2D2C(gUnknown_0861CCEC, 2), gStringVar4, 4, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 2), gStringVar4, 4, 1, 0, 0); } -void sub_81C3808(void) +void BufferRightColumnStats(void) { ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.spatk, 1, 3); ConvertIntToDecimalStringN(gStringVar2, gUnknown_0203CF1C->summary.spdef, 1, 3); ConvertIntToDecimalStringN(gStringVar3, gUnknown_0203CF1C->summary.speed, 1, 3); + DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2); @@ -3328,73 +3389,78 @@ void sub_81C3808(void) DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE8E); } -void sub_81C3890(void) +void PrintRightColumnStats(void) { - sub_81C25A4(sub_81C2D2C(gUnknown_0861CCEC, 3), gStringVar4, 2, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 3), gStringVar4, 2, 1, 0, 0); } -void sub_81C38C0(void) +void PrintExpPointsNextLevel(void) { struct PokeSummary *sum = &gUnknown_0203CF1C->summary; - u8 r6 = sub_81C2D2C(gUnknown_0861CCEC, 4); + u8 windowId = AddWindowFromTemplateList(gUnknown_0861CCEC, 4); int offset; u32 expToNextLevel; + ConvertIntToDecimalStringN(gStringVar1, sum->exp, 1, 7); - offset = GetStringRightAlignXOffset(1, gStringVar1, 0x2A) + 2; - sub_81C25A4(r6, gStringVar1, offset, 1, 0, 0); + offset = GetStringRightAlignXOffset(1, gStringVar1, 42) + 2; + SummaryScreen_PrintTextOnWindow(windowId, gStringVar1, offset, 1, 0, 0); + if (sum->level < MAX_MON_LEVEL) expToNextLevel = gExperienceTables[gBaseStats[sum->species].growthRate][sum->level + 1] - sum->exp; else expToNextLevel = 0; + ConvertIntToDecimalStringN(gStringVar1, expToNextLevel, 1, 6); - offset = GetStringRightAlignXOffset(1, gStringVar1, 0x2A) + 2; - sub_81C25A4(r6, gStringVar1, offset, 17, 0, 0); + offset = GetStringRightAlignXOffset(1, gStringVar1, 42) + 2; + SummaryScreen_PrintTextOnWindow(windowId, gStringVar1, offset, 17, 0, 0); } void sub_81C3984(void) { - sub_81C3B08(0); - sub_81C3B08(1); - sub_81C3B08(2); - sub_81C3B08(3); - if (gUnknown_0203CF1C->mode == 3) + PrintMoveNameAndPP(0); + PrintMoveNameAndPP(1); + PrintMoveNameAndPP(2); + PrintMoveNameAndPP(3); + + if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) { - sub_81C3F44(); + PrintNewMoveDetailsOrCancelText(); if (gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES) { if (gUnknown_0203CF1C->newMove != MOVE_NONE) sub_81C3E9C(gUnknown_0203CF1C->newMove); } else + { sub_81C3E9C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]); + } } } void sub_81C39F0(u8 taskId) { s16 *data = gTasks[taskId].data; - s16 dataa = data[0] - 1; - switch (dataa) + switch (data[0]) { - case 0: - sub_81C3B08(0); - break; case 1: - sub_81C3B08(1); + PrintMoveNameAndPP(0); break; case 2: - sub_81C3B08(2); + PrintMoveNameAndPP(1); break; case 3: - sub_81C3B08(3); + PrintMoveNameAndPP(2); break; case 4: - if (gUnknown_0203CF1C->mode == 3) - sub_81C3F44(); + PrintMoveNameAndPP(3); break; case 5: - if (gUnknown_0203CF1C->mode == 3) + if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + PrintNewMoveDetailsOrCancelText(); + break; + case 6: + if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) { if (gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES) data[1] = gUnknown_0203CF1C->newMove; @@ -3402,89 +3468,99 @@ void sub_81C39F0(u8 taskId) data[1] = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; } break; - case 6: - if (gUnknown_0203CF1C->mode == 3) + case 7: + if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) { - if (!(gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) + if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) sub_81C3E9C(data[1]); } break; - case 7: + case 8: DestroyTask(taskId); return; } data[0]++; } -void sub_81C3B08(u8 a) +void PrintMoveNameAndPP(u8 moveIndex) { u8 pp; u32 ppState; const u8 *text; u32 offset; struct UnkSummaryStruct *summaryStruct = gUnknown_0203CF1C; - u8 r8 = sub_81C2D2C(gUnknown_0861CD14, 0); - u8 sp = sub_81C2D2C(gUnknown_0861CD14, 1); - u16 move = summaryStruct->summary.moves[a]; + u8 moveNameWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 0); + u8 ppValueWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 1); + u16 move = summaryStruct->summary.moves[moveIndex]; if (move != 0) { - pp = CalculatePPWithBonus(move, summaryStruct->summary.ppBonuses, a); - sub_81C25A4(r8, gMoveNames[move], 0, a * 16 + 1, 0, 1); - ConvertIntToDecimalStringN(gStringVar1, summaryStruct->summary.pp[a], 1, 2); + pp = CalculatePPWithBonus(move, summaryStruct->summary.ppBonuses, moveIndex); + SummaryScreen_PrintTextOnWindow(moveNameWindowId, gMoveNames[move], 0, moveIndex * 16 + 1, 0, 1); + ConvertIntToDecimalStringN(gStringVar1, summaryStruct->summary.pp[moveIndex], 1, 2); ConvertIntToDecimalStringN(gStringVar2, pp, 1, 2); DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2); DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE97); text = gStringVar4; - ppState = GetCurrentPpToMaxPpState(summaryStruct->summary.pp[a], pp) + 9; - offset = GetStringRightAlignXOffset(1, text, 0x2C); + ppState = GetCurrentPpToMaxPpState(summaryStruct->summary.pp[moveIndex], pp) + 9; + offset = GetStringRightAlignXOffset(1, text, 44); } else { - sub_81C25A4(r8, gText_OneDash, 0, a * 16 + 1, 0, 1); + SummaryScreen_PrintTextOnWindow(moveNameWindowId, gText_OneDash, 0, moveIndex * 16 + 1, 0, 1); text = gText_TwoDashes; ppState = 12; - offset = GetStringCenterAlignXOffset(1, text, 0x2C); + offset = GetStringCenterAlignXOffset(1, text, 44); } - sub_81C25A4(sp, text, offset, a * 16 + 1, 0, ppState); + + SummaryScreen_PrintTextOnWindow(ppValueWindowId, text, offset, moveIndex * 16 + 1, 0, ppState); } -void sub_81C3C5C(u16 move) +void PrintMovePowerAndAccuracy(u16 moveIndex) { const u8 *text; - if (move != 0) + if (moveIndex != 0) { - FillWindowPixelRect(14, 0, 0x35, 0, 0x13, 0x20); - if (gBattleMoves[move].power <= 1) + FillWindowPixelRect(14, 0, 53, 0, 19, 32); + + if (gBattleMoves[moveIndex].power < 2) + { text = gText_ThreeDashes; + } else { - ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].power, 1, 3); + ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[moveIndex].power, 1, 3); text = gStringVar1; } - sub_81C25A4(14, text, 0x35, 1, 0, 0); - if (gBattleMoves[move].accuracy == 0) + + SummaryScreen_PrintTextOnWindow(14, text, 53, 1, 0, 0); + + if (gBattleMoves[moveIndex].accuracy == 0) + { text = gText_ThreeDashes; + } else { - ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].accuracy, 1, 3); + ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[moveIndex].accuracy, 1, 3); text = gStringVar1; } - sub_81C25A4(14, text, 0x35, 17, 0, 0); + + SummaryScreen_PrintTextOnWindow(14, text, 53, 17, 0, 0); } } void sub_81C3D08(void) { - sub_81C3B08(0); - sub_81C3B08(1); - sub_81C3B08(2); - sub_81C3B08(3); - if (gUnknown_0203CF1C->mode == 3) + PrintMoveNameAndPP(0); + PrintMoveNameAndPP(1); + PrintMoveNameAndPP(2); + PrintMoveNameAndPP(3); + + if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) { - sub_81C3F44(); + PrintNewMoveDetailsOrCancelText(); sub_81C3E2C(gUnknown_0203CF1C->firstMoveIndex); } } @@ -3497,25 +3573,25 @@ void sub_81C3D54(u8 taskId) switch (dataa) { case 0: - sub_81C3B08(0); + PrintMoveNameAndPP(0); break; case 1: - sub_81C3B08(1); + PrintMoveNameAndPP(1); break; case 2: - sub_81C3B08(2); + PrintMoveNameAndPP(2); break; case 3: - sub_81C3B08(3); + PrintMoveNameAndPP(3); break; case 4: - if (gUnknown_0203CF1C->mode == 3) - sub_81C3F44(); + if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + PrintNewMoveDetailsOrCancelText(); break; case 5: - if (gUnknown_0203CF1C->mode == 3) + if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) { - if (!(gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) + if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) sub_81C3E2C(gUnknown_0203CF1C->firstMoveIndex); } break; @@ -3537,25 +3613,25 @@ void sub_81C3E2C(u8 moveSlot) if (move != MOVE_NONE) { - u8 windowId = sub_81C2D2C(gUnknown_0861CD14, 2); - sub_81C25A4(windowId, gContestEffectDescriptionPointers[gContestMoves[move].effect], 6, 1, 0, 0); + u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); + SummaryScreen_PrintTextOnWindow(windowId, gContestEffectDescriptionPointers[gContestMoves[move].effect], 6, 1, 0, 0); } } void sub_81C3E9C(u16 move) { - u8 windowId = sub_81C2D2C(gUnknown_0861CD14, 2); + u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); FillWindowPixelBuffer(windowId, 0); if (move != MOVE_NONE) { - if (gUnknown_0203CF1C->unk40C0 == 2) + if (gUnknown_0203CF1C->currPageIndex == 2) { - sub_81C3C5C(move); - sub_81C25A4(windowId, gMoveDescriptionPointers[move - 1], 6, 1, 0, 0); + PrintMovePowerAndAccuracy(move); + SummaryScreen_PrintTextOnWindow(windowId, gMoveDescriptionPointers[move - 1], 6, 1, 0, 0); } else { - sub_81C25A4(windowId, gContestEffectDescriptionPointers[gContestMoves[move].effect], 6, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(windowId, gContestEffectDescriptionPointers[gContestMoves[move].effect], 6, 1, 0, 0); } PutWindowTilemap(windowId); } @@ -3567,58 +3643,60 @@ void sub_81C3E9C(u16 move) schedule_bg_copy_tilemap_to_vram(0); } -void sub_81C3F44(void) +void PrintNewMoveDetailsOrCancelText(void) { - u8 windowId1 = sub_81C2D2C(gUnknown_0861CD14, 0); - u8 windowId2 = sub_81C2D2C(gUnknown_0861CD14, 1); + u8 windowId1 = AddWindowFromTemplateList(gUnknown_0861CD14, 0); + u8 windowId2 = AddWindowFromTemplateList(gUnknown_0861CD14, 1); + if (gUnknown_0203CF1C->newMove == MOVE_NONE) { - sub_81C25A4(windowId1, gText_Cancel, 0, 0x41, 0, 1); + SummaryScreen_PrintTextOnWindow(windowId1, gText_Cancel, 0, 65, 0, 1); } else { u16 move = gUnknown_0203CF1C->newMove; - if (gUnknown_0203CF1C->unk40C0 == 2) - sub_81C25A4(windowId1, gMoveNames[move], 0, 0x41, 0, 6); + + if (gUnknown_0203CF1C->currPageIndex == 2) + SummaryScreen_PrintTextOnWindow(windowId1, gMoveNames[move], 0, 65, 0, 6); else - sub_81C25A4(windowId1, gMoveNames[move], 0, 0x41, 0, 5); + SummaryScreen_PrintTextOnWindow(windowId1, gMoveNames[move], 0, 65, 0, 5); ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].pp, 1, 2); DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1); DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE97); - sub_81C25A4(windowId2, gStringVar4, GetStringRightAlignXOffset(1, gStringVar4, 0x2C), 0x41, 0, 12); + SummaryScreen_PrintTextOnWindow(windowId2, gStringVar4, GetStringRightAlignXOffset(1, gStringVar4, 0x2C), 0x41, 0, 12); } } void sub_81C4064(void) { - u8 windowId = sub_81C2D2C(gUnknown_0861CD14, 0); - FillWindowPixelRect(windowId, 0, 0, 0x42, 0x48, 0x10); + u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 0); + FillWindowPixelRect(windowId, 0, 0, 66, 72, 16); CopyWindowToVram(windowId, 2); } -void sub_81C40A0(u8 a, u8 b) +void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) { - u8 windowId1 = sub_81C2D2C(gUnknown_0861CD14, 0); - u8 windowId2 = sub_81C2D2C(gUnknown_0861CD14, 1); + u8 windowId1 = AddWindowFromTemplateList(gUnknown_0861CD14, 0); + u8 windowId2 = AddWindowFromTemplateList(gUnknown_0861CD14, 1); - FillWindowPixelRect(windowId1, 0, 0, a * 16, 0x48, 0x10); - FillWindowPixelRect(windowId1, 0, 0, b * 16, 0x48, 0x10); + FillWindowPixelRect(windowId1, 0, 0, moveIndex1 * 16, 0x48, 0x10); + FillWindowPixelRect(windowId1, 0, 0, moveIndex2 * 16, 0x48, 0x10); - FillWindowPixelRect(windowId2, 0, 0, a * 16, 0x30, 0x10); - FillWindowPixelRect(windowId2, 0, 0, b * 16, 0x30, 0x10); + FillWindowPixelRect(windowId2, 0, 0, moveIndex1 * 16, 0x30, 0x10); + FillWindowPixelRect(windowId2, 0, 0, moveIndex2 * 16, 0x30, 0x10); - sub_81C3B08(a); - sub_81C3B08(b); + PrintMoveNameAndPP(moveIndex1); + PrintMoveNameAndPP(moveIndex2); } void sub_81C4154(void) { - u8 windowId = sub_81C2D2C(gUnknown_0861CD14, 2); + u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); FillWindowPixelBuffer(windowId, 0); - sub_81C25A4(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0); } void sub_81C4190(void) @@ -3656,7 +3734,7 @@ void sub_81C424C(void) void sub_81C4280(void) { - switch (gUnknown_0203CF1C->unk40C0) + switch (gUnknown_0203CF1C->currPageIndex) { case 0: sub_81C43A0(); @@ -3752,7 +3830,7 @@ void sub_81C44F0(void) } else { - if (gUnknown_0203CF1C->unk40C0 == 2) + if (gUnknown_0203CF1C->currPageIndex == 2) sub_81C4318(gBattleMoves[gUnknown_0203CF1C->newMove].type, 0x55, 0x60, 7); else sub_81C4318(NUMBER_OF_MON_TYPES + gContestMoves[gUnknown_0203CF1C->newMove].contestCategory, 0x55, 0x60, 7); @@ -3803,7 +3881,7 @@ u8 sub_81C45F4(struct Pokemon *mon, s16 *a1) { if (gMonSpritesGfxPtr != NULL) { - if (gUnknown_0203CF1C->monList.mons == gPlayerParty || gUnknown_0203CF1C->mode == 2 || gUnknown_0203CF1C->unk40EF == TRUE) + if (gUnknown_0203CF1C->monList.mons == gPlayerParty || gUnknown_0203CF1C->mode == PSS_MODE_UNK2 || gUnknown_0203CF1C->unk40EF == TRUE) { HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid); } @@ -3814,7 +3892,7 @@ u8 sub_81C45F4(struct Pokemon *mon, s16 *a1) } else { - if (gUnknown_0203CF1C->monList.mons == gPlayerParty || gUnknown_0203CF1C->mode == 2 || gUnknown_0203CF1C->unk40EF == TRUE) + if (gUnknown_0203CF1C->monList.mons == gPlayerParty || gUnknown_0203CF1C->mode == PSS_MODE_UNK2 || gUnknown_0203CF1C->unk40EF == TRUE) { HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], sub_806F4F8(0, 1), summary->species2, summary->pid); } @@ -3893,7 +3971,7 @@ void sub_81C488C(u8 a0) sUnusedTaskId = a0; } -void sub_81C4898(void) +void DestoryUnusedTask(void) { if (sUnusedTaskId != 0xFF) { @@ -3991,7 +4069,7 @@ void sub_81C4AF8(u8 a0) u8 i; u8 *spriteIds = &gUnknown_0203CF1C->spriteIds[a0]; - if (gUnknown_0203CF1C->unk40C0 > 1) + if (gUnknown_0203CF1C->currPageIndex > 1) { u8 subsprite = 0; if (a0 == 8) From c806992cfc5a4fac53f2c8a52b32f7a039773e41 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 11:43:57 +0200 Subject: [PATCH 105/174] Port contest ai from pokeruby --- asm/contest.s | 24 +- asm/contest_ai.s | 5278 -------------------------------------- asm/contest_effect.s | 2 +- include/contest.h | 9 +- include/contest_ai.h | 16 + include/contest_effect.h | 4 +- src/contest.c | 10 +- src/contest_ai.c | 1758 +++++++++++++ 8 files changed, 1803 insertions(+), 5298 deletions(-) create mode 100644 include/contest_ai.h create mode 100644 src/contest_ai.c diff --git a/asm/contest.s b/asm/contest.s index 6504e7bf10..b67450eef4 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -43,7 +43,7 @@ sub_80DB8B8: @ 80DB8B8 lsrs r4, r0, 24 adds r5, r4, 0 adds r0, r4, 0 - bl sub_80DBCA8 + bl Contest_IsMonsTurnDisabled lsls r0, 24 cmp r0, 0 beq _080DB8D0 @@ -55,8 +55,8 @@ _080DB8D0: cmp r4, r0 beq _080DB8F4 adds r0, r4, 0 - bl sub_81562C4 - bl sub_8156324 + bl ContestAI_ResetAI + bl ContestAI_GetActionToUse lsls r0, 24 ldr r2, =gContestMons lsrs r0, 23 @@ -533,7 +533,7 @@ _080DBC3C: ldr r0, [r3, 0x4] adds r0, r4, r0 ldrh r0, [r0, 0x6] - bl sub_80DD9F0 + bl Contest_GetMoveExcitement ldr r1, [r5] ldr r2, [r1] ldrb r1, [r2, 0x1] @@ -568,8 +568,8 @@ _080DBC3C: .pool thumb_func_end sub_80DBAA0 - thumb_func_start sub_80DBCA8 -sub_80DBCA8: @ 80DBCA8 + thumb_func_start Contest_IsMonsTurnDisabled +Contest_IsMonsTurnDisabled: @ 80DBCA8 push {lr} lsls r0, 24 lsrs r0, 24 @@ -599,7 +599,7 @@ _080DBCD8: _080DBCDA: pop {r1} bx r1 - thumb_func_end sub_80DBCA8 + thumb_func_end Contest_IsMonsTurnDisabled thumb_func_start sub_80DBCE0 sub_80DBCE0: @ 80DBCE0 @@ -3425,7 +3425,7 @@ _080DD334: ldr r0, [r0, 0x4] adds r0, r4, r0 ldrh r0, [r0, 0x6] - bl sub_80DD9F0 + bl Contest_GetMoveExcitement ldr r1, [r5] ldr r1, [r1, 0x10] strb r0, [r1] @@ -4213,8 +4213,8 @@ _080DD9C8: .pool thumb_func_end sub_80DD940 - thumb_func_start sub_80DD9F0 -sub_80DD9F0: @ 80DD9F0 + thumb_func_start Contest_GetMoveExcitement +Contest_GetMoveExcitement: @ 80DD9F0 lsls r0, 16 ldr r3, =gUnknown_085899EC ldr r1, =gContestMoves @@ -4233,7 +4233,7 @@ sub_80DD9F0: @ 80DD9F0 ldrsb r0, [r1, r0] bx lr .pool - thumb_func_end sub_80DD9F0 + thumb_func_end Contest_GetMoveExcitement thumb_func_start sub_80DDA20 sub_80DDA20: @ 80DDA20 @@ -5136,7 +5136,7 @@ _080DE146: beq _080DE1CA lsls r0, r7, 24 lsrs r0, 24 - bl sub_80DBCA8 + bl Contest_IsMonsTurnDisabled lsls r0, 24 cmp r0, 0 bne _080DE1CA diff --git a/asm/contest_ai.s b/asm/contest_ai.s index ff48661f08..e69de29bb2 100644 --- a/asm/contest_ai.s +++ b/asm/contest_ai.s @@ -1,5278 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_81562C4 -sub_81562C4: @ 81562C4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0, 0xC] - movs r1, 0 - movs r2, 0x44 - bl memset - movs r1, 0 - movs r3, 0x64 - adds r2, r4, 0 -_081562DE: - ldr r0, [r4] - ldr r0, [r0, 0xC] - adds r0, 0x5 - adds r0, r1 - strb r3, [r0] - adds r1, 0x1 - cmp r1, 0x3 - ble _081562DE - ldr r0, [r2] - ldr r0, [r0, 0xC] - adds r0, 0x41 - movs r1, 0 - strb r5, [r0] - ldr r0, [r2] - ldr r0, [r0, 0xC] - adds r0, 0x40 - strb r1, [r0] - ldr r0, [r2] - ldr r2, [r0, 0xC] - ldr r1, =gContestMons - adds r0, r2, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, 0x18 - adds r0, r1 - ldr r0, [r0] - str r0, [r2, 0x14] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81562C4 - - thumb_func_start sub_8156324 -sub_8156324: @ 8156324 - push {r4-r6,lr} - ldr r1, =gContestResources - ldr r0, [r1] - ldr r0, [r0, 0xC] - ldr r0, [r0, 0x14] - cmp r0, 0 - beq _0815636A - adds r4, r1, 0 - movs r5, 0 -_08156336: - ldr r0, [r4] - ldr r2, [r0, 0xC] - ldr r0, [r2, 0x14] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0815634A - strb r5, [r2] - bl sub_81563B0 -_0815634A: - ldr r0, [r4] - ldr r1, [r0, 0xC] - ldr r0, [r1, 0x14] - lsrs r0, 1 - str r0, [r1, 0x14] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - ldr r0, [r4] - ldr r0, [r0, 0xC] - strb r5, [r0, 0x4] - ldr r0, [r4] - ldr r0, [r0, 0xC] - ldr r0, [r0, 0x14] - cmp r0, 0 - bne _08156336 -_0815636A: - movs r6, 0x3 -_0815636C: - bl Random - adds r5, r0, 0 - ands r5, r6 - ldr r4, =gContestResources - ldr r0, [r4] - ldr r1, [r0, 0xC] - adds r0, r1, 0x5 - adds r0, r5 - ldrb r3, [r0] - movs r2, 0 - ldrb r1, [r1, 0x5] - cmp r3, r1 - bcc _0815639E - adds r1, r4, 0 -_0815638A: - adds r2, 0x1 - cmp r2, 0x3 - bgt _0815639E - ldr r0, [r1] - ldr r0, [r0, 0xC] - adds r0, 0x5 - adds r0, r2 - ldrb r0, [r0] - cmp r3, r0 - bcs _0815638A -_0815639E: - cmp r2, 0x4 - bne _0815636C - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8156324 - - thumb_func_start sub_81563B0 -sub_81563B0: @ 81563B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, =gContestResources - ldr r0, [r5] - ldr r0, [r0, 0xC] - ldrb r0, [r0] - adds r4, r5, 0 - cmp r0, 0x2 - beq _081564A0 - adds r7, r5, 0 - ldr r6, =gAIScriptPtr - ldr r0, =gContestMons + 30 - mov r8, r0 -_081563CC: - ldr r0, [r7] - ldr r2, [r0, 0xC] - ldrb r0, [r2] - cmp r0, 0x1 - beq _08156426 - cmp r0, 0x1 - bgt _08156496 - cmp r0, 0 - bne _08156496 - ldr r1, =gContestAIs - ldrb r0, [r2, 0x10] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r6] - ldrb r1, [r2, 0x4] - lsls r1, 1 - adds r0, r2, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - add r1, r8 - ldrh r1, [r1] - adds r0, r1, 0 - cmp r0, 0 - bne _08156418 - strh r0, [r2, 0x2] - b _0815641A - .pool -_08156418: - strh r1, [r2, 0x2] -_0815641A: - ldr r0, [r4] - ldr r1, [r0, 0xC] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08156496 -_08156426: - ldrh r1, [r2, 0x2] - cmp r1, 0 - beq _08156444 - ldr r1, =gUnknown_085CDD00 - ldr r0, [r6] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - b _08156458 - .pool -_08156444: - adds r0, r2, 0x5 - ldrb r2, [r2, 0x4] - adds r0, r2 - strb r1, [r0] - ldr r0, [r7] - ldr r2, [r0, 0xC] - ldrb r1, [r2, 0x9] - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] -_08156458: - ldr r2, =gContestResources - ldr r0, [r2] - ldr r3, [r0, 0xC] - ldrb r1, [r3, 0x9] - movs r0, 0x1 - ands r0, r1 - adds r4, r2, 0 - cmp r0, 0 - beq _08156496 - ldrb r0, [r3, 0x4] - adds r0, 0x1 - movs r2, 0 - strb r0, [r3, 0x4] - ldr r0, [r4] - ldr r1, [r0, 0xC] - ldrb r0, [r1, 0x4] - cmp r0, 0x3 - bhi _08156484 - strb r2, [r1] - b _0815648A - .pool -_08156484: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0815648A: - ldr r0, [r4] - ldr r2, [r0, 0xC] - ldrb r1, [r2, 0x9] - movs r0, 0xFE - ands r0, r1 - strb r0, [r2, 0x9] -_08156496: - ldr r0, [r5] - ldr r0, [r0, 0xC] - ldrb r0, [r0] - cmp r0, 0x2 - bne _081563CC -_081564A0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81563B0 - - thumb_func_start sub_81564AC -sub_81564AC: @ 81564AC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, =gContestResources - ldr r0, [r3] - ldr r0, [r0, 0x8] - b _081564CC - .pool -_081564C0: - adds r1, 0x1 - cmp r1, 0x3 - bgt _081564D2 - ldr r0, [r3] - ldr r0, [r0, 0x8] - adds r0, r1 -_081564CC: - ldrb r0, [r0] - cmp r0, r2 - bne _081564C0 -_081564D2: - lsls r0, r1, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81564AC - - thumb_func_start sub_81564DC -sub_81564DC: @ 81564DC - push {r4,lr} - ldr r3, =gContestResources - ldr r0, [r3] - ldr r0, [r0, 0xC] - adds r1, r0, 0x5 - ldrb r0, [r0, 0x4] - adds r1, r0 - ldr r2, =gAIScriptPtr - ldr r0, [r2] - ldrb r0, [r0, 0x1] - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _08156510 - movs r4, 0xFF - b _08156516 - .pool -_08156510: - cmp r0, 0 - bge _08156516 - movs r4, 0 -_08156516: - ldr r0, [r3] - ldr r1, [r0, 0xC] - adds r0, r1, 0x5 - ldrb r1, [r1, 0x4] - adds r0, r1 - strb r4, [r0] - ldr r0, [r2] - adds r0, 0x2 - str r0, [r2] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81564DC - - thumb_func_start sub_8156530 -sub_8156530: @ 8156530 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0xC] - ldr r0, [r0] - ldrb r0, [r0, 0x1] - strh r0, [r1, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8156530 - - thumb_func_start sub_8156550 -sub_8156550: @ 8156550 - push {lr} - bl sub_8156530 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _0815658C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156590 - .pool -_0815658C: - adds r0, r2, 0x5 - str r0, [r3] -_08156590: - pop {r0} - bx r0 - thumb_func_end sub_8156550 - - thumb_func_start sub_8156594 -sub_8156594: @ 8156594 - push {lr} - bl sub_8156530 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _081565D0 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081565D4 - .pool -_081565D0: - adds r0, r2, 0x5 - str r0, [r3] -_081565D4: - pop {r0} - bx r0 - thumb_func_end sub_8156594 - - thumb_func_start sub_81565D8 -sub_81565D8: @ 81565D8 - push {lr} - bl sub_8156530 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08156614 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156618 - .pool -_08156614: - adds r0, r2, 0x5 - str r0, [r3] -_08156618: - pop {r0} - bx r0 - thumb_func_end sub_81565D8 - - thumb_func_start sub_815661C -sub_815661C: @ 815661C - push {lr} - bl sub_8156530 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08156658 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0815665C - .pool -_08156658: - adds r0, r2, 0x5 - str r0, [r3] -_0815665C: - pop {r0} - bx r0 - thumb_func_end sub_815661C - - thumb_func_start sub_8156660 -sub_8156660: @ 8156660 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0xC] - ldr r0, [r0] - ldrb r0, [r0, 0x13] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8156660 - - thumb_func_start sub_8156684 -sub_8156684: @ 8156684 - push {lr} - bl sub_8156660 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _081566C0 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081566C4 - .pool -_081566C0: - adds r0, r2, 0x5 - str r0, [r3] -_081566C4: - pop {r0} - bx r0 - thumb_func_end sub_8156684 - - thumb_func_start sub_81566C8 -sub_81566C8: @ 81566C8 - push {lr} - bl sub_8156660 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08156704 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156708 - .pool -_08156704: - adds r0, r2, 0x5 - str r0, [r3] -_08156708: - pop {r0} - bx r0 - thumb_func_end sub_81566C8 - - thumb_func_start sub_815670C -sub_815670C: @ 815670C - push {lr} - bl sub_8156660 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08156748 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0815674C - .pool -_08156748: - adds r0, r2, 0x5 - str r0, [r3] -_0815674C: - pop {r0} - bx r0 - thumb_func_end sub_815670C - - thumb_func_start sub_8156750 -sub_8156750: @ 8156750 - push {lr} - bl sub_8156660 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _0815678C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156790 - .pool -_0815678C: - adds r0, r2, 0x5 - str r0, [r3] -_08156790: - pop {r0} - bx r0 - thumb_func_end sub_8156750 - - thumb_func_start sub_8156794 -sub_8156794: @ 8156794 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r0, [r0, 0x8] - adds r1, r2, 0 - adds r1, 0x41 - ldrb r1, [r1] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8156794 - - thumb_func_start sub_81567BC -sub_81567BC: @ 81567BC - push {lr} - bl sub_8156794 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _081567F8 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081567FC - .pool -_081567F8: - adds r0, r2, 0x5 - str r0, [r3] -_081567FC: - pop {r0} - bx r0 - thumb_func_end sub_81567BC - - thumb_func_start sub_8156800 -sub_8156800: @ 8156800 - push {lr} - bl sub_8156794 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _0815683C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156840 - .pool -_0815683C: - adds r0, r2, 0x5 - str r0, [r3] -_08156840: - pop {r0} - bx r0 - thumb_func_end sub_8156800 - - thumb_func_start sub_8156844 -sub_8156844: @ 8156844 - push {lr} - bl sub_8156794 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08156880 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156884 - .pool -_08156880: - adds r0, r2, 0x5 - str r0, [r3] -_08156884: - pop {r0} - bx r0 - thumb_func_end sub_8156844 - - thumb_func_start sub_8156888 -sub_8156888: @ 8156888 - push {lr} - bl sub_8156794 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _081568C4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081568C8 - .pool -_081568C4: - adds r0, r2, 0x5 - str r0, [r3] -_081568C8: - pop {r0} - bx r0 - thumb_func_end sub_8156888 - - thumb_func_start sub_81568CC -sub_81568CC: @ 81568CC - push {r4,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r4, [r0, 0xC] - adds r1, r4, 0 - adds r1, 0x41 - ldrb r1, [r1] - ldr r2, [r0, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81568CC - - thumb_func_start sub_815690C -sub_815690C: @ 815690C - push {lr} - bl sub_81568CC - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08156948 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0815694C - .pool -_08156948: - adds r0, r2, 0x5 - str r0, [r3] -_0815694C: - pop {r0} - bx r0 - thumb_func_end sub_815690C - - thumb_func_start sub_8156950 -sub_8156950: @ 8156950 - push {lr} - bl sub_81568CC - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _0815698C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156990 - .pool -_0815698C: - adds r0, r2, 0x5 - str r0, [r3] -_08156990: - pop {r0} - bx r0 - thumb_func_end sub_8156950 - - thumb_func_start sub_8156994 -sub_8156994: @ 8156994 - push {lr} - bl sub_81568CC - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _081569D0 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081569D4 - .pool -_081569D0: - adds r0, r2, 0x5 - str r0, [r3] -_081569D4: - pop {r0} - bx r0 - thumb_func_end sub_8156994 - - thumb_func_start sub_81569D8 -sub_81569D8: @ 81569D8 - push {lr} - bl sub_81568CC - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08156A14 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156A18 - .pool -_08156A14: - adds r0, r2, 0x5 - str r0, [r3] -_08156A18: - pop {r0} - bx r0 - thumb_func_end sub_81569D8 - - thumb_func_start sub_8156A1C -sub_8156A1C: @ 8156A1C - ldr r0, =gContestResources - ldr r0, [r0] - ldr r3, [r0, 0xC] - adds r1, r3, 0 - adds r1, 0x41 - ldrb r1, [r1] - ldr r2, [r0, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x4] - strh r0, [r3, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8156A1C - - thumb_func_start sub_8156A48 -sub_8156A48: @ 8156A48 - push {r4,r5,lr} - bl sub_8156A1C - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bge _08156A8C - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08156A90 - .pool -_08156A8C: - adds r0, r3, 0x6 - str r0, [r4] -_08156A90: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8156A48 - - thumb_func_start sub_8156A98 -sub_8156A98: @ 8156A98 - push {r4,r5,lr} - bl sub_8156A1C - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - ble _08156ADC - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08156AE0 - .pool -_08156ADC: - adds r0, r3, 0x6 - str r0, [r4] -_08156AE0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8156A98 - - thumb_func_start sub_8156AE8 -sub_8156AE8: @ 8156AE8 - push {r4,r5,lr} - bl sub_8156A1C - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bne _08156B2C - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08156B30 - .pool -_08156B2C: - adds r0, r3, 0x6 - str r0, [r4] -_08156B30: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8156AE8 - - thumb_func_start sub_8156B38 -sub_8156B38: @ 8156B38 - push {r4,r5,lr} - bl sub_8156A1C - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - beq _08156B7C - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08156B80 - .pool -_08156B7C: - adds r0, r3, 0x6 - str r0, [r4] -_08156B80: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8156B38 - - thumb_func_start sub_8156B88 -sub_8156B88: @ 8156B88 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r1, =gContestMonConditions - adds r0, r2, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8156B88 - - thumb_func_start sub_8156BB4 -sub_8156BB4: @ 8156BB4 - push {r4,r5,lr} - bl sub_8156B88 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bge _08156BF8 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08156BFC - .pool -_08156BF8: - adds r0, r3, 0x6 - str r0, [r4] -_08156BFC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8156BB4 - - thumb_func_start sub_8156C04 -sub_8156C04: @ 8156C04 - push {r4,r5,lr} - bl sub_8156B88 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - ble _08156C48 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08156C4C - .pool -_08156C48: - adds r0, r3, 0x6 - str r0, [r4] -_08156C4C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8156C04 - - thumb_func_start sub_8156C54 -sub_8156C54: @ 8156C54 - push {r4,r5,lr} - bl sub_8156B88 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bne _08156C98 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08156C9C - .pool -_08156C98: - adds r0, r3, 0x6 - str r0, [r4] -_08156C9C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8156C54 - - thumb_func_start sub_8156CA4 -sub_8156CA4: @ 8156CA4 - push {r4,r5,lr} - bl sub_8156B88 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - beq _08156CE8 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08156CEC - .pool -_08156CE8: - adds r0, r3, 0x6 - str r0, [r4] -_08156CEC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8156CA4 - - thumb_func_start sub_8156CF4 -sub_8156CF4: @ 8156CF4 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0xC] - ldr r0, =gSpecialVar_ContestCategory - ldrh r0, [r0] - strh r0, [r1, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8156CF4 - - thumb_func_start sub_8156D18 -sub_8156D18: @ 8156D18 - push {lr} - bl sub_8156CF4 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08156D54 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156D58 - .pool -_08156D54: - adds r0, r2, 0x5 - str r0, [r3] -_08156D58: - pop {r0} - bx r0 - thumb_func_end sub_8156D18 - - thumb_func_start sub_8156D5C -sub_8156D5C: @ 8156D5C - push {lr} - bl sub_8156CF4 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08156D98 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156D9C - .pool -_08156D98: - adds r0, r2, 0x5 - str r0, [r3] -_08156D9C: - pop {r0} - bx r0 - thumb_func_end sub_8156D5C - - thumb_func_start sub_8156DA0 -sub_8156DA0: @ 8156DA0 - push {r4,lr} - ldr r2, =gContestMons - ldr r4, =gContestResources - ldr r0, [r4] - ldr r0, [r0, 0xC] - ldrb r1, [r0, 0x4] - lsls r1, 1 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - bl sub_80DD9F0 - ldr r1, [r4] - ldr r1, [r1, 0xC] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8156DA0 - - thumb_func_start sub_8156DE4 -sub_8156DE4: @ 8156DE4 - push {r4,lr} - bl sub_8156DA0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - movs r4, 0x18 - ldrsh r1, [r0, r4] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bge _08156E20 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156E24 - .pool -_08156E20: - adds r0, r2, 0x5 - str r0, [r3] -_08156E24: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8156DE4 - - thumb_func_start sub_8156E2C -sub_8156E2C: @ 8156E2C - push {r4,lr} - bl sub_8156DA0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - movs r4, 0x18 - ldrsh r1, [r0, r4] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - ble _08156E68 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156E6C - .pool -_08156E68: - adds r0, r2, 0x5 - str r0, [r3] -_08156E6C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8156E2C - - thumb_func_start sub_8156E74 -sub_8156E74: @ 8156E74 - push {r4,lr} - bl sub_8156DA0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - movs r4, 0x18 - ldrsh r1, [r0, r4] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _08156EB0 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156EB4 - .pool -_08156EB0: - adds r0, r2, 0x5 - str r0, [r3] -_08156EB4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8156E74 - - thumb_func_start sub_8156EBC -sub_8156EBC: @ 8156EBC - push {r4,lr} - bl sub_8156DA0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - movs r4, 0x18 - ldrsh r1, [r0, r4] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - beq _08156EF8 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156EFC - .pool -_08156EF8: - adds r0, r2, 0x5 - str r0, [r3] -_08156EFC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8156EBC - - thumb_func_start sub_8156F04 -sub_8156F04: @ 8156F04 - ldr r2, =gContestMons - ldr r0, =gContestResources - ldr r0, [r0] - ldr r3, [r0, 0xC] - ldrb r1, [r3, 0x4] - lsls r1, 1 - adds r0, r3, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - ldr r1, =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r3, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8156F04 - - thumb_func_start sub_8156F44 -sub_8156F44: @ 8156F44 - push {lr} - bl sub_8156F04 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08156F80 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156F84 - .pool -_08156F80: - adds r0, r2, 0x5 - str r0, [r3] -_08156F84: - pop {r0} - bx r0 - thumb_func_end sub_8156F44 - - thumb_func_start sub_8156F88 -sub_8156F88: @ 8156F88 - push {lr} - bl sub_8156F04 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08156FC4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08156FC8 - .pool -_08156FC4: - adds r0, r2, 0x5 - str r0, [r3] -_08156FC8: - pop {r0} - bx r0 - thumb_func_end sub_8156F88 - - thumb_func_start sub_8156FCC -sub_8156FCC: @ 8156FCC - ldr r2, =gContestMons - ldr r0, =gContestResources - ldr r0, [r0] - ldr r3, [r0, 0xC] - ldrb r1, [r3, 0x4] - lsls r1, 1 - adds r0, r3, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - ldr r2, =gContestEffects - ldr r1, =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r3, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8156FCC - - thumb_func_start sub_8157018 -sub_8157018: @ 8157018 - push {lr} - bl sub_8156FCC - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08157054 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157058 - .pool -_08157054: - adds r0, r2, 0x5 - str r0, [r3] -_08157058: - pop {r0} - bx r0 - thumb_func_end sub_8157018 - - thumb_func_start sub_815705C -sub_815705C: @ 815705C - push {lr} - bl sub_8156FCC - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08157098 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0815709C - .pool -_08157098: - adds r0, r2, 0x5 - str r0, [r3] -_0815709C: - pop {r0} - bx r0 - thumb_func_end sub_815705C - - thumb_func_start sub_81570A0 -sub_81570A0: @ 81570A0 - push {r4-r7,lr} - ldr r2, =gContestMons - ldr r5, =gContestResources - ldr r0, [r5] - ldr r1, [r0, 0xC] - ldrb r0, [r1, 0x4] - lsls r0, 1 - adds r1, 0x41 - ldrb r1, [r1] - lsls r1, 6 - adds r0, r1 - adds r2, 0x1E - adds r0, r2 - ldrh r0, [r0] - ldr r3, =gContestEffects - ldr r4, =gContestMoves - lsls r0, 3 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldrb r7, [r0, 0x1] - movs r6, 0 - ldr r0, =gAIScriptPtr - mov r12, r0 - adds r1, r2 -_081570D4: - ldrh r0, [r1] - cmp r0, 0 - beq _081570EA - lsls r0, 3 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x1] - cmp r7, r0 - bcc _081570F2 -_081570EA: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _081570D4 -_081570F2: - cmp r6, 0x4 - bne _08157114 - ldr r0, [r5] - ldr r1, [r0, 0xC] - movs r0, 0x1 - b _0815711A - .pool -_08157114: - ldr r0, [r5] - ldr r1, [r0, 0xC] - movs r0, 0 -_0815711A: - strh r0, [r1, 0x18] - mov r1, r12 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81570A0 - - thumb_func_start sub_815712C -sub_815712C: @ 815712C - push {lr} - bl sub_81570A0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08157164 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0815716C - .pool -_08157164: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0815716C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_815712C - - thumb_func_start sub_8157174 -sub_8157174: @ 8157174 - push {r4-r7,lr} - ldr r2, =gContestMons - ldr r5, =gContestResources - ldr r0, [r5] - ldr r1, [r0, 0xC] - ldrb r0, [r1, 0x4] - lsls r0, 1 - adds r1, 0x41 - ldrb r1, [r1] - lsls r1, 6 - adds r0, r1 - adds r2, 0x1E - adds r0, r2 - ldrh r0, [r0] - ldr r3, =gContestEffects - ldr r4, =gContestMoves - lsls r0, 3 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldrb r7, [r0, 0x2] - movs r6, 0 - ldr r0, =gAIScriptPtr - mov r12, r0 - adds r1, r2 -_081571A8: - ldrh r0, [r1] - cmp r0, 0 - beq _081571BE - lsls r0, 3 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x2] - cmp r7, r0 - bcc _081571C6 -_081571BE: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _081571A8 -_081571C6: - cmp r6, 0x4 - bne _081571E8 - ldr r0, [r5] - ldr r1, [r0, 0xC] - movs r0, 0x1 - b _081571EE - .pool -_081571E8: - ldr r0, [r5] - ldr r1, [r0, 0xC] - movs r0, 0 -_081571EE: - strh r0, [r1, 0x18] - mov r1, r12 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8157174 - - thumb_func_start sub_8157200 -sub_8157200: @ 8157200 - push {lr} - bl sub_8157174 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08157238 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157240 - .pool -_08157238: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08157240: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157200 - - thumb_func_start sub_8157248 -sub_8157248: @ 8157248 - push {r4,lr} - ldr r2, =gContestMons - ldr r0, =gContestResources - ldr r0, [r0] - ldr r4, [r0, 0xC] - ldrb r1, [r4, 0x4] - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - ldr r2, =gContestEffects - ldr r1, =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157248 - - thumb_func_start sub_81572A4 -sub_81572A4: @ 81572A4 - push {lr} - bl sub_8157248 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _081572E0 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081572E4 - .pool -_081572E0: - adds r0, r2, 0x5 - str r0, [r3] -_081572E4: - pop {r0} - bx r0 - thumb_func_end sub_81572A4 - - thumb_func_start sub_81572E8 -sub_81572E8: @ 81572E8 - push {lr} - bl sub_8157248 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08157324 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157328 - .pool -_08157324: - adds r0, r2, 0x5 - str r0, [r3] -_08157328: - pop {r0} - bx r0 - thumb_func_end sub_81572E8 - - thumb_func_start sub_815732C -sub_815732C: @ 815732C - push {lr} - bl sub_8157248 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08157368 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0815736C - .pool -_08157368: - adds r0, r2, 0x5 - str r0, [r3] -_0815736C: - pop {r0} - bx r0 - thumb_func_end sub_815732C - - thumb_func_start sub_8157370 -sub_8157370: @ 8157370 - push {lr} - bl sub_8157248 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _081573AC - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081573B0 - .pool -_081573AC: - adds r0, r2, 0x5 - str r0, [r3] -_081573B0: - pop {r0} - bx r0 - thumb_func_end sub_8157370 - - thumb_func_start sub_81573B4 -sub_81573B4: @ 81573B4 - push {r4,lr} - ldr r2, =gContestMons - ldr r0, =gContestResources - ldr r0, [r0] - ldr r4, [r0, 0xC] - ldrb r1, [r4, 0x4] - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - ldr r2, =gContestEffects - ldr r1, =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81573B4 - - thumb_func_start sub_8157410 -sub_8157410: @ 8157410 - push {lr} - bl sub_81573B4 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _0815744C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157450 - .pool -_0815744C: - adds r0, r2, 0x5 - str r0, [r3] -_08157450: - pop {r0} - bx r0 - thumb_func_end sub_8157410 - - thumb_func_start sub_8157454 -sub_8157454: @ 8157454 - push {lr} - bl sub_81573B4 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08157490 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157494 - .pool -_08157490: - adds r0, r2, 0x5 - str r0, [r3] -_08157494: - pop {r0} - bx r0 - thumb_func_end sub_8157454 - - thumb_func_start sub_8157498 -sub_8157498: @ 8157498 - push {lr} - bl sub_81573B4 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _081574D4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081574D8 - .pool -_081574D4: - adds r0, r2, 0x5 - str r0, [r3] -_081574D8: - pop {r0} - bx r0 - thumb_func_end sub_8157498 - - thumb_func_start sub_81574DC -sub_81574DC: @ 81574DC - push {lr} - bl sub_81573B4 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08157518 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0815751C - .pool -_08157518: - adds r0, r2, 0x5 - str r0, [r3] -_0815751C: - pop {r0} - bx r0 - thumb_func_end sub_81574DC - - thumb_func_start sub_8157520 -sub_8157520: @ 8157520 - push {r4,r5,lr} - ldr r3, =gContestMons - ldr r5, =gContestResources - ldr r4, [r5] - ldr r1, [r4, 0xC] - ldrb r0, [r1, 0x4] - lsls r0, 1 - adds r1, 0x41 - ldrb r2, [r1] - lsls r1, r2, 6 - adds r0, r1 - adds r3, 0x1E - adds r0, r3 - ldrh r3, [r0] - ldr r1, [r4, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x8] - cmp r3, r1 - beq _08157558 - movs r1, 0 - b _08157560 - .pool -_08157558: - ldrb r0, [r0, 0xB] - lsls r0, 25 - lsrs r0, 29 - adds r1, r0, 0x1 -_08157560: - ldr r0, [r5] - ldr r0, [r0, 0xC] - strh r1, [r0, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157520 - - thumb_func_start sub_8157578 -sub_8157578: @ 8157578 - push {lr} - bl sub_8157520 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _081575B4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081575B8 - .pool -_081575B4: - adds r0, r2, 0x5 - str r0, [r3] -_081575B8: - pop {r0} - bx r0 - thumb_func_end sub_8157578 - - thumb_func_start sub_81575BC -sub_81575BC: @ 81575BC - push {lr} - bl sub_8157520 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _081575F8 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081575FC - .pool -_081575F8: - adds r0, r2, 0x5 - str r0, [r3] -_081575FC: - pop {r0} - bx r0 - thumb_func_end sub_81575BC - - thumb_func_start sub_8157600 -sub_8157600: @ 8157600 - push {lr} - bl sub_8157520 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _0815763C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157640 - .pool -_0815763C: - adds r0, r2, 0x5 - str r0, [r3] -_08157640: - pop {r0} - bx r0 - thumb_func_end sub_8157600 - - thumb_func_start sub_8157644 -sub_8157644: @ 8157644 - push {lr} - bl sub_8157520 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08157680 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157684 - .pool -_08157680: - adds r0, r2, 0x5 - str r0, [r3] -_08157684: - pop {r0} - bx r0 - thumb_func_end sub_8157644 - - thumb_func_start sub_8157688 -sub_8157688: @ 8157688 - push {r4-r6,lr} - movs r3, 0 - ldr r2, =gContestMons - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - ldrb r1, [r0, 0x4] - lsls r1, 1 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r5, [r1] - movs r4, 0 - adds r6, r2, 0 -_081576AA: - lsls r1, r4, 1 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r1, r6 - ldrh r0, [r1] - cmp r0, 0 - beq _081576D2 - adds r1, r0, 0 - adds r0, r5, 0 - bl AreMovesContestCombo - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _081576DC -_081576D2: - adds r4, 0x1 - cmp r4, 0x3 - ble _081576AA - cmp r3, 0 - beq _081576DE -_081576DC: - movs r3, 0x1 -_081576DE: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - strh r3, [r0, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157688 - - thumb_func_start sub_8157700 -sub_8157700: @ 8157700 - push {lr} - bl sub_8157688 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08157738 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157740 - .pool -_08157738: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157740: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157700 - - thumb_func_start sub_8157748 -sub_8157748: @ 8157748 - push {lr} - bl sub_8157688 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08157780 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157788 - .pool -_08157780: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157788: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157748 - - thumb_func_start sub_8157790 -sub_8157790: @ 8157790 - push {r4-r6,lr} - movs r3, 0 - ldr r2, =gContestMons - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - ldrb r1, [r0, 0x4] - lsls r1, 1 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r5, [r1] - movs r4, 0 - adds r6, r2, 0 -_081577B2: - lsls r1, r4, 1 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r1, r6 - ldrh r0, [r1] - cmp r0, 0 - beq _081577D8 - adds r1, r5, 0 - bl AreMovesContestCombo - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _081577E2 -_081577D8: - adds r4, 0x1 - cmp r4, 0x3 - ble _081577B2 - cmp r3, 0 - beq _081577E4 -_081577E2: - movs r3, 0x1 -_081577E4: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - strh r3, [r0, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157790 - - thumb_func_start sub_8157808 -sub_8157808: @ 8157808 - push {lr} - bl sub_8157790 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08157840 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157848 - .pool -_08157840: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157848: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157808 - - thumb_func_start sub_8157850 -sub_8157850: @ 8157850 - push {lr} - bl sub_8157790 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08157888 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157890 - .pool -_08157888: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157890: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157850 - - thumb_func_start sub_8157898 -sub_8157898: @ 8157898 - push {r4-r6,lr} - movs r5, 0 - ldr r3, =gContestMons - ldr r6, =gContestResources - ldr r4, [r6] - ldr r1, [r4, 0xC] - ldrb r0, [r1, 0x4] - lsls r0, 1 - adds r1, 0x41 - ldrb r2, [r1] - lsls r1, r2, 6 - adds r0, r1 - adds r3, 0x1E - adds r0, r3 - ldrh r3, [r0] - ldr r1, [r4, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r1, r0, r1 - ldrh r0, [r1, 0x8] - cmp r0, 0 - beq _081578D0 - adds r1, r3, 0 - bl AreMovesContestCombo - lsls r0, 24 - lsrs r5, r0, 24 -_081578D0: - cmp r5, 0 - beq _081578D6 - movs r5, 0x1 -_081578D6: - ldr r0, [r6] - ldr r0, [r0, 0xC] - strh r5, [r0, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157898 - - thumb_func_start sub_81578F8 -sub_81578F8: @ 81578F8 - push {lr} - bl sub_8157898 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08157930 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157938 - .pool -_08157930: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157938: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81578F8 - - thumb_func_start sub_8157940 -sub_8157940: @ 8157940 - push {lr} - bl sub_8157898 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08157978 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157980 - .pool -_08157978: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157980: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157940 - - thumb_func_start sub_8157988 -sub_8157988: @ 8157988 - push {r4,r5,lr} - ldr r4, =gAIScriptPtr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_81564AC - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gContestResources - ldr r1, [r1] - ldr r5, [r1, 0xC] - ldr r2, [r1, 0x4] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0xD - ldrsb r0, [r1, r0] - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0x18] - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157988 - - thumb_func_start sub_81579CC -sub_81579CC: @ 81579CC - push {lr} - bl sub_8157988 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08157A08 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157A0C - .pool -_08157A08: - adds r0, r2, 0x5 - str r0, [r3] -_08157A0C: - pop {r0} - bx r0 - thumb_func_end sub_81579CC - - thumb_func_start sub_8157A10 -sub_8157A10: @ 8157A10 - push {lr} - bl sub_8157988 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08157A4C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157A50 - .pool -_08157A4C: - adds r0, r2, 0x5 - str r0, [r3] -_08157A50: - pop {r0} - bx r0 - thumb_func_end sub_8157A10 - - thumb_func_start sub_8157A54 -sub_8157A54: @ 8157A54 - push {lr} - bl sub_8157988 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08157A90 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157A94 - .pool -_08157A90: - adds r0, r2, 0x5 - str r0, [r3] -_08157A94: - pop {r0} - bx r0 - thumb_func_end sub_8157A54 - - thumb_func_start sub_8157A98 -sub_8157A98: @ 8157A98 - push {lr} - bl sub_8157988 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08157AD4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157AD8 - .pool -_08157AD4: - adds r0, r2, 0x5 - str r0, [r3] -_08157AD8: - pop {r0} - bx r0 - thumb_func_end sub_8157A98 - - thumb_func_start sub_8157ADC -sub_8157ADC: @ 8157ADC - push {r4-r6,lr} - movs r6, 0 - ldr r5, =gAIScriptPtr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_81564AC - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80DE1E8 - lsls r0, 24 - cmp r0, 0 - beq _08157B18 - ldr r2, =gContestMoves - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x8] - lsls r0, 3 - adds r0, r2 - ldrb r1, [r0, 0x2] - negs r0, r1 - orrs r0, r1 - lsrs r6, r0, 31 -_08157B18: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - strh r6, [r0, 0x18] - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157ADC - - thumb_func_start sub_8157B38 -sub_8157B38: @ 8157B38 - push {lr} - bl sub_8157ADC - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08157B74 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157B78 - .pool -_08157B74: - adds r0, r2, 0x5 - str r0, [r3] -_08157B78: - pop {r0} - bx r0 - thumb_func_end sub_8157B38 - - thumb_func_start sub_8157B7C -sub_8157B7C: @ 8157B7C - push {lr} - bl sub_8157ADC - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08157BB8 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157BBC - .pool -_08157BB8: - adds r0, r2, 0x5 - str r0, [r3] -_08157BBC: - pop {r0} - bx r0 - thumb_func_end sub_8157B7C - - thumb_func_start sub_8157BC0 -sub_8157BC0: @ 8157BC0 - push {lr} - bl sub_8157ADC - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08157BFC - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157C00 - .pool -_08157BFC: - adds r0, r2, 0x5 - str r0, [r3] -_08157C00: - pop {r0} - bx r0 - thumb_func_end sub_8157BC0 - - thumb_func_start sub_8157C04 -sub_8157C04: @ 8157C04 - push {lr} - bl sub_8157ADC - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08157C40 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157C44 - .pool -_08157C40: - adds r0, r2, 0x5 - str r0, [r3] -_08157C44: - pop {r0} - bx r0 - thumb_func_end sub_8157C04 - - thumb_func_start sub_8157C48 -sub_8157C48: @ 8157C48 - push {lr} - ldr r0, =gAIScriptPtr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_81564AC - lsls r0, 24 - lsrs r0, 24 - bl sub_80DBCA8 - lsls r0, 24 - cmp r0, 0 - beq _08157C74 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0xC] - movs r0, 0 - b _08157C7C - .pool -_08157C74: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0xC] - movs r0, 0x1 -_08157C7C: - strh r0, [r1, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157C48 - - thumb_func_start sub_8157C94 -sub_8157C94: @ 8157C94 - push {lr} - bl sub_8157C48 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08157CCC - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157CD4 - .pool -_08157CCC: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157CD4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157C94 - - thumb_func_start sub_8157CDC -sub_8157CDC: @ 8157CDC - push {lr} - bl sub_8157C48 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08157D14 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157D1C - .pool -_08157D14: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157D1C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157CDC - - thumb_func_start sub_8157D24 -sub_8157D24: @ 8157D24 - push {r4,lr} - ldr r4, =gAIScriptPtr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_81564AC - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gContestResources - ldr r1, [r1] - ldr r3, [r1, 0xC] - ldr r2, [r1, 0x4] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x15] - lsls r0, 28 - lsrs r0, 31 - strh r0, [r3, 0x18] - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157D24 - - thumb_func_start sub_8157D60 -sub_8157D60: @ 8157D60 - push {lr} - bl sub_8157D24 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08157D98 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157DA0 - .pool -_08157D98: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157DA0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157D60 - - thumb_func_start sub_8157DA8 -sub_8157DA8: @ 8157DA8 - push {lr} - bl sub_8157D24 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08157DE0 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157DE8 - .pool -_08157DE0: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157DE8: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157DA8 - - thumb_func_start sub_8157DF0 -sub_8157DF0: @ 8157DF0 - push {r4,r5,lr} - ldr r4, =gAIScriptPtr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_81564AC - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gContestResources - ldr r1, [r1] - ldr r5, [r1, 0xC] - ldr r3, [r1, 0x4] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r3 - adds r0, r5, 0 - adds r0, 0x41 - ldrb r2, [r0] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r1, 0x4] - ldrh r0, [r0, 0x4] - subs r1, r0 - strh r1, [r5, 0x18] - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157DF0 - - thumb_func_start sub_8157E3C -sub_8157E3C: @ 8157E3C - push {lr} - bl sub_8157DF0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _08157E74 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157E7C - .pool -_08157E74: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157E7C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157E3C - - thumb_func_start sub_8157E84 -sub_8157E84: @ 8157E84 - push {lr} - bl sub_8157DF0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - ble _08157EBC - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157EC4 - .pool -_08157EBC: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157EC4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157E84 - - thumb_func_start sub_8157ECC -sub_8157ECC: @ 8157ECC - push {lr} - bl sub_8157DF0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08157F04 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157F0C - .pool -_08157F04: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157F0C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157ECC - - thumb_func_start sub_8157F14 -sub_8157F14: @ 8157F14 - push {lr} - bl sub_8157DF0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08157F4C - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157F54 - .pool -_08157F4C: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157F54: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157F14 - - thumb_func_start sub_8157F5C -sub_8157F5C: @ 8157F5C - push {r4,lr} - ldr r4, =gAIScriptPtr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_81564AC - lsls r0, 24 - ldr r1, =gContestResources - ldr r1, [r1] - ldr r3, [r1, 0xC] - ldr r2, =gContestMonConditions - lsrs r0, 23 - adds r0, r2 - adds r1, r3, 0 - adds r1, 0x41 - ldrb r1, [r1] - lsls r1, 1 - adds r1, r2 - ldrh r0, [r0] - ldrh r1, [r1] - subs r0, r1 - strh r0, [r3, 0x18] - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157F5C - - thumb_func_start sub_8157FA0 -sub_8157FA0: @ 8157FA0 - push {lr} - bl sub_8157F5C - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _08157FD8 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08157FE0 - .pool -_08157FD8: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08157FE0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157FA0 - - thumb_func_start sub_8157FE8 -sub_8157FE8: @ 8157FE8 - push {lr} - bl sub_8157F5C - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - ble _08158020 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08158028 - .pool -_08158020: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08158028: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8157FE8 - - thumb_func_start sub_8158030 -sub_8158030: @ 8158030 - push {lr} - bl sub_8157F5C - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08158068 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08158070 - .pool -_08158068: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08158070: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8158030 - - thumb_func_start sub_8158078 -sub_8158078: @ 8158078 - push {lr} - bl sub_8157F5C - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _081580B0 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081580B8 - .pool -_081580B0: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_081580B8: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8158078 - - thumb_func_start sub_81580C0 -sub_81580C0: @ 81580C0 - push {r4,r5,lr} - ldr r5, =gAIScriptPtr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_81564AC - lsls r0, 24 - ldr r3, [r5] - ldrb r2, [r3, 0x2] - ldr r1, =gContestResources - ldr r4, [r1] - ldr r1, [r4] - lsrs r0, 23 - lsls r2, 3 - adds r0, r2 - adds r1, 0x1C - adds r1, r0 - ldrh r0, [r1] - ldr r2, [r4, 0xC] - ldr r1, =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2, 0x18] - adds r3, 0x3 - str r3, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81580C0 - - thumb_func_start sub_8158108 -sub_8158108: @ 8158108 - push {lr} - bl sub_81580C0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08158144 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08158148 - .pool -_08158144: - adds r0, r2, 0x5 - str r0, [r3] -_08158148: - pop {r0} - bx r0 - thumb_func_end sub_8158108 - - thumb_func_start sub_815814C -sub_815814C: @ 815814C - push {lr} - bl sub_81580C0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08158188 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0815818C - .pool -_08158188: - adds r0, r2, 0x5 - str r0, [r3] -_0815818C: - pop {r0} - bx r0 - thumb_func_end sub_815814C - - thumb_func_start sub_8158190 -sub_8158190: @ 8158190 - push {lr} - bl sub_81580C0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _081581CC - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081581D0 - .pool -_081581CC: - adds r0, r2, 0x5 - str r0, [r3] -_081581D0: - pop {r0} - bx r0 - thumb_func_end sub_8158190 - - thumb_func_start sub_81581D4 -sub_81581D4: @ 81581D4 - push {lr} - bl sub_81580C0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08158210 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08158214 - .pool -_08158210: - adds r0, r2, 0x5 - str r0, [r3] -_08158214: - pop {r0} - bx r0 - thumb_func_end sub_81581D4 - - thumb_func_start sub_8158218 -sub_8158218: @ 8158218 - push {r4,r5,lr} - ldr r5, =gAIScriptPtr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_81564AC - lsls r0, 24 - lsrs r0, 24 - ldr r3, [r5] - ldrb r2, [r3, 0x2] - ldr r1, =gContestResources - ldr r4, [r1] - ldr r1, [r4] - lsls r2, 2 - adds r0, r2 - adds r1, 0x44 - adds r1, r0 - ldr r2, [r4, 0xC] - movs r0, 0 - ldrsb r0, [r1, r0] - strh r0, [r2, 0x18] - adds r3, 0x3 - str r3, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8158218 - - thumb_func_start sub_8158254 -sub_8158254: @ 8158254 - push {lr} - bl sub_8158218 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08158290 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08158294 - .pool -_08158290: - adds r0, r2, 0x5 - str r0, [r3] -_08158294: - pop {r0} - bx r0 - thumb_func_end sub_8158254 - - thumb_func_start sub_8158298 -sub_8158298: @ 8158298 - push {lr} - bl sub_8158218 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _081582D4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081582D8 - .pool -_081582D4: - adds r0, r2, 0x5 - str r0, [r3] -_081582D8: - pop {r0} - bx r0 - thumb_func_end sub_8158298 - - thumb_func_start sub_81582DC -sub_81582DC: @ 81582DC - push {lr} - bl sub_8158218 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08158318 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0815831C - .pool -_08158318: - adds r0, r2, 0x5 - str r0, [r3] -_0815831C: - pop {r0} - bx r0 - thumb_func_end sub_81582DC - - thumb_func_start sub_8158320 -sub_8158320: @ 8158320 - push {lr} - bl sub_8158218 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _0815835C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08158360 - .pool -_0815835C: - adds r0, r2, 0x5 - str r0, [r3] -_08158360: - pop {r0} - bx r0 - thumb_func_end sub_8158320 - - thumb_func_start sub_8158364 -sub_8158364: @ 8158364 - push {r4,r5,lr} - ldr r5, =gAIScriptPtr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_81564AC - lsls r0, 24 - ldr r3, [r5] - ldrb r2, [r3, 0x2] - ldr r1, =gContestResources - ldr r4, [r1] - ldr r1, [r4] - lsrs r0, 23 - lsls r2, 3 - adds r0, r2 - adds r1, 0x1C - adds r1, r0 - ldrh r0, [r1] - ldr r4, [r4, 0xC] - ldr r2, =gContestEffects - ldr r1, =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r4, 0x18] - adds r3, 0x3 - str r3, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8158364 - - thumb_func_start sub_81583B8 -sub_81583B8: @ 81583B8 - push {lr} - bl sub_8158364 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _081583F4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081583F8 - .pool -_081583F4: - adds r0, r2, 0x5 - str r0, [r3] -_081583F8: - pop {r0} - bx r0 - thumb_func_end sub_81583B8 - - thumb_func_start sub_81583FC -sub_81583FC: @ 81583FC - push {lr} - bl sub_8158364 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08158438 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0815843C - .pool -_08158438: - adds r0, r2, 0x5 - str r0, [r3] -_0815843C: - pop {r0} - bx r0 - thumb_func_end sub_81583FC - - thumb_func_start sub_8158440 -sub_8158440: @ 8158440 - push {r4,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r3, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r2, [r4] - ldrb r0, [r2, 0x1] - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0x1A - adds r1, r0 - ldrh r0, [r3, 0x18] - strh r0, [r1] - adds r2, 0x2 - str r2, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8158440 - - thumb_func_start sub_815846C -sub_815846C: @ 815846C - push {r4,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r3, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r2, [r4] - ldrb r0, [r2, 0x1] - lsls r0, 1 - adds r3, 0x1A - adds r3, r0 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - strh r1, [r3] - adds r2, 0x4 - str r2, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_815846C - - thumb_func_start sub_815849C -sub_815849C: @ 815849C - push {r4,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r2, 0x1A - adds r2, r0 - movs r1, 0x2 - ldrsb r1, [r3, r1] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrh r0, [r2] - adds r1, r0 - strh r1, [r2] - adds r3, 0x4 - str r3, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_815849C - - thumb_func_start sub_81584D4 -sub_81584D4: @ 81584D4 - push {r4,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - lsls r1, 1 - adds r2, 0x1A - adds r1, r2, r1 - ldrb r0, [r3, 0x2] - lsls r0, 1 - adds r2, r0 - ldrh r0, [r2] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - adds r3, 0x3 - str r3, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81584D4 - - thumb_func_start sub_8158508 -sub_8158508: @ 8158508 - push {r4,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - lsls r1, 1 - adds r2, 0x1A - adds r1, r2, r1 - ldrb r0, [r3, 0x2] - lsls r0, 1 - adds r2, r0 - ldrh r0, [r2] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - adds r3, 0x3 - str r3, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8158508 - - thumb_func_start sub_815853C -sub_815853C: @ 815853C - push {r4,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r1, 0x1A - adds r1, r0 - movs r0, 0 - ldrsh r2, [r1, r0] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - cmp r2, r1 - bge _08158580 - ldrb r1, [r3, 0x4] - ldrb r0, [r3, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08158586 - .pool -_08158580: - adds r0, r3, 0 - adds r0, 0x8 - str r0, [r4] -_08158586: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_815853C - - thumb_func_start sub_815858C -sub_815858C: @ 815858C - push {r4,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r1, 0x1A - adds r1, r0 - movs r0, 0 - ldrsh r2, [r1, r0] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - cmp r2, r1 - ble _081585D0 - ldrb r1, [r3, 0x4] - ldrb r0, [r3, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _081585D6 - .pool -_081585D0: - adds r0, r3, 0 - adds r0, 0x8 - str r0, [r4] -_081585D6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_815858C - - thumb_func_start sub_81585DC -sub_81585DC: @ 81585DC - push {r4,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r1, 0x1A - adds r1, r0 - movs r0, 0 - ldrsh r2, [r1, r0] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - cmp r2, r1 - bne _08158620 - ldrb r1, [r3, 0x4] - ldrb r0, [r3, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08158626 - .pool -_08158620: - adds r0, r3, 0 - adds r0, 0x8 - str r0, [r4] -_08158626: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81585DC - - thumb_func_start sub_815862C -sub_815862C: @ 815862C - push {r4,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r1, 0x1A - adds r1, r0 - movs r0, 0 - ldrsh r2, [r1, r0] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - cmp r2, r1 - beq _08158670 - ldrb r1, [r3, 0x4] - ldrb r0, [r3, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08158676 - .pool -_08158670: - adds r0, r3, 0 - adds r0, 0x8 - str r0, [r4] -_08158676: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_815862C - - thumb_func_start sub_815867C -sub_815867C: @ 815867C - push {r4,r5,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - lsls r1, 1 - adds r2, 0x1A - adds r1, r2, r1 - ldrb r0, [r3, 0x2] - lsls r0, 1 - adds r2, r0 - movs r0, 0 - ldrsh r1, [r1, r0] - movs r5, 0 - ldrsh r0, [r2, r5] - cmp r1, r0 - bge _081586C4 - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _081586C8 - .pool -_081586C4: - adds r0, r3, 0x7 - str r0, [r4] -_081586C8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_815867C - - thumb_func_start sub_81586D0 -sub_81586D0: @ 81586D0 - push {r4,r5,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - lsls r1, 1 - adds r2, 0x1A - adds r1, r2, r1 - ldrb r0, [r3, 0x2] - lsls r0, 1 - adds r2, r0 - movs r0, 0 - ldrsh r1, [r1, r0] - movs r5, 0 - ldrsh r0, [r2, r5] - cmp r1, r0 - ble _08158718 - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0815871C - .pool -_08158718: - adds r0, r3, 0x7 - str r0, [r4] -_0815871C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81586D0 - - thumb_func_start sub_8158724 -sub_8158724: @ 8158724 - push {r4,r5,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - lsls r1, 1 - adds r2, 0x1A - adds r1, r2, r1 - ldrb r0, [r3, 0x2] - lsls r0, 1 - adds r2, r0 - movs r0, 0 - ldrsh r1, [r1, r0] - movs r5, 0 - ldrsh r0, [r2, r5] - cmp r1, r0 - bne _0815876C - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08158770 - .pool -_0815876C: - adds r0, r3, 0x7 - str r0, [r4] -_08158770: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8158724 - - thumb_func_start sub_8158778 -sub_8158778: @ 8158778 - push {r4,r5,lr} - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - lsls r1, 1 - adds r2, 0x1A - adds r1, r2, r1 - ldrb r0, [r3, 0x2] - lsls r0, 1 - adds r2, r0 - movs r0, 0 - ldrsh r1, [r1, r0] - movs r5, 0 - ldrsh r0, [r2, r5] - cmp r1, r0 - beq _081587C0 - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _081587C4 - .pool -_081587C0: - adds r0, r3, 0x7 - str r0, [r4] -_081587C4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8158778 - - thumb_func_start sub_81587CC -sub_81587CC: @ 81587CC - push {r4,r5,lr} - bl Random - movs r2, 0xFF - ands r2, r0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r1, 0x1A - adds r1, r0 - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r2, r0 - bge _08158810 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08158814 - .pool -_08158810: - adds r0, r3, 0x6 - str r0, [r4] -_08158814: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81587CC - - thumb_func_start sub_815881C -sub_815881C: @ 815881C - push {r4,r5,lr} - bl Random - movs r2, 0xFF - ands r2, r0 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r1, [r0, 0xC] - ldr r4, =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r1, 0x1A - adds r1, r0 - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r2, r0 - ble _08158860 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08158864 - .pool -_08158860: - adds r0, r3, 0x6 - str r0, [r4] -_08158864: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_815881C - - thumb_func_start sub_815886C -sub_815886C: @ 815886C - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - bx lr - .pool - thumb_func_end sub_815886C - - thumb_func_start dp15_call -dp15_call: @ 815888C - push {r4,lr} - ldr r4, =gAIScriptPtr - ldr r0, [r4] - adds r0, 0x5 - bl sub_81588E0 - ldr r2, [r4] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp15_call - - thumb_func_start sub_81588BC -sub_81588BC: @ 81588BC - push {lr} - bl sub_8158908 - lsls r0, 24 - cmp r0, 0 - bne _081588D6 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldrb r1, [r2, 0x9] - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] -_081588D6: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81588BC - - thumb_func_start sub_81588E0 -sub_81588E0: @ 81588E0 - push {r4,lr} - ldr r1, =gContestResources - ldr r1, [r1] - ldr r3, [r1, 0xC] - adds r4, r3, 0 - adds r4, 0x40 - ldrb r1, [r4] - adds r2, r1, 0x1 - strb r2, [r4] - lsls r1, 24 - lsrs r1, 22 - adds r3, 0x20 - adds r3, r1 - str r0, [r3] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81588E0 - - thumb_func_start sub_8158908 -sub_8158908: @ 8158908 - push {lr} - ldr r3, =gContestResources - ldr r0, [r3] - ldr r0, [r0, 0xC] - adds r1, r0, 0 - adds r1, 0x40 - ldrb r0, [r1] - cmp r0, 0 - bne _08158924 - movs r0, 0 - b _08158940 - .pool -_08158924: - subs r0, 0x1 - strb r0, [r1] - ldr r2, =gAIScriptPtr - ldr r0, [r3] - ldr r1, [r0, 0xC] - adds r0, r1, 0 - adds r0, 0x40 - ldrb r0, [r0] - lsls r0, 2 - adds r1, 0x20 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - movs r0, 0x1 -_08158940: - pop {r1} - bx r1 - .pool - thumb_func_end sub_8158908 - - thumb_func_start sub_8158948 -sub_8158948: @ 8158948 - push {r4-r6,lr} - movs r5, 0 - movs r4, 0 - ldr r6, =gContestMons + 30 -_08158950: - lsls r1, r4, 1 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r1, r6 - ldrh r0, [r1] - cmp r0, 0 - beq _08158980 - bl sub_80DD9F0 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _08158980 - movs r5, 0x1 - b _08158986 - .pool -_08158980: - adds r4, 0x1 - cmp r4, 0x3 - ble _08158950 -_08158986: - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - strh r5, [r0, 0x18] - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8158948 - - thumb_func_start sub_81589A4 -sub_81589A4: @ 81589A4 - push {lr} - bl sub_8158948 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _081589DC - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081589E4 - .pool -_081589DC: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_081589E4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81589A4 - - thumb_func_start sub_81589EC -sub_81589EC: @ 81589EC - push {lr} - bl sub_8158948 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08158A24 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08158A2C - .pool -_08158A24: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08158A2C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81589EC - - thumb_func_start sub_8158A34 -sub_8158A34: @ 8158A34 - push {r4-r6,lr} - movs r6, 0 - ldr r3, =gAIScriptPtr - ldr r0, [r3] - ldrb r5, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r5, r0 - movs r4, 0 - ldr r0, =gContestMons - mov r12, r0 - ldr r2, =gContestResources - ldr r0, [r2] - ldr r0, [r0, 0xC] - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - mov r1, r12 - adds r1, 0x1E - adds r0, r1 - ldrh r0, [r0] - b _08158A88 - .pool -_08158A6C: - adds r4, 0x1 - cmp r4, 0x3 - bgt _08158A8E - lsls r1, r4, 1 - ldr r0, [r2] - ldr r0, [r0, 0xC] - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - mov r0, r12 - adds r0, 0x1E - adds r1, r0 - ldrh r0, [r1] -_08158A88: - cmp r0, r5 - bne _08158A6C - movs r6, 0x1 -_08158A8E: - ldr r0, [r2] - ldr r0, [r0, 0xC] - strh r6, [r0, 0x18] - ldr r0, [r3] - adds r0, 0x3 - str r0, [r3] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8158A34 - - thumb_func_start sub_8158AA0 -sub_8158AA0: @ 8158AA0 - push {lr} - bl sub_8158A34 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08158AD8 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08158AE0 - .pool -_08158AD8: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08158AE0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8158AA0 - - thumb_func_start sub_8158AE8 -sub_8158AE8: @ 8158AE8 - push {lr} - bl sub_8158A34 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0xC] - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08158B20 - ldr r3, =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08158B28 - .pool -_08158B20: - ldr r1, =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08158B28: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8158AE8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/contest_effect.s b/asm/contest_effect.s index 65a720a65c..406de35d84 100644 --- a/asm/contest_effect.s +++ b/asm/contest_effect.s @@ -951,7 +951,7 @@ _080E5B00: bne _080E5B38 lsls r0, r5, 24 lsrs r0, 24 - bl sub_80DBCA8 + bl Contest_IsMonsTurnDisabled lsls r0, 24 cmp r0, 0 bne _080E5B38 diff --git a/include/contest.h b/include/contest.h index b7324e26b5..761b163694 100644 --- a/include/contest.h +++ b/include/contest.h @@ -406,7 +406,7 @@ extern struct ContestResources *gContestResources; #define sContest (*gContestResources->field_0) #define sContestantStatus (gContestResources->field_4) #define shared192D0 (*gContestResources->field_8) -#define eContestAI (*gContestResources->field_C) +#define eContestAI (gContestResources->field_C) #define shared19328 (*gContestResources->field_10) #define shared19338 (*gContestResources->field_14) @@ -417,5 +417,12 @@ extern u32 gContestRngValue; bool8 IsSpeciesNotUnown(u16 species); void LoadContestBgAfterMoveAnim(void); +void SetContestantEffectStringID(u8 a, u8 b); +void SetContestantEffectStringID2(u8 a, u8 b); +void MakeContestantNervous(u8 p); +bool8 Contest_IsMonsTurnDisabled(u8 a); +bool8 sub_80DE1E8(u8 a); +void SetStartledString(u8 a, u8 b); +s8 Contest_GetMoveExcitement(u16); #endif //GUARD_CONTEST_H diff --git a/include/contest_ai.h b/include/contest_ai.h new file mode 100644 index 0000000000..20b9eec10d --- /dev/null +++ b/include/contest_ai.h @@ -0,0 +1,16 @@ +#ifndef GUARD_CONTESTAI_H +#define GUARD_CONTESTAI_H + +// AI states +enum +{ + CONTESTAI_SETTING_UP, + CONTESTAI_PROCESSING, + CONTESTAI_FINISHED, + CONTESTAI_DO_NOT_PROCESS +}; + +void ContestAI_ResetAI(u8); +u8 ContestAI_GetActionToUse(void); + +#endif // GUARD_CONTESTAI_H diff --git a/include/contest_effect.h b/include/contest_effect.h index 3484ca5df8..4b3b151eb1 100644 --- a/include/contest_effect.h +++ b/include/contest_effect.h @@ -17,6 +17,8 @@ struct ContestEffect }; extern const struct ContestMove gContestMoves[]; -extern struct ContestEffect gContestEffects[]; +extern const struct ContestEffect gContestEffects[]; + +bool8 AreMovesContestCombo(u16 lastMove, u16 nextMove); #endif //GUARD_CONTEST_EFFECT_H diff --git a/src/contest.c b/src/contest.c index 8513fc4a9a..910637387b 100644 --- a/src/contest.c +++ b/src/contest.c @@ -107,7 +107,7 @@ u16 sub_80DE84C(u16); void sub_80DB89C(void); u16 sub_80DB8B8(u8); void sub_80DB918(void); -bool8 sub_80DBCA8(u8); +bool8 Contest_IsMonsTurnDisabled(u8); void sub_80DBF68(void); void sub_80DBF90(void); void sub_80DC2BC(void); @@ -721,7 +721,7 @@ void sub_80D833C(u8 taskId) sub_80DCD48(); DmaCopy32Defvars(3, gPlttBufferUnfaded, shared18000.unk18204, 0x400); ConvertIntToDecimalStringN(gStringVar1, gContestResources->field_0->turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); - if (!sub_80DBCA8(gContestPlayerMonIndex)) + if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) StringCopy(gDisplayedStringBattle, gText_0827D507); else StringCopy(gDisplayedStringBattle, gText_0827D531); @@ -745,7 +745,7 @@ void sub_80D8424(u8 taskId) if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys == B_BUTTON)) { PlaySE(SE_SELECT); - if (!sub_80DBCA8(gContestPlayerMonIndex)) + if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) { sub_80DC490(TRUE); gTasks[taskId].func = sub_80D8490; @@ -819,7 +819,7 @@ void sub_80D8610(u8 taskId) PlaySE(SE_SELECT); sub_80DC490(FALSE); ConvertIntToDecimalStringN(gStringVar1, gContestResources->field_0->turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); - if (!sub_80DBCA8(gContestPlayerMonIndex)) + if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) StringCopy(gDisplayedStringBattle, gText_0827D507); else StringCopy(gDisplayedStringBattle, gText_0827D531); @@ -2636,7 +2636,7 @@ void sub_80DB4E0(u16 move, u8 b) { u8 r7 = gUnknown_02039F26[b] * 5 + 2; - if (!sub_80DBCA8(b) && move != MOVE_NONE) + if (!Contest_IsMonsTurnDisabled(b) && move != MOVE_NONE) { u16 tile = sub_80DB2EC(move, b); diff --git a/src/contest_ai.c b/src/contest_ai.c new file mode 100644 index 0000000000..059c351e90 --- /dev/null +++ b/src/contest_ai.c @@ -0,0 +1,1758 @@ +#include "global.h" +#include "contest.h" +#include "random.h" +#include "contest_ai.h" +#include "contest_effect.h" + +extern u16 gSpecialVar_ContestCategory; +extern u16 gContestMonConditions[]; + +extern const u8 *gAIScriptPtr; +extern const u8 *gContestAIs[]; + +static void ContestAICmd_unk_00(void); +static void ContestAICmd_get_turn(void); +static void ContestAICmd_unk_02(void); +static void ContestAICmd_unk_03(void); +static void ContestAICmd_unk_04(void); +static void ContestAICmd_unk_05(void); +static void ContestAICmd_get_excitement(void); +static void ContestAICmd_unk_07(void); +static void ContestAICmd_unk_08(void); +static void ContestAICmd_unk_09(void); +static void ContestAICmd_unk_0A(void); +static void ContestAICmd_get_user_order(void); +static void ContestAICmd_unk_0C(void); +static void ContestAICmd_unk_0D(void); +static void ContestAICmd_unk_0E(void); +static void ContestAICmd_unk_0F(void); +static void ContestAICmd_get_user_condition_maybe(void); +static void ContestAICmd_unk_11(void); +static void ContestAICmd_unk_12(void); +static void ContestAICmd_unk_13(void); +static void ContestAICmd_unk_14(void); +static void ContestAICmd_unk_15(void); +static void ContestAICmd_unk_16(void); +static void ContestAICmd_unk_17(void); +static void ContestAICmd_unk_18(void); +static void ContestAICmd_unk_19(void); +static void ContestAICmd_unk_1A(void); +static void ContestAICmd_unk_1B(void); +static void ContestAICmd_unk_1C(void); +static void ContestAICmd_unk_1D(void); +static void ContestAICmd_unk_1E(void); +static void ContestAICmd_get_contest_type(void); +static void ContestAICmd_unk_20(void); +static void ContestAICmd_unk_21(void); +static void ContestAICmd_get_move_excitement(void); +static void ContestAICmd_unk_23(void); +static void ContestAICmd_unk_24(void); +static void ContestAICmd_unk_25(void); +static void ContestAICmd_unk_26(void); +static void ContestAICmd_get_move_effect(void); +static void ContestAICmd_unk_28(void); +static void ContestAICmd_unk_29(void); +static void ContestAICmd_get_move_effect_type(void); +static void ContestAICmd_unk_2B(void); +static void ContestAICmd_unk_2C(void); +static void ContestAICmd_check_move_has_highest_appeal(void); +static void ContestAICmd_unk_2E(void); +static void ContestAICmd_unk_2F(void); +static void ContestAICmd_unk_30(void); +static void ContestAICmd_unk_31(void); +static void ContestAICmd_unk_32(void); +static void ContestAICmd_unk_33(void); +static void ContestAICmd_unk_34(void); +static void ContestAICmd_unk_35(void); +static void ContestAICmd_unk_36(void); +static void ContestAICmd_unk_37(void); +static void ContestAICmd_unk_38(void); +static void ContestAICmd_unk_39(void); +static void ContestAICmd_unk_3A(void); +static void ContestAICmd_get_move_used_count(void); +static void ContestAICmd_unk_3C(void); +static void ContestAICmd_unk_3D(void); +static void ContestAICmd_unk_3E(void); +static void ContestAICmd_unk_3F(void); +static void ContestAICmd_check_combo_starter(void); +static void ContestAICmd_unk_41(void); +static void ContestAICmd_unk_42(void); +static void ContestAICmd_check_combo_finisher(void); +static void ContestAICmd_unk_44(void); +static void ContestAICmd_unk_45(void); +static void ContestAICmd_check_would_finish_combo(void); +static void ContestAICmd_unk_47(void); +static void ContestAICmd_unk_48(void); +static void ContestAICmd_get_condition(void); +static void ContestAICmd_unk_4A(void); +static void ContestAICmd_unk_4B(void); +static void ContestAICmd_unk_4C(void); +static void ContestAICmd_unk_4D(void); +static void ContestAICmd_get_used_combo_starter(void); +static void ContestAICmd_unk_4F(void); +static void ContestAICmd_unk_50(void); +static void ContestAICmd_unk_51(void); +static void ContestAICmd_unk_52(void); +static void ContestAICmd_check_can_participate(void); +static void ContestAICmd_unk_54(void); +static void ContestAICmd_unk_55(void); +static void ContestAICmd_get_val_812A188(void); +static void ContestAICmd_unk_57(void); +static void ContestAICmd_unk_58(void); +static void ContestAICmd_unk_59(void); +static void ContestAICmd_unk_5A(void); +static void ContestAICmd_unk_5B(void); +static void ContestAICmd_unk_5C(void); +static void ContestAICmd_unk_5D(void); +static void ContestAICmd_unk_5E(void); +static void ContestAICmd_unk_5F(void); +static void ContestAICmd_unk_60(void); +static void ContestAICmd_unk_61(void); +static void ContestAICmd_unk_62(void); +static void ContestAICmd_unk_63(void); +static void ContestAICmd_unk_64(void); +static void ContestAICmd_unk_65(void); +static void ContestAICmd_unk_66(void); +static void ContestAICmd_unk_67(void); +static void ContestAICmd_unk_68(void); +static void ContestAICmd_unk_69(void); +static void ContestAICmd_unk_6A(void); +static void ContestAICmd_unk_6B(void); +static void ContestAICmd_unk_6C(void); +static void ContestAICmd_unk_6D(void); +static void ContestAICmd_unk_6E(void); +static void ContestAICmd_unk_6F(void); +static void ContestAICmd_unk_70(void); +static void ContestAICmd_unk_71(void); +static void ContestAICmd_unk_72(void); +static void ContestAICmd_unk_73(void); +static void ContestAICmd_unk_74(void); +static void ContestAICmd_unk_75(void); +static void ContestAICmd_unk_76(void); +static void ContestAICmd_unk_77(void); +static void ContestAICmd_unk_78(void); +static void ContestAICmd_unk_79(void); +static void ContestAICmd_unk_7A(void); +static void ContestAICmd_unk_7B(void); +static void ContestAICmd_unk_7C(void); +static void ContestAICmd_unk_7D(void); +static void ContestAICmd_unk_7E(void); +static void ContestAICmd_unk_7F(void); +static void ContestAICmd_unk_80(void); +static void ContestAICmd_unk_81(void); +static void ContestAICmd_check_for_exciting_move(void); +static void ContestAICmd_unk_83(void); +static void ContestAICmd_unk_84(void); +static void ContestAICmd_unk_85(void); +static void ContestAICmd_unk_86(void); +static void ContestAICmd_unk_87(void); + +typedef void (* ContestAICmdFunc)(void); + +static const ContestAICmdFunc sContestAICmdTable[] = +{ + ContestAICmd_unk_00, // 0x00 + ContestAICmd_get_turn, // 0x01 + ContestAICmd_unk_02, // 0x02 + ContestAICmd_unk_03, // 0x03 + ContestAICmd_unk_04, // 0x04 + ContestAICmd_unk_05, // 0x05 + ContestAICmd_get_excitement, // 0x06 + ContestAICmd_unk_07, // 0x07 + ContestAICmd_unk_08, // 0x08 + ContestAICmd_unk_09, // 0x09 + ContestAICmd_unk_0A, // 0x0A + ContestAICmd_get_user_order, // 0x0B + ContestAICmd_unk_0C, // 0x0C + ContestAICmd_unk_0D, // 0x0D + ContestAICmd_unk_0E, // 0x0E + ContestAICmd_unk_0F, // 0x0F + ContestAICmd_get_user_condition_maybe, // 0x10 + ContestAICmd_unk_11, // 0x11 + ContestAICmd_unk_12, // 0x12 + ContestAICmd_unk_13, // 0x13 + ContestAICmd_unk_14, // 0x14 + ContestAICmd_unk_15, // 0x15 + ContestAICmd_unk_16, // 0x16 + ContestAICmd_unk_17, // 0x17 + ContestAICmd_unk_18, // 0x18 + ContestAICmd_unk_19, // 0x19 + ContestAICmd_unk_1A, // 0x1A + ContestAICmd_unk_1B, // 0x1B + ContestAICmd_unk_1C, // 0x1C + ContestAICmd_unk_1D, // 0x1D + ContestAICmd_unk_1E, // 0x1E + ContestAICmd_get_contest_type, // 0x1F + ContestAICmd_unk_20, // 0x20 + ContestAICmd_unk_21, // 0x21 + ContestAICmd_get_move_excitement, // 0x22 + ContestAICmd_unk_23, // 0x23 + ContestAICmd_unk_24, // 0x24 + ContestAICmd_unk_25, // 0x25 + ContestAICmd_unk_26, // 0x26 + ContestAICmd_get_move_effect, // 0x27 + ContestAICmd_unk_28, // 0x28 + ContestAICmd_unk_29, // 0x29 + ContestAICmd_get_move_effect_type, // 0x2A + ContestAICmd_unk_2B, // 0x2B + ContestAICmd_unk_2C, // 0x2C + ContestAICmd_check_move_has_highest_appeal, // 0x2D + ContestAICmd_unk_2E, // 0x2E + ContestAICmd_unk_2F, // 0x2F + ContestAICmd_unk_30, // 0x30 + ContestAICmd_unk_31, // 0x31 + ContestAICmd_unk_32, // 0x32 + ContestAICmd_unk_33, // 0x33 + ContestAICmd_unk_34, // 0x34 + ContestAICmd_unk_35, // 0x35 + ContestAICmd_unk_36, // 0x36 + ContestAICmd_unk_37, // 0x37 + ContestAICmd_unk_38, // 0x38 + ContestAICmd_unk_39, // 0x39 + ContestAICmd_unk_3A, // 0x3A + ContestAICmd_get_move_used_count, // 0x3B + ContestAICmd_unk_3C, // 0x3C + ContestAICmd_unk_3D, // 0x3D + ContestAICmd_unk_3E, // 0x3E + ContestAICmd_unk_3F, // 0x3F + ContestAICmd_check_combo_starter, // 0x40 + ContestAICmd_unk_41, // 0x41 + ContestAICmd_unk_42, // 0x42 + ContestAICmd_check_combo_finisher, // 0x43 + ContestAICmd_unk_44, // 0x44 + ContestAICmd_unk_45, // 0x45 + ContestAICmd_check_would_finish_combo, // 0x46 + ContestAICmd_unk_47, // 0x47 + ContestAICmd_unk_48, // 0x48 + ContestAICmd_get_condition, // 0x49 + ContestAICmd_unk_4A, // 0x4A + ContestAICmd_unk_4B, // 0x4B + ContestAICmd_unk_4C, // 0x4C + ContestAICmd_unk_4D, // 0x4D + ContestAICmd_get_used_combo_starter, // 0x4E + ContestAICmd_unk_4F, // 0x4F + ContestAICmd_unk_50, // 0x50 + ContestAICmd_unk_51, // 0x51 + ContestAICmd_unk_52, // 0x52 + ContestAICmd_check_can_participate, // 0x53 + ContestAICmd_unk_54, // 0x54 + ContestAICmd_unk_55, // 0x55 + ContestAICmd_get_val_812A188, // 0x56 + ContestAICmd_unk_57, // 0x57 + ContestAICmd_unk_58, // 0x58 + ContestAICmd_unk_59, // 0x59 + ContestAICmd_unk_5A, // 0x5A + ContestAICmd_unk_5B, // 0x5B + ContestAICmd_unk_5C, // 0x5C + ContestAICmd_unk_5D, // 0x5D + ContestAICmd_unk_5E, // 0x5E + ContestAICmd_unk_5F, // 0x5F + ContestAICmd_unk_60, // 0x60 + ContestAICmd_unk_61, // 0x61 + ContestAICmd_unk_62, // 0x62 + ContestAICmd_unk_63, // 0x63 + ContestAICmd_unk_64, // 0x64 + ContestAICmd_unk_65, // 0x65 + ContestAICmd_unk_66, // 0x66 + ContestAICmd_unk_67, // 0x67 + ContestAICmd_unk_68, // 0x68 + ContestAICmd_unk_69, // 0x69 + ContestAICmd_unk_6A, // 0x6A + ContestAICmd_unk_6B, // 0x6B + ContestAICmd_unk_6C, // 0x6C + ContestAICmd_unk_6D, // 0x6D + ContestAICmd_unk_6E, // 0x6E + ContestAICmd_unk_6F, // 0x6F + ContestAICmd_unk_70, // 0x70 + ContestAICmd_unk_71, // 0x71 + ContestAICmd_unk_72, // 0x72 + ContestAICmd_unk_73, // 0x73 + ContestAICmd_unk_74, // 0x74 + ContestAICmd_unk_75, // 0x75 + ContestAICmd_unk_76, // 0x76 + ContestAICmd_unk_77, // 0x77 + ContestAICmd_unk_78, // 0x78 + ContestAICmd_unk_79, // 0x79 + ContestAICmd_unk_7A, // 0x7A + ContestAICmd_unk_7B, // 0x7B + ContestAICmd_unk_7C, // 0x7C + ContestAICmd_unk_7D, // 0x7D + ContestAICmd_unk_7E, // 0x7E + ContestAICmd_unk_7F, // 0x7F + ContestAICmd_unk_80, // 0x80 + ContestAICmd_unk_81, // 0x81 + ContestAICmd_check_for_exciting_move, // 0x82 + ContestAICmd_unk_83, // 0x83 + ContestAICmd_unk_84, // 0x84 + ContestAICmd_unk_85, // 0x85 + ContestAICmd_unk_86, // 0x86 + ContestAICmd_unk_87, // 0x87 +}; + +static void ContestAI_DoAIProcessing(void); +static bool8 sub_81563B0(u8); +static void AIStackPushVar(const u8 *); +static u8 AIStackPop(void); + +void ContestAI_ResetAI(u8 var) +{ + int i; + memset(eContestAI, 0, sizeof(struct ContestAIInfo)); + + for(i = 0; i < 4; i++) + eContestAI->unk5[i] = 100; + + eContestAI->unk41 = var; + eContestAI->unk40 = 0; + eContestAI->flags = gContestMons[eContestAI->unk41].flags; +} + +u8 ContestAI_GetActionToUse(void) +{ + while(eContestAI->flags != 0) + { + if (eContestAI->flags & 1) + { + eContestAI->aiState = 0; + ContestAI_DoAIProcessing(); + } + eContestAI->flags >>= 1; + eContestAI->unk10++; + eContestAI->unk4 = 0; + } + + while (1) + { + u8 rval = Random() & 3; + u8 r2 = eContestAI->unk5[rval]; + int i; + for (i = 0; i < 4; i++) + { + if (r2 < eContestAI->unk5[i]) + break; + } + if (i == 4) + return rval; + } +} + +static void ContestAI_DoAIProcessing(void) +{ + while(eContestAI->aiState != CONTESTAI_FINISHED) + { + switch(eContestAI->aiState) + { + case CONTESTAI_DO_NOT_PROCESS: + break; + case CONTESTAI_SETTING_UP: + gAIScriptPtr = gContestAIs[eContestAI->unk10]; + + if (gContestMons[eContestAI->unk41].moves[eContestAI->unk4] == 0) + eContestAI->unk2 = 0; // don't process a move that doesn't exist. + else + eContestAI->unk2 = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + eContestAI->aiState++; + break; + case CONTESTAI_PROCESSING: + if (eContestAI->unk2 != 0) + sContestAICmdTable[*gAIScriptPtr](); // run the command. + else + { + eContestAI->unk5[eContestAI->unk4] = 0; // don't consider a move that doesn't exist. + eContestAI->aiAction |= 1; + } + if (eContestAI->aiAction & 1) + { + eContestAI->unk4++; + if (eContestAI->unk4 < 4) + eContestAI->aiState = 0; + else + eContestAI->aiState++; + eContestAI->aiAction &= 0xFE; // TODO: Define action flags + } + break; + } + } +} + +static u8 sub_81563B0(u8 var) +{ + int i; + + for(i = 0; i < 4; i++) + if (shared192D0.turnOrder[i] == var) + break; + + return i; +} + +static void ContestAICmd_unk_00(void) +{ + s16 score = eContestAI->unk5[eContestAI->unk4] + (s8)gAIScriptPtr[1]; + + if (score > 255) + score = 255; + else if (score < 0) + score = 0; + + eContestAI->unk5[eContestAI->unk4] = score; + + gAIScriptPtr += 2; +} + +static void ContestAICmd_get_turn(void) +{ + eContestAI->scriptResult = sContest.turnNumber; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_02(void) +{ + ContestAICmd_get_turn(); + + if (eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_03(void) +{ + ContestAICmd_get_turn(); + + if (eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_04(void) +{ + ContestAICmd_get_turn(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_05(void) +{ + ContestAICmd_get_turn(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_get_excitement(void) +{ + eContestAI->scriptResult = sContest.applauseLevel; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_07(void) +{ + ContestAICmd_get_excitement(); + + if (eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_08(void) +{ + ContestAICmd_get_excitement(); + + if (eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_09(void) +{ + ContestAICmd_get_excitement(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_0A(void) +{ + ContestAICmd_get_excitement(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_get_user_order(void) +{ + eContestAI->scriptResult = shared192D0.turnOrder[eContestAI->unk41]; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_0C(void) +{ + ContestAICmd_get_user_order(); + + if (eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_0D(void) +{ + ContestAICmd_get_user_order(); + + if (eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_0E(void) +{ + ContestAICmd_get_user_order(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_0F(void) +{ + ContestAICmd_get_user_order(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_get_user_condition_maybe(void) +{ + eContestAI->scriptResult = sContestantStatus[eContestAI->unk41].condition / 10; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_11(void) +{ + ContestAICmd_get_user_condition_maybe(); + + if (eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_12(void) +{ + ContestAICmd_get_user_condition_maybe(); + + if (eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_13(void) +{ + ContestAICmd_get_user_condition_maybe(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_14(void) +{ + ContestAICmd_get_user_condition_maybe(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_15(void) +{ + eContestAI->scriptResult = sContestantStatus[eContestAI->unk41].unk4; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_16(void) +{ + ContestAICmd_unk_15(); + + if (eContestAI->scriptResult < (s16)T1_READ_16(gAIScriptPtr + 0)) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +static void ContestAICmd_unk_17(void) +{ + ContestAICmd_unk_15(); + + if (eContestAI->scriptResult > (s16)T1_READ_16(gAIScriptPtr + 0)) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +static void ContestAICmd_unk_18(void) +{ + ContestAICmd_unk_15(); + + if (eContestAI->scriptResult == (s16)T1_READ_16(gAIScriptPtr + 0)) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +static void ContestAICmd_unk_19(void) +{ + ContestAICmd_unk_15(); + + if (eContestAI->scriptResult != (s16)T1_READ_16(gAIScriptPtr + 0)) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +static void ContestAICmd_unk_1A(void) +{ + eContestAI->scriptResult = gContestMonConditions[eContestAI->unk41]; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_1B(void) +{ + ContestAICmd_unk_1A(); + + if (eContestAI->scriptResult < (s16)T1_READ_16(gAIScriptPtr + 0)) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +static void ContestAICmd_unk_1C(void) +{ + ContestAICmd_unk_1A(); + + if (eContestAI->scriptResult > (s16)T1_READ_16(gAIScriptPtr + 0)) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +static void ContestAICmd_unk_1D(void) +{ + ContestAICmd_unk_1A(); + + if (eContestAI->scriptResult == (s16)T1_READ_16(gAIScriptPtr + 0)) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +static void ContestAICmd_unk_1E(void) +{ + ContestAICmd_unk_1A(); + + if (eContestAI->scriptResult != (s16)T1_READ_16(gAIScriptPtr + 0)) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +static void ContestAICmd_get_contest_type(void) +{ + eContestAI->scriptResult = gSpecialVar_ContestCategory; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_20(void) +{ + ContestAICmd_get_contest_type(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_21(void) +{ + ContestAICmd_get_contest_type(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_get_move_excitement(void) +{ + eContestAI->scriptResult = Contest_GetMoveExcitement(gContestMons[eContestAI->unk41].moves[eContestAI->unk4]); + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_23(void) +{ + ContestAICmd_get_move_excitement(); + + if (eContestAI->scriptResult < (s8)gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_24(void) +{ + ContestAICmd_get_move_excitement(); + + if (eContestAI->scriptResult > (s8)gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_25(void) +{ + ContestAICmd_get_move_excitement(); + + if (eContestAI->scriptResult == (s8)gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_26(void) +{ + ContestAICmd_get_move_excitement(); + + if (eContestAI->scriptResult != (s8)gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_get_move_effect(void) +{ + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + + eContestAI->scriptResult = gContestMoves[move].effect; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_28(void) +{ + ContestAICmd_get_move_effect(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_29(void) +{ + ContestAICmd_get_move_effect(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_get_move_effect_type(void) +{ + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + + eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].effectType; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_2B(void) +{ + ContestAICmd_get_move_effect_type(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_2C(void) +{ + ContestAICmd_get_move_effect_type(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_check_move_has_highest_appeal(void) +{ + int i; + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u8 appeal = gContestEffects[gContestMoves[move].effect].appeal; + + for(i = 0; i < 4; i++) + { + u16 newMove = gContestMons[eContestAI->unk41].moves[i]; + if (newMove != 0 && appeal < gContestEffects[gContestMoves[newMove].effect].appeal) + break; + } + + if (i == 4) + eContestAI->scriptResult = TRUE; + else + eContestAI->scriptResult = FALSE; + + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_2E(void) +{ + ContestAICmd_check_move_has_highest_appeal(); + + if (eContestAI->scriptResult != FALSE) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_2F(void) +{ + int i; + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u8 jam = gContestEffects[gContestMoves[move].effect].jam; + + for(i = 0; i < 4; i++) + { + u16 newMove = gContestMons[eContestAI->unk41].moves[i]; + if (newMove != 0 && jam < gContestEffects[gContestMoves[newMove].effect].jam) + break; + } + + if (i == 4) + eContestAI->scriptResult = TRUE; + else + eContestAI->scriptResult = FALSE; + + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_30(void) +{ + ContestAICmd_unk_2F(); + + if (eContestAI->scriptResult != FALSE) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_31(void) +{ + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + + eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].appeal / 10; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_32(void) +{ + ContestAICmd_unk_31(); + + if (eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_33(void) +{ + ContestAICmd_unk_31(); + + if (eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_34(void) +{ + ContestAICmd_unk_31(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_35(void) +{ + ContestAICmd_unk_31(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_36(void) +{ + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + + eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].jam / 10; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_37(void) +{ + ContestAICmd_unk_36(); + + if (eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_38(void) +{ + ContestAICmd_unk_36(); + + if (eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_39(void) +{ + ContestAICmd_unk_36(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_3A(void) +{ + ContestAICmd_unk_36(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_get_move_used_count(void) +{ + s16 result; + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + + if (move != sContestantStatus[eContestAI->unk41].prevMove) + result = 0; // move is unique and not reused. + else + result = sContestantStatus[eContestAI->unk41].moveRepeatCount + 1; + + eContestAI->scriptResult = result; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_3C(void) +{ + ContestAICmd_get_move_used_count(); + + if (eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_3D(void) +{ + ContestAICmd_get_move_used_count(); + + if (eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_3E(void) +{ + ContestAICmd_get_move_used_count(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_3F(void) +{ + ContestAICmd_get_move_used_count(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_check_combo_starter(void) +{ + u8 result = 0; + int i; + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + + for(i = 0; i < 4; i++) + { + if (gContestMons[eContestAI->unk41].moves[i]) + { + result = AreMovesContestCombo(move, gContestMons[eContestAI->unk41].moves[i]); + if (result) + { + result = 1; + break; + } + } + } + + if (result) + result = 1; + + eContestAI->scriptResult = result; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_41(void) +{ + ContestAICmd_check_combo_starter(); + + if (eContestAI->scriptResult != 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_42(void) +{ + ContestAICmd_check_combo_starter(); + + if (eContestAI->scriptResult == 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_check_combo_finisher(void) +{ + u8 result = 0; + int i; + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + + for(i = 0; i < 4; i++) + { + if (gContestMons[eContestAI->unk41].moves[i]) + { + result = AreMovesContestCombo(gContestMons[eContestAI->unk41].moves[i], move); + if (result) + { + result = 1; + break; + } + } + } + + if (result) + result = 1; + + eContestAI->scriptResult = result; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_44(void) +{ + ContestAICmd_check_combo_finisher(); + + if (eContestAI->scriptResult != 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_45(void) +{ + ContestAICmd_check_combo_finisher(); + + if (eContestAI->scriptResult == 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_check_would_finish_combo(void) +{ + u8 result = 0; + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + + if (sContestantStatus[eContestAI->unk41].prevMove) + result = AreMovesContestCombo(sContestantStatus[eContestAI->unk41].prevMove, move); + + if (result) + result = 1; + + eContestAI->scriptResult = result; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_47(void) +{ + ContestAICmd_check_would_finish_combo(); + + if (eContestAI->scriptResult != 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_48(void) +{ + ContestAICmd_check_would_finish_combo(); + + if (eContestAI->scriptResult == 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_get_condition(void) +{ + int var = sub_81563B0(gAIScriptPtr[1]); + + eContestAI->scriptResult = sContestantStatus[var].condition / 10; + gAIScriptPtr += 2; +} + +static void ContestAICmd_unk_4A(void) +{ + ContestAICmd_get_condition(); + + if (eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_4B(void) +{ + ContestAICmd_get_condition(); + + if (eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_4C(void) +{ + ContestAICmd_get_condition(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_4D(void) +{ + ContestAICmd_get_condition(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_get_used_combo_starter(void) +{ + u16 result = 0; + u8 var = sub_81563B0(gAIScriptPtr[1]); + + if (sub_80DE1E8(var)) + result = gContestMoves[sContestantStatus[var].prevMove].comboStarterId ? 1 : 0; + + eContestAI->scriptResult = result; + gAIScriptPtr += 2; +} + +static void ContestAICmd_unk_4F(void) +{ + ContestAICmd_get_used_combo_starter(); + + if (eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_50(void) +{ + ContestAICmd_get_used_combo_starter(); + + if (eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_51(void) +{ + ContestAICmd_get_used_combo_starter(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_52(void) +{ + ContestAICmd_get_used_combo_starter(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_check_can_participate(void) +{ + if (Contest_IsMonsTurnDisabled(sub_81563B0(gAIScriptPtr[1]))) + eContestAI->scriptResult = FALSE; + else + eContestAI->scriptResult = TRUE; + + gAIScriptPtr += 2; +} + +static void ContestAICmd_unk_54(void) +{ + ContestAICmd_check_can_participate(); + + if (eContestAI->scriptResult != 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_55(void) +{ + ContestAICmd_check_can_participate(); + + if (eContestAI->scriptResult == 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_get_val_812A188(void) +{ + u8 var = sub_81563B0(gAIScriptPtr[1]); + + eContestAI->scriptResult = sContestantStatus[var].unk15_3; + gAIScriptPtr += 2; +} + +static void ContestAICmd_unk_57(void) +{ + ContestAICmd_get_val_812A188(); + + if (eContestAI->scriptResult != 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_58(void) +{ + ContestAICmd_get_val_812A188(); + + if (eContestAI->scriptResult == 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_59(void) +{ + u8 var = sub_81563B0(gAIScriptPtr[1]); + + eContestAI->scriptResult = sContestantStatus[var].unk4 - sContestantStatus[eContestAI->unk41].unk4; + gAIScriptPtr += 2; +} + +static void ContestAICmd_unk_5A(void) +{ + ContestAICmd_unk_59(); + + if (eContestAI->scriptResult < 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_5B(void) +{ + ContestAICmd_unk_59(); + + if (eContestAI->scriptResult > 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_5C(void) +{ + ContestAICmd_unk_59(); + + if (eContestAI->scriptResult == 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_5D(void) +{ + ContestAICmd_unk_59(); + + if (eContestAI->scriptResult != 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_5E(void) +{ + u8 var = sub_81563B0(gAIScriptPtr[1]); + + eContestAI->scriptResult = gContestMonConditions[var] - gContestMonConditions[eContestAI->unk41]; + gAIScriptPtr += 2; +} + +static void ContestAICmd_unk_5F(void) +{ + ContestAICmd_unk_5E(); + + if (eContestAI->scriptResult < 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_60(void) +{ + ContestAICmd_unk_5E(); + + if (eContestAI->scriptResult > 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_61(void) +{ + ContestAICmd_unk_5E(); + + if (eContestAI->scriptResult == 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_62(void) +{ + ContestAICmd_unk_5E(); + + if (eContestAI->scriptResult != 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_63(void) +{ + u8 var = sub_81563B0(gAIScriptPtr[1]); + u8 var2 = gAIScriptPtr[2]; + u16 move = sContest.unk19220[var2][var]; + + eContestAI->scriptResult = gContestMoves[move].effect; + gAIScriptPtr += 3; +} + +static void ContestAICmd_unk_64(void) +{ + ContestAICmd_unk_63(); + + if (eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_65(void) +{ + ContestAICmd_unk_63(); + + if (eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_66(void) +{ + ContestAICmd_unk_63(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_67(void) +{ + ContestAICmd_unk_63(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_68(void) +{ + u8 var = sub_81563B0(gAIScriptPtr[1]); + u8 var2 = gAIScriptPtr[2]; + s8 result = sContest.unk19248[var2][var]; + + eContestAI->scriptResult = result; + gAIScriptPtr += 3; +} + +static void ContestAICmd_unk_69(void) +{ + ContestAICmd_unk_68(); + + if (eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_6A(void) +{ + ContestAICmd_unk_68(); + + if (eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_6B(void) +{ + ContestAICmd_unk_68(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_6C(void) +{ + ContestAICmd_unk_68(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_6D(void) +{ + u8 var = sub_81563B0(gAIScriptPtr[1]); + u8 var2 = gAIScriptPtr[2]; + u16 move = sContest.unk19220[var2][var]; + + eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].effectType; + gAIScriptPtr += 3; +} + +static void ContestAICmd_unk_6E(void) +{ + ContestAICmd_unk_6D(); + + if (eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_6F(void) +{ + ContestAICmd_unk_6D(); + + if (eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +static void ContestAICmd_unk_70(void) +{ + eContestAI->scriptArr[gAIScriptPtr[1]] = eContestAI->scriptResult; + gAIScriptPtr += 2; +} + +static void ContestAICmd_unk_71(void) +{ + eContestAI->scriptArr[gAIScriptPtr[1]] = T1_READ_16(gAIScriptPtr + 2); + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_72(void) +{ + // wtf? shouldn't T1_READ_16 work here? why the signed 8 load by gAIScriptPtr[2]? + eContestAI->scriptArr[gAIScriptPtr[1]] += ((s8)gAIScriptPtr[2] | gAIScriptPtr[3] << 8); + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_73(void) +{ + eContestAI->scriptArr[gAIScriptPtr[1]] += eContestAI->scriptArr[gAIScriptPtr[2]]; + gAIScriptPtr += 3; +} + +static void ContestAICmd_unk_74(void) +{ + eContestAI->scriptArr[gAIScriptPtr[1]] += eContestAI->scriptArr[gAIScriptPtr[2]]; + gAIScriptPtr += 3; +} + +static void ContestAICmd_unk_75(void) +{ + if (eContestAI->scriptArr[gAIScriptPtr[1]] < T1_READ_16(gAIScriptPtr + 2)) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); + else + gAIScriptPtr += 8; +} + +static void ContestAICmd_unk_76(void) +{ + if (eContestAI->scriptArr[gAIScriptPtr[1]] > T1_READ_16(gAIScriptPtr + 2)) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); + else + gAIScriptPtr += 8; +} + +static void ContestAICmd_unk_77(void) +{ + if (eContestAI->scriptArr[gAIScriptPtr[1]] == T1_READ_16(gAIScriptPtr + 2)) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); + else + gAIScriptPtr += 8; +} + +static void ContestAICmd_unk_78(void) +{ + if (eContestAI->scriptArr[gAIScriptPtr[1]] != T1_READ_16(gAIScriptPtr + 2)) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); + else + gAIScriptPtr += 8; +} + +static void ContestAICmd_unk_79(void) +{ + if (eContestAI->scriptArr[gAIScriptPtr[1]] < (eContestAI->scriptArr[gAIScriptPtr[2]])) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + else + gAIScriptPtr += 7; +} + +static void ContestAICmd_unk_7A(void) +{ + if (eContestAI->scriptArr[gAIScriptPtr[1]] > (eContestAI->scriptArr[gAIScriptPtr[2]])) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + else + gAIScriptPtr += 7; +} + +static void ContestAICmd_unk_7B(void) +{ + if (eContestAI->scriptArr[gAIScriptPtr[1]] == (eContestAI->scriptArr[gAIScriptPtr[2]])) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + else + gAIScriptPtr += 7; +} + +static void ContestAICmd_unk_7C(void) +{ + if (eContestAI->scriptArr[gAIScriptPtr[1]] != (eContestAI->scriptArr[gAIScriptPtr[2]])) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + else + gAIScriptPtr += 7; +} + +static void ContestAICmd_unk_7D(void) +{ + if ((Random() & 0xFF) < eContestAI->scriptArr[gAIScriptPtr[1]]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +static void ContestAICmd_unk_7E(void) +{ + if ((Random() & 0xFF) > eContestAI->scriptArr[gAIScriptPtr[1]]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +// jump +static void ContestAICmd_unk_7F(void) +{ + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); +} + +static void ContestAICmd_unk_80(void) +{ + AIStackPushVar(gAIScriptPtr + 5); + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); +} + +static void ContestAICmd_unk_81(void) +{ + if (!AIStackPop()) + eContestAI->aiAction |= 1; +} + +static void AIStackPushVar(const u8 *ptr) +{ + eContestAI->stack[eContestAI->unk40++] = (u32)ptr; +} + +static bool8 AIStackPop(void) +{ + if (eContestAI->unk40 != 0) + { + --eContestAI->unk40; + gAIScriptPtr = (u8 *)eContestAI->stack[eContestAI->unk40]; + return TRUE; + } + else + { + return FALSE; + } +} + +static void ContestAICmd_check_for_exciting_move(void) +{ + int result = 0; + int i; + + for(i = 0; i < 4; i++) + { + if (gContestMons[eContestAI->unk41].moves[i]) + { + // why is it using gSharedMem + 0x19325? that does not exist... + if (Contest_GetMoveExcitement(gContestMons[eContestAI->unk41].moves[i]) == 1) + { + result = 1; + break; + } + } + } + + eContestAI->scriptResult = result; + gAIScriptPtr += 1; +} + +static void ContestAICmd_unk_83(void) +{ + ContestAICmd_check_for_exciting_move(); + + if (eContestAI->scriptResult != 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_84(void) +{ + ContestAICmd_check_for_exciting_move(); + + if (eContestAI->scriptResult == 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_85(void) +{ + int result = 0; + int i; + u16 arg = T1_READ_16(gAIScriptPtr + 1); + + for(i = 0; i < 4; i++) + { + u16 move = gContestMons[eContestAI->unk41].moves[i]; + if (move == arg) + { + result = 1; + break; + } + } + + eContestAI->scriptResult = result; + gAIScriptPtr += 3; +} + +static void ContestAICmd_unk_86(void) +{ + ContestAICmd_unk_85(); + + if (eContestAI->scriptResult != 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +static void ContestAICmd_unk_87(void) +{ + ContestAICmd_unk_85(); + + if (eContestAI->scriptResult == 0) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} From 92c4fc6345faf9e5c8af4035103eea26164b68bd Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 11:50:18 +0200 Subject: [PATCH 106/174] Contest AI clean-up --- asm/contest_ai.s | 0 data/contest_ai.s | 144 ---------------------------------------------- include/contest.h | 9 +-- ld_script.txt | 4 +- src/contest_ai.c | 102 ++++++++++++++++---------------- 5 files changed, 57 insertions(+), 202 deletions(-) delete mode 100644 asm/contest_ai.s delete mode 100644 data/contest_ai.s diff --git a/asm/contest_ai.s b/asm/contest_ai.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/data/contest_ai.s b/data/contest_ai.s deleted file mode 100644 index c7cb848a73..0000000000 --- a/data/contest_ai.s +++ /dev/null @@ -1,144 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_085CDD00:: @ 85CDD00 - .4byte sub_81564DC - .4byte sub_8156530 - .4byte sub_8156550 - .4byte sub_8156594 - .4byte sub_81565D8 - .4byte sub_815661C - .4byte sub_8156660 - .4byte sub_8156684 - .4byte sub_81566C8 - .4byte sub_815670C - .4byte sub_8156750 - .4byte sub_8156794 - .4byte sub_81567BC - .4byte sub_8156800 - .4byte sub_8156844 - .4byte sub_8156888 - .4byte sub_81568CC - .4byte sub_815690C - .4byte sub_8156950 - .4byte sub_8156994 - .4byte sub_81569D8 - .4byte sub_8156A1C - .4byte sub_8156A48 - .4byte sub_8156A98 - .4byte sub_8156AE8 - .4byte sub_8156B38 - .4byte sub_8156B88 - .4byte sub_8156BB4 - .4byte sub_8156C04 - .4byte sub_8156C54 - .4byte sub_8156CA4 - .4byte sub_8156CF4 - .4byte sub_8156D18 - .4byte sub_8156D5C - .4byte sub_8156DA0 - .4byte sub_8156DE4 - .4byte sub_8156E2C - .4byte sub_8156E74 - .4byte sub_8156EBC - .4byte sub_8156F04 - .4byte sub_8156F44 - .4byte sub_8156F88 - .4byte sub_8156FCC - .4byte sub_8157018 - .4byte sub_815705C - .4byte sub_81570A0 - .4byte sub_815712C - .4byte sub_8157174 - .4byte sub_8157200 - .4byte sub_8157248 - .4byte sub_81572A4 - .4byte sub_81572E8 - .4byte sub_815732C - .4byte sub_8157370 - .4byte sub_81573B4 - .4byte sub_8157410 - .4byte sub_8157454 - .4byte sub_8157498 - .4byte sub_81574DC - .4byte sub_8157520 - .4byte sub_8157578 - .4byte sub_81575BC - .4byte sub_8157600 - .4byte sub_8157644 - .4byte sub_8157688 - .4byte sub_8157700 - .4byte sub_8157748 - .4byte sub_8157790 - .4byte sub_8157808 - .4byte sub_8157850 - .4byte sub_8157898 - .4byte sub_81578F8 - .4byte sub_8157940 - .4byte sub_8157988 - .4byte sub_81579CC - .4byte sub_8157A10 - .4byte sub_8157A54 - .4byte sub_8157A98 - .4byte sub_8157ADC - .4byte sub_8157B38 - .4byte sub_8157B7C - .4byte sub_8157BC0 - .4byte sub_8157C04 - .4byte sub_8157C48 - .4byte sub_8157C94 - .4byte sub_8157CDC - .4byte sub_8157D24 - .4byte sub_8157D60 - .4byte sub_8157DA8 - .4byte sub_8157DF0 - .4byte sub_8157E3C - .4byte sub_8157E84 - .4byte sub_8157ECC - .4byte sub_8157F14 - .4byte sub_8157F5C - .4byte sub_8157FA0 - .4byte sub_8157FE8 - .4byte sub_8158030 - .4byte sub_8158078 - .4byte sub_81580C0 - .4byte sub_8158108 - .4byte sub_815814C - .4byte sub_8158190 - .4byte sub_81581D4 - .4byte sub_8158218 - .4byte sub_8158254 - .4byte sub_8158298 - .4byte sub_81582DC - .4byte sub_8158320 - .4byte sub_8158364 - .4byte sub_81583B8 - .4byte sub_81583FC - .4byte sub_8158440 - .4byte sub_815846C - .4byte sub_815849C - .4byte sub_81584D4 - .4byte sub_8158508 - .4byte sub_815853C - .4byte sub_815858C - .4byte sub_81585DC - .4byte sub_815862C - .4byte sub_815867C - .4byte sub_81586D0 - .4byte sub_8158724 - .4byte sub_8158778 - .4byte sub_81587CC - .4byte sub_815881C - .4byte sub_815886C - .4byte dp15_call - .4byte sub_81588BC - .4byte sub_8158948 - .4byte sub_81589A4 - .4byte sub_81589EC - .4byte sub_8158A34 - .4byte sub_8158AA0 - .4byte sub_8158AE8 - diff --git a/include/contest.h b/include/contest.h index 761b163694..18f9ad21f0 100644 --- a/include/contest.h +++ b/include/contest.h @@ -341,7 +341,8 @@ struct UnknownContestStruct7 u8 contestant; }; -struct ContestAIInfo { +struct ContestAIInfo +{ /*0x00*/ u8 aiState; /*0x02*/ u16 unk2; /*0x04*/ u8 unk4; @@ -352,9 +353,9 @@ struct ContestAIInfo { /*0x14*/ u32 flags; /*0x18*/ s16 scriptResult; /*0x1A*/ s16 scriptArr[3]; - /*0x20*/ u32 stack[8]; - /*0x40*/ u8 unk40; - /*0x41*/ u8 unk41; + /*0x20*/ const u8 *stack[8]; + /*0x40*/ u8 stackSize; + /*0x41*/ u8 contestantId; }; struct UnknownContestStruct5 diff --git a/ld_script.txt b/ld_script.txt index 5f9d356173..502515b49b 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -203,7 +203,7 @@ SECTIONS { src/save.o(.text); src/mystery_event_script.o(.text); asm/field_effect_helpers.o(.text); - asm/contest_ai.o(.text); + src/contest_ai.o(.text); src/battle_anim_sound_tasks.o(.text); src/battle_controller_safari.o(.text); src/fldeff_sweetscent.o(.text); @@ -488,7 +488,7 @@ SECTIONS { data/cable_car.o(.rodata); src/save.o(.rodata); data/field_effect_helpers.o(.rodata); - data/contest_ai.o(.rodata); + src/contest_ai.o(.rodata); src/battle_controller_safari.o(.rodata); data/battle_anim_815A0D4.o(.rodata); src/learn_move.o(.rodata); diff --git a/src/contest_ai.c b/src/contest_ai.c index 059c351e90..3324ddf87a 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -4,7 +4,6 @@ #include "contest_ai.h" #include "contest_effect.h" -extern u16 gSpecialVar_ContestCategory; extern u16 gContestMonConditions[]; extern const u8 *gAIScriptPtr; @@ -294,22 +293,22 @@ static bool8 sub_81563B0(u8); static void AIStackPushVar(const u8 *); static u8 AIStackPop(void); -void ContestAI_ResetAI(u8 var) +void ContestAI_ResetAI(u8 contestantAI) { int i; memset(eContestAI, 0, sizeof(struct ContestAIInfo)); - for(i = 0; i < 4; i++) + for (i = 0; i < 4; i++) eContestAI->unk5[i] = 100; - eContestAI->unk41 = var; - eContestAI->unk40 = 0; - eContestAI->flags = gContestMons[eContestAI->unk41].flags; + eContestAI->contestantId = contestantAI; + eContestAI->stackSize = 0; + eContestAI->flags = gContestMons[eContestAI->contestantId].flags; } u8 ContestAI_GetActionToUse(void) { - while(eContestAI->flags != 0) + while (eContestAI->flags != 0) { if (eContestAI->flags & 1) { @@ -338,7 +337,7 @@ u8 ContestAI_GetActionToUse(void) static void ContestAI_DoAIProcessing(void) { - while(eContestAI->aiState != CONTESTAI_FINISHED) + while (eContestAI->aiState != CONTESTAI_FINISHED) { switch(eContestAI->aiState) { @@ -347,10 +346,10 @@ static void ContestAI_DoAIProcessing(void) case CONTESTAI_SETTING_UP: gAIScriptPtr = gContestAIs[eContestAI->unk10]; - if (gContestMons[eContestAI->unk41].moves[eContestAI->unk4] == 0) + if (gContestMons[eContestAI->contestantId].moves[eContestAI->unk4] == 0) eContestAI->unk2 = 0; // don't process a move that doesn't exist. else - eContestAI->unk2 = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + eContestAI->unk2 = gContestMons[eContestAI->contestantId].moves[eContestAI->unk4]; eContestAI->aiState++; break; case CONTESTAI_PROCESSING: @@ -379,7 +378,7 @@ static u8 sub_81563B0(u8 var) { int i; - for(i = 0; i < 4; i++) + for (i = 0; i < 4; i++) if (shared192D0.turnOrder[i] == var) break; @@ -494,7 +493,7 @@ static void ContestAICmd_unk_0A(void) static void ContestAICmd_get_user_order(void) { - eContestAI->scriptResult = shared192D0.turnOrder[eContestAI->unk41]; + eContestAI->scriptResult = shared192D0.turnOrder[eContestAI->contestantId]; gAIScriptPtr += 1; } @@ -540,7 +539,7 @@ static void ContestAICmd_unk_0F(void) static void ContestAICmd_get_user_condition_maybe(void) { - eContestAI->scriptResult = sContestantStatus[eContestAI->unk41].condition / 10; + eContestAI->scriptResult = sContestantStatus[eContestAI->contestantId].condition / 10; gAIScriptPtr += 1; } @@ -586,7 +585,7 @@ static void ContestAICmd_unk_14(void) static void ContestAICmd_unk_15(void) { - eContestAI->scriptResult = sContestantStatus[eContestAI->unk41].unk4; + eContestAI->scriptResult = sContestantStatus[eContestAI->contestantId].unk4; gAIScriptPtr += 1; } @@ -632,7 +631,7 @@ static void ContestAICmd_unk_19(void) static void ContestAICmd_unk_1A(void) { - eContestAI->scriptResult = gContestMonConditions[eContestAI->unk41]; + eContestAI->scriptResult = gContestMonConditions[eContestAI->contestantId]; gAIScriptPtr += 1; } @@ -704,7 +703,7 @@ static void ContestAICmd_unk_21(void) static void ContestAICmd_get_move_excitement(void) { - eContestAI->scriptResult = Contest_GetMoveExcitement(gContestMons[eContestAI->unk41].moves[eContestAI->unk4]); + eContestAI->scriptResult = Contest_GetMoveExcitement(gContestMons[eContestAI->contestantId].moves[eContestAI->unk4]); gAIScriptPtr += 1; } @@ -750,7 +749,7 @@ static void ContestAICmd_unk_26(void) static void ContestAICmd_get_move_effect(void) { - u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u16 move = gContestMons[eContestAI->contestantId].moves[eContestAI->unk4]; eContestAI->scriptResult = gContestMoves[move].effect; gAIScriptPtr += 1; @@ -778,7 +777,7 @@ static void ContestAICmd_unk_29(void) static void ContestAICmd_get_move_effect_type(void) { - u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u16 move = gContestMons[eContestAI->contestantId].moves[eContestAI->unk4]; eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].effectType; gAIScriptPtr += 1; @@ -807,12 +806,12 @@ static void ContestAICmd_unk_2C(void) static void ContestAICmd_check_move_has_highest_appeal(void) { int i; - u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u16 move = gContestMons[eContestAI->contestantId].moves[eContestAI->unk4]; u8 appeal = gContestEffects[gContestMoves[move].effect].appeal; - for(i = 0; i < 4; i++) + for (i = 0; i < 4; i++) { - u16 newMove = gContestMons[eContestAI->unk41].moves[i]; + u16 newMove = gContestMons[eContestAI->contestantId].moves[i]; if (newMove != 0 && appeal < gContestEffects[gContestMoves[newMove].effect].appeal) break; } @@ -838,12 +837,12 @@ static void ContestAICmd_unk_2E(void) static void ContestAICmd_unk_2F(void) { int i; - u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u16 move = gContestMons[eContestAI->contestantId].moves[eContestAI->unk4]; u8 jam = gContestEffects[gContestMoves[move].effect].jam; - for(i = 0; i < 4; i++) + for (i = 0; i < 4; i++) { - u16 newMove = gContestMons[eContestAI->unk41].moves[i]; + u16 newMove = gContestMons[eContestAI->contestantId].moves[i]; if (newMove != 0 && jam < gContestEffects[gContestMoves[newMove].effect].jam) break; } @@ -868,7 +867,7 @@ static void ContestAICmd_unk_30(void) static void ContestAICmd_unk_31(void) { - u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u16 move = gContestMons[eContestAI->contestantId].moves[eContestAI->unk4]; eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].appeal / 10; gAIScriptPtr += 1; @@ -916,7 +915,7 @@ static void ContestAICmd_unk_35(void) static void ContestAICmd_unk_36(void) { - u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u16 move = gContestMons[eContestAI->contestantId].moves[eContestAI->unk4]; eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].jam / 10; gAIScriptPtr += 1; @@ -965,12 +964,12 @@ static void ContestAICmd_unk_3A(void) static void ContestAICmd_get_move_used_count(void) { s16 result; - u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u16 move = gContestMons[eContestAI->contestantId].moves[eContestAI->unk4]; - if (move != sContestantStatus[eContestAI->unk41].prevMove) + if (move != sContestantStatus[eContestAI->contestantId].prevMove) result = 0; // move is unique and not reused. else - result = sContestantStatus[eContestAI->unk41].moveRepeatCount + 1; + result = sContestantStatus[eContestAI->contestantId].moveRepeatCount + 1; eContestAI->scriptResult = result; gAIScriptPtr += 1; @@ -1020,13 +1019,13 @@ static void ContestAICmd_check_combo_starter(void) { u8 result = 0; int i; - u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u16 move = gContestMons[eContestAI->contestantId].moves[eContestAI->unk4]; - for(i = 0; i < 4; i++) + for (i = 0; i < 4; i++) { - if (gContestMons[eContestAI->unk41].moves[i]) + if (gContestMons[eContestAI->contestantId].moves[i]) { - result = AreMovesContestCombo(move, gContestMons[eContestAI->unk41].moves[i]); + result = AreMovesContestCombo(move, gContestMons[eContestAI->contestantId].moves[i]); if (result) { result = 1; @@ -1066,13 +1065,13 @@ static void ContestAICmd_check_combo_finisher(void) { u8 result = 0; int i; - u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u16 move = gContestMons[eContestAI->contestantId].moves[eContestAI->unk4]; - for(i = 0; i < 4; i++) + for (i = 0; i < 4; i++) { - if (gContestMons[eContestAI->unk41].moves[i]) + if (gContestMons[eContestAI->contestantId].moves[i]) { - result = AreMovesContestCombo(gContestMons[eContestAI->unk41].moves[i], move); + result = AreMovesContestCombo(gContestMons[eContestAI->contestantId].moves[i], move); if (result) { result = 1; @@ -1111,10 +1110,10 @@ static void ContestAICmd_unk_45(void) static void ContestAICmd_check_would_finish_combo(void) { u8 result = 0; - u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u16 move = gContestMons[eContestAI->contestantId].moves[eContestAI->unk4]; - if (sContestantStatus[eContestAI->unk41].prevMove) - result = AreMovesContestCombo(sContestantStatus[eContestAI->unk41].prevMove, move); + if (sContestantStatus[eContestAI->contestantId].prevMove) + result = AreMovesContestCombo(sContestantStatus[eContestAI->contestantId].prevMove, move); if (result) result = 1; @@ -1305,7 +1304,7 @@ static void ContestAICmd_unk_59(void) { u8 var = sub_81563B0(gAIScriptPtr[1]); - eContestAI->scriptResult = sContestantStatus[var].unk4 - sContestantStatus[eContestAI->unk41].unk4; + eContestAI->scriptResult = sContestantStatus[var].unk4 - sContestantStatus[eContestAI->contestantId].unk4; gAIScriptPtr += 2; } @@ -1353,7 +1352,7 @@ static void ContestAICmd_unk_5E(void) { u8 var = sub_81563B0(gAIScriptPtr[1]); - eContestAI->scriptResult = gContestMonConditions[var] - gContestMonConditions[eContestAI->unk41]; + eContestAI->scriptResult = gContestMonConditions[var] - gContestMonConditions[eContestAI->contestantId]; gAIScriptPtr += 2; } @@ -1658,15 +1657,15 @@ static void ContestAICmd_unk_81(void) static void AIStackPushVar(const u8 *ptr) { - eContestAI->stack[eContestAI->unk40++] = (u32)ptr; + eContestAI->stack[eContestAI->stackSize++] = ptr; } static bool8 AIStackPop(void) { - if (eContestAI->unk40 != 0) + if (eContestAI->stackSize != 0) { - --eContestAI->unk40; - gAIScriptPtr = (u8 *)eContestAI->stack[eContestAI->unk40]; + --eContestAI->stackSize; + gAIScriptPtr = eContestAI->stack[eContestAI->stackSize]; return TRUE; } else @@ -1680,12 +1679,11 @@ static void ContestAICmd_check_for_exciting_move(void) int result = 0; int i; - for(i = 0; i < 4; i++) + for (i = 0; i < 4; i++) { - if (gContestMons[eContestAI->unk41].moves[i]) + if (gContestMons[eContestAI->contestantId].moves[i]) { - // why is it using gSharedMem + 0x19325? that does not exist... - if (Contest_GetMoveExcitement(gContestMons[eContestAI->unk41].moves[i]) == 1) + if (Contest_GetMoveExcitement(gContestMons[eContestAI->contestantId].moves[i]) == 1) { result = 1; break; @@ -1723,9 +1721,9 @@ static void ContestAICmd_unk_85(void) int i; u16 arg = T1_READ_16(gAIScriptPtr + 1); - for(i = 0; i < 4; i++) + for (i = 0; i < 4; i++) { - u16 move = gContestMons[eContestAI->unk41].moves[i]; + u16 move = gContestMons[eContestAI->contestantId].moves[i]; if (move == arg) { result = 1; From dc6cf391cec2bdf1fd0717f6ece90d3b1a55fccd Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 12:06:23 +0200 Subject: [PATCH 107/174] Make contest ai compile. --- src/pokemon_summary_screen.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 7e20a2a92d..53320544db 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -42,7 +42,6 @@ extern struct UnkStruct_61CC04 gUnknown_0861CC10; extern struct UnkStruct_61CC04 gUnknown_0861CBEC; extern struct UnkStruct_61CC04 gUnknown_0861CBF8; extern u16 gSummaryScreenWindow_Tilemap[]; -extern struct ContestEffect gContestEffects[]; extern struct WindowTemplate gUnknown_0861CC24; extern u8 gUnknown_0861CD2C[][3]; extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; From a54fa23b5f30b0c6cc24f211137b3f6c892b3cd5 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 15:49:50 +0200 Subject: [PATCH 108/174] Begin battle frontier 1 --- asm/battle_frontier_1.s | 1792 --------------------------------------- include/global.h | 60 +- ld_script.txt | 2 + src/battle_frontier_1.c | 1235 +++++++++++++++++++++++++++ 4 files changed, 1285 insertions(+), 1804 deletions(-) create mode 100644 src/battle_frontier_1.c diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index e353cb4755..6715dadea7 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -5,1798 +5,6 @@ .text - thumb_func_start sub_818E9AC -sub_818E9AC: @ 818E9AC - push {lr} - ldr r1, =gUnknown_0860D090 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E9AC - - thumb_func_start sub_818E9CC -sub_818E9CC: @ 818E9CC - push {r4-r7,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, [r4] - ldr r2, =0x00000ca8 - adds r0, r2 - movs r6, 0 - strb r6, [r0] - ldr r1, [r4] - adds r2, 0xA - adds r0, r1, r2 - strh r6, [r0] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r4, [r4] - ldr r0, =0x00000cdc - adds r3, r4, r0 - ldr r2, =gUnknown_0860D0EC - lsls r1, r5, 2 - lsls r0, r7, 3 - adds r1, r0 - adds r1, r2 - ldr r0, [r3] - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _0818EA3E - lsls r0, r5, 1 - lsls r1, r7, 2 - adds r0, r1 - ldr r2, =0x00000d0c - adds r1, r4, r2 - adds r1, r0 - strh r6, [r1] -_0818EA3E: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - ldr r0, =gTrainerBattleOpponent_A - strh r6, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E9CC - - thumb_func_start sub_818EA84 -sub_818EA84: @ 818EA84 - push {r4-r6,lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x9 - bls _0818EAA8 - b _0818ED10 -_0818EAA8: - lsls r0, 2 - ldr r1, =_0818EAC8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0818EAC8: - .4byte _0818EAF0 - .4byte _0818EB14 - .4byte _0818EB48 - .4byte _0818EB64 - .4byte _0818EB80 - .4byte _0818EB98 - .4byte _0818EBB4 - .4byte _0818EC40 - .4byte _0818ECD0 - .4byte _0818ECF4 -_0818EAF0: - ldr r3, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r5, 1 - lsls r2, r6, 2 - adds r1, r2 - ldr r2, =0x00000d0c - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3] - b _0818ED10 - .pool -_0818EB14: - ldr r4, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r3, =0x00000cdc - adds r2, r3 - ldr r3, =gUnknown_0860D0EC - lsls r0, r5, 2 - lsls r1, r6, 3 - adds r0, r1 - adds r0, r3 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - strh r0, [r4] - b _0818ED10 - .pool -_0818EB48: - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d08 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 31 - b _0818ECBE - .pool -_0818EB64: - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d08 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 30 - b _0818ECBE - .pool -_0818EB80: - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d08 - adds r0, r2 - b _0818ECBA - .pool -_0818EB98: - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d08 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 28 - b _0818ECBE - .pool -_0818EBB4: - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0818EC04 - cmp r5, 0 - beq _0818EBE8 - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d08 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 26 - b _0818ECBE - .pool -_0818EBE8: - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d08 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 27 - b _0818ECBE - .pool -_0818EC04: - cmp r5, 0 - beq _0818EC24 - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d08 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 30 - b _0818ECBE - .pool -_0818EC24: - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d08 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 31 - b _0818ECBE - .pool -_0818EC40: - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0818EC90 - cmp r5, 0 - beq _0818EC74 - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d08 - adds r0, r2 - ldrb r0, [r0] - lsrs r0, 7 - strh r0, [r1] - b _0818ED10 - .pool -_0818EC74: - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d08 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 25 - b _0818ECBE - .pool -_0818EC90: - cmp r5, 0 - beq _0818ECB0 - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d08 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 28 - b _0818ECBE - .pool -_0818ECB0: - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d08 - adds r0, r3 -_0818ECBA: - ldrb r0, [r0] - lsls r0, 29 -_0818ECBE: - lsrs r0, 31 - strh r0, [r1] - b _0818ED10 - .pool -_0818ECD0: - bl sub_81B8558 - ldr r2, =gUnknown_0203CEF8 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldrh r1, [r0] - strb r1, [r2] - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r2, 0x1] - b _0818ED10 - .pool -_0818ECF4: - ldr r2, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r3, =0x00000d0a - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 1 - adds r3, 0x1 - adds r1, r3 - ldr r3, =0x0000fffd - adds r0, r3 - ldrb r1, [r1] - adds r0, r1 - strh r0, [r2] -_0818ED10: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818EA84 - - thumb_func_start sub_818ED28 -sub_818ED28: @ 818ED28 - push {r4,r5,lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r4, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x8 - bls _0818ED4C - b _0818F01E -_0818ED4C: - lsls r0, 2 - ldr r1, =_0818ED6C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0818ED6C: - .4byte _0818ED90 - .4byte _0818EDB4 - .4byte _0818EE10 - .4byte _0818EE34 - .4byte _0818EE5C - .4byte _0818EE78 - .4byte _0818EEA0 - .4byte _0818EF50 - .4byte _0818F008 -_0818ED90: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - lsls r0, r4, 1 - lsls r1, r5, 2 - adds r0, r1 - ldr r1, =0x00000d0c - adds r2, r1 - adds r2, r0 - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - strh r0, [r2] - b _0818F01E - .pool -_0818EDB4: - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - cmp r0, 0 - beq _0818EDE8 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =0x00000cdc - adds r2, r0 - ldr r3, =gUnknown_0860D0EC - lsls r1, r4, 2 - lsls r0, r5, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - orrs r0, r1 - str r0, [r2] - b _0818F01E - .pool -_0818EDE8: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, =0x00000cdc - adds r2, r1 - ldr r3, =gUnknown_0860D0FC - lsls r1, r4, 2 - lsls r0, r5, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - ands r0, r1 - str r0, [r2] - b _0818F01E - .pool -_0818EE10: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gSpecialVar_0x8006 - ldrb r0, [r0] - ldr r1, =0x00000d08 - adds r2, r1 - movs r1, 0x1 - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x2 - negs r0, r0 - b _0818EF74 - .pool -_0818EE34: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gSpecialVar_0x8006 - ldrb r0, [r0] - ldr r2, =0x00000d08 - adds r3, r2 - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r3] - movs r0, 0x3 - negs r0, r0 - b _0818EFF4 - .pool -_0818EE5C: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gSpecialVar_0x8006 - ldrb r0, [r0] - ldr r1, =0x00000d08 - adds r3, r1 - b _0818EFE8 - .pool -_0818EE78: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gSpecialVar_0x8006 - ldrb r0, [r0] - ldr r2, =0x00000d08 - adds r3, r2 - movs r1, 0x1 - ands r1, r0 - lsls r1, 3 - ldrb r2, [r3] - movs r0, 0x9 - negs r0, r0 - b _0818EFF4 - .pool -_0818EEA0: - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bne _0818EF00 - cmp r4, 0 - beq _0818EEDC - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gSpecialVar_0x8006 - ldrb r0, [r0] - ldr r2, =0x00000d08 - adds r3, r2 - ands r1, r0 - lsls r1, 5 - ldrb r2, [r3] - movs r0, 0x21 - negs r0, r0 - b _0818EFF4 - .pool -_0818EEDC: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gSpecialVar_0x8006 - ldrb r0, [r0] - ldr r2, =0x00000d08 - adds r3, r2 - ands r1, r0 - lsls r1, 4 - ldrb r2, [r3] - movs r0, 0x11 - negs r0, r0 - b _0818EFF4 - .pool -_0818EF00: - cmp r4, 0 - beq _0818EF2C - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gSpecialVar_0x8006 - ldrb r0, [r0] - ldr r1, =0x00000d08 - adds r3, r1 - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r3] - movs r0, 0x3 - negs r0, r0 - b _0818EFF4 - .pool -_0818EF2C: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gSpecialVar_0x8006 - ldrb r0, [r0] - ldr r1, =0x00000d08 - adds r2, r1 - movs r1, 0x1 - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x2 - negs r0, r0 - b _0818EF74 - .pool -_0818EF50: - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bne _0818EFB0 - cmp r4, 0 - beq _0818EF8C - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gSpecialVar_0x8006 - ldrb r1, [r0] - ldr r0, =0x00000d08 - adds r2, r0 - lsls r1, 7 - ldrb r3, [r2] - movs r0, 0x7F -_0818EF74: - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _0818F01E - .pool -_0818EF8C: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gSpecialVar_0x8006 - ldrb r0, [r0] - ldr r2, =0x00000d08 - adds r3, r2 - ands r1, r0 - lsls r1, 6 - ldrb r2, [r3] - movs r0, 0x41 - negs r0, r0 - b _0818EFF4 - .pool -_0818EFB0: - cmp r4, 0 - beq _0818EFDC - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gSpecialVar_0x8006 - ldrb r0, [r0] - ldr r1, =0x00000d08 - adds r3, r1 - movs r1, 0x1 - ands r1, r0 - lsls r1, 3 - ldrb r2, [r3] - movs r0, 0x9 - negs r0, r0 - b _0818EFF4 - .pool -_0818EFDC: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gSpecialVar_0x8006 - ldrb r0, [r0] - ldr r2, =0x00000d08 - adds r3, r2 -_0818EFE8: - movs r1, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 -_0818EFF4: - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _0818F01E - .pool -_0818F008: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gUnknown_0203CEF8 - ldrb r1, [r0] - ldrb r0, [r0, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r0, 0xCB - lsls r0, 4 - adds r2, r0 - strh r1, [r2] -_0818F01E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818ED28 - - thumb_func_start sub_818F02C -sub_818F02C: @ 818F02C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x20 - bl AllocZeroed - str r0, [sp, 0x18] - movs r0, 0x18 - bl AllocZeroed - str r0, [sp, 0x1C] - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - adds r0, 0x1 - ldr r3, =0x00000d0a - adds r1, r3 - strb r0, [r1] - ldr r0, =0x000040ce - bl VarGet - ldr r1, [r4] - adds r0, 0x1 - ldr r5, =0x00000d0b - adds r1, r5 - strb r0, [r1] - ldr r2, [r4] - ldr r7, =0x00000d24 - adds r3, r2, r7 - ldrh r0, [r3] - ldr r5, =0x000003ff - adds r1, r5, 0 - orrs r0, r1 - strh r0, [r3] - ldr r3, =0x00000d25 - adds r2, r3 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r4] - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x19 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x1F - ands r0, r2 - strb r0, [r1] - movs r7, 0 - mov r10, r7 - mov r8, r4 - ldr r0, =gBattleScripting + 0x14 - mov r9, r0 - movs r4, 0 -_0818F0BA: - mov r1, r8 - ldr r0, [r1] - ldr r2, =0x00000caa - adds r0, r2 - adds r0, r4 - ldrh r0, [r0] - movs r3, 0x64 - muls r0, r3 - add r0, r9 - movs r1, 0xB - movs r2, 0 - bl GetMonData - mov r5, r8 - ldr r1, [r5] - ldr r7, =0x00000d64 - adds r1, r7 - adds r1, r4 - strh r0, [r1] - movs r5, 0 - mov r0, r10 - lsls r7, r0, 4 - adds r6, r7, 0 -_0818F0E8: - mov r1, r8 - ldr r0, [r1] - ldr r2, =0x00000caa - adds r0, r2 - adds r0, r4 - ldrh r0, [r0] - movs r3, 0x64 - muls r0, r3 - add r0, r9 - adds r1, r5, 0 - adds r1, 0xD - movs r2, 0 - bl GetMonData - mov r2, r8 - ldr r1, [r2] - ldr r3, =0x00000efc - adds r1, r3 - adds r1, r6 - strh r0, [r1] - adds r6, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _0818F0E8 - movs r5, 0 - ldr r6, =gSaveBlock2Ptr -_0818F11C: - ldr r0, [r6] - ldr r1, =0x00000caa - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - movs r2, 0x64 - muls r0, r2 - add r0, r9 - adds r1, r5, 0 - adds r1, 0x1A - movs r2, 0 - bl GetMonData - ldr r1, [r6] - adds r2, r5, r7 - ldr r3, =0x00000f04 - adds r1, r3 - adds r1, r2 - strb r0, [r1] - adds r5, 0x1 - cmp r5, 0x5 - ble _0818F11C - mov r5, r8 - ldr r0, [r5] - ldr r1, =0x00000caa - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - movs r2, 0x64 - muls r0, r2 - add r0, r9 - bl GetNature - ldr r1, [r5] - adds r1, r7 - ldr r3, =0x00000f0a - adds r1, r3 - strb r0, [r1] - adds r4, 0x2 - movs r5, 0x1 - add r10, r5 - mov r7, r10 - cmp r7, 0x2 - ble _0818F0BA - mov r10, r5 - movs r0, 0x4 - str r0, [sp, 0x34] - movs r1, 0x6 - str r1, [sp, 0x38] -_0818F17E: - mov r2, r10 - cmp r2, 0x5 - ble _0818F22C -_0818F184: - bl sub_81A39C4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8162548 - lsls r0, 16 - lsrs r4, r0, 16 - movs r5, 0x1 - cmp r5, r10 - bge _0818F1CA - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r7, =0x00000d28 - adds r0, r7 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - adds r2, r3, 0 - cmp r0, r4 - beq _0818F1CA - ldr r3, =0x00000d24 -_0818F1B2: - adds r5, 0x1 - cmp r5, r10 - bge _0818F1CA - ldr r0, [r2] - lsls r1, r5, 2 - adds r0, r1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r4 - bne _0818F1B2 -_0818F1CA: - cmp r5, r10 - bne _0818F184 - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r1, [sp, 0x34] - adds r3, r1 - ldr r2, =0x00000d24 - adds r3, r2 - ldr r5, =0x000003ff - adds r0, r5, 0 - adds r2, r4, 0 - ands r2, r0 - ldrh r0, [r3] - ldr r7, =0xfffffc00 - adds r1, r7, 0 - b _0818F292 - .pool -_0818F22C: - bl sub_81A39C4 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8162548 - lsls r0, 16 - lsrs r4, r0, 16 - movs r5, 0x1 - cmp r5, r10 - bge _0818F274 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000d28 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - adds r2, r1, 0 - cmp r0, r4 - beq _0818F274 - ldr r3, =0x00000d24 -_0818F25C: - adds r5, 0x1 - cmp r5, r10 - bge _0818F274 - ldr r0, [r2] - lsls r1, r5, 2 - adds r0, r1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r4 - bne _0818F25C -_0818F274: - cmp r5, r10 - bne _0818F22C - ldr r5, =gSaveBlock2Ptr - ldr r3, [r5] - ldr r7, [sp, 0x34] - adds r3, r7 - ldr r0, =0x00000d24 - adds r3, r0 - ldr r1, =0x000003ff - adds r0, r1, 0 - adds r2, r4, 0 - ands r2, r0 - ldrh r0, [r3] - ldr r5, =0xfffffc00 - adds r1, r5, 0 -_0818F292: - ands r0, r1 - orrs r0, r2 - strh r0, [r3] - movs r5, 0 - lsls r4, 16 - str r4, [sp, 0x2C] - ldr r7, [sp, 0x38] - str r7, [sp, 0x20] -_0818F2A2: - lsls r0, r5, 1 - mov r9, r0 - adds r1, r5, 0x1 - str r1, [sp, 0x24] - lsls r2, r5, 2 - str r2, [sp, 0x28] -_0818F2AE: - ldr r3, [sp, 0x2C] - lsrs r0, r3, 16 - bl sub_8163524 - lsls r0, 16 - lsrs r6, r0, 16 - movs r7, 0 - cmp r7, r5 - bge _0818F300 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, [sp, 0x8] - mov r8, r1 - ldr r2, [sp, 0xC] - mov r12, r2 - ldr r3, =0x00000d64 - adds r0, r3 - ldr r1, [sp, 0x20] - adds r4, r1, r0 -_0818F2D4: - ldrh r3, [r4] - cmp r3, r6 - beq _0818F300 - ldr r2, =gUnknown_0203BC8C - ldr r1, [r2] - lsls r0, r6, 4 - adds r2, r0, r1 - ldrh r0, [r2] - cmp r8, r0 - beq _0818F300 - cmp r12, r0 - beq _0818F300 - lsls r0, r3, 4 - adds r0, r1 - ldrb r0, [r0, 0xA] - ldrb r2, [r2, 0xA] - cmp r0, r2 - beq _0818F300 - adds r4, 0x2 - adds r7, 0x1 - cmp r7, r5 - blt _0818F2D4 -_0818F300: - cmp r7, r5 - bne _0818F2AE - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r1, [sp, 0x38] - add r1, r9 - ldr r5, =0x00000d64 - adds r0, r5 - adds r0, r1 - strh r6, [r0] - ldr r2, [sp, 0x28] - add r2, sp - adds r2, 0x8 - ldr r0, =gUnknown_0203BC8C - ldr r1, [r0] - lsls r0, r6, 4 - adds r0, r1 - ldrh r0, [r0] - str r0, [r2] - ldr r5, [sp, 0x24] - cmp r5, 0x2 - ble _0818F2A2 - ldr r2, [r3] - ldr r7, [sp, 0x34] - adds r2, r7 - ldr r0, =0x00000d25 - adds r2, r0 - ldrb r0, [r2] - movs r3, 0x5 - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - strb r0, [r2] - ldr r5, =gSaveBlock2Ptr - ldr r2, [r5] - adds r2, r7 - ldr r7, =0x00000d25 - adds r2, r7 - ldrb r0, [r2] - subs r3, 0x14 - adds r1, r3, 0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r5] - ldr r5, [sp, 0x34] - adds r1, r5 - adds r1, r7 - ldrb r2, [r1] - movs r0, 0x1F - ands r0, r2 - strb r0, [r1] - adds r5, 0x4 - str r5, [sp, 0x34] - ldr r7, [sp, 0x38] - adds r7, 0x6 - str r7, [sp, 0x38] - movs r0, 0x1 - add r10, r0 - mov r1, r10 - cmp r1, 0xF - bgt _0818F37C - b _0818F17E -_0818F37C: - movs r7, 0 - ldr r2, [sp, 0x18] - strh r7, [r2] - movs r3, 0 - mov r10, r3 - ldr r6, =gBitTable - ldr r5, =gBaseStats -_0818F38A: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - mov r2, r10 - lsls r1, r2, 1 - ldr r3, =0x00000caa - adds r0, r3 - adds r0, r1 - ldrh r0, [r0] - subs r4, r0, 0x1 - movs r0, 0x64 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x3B - movs r2, 0 - bl GetMonData - ldr r2, [sp, 0x18] - ldrh r1, [r2] - adds r1, r0 - strh r1, [r2] - adds r0, r4, 0 - movs r1, 0x3C - movs r2, 0 - bl GetMonData - ldr r3, [sp, 0x18] - ldrh r1, [r3] - adds r1, r0 - strh r1, [r3] - adds r0, r4, 0 - movs r1, 0x3E - movs r2, 0 - bl GetMonData - ldr r2, [sp, 0x18] - ldrh r1, [r2] - adds r1, r0 - strh r1, [r2] - adds r0, r4, 0 - movs r1, 0x3F - movs r2, 0 - bl GetMonData - ldr r3, [sp, 0x18] - ldrh r1, [r3] - adds r1, r0 - strh r1, [r3] - adds r0, r4, 0 - movs r1, 0x3D - movs r2, 0 - bl GetMonData - ldr r2, [sp, 0x18] - ldrh r1, [r2] - adds r1, r0 - strh r1, [r2] - adds r0, r4, 0 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - ldr r3, [sp, 0x18] - ldrh r1, [r3] - adds r1, r0 - strh r1, [r3] - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x6] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - orrs r7, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x7] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - orrs r7, r0 - movs r0, 0x1 - add r10, r0 - mov r1, r10 - cmp r1, 0x2 - ble _0818F38A - movs r4, 0 - movs r1, 0x1 - movs r5, 0x1F -_0818F458: - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _0818F462 - adds r4, 0x1 -_0818F462: - asrs r7, 1 - subs r5, 0x1 - cmp r5, 0 - bge _0818F458 - bl sub_8165C40 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - adds r2, r0, 0 - adds r0, r4, 0 - muls r0, r2 - movs r1, 0x14 - bl __divsi3 - ldr r3, [sp, 0x18] - ldrh r1, [r3] - adds r1, r0 - strh r1, [r3] - movs r5, 0x1 - mov r10, r5 - adds r6, r3, 0 - adds r6, 0x2 - movs r7, 0x2 - str r7, [sp, 0x30] -_0818F494: - movs r7, 0 - strh r7, [r6] - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - mov r2, r10 - lsls r1, r2, 2 - adds r0, r1 - ldr r3, =0x00000d24 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - bl sub_8190168 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r0, [sp, 0x30] - mov r9, r0 -_0818F4BC: - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - mov r4, r9 - add r4, r10 - adds r4, r5 - lsls r4, 1 - ldr r2, =0x00000d64 - adds r0, r2 - adds r0, r4 - ldrh r1, [r0] - ldr r3, =gUnknown_0203BC8C - ldr r0, [r3] - lsls r1, 4 - adds r1, r0 - ldrh r0, [r1] - ldrb r3, [r1, 0xB] - ldrb r1, [r1, 0xC] - str r1, [sp] - ldr r1, [sp, 0x1C] - str r1, [sp, 0x4] - ldr r1, [sp, 0x14] - mov r2, r8 - bl sub_818F720 - ldr r2, [sp, 0x1C] - ldr r1, [r2, 0x4] - ldrh r0, [r6] - adds r0, r1 - ldr r1, [r2, 0x8] - adds r0, r1 - ldr r1, [r2, 0x10] - adds r0, r1 - ldr r1, [r2, 0x14] - adds r0, r1 - ldr r1, [r2, 0xC] - adds r0, r1 - ldr r1, [r2] - adds r0, r1 - strh r0, [r6] - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r1, =0x00000d64 - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - ldr r2, =gUnknown_0203BC8C - ldr r1, [r2] - lsls r0, 4 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r3, =gBaseStats - adds r1, r3 - ldrb r0, [r1, 0x6] - lsls r0, 2 - ldr r2, =gBitTable - adds r0, r2 - ldr r0, [r0] - orrs r7, r0 - ldrb r0, [r1, 0x7] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - orrs r7, r0 - adds r5, 0x1 - cmp r5, 0x2 - ble _0818F4BC - movs r4, 0 - movs r1, 0x1 - movs r5, 0x1F -_0818F54C: - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _0818F556 - adds r4, 0x1 -_0818F556: - asrs r7, 1 - subs r5, 0x1 - cmp r5, 0 - bge _0818F54C - ldr r3, [sp, 0x14] - adds r0, r4, 0 - muls r0, r3 - movs r1, 0x14 - bl __divsi3 - ldrh r1, [r6] - adds r1, r0 - strh r1, [r6] - adds r6, 0x2 - ldr r5, [sp, 0x30] - adds r5, 0x2 - str r5, [sp, 0x30] - movs r7, 0x1 - add r10, r7 - mov r0, r10 - cmp r0, 0xF - ble _0818F494 - movs r1, 0 - mov r10, r1 - ldr r2, =0x000003ff - mov r8, r2 -_0818F58A: - mov r5, r10 - adds r5, 0x1 - adds r7, r5, 0 - cmp r5, 0xF - bgt _0818F626 - mov r3, r10 - lsls r0, r3, 1 - ldr r1, [sp, 0x18] - adds r6, r0, r1 - lsls r0, r5, 1 - adds r4, r0, r1 -_0818F5A0: - ldrh r1, [r6] - ldrh r0, [r4] - cmp r1, r0 - bcc _0818F5C2 - cmp r1, r0 - bne _0818F61E - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - lsls r0, r5, 2 - adds r0, r1, r0 - ldr r2, =0x00000d24 - adds r0, r2 - ldrh r0, [r0] - lsls r2, r0, 22 - lsrs r0, r2, 22 - cmp r0, r8 - bne _0818F602 -_0818F5C2: - mov r0, r10 - adds r1, r5, 0 - ldr r2, [sp, 0x18] - bl sub_818F904 - b _0818F600 - .pool -_0818F600: - b _0818F61E -_0818F602: - mov r3, r10 - lsls r0, r3, 2 - adds r0, r1, r0 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 22 - cmp r0, r2 - bls _0818F61E - mov r0, r10 - adds r1, r5, 0 - ldr r2, [sp, 0x18] - bl sub_818F904 -_0818F61E: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0xF - ble _0818F5A0 -_0818F626: - mov r10, r7 - mov r2, r10 - cmp r2, 0xE - ble _0818F58A - bl sub_81A3610 - lsls r0, 24 - cmp r0, 0 - beq _0818F6EE - movs r3, 0 - mov r10, r3 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r4, =0x00000d24 - adds r1, r4 - ldrh r1, [r1] - lsls r1, 22 - lsrs r1, 22 - ldr r3, =0x000003ff - adds r2, r0, 0 - ldr r6, =gUnknown_0860D3F1 - cmp r1, r3 - beq _0818F674 - adds r5, r2, 0 -_0818F656: - movs r7, 0x1 - add r10, r7 - mov r0, r10 - cmp r0, 0xF - bgt _0818F674 - ldr r0, [r5] - mov r7, r10 - lsls r1, r7, 2 - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r3 - bne _0818F656 -_0818F674: - mov r1, r10 - lsls r0, r1, 1 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0 - beq _0818F6AC - movs r5, 0 - ldr r2, [r2] - ldr r3, =0x00000d24 - adds r2, r3 - ldrh r1, [r2] - ldr r0, =0xfffffc00 - ands r0, r1 - ldr r7, =0x000003fe - adds r1, r7, 0 - b _0818F6BE - .pool -_0818F6AC: - movs r5, 0x1 - ldr r2, [r2] - ldr r0, =0x00000d28 - adds r2, r0 - ldrh r1, [r2] - ldr r0, =0xfffffc00 - ands r0, r1 - ldr r3, =0x000003fe - adds r1, r3, 0 -_0818F6BE: - orrs r0, r1 - strh r0, [r2] - movs r7, 0 - mov r10, r7 - lsls r0, r5, 1 - adds r0, r5 - lsls r4, r0, 1 -_0818F6CC: - mov r1, r10 - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_81A4FF0 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - ldr r2, =0x00000d64 - adds r1, r2 - adds r1, r4 - strh r0, [r1] - adds r4, 0x2 - movs r3, 0x1 - add r10, r3 - mov r5, r10 - cmp r5, 0x2 - ble _0818F6CC -_0818F6EE: - ldr r0, [sp, 0x18] - bl Free - ldr r0, [sp, 0x1C] - bl Free - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818F02C - - thumb_func_start sub_818F720 -sub_818F720: @ 818F720 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r7, r1, 0 - mov r9, r2 - ldr r1, [sp, 0x3C] - ldr r2, [sp, 0x40] - mov r8, r2 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r3, 24 - lsrs r5, r3, 24 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x18] - movs r1, 0 - adds r4, r5, 0 - movs r3, 0x1 - movs r2, 0x5 -_0818F74C: - adds r0, r4, 0 - ands r0, r3 - cmp r0, 0 - beq _0818F756 - adds r1, 0x1 -_0818F756: - lsrs r4, 1 - subs r2, 0x1 - cmp r2, 0 - bge _0818F74C - movs r0, 0xFF - lsls r0, 1 - bl __divsi3 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r0, r6, 3 - mov r10, r0 - movs r1, 0 - mov r12, r1 - mov r1, sp - movs r2, 0x5 -_0818F776: - mov r0, r12 - str r0, [r1] - adds r0, r5, 0 - ands r0, r4 - cmp r0, 0 - beq _0818F784 - str r3, [r1] -_0818F784: - lsls r0, r4, 25 - lsrs r4, r0, 24 - adds r1, 0x4 - subs r2, 0x1 - cmp r2, 0 - bge _0818F776 - ldr r0, =0x0000012f - cmp r6, r0 - bne _0818F7A0 - movs r0, 0x1 - b _0818F7CA - .pool -_0818F7A0: - mov r2, r10 - subs r0, r2, r6 - lsls r0, 2 - ldr r1, =gBaseStats - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - mov r2, r9 - adds r1, r0, r2 - ldr r0, [sp] - cmp r0, 0 - bge _0818F7BA - adds r0, 0x3 -_0818F7BA: - asrs r0, 2 - adds r0, r1, r0 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r0, r7 - adds r0, 0xA -_0818F7CA: - mov r1, r8 - str r0, [r1] - mov r2, r10 - subs r0, r2, r6 - lsls r0, 2 - ldr r1, =gBaseStats - adds r4, r0, r1 - ldrb r0, [r4, 0x1] - lsls r0, 1 - mov r2, r9 - adds r1, r0, r2 - ldr r0, [sp, 0x4] - cmp r0, 0 - bge _0818F7E8 - adds r0, 0x3 -_0818F7E8: - asrs r0, 2 - adds r0, r1, r0 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - adds r1, 0x5 - mov r0, r8 - str r1, [r0, 0x4] - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - movs r2, 0x1 - bl ModifyStatByNature - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - str r0, [r1, 0x4] - ldrb r0, [r4, 0x2] - lsls r0, 1 - mov r2, r9 - adds r1, r0, r2 - ldr r0, [sp, 0x8] - cmp r0, 0 - bge _0818F820 - adds r0, 0x3 -_0818F820: - asrs r0, 2 - adds r0, r1, r0 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - adds r1, 0x5 - mov r0, r8 - str r1, [r0, 0x8] - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - movs r2, 0x2 - bl ModifyStatByNature - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - str r0, [r1, 0x8] - ldrb r0, [r4, 0x3] - lsls r0, 1 - mov r2, r9 - adds r1, r0, r2 - ldr r0, [sp, 0xC] - cmp r0, 0 - bge _0818F858 - adds r0, 0x3 -_0818F858: - asrs r0, 2 - adds r0, r1, r0 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - adds r1, 0x5 - mov r0, r8 - str r1, [r0, 0xC] - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - movs r2, 0x3 - bl ModifyStatByNature - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - str r0, [r1, 0xC] - ldrb r0, [r4, 0x4] - lsls r0, 1 - mov r2, r9 - adds r1, r0, r2 - ldr r0, [sp, 0x10] - cmp r0, 0 - bge _0818F890 - adds r0, 0x3 -_0818F890: - asrs r0, 2 - adds r0, r1, r0 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - adds r1, 0x5 - mov r0, r8 - str r1, [r0, 0x10] - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - movs r2, 0x4 - bl ModifyStatByNature - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - str r0, [r1, 0x10] - ldrb r0, [r4, 0x5] - lsls r0, 1 - mov r1, r9 - adds r2, r0, r1 - ldr r0, [sp, 0x14] - cmp r0, 0 - bge _0818F8C8 - adds r0, 0x3 -_0818F8C8: - asrs r0, 2 - adds r0, r2, r0 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - adds r1, 0x5 - mov r2, r8 - str r1, [r2, 0x14] - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - movs r2, 0x5 - bl ModifyStatByNature - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - str r0, [r1, 0x14] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818F720 - - thumb_func_start sub_818F904 -sub_818F904: @ 818F904 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r3, r0, 1 - mov r12, r3 - adds r4, r3, r2 - ldrh r5, [r4] - lsls r7, r1, 1 - mov r9, r7 - add r2, r9 - ldrh r3, [r2] - strh r3, [r4] - strh r5, [r2] - ldr r2, =gSaveBlock2Ptr - ldr r5, [r2] - lsls r6, r0, 2 - adds r6, r5, r6 - ldr r3, =0x00000d24 - adds r6, r3 - ldrh r7, [r6] - mov r10, r7 - mov r2, r10 - lsls r2, 22 - mov r8, r2 - lsls r2, r1, 2 - adds r5, r2 - adds r5, r3 - ldrh r4, [r5] - lsls r4, 22 - lsrs r4, 22 - ldr r3, =0xfffffc00 - adds r2, r3, 0 - mov r7, r10 - ands r2, r7 - orrs r2, r4 - strh r2, [r6] - mov r2, r8 - lsrs r2, 22 - mov r8, r2 - ldrh r2, [r5] - ands r3, r2 - mov r7, r8 - orrs r3, r7 - strh r3, [r5] - ldr r2, =gSaveBlock2Ptr - mov r8, r2 - add r12, r0 - add r9, r1 - mov r3, r9 - lsls r4, r3, 1 - mov r7, r12 - lsls r3, r7, 1 - ldr r7, =0x00000d64 - movs r6, 0x2 -_0818F974: - mov r1, r8 - ldr r0, [r1] - adds r0, r7 - adds r2, r0, r3 - ldrh r5, [r2] - adds r0, r4 - ldrh r1, [r0] - strh r1, [r2] - strh r5, [r0] - adds r4, 0x2 - adds r3, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _0818F974 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818F904 thumb_func_start sub_818F9B0 sub_818F9B0: @ 818F9B0 diff --git a/include/global.h b/include/global.h index 1a179d8586..0d2167c475 100644 --- a/include/global.h +++ b/include/global.h @@ -330,6 +330,21 @@ struct EmeraldBattleTowerRecord /*0xE8*/ u32 checksum; }; +struct FrontierMonData +{ + u16 moves[4]; + u8 evs[6]; + u8 nature; +}; + +struct FrontierUnkStruct1 +{ + u16 unk0:10; + u16 unk1:1; + u16 unk2:2; + u16 unk3:3; +}; + struct BattleFrontier { /*0x64C*/ struct EmeraldBattleTowerRecord battleTower; @@ -352,9 +367,11 @@ struct BattleFrontier /*0xCA9*/ u8 field_CA9_d:1; // 0x20 /*0xCA9*/ u8 field_CA9_e:1; // 0x40 /*0xCA9*/ u8 field_CA9_f:1; // 0x80 - /*0xCAA*/ u16 field_CAA[4]; + /*0xCAA*/ u16 field_CAA[3]; + /*0xCB0*/ u16 field_CB0; /*0xCB2*/ u16 field_CB2; - /*0xCB4*/ u16 field_CB4[22]; + /*0xCB4*/ u16 field_CB4[20]; + /*0xCDC*/ u32 field_CDC; /*0xCE0*/ u16 field_CE0[4][2]; /*0xCF0*/ u16 field_CF0[2]; /*0xCF4*/ u16 field_CF4[2]; @@ -362,17 +379,33 @@ struct BattleFrontier /*0xCFC*/ u16 field_CFC[5]; /*0xD06*/ u8 field_D06; /*0xD07*/ u8 field_D07; - /*0xD08*/ u8 filler_D08; + /*0xD08*/ u8 field_D08_0:1; + /*0xD08*/ u8 field_D08_1:1; + /*0xD08*/ u8 field_D08_2:1; + /*0xD08*/ u8 field_D08_3:1; + /*0xD08*/ u8 field_D08_4:1; + /*0xD08*/ u8 field_D08_5:1; + /*0xD08*/ u8 field_D08_6:1; + /*0xD08*/ u8 field_D08_7:1; /*0xD09*/ u8 filler_D09; - /*0xD0A*/ u8 filler_D0A; - /*0xD0B*/ u8 filler_D0B; - /*0xD0C*/ u16 field_D0C[2]; - /*0xD10*/ u8 filler_D10; - /*0xD11*/ u8 filler_D11; - /*0xD12*/ u8 filler_D12; - /*0xD13*/ u8 filler_D13; + /*0xD0A*/ u8 field_D0A; + /*0xD0B*/ u8 field_D0B; + /*0xD0C*/ u16 field_D0C[2][2]; /*0xD14*/ u16 field_D14[2]; - /*0xD18*/ u8 field_D18[0xB0]; + /*0xD18*/ u8 field_D18; + /*0xD19*/ u8 field_D19; + /*0xD1A*/ u8 field_D1A; + /*0xD1B*/ u8 field_D1B; + /*0xD1C*/ u8 field_D1C; + /*0xD1D*/ u8 field_D1D; + /*0xD1E*/ u8 field_D1E; + /*0xD1F*/ u8 field_D1F; + /*0xD20*/ u8 field_D20; + /*0xD21*/ u8 field_D21; + /*0xD22*/ u8 field_D22; + /*0xD23*/ u8 field_D23; + /*0xD24*/ struct FrontierUnkStruct1 field_D24[16]; + /*0xD64*/ u16 field_D64[16][3]; /*0xDC8*/ u16 field_DC8[2]; /*0xDCC*/ u8 filler_DCC[4]; /*0xDD0*/ u16 field_DD0[2]; @@ -409,7 +442,10 @@ struct BattleFrontier /*0xEBA*/ u8 field_EBA[39]; /*0xEE1*/ u8 field_EE1[2][PLAYER_NAME_LENGTH]; /*0xEF1*/ u8 field_EF1[2][4]; - /*0xEF9*/ u8 field_EF9[51]; + /*0xEF9*/ u8 field_EF9; + /*0xEFA*/ u8 field_EFA; + /*0xEFB*/ u8 field_EFB; + /*0xEFC*/ struct FrontierMonData field_EFC[3]; }; struct SaveBlock2 diff --git a/ld_script.txt b/ld_script.txt index 5f9d356173..0ee9c61c29 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -242,6 +242,7 @@ SECTIONS { src/battle_controller_recorded_player.o(.text); src/battle_dome_cards.o(.text); src/lilycove_lady.o(.text); + src/battle_frontier_1.o(.text); asm/battle_frontier_1.o(.text); src/menu.o(.text); asm/battle_frontier_2.o(.text); @@ -521,6 +522,7 @@ SECTIONS { src/battle_controller_recorded_player.o(.rodata); src/battle_dome_cards.o(.rodata); src/lilycove_lady.o(.rodata); + src/battle_frontier_1.o(.rodata); data/battle_frontier_1.o(.rodata); src/menu.o(.rodata); data/battle_frontier_2.o(.rodata); diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c new file mode 100644 index 0000000000..b84e919732 --- /dev/null +++ b/src/battle_frontier_1.c @@ -0,0 +1,1235 @@ +#include "global.h" +#include "battle.h" +#include "battle_setup.h" +#include "battle_frontier_1.h" +#include "event_data.h" +#include "overworld.h" +#include "util.h" +#include "malloc.h" +#include "constants/species.h" + +struct Unknown_0203BC8C_Struct +{ + u16 field_0; + u8 field_2; + u8 field_3; + u8 field_4; + u8 field_5; + u8 field_6; + u8 field_7; + u8 field_8; + u8 field_9; + u8 field_A; + u8 field_B; + u8 field_C; + u8 field_D; + u8 field_E; +}; + +extern struct Unknown_0203BC8C_Struct *gUnknown_0203BC8C; + +extern void sub_81B8558(void); +extern u32 sub_81A39C4(void); +extern u16 sub_8162548(u8, u8); +extern u16 sub_8163524(u16); +extern u8 sub_8165C40(void); + +extern u8 gUnknown_0203CEF8[]; + +extern void (* const gUnknown_0860D090[])(void); +extern const u32 gUnknown_0860D0EC[][2]; +extern const u32 gUnknown_0860D0FC[][2]; + +// This file's functions. +u8 sub_8190168(u16); +void sub_818F720(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats); + +// code +void sub_818E9AC(void) +{ + gUnknown_0860D090[gSpecialVar_0x8004](); +} + +void sub_818E9CC(void) +{ + u32 lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; + u32 id = VarGet(VAR_0x40CE); + + gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.field_CB2 = 0; + gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.field_CA9_b = 0; + if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[id][lvlMode])) + gSaveBlock2Ptr->frontier.field_D0C[id][lvlMode] = 0; + + saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + gTrainerBattleOpponent_A = 0; +} + +void sub_818EA84(void) +{ + u32 lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; + u32 id = VarGet(VAR_0x40CE); + + switch (gSpecialVar_0x8005) + { + case 0: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D0C[id][lvlMode]; + break; + case 1: + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[id][lvlMode]) != 0); + break; + case 2: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0; + break; + case 3: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_1; + break; + case 4: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2; + break; + case 5: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3; + break; + case 6: + if (VarGet(VAR_0x40CE) == 1) + { + if (lvlMode) + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_5; + else + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_4; + } + else + { + if (lvlMode) + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_1; + else + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0; + } + break; + case 7: + if (VarGet(VAR_0x40CE) == 1) + { + if (lvlMode) + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_7; + else + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_6; + } + else + { + if (lvlMode) + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3; + else + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2; + } + break; + case 8: + sub_81B8558(); + gUnknown_0203CEF8[0] = gSaveBlock2Ptr->frontier.field_CB0; + gUnknown_0203CEF8[1] = gSaveBlock2Ptr->frontier.field_CB0 >> 8; + break; + case 9: + gSpecialVar_Result = (gSaveBlock2Ptr->frontier.field_D0A * 2) - 3 + gSaveBlock2Ptr->frontier.field_D0B; + break; + } +} + +void sub_818ED28(void) +{ + u32 lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; + u32 id = VarGet(VAR_0x40CE); + + switch (gSpecialVar_0x8005) + { + case 0: + gSaveBlock2Ptr->frontier.field_D0C[id][lvlMode] = gSpecialVar_0x8006; + break; + case 1: + if (gSpecialVar_0x8006) + gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860D0EC[id][lvlMode]; + else + gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860D0FC[id][lvlMode]; + break; + case 2: + gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006; + break; + case 3: + gSaveBlock2Ptr->frontier.field_D08_1 = gSpecialVar_0x8006; + break; + case 4: + gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006; + break; + case 5: + gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006; + break; + case 6: + if (VarGet(VAR_0x40CE) == 1) + { + if (lvlMode) + gSaveBlock2Ptr->frontier.field_D08_5 = gSpecialVar_0x8006; + else + gSaveBlock2Ptr->frontier.field_D08_4 = gSpecialVar_0x8006; + } + else + { + if (lvlMode) + gSaveBlock2Ptr->frontier.field_D08_1 = gSpecialVar_0x8006; + else + gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006; + } + break; + case 7: + if (VarGet(VAR_0x40CE) == 1) + { + if (lvlMode) + gSaveBlock2Ptr->frontier.field_D08_7 = gSpecialVar_0x8006; + else + gSaveBlock2Ptr->frontier.field_D08_6 = gSpecialVar_0x8006; + } + else + { + if (lvlMode) + gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006; + else + gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006; + } + break; + case 8: + gSaveBlock2Ptr->frontier.field_CB0 = T1_READ_16(gUnknown_0203CEF8); + break; + } +} + +#ifdef NONMATCHING +// Not even close, this function is insane. +void sub_818F02C(void) +{ + s32 i, j, k, l; + u32 array[16]; + u32 var_28; + u32 var_24; + s32 var_38; + s32 monTypesBits, monTypesCount; + u32 var_54 = 0; + u32 var_50 = 0; + u32 var_4C = 0; + u32 *var_40 = AllocZeroed(0x20); + u16 *var_44 = AllocZeroed(0x18); + u32 var_48; + + gSaveBlock2Ptr->frontier.field_D0A = gSaveBlock2Ptr->frontier.chosenLvl + 1; + gSaveBlock2Ptr->frontier.field_D0B = VarGet(VAR_0x40CE) + 1; + gSaveBlock2Ptr->frontier.field_D24[0].unk0 = 0x3FF; + gSaveBlock2Ptr->frontier.field_D24[0].unk1 = 0; + gSaveBlock2Ptr->frontier.field_D24[0].unk2 = 0; + gSaveBlock2Ptr->frontier.field_D24[0].unk3 = 0; + + for (i = 0; i < 3; i++) + { + gSaveBlock2Ptr->frontier.field_D64[i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1], MON_DATA_SPECIES, NULL); + for (j = 0; j < 4; j++) + gSaveBlock2Ptr->frontier.field_EFC[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1], MON_DATA_MOVE1 + j, NULL); + for (j = 0; j < 6; j++) + gSaveBlock2Ptr->frontier.field_EFC[i].evs[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1], MON_DATA_HP_EV + j, NULL); + + gSaveBlock2Ptr->frontier.field_EFC[i].nature = GetNature(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1]); + } + + var_28 = 4; + var_24 = 6; + for (l = j; l < 16; l++) + { + u16 val; + if (l > 5) + { + while (1) + { + val = sub_8162548(sub_81A39C4(), 0); + for (k = 1; k < l; k++) + { + if (gSaveBlock2Ptr->frontier.field_D24[k].unk0 == val) + break; + } + if (k != l) + { + gSaveBlock2Ptr->frontier.field_D24[var_28].unk0 = val; + break; + } + } + } + else + { + while (1) + { + val = sub_8162548(sub_81A39C4() + 1, 0); + for (k = 1; k < l; k++) + { + if (gSaveBlock2Ptr->frontier.field_D24[k].unk0 == val) + break; + } + if (k != l) + { + gSaveBlock2Ptr->frontier.field_D24[var_28].unk0 = val; + break; + } + } + } + + for (var_38 = 0; var_38 < 3; var_38++) + { + u16 val2; + do + { + val2 = sub_8163524(val); + for (i = 0; i < l; i++) + { + if (gSaveBlock2Ptr->frontier.field_D64[i] == val2) + break; + if (var_54 == gUnknown_0203BC8C[val2].field_0) + break; + if (var_50 == gUnknown_0203BC8C[val2].field_0) + break; + if (gUnknown_0203BC8C[gSaveBlock2Ptr->frontier.field_D64[i]].field_A == gUnknown_0203BC8C[val2].field_A) + break; + } + } while (i != var_38); + + gSaveBlock2Ptr->frontier.field_D64[var_24] = val2; + array[var_38] = gUnknown_0203BC8C[val2].field_0; + } + + gSaveBlock2Ptr->frontier.field_D24[var_28].unk1 = 0; + gSaveBlock2Ptr->frontier.field_D24[var_28].unk2 = 0; + gSaveBlock2Ptr->frontier.field_D24[var_28].unk3 = 0; + } + + for (i = 0; i < 3; i++) + { + struct Pokemon *mon = &gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1]; + var_44[0] += GetMonData(mon, MON_DATA_ATK, NULL); + var_44[0] += GetMonData(mon, MON_DATA_DEF, NULL); + var_44[0] += GetMonData(mon, MON_DATA_SPATK, NULL); + var_44[0] += GetMonData(mon, MON_DATA_SPDEF, NULL); + var_44[0] += GetMonData(mon, MON_DATA_SPEED, NULL); + var_44[0] += GetMonData(mon, MON_DATA_MAX_HP, NULL); + monTypesBits |= gBitTable[gBaseStats[GetMonData(mon, MON_DATA_SPECIES, NULL)].type1]; + monTypesBits |= gBitTable[gBaseStats[GetMonData(mon, MON_DATA_SPECIES, NULL)].type2]; + } + + for (monTypesCount = 0, i = 0; i < 31; i++) + { + if (monTypesBits & 1) + monTypesCount++; + monTypesBits >>= 1; + } + + var_48 = sub_8165C40(); + var_44[0] += (monTypesCount * var_48) / 20; + + for (i = 0; i < 16; i++) + { + u8 r8; + + var_44[i + 1] = 0; + r8 = sub_8190168(gSaveBlock2Ptr->frontier.field_D24[i].unk0); + for (j = 0; j < 3; j++) + { + sub_818F720(gSaveBlock2Ptr->frontier.field_D64[i]); + } + } + + Free(var_44); + Free(var_40); +} +#else +NAKED +void sub_818F02C(void) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x3C\n\ + movs r0, 0\n\ + str r0, [sp, 0x8]\n\ + str r0, [sp, 0xC]\n\ + str r0, [sp, 0x10]\n\ + movs r0, 0x20\n\ + bl AllocZeroed\n\ + str r0, [sp, 0x18]\n\ + movs r0, 0x18\n\ + bl AllocZeroed\n\ + str r0, [sp, 0x1C]\n\ + ldr r4, =gSaveBlock2Ptr\n\ + ldr r1, [r4]\n\ + ldr r2, =0x00000ca9\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + lsls r0, 30\n\ + lsrs r0, 30\n\ + adds r0, 0x1\n\ + ldr r3, =0x00000d0a\n\ + adds r1, r3\n\ + strb r0, [r1]\n\ + ldr r0, =0x000040ce\n\ + bl VarGet\n\ + ldr r1, [r4]\n\ + adds r0, 0x1\n\ + ldr r5, =0x00000d0b\n\ + adds r1, r5\n\ + strb r0, [r1]\n\ + ldr r2, [r4]\n\ + ldr r7, =0x00000d24\n\ + adds r3, r2, r7\n\ + ldrh r0, [r3]\n\ + ldr r5, =0x000003ff\n\ + adds r1, r5, 0\n\ + orrs r0, r1\n\ + strh r0, [r3]\n\ + ldr r3, =0x00000d25\n\ + adds r2, r3\n\ + ldrb r1, [r2]\n\ + movs r0, 0x5\n\ + negs r0, r0\n\ + ands r0, r1\n\ + strb r0, [r2]\n\ + ldr r1, [r4]\n\ + adds r1, r3\n\ + ldrb r2, [r1]\n\ + movs r0, 0x19\n\ + negs r0, r0\n\ + ands r0, r2\n\ + strb r0, [r1]\n\ + ldr r1, [r4]\n\ + adds r1, r3\n\ + ldrb r2, [r1]\n\ + movs r0, 0x1F\n\ + ands r0, r2\n\ + strb r0, [r1]\n\ + movs r7, 0\n\ + mov r10, r7\n\ + mov r8, r4\n\ + ldr r0, =gBattleScripting + 0x14\n\ + mov r9, r0\n\ + movs r4, 0\n\ +_0818F0BA:\n\ + mov r1, r8\n\ + ldr r0, [r1]\n\ + ldr r2, =0x00000caa\n\ + adds r0, r2\n\ + adds r0, r4\n\ + ldrh r0, [r0]\n\ + movs r3, 0x64\n\ + muls r0, r3\n\ + add r0, r9\n\ + movs r1, 0xB\n\ + movs r2, 0\n\ + bl GetMonData\n\ + mov r5, r8\n\ + ldr r1, [r5]\n\ + ldr r7, =0x00000d64\n\ + adds r1, r7\n\ + adds r1, r4\n\ + strh r0, [r1]\n\ + movs r5, 0\n\ + mov r0, r10\n\ + lsls r7, r0, 4\n\ + adds r6, r7, 0\n\ +_0818F0E8:\n\ + mov r1, r8\n\ + ldr r0, [r1]\n\ + ldr r2, =0x00000caa\n\ + adds r0, r2\n\ + adds r0, r4\n\ + ldrh r0, [r0]\n\ + movs r3, 0x64\n\ + muls r0, r3\n\ + add r0, r9\n\ + adds r1, r5, 0\n\ + adds r1, 0xD\n\ + movs r2, 0\n\ + bl GetMonData\n\ + mov r2, r8\n\ + ldr r1, [r2]\n\ + ldr r3, =0x00000efc\n\ + adds r1, r3\n\ + adds r1, r6\n\ + strh r0, [r1]\n\ + adds r6, 0x2\n\ + adds r5, 0x1\n\ + cmp r5, 0x3\n\ + ble _0818F0E8\n\ + movs r5, 0\n\ + ldr r6, =gSaveBlock2Ptr\n\ +_0818F11C:\n\ + ldr r0, [r6]\n\ + ldr r1, =0x00000caa\n\ + adds r0, r1\n\ + adds r0, r4\n\ + ldrh r0, [r0]\n\ + movs r2, 0x64\n\ + muls r0, r2\n\ + add r0, r9\n\ + adds r1, r5, 0\n\ + adds r1, 0x1A\n\ + movs r2, 0\n\ + bl GetMonData\n\ + ldr r1, [r6]\n\ + adds r2, r5, r7\n\ + ldr r3, =0x00000f04\n\ + adds r1, r3\n\ + adds r1, r2\n\ + strb r0, [r1]\n\ + adds r5, 0x1\n\ + cmp r5, 0x5\n\ + ble _0818F11C\n\ + mov r5, r8\n\ + ldr r0, [r5]\n\ + ldr r1, =0x00000caa\n\ + adds r0, r1\n\ + adds r0, r4\n\ + ldrh r0, [r0]\n\ + movs r2, 0x64\n\ + muls r0, r2\n\ + add r0, r9\n\ + bl GetNature\n\ + ldr r1, [r5]\n\ + adds r1, r7\n\ + ldr r3, =0x00000f0a\n\ + adds r1, r3\n\ + strb r0, [r1]\n\ + adds r4, 0x2\n\ + movs r5, 0x1\n\ + add r10, r5\n\ + mov r7, r10\n\ + cmp r7, 0x2\n\ + ble _0818F0BA\n\ + mov r10, r5\n\ + movs r0, 0x4\n\ + str r0, [sp, 0x34]\n\ + movs r1, 0x6\n\ + str r1, [sp, 0x38]\n\ +_0818F17E:\n\ + mov r2, r10\n\ + cmp r2, 0x5\n\ + ble _0818F22C\n\ +_0818F184:\n\ + bl sub_81A39C4\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + movs r1, 0\n\ + bl sub_8162548\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + movs r5, 0x1\n\ + cmp r5, r10\n\ + bge _0818F1CA\n\ + ldr r3, =gSaveBlock2Ptr\n\ + ldr r0, [r3]\n\ + ldr r7, =0x00000d28\n\ + adds r0, r7\n\ + ldrh r0, [r0]\n\ + lsls r0, 22\n\ + lsrs r0, 22\n\ + adds r2, r3, 0\n\ + cmp r0, r4\n\ + beq _0818F1CA\n\ + ldr r3, =0x00000d24\n\ +_0818F1B2:\n\ + adds r5, 0x1\n\ + cmp r5, r10\n\ + bge _0818F1CA\n\ + ldr r0, [r2]\n\ + lsls r1, r5, 2\n\ + adds r0, r1\n\ + adds r0, r3\n\ + ldrh r0, [r0]\n\ + lsls r0, 22\n\ + lsrs r0, 22\n\ + cmp r0, r4\n\ + bne _0818F1B2\n\ +_0818F1CA:\n\ + cmp r5, r10\n\ + bne _0818F184\n\ + ldr r0, =gSaveBlock2Ptr\n\ + ldr r3, [r0]\n\ + ldr r1, [sp, 0x34]\n\ + adds r3, r1\n\ + ldr r2, =0x00000d24\n\ + adds r3, r2\n\ + ldr r5, =0x000003ff\n\ + adds r0, r5, 0\n\ + adds r2, r4, 0\n\ + ands r2, r0\n\ + ldrh r0, [r3]\n\ + ldr r7, =0xfffffc00\n\ + adds r1, r7, 0\n\ + b _0818F292\n\ + .pool\n\ +_0818F22C:\n\ + bl sub_81A39C4\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + movs r1, 0\n\ + bl sub_8162548\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + movs r5, 0x1\n\ + cmp r5, r10\n\ + bge _0818F274\n\ + ldr r1, =gSaveBlock2Ptr\n\ + ldr r0, [r1]\n\ + ldr r2, =0x00000d28\n\ + adds r0, r2\n\ + ldrh r0, [r0]\n\ + lsls r0, 22\n\ + lsrs r0, 22\n\ + adds r2, r1, 0\n\ + cmp r0, r4\n\ + beq _0818F274\n\ + ldr r3, =0x00000d24\n\ +_0818F25C:\n\ + adds r5, 0x1\n\ + cmp r5, r10\n\ + bge _0818F274\n\ + ldr r0, [r2]\n\ + lsls r1, r5, 2\n\ + adds r0, r1\n\ + adds r0, r3\n\ + ldrh r0, [r0]\n\ + lsls r0, 22\n\ + lsrs r0, 22\n\ + cmp r0, r4\n\ + bne _0818F25C\n\ +_0818F274:\n\ + cmp r5, r10\n\ + bne _0818F22C\n\ + ldr r5, =gSaveBlock2Ptr\n\ + ldr r3, [r5]\n\ + ldr r7, [sp, 0x34]\n\ + adds r3, r7\n\ + ldr r0, =0x00000d24\n\ + adds r3, r0\n\ + ldr r1, =0x000003ff\n\ + adds r0, r1, 0\n\ + adds r2, r4, 0\n\ + ands r2, r0\n\ + ldrh r0, [r3]\n\ + ldr r5, =0xfffffc00\n\ + adds r1, r5, 0\n\ +_0818F292:\n\ + ands r0, r1\n\ + orrs r0, r2\n\ + strh r0, [r3]\n\ + movs r5, 0\n\ + lsls r4, 16\n\ + str r4, [sp, 0x2C]\n\ + ldr r7, [sp, 0x38]\n\ + str r7, [sp, 0x20]\n\ +_0818F2A2:\n\ + lsls r0, r5, 1\n\ + mov r9, r0\n\ + adds r1, r5, 0x1\n\ + str r1, [sp, 0x24]\n\ + lsls r2, r5, 2\n\ + str r2, [sp, 0x28]\n\ +_0818F2AE:\n\ + ldr r3, [sp, 0x2C]\n\ + lsrs r0, r3, 16\n\ + bl sub_8163524\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + movs r7, 0\n\ + cmp r7, r5\n\ + bge _0818F300\n\ + ldr r0, =gSaveBlock2Ptr\n\ + ldr r0, [r0]\n\ + ldr r1, [sp, 0x8]\n\ + mov r8, r1\n\ + ldr r2, [sp, 0xC]\n\ + mov r12, r2\n\ + ldr r3, =0x00000d64\n\ + adds r0, r3\n\ + ldr r1, [sp, 0x20]\n\ + adds r4, r1, r0\n\ +_0818F2D4:\n\ + ldrh r3, [r4]\n\ + cmp r3, r6\n\ + beq _0818F300\n\ + ldr r2, =gUnknown_0203BC8C\n\ + ldr r1, [r2]\n\ + lsls r0, r6, 4\n\ + adds r2, r0, r1\n\ + ldrh r0, [r2]\n\ + cmp r8, r0\n\ + beq _0818F300\n\ + cmp r12, r0\n\ + beq _0818F300\n\ + lsls r0, r3, 4\n\ + adds r0, r1\n\ + ldrb r0, [r0, 0xA]\n\ + ldrb r2, [r2, 0xA]\n\ + cmp r0, r2\n\ + beq _0818F300\n\ + adds r4, 0x2\n\ + adds r7, 0x1\n\ + cmp r7, r5\n\ + blt _0818F2D4\n\ +_0818F300:\n\ + cmp r7, r5\n\ + bne _0818F2AE\n\ + ldr r3, =gSaveBlock2Ptr\n\ + ldr r0, [r3]\n\ + ldr r1, [sp, 0x38]\n\ + add r1, r9\n\ + ldr r5, =0x00000d64\n\ + adds r0, r5\n\ + adds r0, r1\n\ + strh r6, [r0]\n\ + ldr r2, [sp, 0x28]\n\ + add r2, sp\n\ + adds r2, 0x8\n\ + ldr r0, =gUnknown_0203BC8C\n\ + ldr r1, [r0]\n\ + lsls r0, r6, 4\n\ + adds r0, r1\n\ + ldrh r0, [r0]\n\ + str r0, [r2]\n\ + ldr r5, [sp, 0x24]\n\ + cmp r5, 0x2\n\ + ble _0818F2A2\n\ + ldr r2, [r3]\n\ + ldr r7, [sp, 0x34]\n\ + adds r2, r7\n\ + ldr r0, =0x00000d25\n\ + adds r2, r0\n\ + ldrb r0, [r2]\n\ + movs r3, 0x5\n\ + negs r3, r3\n\ + adds r1, r3, 0\n\ + ands r0, r1\n\ + strb r0, [r2]\n\ + ldr r5, =gSaveBlock2Ptr\n\ + ldr r2, [r5]\n\ + adds r2, r7\n\ + ldr r7, =0x00000d25\n\ + adds r2, r7\n\ + ldrb r0, [r2]\n\ + subs r3, 0x14\n\ + adds r1, r3, 0\n\ + ands r0, r1\n\ + strb r0, [r2]\n\ + ldr r1, [r5]\n\ + ldr r5, [sp, 0x34]\n\ + adds r1, r5\n\ + adds r1, r7\n\ + ldrb r2, [r1]\n\ + movs r0, 0x1F\n\ + ands r0, r2\n\ + strb r0, [r1]\n\ + adds r5, 0x4\n\ + str r5, [sp, 0x34]\n\ + ldr r7, [sp, 0x38]\n\ + adds r7, 0x6\n\ + str r7, [sp, 0x38]\n\ + movs r0, 0x1\n\ + add r10, r0\n\ + mov r1, r10\n\ + cmp r1, 0xF\n\ + bgt _0818F37C\n\ + b _0818F17E\n\ +_0818F37C:\n\ + movs r7, 0\n\ + ldr r2, [sp, 0x18]\n\ + strh r7, [r2]\n\ + movs r3, 0\n\ + mov r10, r3\n\ + ldr r6, =gBitTable\n\ + ldr r5, =gBaseStats\n\ +_0818F38A:\n\ + ldr r0, =gSaveBlock2Ptr\n\ + ldr r0, [r0]\n\ + mov r2, r10\n\ + lsls r1, r2, 1\n\ + ldr r3, =0x00000caa\n\ + adds r0, r3\n\ + adds r0, r1\n\ + ldrh r0, [r0]\n\ + subs r4, r0, 0x1\n\ + movs r0, 0x64\n\ + muls r4, r0\n\ + ldr r0, =gPlayerParty\n\ + adds r4, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0x3B\n\ + movs r2, 0\n\ + bl GetMonData\n\ + ldr r2, [sp, 0x18]\n\ + ldrh r1, [r2]\n\ + adds r1, r0\n\ + strh r1, [r2]\n\ + adds r0, r4, 0\n\ + movs r1, 0x3C\n\ + movs r2, 0\n\ + bl GetMonData\n\ + ldr r3, [sp, 0x18]\n\ + ldrh r1, [r3]\n\ + adds r1, r0\n\ + strh r1, [r3]\n\ + adds r0, r4, 0\n\ + movs r1, 0x3E\n\ + movs r2, 0\n\ + bl GetMonData\n\ + ldr r2, [sp, 0x18]\n\ + ldrh r1, [r2]\n\ + adds r1, r0\n\ + strh r1, [r2]\n\ + adds r0, r4, 0\n\ + movs r1, 0x3F\n\ + movs r2, 0\n\ + bl GetMonData\n\ + ldr r3, [sp, 0x18]\n\ + ldrh r1, [r3]\n\ + adds r1, r0\n\ + strh r1, [r3]\n\ + adds r0, r4, 0\n\ + movs r1, 0x3D\n\ + movs r2, 0\n\ + bl GetMonData\n\ + ldr r2, [sp, 0x18]\n\ + ldrh r1, [r2]\n\ + adds r1, r0\n\ + strh r1, [r2]\n\ + adds r0, r4, 0\n\ + movs r1, 0x3A\n\ + movs r2, 0\n\ + bl GetMonData\n\ + ldr r3, [sp, 0x18]\n\ + ldrh r1, [r3]\n\ + adds r1, r0\n\ + strh r1, [r3]\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + movs r2, 0\n\ + bl GetMonData\n\ + lsls r1, r0, 3\n\ + subs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r5\n\ + ldrb r0, [r1, 0x6]\n\ + lsls r0, 2\n\ + adds r0, r6\n\ + ldr r0, [r0]\n\ + orrs r7, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + movs r2, 0\n\ + bl GetMonData\n\ + lsls r1, r0, 3\n\ + subs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r5\n\ + ldrb r0, [r1, 0x7]\n\ + lsls r0, 2\n\ + adds r0, r6\n\ + ldr r0, [r0]\n\ + orrs r7, r0\n\ + movs r0, 0x1\n\ + add r10, r0\n\ + mov r1, r10\n\ + cmp r1, 0x2\n\ + ble _0818F38A\n\ + movs r4, 0\n\ + movs r1, 0x1\n\ + movs r5, 0x1F\n\ +_0818F458:\n\ + adds r0, r7, 0\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0818F462\n\ + adds r4, 0x1\n\ +_0818F462:\n\ + asrs r7, 1\n\ + subs r5, 0x1\n\ + cmp r5, 0\n\ + bge _0818F458\n\ + bl sub_8165C40\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x14]\n\ + adds r2, r0, 0\n\ + adds r0, r4, 0\n\ + muls r0, r2\n\ + movs r1, 0x14\n\ + bl __divsi3\n\ + ldr r3, [sp, 0x18]\n\ + ldrh r1, [r3]\n\ + adds r1, r0\n\ + strh r1, [r3]\n\ + movs r5, 0x1\n\ + mov r10, r5\n\ + adds r6, r3, 0\n\ + adds r6, 0x2\n\ + movs r7, 0x2\n\ + str r7, [sp, 0x30]\n\ +_0818F494:\n\ + movs r7, 0\n\ + strh r7, [r6]\n\ + ldr r1, =gSaveBlock2Ptr\n\ + ldr r0, [r1]\n\ + mov r2, r10\n\ + lsls r1, r2, 2\n\ + adds r0, r1\n\ + ldr r3, =0x00000d24\n\ + adds r0, r3\n\ + ldrh r0, [r0]\n\ + lsls r0, 22\n\ + lsrs r0, 22\n\ + bl sub_8190168\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ + movs r5, 0\n\ + ldr r0, [sp, 0x30]\n\ + mov r9, r0\n\ +_0818F4BC:\n\ + ldr r1, =gSaveBlock2Ptr\n\ + ldr r0, [r1]\n\ + mov r4, r9\n\ + add r4, r10\n\ + adds r4, r5\n\ + lsls r4, 1\n\ + ldr r2, =0x00000d64\n\ + adds r0, r2\n\ + adds r0, r4\n\ + ldrh r1, [r0]\n\ + ldr r3, =gUnknown_0203BC8C\n\ + ldr r0, [r3]\n\ + lsls r1, 4\n\ + adds r1, r0\n\ + ldrh r0, [r1]\n\ + ldrb r3, [r1, 0xB]\n\ + ldrb r1, [r1, 0xC]\n\ + str r1, [sp]\n\ + ldr r1, [sp, 0x1C]\n\ + str r1, [sp, 0x4]\n\ + ldr r1, [sp, 0x14]\n\ + mov r2, r8\n\ + bl sub_818F720\n\ + ldr r2, [sp, 0x1C]\n\ + ldr r1, [r2, 0x4]\n\ + ldrh r0, [r6]\n\ + adds r0, r1\n\ + ldr r1, [r2, 0x8]\n\ + adds r0, r1\n\ + ldr r1, [r2, 0x10]\n\ + adds r0, r1\n\ + ldr r1, [r2, 0x14]\n\ + adds r0, r1\n\ + ldr r1, [r2, 0xC]\n\ + adds r0, r1\n\ + ldr r1, [r2]\n\ + adds r0, r1\n\ + strh r0, [r6]\n\ + ldr r3, =gSaveBlock2Ptr\n\ + ldr r0, [r3]\n\ + ldr r1, =0x00000d64\n\ + adds r0, r1\n\ + adds r0, r4\n\ + ldrh r0, [r0]\n\ + ldr r2, =gUnknown_0203BC8C\n\ + ldr r1, [r2]\n\ + lsls r0, 4\n\ + adds r0, r1\n\ + ldrh r0, [r0]\n\ + lsls r1, r0, 3\n\ + subs r1, r0\n\ + lsls r1, 2\n\ + ldr r3, =gBaseStats\n\ + adds r1, r3\n\ + ldrb r0, [r1, 0x6]\n\ + lsls r0, 2\n\ + ldr r2, =gBitTable\n\ + adds r0, r2\n\ + ldr r0, [r0]\n\ + orrs r7, r0\n\ + ldrb r0, [r1, 0x7]\n\ + lsls r0, 2\n\ + adds r0, r2\n\ + ldr r0, [r0]\n\ + orrs r7, r0\n\ + adds r5, 0x1\n\ + cmp r5, 0x2\n\ + ble _0818F4BC\n\ + movs r4, 0\n\ + movs r1, 0x1\n\ + movs r5, 0x1F\n\ +_0818F54C:\n\ + adds r0, r7, 0\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0818F556\n\ + adds r4, 0x1\n\ +_0818F556:\n\ + asrs r7, 1\n\ + subs r5, 0x1\n\ + cmp r5, 0\n\ + bge _0818F54C\n\ + ldr r3, [sp, 0x14]\n\ + adds r0, r4, 0\n\ + muls r0, r3\n\ + movs r1, 0x14\n\ + bl __divsi3\n\ + ldrh r1, [r6]\n\ + adds r1, r0\n\ + strh r1, [r6]\n\ + adds r6, 0x2\n\ + ldr r5, [sp, 0x30]\n\ + adds r5, 0x2\n\ + str r5, [sp, 0x30]\n\ + movs r7, 0x1\n\ + add r10, r7\n\ + mov r0, r10\n\ + cmp r0, 0xF\n\ + ble _0818F494\n\ + movs r1, 0\n\ + mov r10, r1\n\ + ldr r2, =0x000003ff\n\ + mov r8, r2\n\ +_0818F58A:\n\ + mov r5, r10\n\ + adds r5, 0x1\n\ + adds r7, r5, 0\n\ + cmp r5, 0xF\n\ + bgt _0818F626\n\ + mov r3, r10\n\ + lsls r0, r3, 1\n\ + ldr r1, [sp, 0x18]\n\ + adds r6, r0, r1\n\ + lsls r0, r5, 1\n\ + adds r4, r0, r1\n\ +_0818F5A0:\n\ + ldrh r1, [r6]\n\ + ldrh r0, [r4]\n\ + cmp r1, r0\n\ + bcc _0818F5C2\n\ + cmp r1, r0\n\ + bne _0818F61E\n\ + ldr r0, =gSaveBlock2Ptr\n\ + ldr r1, [r0]\n\ + lsls r0, r5, 2\n\ + adds r0, r1, r0\n\ + ldr r2, =0x00000d24\n\ + adds r0, r2\n\ + ldrh r0, [r0]\n\ + lsls r2, r0, 22\n\ + lsrs r0, r2, 22\n\ + cmp r0, r8\n\ + bne _0818F602\n\ +_0818F5C2:\n\ + mov r0, r10\n\ + adds r1, r5, 0\n\ + ldr r2, [sp, 0x18]\n\ + bl sub_818F904\n\ + b _0818F600\n\ + .pool\n\ +_0818F600:\n\ + b _0818F61E\n\ +_0818F602:\n\ + mov r3, r10\n\ + lsls r0, r3, 2\n\ + adds r0, r1, r0\n\ + ldr r1, =0x00000d24\n\ + adds r0, r1\n\ + ldrh r0, [r0]\n\ + lsls r0, 22\n\ + cmp r0, r2\n\ + bls _0818F61E\n\ + mov r0, r10\n\ + adds r1, r5, 0\n\ + ldr r2, [sp, 0x18]\n\ + bl sub_818F904\n\ +_0818F61E:\n\ + adds r4, 0x2\n\ + adds r5, 0x1\n\ + cmp r5, 0xF\n\ + ble _0818F5A0\n\ +_0818F626:\n\ + mov r10, r7\n\ + mov r2, r10\n\ + cmp r2, 0xE\n\ + ble _0818F58A\n\ + bl sub_81A3610\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0818F6EE\n\ + movs r3, 0\n\ + mov r10, r3\n\ + ldr r0, =gSaveBlock2Ptr\n\ + ldr r1, [r0]\n\ + ldr r4, =0x00000d24\n\ + adds r1, r4\n\ + ldrh r1, [r1]\n\ + lsls r1, 22\n\ + lsrs r1, 22\n\ + ldr r3, =0x000003ff\n\ + adds r2, r0, 0\n\ + ldr r6, =gUnknown_0860D3F1\n\ + cmp r1, r3\n\ + beq _0818F674\n\ + adds r5, r2, 0\n\ +_0818F656:\n\ + movs r7, 0x1\n\ + add r10, r7\n\ + mov r0, r10\n\ + cmp r0, 0xF\n\ + bgt _0818F674\n\ + ldr r0, [r5]\n\ + mov r7, r10\n\ + lsls r1, r7, 2\n\ + adds r0, r1\n\ + adds r0, r4\n\ + ldrh r0, [r0]\n\ + lsls r0, 22\n\ + lsrs r0, 22\n\ + cmp r0, r3\n\ + bne _0818F656\n\ +_0818F674:\n\ + mov r1, r10\n\ + lsls r0, r1, 1\n\ + adds r0, r6\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _0818F6AC\n\ + movs r5, 0\n\ + ldr r2, [r2]\n\ + ldr r3, =0x00000d24\n\ + adds r2, r3\n\ + ldrh r1, [r2]\n\ + ldr r0, =0xfffffc00\n\ + ands r0, r1\n\ + ldr r7, =0x000003fe\n\ + adds r1, r7, 0\n\ + b _0818F6BE\n\ + .pool\n\ +_0818F6AC:\n\ + movs r5, 0x1\n\ + ldr r2, [r2]\n\ + ldr r0, =0x00000d28\n\ + adds r2, r0\n\ + ldrh r1, [r2]\n\ + ldr r0, =0xfffffc00\n\ + ands r0, r1\n\ + ldr r3, =0x000003fe\n\ + adds r1, r3, 0\n\ +_0818F6BE:\n\ + orrs r0, r1\n\ + strh r0, [r2]\n\ + movs r7, 0\n\ + mov r10, r7\n\ + lsls r0, r5, 1\n\ + adds r0, r5\n\ + lsls r4, r0, 1\n\ +_0818F6CC:\n\ + mov r1, r10\n\ + lsls r0, r1, 24\n\ + lsrs r0, 24\n\ + bl sub_81A4FF0\n\ + ldr r1, =gSaveBlock2Ptr\n\ + ldr r1, [r1]\n\ + ldr r2, =0x00000d64\n\ + adds r1, r2\n\ + adds r1, r4\n\ + strh r0, [r1]\n\ + adds r4, 0x2\n\ + movs r3, 0x1\n\ + add r10, r3\n\ + mov r5, r10\n\ + cmp r5, 0x2\n\ + ble _0818F6CC\n\ +_0818F6EE:\n\ + ldr r0, [sp, 0x18]\n\ + bl Free\n\ + ldr r0, [sp, 0x1C]\n\ + bl Free\n\ + add sp, 0x3C\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\ +\n\ + "); +} +#endif // NONMATCHING + +#define CALC_STAT(base, statIndex) \ +{ \ + u8 baseStat = gBaseStats[species].base; \ + stats[statIndex] = (((2 * baseStat + ivs + evs[statIndex] / 4) * level) / 100) + 5; \ + stats[statIndex] = (u8) ModifyStatByNature(nature, stats[statIndex], statIndex); \ +} + +void sub_818F720(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats) +{ + s32 i, count; + u8 bits; + u16 resultingEvs; + s32 evs[6]; + + count = 0, bits = evBits; + for (i = 0; i < 6; bits >>= 1, i++) + { + if (bits & 1) + count++; + } + + resultingEvs = 510 / count; + for (i = 0; i < 6; bits <<= 1, i++) + { + evs[i] = 0; + if (evBits & bits) + evs[i] = resultingEvs; + } + + if (species == SPECIES_SHEDINJA) + { + stats[STAT_HP] = 1; + } + else + { + s32 n = 2 * gBaseStats[species].baseHP; + stats[STAT_HP] = (((n + ivs + evs[STAT_HP] / 4) * level) / 100) + level + 10; + } + + CALC_STAT(baseAttack, STAT_ATK); + CALC_STAT(baseDefense, STAT_DEF); + CALC_STAT(baseSpeed, STAT_SPEED); + CALC_STAT(baseSpAttack, STAT_SPATK); + CALC_STAT(baseSpDefense, STAT_SPDEF); +} + +#define SWAP_16(x, y) \ +{ \ + temp = x; \ + x = y; \ + y = temp; \ +} + +void sub_818F904(s32 id1, s32 id2, u16 *dst) +{ + s32 i; + u16 temp; + + SWAP_16(dst[id1], dst[id2]); + SWAP_16(gSaveBlock2Ptr->frontier.field_D24[id1].unk0, gSaveBlock2Ptr->frontier.field_D24[id2].unk0); + + for (i = 0; i < 3; i++) + SWAP_16(gSaveBlock2Ptr->frontier.field_D64[id1][i], gSaveBlock2Ptr->frontier.field_D64[id2][i]); +} From ac3f4fd99475912ce52fb88be76a0809d9b6fbed Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 15 Aug 2018 11:47:10 -0700 Subject: [PATCH 109/174] Continue documentation and cleanup of pokemon_summary_screen --- data/text/nature_names.inc | 102 -------------- include/pokemon_summary_screen.h | 8 ++ src/pokemon.c | 6 +- src/pokemon_summary_screen.c | 226 ++++++++++++++++--------------- 4 files changed, 127 insertions(+), 215 deletions(-) delete mode 100644 data/text/nature_names.inc diff --git a/data/text/nature_names.inc b/data/text/nature_names.inc deleted file mode 100644 index 31e2876e23..0000000000 --- a/data/text/nature_names.inc +++ /dev/null @@ -1,102 +0,0 @@ -gHardyNatureName:: @ 861CAAC - .string "HARDY$" - -gLonelyNatureName:: @ 861CAB2 - .string "LONELY$" - -gBraveNatureName:: @ 861CAB9 - .string "BRAVE$" - -gAdamantNatureName:: @ 861CABF - .string "ADAMANT$" - -gNaughtyNatureName:: @ 861CAC7 - .string "NAUGHTY$" - -gBoldNatureName:: @ 861CACF - .string "BOLD$" - -gDocileNatureName:: @ 861CAD4 - .string "DOCILE$" - -gRelaxedNatureName:: @ 861CADB - .string "RELAXED$" - -gImpishNatureName:: @ 861CAE3 - .string "IMPISH$" - -gLaxNatureName:: @ 861CAEA - .string "LAX$" - -gTimidNatureName:: @ 861CAEE - .string "TIMID$" - -gHastyNatureName:: @ 861CAF4 - .string "HASTY$" - -gSeriousNatureName:: @ 861CAFA - .string "SERIOUS$" - -gJollyNatureName:: @ 861CB02 - .string "JOLLY$" - -gNaiveNatureName:: @ 861CB08 - .string "NAIVE$" - -gModestNatureName:: @ 861CB0E - .string "MODEST$" - -gMildNatureName:: @ 861CB15 - .string "MILD$" - -gQuietNatureName:: @ 861CB1A - .string "QUIET$" - -gBashfulNatureName:: @ 861CB20 - .string "BASHFUL$" - -gRashNatureName:: @ 861CB28 - .string "RASH$" - -gCalmNatureName:: @ 861CB2D - .string "CALM$" - -gGentleNatureName:: @ 861CB32 - .string "GENTLE$" - -gSassyNatureName:: @ 861CB39 - .string "SASSY$" - -gCarefulNatureName:: @ 861CB3F - .string "CAREFUL$" - -gQuirkyNatureName:: @ 861CB47 - .string "QUIRKY$" - - .align 2 -gNatureNamePointers:: @ 861CB50 - .4byte gHardyNatureName - .4byte gLonelyNatureName - .4byte gBraveNatureName - .4byte gAdamantNatureName - .4byte gNaughtyNatureName - .4byte gBoldNatureName - .4byte gDocileNatureName - .4byte gRelaxedNatureName - .4byte gImpishNatureName - .4byte gLaxNatureName - .4byte gTimidNatureName - .4byte gHastyNatureName - .4byte gSeriousNatureName - .4byte gJollyNatureName - .4byte gNaiveNatureName - .4byte gModestNatureName - .4byte gMildNatureName - .4byte gQuietNatureName - .4byte gBashfulNatureName - .4byte gRashNatureName - .4byte gCalmNatureName - .4byte gGentleNatureName - .4byte gSassyNatureName - .4byte gCarefulNatureName - .4byte gQuirkyNatureName diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 51175a36a0..3d3b6f0e33 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -14,4 +14,12 @@ enum PokemonSummaryScreenMode PSS_MODE_SELECT_MOVE, }; +enum PokemonSummaryScreenPage +{ + PSS_PAGE_INFO, + PSS_PAGE_SKILLS, + PSS_PAGE_BATTLE_MOVES, + PSS_PAGE_CONTEST_MOVES, +}; + #endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/src/pokemon.c b/src/pokemon.c index 7c010cd391..76eaf65e3b 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -89,7 +89,7 @@ extern u8 GetTrainerEncounterMusicIdInBattlePyramind(u16 trainerOpponentId); extern u8 sub_81D63C8(u16 trainerOpponentId); extern u8 GetFrontierOpponentClass(u16 trainerId); extern void GetFrontierTrainerName(u8* dest, u16 trainerId); -extern void sub_81C488C(u8); +extern void SummaryScreen_SetUnknownTaskId(u8); // this file's functions static u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon); @@ -5723,7 +5723,7 @@ static void Task_PokemonSummaryAnimateAfterDelay(u8 taskId) if (--gTasks[taskId].data[3] == 0) { StartMonSummaryAnimation(READ_PTR_FROM_TASK(taskId, 0), gTasks[taskId].data[2]); - sub_81C488C(0xFF); + SummaryScreen_SetUnknownTaskId(0xFF); DestroyTask(taskId); } } @@ -5790,7 +5790,7 @@ void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneF STORE_PTR_IN_TASK(sprite, taskId, 0); gTasks[taskId].data[2] = sMonFrontAnimIdsTable[species - 1]; gTasks[taskId].data[3] = sMonAnimationDelayTable[species - 1]; - sub_81C488C(taskId); + SummaryScreen_SetUnknownTaskId(taskId); SetSpriteCB_MonAnimDummy(sprite); } else diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 347f382859..ef55129f49 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -87,10 +87,7 @@ static EWRAM_DATA struct UnkSummaryStruct u8 unk3E[9]; // 0x3E u32 OTID; // 0x48 } summary; - u16 bgTilemapBuffer1[0x800]; - u16 bgTilemapBuffer2[0x800]; - u16 bgTilemapBuffer3[0x800]; - u16 bgTilemapBuffer4[0x800]; + u16 bgTilemapBuffers[4][2][0x400]; u8 mode; bool8 isBoxMon; u8 curMonIndex; @@ -114,7 +111,7 @@ static EWRAM_DATA struct UnkSummaryStruct EWRAM_DATA u8 gUnknown_0203CF20 = 0; static EWRAM_DATA u8 gUnknown_0203CF21 = 0; static EWRAM_DATA u8 gFiller_0203CF22[2] = {0}; -static EWRAM_DATA u8 sUnusedTaskId = 0; +static EWRAM_DATA u8 sUnknownTaskId = 0; static EWRAM_DATA u8 gFiller_0203CF25[3] = {0}; extern const struct CompressedSpriteSheet gMonFrontPicTable[]; @@ -131,8 +128,8 @@ struct UnkStruct_61CC04 // forward declarations bool8 sub_81B1250(void); -bool8 sub_81BFB10(void); -void sub_81BFAE4(void); +static bool8 SummaryScreen_LoadGraphics(void); +static void SummaryScreen_LoadingCB2(void); static void InitBGs(void); u8 sub_81BFEB0(void); void CopyMonToSummaryStruct(struct Pokemon* a); @@ -183,10 +180,10 @@ void sub_81C25E8(void); void sub_81C2628(void); void sub_81C2794(void); void sub_81C27DC(struct Pokemon *mon, u16 a); -void PrintRentalMonStatsPage(void); +static void PrintPageNamesAndStatsPage(void); void sub_81C2AFC(u8 a); void sub_81C2C38(u8 a); -void sub_81C2D68(u8 a); +void SummaryScreen_RemoveWindowByIndex(u8 a); void sub_81C2D9C(u8 a); void sub_81C2DE4(u8 a); void sub_81C2E00(void); @@ -220,8 +217,8 @@ void sub_81C39F0(u8 taskId); void PrintMoveNameAndPP(u8 a); void sub_81C3D08(void); void sub_81C3D54(u8 taskId); -void sub_81C3E2C(u8 a); -void sub_81C3E9C(u16 a); +void PrintContestMoveDescription(u8 a); +void PrintMoveDetails(u16 a); void PrintNewMoveDetailsOrCancelText(void); void sub_81C4064(void); void sub_81C40A0(u8 a, u8 b); @@ -239,13 +236,13 @@ void sub_81C4568(u8 a, u8 b); u8 sub_81C45F4(struct Pokemon *a, s16 *b); u8 sub_81C47B4(struct Pokemon *unused); void sub_81C4844(struct Sprite *); -void sub_81C488C(u8 a); -void DestoryUnusedTask(void); +void SummaryScreen_SetUnknownTaskId(u8 a); +void SummaryScreen_DestroyUnknownTask(void); void sub_81C48F0(void); -void sub_81C4984(struct Pokemon *mon); -void sub_81C49E0(struct Pokemon *mon); -void sub_81C4A08(struct Pokemon *mon); -void sub_81C4A88(void); +void CreateMonMarkingsSprite(struct Pokemon *mon); +void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon); +void CreateCaughtBallSprite(struct Pokemon *mon); +void CreateSetStatusSprite(void); void sub_81C4AF8(u8 a); void sub_81C4BE4(struct Sprite *sprite); void sub_81C4C60(u8 a); @@ -635,7 +632,7 @@ static const struct SpriteTemplate gUnknown_0861D084 = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; - const struct OamData gOamData_861D09C = +static const struct OamData gOamData_861D09C = { .y = 0, .affineMode = 0, @@ -679,7 +676,7 @@ static const union AnimCmd gSpriteAnim_861D0D4[] = { ANIMCMD_FRAME(24, 0, FALSE, FALSE), ANIMCMD_END }; - const union AnimCmd *const gSpriteAnimTable_861D0DC[] = { +static const union AnimCmd *const gSpriteAnimTable_861D0DC[] = { gSpriteAnim_861D0A4, gSpriteAnim_861D0AC, gSpriteAnim_861D0B4, @@ -746,12 +743,12 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, } gUnknown_0203CF1C->currPageIndex = gUnknown_0203CF1C->minPageIndex; - sub_81C488C(-1); + SummaryScreen_SetUnknownTaskId(-1); if (gMonSpritesGfxPtr == 0) sub_806F2AC(0, 0); - SetMainCallback2(sub_81BFAE4); + SetMainCallback2(SummaryScreen_LoadingCB2); } void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void), u16 newMove) @@ -766,7 +763,7 @@ void ShowPokemonSummaryScreenSet40EF(u8 mode, struct BoxPokemon *mons, u8 monInd gUnknown_0203CF1C->unk40EF = TRUE; } -void sub_81BFAB4(void) +static void SummaryScreen_MainCB2(void) { RunTasks(); AnimateSprites(); @@ -775,19 +772,19 @@ void sub_81BFAB4(void) UpdatePaletteFade(); } -void sub_81BFAD0(void) +static void SummaryScreen_VBlank(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void sub_81BFAE4(void) +static void SummaryScreen_LoadingCB2(void) { - while (sub_81221EC() != TRUE && sub_81BFB10() != TRUE && sub_81221AC() != TRUE); + while (sub_81221EC() != TRUE && SummaryScreen_LoadGraphics() != TRUE && sub_81221AC() != TRUE); } -bool8 sub_81BFB10(void) +static bool8 SummaryScreen_LoadGraphics(void) { switch (gMain.state) { @@ -845,7 +842,7 @@ bool8 sub_81BFB10(void) gMain.state++; break; case 12: - PrintRentalMonStatsPage(); + PrintPageNamesAndStatsPage(); gMain.state++; break; case 13: @@ -875,15 +872,15 @@ bool8 sub_81BFB10(void) } break; case 18: - sub_81C4984(&gUnknown_0203CF1C->currentMon); + CreateMonMarkingsSprite(&gUnknown_0203CF1C->currentMon); gMain.state++; break; case 19: - sub_81C4A08(&gUnknown_0203CF1C->currentMon); + CreateCaughtBallSprite(&gUnknown_0203CF1C->currentMon); gMain.state++; break; case 20: - sub_81C4A88(); + CreateSetStatusSprite(); gMain.state++; break; case 21: @@ -907,8 +904,8 @@ bool8 sub_81BFB10(void) gMain.state++; break; default: - SetVBlankCallback(sub_81BFAD0); - SetMainCallback2(sub_81BFAB4); + SetVBlankCallback(SummaryScreen_VBlank); + SetMainCallback2(SummaryScreen_MainCB2); return TRUE; } return FALSE; @@ -918,9 +915,9 @@ static void InitBGs(void) { ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gUnknown_0861CBB4, ARRAY_COUNT(gUnknown_0861CBB4)); - SetBgTilemapBuffer(1, &gUnknown_0203CF1C->bgTilemapBuffer3); - SetBgTilemapBuffer(2, &gUnknown_0203CF1C->bgTilemapBuffer2); - SetBgTilemapBuffer(3, &gUnknown_0203CF1C->bgTilemapBuffer1); + SetBgTilemapBuffer(1, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); + SetBgTilemapBuffer(2, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_SKILLS][0]); + SetBgTilemapBuffer(3, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0]); ResetAllBgsCoordinates(); schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); @@ -945,24 +942,24 @@ bool8 sub_81BFEB0(void) case 1: if (free_temp_tile_data_buffers_if_possible() != 1) { - LZDecompressWram(&gUnknown_08D9862C, &gUnknown_0203CF1C->bgTilemapBuffer1[0]); + LZDecompressWram(&gUnknown_08D9862C, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0]); gUnknown_0203CF1C->unk40F0++; } break; case 2: - LZDecompressWram(&gUnknown_08D98CC8, &gUnknown_0203CF1C->bgTilemapBuffer1[0x400]); + LZDecompressWram(&gUnknown_08D98CC8, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][1]); gUnknown_0203CF1C->unk40F0++; break; case 3: - LZDecompressWram(&gUnknown_08D987FC, &gUnknown_0203CF1C->bgTilemapBuffer2[0x400]); + LZDecompressWram(&gUnknown_08D987FC, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_SKILLS][1]); gUnknown_0203CF1C->unk40F0++; break; case 4: - LZDecompressWram(&gUnknown_08D9898C, &gUnknown_0203CF1C->bgTilemapBuffer3[0x400]); + LZDecompressWram(&gUnknown_08D9898C, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][1]); gUnknown_0203CF1C->unk40F0++; break; case 5: - LZDecompressWram(&gUnknown_08D98B28, &gUnknown_0203CF1C->bgTilemapBuffer4[0x400]); + LZDecompressWram(&gUnknown_08D98B28, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]); gUnknown_0203CF1C->unk40F0++; break; case 6: @@ -1087,7 +1084,7 @@ bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a) void sub_81C0348(void) { - if (gUnknown_0203CF1C->currPageIndex != 2 && gUnknown_0203CF1C->currPageIndex != 3) + if (gUnknown_0203CF1C->currPageIndex != PSS_PAGE_BATTLE_MOVES && gUnknown_0203CF1C->currPageIndex != PSS_PAGE_CONTEST_MOVES) { sub_81C1DA4(0, 255); sub_81C1EFC(0, 255, 0); @@ -1095,10 +1092,10 @@ void sub_81C0348(void) else { sub_81C240C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]); - sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer3[0], 3, 0); - sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer4[0], 1, 0); - SetBgTilemapBuffer(1, &gUnknown_0203CF1C->bgTilemapBuffer4); - SetBgTilemapBuffer(2, &gUnknown_0203CF1C->bgTilemapBuffer3); + sub_81C2194(gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); + sub_81C2194(gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); + SetBgTilemapBuffer(1, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0]); + SetBgTilemapBuffer(2, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); ChangeBgX(2, 0x10000, 1); ClearWindowTilemap(19); ClearWindowTilemap(13); @@ -1109,7 +1106,7 @@ void sub_81C0348(void) } else { - if (gUnknown_0203CF1C->currPageIndex != 2 && gUnknown_0203CF1C->currPageIndex != 3) + if (gUnknown_0203CF1C->currPageIndex != PSS_PAGE_BATTLE_MOVES && gUnknown_0203CF1C->currPageIndex != PSS_PAGE_CONTEST_MOVES) PutWindowTilemap(13); } sub_81C2524(); @@ -1134,7 +1131,7 @@ void sub_81C0484(u8 taskId) { SetMainCallback2(gUnknown_0203CF1C->callback); gUnknown_0203CF20 = gUnknown_0203CF1C->curMonIndex; - DestoryUnusedTask(); + SummaryScreen_DestroyUnknownTask(); ResetSpriteData(); FreeAllSpritePalettes(); StopCryAndClearCrySongs(); @@ -1168,9 +1165,9 @@ void sub_81C0510(u8 taskId) } else if (gMain.newKeys & A_BUTTON) { - if (gUnknown_0203CF1C->currPageIndex != 1) + if (gUnknown_0203CF1C->currPageIndex != PSS_PAGE_SKILLS) { - if (gUnknown_0203CF1C->currPageIndex == 0) + if (gUnknown_0203CF1C->currPageIndex == PSS_PAGE_INFO) { sub_81C48F0(); PlaySE(SE_SELECT); @@ -1200,7 +1197,7 @@ void sub_81C0604(u8 taskId, s8 a) { if (gUnknown_0203CF1C->isBoxMon == TRUE) { - if (gUnknown_0203CF1C->currPageIndex != 0) + if (gUnknown_0203CF1C->currPageIndex != PSS_PAGE_INFO) { if (a == 1) a = 0; @@ -1252,7 +1249,7 @@ void sub_81C0704(u8 taskId) StopCryAndClearCrySongs(); break; case 1: - DestoryUnusedTask(); + SummaryScreen_DestroyUnknownTask(); DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->spriteIds[0]]); break; case 2: @@ -1267,10 +1264,10 @@ void sub_81C0704(u8 taskId) return; break; case 5: - sub_81C49E0(&gUnknown_0203CF1C->currentMon); + RemoveAndCreateMonMarkingsSprite(&gUnknown_0203CF1C->currentMon); break; case 6: - sub_81C4A08(&gUnknown_0203CF1C->currentMon); + CreateCaughtBallSprite(&gUnknown_0203CF1C->currentMon); break; case 7: if (gUnknown_0203CF1C->summary.unk7) @@ -1314,13 +1311,14 @@ s8 sub_81C08F8(s8 a) { struct Pokemon *mon = gUnknown_0203CF1C->monList.mons; - if (gUnknown_0203CF1C->currPageIndex == 0) + if (gUnknown_0203CF1C->currPageIndex == PSS_PAGE_INFO) { if (a == -1 && gUnknown_0203CF1C->curMonIndex == 0) return -1; - if (a == 1 && gUnknown_0203CF1C->curMonIndex >= gUnknown_0203CF1C->maxMonIndex) + else if (a == 1 && gUnknown_0203CF1C->curMonIndex >= gUnknown_0203CF1C->maxMonIndex) return -1; - return gUnknown_0203CF1C->curMonIndex + a; + else + return gUnknown_0203CF1C->curMonIndex + a; } else { @@ -1419,7 +1417,7 @@ void sub_81C0B8C(u8 taskId) schedule_bg_copy_tilemap_to_vram(2); } ChangeBgX(data[1], 0, 0); - SetBgTilemapBuffer(data[1], (u8*)gUnknown_0203CF1C + ((gUnknown_0203CF1C->currPageIndex << 12) + 0xBC)); + SetBgTilemapBuffer(data[1], gUnknown_0203CF1C->bgTilemapBuffers[gUnknown_0203CF1C->currPageIndex][0]); ShowBg(1); ShowBg(2); } @@ -1512,9 +1510,9 @@ void sub_81C0E48(u8 taskId) ClearWindowTilemap(5); PutWindowTilemap(6); } - sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer3[0], 3, 0); - sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer4[0], 1, 0); - sub_81C3E9C(move); + sub_81C2194(gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); + sub_81C2194(gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); + PrintMoveDetails(move); PrintNewMoveDetailsOrCancelText(); sub_81C44F0(); schedule_bg_copy_tilemap_to_vram(0); @@ -1605,7 +1603,7 @@ void sub_81C1070(s16 *a, s8 b, u8 *c) sub_81C240C(move); schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); - sub_81C3E9C(move); + PrintMoveDetails(move); if ((*c == 4 && gUnknown_0203CF1C->newMove == MOVE_NONE) || a[1] == 1) { ClearWindowTilemap(19); @@ -1635,9 +1633,9 @@ void sub_81C11F4(u8 taskId) sub_81C4C60(8); ClearWindowTilemap(6); PutWindowTilemap(5); - sub_81C3E9C(0); - sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer3[0], 3, 1); - sub_81C2194(&gUnknown_0203CF1C->bgTilemapBuffer4[0], 1, 1); + PrintMoveDetails(0); + sub_81C2194(gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 1); + sub_81C2194(gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 1); sub_81C4064(); if (gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) { @@ -1721,7 +1719,7 @@ void sub_81C13B0(u8 taskId, bool8 b) } move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; - sub_81C3E9C(move); + PrintMoveDetails(move); sub_81C240C(move); schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); @@ -2288,7 +2286,7 @@ void sub_81C1940(u8 taskId) if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) ClearWindowTilemap(13); move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; - sub_81C3E9C(move); + PrintMoveDetails(move); schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(9, -3); sub_81C1EFC(9, -3, move); @@ -2402,7 +2400,7 @@ void sub_81C1DA4(u16 a, s16 b) b = gUnknown_0861CC04.field_6; if (b == 0 || b == gUnknown_0861CC04.field_6) { - sub_81C1CB0(&gUnknown_0861CC04, &gUnknown_0203CF1C->bgTilemapBuffer3[0], b, 1); + sub_81C1CB0(&gUnknown_0861CC04, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], b, 1); } else { @@ -2428,7 +2426,7 @@ void sub_81C1E20(u8 taskId) { data[1] = gUnknown_0861CC04.field_6; } - sub_81C1CB0(&gUnknown_0861CC04, &gUnknown_0203CF1C->bgTilemapBuffer3[0], data[1], 1); + sub_81C1CB0(&gUnknown_0861CC04, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], data[1], 1); if (data[1] <= 0 || data[1] >= gUnknown_0861CC04.field_6) { if (data[0] < 0) @@ -2454,7 +2452,7 @@ void sub_81C1EFC(u16 a, s16 b, u16 move) if (b > gUnknown_0861CC10.field_6) b = gUnknown_0861CC10.field_6; if (b == 0 || b == gUnknown_0861CC10.field_6) - sub_81C1CB0(&gUnknown_0861CC10, &gUnknown_0203CF1C->bgTilemapBuffer4[0], b, 1); + sub_81C1CB0(&gUnknown_0861CC10, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], b, 1); else { u8 taskId = FindTaskIdByFunc(sub_81C1F80); @@ -2478,7 +2476,7 @@ void sub_81C1F80(u8 taskId) { data[1] = gUnknown_0861CC10.field_6; } - sub_81C1CB0(&gUnknown_0861CC10, &gUnknown_0203CF1C->bgTilemapBuffer4[0], data[1], 1); + sub_81C1CB0(&gUnknown_0861CC10, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], data[1], 1); if (data[1] <= 0 || data[1] >= gUnknown_0861CC10.field_6) { if (data[0] < 0) @@ -2508,8 +2506,8 @@ void sub_81C2074(u16 a, s16 b) b = gUnknown_0861CBEC.field_6; if (b == 0 || b == gUnknown_0861CBEC.field_6) { - sub_81C1CB0(&gUnknown_0861CBEC, &gUnknown_0203CF1C->bgTilemapBuffer1[0], b, 0); - sub_81C1CB0(&gUnknown_0861CBF8, &gUnknown_0203CF1C->bgTilemapBuffer1[0], b, 0); + sub_81C1CB0(&gUnknown_0861CBEC, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); + sub_81C1CB0(&gUnknown_0861CBF8, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); } else { @@ -2527,14 +2525,14 @@ void sub_81C20F0(u8 taskId) data[1] = 0; else if (data[1] > gUnknown_0861CBEC.field_6) data[1] = gUnknown_0861CBEC.field_6; - sub_81C1CB0(&gUnknown_0861CBEC, &gUnknown_0203CF1C->bgTilemapBuffer1[0], data[1], 0); - sub_81C1CB0(&gUnknown_0861CBF8, &gUnknown_0203CF1C->bgTilemapBuffer1[0], data[1], 0); + sub_81C1CB0(&gUnknown_0861CBEC, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); + sub_81C1CB0(&gUnknown_0861CBF8, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); schedule_bg_copy_tilemap_to_vram(3); if (data[1] <= 0 || data[1] >= gUnknown_0861CBEC.field_6) { if (data[0] < 0) { - sub_81C4A88(); + CreateSetStatusSprite(); PutWindowTilemap(13); schedule_bg_copy_tilemap_to_vram(0); } @@ -2573,13 +2571,13 @@ void sub_81C2228(struct Pokemon *mon) { if (!CheckPartyPokerus(mon, 0) && CheckPartyHasHadPokerus(mon, 0)) { - gUnknown_0203CF1C->bgTilemapBuffer1[0x223] = 0x2C; - gUnknown_0203CF1C->bgTilemapBuffer1[0x623] = 0x2C; + gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x2C; + gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x2C; } else { - gUnknown_0203CF1C->bgTilemapBuffer1[0x223] = 0x81A; - gUnknown_0203CF1C->bgTilemapBuffer1[0x623] = 0x81A; + gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x81A; + gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x81A; } schedule_bg_copy_tilemap_to_vram(3); } @@ -2614,7 +2612,7 @@ void sub_81C22CC(struct Pokemon *unused) r6r7 = 0; } - r9 = &gUnknown_0203CF1C->bgTilemapBuffer2[0x655]; + r9 = &gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_SKILLS][1][0x255]; for (i = 0; i < 8; i++) { if (r6r7 > 7) @@ -2626,7 +2624,7 @@ void sub_81C22CC(struct Pokemon *unused) r6r7 = 0; } - if (GetBgTilemapBuffer(1) == gUnknown_0203CF1C->bgTilemapBuffer2) + if (GetBgTilemapBuffer(1) == gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_SKILLS][0]) schedule_bg_copy_tilemap_to_vram(1); else schedule_bg_copy_tilemap_to_vram(2); @@ -2634,7 +2632,7 @@ void sub_81C22CC(struct Pokemon *unused) void sub_81C240C(u16 move) { - u16* tilemap = &gUnknown_0203CF1C->bgTilemapBuffer4[0x400]; + u16 *tilemap = gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]; u8 i; u8 effectValue; @@ -2778,10 +2776,10 @@ void sub_81C27DC(struct Pokemon *mon, u16 a) u8 gender = GetMonGender(mon); switch (gender) { - case 0: + case MON_MALE: SummaryScreen_PrintTextOnWindow(19, &gText_MaleSymbol[0], 57, 17, 0, 3); break; - case 0xFE: + case MON_FEMALE: SummaryScreen_PrintTextOnWindow(19, &gText_FemaleSymbol[0], 57, 17, 0, 4); break; } @@ -2793,7 +2791,7 @@ void PrintAOrBButtonIcon(u8 windowId, bool8 bButton, u32 x) BlitBitmapToWindow(windowId, (bButton) ? gUnknown_0861CDD3 : gUnknown_0861CDD3 - 0x80, x, 0, 16, 16); } -void PrintRentalMonStatsPage(void) +static void PrintPageNamesAndStatsPage(void) { int stringXPos; int iconXPos; @@ -2804,7 +2802,7 @@ void PrintRentalMonStatsPage(void) SummaryScreen_PrintTextOnWindow(2, gText_BattleMoves, 2, 1, 0, 1); SummaryScreen_PrintTextOnWindow(3, gText_ContestMoves, 2, 1, 0, 1); - stringXPos = GetStringRightAlignXOffset(1, gText_Cancel2, 0x3E); + stringXPos = GetStringRightAlignXOffset(1, gText_Cancel2, 62); iconXPos = stringXPos - 16; if (iconXPos < 0) iconXPos = 0; @@ -2851,10 +2849,12 @@ void PrintRentalMonStatsPage(void) void sub_81C2AFC(u8 a) { u8 i; + ClearWindowTilemap(0); ClearWindowTilemap(1); ClearWindowTilemap(2); ClearWindowTilemap(3); + switch (a) { case 0: @@ -2895,10 +2895,12 @@ void sub_81C2AFC(u8 a) } break; } + for (i = 0; i < 8; i++) { PutWindowTilemap(gUnknown_0203CF1C->windowIds[i]); } + schedule_bg_copy_tilemap_to_vram(0); } @@ -2941,8 +2943,12 @@ void sub_81C2C38(u8 a) } break; } + for (i = 0; i < 8; i++) - sub_81C2D68(i); + { + SummaryScreen_RemoveWindowByIndex(i); + } + schedule_bg_copy_tilemap_to_vram(0); } @@ -2957,9 +2963,9 @@ u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 templateI return *windowIdPtr; } -void sub_81C2D68(u8 a) +void SummaryScreen_RemoveWindowByIndex(u8 windowIndex) { - u8 *windowIdPtr = &(gUnknown_0203CF1C->windowIds[a]); + u8 *windowIdPtr = &(gUnknown_0203CF1C->windowIds[windowIndex]); if (*windowIdPtr != 0xFF) { ClearWindowTilemap(*windowIdPtr); @@ -3428,11 +3434,11 @@ void sub_81C3984(void) if (gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES) { if (gUnknown_0203CF1C->newMove != MOVE_NONE) - sub_81C3E9C(gUnknown_0203CF1C->newMove); + PrintMoveDetails(gUnknown_0203CF1C->newMove); } else { - sub_81C3E9C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]); + PrintMoveDetails(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]); } } } @@ -3472,7 +3478,7 @@ void sub_81C39F0(u8 taskId) if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) { if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) - sub_81C3E9C(data[1]); + PrintMoveDetails(data[1]); } break; case 8: @@ -3561,7 +3567,7 @@ void sub_81C3D08(void) if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) { PrintNewMoveDetailsOrCancelText(); - sub_81C3E2C(gUnknown_0203CF1C->firstMoveIndex); + PrintContestMoveDescription(gUnknown_0203CF1C->firstMoveIndex); } } @@ -3592,7 +3598,7 @@ void sub_81C3D54(u8 taskId) if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) { if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) - sub_81C3E2C(gUnknown_0203CF1C->firstMoveIndex); + PrintContestMoveDescription(gUnknown_0203CF1C->firstMoveIndex); } break; case 6: @@ -3602,7 +3608,7 @@ void sub_81C3D54(u8 taskId) data[0]++; } -void sub_81C3E2C(u8 moveSlot) +void PrintContestMoveDescription(u8 moveSlot) { u16 move; @@ -3618,7 +3624,7 @@ void sub_81C3E2C(u8 moveSlot) } } -void sub_81C3E9C(u16 move) +void PrintMoveDetails(u16 move) { u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); FillWindowPixelBuffer(windowId, 0); @@ -3707,7 +3713,7 @@ void sub_81C4190(void) gUnknown_0203CF1C->spriteIds[i] |= 0xFF; } -void sub_81C41C0(u8 spriteArrayId) +void DestroySpriteInArray(u8 spriteArrayId) { if (gUnknown_0203CF1C->spriteIds[spriteArrayId] != 0xFF) { @@ -3966,21 +3972,21 @@ void sub_81C4844(struct Sprite *sprite) } } -void sub_81C488C(u8 a0) +void SummaryScreen_SetUnknownTaskId(u8 a0) { - sUnusedTaskId = a0; + sUnknownTaskId = a0; } -void DestoryUnusedTask(void) +void SummaryScreen_DestroyUnknownTask(void) { - if (sUnusedTaskId != 0xFF) + if (sUnknownTaskId != 0xFF) { - DestroyTask(sUnusedTaskId); - sUnusedTaskId = 0xFF; + DestroyTask(sUnknownTaskId); + sUnknownTaskId = 0xFF; } } -bool32 sub_81C48B4(void) +bool32 DoesSpriteHaveCallback(void) { if (gSprites[gUnknown_0203CF1C->spriteIds[0]].callback == SpriteCallbackDummy) { @@ -4009,7 +4015,7 @@ void sub_81C48F0(void) } } -void sub_81C4984(struct Pokemon *mon) +void CreateMonMarkingsSprite(struct Pokemon *mon) { struct Sprite *sprite = sub_811FF94(30003, 30003, gUnknown_0861D120); @@ -4024,14 +4030,14 @@ void sub_81C4984(struct Pokemon *mon) } } -void sub_81C49E0(struct Pokemon *mon) +void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon) { DestroySprite(gUnknown_0203CF1C->markingsSprite); FreeSpriteTilesByTag(30003); - sub_81C4984(mon); + CreateMonMarkingsSprite(mon); } -void sub_81C4A08(struct Pokemon *mon) +void CreateCaughtBallSprite(struct Pokemon *mon) { u8 ball = ItemIdToBallId(GetMonData(mon, MON_DATA_POKEBALL)); @@ -4041,7 +4047,7 @@ void sub_81C4A08(struct Pokemon *mon) gSprites[gUnknown_0203CF1C->spriteIds[1]].oam.priority = 3; } -void sub_81C4A88(void) +void CreateSetStatusSprite(void) { u8 *spriteId = &gUnknown_0203CF1C->spriteIds[2]; u8 anim; @@ -4134,7 +4140,7 @@ void sub_81C4C60(u8 a0) u8 i; for (i = 0; i < 10; i++) { - sub_81C41C0(a0 + i); + DestroySpriteInArray(a0 + i); } } From 8896b54e8f45528fc6c21cd55cdace2ad03b2796 Mon Sep 17 00:00:00 2001 From: Tetrable Date: Wed, 15 Aug 2018 20:10:28 +0100 Subject: [PATCH 110/174] Add national/hoenn dex defines, update dex arrays --- include/constants/species.h | 832 +++++++++++++++++++++++ src/pokemon.c | 1250 ++++++++++++++++++++++++++++++++++- 2 files changed, 2079 insertions(+), 3 deletions(-) diff --git a/include/constants/species.h b/include/constants/species.h index f698ada14a..cd9b137439 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -447,4 +447,836 @@ #define NUM_SPECIES SPECIES_EGG +// National Dex Index Defines + +#define NATIONAL_DEX_BULBASAUR 1 +#define NATIONAL_DEX_IVYSAUR 2 +#define NATIONAL_DEX_VENUSAUR 3 +#define NATIONAL_DEX_CHARMANDER 4 +#define NATIONAL_DEX_CHARMELEON 5 +#define NATIONAL_DEX_CHARIZARD 6 +#define NATIONAL_DEX_SQUIRTLE 7 +#define NATIONAL_DEX_WARTORTLE 8 +#define NATIONAL_DEX_BLASTOISE 9 +#define NATIONAL_DEX_CATERPIE 10 +#define NATIONAL_DEX_METAPOD 11 +#define NATIONAL_DEX_BUTTERFREE 12 +#define NATIONAL_DEX_WEEDLE 13 +#define NATIONAL_DEX_KAKUNA 14 +#define NATIONAL_DEX_BEEDRILL 15 +#define NATIONAL_DEX_PIDGEY 16 +#define NATIONAL_DEX_PIDGEOTTO 17 +#define NATIONAL_DEX_PIDGEOT 18 +#define NATIONAL_DEX_RATTATA 19 +#define NATIONAL_DEX_RATICATE 20 +#define NATIONAL_DEX_SPEAROW 21 +#define NATIONAL_DEX_FEAROW 22 +#define NATIONAL_DEX_EKANS 23 +#define NATIONAL_DEX_ARBOK 24 +#define NATIONAL_DEX_PIKACHU 25 +#define NATIONAL_DEX_RAICHU 26 +#define NATIONAL_DEX_SANDSHREW 27 +#define NATIONAL_DEX_SANDSLASH 28 +#define NATIONAL_DEX_NIDORAN_F 29 +#define NATIONAL_DEX_NIDORINA 30 +#define NATIONAL_DEX_NIDOQUEEN 31 +#define NATIONAL_DEX_NIDORAN_M 32 +#define NATIONAL_DEX_NIDORINO 33 +#define NATIONAL_DEX_NIDOKING 34 +#define NATIONAL_DEX_CLEFAIRY 35 +#define NATIONAL_DEX_CLEFABLE 36 +#define NATIONAL_DEX_VULPIX 37 +#define NATIONAL_DEX_NINETALES 38 +#define NATIONAL_DEX_JIGGLYPUFF 39 +#define NATIONAL_DEX_WIGGLYTUFF 40 +#define NATIONAL_DEX_ZUBAT 41 +#define NATIONAL_DEX_GOLBAT 42 +#define NATIONAL_DEX_ODDISH 43 +#define NATIONAL_DEX_GLOOM 44 +#define NATIONAL_DEX_VILEPLUME 45 +#define NATIONAL_DEX_PARAS 46 +#define NATIONAL_DEX_PARASECT 47 +#define NATIONAL_DEX_VENONAT 48 +#define NATIONAL_DEX_VENOMOTH 49 +#define NATIONAL_DEX_DIGLETT 50 +#define NATIONAL_DEX_DUGTRIO 51 +#define NATIONAL_DEX_MEOWTH 52 +#define NATIONAL_DEX_PERSIAN 53 +#define NATIONAL_DEX_PSYDUCK 54 +#define NATIONAL_DEX_GOLDUCK 55 +#define NATIONAL_DEX_MANKEY 56 +#define NATIONAL_DEX_PRIMEAPE 57 +#define NATIONAL_DEX_GROWLITHE 58 +#define NATIONAL_DEX_ARCANINE 59 +#define NATIONAL_DEX_POLIWAG 60 +#define NATIONAL_DEX_POLIWHIRL 61 +#define NATIONAL_DEX_POLIWRATH 62 +#define NATIONAL_DEX_ABRA 63 +#define NATIONAL_DEX_KADABRA 64 +#define NATIONAL_DEX_ALAKAZAM 65 +#define NATIONAL_DEX_MACHOP 66 +#define NATIONAL_DEX_MACHOKE 67 +#define NATIONAL_DEX_MACHAMP 68 +#define NATIONAL_DEX_BELLSPROUT 69 +#define NATIONAL_DEX_WEEPINBELL 70 +#define NATIONAL_DEX_VICTREEBEL 71 +#define NATIONAL_DEX_TENTACOOL 72 +#define NATIONAL_DEX_TENTACRUEL 73 +#define NATIONAL_DEX_GEODUDE 74 +#define NATIONAL_DEX_GRAVELER 75 +#define NATIONAL_DEX_GOLEM 76 +#define NATIONAL_DEX_PONYTA 77 +#define NATIONAL_DEX_RAPIDASH 78 +#define NATIONAL_DEX_SLOWPOKE 79 +#define NATIONAL_DEX_SLOWBRO 80 +#define NATIONAL_DEX_MAGNEMITE 81 +#define NATIONAL_DEX_MAGNETON 82 +#define NATIONAL_DEX_FARFETCHD 83 +#define NATIONAL_DEX_DODUO 84 +#define NATIONAL_DEX_DODRIO 85 +#define NATIONAL_DEX_SEEL 86 +#define NATIONAL_DEX_DEWGONG 87 +#define NATIONAL_DEX_GRIMER 88 +#define NATIONAL_DEX_MUK 89 +#define NATIONAL_DEX_SHELLDER 90 +#define NATIONAL_DEX_CLOYSTER 91 +#define NATIONAL_DEX_GASTLY 92 +#define NATIONAL_DEX_HAUNTER 93 +#define NATIONAL_DEX_GENGAR 94 +#define NATIONAL_DEX_ONIX 95 +#define NATIONAL_DEX_DROWZEE 96 +#define NATIONAL_DEX_HYPNO 97 +#define NATIONAL_DEX_KRABBY 98 +#define NATIONAL_DEX_KINGLER 99 +#define NATIONAL_DEX_VOLTORB 100 +#define NATIONAL_DEX_ELECTRODE 101 +#define NATIONAL_DEX_EXEGGCUTE 102 +#define NATIONAL_DEX_EXEGGUTOR 103 +#define NATIONAL_DEX_CUBONE 104 +#define NATIONAL_DEX_MAROWAK 105 +#define NATIONAL_DEX_HITMONLEE 106 +#define NATIONAL_DEX_HITMONCHAN 107 +#define NATIONAL_DEX_LICKITUNG 108 +#define NATIONAL_DEX_KOFFING 109 +#define NATIONAL_DEX_WEEZING 110 +#define NATIONAL_DEX_RHYHORN 111 +#define NATIONAL_DEX_RHYDON 112 +#define NATIONAL_DEX_CHANSEY 113 +#define NATIONAL_DEX_TANGELA 114 +#define NATIONAL_DEX_KANGASKHAN 115 +#define NATIONAL_DEX_HORSEA 116 +#define NATIONAL_DEX_SEADRA 117 +#define NATIONAL_DEX_GOLDEEN 118 +#define NATIONAL_DEX_SEAKING 119 +#define NATIONAL_DEX_STARYU 120 +#define NATIONAL_DEX_STARMIE 121 +#define NATIONAL_DEX_MR_MIME 122 +#define NATIONAL_DEX_SCYTHER 123 +#define NATIONAL_DEX_JYNX 124 +#define NATIONAL_DEX_ELECTABUZZ 125 +#define NATIONAL_DEX_MAGMAR 126 +#define NATIONAL_DEX_PINSIR 127 +#define NATIONAL_DEX_TAUROS 128 +#define NATIONAL_DEX_MAGIKARP 129 +#define NATIONAL_DEX_GYARADOS 130 +#define NATIONAL_DEX_LAPRAS 131 +#define NATIONAL_DEX_DITTO 132 +#define NATIONAL_DEX_EEVEE 133 +#define NATIONAL_DEX_VAPOREON 134 +#define NATIONAL_DEX_JOLTEON 135 +#define NATIONAL_DEX_FLAREON 136 +#define NATIONAL_DEX_PORYGON 137 +#define NATIONAL_DEX_OMANYTE 138 +#define NATIONAL_DEX_OMASTAR 139 +#define NATIONAL_DEX_KABUTO 140 +#define NATIONAL_DEX_KABUTOPS 141 +#define NATIONAL_DEX_AERODACTYL 142 +#define NATIONAL_DEX_SNORLAX 143 +#define NATIONAL_DEX_ARTICUNO 144 +#define NATIONAL_DEX_ZAPDOS 145 +#define NATIONAL_DEX_MOLTRES 146 +#define NATIONAL_DEX_DRATINI 147 +#define NATIONAL_DEX_DRAGONAIR 148 +#define NATIONAL_DEX_DRAGONITE 149 +#define NATIONAL_DEX_MEWTWO 150 +#define NATIONAL_DEX_MEW 151 +#define NATIONAL_DEX_CHIKORITA 152 +#define NATIONAL_DEX_BAYLEEF 153 +#define NATIONAL_DEX_MEGANIUM 154 +#define NATIONAL_DEX_CYNDAQUIL 155 +#define NATIONAL_DEX_QUILAVA 156 +#define NATIONAL_DEX_TYPHLOSION 157 +#define NATIONAL_DEX_TOTODILE 158 +#define NATIONAL_DEX_CROCONAW 159 +#define NATIONAL_DEX_FERALIGATR 160 +#define NATIONAL_DEX_SENTRET 161 +#define NATIONAL_DEX_FURRET 162 +#define NATIONAL_DEX_HOOTHOOT 163 +#define NATIONAL_DEX_NOCTOWL 164 +#define NATIONAL_DEX_LEDYBA 165 +#define NATIONAL_DEX_LEDIAN 166 +#define NATIONAL_DEX_SPINARAK 167 +#define NATIONAL_DEX_ARIADOS 168 +#define NATIONAL_DEX_CROBAT 169 +#define NATIONAL_DEX_CHINCHOU 170 +#define NATIONAL_DEX_LANTURN 171 +#define NATIONAL_DEX_PICHU 172 +#define NATIONAL_DEX_CLEFFA 173 +#define NATIONAL_DEX_IGGLYBUFF 174 +#define NATIONAL_DEX_TOGEPI 175 +#define NATIONAL_DEX_TOGETIC 176 +#define NATIONAL_DEX_NATU 177 +#define NATIONAL_DEX_XATU 178 +#define NATIONAL_DEX_MAREEP 179 +#define NATIONAL_DEX_FLAAFFY 180 +#define NATIONAL_DEX_AMPHAROS 181 +#define NATIONAL_DEX_BELLOSSOM 182 +#define NATIONAL_DEX_MARILL 183 +#define NATIONAL_DEX_AZUMARILL 184 +#define NATIONAL_DEX_SUDOWOODO 185 +#define NATIONAL_DEX_POLITOED 186 +#define NATIONAL_DEX_HOPPIP 187 +#define NATIONAL_DEX_SKIPLOOM 188 +#define NATIONAL_DEX_JUMPLUFF 189 +#define NATIONAL_DEX_AIPOM 190 +#define NATIONAL_DEX_SUNKERN 191 +#define NATIONAL_DEX_SUNFLORA 192 +#define NATIONAL_DEX_YANMA 193 +#define NATIONAL_DEX_WOOPER 194 +#define NATIONAL_DEX_QUAGSIRE 195 +#define NATIONAL_DEX_ESPEON 196 +#define NATIONAL_DEX_UMBREON 197 +#define NATIONAL_DEX_MURKROW 198 +#define NATIONAL_DEX_SLOWKING 199 +#define NATIONAL_DEX_MISDREAVUS 200 +#define NATIONAL_DEX_UNOWN 201 +#define NATIONAL_DEX_WOBBUFFET 202 +#define NATIONAL_DEX_GIRAFARIG 203 +#define NATIONAL_DEX_PINECO 204 +#define NATIONAL_DEX_FORRETRESS 205 +#define NATIONAL_DEX_DUNSPARCE 206 +#define NATIONAL_DEX_GLIGAR 207 +#define NATIONAL_DEX_STEELIX 208 +#define NATIONAL_DEX_SNUBBULL 209 +#define NATIONAL_DEX_GRANBULL 210 +#define NATIONAL_DEX_QWILFISH 211 +#define NATIONAL_DEX_SCIZOR 212 +#define NATIONAL_DEX_SHUCKLE 213 +#define NATIONAL_DEX_HERACROSS 214 +#define NATIONAL_DEX_SNEASEL 215 +#define NATIONAL_DEX_TEDDIURSA 216 +#define NATIONAL_DEX_URSARING 217 +#define NATIONAL_DEX_SLUGMA 218 +#define NATIONAL_DEX_MAGCARGO 219 +#define NATIONAL_DEX_SWINUB 220 +#define NATIONAL_DEX_PILOSWINE 221 +#define NATIONAL_DEX_CORSOLA 222 +#define NATIONAL_DEX_REMORAID 223 +#define NATIONAL_DEX_OCTILLERY 224 +#define NATIONAL_DEX_DELIBIRD 225 +#define NATIONAL_DEX_MANTINE 226 +#define NATIONAL_DEX_SKARMORY 227 +#define NATIONAL_DEX_HOUNDOUR 228 +#define NATIONAL_DEX_HOUNDOOM 229 +#define NATIONAL_DEX_KINGDRA 230 +#define NATIONAL_DEX_PHANPY 231 +#define NATIONAL_DEX_DONPHAN 232 +#define NATIONAL_DEX_PORYGON2 233 +#define NATIONAL_DEX_STANTLER 234 +#define NATIONAL_DEX_SMEARGLE 235 +#define NATIONAL_DEX_TYROGUE 236 +#define NATIONAL_DEX_HITMONTOP 237 +#define NATIONAL_DEX_SMOOCHUM 238 +#define NATIONAL_DEX_ELEKID 239 +#define NATIONAL_DEX_MAGBY 240 +#define NATIONAL_DEX_MILTANK 241 +#define NATIONAL_DEX_BLISSEY 242 +#define NATIONAL_DEX_RAIKOU 243 +#define NATIONAL_DEX_ENTEI 244 +#define NATIONAL_DEX_SUICUNE 245 +#define NATIONAL_DEX_LARVITAR 246 +#define NATIONAL_DEX_PUPITAR 247 +#define NATIONAL_DEX_TYRANITAR 248 +#define NATIONAL_DEX_LUGIA 249 +#define NATIONAL_DEX_HO_OH 250 +#define NATIONAL_DEX_CELEBI 251 + +#define NATIONAL_DEX_OLD_UNOWN_B 387 +#define NATIONAL_DEX_OLD_UNOWN_C 388 +#define NATIONAL_DEX_OLD_UNOWN_D 389 +#define NATIONAL_DEX_OLD_UNOWN_E 390 +#define NATIONAL_DEX_OLD_UNOWN_F 391 +#define NATIONAL_DEX_OLD_UNOWN_G 392 +#define NATIONAL_DEX_OLD_UNOWN_H 393 +#define NATIONAL_DEX_OLD_UNOWN_I 394 +#define NATIONAL_DEX_OLD_UNOWN_J 395 +#define NATIONAL_DEX_OLD_UNOWN_K 396 +#define NATIONAL_DEX_OLD_UNOWN_L 397 +#define NATIONAL_DEX_OLD_UNOWN_M 398 +#define NATIONAL_DEX_OLD_UNOWN_N 399 +#define NATIONAL_DEX_OLD_UNOWN_O 400 +#define NATIONAL_DEX_OLD_UNOWN_P 401 +#define NATIONAL_DEX_OLD_UNOWN_Q 402 +#define NATIONAL_DEX_OLD_UNOWN_R 403 +#define NATIONAL_DEX_OLD_UNOWN_S 404 +#define NATIONAL_DEX_OLD_UNOWN_T 405 +#define NATIONAL_DEX_OLD_UNOWN_U 406 +#define NATIONAL_DEX_OLD_UNOWN_V 407 +#define NATIONAL_DEX_OLD_UNOWN_W 408 +#define NATIONAL_DEX_OLD_UNOWN_X 409 +#define NATIONAL_DEX_OLD_UNOWN_Y 410 +#define NATIONAL_DEX_OLD_UNOWN_Z 411 + +#define NATIONAL_DEX_TREECKO 252 +#define NATIONAL_DEX_GROVYLE 253 +#define NATIONAL_DEX_SCEPTILE 254 +#define NATIONAL_DEX_TORCHIC 255 +#define NATIONAL_DEX_COMBUSKEN 256 +#define NATIONAL_DEX_BLAZIKEN 257 +#define NATIONAL_DEX_MUDKIP 258 +#define NATIONAL_DEX_MARSHTOMP 259 +#define NATIONAL_DEX_SWAMPERT 260 +#define NATIONAL_DEX_POOCHYENA 261 +#define NATIONAL_DEX_MIGHTYENA 262 +#define NATIONAL_DEX_ZIGZAGOON 263 +#define NATIONAL_DEX_LINOONE 264 +#define NATIONAL_DEX_WURMPLE 265 +#define NATIONAL_DEX_SILCOON 266 +#define NATIONAL_DEX_BEAUTIFLY 267 +#define NATIONAL_DEX_CASCOON 268 +#define NATIONAL_DEX_DUSTOX 269 +#define NATIONAL_DEX_LOTAD 270 +#define NATIONAL_DEX_LOMBRE 271 +#define NATIONAL_DEX_LUDICOLO 272 +#define NATIONAL_DEX_SEEDOT 273 +#define NATIONAL_DEX_NUZLEAF 274 +#define NATIONAL_DEX_SHIFTRY 275 +#define NATIONAL_DEX_NINCADA 290 +#define NATIONAL_DEX_NINJASK 291 +#define NATIONAL_DEX_SHEDINJA 292 +#define NATIONAL_DEX_TAILLOW 276 +#define NATIONAL_DEX_SWELLOW 277 +#define NATIONAL_DEX_SHROOMISH 285 +#define NATIONAL_DEX_BRELOOM 286 +#define NATIONAL_DEX_SPINDA 327 +#define NATIONAL_DEX_WINGULL 278 +#define NATIONAL_DEX_PELIPPER 279 +#define NATIONAL_DEX_SURSKIT 283 +#define NATIONAL_DEX_MASQUERAIN 284 +#define NATIONAL_DEX_WAILMER 320 +#define NATIONAL_DEX_WAILORD 321 +#define NATIONAL_DEX_SKITTY 300 +#define NATIONAL_DEX_DELCATTY 301 +#define NATIONAL_DEX_KECLEON 352 +#define NATIONAL_DEX_BALTOY 343 +#define NATIONAL_DEX_CLAYDOL 344 +#define NATIONAL_DEX_NOSEPASS 299 +#define NATIONAL_DEX_TORKOAL 324 +#define NATIONAL_DEX_SABLEYE 302 +#define NATIONAL_DEX_BARBOACH 339 +#define NATIONAL_DEX_WHISCASH 340 +#define NATIONAL_DEX_LUVDISC 370 +#define NATIONAL_DEX_CORPHISH 341 +#define NATIONAL_DEX_CRAWDAUNT 342 +#define NATIONAL_DEX_FEEBAS 349 +#define NATIONAL_DEX_MILOTIC 350 +#define NATIONAL_DEX_CARVANHA 318 +#define NATIONAL_DEX_SHARPEDO 319 +#define NATIONAL_DEX_TRAPINCH 328 +#define NATIONAL_DEX_VIBRAVA 329 +#define NATIONAL_DEX_FLYGON 330 +#define NATIONAL_DEX_MAKUHITA 296 +#define NATIONAL_DEX_HARIYAMA 297 +#define NATIONAL_DEX_ELECTRIKE 309 +#define NATIONAL_DEX_MANECTRIC 310 +#define NATIONAL_DEX_NUMEL 322 +#define NATIONAL_DEX_CAMERUPT 323 +#define NATIONAL_DEX_SPHEAL 363 +#define NATIONAL_DEX_SEALEO 364 +#define NATIONAL_DEX_WALREIN 365 +#define NATIONAL_DEX_CACNEA 331 +#define NATIONAL_DEX_CACTURNE 332 +#define NATIONAL_DEX_SNORUNT 361 +#define NATIONAL_DEX_GLALIE 362 +#define NATIONAL_DEX_LUNATONE 337 +#define NATIONAL_DEX_SOLROCK 338 +#define NATIONAL_DEX_AZURILL 298 +#define NATIONAL_DEX_SPOINK 325 +#define NATIONAL_DEX_GRUMPIG 326 +#define NATIONAL_DEX_PLUSLE 311 +#define NATIONAL_DEX_MINUN 312 +#define NATIONAL_DEX_MAWILE 303 +#define NATIONAL_DEX_MEDITITE 307 +#define NATIONAL_DEX_MEDICHAM 308 +#define NATIONAL_DEX_SWABLU 333 +#define NATIONAL_DEX_ALTARIA 334 +#define NATIONAL_DEX_WYNAUT 360 +#define NATIONAL_DEX_DUSKULL 355 +#define NATIONAL_DEX_DUSCLOPS 356 +#define NATIONAL_DEX_ROSELIA 315 +#define NATIONAL_DEX_SLAKOTH 287 +#define NATIONAL_DEX_VIGOROTH 288 +#define NATIONAL_DEX_SLAKING 289 +#define NATIONAL_DEX_GULPIN 316 +#define NATIONAL_DEX_SWALOT 317 +#define NATIONAL_DEX_TROPIUS 357 +#define NATIONAL_DEX_WHISMUR 293 +#define NATIONAL_DEX_LOUDRED 294 +#define NATIONAL_DEX_EXPLOUD 295 +#define NATIONAL_DEX_CLAMPERL 366 +#define NATIONAL_DEX_HUNTAIL 367 +#define NATIONAL_DEX_GOREBYSS 368 +#define NATIONAL_DEX_ABSOL 359 +#define NATIONAL_DEX_SHUPPET 353 +#define NATIONAL_DEX_BANETTE 354 +#define NATIONAL_DEX_SEVIPER 336 +#define NATIONAL_DEX_ZANGOOSE 335 +#define NATIONAL_DEX_RELICANTH 369 +#define NATIONAL_DEX_ARON 304 +#define NATIONAL_DEX_LAIRON 305 +#define NATIONAL_DEX_AGGRON 306 +#define NATIONAL_DEX_CASTFORM 351 +#define NATIONAL_DEX_VOLBEAT 313 +#define NATIONAL_DEX_ILLUMISE 314 +#define NATIONAL_DEX_LILEEP 345 +#define NATIONAL_DEX_CRADILY 346 +#define NATIONAL_DEX_ANORITH 347 +#define NATIONAL_DEX_ARMALDO 348 +#define NATIONAL_DEX_RALTS 280 +#define NATIONAL_DEX_KIRLIA 281 +#define NATIONAL_DEX_GARDEVOIR 282 +#define NATIONAL_DEX_BAGON 371 +#define NATIONAL_DEX_SHELGON 372 +#define NATIONAL_DEX_SALAMENCE 373 +#define NATIONAL_DEX_BELDUM 374 +#define NATIONAL_DEX_METANG 375 +#define NATIONAL_DEX_METAGROSS 376 +#define NATIONAL_DEX_REGIROCK 377 +#define NATIONAL_DEX_REGICE 378 +#define NATIONAL_DEX_REGISTEEL 379 +#define NATIONAL_DEX_KYOGRE 382 +#define NATIONAL_DEX_GROUDON 383 +#define NATIONAL_DEX_RAYQUAZA 384 +#define NATIONAL_DEX_LATIAS 380 +#define NATIONAL_DEX_LATIOS 381 +#define NATIONAL_DEX_JIRACHI 385 +#define NATIONAL_DEX_DEOXYS 386 +#define NATIONAL_DEX_CHIMECHO 358 + +// Hoenn Dex Index Defines + +#define HOENN_DEX_BULBASAUR 203 +#define HOENN_DEX_IVYSAUR 204 +#define HOENN_DEX_VENUSAUR 205 +#define HOENN_DEX_CHARMANDER 206 +#define HOENN_DEX_CHARMELEON 207 +#define HOENN_DEX_CHARIZARD 208 +#define HOENN_DEX_SQUIRTLE 209 +#define HOENN_DEX_WARTORTLE 210 +#define HOENN_DEX_BLASTOISE 211 +#define HOENN_DEX_CATERPIE 212 +#define HOENN_DEX_METAPOD 213 +#define HOENN_DEX_BUTTERFREE 214 +#define HOENN_DEX_WEEDLE 215 +#define HOENN_DEX_KAKUNA 216 +#define HOENN_DEX_BEEDRILL 217 +#define HOENN_DEX_PIDGEY 218 +#define HOENN_DEX_PIDGEOTTO 219 +#define HOENN_DEX_PIDGEOT 220 +#define HOENN_DEX_RATTATA 221 +#define HOENN_DEX_RATICATE 222 +#define HOENN_DEX_SPEAROW 223 +#define HOENN_DEX_FEAROW 224 +#define HOENN_DEX_EKANS 225 +#define HOENN_DEX_ARBOK 226 +#define HOENN_DEX_PIKACHU 156 +#define HOENN_DEX_RAICHU 157 +#define HOENN_DEX_SANDSHREW 112 +#define HOENN_DEX_SANDSLASH 113 +#define HOENN_DEX_NIDORAN_F 227 +#define HOENN_DEX_NIDORINA 228 +#define HOENN_DEX_NIDOQUEEN 229 +#define HOENN_DEX_NIDORAN_M 230 +#define HOENN_DEX_NIDORINO 231 +#define HOENN_DEX_NIDOKING 232 +#define HOENN_DEX_CLEFAIRY 233 +#define HOENN_DEX_CLEFABLE 234 +#define HOENN_DEX_VULPIX 153 +#define HOENN_DEX_NINETALES 154 +#define HOENN_DEX_JIGGLYPUFF 138 +#define HOENN_DEX_WIGGLYTUFF 139 +#define HOENN_DEX_ZUBAT 63 +#define HOENN_DEX_GOLBAT 64 +#define HOENN_DEX_ODDISH 88 +#define HOENN_DEX_GLOOM 89 +#define HOENN_DEX_VILEPLUME 90 +#define HOENN_DEX_PARAS 235 +#define HOENN_DEX_PARASECT 236 +#define HOENN_DEX_VENONAT 237 +#define HOENN_DEX_VENOMOTH 238 +#define HOENN_DEX_DIGLETT 239 +#define HOENN_DEX_DUGTRIO 240 +#define HOENN_DEX_MEOWTH 241 +#define HOENN_DEX_PERSIAN 242 +#define HOENN_DEX_PSYDUCK 158 +#define HOENN_DEX_GOLDUCK 159 +#define HOENN_DEX_MANKEY 243 +#define HOENN_DEX_PRIMEAPE 244 +#define HOENN_DEX_GROWLITHE 245 +#define HOENN_DEX_ARCANINE 246 +#define HOENN_DEX_POLIWAG 247 +#define HOENN_DEX_POLIWHIRL 248 +#define HOENN_DEX_POLIWRATH 249 +#define HOENN_DEX_ABRA 39 +#define HOENN_DEX_KADABRA 40 +#define HOENN_DEX_ALAKAZAM 41 +#define HOENN_DEX_MACHOP 73 +#define HOENN_DEX_MACHOKE 74 +#define HOENN_DEX_MACHAMP 75 +#define HOENN_DEX_BELLSPROUT 250 +#define HOENN_DEX_WEEPINBELL 251 +#define HOENN_DEX_VICTREEBEL 252 +#define HOENN_DEX_TENTACOOL 66 +#define HOENN_DEX_TENTACRUEL 67 +#define HOENN_DEX_GEODUDE 57 +#define HOENN_DEX_GRAVELER 58 +#define HOENN_DEX_GOLEM 59 +#define HOENN_DEX_PONYTA 253 +#define HOENN_DEX_RAPIDASH 254 +#define HOENN_DEX_SLOWPOKE 255 +#define HOENN_DEX_SLOWBRO 256 +#define HOENN_DEX_MAGNEMITE 82 +#define HOENN_DEX_MAGNETON 83 +#define HOENN_DEX_FARFETCHD 257 +#define HOENN_DEX_DODUO 92 +#define HOENN_DEX_DODRIO 93 +#define HOENN_DEX_SEEL 258 +#define HOENN_DEX_DEWGONG 259 +#define HOENN_DEX_GRIMER 106 +#define HOENN_DEX_MUK 107 +#define HOENN_DEX_SHELLDER 260 +#define HOENN_DEX_CLOYSTER 261 +#define HOENN_DEX_GASTLY 262 +#define HOENN_DEX_HAUNTER 263 +#define HOENN_DEX_GENGAR 264 +#define HOENN_DEX_ONIX 265 +#define HOENN_DEX_DROWZEE 266 +#define HOENN_DEX_HYPNO 267 +#define HOENN_DEX_KRABBY 268 +#define HOENN_DEX_KINGLER 269 +#define HOENN_DEX_VOLTORB 84 +#define HOENN_DEX_ELECTRODE 85 +#define HOENN_DEX_EXEGGCUTE 270 +#define HOENN_DEX_EXEGGUTOR 271 +#define HOENN_DEX_CUBONE 272 +#define HOENN_DEX_MAROWAK 273 +#define HOENN_DEX_HITMONLEE 274 +#define HOENN_DEX_HITMONCHAN 275 +#define HOENN_DEX_LICKITUNG 276 +#define HOENN_DEX_KOFFING 108 +#define HOENN_DEX_WEEZING 109 +#define HOENN_DEX_RHYHORN 169 +#define HOENN_DEX_RHYDON 170 +#define HOENN_DEX_CHANSEY 277 +#define HOENN_DEX_TANGELA 278 +#define HOENN_DEX_KANGASKHAN 279 +#define HOENN_DEX_HORSEA 184 +#define HOENN_DEX_SEADRA 185 +#define HOENN_DEX_GOLDEEN 50 +#define HOENN_DEX_SEAKING 51 +#define HOENN_DEX_STARYU 143 +#define HOENN_DEX_STARMIE 144 +#define HOENN_DEX_MR_MIME 280 +#define HOENN_DEX_SCYTHER 281 +#define HOENN_DEX_JYNX 282 +#define HOENN_DEX_ELECTABUZZ 283 +#define HOENN_DEX_MAGMAR 284 +#define HOENN_DEX_PINSIR 167 +#define HOENN_DEX_TAUROS 285 +#define HOENN_DEX_MAGIKARP 52 +#define HOENN_DEX_GYARADOS 53 +#define HOENN_DEX_LAPRAS 286 +#define HOENN_DEX_DITTO 287 +#define HOENN_DEX_EEVEE 288 +#define HOENN_DEX_VAPOREON 289 +#define HOENN_DEX_JOLTEON 290 +#define HOENN_DEX_FLAREON 291 +#define HOENN_DEX_PORYGON 292 +#define HOENN_DEX_OMANYTE 293 +#define HOENN_DEX_OMASTAR 294 +#define HOENN_DEX_KABUTO 295 +#define HOENN_DEX_KABUTOPS 296 +#define HOENN_DEX_AERODACTYL 297 +#define HOENN_DEX_SNORLAX 298 +#define HOENN_DEX_ARTICUNO 299 +#define HOENN_DEX_ZAPDOS 300 +#define HOENN_DEX_MOLTRES 301 +#define HOENN_DEX_DRATINI 302 +#define HOENN_DEX_DRAGONAIR 303 +#define HOENN_DEX_DRAGONITE 304 +#define HOENN_DEX_MEWTWO 305 +#define HOENN_DEX_MEW 306 +#define HOENN_DEX_CHIKORITA 307 +#define HOENN_DEX_BAYLEEF 308 +#define HOENN_DEX_MEGANIUM 309 +#define HOENN_DEX_CYNDAQUIL 310 +#define HOENN_DEX_QUILAVA 311 +#define HOENN_DEX_TYPHLOSION 312 +#define HOENN_DEX_TOTODILE 313 +#define HOENN_DEX_CROCONAW 314 +#define HOENN_DEX_FERALIGATR 315 +#define HOENN_DEX_SENTRET 316 +#define HOENN_DEX_FURRET 317 +#define HOENN_DEX_HOOTHOOT 318 +#define HOENN_DEX_NOCTOWL 319 +#define HOENN_DEX_LEDYBA 320 +#define HOENN_DEX_LEDIAN 321 +#define HOENN_DEX_SPINARAK 322 +#define HOENN_DEX_ARIADOS 323 +#define HOENN_DEX_CROBAT 65 +#define HOENN_DEX_CHINCHOU 181 +#define HOENN_DEX_LANTURN 182 +#define HOENN_DEX_PICHU 155 +#define HOENN_DEX_CLEFFA 324 +#define HOENN_DEX_IGGLYBUFF 137 +#define HOENN_DEX_TOGEPI 325 +#define HOENN_DEX_TOGETIC 326 +#define HOENN_DEX_NATU 162 +#define HOENN_DEX_XATU 163 +#define HOENN_DEX_MAREEP 327 +#define HOENN_DEX_FLAAFFY 328 +#define HOENN_DEX_AMPHAROS 329 +#define HOENN_DEX_BELLOSSOM 91 +#define HOENN_DEX_MARILL 55 +#define HOENN_DEX_AZUMARILL 56 +#define HOENN_DEX_SUDOWOODO 330 +#define HOENN_DEX_POLITOED 331 +#define HOENN_DEX_HOPPIP 332 +#define HOENN_DEX_SKIPLOOM 333 +#define HOENN_DEX_JUMPLUFF 334 +#define HOENN_DEX_AIPOM 335 +#define HOENN_DEX_SUNKERN 336 +#define HOENN_DEX_SUNFLORA 337 +#define HOENN_DEX_YANMA 338 +#define HOENN_DEX_WOOPER 339 +#define HOENN_DEX_QUAGSIRE 340 +#define HOENN_DEX_ESPEON 341 +#define HOENN_DEX_UMBREON 342 +#define HOENN_DEX_MURKROW 343 +#define HOENN_DEX_SLOWKING 344 +#define HOENN_DEX_MISDREAVUS 345 +#define HOENN_DEX_UNOWN 346 +#define HOENN_DEX_WOBBUFFET 161 +#define HOENN_DEX_GIRAFARIG 164 +#define HOENN_DEX_PINECO 347 +#define HOENN_DEX_FORRETRESS 348 +#define HOENN_DEX_DUNSPARCE 349 +#define HOENN_DEX_GLIGAR 350 +#define HOENN_DEX_STEELIX 351 +#define HOENN_DEX_SNUBBULL 352 +#define HOENN_DEX_GRANBULL 353 +#define HOENN_DEX_QWILFISH 354 +#define HOENN_DEX_SCIZOR 355 +#define HOENN_DEX_SHUCKLE 356 +#define HOENN_DEX_HERACROSS 168 +#define HOENN_DEX_SNEASEL 357 +#define HOENN_DEX_TEDDIURSA 358 +#define HOENN_DEX_URSARING 359 +#define HOENN_DEX_SLUGMA 103 +#define HOENN_DEX_MAGCARGO 104 +#define HOENN_DEX_SWINUB 360 +#define HOENN_DEX_PILOSWINE 361 +#define HOENN_DEX_CORSOLA 180 +#define HOENN_DEX_REMORAID 362 +#define HOENN_DEX_OCTILLERY 363 +#define HOENN_DEX_DELIBIRD 364 +#define HOENN_DEX_MANTINE 365 +#define HOENN_DEX_SKARMORY 115 +#define HOENN_DEX_HOUNDOUR 366 +#define HOENN_DEX_HOUNDOOM 367 +#define HOENN_DEX_KINGDRA 186 +#define HOENN_DEX_PHANPY 165 +#define HOENN_DEX_DONPHAN 166 +#define HOENN_DEX_PORYGON2 368 +#define HOENN_DEX_STANTLER 369 +#define HOENN_DEX_SMEARGLE 370 +#define HOENN_DEX_TYROGUE 371 +#define HOENN_DEX_HITMONTOP 372 +#define HOENN_DEX_SMOOCHUM 373 +#define HOENN_DEX_ELEKID 374 +#define HOENN_DEX_MAGBY 375 +#define HOENN_DEX_MILTANK 376 +#define HOENN_DEX_BLISSEY 377 +#define HOENN_DEX_RAIKOU 378 +#define HOENN_DEX_ENTEI 379 +#define HOENN_DEX_SUICUNE 380 +#define HOENN_DEX_LARVITAR 381 +#define HOENN_DEX_PUPITAR 382 +#define HOENN_DEX_TYRANITAR 383 +#define HOENN_DEX_LUGIA 384 +#define HOENN_DEX_HO_OH 385 +#define HOENN_DEX_CELEBI 386 + +#define HOENN_DEX_OLD_UNOWN_B 387 +#define HOENN_DEX_OLD_UNOWN_C 388 +#define HOENN_DEX_OLD_UNOWN_D 389 +#define HOENN_DEX_OLD_UNOWN_E 390 +#define HOENN_DEX_OLD_UNOWN_F 391 +#define HOENN_DEX_OLD_UNOWN_G 392 +#define HOENN_DEX_OLD_UNOWN_H 393 +#define HOENN_DEX_OLD_UNOWN_I 394 +#define HOENN_DEX_OLD_UNOWN_J 395 +#define HOENN_DEX_OLD_UNOWN_K 396 +#define HOENN_DEX_OLD_UNOWN_L 397 +#define HOENN_DEX_OLD_UNOWN_M 398 +#define HOENN_DEX_OLD_UNOWN_N 399 +#define HOENN_DEX_OLD_UNOWN_O 400 +#define HOENN_DEX_OLD_UNOWN_P 401 +#define HOENN_DEX_OLD_UNOWN_Q 402 +#define HOENN_DEX_OLD_UNOWN_R 403 +#define HOENN_DEX_OLD_UNOWN_S 404 +#define HOENN_DEX_OLD_UNOWN_T 405 +#define HOENN_DEX_OLD_UNOWN_U 406 +#define HOENN_DEX_OLD_UNOWN_V 407 +#define HOENN_DEX_OLD_UNOWN_W 408 +#define HOENN_DEX_OLD_UNOWN_X 409 +#define HOENN_DEX_OLD_UNOWN_Y 410 +#define HOENN_DEX_OLD_UNOWN_Z 411 + +#define HOENN_DEX_TREECKO 1 +#define HOENN_DEX_GROVYLE 2 +#define HOENN_DEX_SCEPTILE 3 +#define HOENN_DEX_TORCHIC 4 +#define HOENN_DEX_COMBUSKEN 5 +#define HOENN_DEX_BLAZIKEN 6 +#define HOENN_DEX_MUDKIP 7 +#define HOENN_DEX_MARSHTOMP 8 +#define HOENN_DEX_SWAMPERT 9 +#define HOENN_DEX_POOCHYENA 10 +#define HOENN_DEX_MIGHTYENA 11 +#define HOENN_DEX_ZIGZAGOON 12 +#define HOENN_DEX_LINOONE 13 +#define HOENN_DEX_WURMPLE 14 +#define HOENN_DEX_SILCOON 15 +#define HOENN_DEX_BEAUTIFLY 16 +#define HOENN_DEX_CASCOON 17 +#define HOENN_DEX_DUSTOX 18 +#define HOENN_DEX_LOTAD 19 +#define HOENN_DEX_LOMBRE 20 +#define HOENN_DEX_LUDICOLO 21 +#define HOENN_DEX_SEEDOT 22 +#define HOENN_DEX_NUZLEAF 23 +#define HOENN_DEX_SHIFTRY 24 +#define HOENN_DEX_NINCADA 42 +#define HOENN_DEX_NINJASK 43 +#define HOENN_DEX_SHEDINJA 44 +#define HOENN_DEX_TAILLOW 25 +#define HOENN_DEX_SWELLOW 26 +#define HOENN_DEX_SHROOMISH 34 +#define HOENN_DEX_BRELOOM 35 +#define HOENN_DEX_SPINDA 114 +#define HOENN_DEX_WINGULL 27 +#define HOENN_DEX_PELIPPER 28 +#define HOENN_DEX_SURSKIT 32 +#define HOENN_DEX_MASQUERAIN 33 +#define HOENN_DEX_WAILMER 99 +#define HOENN_DEX_WAILORD 100 +#define HOENN_DEX_SKITTY 61 +#define HOENN_DEX_DELCATTY 62 +#define HOENN_DEX_KECLEON 145 +#define HOENN_DEX_BALTOY 131 +#define HOENN_DEX_CLAYDOL 132 +#define HOENN_DEX_NOSEPASS 60 +#define HOENN_DEX_TORKOAL 105 +#define HOENN_DEX_SABLEYE 68 +#define HOENN_DEX_BARBOACH 127 +#define HOENN_DEX_WHISCASH 128 +#define HOENN_DEX_LUVDISC 183 +#define HOENN_DEX_CORPHISH 129 +#define HOENN_DEX_CRAWDAUNT 130 +#define HOENN_DEX_FEEBAS 140 +#define HOENN_DEX_MILOTIC 141 +#define HOENN_DEX_CARVANHA 97 +#define HOENN_DEX_SHARPEDO 98 +#define HOENN_DEX_TRAPINCH 116 +#define HOENN_DEX_VIBRAVA 117 +#define HOENN_DEX_FLYGON 118 +#define HOENN_DEX_MAKUHITA 48 +#define HOENN_DEX_HARIYAMA 49 +#define HOENN_DEX_ELECTRIKE 78 +#define HOENN_DEX_MANECTRIC 79 +#define HOENN_DEX_NUMEL 101 +#define HOENN_DEX_CAMERUPT 102 +#define HOENN_DEX_SPHEAL 173 +#define HOENN_DEX_SEALEO 174 +#define HOENN_DEX_WALREIN 175 +#define HOENN_DEX_CACNEA 119 +#define HOENN_DEX_CACTURNE 120 +#define HOENN_DEX_SNORUNT 171 +#define HOENN_DEX_GLALIE 172 +#define HOENN_DEX_LUNATONE 125 +#define HOENN_DEX_SOLROCK 126 +#define HOENN_DEX_AZURILL 54 +#define HOENN_DEX_SPOINK 110 +#define HOENN_DEX_GRUMPIG 111 +#define HOENN_DEX_PLUSLE 80 +#define HOENN_DEX_MINUN 81 +#define HOENN_DEX_MAWILE 69 +#define HOENN_DEX_MEDITITE 76 +#define HOENN_DEX_MEDICHAM 77 +#define HOENN_DEX_SWABLU 121 +#define HOENN_DEX_ALTARIA 122 +#define HOENN_DEX_WYNAUT 160 +#define HOENN_DEX_DUSKULL 148 +#define HOENN_DEX_DUSCLOPS 149 +#define HOENN_DEX_ROSELIA 94 +#define HOENN_DEX_SLAKOTH 36 +#define HOENN_DEX_VIGOROTH 37 +#define HOENN_DEX_SLAKING 38 +#define HOENN_DEX_GULPIN 95 +#define HOENN_DEX_SWALOT 96 +#define HOENN_DEX_TROPIUS 150 +#define HOENN_DEX_WHISMUR 45 +#define HOENN_DEX_LOUDRED 46 +#define HOENN_DEX_EXPLOUD 47 +#define HOENN_DEX_CLAMPERL 176 +#define HOENN_DEX_HUNTAIL 177 +#define HOENN_DEX_GOREBYSS 178 +#define HOENN_DEX_ABSOL 152 +#define HOENN_DEX_SHUPPET 146 +#define HOENN_DEX_BANETTE 147 +#define HOENN_DEX_SEVIPER 124 +#define HOENN_DEX_ZANGOOSE 123 +#define HOENN_DEX_RELICANTH 179 +#define HOENN_DEX_ARON 70 +#define HOENN_DEX_LAIRON 71 +#define HOENN_DEX_AGGRON 72 +#define HOENN_DEX_CASTFORM 142 +#define HOENN_DEX_VOLBEAT 86 +#define HOENN_DEX_ILLUMISE 87 +#define HOENN_DEX_LILEEP 133 +#define HOENN_DEX_CRADILY 134 +#define HOENN_DEX_ANORITH 135 +#define HOENN_DEX_ARMALDO 136 +#define HOENN_DEX_RALTS 29 +#define HOENN_DEX_KIRLIA 30 +#define HOENN_DEX_GARDEVOIR 31 +#define HOENN_DEX_BAGON 187 +#define HOENN_DEX_SHELGON 188 +#define HOENN_DEX_SALAMENCE 189 +#define HOENN_DEX_BELDUM 190 +#define HOENN_DEX_METANG 191 +#define HOENN_DEX_METAGROSS 192 +#define HOENN_DEX_REGIROCK 193 +#define HOENN_DEX_REGICE 194 +#define HOENN_DEX_REGISTEEL 195 +#define HOENN_DEX_KYOGRE 198 +#define HOENN_DEX_GROUDON 199 +#define HOENN_DEX_RAYQUAZA 200 +#define HOENN_DEX_LATIAS 196 +#define HOENN_DEX_LATIOS 197 +#define HOENN_DEX_JIRACHI 201 +#define HOENN_DEX_DEOXYS 202 +#define HOENN_DEX_CHIMECHO 151 + #endif // GUARD_CONSTANTS_SPECIES_H diff --git a/src/pokemon.c b/src/pokemon.c index 7c010cd391..5850712540 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -112,9 +112,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}; -const u16 gSpeciesToHoennPokedexNum[] = {203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 156, 157, 112, 113, 227, 228, 229, 230, 231, 232, 233, 234, 153, 154, 138, 139, 63, 64, 88, 89, 90, 235, 236, 237, 238, 239, 240, 241, 242, 158, 159, 243, 244, 245, 246, 247, 248, 249, 39, 40, 41, 73, 74, 75, 250, 251, 252, 66, 67, 57, 58, 59, 253, 254, 255, 256, 82, 83, 257, 92, 93, 258, 259, 106, 107, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 84, 85, 270, 271, 272, 273, 274, 275, 276, 108, 109, 169, 170, 277, 278, 279, 184, 185, 50, 51, 143, 144, 280, 281, 282, 283, 284, 167, 285, 52, 53, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 65, 181, 182, 155, 324, 137, 325, 326, 162, 163, 327, 328, 329, 91, 55, 56, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 161, 164, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 168, 357, 358, 359, 103, 104, 360, 361, 180, 362, 363, 364, 365, 115, 366, 367, 186, 165, 166, 368, 369, 370, 371, 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, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 42, 43, 44, 25, 26, 34, 35, 114, 27, 28, 32, 33, 99, 100, 61, 62, 145, 131, 132, 60, 105, 68, 127, 128, 183, 129, 130, 140, 141, 97, 98, 116, 117, 118, 48, 49, 78, 79, 101, 102, 173, 174, 175, 119, 120, 171, 172, 125, 126, 54, 110, 111, 80, 81, 69, 76, 77, 121, 122, 160, 148, 149, 94, 36, 37, 38, 95, 96, 150, 45, 46, 47, 176, 177, 178, 152, 146, 147, 124, 123, 179, 70, 71, 72, 142, 86, 87, 133, 134, 135, 136, 29, 30, 31, 187, 188, 189, 190, 191, 192, 193, 194, 195, 198, 199, 200, 196, 197, 201, 202, 151}; -const u16 gSpeciesToNationalPokedexNum[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 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, 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, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 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, 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, 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, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 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, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 290, 291, 292, 276, 277, 285, 286, 327, 278, 279, 283, 284, 320, 321, 300, 301, 352, 343, 344, 299, 324, 302, 339, 340, 370, 341, 342, 349, 350, 318, 319, 328, 329, 330, 296, 297, 309, 310, 322, 323, 363, 364, 365, 331, 332, 361, 362, 337, 338, 298, 325, 326, 311, 312, 303, 307, 308, 333, 334, 360, 355, 356, 315, 287, 288, 289, 316, 317, 357, 293, 294, 295, 366, 367, 368, 359, 353, 354, 336, 335, 369, 304, 305, 306, 351, 313, 314, 345, 346, 347, 348, 280, 281, 282, 371, 372, 373, 374, 375, 376, 377, 378, 379, 382, 383, 384, 380, 381, 385, 386, 358}; -const u16 gHoennToNationalOrder[] = {252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 63, 64, 65, 290, 291, 292, 293, 294, 295, 296, 297, 118, 119, 129, 130, 298, 183, 184, 74, 75, 76, 299, 300, 301, 41, 42, 169, 72, 73, 302, 303, 304, 305, 306, 66, 67, 68, 307, 308, 309, 310, 311, 312, 81, 82, 100, 101, 313, 314, 43, 44, 45, 182, 84, 85, 315, 316, 317, 318, 319, 320, 321, 322, 323, 218, 219, 324, 88, 89, 109, 110, 325, 326, 27, 28, 327, 227, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 174, 39, 40, 349, 350, 351, 120, 121, 352, 353, 354, 355, 356, 357, 358, 359, 37, 38, 172, 25, 26, 54, 55, 360, 202, 177, 178, 203, 231, 232, 127, 214, 111, 112, 361, 362, 363, 364, 365, 366, 367, 368, 369, 222, 170, 171, 370, 116, 117, 230, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 46, 47, 48, 49, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 69, 70, 71, 77, 78, 79, 80, 83, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 103, 104, 105, 106, 107, 108, 113, 114, 115, 122, 123, 124, 125, 126, 128, 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, 162, 163, 164, 165, 166, 167, 168, 173, 175, 176, 179, 180, 181, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 216, 217, 220, 221, 223, 224, 225, 226, 228, 229, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 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}; +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 +}; + +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 +}; + +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 struct SpindaSpot gSpindaSpotGraphics[] = { From e2f5e7344593c980b1fbce0a67ab4d57ff76fcd7 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 23:04:46 +0200 Subject: [PATCH 111/174] More battle dome --- asm/battle_frontier_1.s | 1048 ++------------------------------------ asm/battle_frontier_2.s | 80 +-- asm/battle_tent.s | 18 +- asm/battle_tower.s | 92 ++-- include/battle_message.h | 1 + include/global.h | 10 +- src/battle_frontier_1.c | 440 ++++++++++++++-- src/battle_message.c | 2 +- sym_ewram.txt | 2 +- 9 files changed, 532 insertions(+), 1161 deletions(-) diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index 6715dadea7..11f215a836 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -6,991 +6,11 @@ .text - thumb_func_start sub_818F9B0 -sub_818F9B0: @ 818F9B0 - push {lr} - ldr r0, =gStringVar1 - ldr r2, =gRoundsStringTable - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - ldr r3, =0x00000cb2 - adds r1, r3 - ldrh r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .pool - thumb_func_end sub_818F9B0 - thumb_func_start sub_818F9E0 -sub_818F9E0: @ 818F9E0 - push {lr} - ldr r0, =gStringVar1 - ldr r2, =gRoundsStringTable - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - ldr r3, =0x00000cb2 - adds r1, r3 - ldrh r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r0, =gStringVar2 - ldr r1, =gTrainerBattleOpponent_A - ldrh r1, [r1] - bl sub_8195898 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818F9E0 - thumb_func_start sub_818FA20 -sub_818FA20: @ 818FA20 - push {r4,r5,lr} - ldr r1, =gUnknown_0203CD70 - movs r0, 0 - str r0, [r1] - ldr r4, =gPlayerParty - adds r0, r4, 0 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - ldr r5, =gUnknown_0203CD74 - str r0, [r5] - adds r4, 0x64 - adds r0, r4, 0 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - ldr r1, [r5] - adds r1, r0 - str r1, [r5] - bl CalculatePlayerPartyCount - ldr r0, =gTrainerBattleOpponent_A - ldrh r0, [r0] - bl sub_8195358 - lsls r0, 16 - lsrs r0, 16 - bl sub_818FBDC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818FA20 - thumb_func_start sub_818FA74 -sub_818FA74: @ 818FA74 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - adds r5, r2, 0 - str r3, [sp, 0x14] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x28] - lsls r5, 24 - lsrs r5, 24 - add r0, sp, 0xC - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - ldr r0, [sp, 0x28] - bl sub_8190168 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - str r6, [sp, 0x2C] - bl sub_8165C40 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x64 - ldr r4, [sp, 0x10] - adds r3, r4, 0 - muls r3, r0 - str r3, [sp, 0x18] - ldr r6, =gEnemyParty - adds r0, r3, r6 - ldr r7, =gSaveBlock2Ptr - ldr r4, [r7] - lsls r5, 1 - ldr r3, [sp, 0x28] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 1 - adds r1, r5, r1 - ldr r6, =0x00000d64 - adds r4, r6 - adds r4, r1 - ldrh r3, [r4] - ldr r7, =gUnknown_0203BC8C - ldr r7, [r7] - mov r8, r7 - lsls r3, 4 - add r3, r8 - ldrh r1, [r3] - ldrb r3, [r3, 0xC] - ldr r6, [sp, 0x2C] - str r6, [sp] - ldrh r4, [r4] - lsls r4, 4 - add r4, r8 - ldrb r4, [r4, 0xB] - str r4, [sp, 0x4] - ldr r7, [sp, 0x14] - str r7, [sp, 0x8] - bl CreateMonWithEVSpreadPersonalityOTID - add r0, sp, 0xC - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - movs r6, 0 - ldr r2, [sp, 0x18] - str r2, [sp, 0x1C] - mov r10, r5 - ldr r3, =0x00000d64 - mov r9, r3 - ldr r3, =gUnknown_0203BC8C - mov r4, r10 - str r4, [sp, 0x20] -_0818FB18: - ldr r7, =gSaveBlock2Ptr - ldr r1, [r7] - ldr r2, [sp, 0x28] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 1 - mov r8, r0 - mov r5, r10 - add r5, r8 - add r1, r9 - adds r1, r5 - ldrh r0, [r1] - ldr r1, [r3] - lsls r0, 4 - adds r0, r1 - lsls r4, r6, 1 - adds r0, 0x2 - adds r0, r4 - ldrh r1, [r0] - lsls r2, r6, 24 - lsrs r2, 24 - mov r12, r2 - ldr r7, [sp, 0x1C] - ldr r2, =gEnemyParty - adds r0, r7, r2 - mov r2, r12 - str r3, [sp, 0x24] - bl SetMonMoveSlot - ldr r7, =gSaveBlock2Ptr - ldr r0, [r7] - add r0, r9 - adds r0, r5 - ldrh r0, [r0] - ldr r3, [sp, 0x24] - ldr r1, [r3] - lsls r0, 4 - adds r0, r1 - adds r0, 0x2 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0xDA - bne _0818FB74 - movs r1, 0 - add r0, sp, 0xC - strb r1, [r0] -_0818FB74: - adds r6, 0x1 - cmp r6, 0x3 - ble _0818FB18 - movs r0, 0x64 - ldr r1, [sp, 0x10] - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x20 - add r2, sp, 0xC - bl SetMonData - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, [sp, 0x20] - add r1, r8 - ldr r2, =0x00000d64 - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - ldr r1, =gUnknown_0203BC8C - ldr r1, [r1] - lsls r0, 4 - adds r0, r1 - ldrb r2, [r0, 0xA] - lsls r2, 1 - ldr r0, =gBattleFrontierHeldItems - adds r2, r0 - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818FA74 - - thumb_func_start sub_818FBDC -sub_818FBDC: @ 818FBDC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - movs r6, 0 - bl ZeroEnemyPartyMons - mov r0, r8 - bl sub_818FC78 - adds r5, r0, 0 - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsrs r7, r4, 16 - lsls r0, 16 - orrs r7, r0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bls _0818FC46 - movs r4, 0 -_0818FC20: - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - beq _0818FC3C - lsls r2, r4, 24 - lsrs r2, 24 - adds r0, r6, 0 - mov r1, r8 - adds r3, r7, 0 - bl sub_818FA74 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0818FC3C: - asrs r5, 1 - adds r4, 0x1 - cmp r4, 0x2 - ble _0818FC20 - b _0818FC6C -_0818FC46: - movs r4, 0x2 -_0818FC48: - movs r0, 0x4 - ands r0, r5 - cmp r0, 0 - beq _0818FC64 - lsls r2, r4, 24 - lsrs r2, 24 - adds r0, r6, 0 - mov r1, r8 - adds r3, r7, 0 - bl sub_818FA74 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0818FC64: - lsls r5, 1 - subs r4, 0x1 - cmp r4, 0 - bge _0818FC48 -_0818FC6C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_818FBDC - - thumb_func_start sub_818FC78 -sub_818FC78: @ 818FC78 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0818FCA2 - adds r0, r4, 0 - movs r1, 0 - bl sub_818FCBC - cmp r0, 0 - bne _0818FCB6 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_818FDB8 - b _0818FCB6 -_0818FCA2: - adds r0, r5, 0 - movs r1, 0 - bl sub_818FDB8 - cmp r0, 0 - bne _0818FCB6 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_818FCBC -_0818FCB6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_818FC78 - - thumb_func_start sub_818FCBC -sub_818FCBC: @ 818FCBC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0xC] - movs r0, 0 - mov r9, r0 - mov r1, r8 - lsls r1, 2 - str r1, [sp, 0x18] -_0818FCDE: - mov r2, r9 - lsls r0, r2, 2 - mov r2, sp - adds r1, r2, r0 - movs r0, 0 - str r0, [r1] - movs r7, 0 - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x14] - adds r5, r1, 0 - mov r1, r9 - lsls r1, 1 - str r1, [sp, 0x10] -_0818FCFA: - movs r6, 0 - adds r2, r7, 0x1 - mov r10, r2 -_0818FD00: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, [sp, 0x18] - adds r0, r1, r2 - ldr r2, =0x00000d24 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - ldr r2, =0x000003fe - cmp r0, r2 - bne _0818FD3C - mov r1, r9 - lsls r0, r1, 24 - lsls r1, r7, 24 - lsrs r0, 24 - lsrs r1, 24 - bl sub_81A5060 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - b _0818FD60 - .pool -_0818FD3C: - mov r2, r8 - lsls r0, r2, 1 - add r0, r8 - lsls r0, 1 - ldr r2, [sp, 0x10] - adds r0, r2, r0 - ldr r2, =0x00000d64 - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =gUnknown_0203BC8C - ldr r1, [r1] - lsls r0, 4 - adds r0, r1 - lsls r1, r7, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r4, [r0] -_0818FD60: - movs r0, 0x64 - muls r0, r6 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - bl sub_818FFC0 - ldr r1, [r5] - adds r1, r0 - str r1, [r5] - adds r6, 0x1 - cmp r6, 0x2 - ble _0818FD00 - mov r7, r10 - cmp r7, 0x3 - ble _0818FCFA - ldr r0, [sp, 0x14] - mov r9, r0 - cmp r0, 0x2 - ble _0818FCDE - mov r0, sp - ldr r1, [sp, 0xC] - bl sub_818FEB4 - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818FCBC - - thumb_func_start sub_818FDB8 -sub_818FDB8: @ 818FDB8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0xC] - movs r0, 0 - mov r9, r0 - mov r1, r8 - lsls r1, 2 - str r1, [sp, 0x18] -_0818FDDA: - mov r2, r9 - lsls r0, r2, 2 - mov r2, sp - adds r1, r2, r0 - movs r0, 0 - str r0, [r1] - movs r7, 0 - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x14] - adds r5, r1, 0 - mov r1, r9 - lsls r1, 1 - str r1, [sp, 0x10] -_0818FDF6: - movs r6, 0 - adds r2, r7, 0x1 - mov r10, r2 -_0818FDFC: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, [sp, 0x18] - adds r0, r1, r2 - ldr r2, =0x00000d24 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - ldr r2, =0x000003fe - cmp r0, r2 - bne _0818FE38 - mov r1, r9 - lsls r0, r1, 24 - lsls r1, r7, 24 - lsrs r0, 24 - lsrs r1, 24 - bl sub_81A5060 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - b _0818FE5C - .pool -_0818FE38: - mov r2, r8 - lsls r0, r2, 1 - add r0, r8 - lsls r0, 1 - ldr r2, [sp, 0x10] - adds r0, r2, r0 - ldr r2, =0x00000d64 - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =gUnknown_0203BC8C - ldr r1, [r1] - lsls r0, 4 - adds r0, r1 - lsls r1, r7, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r4, [r0] -_0818FE5C: - movs r0, 0x64 - muls r0, r6 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1 - bl sub_818FFC0 - ldr r1, [r5] - adds r1, r0 - str r1, [r5] - adds r6, 0x1 - cmp r6, 0x2 - ble _0818FDFC - mov r7, r10 - cmp r7, 0x3 - ble _0818FDF6 - ldr r0, [sp, 0x14] - mov r9, r0 - cmp r0, 0x2 - ble _0818FDDA - mov r0, sp - ldr r1, [sp, 0xC] - bl sub_818FEB4 - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818FDB8 - - thumb_func_start sub_818FEB4 -sub_818FEB4: @ 818FEB4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - str r0, [sp, 0xC] - movs r3, 0x2 - add r0, sp, 0x8 -_0818FECE: - str r3, [r0] - subs r0, 0x4 - subs r3, 0x1 - cmp r3, 0 - bge _0818FECE - mov r3, r10 - ldr r2, [r3] - ldr r0, [r3, 0x4] - cmp r2, r0 - bne _0818FF20 - ldr r0, [r3, 0x8] - cmp r2, r0 - bne _0818FF20 - cmp r1, 0 - beq _0818FFAA - movs r3, 0 - ldr r4, =gBitTable -_0818FEF0: - str r3, [sp, 0x14] - bl Random - movs r1, 0x3 - ands r1, r0 - ldr r3, [sp, 0x14] - cmp r1, 0x3 - beq _0818FF16 - lsls r0, r1, 2 - adds r0, r4 - ldr r1, [r0] - ldr r0, [sp, 0xC] - ands r0, r1 - cmp r0, 0 - bne _0818FF16 - ldr r0, [sp, 0xC] - orrs r0, r1 - str r0, [sp, 0xC] - adds r3, 0x1 -_0818FF16: - cmp r3, 0x2 - bne _0818FEF0 - b _0818FFAA - .pool -_0818FF20: - movs r3, 0 - mov r9, sp - mov r8, r10 -_0818FF26: - adds r2, r3, 0x1 - cmp r2, 0x2 - bgt _0818FF84 - mov r6, r8 - mov r7, r9 - lsls r0, r2, 2 - mov r1, sp - adds r5, r0, r1 - mov r1, r10 - adds r4, r0, r1 -_0818FF3A: - ldr r0, [r6] - ldr r1, [r4] - cmp r0, r1 - bge _0818FF4E - str r1, [r6] - str r0, [r4] - ldr r1, [r7] - ldr r0, [r5] - str r0, [r7] - str r1, [r5] -_0818FF4E: - ldr r1, [r6] - ldr r0, [r4] - cmp r1, r0 - bne _0818FF7A - str r2, [sp, 0x10] - str r3, [sp, 0x14] - bl Random - movs r1, 0x1 - ands r1, r0 - ldr r2, [sp, 0x10] - ldr r3, [sp, 0x14] - cmp r1, 0 - beq _0818FF7A - ldr r1, [r6] - ldr r0, [r4] - str r0, [r6] - str r1, [r4] - ldr r1, [r7] - ldr r0, [r5] - str r0, [r7] - str r1, [r5] -_0818FF7A: - adds r5, 0x4 - adds r4, 0x4 - adds r2, 0x1 - cmp r2, 0x2 - ble _0818FF3A -_0818FF84: - movs r4, 0x4 - add r9, r4 - add r8, r4 - adds r3, 0x1 - cmp r3, 0x1 - ble _0818FF26 - ldr r2, =gBitTable - mov r1, sp - movs r3, 0x1 -_0818FF96: - ldm r1!, {r0} - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ldr r4, [sp, 0xC] - orrs r4, r0 - str r4, [sp, 0xC] - subs r3, 0x1 - cmp r3, 0 - bge _0818FF96 -_0818FFAA: - ldr r0, [sp, 0xC] - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818FEB4 - - thumb_func_start sub_818FFC0 -sub_818FFC0: @ 818FFC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r3, r0, 0 - adds r4, r1, 0 - str r2, [sp] - movs r6, 0 - movs r2, 0x14 - cmp r3, 0 - beq _0818FFF0 - ldr r0, =0x0000ffff - cmp r3, r0 - beq _0818FFF0 - ldr r0, =gBattleMoves - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3, 0x1] - cmp r0, 0 - bne _0818FFFC -_0818FFF0: - movs r0, 0 - b _08190156 - .pool -_0818FFFC: - ldr r1, =gBaseStats - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x6] - mov r10, r1 - ldrb r1, [r0, 0x7] - mov r9, r1 - ldrb r0, [r0, 0x16] - mov r8, r0 - ldrb r3, [r3, 0x2] - str r3, [sp, 0x4] - cmp r0, 0x1A - bne _0819002C - cmp r3, 0x4 - bne _0819002C - ldr r0, [sp] - cmp r0, 0x1 - bne _081900AA - movs r2, 0x8 - b _081900A4 - .pool -_0819002C: - ldr r0, =gTypeEffectiveness - adds r1, r6, r0 - ldrb r0, [r1] - ldr r7, =gTypeEffectiveness - cmp r0, 0xFF - beq _081900A4 - adds r4, r1, 0 -_0819003A: - ldrb r0, [r4] - cmp r0, 0xFE - beq _08190096 - ldrb r0, [r4] - ldr r1, [sp, 0x4] - cmp r0, r1 - bne _08190096 - ldrb r0, [r4, 0x1] - adds r5, r6, 0x1 - cmp r0, r10 - bne _0819006C - adds r1, r6, 0x2 - mov r0, r8 - cmp r0, 0x19 - bne _0819005E - ldrb r0, [r4, 0x2] - cmp r0, 0x28 - bne _0819006C -_0819005E: - adds r0, r1, r7 - ldrb r0, [r0] - muls r0, r2 - movs r1, 0xA - bl __divsi3 - adds r2, r0, 0 -_0819006C: - adds r0, r5, r7 - ldrb r0, [r0] - cmp r0, r9 - bne _08190096 - cmp r10, r9 - beq _08190096 - adds r1, r6, 0x2 - mov r0, r8 - cmp r0, 0x19 - bne _08190088 - adds r0, r1, r7 - ldrb r0, [r0] - cmp r0, 0x28 - bne _08190096 -_08190088: - adds r0, r1, r7 - ldrb r0, [r0] - muls r0, r2 - movs r1, 0xA - bl __divsi3 - adds r2, r0, 0 -_08190096: - adds r4, 0x3 - adds r6, 0x3 - ldr r1, =gTypeEffectiveness - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0819003A -_081900A4: - ldr r0, [sp] - cmp r0, 0x1 - beq _081900E0 -_081900AA: - ldr r1, [sp] - cmp r1, 0x1 - bgt _081900BC - cmp r1, 0 - beq _081900C4 - b _08190154 - .pool -_081900BC: - ldr r0, [sp] - cmp r0, 0x2 - beq _08190114 - b _08190154 -_081900C4: - cmp r2, 0xA - beq _08190146 - cmp r2, 0xA - ble _08190146 - cmp r2, 0x28 - beq _0819014A - cmp r2, 0x28 - bgt _081900DA - cmp r2, 0x14 - beq _08190104 - b _08190146 -_081900DA: - cmp r2, 0x50 - bne _08190146 - b _08190100 -_081900E0: - cmp r2, 0xA - beq _08190104 - cmp r2, 0xA - bgt _081900F2 - cmp r2, 0 - beq _08190100 - cmp r2, 0x5 - beq _0819014A - b _08190146 -_081900F2: - cmp r2, 0x28 - beq _08190108 - cmp r2, 0x28 - ble _08190146 - cmp r2, 0x50 - beq _0819010E - b _08190146 -_08190100: - movs r2, 0x8 - b _08190154 -_08190104: - movs r2, 0x2 - b _08190154 -_08190108: - movs r2, 0x2 - negs r2, r2 - b _08190154 -_0819010E: - movs r2, 0x4 - negs r2, r2 - b _08190154 -_08190114: - cmp r2, 0xA - beq _08190146 - cmp r2, 0xA - bgt _08190126 - cmp r2, 0 - beq _0819013A - cmp r2, 0x5 - beq _08190140 - b _08190146 -_08190126: - cmp r2, 0x28 - beq _0819014E - cmp r2, 0x28 - bgt _08190134 - cmp r2, 0x14 - beq _0819014A - b _08190146 -_08190134: - cmp r2, 0x50 - beq _08190152 - b _08190146 -_0819013A: - movs r2, 0x10 - negs r2, r2 - b _08190154 -_08190140: - movs r2, 0x8 - negs r2, r2 - b _08190154 -_08190146: - movs r2, 0 - b _08190154 -_0819014A: - movs r2, 0x4 - b _08190154 -_0819014E: - movs r2, 0xC - b _08190154 -_08190152: - movs r2, 0x14 -_08190154: - adds r0, r2, 0 -_08190156: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818FFC0 - - thumb_func_start sub_8190168 -sub_8190168: @ 8190168 + thumb_func_start GetDomeTrainerMonIvs +GetDomeTrainerMonIvs: @ 8190168 push {lr} lsls r0, 16 lsrs r0, 16 @@ -1020,7 +40,7 @@ _0819019A: adds r0, r1, 0 pop {r1} bx r1 - thumb_func_end sub_8190168 + thumb_func_end GetDomeTrainerMonIvs thumb_func_start sub_81901A0 sub_81901A0: @ 81901A0 @@ -1292,7 +312,7 @@ sub_81903B8: @ 81903B8 bl sub_81902AC lsls r0, 16 lsrs r0, 16 - bl sub_8195358 + bl TrainerIdToTournamentId strh r0, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] @@ -5282,7 +4302,7 @@ _08192690: adds r0, r3 adds r0, r5 ldrh r1, [r0] - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r0, [r0] lsls r1, 4 adds r1, r0 @@ -5538,7 +4558,7 @@ _081928E4: adds r1, r2 adds r1, r0 ldrh r1, [r1] - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r0, [r0] lsls r1, 4 _081928FA: @@ -5683,7 +4703,7 @@ _08192A20: add r1, r12 adds r1, r0 ldrh r0, [r1] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r1, [r1] lsls r0, 4 adds r0, r1 @@ -5919,7 +4939,7 @@ _08192C0C: bge _08192C0C b _08192D70 _08192C24: - ldr r4, =gUnknown_0203BC8C + ldr r4, =gFacilityTrainerMons mov r10, r4 ldr r1, [sp, 0x3C] ldr r2, [sp, 0x20] @@ -6965,7 +5985,7 @@ _08193490: adds r2, r1 adds r2, r0 ldrh r1, [r2] - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r0, [r0] lsls r1, 4 adds r1, r0 @@ -7114,7 +6134,7 @@ _081935D8: adds r2, r1 adds r2, r0 ldrh r1, [r2] - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r0, [r0] lsls r1, 4 adds r1, r0 @@ -7974,7 +6994,7 @@ sub_8193D7C: @ 8193D7C bne _08193E10 ldr r5, =gTrainerBattleOpponent_A ldrh r0, [r5] - bl sub_8195358 + bl TrainerIdToTournamentId ldr r4, =gSaveBlock2Ptr ldr r2, [r4] lsls r0, 2 @@ -7986,7 +7006,7 @@ sub_8193D7C: @ 8193D7C orrs r0, r1 strb r0, [r2] ldrh r0, [r5] - bl sub_8195358 + bl TrainerIdToTournamentId ldr r1, [r4] lsls r0, 2 adds r0, r1, r0 @@ -8005,7 +7025,7 @@ sub_8193D7C: @ 8193D7C orrs r1, r2 strb r1, [r0] ldrh r0, [r5] - bl sub_8195358 + bl TrainerIdToTournamentId ldr r2, [r4] lsls r0, 1 movs r3, 0xEC @@ -8027,7 +7047,7 @@ sub_8193D7C: @ 8193D7C _08193E10: ldr r5, =0x000003ff adds r0, r5, 0 - bl sub_8195358 + bl TrainerIdToTournamentId ldr r4, =gSaveBlock2Ptr ldr r2, [r4] lsls r0, 2 @@ -8039,7 +7059,7 @@ _08193E10: orrs r0, r1 strb r0, [r2] adds r0, r5, 0 - bl sub_8195358 + bl TrainerIdToTournamentId ldr r1, [r4] lsls r0, 2 adds r0, r1, r0 @@ -8057,7 +7077,7 @@ _08193E10: orrs r1, r2 strb r1, [r0] adds r0, r5, 0 - bl sub_8195358 + bl TrainerIdToTournamentId ldr r1, [r4] lsls r0, 1 movs r3, 0xEC @@ -8076,7 +7096,7 @@ _08193E10: bne _08193E92 _08193E78: adds r0, r5, 0 - bl sub_8195358 + bl TrainerIdToTournamentId ldr r2, [r4] lsls r0, 2 adds r2, r0 @@ -8127,7 +7147,7 @@ sub_8193ED0: @ 8193ED0 str r0, [sp, 0x54] movs r1, 0 str r1, [sp, 0x58] - bl sub_8165C40 + bl GetFrontierEnemyMonLevel movs r2, 0 str r2, [sp, 0x50] add r3, sp, 0x30 @@ -8193,7 +7213,7 @@ _08193F60: adds r1, r3, r5 adds r1, r0 ldrh r0, [r1] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r1, [r1] lsls r0, 4 adds r0, r1 @@ -8266,7 +7286,7 @@ _08193FEE: adds r0, r4 add r0, r8 ldrh r4, [r0] - ldr r3, =gUnknown_0203BC8C + ldr r3, =gFacilityTrainerMons ldr r0, [r3] lsls r4, 4 adds r4, r0 @@ -9729,7 +8749,7 @@ sub_8194CE4: @ 8194CE4 thumb_func_start sub_8194D48 sub_8194D48: @ 8194D48 - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gBattleFrontierMons str r0, [r1] ldr r1, =gUnknown_0203BC88 @@ -9909,10 +8929,10 @@ sub_8194EC0: @ 8194EC0 push {r4,lr} ldr r0, =gTrainerBattleOpponent_A ldrh r0, [r0] - bl sub_8195358 + bl TrainerIdToTournamentId adds r4, r0, 0 ldr r0, =0x000003ff - bl sub_8195358 + bl TrainerIdToTournamentId cmp r4, r0 ble _08194EE8 ldr r1, =gSpecialVar_Result @@ -10141,7 +9161,7 @@ _0819509E: bge _081950F4 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons mov r9, r1 ldr r2, [sp, 0x8] mov r8, r2 @@ -10189,7 +9209,7 @@ _081950F4: ldr r2, [sp, 0x2C] add r2, sp adds r2, 0x8 - ldr r3, =gUnknown_0203BC8C + ldr r3, =gFacilityTrainerMons ldr r1, [r3] lsls r0, r5, 4 adds r0, r1 @@ -10260,7 +9280,7 @@ _08195182: ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 - bl sub_8190168 + bl GetDomeTrainerMonIvs lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -10278,7 +9298,7 @@ _081951AA: adds r0, r2 adds r0, r4 ldrh r1, [r0] - ldr r3, =gUnknown_0203BC8C + ldr r3, =gFacilityTrainerMons ldr r0, [r3] lsls r1, 4 adds r1, r0 @@ -10312,7 +9332,7 @@ _081951AA: adds r0, r1 adds r0, r4 ldrh r0, [r0] - ldr r2, =gUnknown_0203BC8C + ldr r2, =gFacilityTrainerMons ldr r1, [r2] lsls r0, 4 adds r0, r1 @@ -10465,8 +9485,8 @@ _0819533E: .pool thumb_func_end sub_8194F58 - thumb_func_start sub_8195358 -sub_8195358: @ 8195358 + thumb_func_start TrainerIdToTournamentId +TrainerIdToTournamentId: @ 8195358 push {r4,r5,lr} lsls r0, 16 lsrs r3, r0, 16 @@ -10501,7 +9521,7 @@ _0819538E: pop {r1} bx r1 .pool - thumb_func_end sub_8195358 + thumb_func_end TrainerIdToTournamentId thumb_func_start sub_81953A0 sub_81953A0: @ 81953A0 @@ -10768,7 +9788,7 @@ _081955B0: ldr r2, [sp, 0x38] adds r0, r1, r2 ldrh r0, [r0] - ldr r3, =gUnknown_0203BC8C + ldr r3, =gFacilityTrainerMons mov r8, r3 ldr r2, [r3] lsls r0, 4 @@ -10873,7 +9893,7 @@ _08195682: mov r2, r8 adds r0, r1, r2 ldrh r0, [r0] - ldr r5, =gUnknown_0203BC8C + ldr r5, =gFacilityTrainerMons mov r9, r5 ldr r2, [r5] lsls r0, 4 @@ -11121,7 +10141,7 @@ sub_8195898: @ 8195898 lsls r1, 16 lsrs r5, r1, 16 movs r4, 0 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel ldr r0, =0x000003fe cmp r5, r0 bne _081958B8 diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 8f2d7b0e01..46204bb647 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -1867,7 +1867,7 @@ sub_819B484: @ 819B484 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x18] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gBattleFrontierMons str r0, [r1] ldrb r1, [r4] @@ -1948,7 +1948,7 @@ _0819B572: ldr r0, [r2] adds r0, r4 adds r0, 0x8 - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r2, [r1] lsls r5, 4 adds r2, r5, r2 @@ -1973,7 +1973,7 @@ _0819B5B8: ldr r0, [r3] adds r0, r4 adds r0, 0x8 - ldr r5, =gUnknown_0203BC8C + ldr r5, =gFacilityTrainerMons ldr r1, [r5] adds r1, r7, r1 lsls r2, r6, 1 @@ -2045,7 +2045,7 @@ sub_819B63C: @ 819B63C add r0, sp, 0xC movs r1, 0 strb r1, [r0] - ldr r2, =gUnknown_0203BC8C + ldr r2, =gFacilityTrainerMons ldr r0, =gSlateportBattleTentMons str r0, [r2] ldr r0, =gSaveBlock2Ptr @@ -2089,7 +2089,7 @@ _0819B678: adds r4, 0xC adds r0, r4 adds r0, 0x8 - ldr r3, =gUnknown_0203BC8C + ldr r3, =gFacilityTrainerMons ldr r2, [r3] mov r7, r8 lsls r5, r7, 4 @@ -2114,7 +2114,7 @@ _0819B6D4: ldr r0, [r1] adds r0, r4 adds r0, 0x8 - ldr r3, =gUnknown_0203BC8C + ldr r3, =gFacilityTrainerMons ldr r2, [r3] mov r3, r8 lsls r1, r3, 4 @@ -2145,7 +2145,7 @@ _0819B6D4: ldr r0, [r2] adds r0, r4 adds r0, 0x8 - ldr r3, =gUnknown_0203BC8C + ldr r3, =gFacilityTrainerMons ldr r1, [r3] adds r1, r5, r1 ldrb r2, [r1, 0xA] @@ -3936,7 +3936,7 @@ sub_819C5D0: @ 819C5D0 sub_819C634: @ 819C634 push {r4-r7,lr} lsls r0, 16 - ldr r2, =gUnknown_0203BC8C + ldr r2, =gFacilityTrainerMons ldr r1, [r2] lsrs r0, 12 adds r0, r1 @@ -20059,7 +20059,7 @@ _081A4E46: bl ZeroEnemyPartyMons movs r1, 0 str r1, [sp, 0x18] - bl sub_8165C40 + bl GetFrontierEnemyMonLevel lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] @@ -22413,7 +22413,7 @@ _081A627A: lsls r0, 16 lsrs r0, 16 mov r9, r0 - ldr r4, =gUnknown_0203BC8C + ldr r4, =gFacilityTrainerMons ldr r2, [r4] lsls r1, r0, 4 adds r0, r1, r2 @@ -22458,7 +22458,7 @@ _081A62D0: cmp r0, r5 beq _081A6302 adds r6, r4, 0 - ldr r3, =gUnknown_0203BC8C + ldr r3, =gFacilityTrainerMons mov r12, r3 mov r5, r8 ldr r3, [sp, 0x14] @@ -22493,7 +22493,7 @@ _081A631C: ldrh r1, [r3] cmp r1, 0 beq _081A6336 - ldr r6, =gUnknown_0203BC8C + ldr r6, =gFacilityTrainerMons ldr r0, [r6] ldr r6, [sp, 0x24] adds r0, r6, r0 @@ -22512,7 +22512,7 @@ _081A633E: cmp r2, r4 bne _081A636E lsls r4, r7, 1 - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r1, [r0] add r1, r8 ldrh r0, [r1] @@ -22573,12 +22573,12 @@ sub_81A63CC: @ 81A63CC ands r0, r1 cmp r0, 0x2 beq _081A63FC - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gBattleFrontierMons b _081A6400 .pool _081A63FC: - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gSlateportBattleTentMons _081A6400: str r0, [r1] @@ -22637,7 +22637,7 @@ _081A6408: adds r1, r2 strb r0, [r1] ldrh r1, [r6] - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r0, [r0] lsls r1, 4 adds r1, r0 @@ -22679,7 +22679,7 @@ sub_81A64C4: @ 81A64C4 ands r0, r1 cmp r0, 0x2 bne _081A6500 - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gSlateportBattleTentMons str r0, [r1] movs r2, 0x1E @@ -22687,7 +22687,7 @@ sub_81A64C4: @ 81A64C4 b _081A6518 .pool _081A6500: - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gBattleFrontierMons str r0, [r1] ldrb r1, [r2] @@ -22712,7 +22712,7 @@ _081A6522: mov r1, sp adds r1, 0x12 str r1, [sp, 0x1C] - ldr r2, =gUnknown_0203BC8C + ldr r2, =gFacilityTrainerMons mov r9, r2 _081A6534: ldr r4, =gSaveBlock2Ptr @@ -22879,7 +22879,7 @@ _081A666C: _081A667A: movs r2, 0 mov r8, r2 - ldr r4, =gUnknown_0203BC8C + ldr r4, =gFacilityTrainerMons mov r9, r4 _081A6682: ldr r5, =gSaveBlock2Ptr @@ -23113,7 +23113,7 @@ _081A681A: bne _081A6878 movs r2, 0x1 _081A6878: - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gBattleFrontierMons str r0, [r1] mov r1, r9 @@ -23166,7 +23166,7 @@ _081A68F2: bl sub_81A6EF0 lsls r0, 16 lsrs r7, r0, 16 - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r1, [r0] lsls r2, r7, 4 adds r4, r2, r1 @@ -23226,7 +23226,7 @@ _081A6964: ldrh r4, [r5] cmp r4, 0 beq _081A6994 - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, [r1] mov r2, r9 adds r1, r2, r0 @@ -23262,7 +23262,7 @@ _081A699C: lsls r0, 4 adds r1, r0 strh r7, [r1] - ldr r2, =gUnknown_0203BC8C + ldr r2, =gFacilityTrainerMons ldr r1, [r2] add r1, r9 ldrh r0, [r1] @@ -23307,7 +23307,7 @@ sub_81A6A08: @ 81A6A08 mov r7, r8 push {r7} sub sp, 0x18 - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gBattleFrontierMons str r0, [r1] movs r4, 0 @@ -23326,7 +23326,7 @@ _081A6A1E: movs r4, 0 ldr r0, =gUnknown_03006298 mov r8, r0 - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r6, [r0] ldr r1, =gBaseStats mov r12, r1 @@ -23423,7 +23423,7 @@ sub_81A6AEC: @ 81A6AEC push {r4-r7,lr} sub sp, 0x8 movs r7, 0 - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gBattleFrontierMons str r0, [r1] movs r4, 0 @@ -23445,7 +23445,7 @@ _081A6B0E: ldrh r6, [r0] movs r5, 0 _081A6B18: - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r1, [r0] lsls r0, r6, 4 adds r0, r1 @@ -23590,12 +23590,12 @@ sub_81A6C1C: @ 81A6C1C ands r0, r1 cmp r0, 0x2 beq _081A6C48 - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gBattleFrontierMons b _081A6C4C .pool _081A6C48: - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gSlateportBattleTentMons _081A6C4C: str r0, [r1] @@ -23615,7 +23615,7 @@ _081A6C50: lsls r1, 4 adds r2, r1 ldrh r2, [r2] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r1, [r1] lsls r2, 4 adds r2, r1 @@ -23702,7 +23702,7 @@ sub_81A6CD0: @ 81A6CD0 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x24] - bl sub_8165C40 + bl GetFrontierEnemyMonLevel lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x20] @@ -23727,7 +23727,7 @@ _081A6D4C: bl sub_81A6EF0 lsls r0, 16 lsrs r5, r0, 16 - ldr r7, =gUnknown_0203BC8C + ldr r7, =gFacilityTrainerMons ldr r1, [r7] lsls r0, r5, 4 adds r0, r1 @@ -23775,7 +23775,7 @@ _081A6DA8: cmp r4, r9 bge _081A6DDC add r2, sp, 0xC - ldr r7, =gUnknown_0203BC8C + ldr r7, =gFacilityTrainerMons ldr r0, [r7] lsls r1, r5, 4 adds r0, r1, r0 @@ -23784,7 +23784,7 @@ _081A6DA8: ldrh r0, [r0] cmp r2, r0 beq _081A6DDC - ldr r6, =gUnknown_0203BC8C + ldr r6, =gFacilityTrainerMons adds r3, r7, 0 add r2, sp, 0xC _081A6DC8: @@ -23805,7 +23805,7 @@ _081A6DDC: cmp r4, r9 bge _081A6E0C ldr r7, =gBattleFrontierHeldItems - ldr r6, =gUnknown_0203BC8C + ldr r6, =gFacilityTrainerMons add r2, sp, 0x14 lsls r3, r5, 4 _081A6DEE: @@ -23833,7 +23833,7 @@ _081A6E0C: mov r1, sp adds r1, r2 adds r1, 0xC - ldr r3, =gUnknown_0203BC8C + ldr r3, =gFacilityTrainerMons ldr r4, [r3] lsls r5, 4 mov r8, r5 @@ -23875,7 +23875,7 @@ _081A6E0C: add r0, r9 mov r8, r0 _081A6E6E: - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, [r1] adds r0, r7, r0 lsls r1, r4, 1 @@ -23898,7 +23898,7 @@ _081A6E6E: movs r1, 0x20 mov r2, r10 bl SetMonData - ldr r2, =gUnknown_0203BC8C + ldr r2, =gFacilityTrainerMons ldr r0, [r2] adds r0, r7, r0 ldrb r2, [r0, 0xA] @@ -29517,7 +29517,7 @@ _081A9C56: bl SetMonData cmp r5, 0 beq _081A9CD4 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel lsls r0, 24 lsrs r5, r0, 24 ldr r1, [sp, 0x10] diff --git a/asm/battle_tent.s b/asm/battle_tent.s index c967390d08..d643457300 100644 --- a/asm/battle_tent.s +++ b/asm/battle_tent.s @@ -22,7 +22,7 @@ sub_81B9EC0: @ 81B9EC0 mov r1, sp adds r1, 0x18 str r1, [sp, 0x2C] - ldr r5, =gUnknown_0203BC8C + ldr r5, =gFacilityTrainerMons ldr r4, =gSlateportBattleTentMons movs r2, 0 adds r3, r1, 0 @@ -73,7 +73,7 @@ _081B9F1E: ldrh r0, [r1] cmp r0, r5 beq _081B9F7C - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r1, [r0] lsls r0, r5, 4 adds r4, r0, r1 @@ -112,7 +112,7 @@ _081B9F7C: bge _081B9FD4 ldr r0, =gBattleFrontierHeldItems mov r12, r0 - ldr r7, =gUnknown_0203BC8C + ldr r7, =gFacilityTrainerMons ldr r1, [sp, 0x24] ldr r0, [sp, 0x2C] adds r4, r1, r0 @@ -155,7 +155,7 @@ _081B9FD4: lsls r6, 4 adds r1, r6 strh r5, [r1] - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r0, [r0] lsls r1, r5, 4 adds r1, r0 @@ -208,7 +208,7 @@ sub_81BA040: @ 81BA040 ldr r1, =gUnknown_0203BC88 ldr r0, =gSlateportBattleTentTrainers str r0, [r1] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gSlateportBattleTentMons str r0, [r1] ldr r7, =gSaveBlock2Ptr @@ -324,7 +324,7 @@ _081BA13E: strh r0, [r7] movs r2, 0 ldrh r0, [r7] - ldr r4, =gUnknown_0203BC8C + ldr r4, =gFacilityTrainerMons ldr r3, [r4] lsls r0, 4 adds r0, r3 @@ -356,7 +356,7 @@ _081BA180: cmp r0, r6 beq _081BA1B0 ldr r6, =gUnknown_03001298 - ldr r3, =gUnknown_0203BC8C + ldr r3, =gFacilityTrainerMons mov r2, sp _081BA198: adds r2, 0x2 @@ -386,7 +386,7 @@ _081BA1C0: beq _081BA1DE ldr r1, =gUnknown_03001298 ldrh r0, [r1] - ldr r6, =gUnknown_0203BC8C + ldr r6, =gFacilityTrainerMons ldr r1, [r6] lsls r0, 4 adds r0, r1 @@ -406,7 +406,7 @@ _081BA1E6: bne _081BA220 lsls r2, r5, 1 ldrh r0, [r7] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r4, [r1] lsls r0, 4 adds r0, r4 diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 7340ea1ce5..43dc9b19bf 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -551,7 +551,7 @@ _08162414: bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel subs r4, 0x2 cmp r4, 0x1 bhi _08162488 @@ -784,7 +784,7 @@ sub_8162614: @ 8162614 adds r6, r4, 0 lsls r1, 24 lsrs r5, r1, 24 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r4, r0 @@ -962,7 +962,7 @@ sub_81627A4: @ 81627A4 lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r4, r0 @@ -1335,7 +1335,7 @@ GetFrontierTrainerFrontSpriteId: @ 8162AA0 lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r4, r0 @@ -1462,7 +1462,7 @@ GetFrontierOpponentClass: @ 8162BD8 lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r4, r0 @@ -1602,7 +1602,7 @@ sub_8162D34: @ 8162D34 lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r4, r0 @@ -1704,7 +1704,7 @@ GetFrontierTrainerName: @ 8162E20 lsls r1, 16 lsrs r5, r1, 16 movs r4, 0 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r5, r0 @@ -1854,7 +1854,7 @@ sub_8162F68: @ 8162F68 lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r4, r0 @@ -2025,7 +2025,7 @@ sub_81630C4: @ 81630C4 add r4, sp, 0x14 movs r0, 0xFF strb r0, [r4] - bl sub_8165C40 + bl GetFrontierEnemyMonLevel lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x20] @@ -2258,7 +2258,7 @@ _081632D2: movs r1, 0xB movs r2, 0 bl GetMonData - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r2, [r1] lsls r1, r4, 4 adds r1, r2 @@ -2291,7 +2291,7 @@ _08163308: movs r1, 0xC movs r2, 0 bl GetMonData - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r2, [r1] lsls r1, r4, 4 adds r1, r2 @@ -2338,7 +2338,7 @@ _08163368: muls r0, r1 ldr r2, =gEnemyParty adds r0, r2 - ldr r5, =gUnknown_0203BC8C + ldr r5, =gFacilityTrainerMons ldr r2, [r5] lsls r4, 4 adds r2, r4, r2 @@ -2405,7 +2405,7 @@ _081633EC: movs r1, 0x20 add r2, sp, 0x14 bl SetMonData - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r0, [r0] add r0, r9 ldrb r2, [r0, 0xA] @@ -2551,7 +2551,7 @@ sub_8163524: @ 8163524 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_0203BC88 @@ -2728,7 +2728,7 @@ _081636A4: movs r0, 0x1F _081636A6: str r0, [sp, 0x18] - bl sub_8165C40 + bl GetFrontierEnemyMonLevel lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] @@ -2759,7 +2759,7 @@ _081636CE: muls r6, r0 ldr r1, =gEnemyParty adds r0, r6, r1 - ldr r3, =gUnknown_0203BC8C + ldr r3, =gFacilityTrainerMons ldr r2, [r3] mov r1, r9 lsls r4, r1, 4 @@ -2784,7 +2784,7 @@ _081636CE: mov r10, r7 adds r7, r4, 0 _08163718: - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r1, [r0] mov r2, r9 lsls r0, r2, 4 @@ -2813,7 +2813,7 @@ _08163718: movs r1, 0x20 add r2, sp, 0xC bl SetMonData - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, [r1] adds r0, r7, r0 ldrb r2, [r0, 0xA] @@ -2881,7 +2881,7 @@ _081637D0: muls r6, r7 ldr r1, =gEnemyParty adds r0, r6, r1 - ldr r7, =gUnknown_0203BC8C + ldr r7, =gFacilityTrainerMons ldr r2, [r7] lsls r4, 4 adds r2, r4, r2 @@ -2905,7 +2905,7 @@ _081637D0: mov r8, r4 mov r5, r8 _08163818: - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, [r1] adds r0, r5, r0 lsls r4, r7, 1 @@ -2916,7 +2916,7 @@ _08163818: adds r0, r6, r2 adds r2, r7, 0 bl sub_81A7024 - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, [r1] adds r0, r5, r0 adds r0, 0x2 @@ -2942,7 +2942,7 @@ _08163846: movs r1, 0x20 add r2, sp, 0xC bl SetMonData - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, [r1] add r0, r8 ldrb r2, [r0, 0xA] @@ -3029,7 +3029,7 @@ _0816390A: thumb_func_start sub_8163914 sub_8163914: @ 8163914 push {lr} - bl sub_8165C40 + bl GetFrontierEnemyMonLevel ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 @@ -4091,7 +4091,7 @@ sub_81642A0: @ 81642A0 movs r2, 0 bl GetMonData str r0, [sp, 0x20] - bl sub_8165C40 + bl GetFrontierEnemyMonLevel movs r7, 0 ldr r0, [sp, 0x18] lsls r0, 24 @@ -4200,7 +4200,7 @@ _081643C0: ldr r1, [sp, 0x28] adds r0, r1 ldrh r2, [r0] - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r0, [r0] lsls r2, 4 adds r2, r0 @@ -4216,7 +4216,7 @@ _081643F4: bge _08164430 ldr r2, =gSaveBlock2Ptr ldr r0, [r2] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r3, [r1] lsls r1, r6, 4 adds r1, r3 @@ -4556,7 +4556,7 @@ sub_81646BC: @ 81646BC movs r0, 0 mov r9, r0 mov r10, r0 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r5, r0 @@ -4564,7 +4564,7 @@ sub_81646BC: @ 81646BC subs r0, 0xC9 cmp r5, r0 bhi _081646FC - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r1, [r0] lsls r0, r4, 4 adds r0, r1 @@ -4705,7 +4705,7 @@ sub_8164828: @ 8164828 mov r5, r8 push {r5-r7} sub sp, 0x8 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel bl sub_81A39C4 lsls r0, 16 lsrs r0, 16 @@ -6073,7 +6073,7 @@ sub_8165404: @ 8165404 sub sp, 0x70 lsls r0, 16 lsrs r7, r0, 16 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel ldr r0, =0x00000c03 cmp r7, r0 beq _08165420 @@ -6228,7 +6228,7 @@ _08165564: bls _0816556C b _081656E8 _0816556C: - bl sub_8165C40 + bl GetFrontierEnemyMonLevel lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x50] @@ -6272,7 +6272,7 @@ _081655A6: mov r9, r0 mov r0, r8 add r0, r9 - ldr r6, =gUnknown_0203BC8C + ldr r6, =gFacilityTrainerMons ldr r4, [r6] lsls r5, r1, 4 adds r4, r5, r4 @@ -6339,7 +6339,7 @@ _08165634: movs r1, 0x20 ldr r2, [sp, 0x5C] bl SetMonData - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r1, [r0] ldr r2, [sp, 0x54] lsls r0, r2, 4 @@ -7083,8 +7083,8 @@ _08165C2A: .pool thumb_func_end sub_8165B88 - thumb_func_start sub_8165C40 -sub_8165C40: @ 8165C40 + thumb_func_start GetFrontierEnemyMonLevel +GetFrontierEnemyMonLevel: @ 8165C40 push {lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] @@ -7098,7 +7098,7 @@ sub_8165C40: @ 8165C40 ldr r1, =gUnknown_0203BC88 ldr r0, =gBattleFrontierTrainers str r0, [r1] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gBattleFrontierMons str r0, [r1] ldrb r0, [r2] @@ -7114,7 +7114,7 @@ _08165C88: lsrs r0, 24 pop {r1} bx r1 - thumb_func_end sub_8165C40 + thumb_func_end GetFrontierEnemyMonLevel thumb_func_start BattleFrontierGetOpponentLvl BattleFrontierGetOpponentLvl: @ 8165C90 @@ -7258,7 +7258,7 @@ sub_8165D78: @ 8165D78 ldr r1, =gUnknown_0203BC88 ldr r0, =gSlateportBattleTentTrainers str r0, [r1] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gSlateportBattleTentMons b _08165DF2 .pool @@ -7268,7 +7268,7 @@ _08165DA8: ldr r1, =gUnknown_0203BC88 ldr r0, =gVerdanturfBattleTentTrainers str r0, [r1] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gVerdanturfBattleTentMons b _08165DF2 .pool @@ -7278,7 +7278,7 @@ _08165DC8: ldr r1, =gUnknown_0203BC88 ldr r0, =gFallarborBattleTentTrainers str r0, [r1] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gFallarborBattleTentMons b _08165DF2 .pool @@ -7286,7 +7286,7 @@ _08165DE8: ldr r1, =gUnknown_0203BC88 ldr r0, =gBattleFrontierTrainers str r0, [r1] - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r0, =gBattleFrontierMons _08165DF2: str r0, [r1] @@ -7456,7 +7456,7 @@ _08165F44: movs r1, 0xB movs r2, 0 bl GetMonData - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r2, [r1] lsls r1, r4, 4 adds r1, r2 @@ -7489,7 +7489,7 @@ _08165F7A: movs r1, 0xC movs r2, 0 bl GetMonData - ldr r1, =gUnknown_0203BC8C + ldr r1, =gFacilityTrainerMons ldr r2, [r1] lsls r1, r4, 4 adds r1, r2 @@ -7537,7 +7537,7 @@ _08165FDA: muls r0, r6 ldr r1, =gEnemyParty adds r0, r1 - ldr r5, =gUnknown_0203BC8C + ldr r5, =gFacilityTrainerMons ldr r2, [r5] lsls r4, 4 adds r2, r4, r2 @@ -7603,7 +7603,7 @@ _0816605E: movs r1, 0x20 add r2, sp, 0x14 bl SetMonData - ldr r0, =gUnknown_0203BC8C + ldr r0, =gFacilityTrainerMons ldr r0, [r0] add r0, r9 ldrb r2, [r0, 0xA] @@ -7756,7 +7756,7 @@ sub_8166188: @ 8166188 ands r0, r1 cmp r0, 0 beq _081661E8 - bl sub_8165C40 + bl GetFrontierEnemyMonLevel lsls r0, 24 movs r5, 0 ldr r7, =gBaseStats diff --git a/include/battle_message.h b/include/battle_message.h index 147bfa501c..c686072469 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -224,6 +224,7 @@ extern const u8* const gStatNamesTable[]; extern const u8* const gPokeblockWasTooXStringTable[]; extern const u8* const gRefereeStringsTable[]; extern const u8* const gStatNamesTable2[]; +extern const u8 *const gRoundsStringTable[]; extern const u8 gText_PkmnIsEvolving[]; extern const u8 gText_CongratsPkmnEvolved[]; diff --git a/include/global.h b/include/global.h index 0d2167c475..5b78fc4c04 100644 --- a/include/global.h +++ b/include/global.h @@ -337,14 +337,16 @@ struct FrontierMonData u8 nature; }; -struct FrontierUnkStruct1 +struct BattleDomeTrainer { - u16 unk0:10; + u16 trainerId:10; u16 unk1:1; u16 unk2:2; u16 unk3:3; }; +#define DOME_TOURNAMENT_TRAINERS_COUNT 16 + struct BattleFrontier { /*0x64C*/ struct EmeraldBattleTowerRecord battleTower; @@ -404,8 +406,8 @@ struct BattleFrontier /*0xD21*/ u8 field_D21; /*0xD22*/ u8 field_D22; /*0xD23*/ u8 field_D23; - /*0xD24*/ struct FrontierUnkStruct1 field_D24[16]; - /*0xD64*/ u16 field_D64[16][3]; + /*0xD24*/ struct BattleDomeTrainer domeTrainers[DOME_TOURNAMENT_TRAINERS_COUNT]; + /*0xD64*/ u16 domeMonId[DOME_TOURNAMENT_TRAINERS_COUNT][3]; /*0xDC8*/ u16 field_DC8[2]; /*0xDCC*/ u8 filler_DCC[4]; /*0xDD0*/ u16 field_DD0[2]; diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index b84e919732..3c97215e39 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -2,47 +2,56 @@ #include "battle.h" #include "battle_setup.h" #include "battle_frontier_1.h" +#include "battle_message.h" #include "event_data.h" #include "overworld.h" #include "util.h" #include "malloc.h" +#include "string_util.h" +#include "random.h" #include "constants/species.h" +#include "constants/moves.h" +#include "constants/trainers.h" +#include "constants/abilities.h" struct Unknown_0203BC8C_Struct { - u16 field_0; - u8 field_2; - u8 field_3; - u8 field_4; - u8 field_5; - u8 field_6; - u8 field_7; - u8 field_8; - u8 field_9; - u8 field_A; - u8 field_B; - u8 field_C; - u8 field_D; - u8 field_E; + u16 species; + u16 moves[4]; + u8 itemTableId; + u8 evSpread; + u8 nature; }; -extern struct Unknown_0203BC8C_Struct *gUnknown_0203BC8C; +extern struct Unknown_0203BC8C_Struct *gFacilityTrainerMons; extern void sub_81B8558(void); extern u32 sub_81A39C4(void); extern u16 sub_8162548(u8, u8); extern u16 sub_8163524(u16); -extern u8 sub_8165C40(void); +extern u8 GetFrontierEnemyMonLevel(void); +extern void sub_8195898(u8 *dst, u16 trainerId); +extern u16 sub_81A5060(u8, u8); extern u8 gUnknown_0203CEF8[]; +extern u32 gUnknown_0203CD70; +extern u32 gUnknown_0203CD74; extern void (* const gUnknown_0860D090[])(void); extern const u32 gUnknown_0860D0EC[][2]; extern const u32 gUnknown_0860D0FC[][2]; +extern const u16 gBattleFrontierHeldItems[]; // This file's functions. -u8 sub_8190168(u16); +u8 GetDomeTrainerMonIvs(u16 trainerId); void sub_818F720(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats); +void CreateDomeTrainerMons(u16 tournamentTrainerId); +u16 TrainerIdToTournamentId(u16 trainerId); +s32 sub_818FC78(u16 tournamentTrainerId); +s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); +s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); +s32 sub_818FFC0(s32 move, s32 species, s32 arg2); +s32 sub_818FEB4(s32 *arr, bool8 arg1); // code void sub_818E9AC(void) @@ -219,14 +228,14 @@ void sub_818F02C(void) gSaveBlock2Ptr->frontier.field_D0A = gSaveBlock2Ptr->frontier.chosenLvl + 1; gSaveBlock2Ptr->frontier.field_D0B = VarGet(VAR_0x40CE) + 1; - gSaveBlock2Ptr->frontier.field_D24[0].unk0 = 0x3FF; - gSaveBlock2Ptr->frontier.field_D24[0].unk1 = 0; - gSaveBlock2Ptr->frontier.field_D24[0].unk2 = 0; - gSaveBlock2Ptr->frontier.field_D24[0].unk3 = 0; + gSaveBlock2Ptr->frontier.domeTrainers[0].trainerId = 0x3FF; + gSaveBlock2Ptr->frontier.domeTrainers[0].unk1 = 0; + gSaveBlock2Ptr->frontier.domeTrainers[0].unk2 = 0; + gSaveBlock2Ptr->frontier.domeTrainers[0].unk3 = 0; for (i = 0; i < 3; i++) { - gSaveBlock2Ptr->frontier.field_D64[i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1], MON_DATA_SPECIES, NULL); + gSaveBlock2Ptr->frontier.domeMonId[i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1], MON_DATA_SPECIES, NULL); for (j = 0; j < 4; j++) gSaveBlock2Ptr->frontier.field_EFC[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1], MON_DATA_MOVE1 + j, NULL); for (j = 0; j < 6; j++) @@ -247,12 +256,12 @@ void sub_818F02C(void) val = sub_8162548(sub_81A39C4(), 0); for (k = 1; k < l; k++) { - if (gSaveBlock2Ptr->frontier.field_D24[k].unk0 == val) + if (gSaveBlock2Ptr->frontier.domeTrainers[k].trainerId == val) break; } if (k != l) { - gSaveBlock2Ptr->frontier.field_D24[var_28].unk0 = val; + gSaveBlock2Ptr->frontier.domeTrainers[var_28].trainerId = val; break; } } @@ -264,12 +273,12 @@ void sub_818F02C(void) val = sub_8162548(sub_81A39C4() + 1, 0); for (k = 1; k < l; k++) { - if (gSaveBlock2Ptr->frontier.field_D24[k].unk0 == val) + if (gSaveBlock2Ptr->frontier.domeTrainers[k].trainerId == val) break; } if (k != l) { - gSaveBlock2Ptr->frontier.field_D24[var_28].unk0 = val; + gSaveBlock2Ptr->frontier.domeTrainers[var_28].trainerId = val; break; } } @@ -283,24 +292,24 @@ void sub_818F02C(void) val2 = sub_8163524(val); for (i = 0; i < l; i++) { - if (gSaveBlock2Ptr->frontier.field_D64[i] == val2) + if (gSaveBlock2Ptr->frontier.domeMonId[i] == val2) break; - if (var_54 == gUnknown_0203BC8C[val2].field_0) + if (var_54 == gFacilityTrainerMons[val2].field_0) break; - if (var_50 == gUnknown_0203BC8C[val2].field_0) + if (var_50 == gFacilityTrainerMons[val2].field_0) break; - if (gUnknown_0203BC8C[gSaveBlock2Ptr->frontier.field_D64[i]].field_A == gUnknown_0203BC8C[val2].field_A) + if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i]].field_A == gFacilityTrainerMons[val2].field_A) break; } } while (i != var_38); - gSaveBlock2Ptr->frontier.field_D64[var_24] = val2; - array[var_38] = gUnknown_0203BC8C[val2].field_0; + gSaveBlock2Ptr->frontier.domeMonId[var_24] = val2; + array[var_38] = gFacilityTrainerMons[val2].field_0; } - gSaveBlock2Ptr->frontier.field_D24[var_28].unk1 = 0; - gSaveBlock2Ptr->frontier.field_D24[var_28].unk2 = 0; - gSaveBlock2Ptr->frontier.field_D24[var_28].unk3 = 0; + gSaveBlock2Ptr->frontier.domeTrainers[var_28].unk1 = 0; + gSaveBlock2Ptr->frontier.domeTrainers[var_28].unk2 = 0; + gSaveBlock2Ptr->frontier.domeTrainers[var_28].unk3 = 0; } for (i = 0; i < 3; i++) @@ -323,7 +332,7 @@ void sub_818F02C(void) monTypesBits >>= 1; } - var_48 = sub_8165C40(); + var_48 = GetFrontierEnemyMonLevel(); var_44[0] += (monTypesCount * var_48) / 20; for (i = 0; i < 16; i++) @@ -331,10 +340,10 @@ void sub_818F02C(void) u8 r8; var_44[i + 1] = 0; - r8 = sub_8190168(gSaveBlock2Ptr->frontier.field_D24[i].unk0); + r8 = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); for (j = 0; j < 3; j++) { - sub_818F720(gSaveBlock2Ptr->frontier.field_D64[i]); + sub_818F720(gSaveBlock2Ptr->frontier.domeMonId[i]); } } @@ -659,7 +668,7 @@ _0818F2D4:\n\ ldrh r3, [r4]\n\ cmp r3, r6\n\ beq _0818F300\n\ - ldr r2, =gUnknown_0203BC8C\n\ + ldr r2, =gFacilityTrainerMons\n\ ldr r1, [r2]\n\ lsls r0, r6, 4\n\ adds r2, r0, r1\n\ @@ -692,7 +701,7 @@ _0818F300:\n\ ldr r2, [sp, 0x28]\n\ add r2, sp\n\ adds r2, 0x8\n\ - ldr r0, =gUnknown_0203BC8C\n\ + ldr r0, =gFacilityTrainerMons\n\ ldr r1, [r0]\n\ lsls r0, r6, 4\n\ adds r0, r1\n\ @@ -856,7 +865,7 @@ _0818F462:\n\ subs r5, 0x1\n\ cmp r5, 0\n\ bge _0818F458\n\ - bl sub_8165C40\n\ + bl GetFrontierEnemyMonLevel\n\ lsls r0, 24\n\ lsrs r0, 24\n\ str r0, [sp, 0x14]\n\ @@ -888,7 +897,7 @@ _0818F494:\n\ ldrh r0, [r0]\n\ lsls r0, 22\n\ lsrs r0, 22\n\ - bl sub_8190168\n\ + bl GetDomeTrainerMonIvs\n\ lsls r0, 24\n\ lsrs r0, 24\n\ mov r8, r0\n\ @@ -906,7 +915,7 @@ _0818F4BC:\n\ adds r0, r2\n\ adds r0, r4\n\ ldrh r1, [r0]\n\ - ldr r3, =gUnknown_0203BC8C\n\ + ldr r3, =gFacilityTrainerMons\n\ ldr r0, [r3]\n\ lsls r1, 4\n\ adds r1, r0\n\ @@ -940,7 +949,7 @@ _0818F4BC:\n\ adds r0, r1\n\ adds r0, r4\n\ ldrh r0, [r0]\n\ - ldr r2, =gUnknown_0203BC8C\n\ + ldr r2, =gFacilityTrainerMons\n\ ldr r1, [r2]\n\ lsls r0, 4\n\ adds r0, r1\n\ @@ -1228,8 +1237,347 @@ void sub_818F904(s32 id1, s32 id2, u16 *dst) u16 temp; SWAP_16(dst[id1], dst[id2]); - SWAP_16(gSaveBlock2Ptr->frontier.field_D24[id1].unk0, gSaveBlock2Ptr->frontier.field_D24[id2].unk0); + SWAP_16(gSaveBlock2Ptr->frontier.domeTrainers[id1].trainerId, gSaveBlock2Ptr->frontier.domeTrainers[id2].trainerId); for (i = 0; i < 3; i++) - SWAP_16(gSaveBlock2Ptr->frontier.field_D64[id1][i], gSaveBlock2Ptr->frontier.field_D64[id2][i]); + SWAP_16(gSaveBlock2Ptr->frontier.domeMonId[id1][i], gSaveBlock2Ptr->frontier.domeMonId[id2][i]); } + +void sub_818F9B0(void) +{ + StringCopy(gStringVar1, gRoundsStringTable[gSaveBlock2Ptr->frontier.field_CB2]); +} + +void sub_818F9E0(void) +{ + StringCopy(gStringVar1, gRoundsStringTable[gSaveBlock2Ptr->frontier.field_CB2]); + sub_8195898(gStringVar2, gTrainerBattleOpponent_A); +} + +void sub_818FA20(void) +{ + gUnknown_0203CD70 = 0; + gUnknown_0203CD74 = GetMonData(&gPlayerParty[0], MON_DATA_MAX_HP, NULL); + gUnknown_0203CD74 += GetMonData(&gPlayerParty[1], MON_DATA_MAX_HP, NULL); + CalculatePlayerPartyCount(); + CreateDomeTrainerMons(TrainerIdToTournamentId(gTrainerBattleOpponent_A)); +} + +void CreateDomeMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentMonId, u32 otId) +{ + s32 i; + u8 happiness = 0xFF; + u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // UB: Should be using trainerId instead of tournamentTrainerId. As a result, all Pokemon have ivs of 3. + u8 level = GetFrontierEnemyMonLevel(); + CreateMonWithEVSpreadPersonalityOTID(&gEnemyParty[monPartyId], + gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].species, + level, + gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].nature, + fixedIv, + gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].evSpread, otId); + + happiness = 0xFF; + for (i = 0; i < 4; i++) + { + SetMonMoveSlot(&gEnemyParty[monPartyId], + gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].moves[i], i); + if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].moves[i] == MOVE_FRUSTRATION) + happiness = 0; + } + + SetMonData(&gEnemyParty[monPartyId], MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&gEnemyParty[monPartyId], MON_DATA_HELD_ITEM, + &gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].itemTableId]); +} + +void CreateDomeTrainerMons(u16 tournamentTrainerId) +{ + u8 monsCount = 0; + u32 otId = 0; + s32 i, bits; + + ZeroEnemyPartyMons(); + bits = sub_818FC78(tournamentTrainerId); + otId = Random32(); + if (Random() % 10 > 5) + { + for (i = 0; i < 3; i++) + { + if (bits & 1) + { + CreateDomeMon(monsCount, tournamentTrainerId, i, otId); + monsCount++; + } + bits >>= 1; + } + } + else + { + for (i = 2; i >= 0; i--) + { + if (bits & 4) + { + CreateDomeMon(monsCount, tournamentTrainerId, i, otId); + monsCount++; + } + bits <<= 1; + } + } +} + +s32 sub_818FC78(u16 tournamentTrainerId) +{ + s32 bits; + if (Random() & 1) + { + bits = sub_818FCBC(tournamentTrainerId, FALSE); + if (bits == 0) + bits = sub_818FDB8(tournamentTrainerId, TRUE); + } + else + { + bits = sub_818FDB8(tournamentTrainerId, FALSE); + if (bits == 0) + bits = sub_818FCBC(tournamentTrainerId, TRUE); + } + + return bits; +} + +s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1) +{ + s32 i, moveId, playerMonId; + s32 array[3]; + + for (i = 0; i < 3; i++) + { + array[i] = 0; + for (moveId = 0; moveId < 4; moveId++) + { + for (playerMonId = 0; playerMonId < 3; playerMonId++) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) + { + array[i] += sub_818FFC0(sub_81A5060(i, moveId), + GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0); + } + else + { + array[i] += sub_818FFC0(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][i]].moves[moveId], + GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0); + } + } + } + } + return sub_818FEB4(array, arg1); +} + +s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1) +{ + s32 i, moveId, playerMonId; + s32 array[3]; + + for (i = 0; i < 3; i++) + { + array[i] = 0; + for (moveId = 0; moveId < 4; moveId++) + { + for (playerMonId = 0; playerMonId < 3; playerMonId++) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) + { + array[i] += sub_818FFC0(sub_81A5060(i, moveId), + GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1); + } + else + { + array[i] += sub_818FFC0(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][i]].moves[moveId], + GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1); + } + } + } + } + return sub_818FEB4(array, arg1); +} + +s32 sub_818FEB4(s32 *arr, bool8 arg1) +{ + s32 i, j; + s32 bits = 0; + s32 array[3]; + + for (i = 0; i < 3; i++) + array[i] = i; + + if (arr[0] == arr[1] && arr[0] == arr[2]) + { + if (arg1) + { + i = 0; + while (i != 2) + { + u32 rand = Random() & 3; + if (rand != 3 && !(bits & gBitTable[rand])) + { + bits |= gBitTable[rand]; + i++; + } + } + } + } + else + { + for (i = 0; i < 2; i++) + { + for (j = i + 1; j < 3; j++) + { + s32 temp; + + if (arr[i] < arr[j]) + { + temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + + temp = array[i]; + array[i] = array[j]; + array[j] = temp; + } + + if (arr[i] == arr[j] && (Random() & 1)) + { + temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + + temp = array[i]; + array[i] = array[j]; + array[j] = temp; + } + } + } + + for (i = 0; i < 2; i++) + { + bits |= gBitTable[array[i]]; + } + } + + return bits; +} + +/* +s32 sub_818FFC0(s32 move, s32 species, s32 arg2) +{ + u8 type1, type2, ability, moveType; + s32 i = 0; + s32 typePower = 20; + + if (move == MOVE_NONE || move == 0xFFFF || gBattleMoves[move].power == 0) + return 0; + + type1 = gBaseStats[species].type1; + type2 = gBaseStats[species].type2; + ability = gBaseStats[species].ability1; + moveType = gBattleMoves[move].type; + + if (ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + { + if (arg2 == 1) + typePower = 8; + } + else + { + while (TYPE_EFFECT_ATK_TYPE(i) != TYPE_ENDTABLE) + { + if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) + { + i += 3; + continue; + } + else if (TYPE_EFFECT_ATK_TYPE(i) == moveType) + { + // BUG: * 2 is not necessary and makes the condition always false if the ability is wonder guard. + if (TYPE_EFFECT_DEF_TYPE(i) == type1 && (ability != ABILITY_WONDER_GUARD || TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE * 2)) + typePower = (TYPE_EFFECT_MULTIPLIER(i) * typePower) / 10; + if (TYPE_EFFECT_DEF_TYPE(i) == type2 && type1 != type2 && (ability != ABILITY_WONDER_GUARD || TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE * 2)) + typePower = (TYPE_EFFECT_MULTIPLIER(i) * typePower) / 10; + } + i += 3; + } + } + + switch (arg2) + { + case 0: + switch (typePower) + { + case 10: + case 5: + case 0: + default: + typePower = 0; + break; + case 20: + typePower = 2; + break; + case 40: + typePower = 4; + break; + case 80: + typePower = 8; + break; + } + break; + case 1: + switch (typePower) + { + default: + case 20: + typePower = 0; + break; + case 5: + typePower = 4; + break; + case 0: + typePower = 8; + break; + case 10: + typePower = 2; + break; + case 40: + typePower = -2; + break; + case 80: + typePower = -4; + break; + } + break; + case 2: + switch (typePower) + { + case 0: + typePower = -16; + break; + case 5: + typePower = -8; + break; + case 10: + default: + typePower = 0; + break; + case 20: + typePower = 4; + break; + case 40: + typePower = 12; + break; + case 80: + typePower = 20; + break; + } + break; + } + + return typePower; +}*/ diff --git a/src/battle_message.c b/src/battle_message.c index 13502d6f20..78b9ac53b4 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1248,7 +1248,7 @@ static const u8 sText_Round2[] = _("Round 2"); static const u8 sText_Semifinal[] = _("Semifinal"); static const u8 sText_Final[] = _("Final"); -const u8 * const gRoundsStringTable[] = +const u8 *const gRoundsStringTable[] = { sText_Round1, sText_Round2, diff --git a/sym_ewram.txt b/sym_ewram.txt index cf1c8b8d7f..cb887bd901 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -615,7 +615,7 @@ gUnknown_0203ABB8: @ 203ABB8 gUnknown_0203BC88: @ 203BC88 .space 0x4 -gUnknown_0203BC8C: @ 203BC8C +gFacilityTrainerMons: @ 203BC8C .space 0x4 .include "src/use_pokeblock.o" From e7da51438286bceaa085aad524065cbfe645faf0 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 15 Aug 2018 15:58:41 -0700 Subject: [PATCH 112/174] Finish documenting and cleaning up summary_screen Also fix remaining nonmatchings --- src/pokemon_summary_screen.c | 1692 ++++++++++++++-------------------- 1 file changed, 672 insertions(+), 1020 deletions(-) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index ef55129f49..c47ddb14c5 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -107,7 +107,7 @@ static EWRAM_DATA struct UnkSummaryStruct bool8 unk40EF; s16 unk40F0; u8 unk_filler4[6]; -} *gUnknown_0203CF1C = NULL; +} *pssData = NULL; EWRAM_DATA u8 gUnknown_0203CF20 = 0; static EWRAM_DATA u8 gUnknown_0203CF21 = 0; static EWRAM_DATA u8 gFiller_0203CF22[2] = {0}; @@ -131,123 +131,123 @@ bool8 sub_81B1250(void); static bool8 SummaryScreen_LoadGraphics(void); static void SummaryScreen_LoadingCB2(void); static void InitBGs(void); -u8 sub_81BFEB0(void); -void CopyMonToSummaryStruct(struct Pokemon* a); -bool8 ExtractMonDataToSummaryStruct(struct Pokemon* a); -void sub_81C0348(void); -void sub_81C0484(u8 taskId); -void sub_81C0510(u8 taskId); -void sub_81C0604(u8 taskId, s8 a); -void sub_81C0704(u8 taskId); -s8 sub_81C08F8(s8 a); -s8 sub_81C09B4(s8 a); -bool8 sub_81C0A50(struct Pokemon* mon); -void sub_81C0A8C(u8 taskId, s8 a); -void sub_81C0B8C(u8 taskId); -void sub_81C0C68(u8 taskId); -void sub_81C0CC4(u8 taskId); -void sub_81C0D44(u8 taskId); -void sub_81C0E24(void); -void sub_81C0E48(u8 taskId); -void sub_81C0F44(u8 taskId); -bool8 sub_81C1040(void); -void sub_81C1070(s16* a, s8 b, u8* c); -void sub_81C11F4(u8 a); -void sub_81C129C(u8 a); -void sub_81C12E4(u8 taskId); -void sub_81C13B0(u8 taskId, bool8 b); -void sub_81C14BC(struct Pokemon *mon, u8 a, u8 b); -void sub_81C15EC(struct BoxPokemon *mon, u8 a, u8 b); -void sub_81C171C(u8 taskId); -void sub_81C174C(u8 taskId); -bool8 sub_81C18A8(void); -void sub_81C18F4(u8 a); -void sub_81C1940(u8 taskId); -void sub_81C1BA0(void); -void sub_81C1DA4(u16 a, s16 b); -void sub_81C1E20(u8 taskId); -void sub_81C1EFC(u16 a, s16 b, u16 c); -void sub_81C1F80(u8 taskId); -void sub_81C2074(u16 a, s16 b); -void sub_81C20F0(u8 taskId); -void sub_81C2194(u16 *a, u16 b, u8 c); -void sub_81C2228(struct Pokemon* mon); -void sub_81C22CC(struct Pokemon* mon); -void sub_81C240C(u16 a); -void sub_81C2524(void); -void sub_81C2554(void); -void sub_81C25E8(void); -void sub_81C2628(void); -void sub_81C2794(void); -void sub_81C27DC(struct Pokemon *mon, u16 a); -static void PrintPageNamesAndStatsPage(void); -void sub_81C2AFC(u8 a); -void sub_81C2C38(u8 a); -void SummaryScreen_RemoveWindowByIndex(u8 a); -void sub_81C2D9C(u8 a); -void sub_81C2DE4(u8 a); -void sub_81C2E00(void); -void sub_81C2E40(u8 taskId); -void PrintMonOTName(void); -void PrintMonOTID(void); -void PrintMonAbilityName(void); -void PrintMonAbilityDescription(void); -void BufferMonTrainerMemo(void); -void PrintMonTrainerMemo(void); -void BufferNatureString(void); -void GetMetLevelString(u8 *a); -bool8 DoesMonOTMatchOwner(void); -bool8 MonCameFromGBAGames(void); -bool8 IsInGamePartnerMon(void); -void PrintEggOTName(void); -void PrintEggOTID(void); -void PrintEggState(void); -void PrintEggMemo(void); -void sub_81C3554(u8 taskId); -void PrintHeldItemName(void); -void sub_81C3530(void); -void PrintRibbonCount(void); -void BufferLeftColumnStats(void); -void PrintLeftColumnStats(void); -void BufferRightColumnStats(void); -void PrintRightColumnStats(void); -void PrintExpPointsNextLevel(void); -void sub_81C3984(void); -void sub_81C39F0(u8 taskId); -void PrintMoveNameAndPP(u8 a); -void sub_81C3D08(void); -void sub_81C3D54(u8 taskId); -void PrintContestMoveDescription(u8 a); -void PrintMoveDetails(u16 a); -void PrintNewMoveDetailsOrCancelText(void); -void sub_81C4064(void); -void sub_81C40A0(u8 a, u8 b); -void sub_81C4154(void); -void sub_81C4190(void); -void sub_81C4204(u8 a, u8 b); -void sub_81C424C(void); -void sub_81C4280(void); -void sub_81C42C8(void); -void sub_81C43A0(void); -void sub_81C4420(void); -void sub_81C4484(void); -void sub_81C44F0(void); -void sub_81C4568(u8 a, u8 b); -u8 sub_81C45F4(struct Pokemon *a, s16 *b); -u8 sub_81C47B4(struct Pokemon *unused); -void sub_81C4844(struct Sprite *); +static bool8 SummaryScreen_DecompressGraphics(void); +static void CopyMonToSummaryStruct(struct Pokemon* a); +static bool8 ExtractMonDataToSummaryStruct(struct Pokemon* a); +static void sub_81C0348(void); +static void sub_81C0484(u8 taskId); +static void sub_81C0510(u8 taskId); +static void sub_81C0604(u8 taskId, s8 a); +static void sub_81C0704(u8 taskId); +static s8 sub_81C08F8(s8 a); +static s8 sub_81C09B4(s8 a); +static bool8 sub_81C0A50(struct Pokemon* mon); +static void sub_81C0A8C(u8 taskId, s8 a); +static void sub_81C0B8C(u8 taskId); +static void sub_81C0C68(u8 taskId); +static void sub_81C0CC4(u8 taskId); +static void sub_81C0D44(u8 taskId); +static void sub_81C0E24(void); +static void sub_81C0E48(u8 taskId); +static void sub_81C0F44(u8 taskId); +static bool8 sub_81C1040(void); +static void sub_81C1070(s16* a, s8 b, u8* c); +static void sub_81C11F4(u8 a); +static void sub_81C129C(u8 a); +static void sub_81C12E4(u8 taskId); +static void sub_81C13B0(u8 taskId, bool8 b); +static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2); +static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2); +static void sub_81C171C(u8 taskId); +static void sub_81C174C(u8 taskId); +static bool8 sub_81C18A8(void); +static void sub_81C18F4(u8 a); +static void sub_81C1940(u8 taskId); +static void sub_81C1BA0(void); +static void sub_81C1DA4(u16 a, s16 b); +static void sub_81C1E20(u8 taskId); +static void sub_81C1EFC(u16 a, s16 b, u16 c); +static void sub_81C1F80(u8 taskId); +static void sub_81C2074(u16 a, s16 b); +static void sub_81C20F0(u8 taskId); +static void sub_81C2194(u16 *a, u16 b, u8 c); +static void sub_81C2228(struct Pokemon* mon); +static void sub_81C22CC(struct Pokemon* mon); +static void sub_81C240C(u16 a); +static void sub_81C2524(void); +static void sub_81C2554(void); +static void sub_81C25E8(void); +static void sub_81C2628(void); +static void sub_81C2794(void); +static void sub_81C27DC(struct Pokemon *mon, u16 a); +static void PrintPageNamesAndStatsPageToWindows(void); +static void sub_81C2AFC(u8 a); +static void sub_81C2C38(u8 a); +static void SummaryScreen_RemoveWindowByIndex(u8 a); +static void sub_81C2D9C(u8 a); +static void sub_81C2DE4(u8 a); +static void sub_81C2E00(void); +static void sub_81C2E40(u8 taskId); +static void PrintMonOTName(void); +static void PrintMonOTID(void); +static void PrintMonAbilityName(void); +static void PrintMonAbilityDescription(void); +static void BufferMonTrainerMemo(void); +static void PrintMonTrainerMemo(void); +static void BufferNatureString(void); +static void GetMetLevelString(u8 *a); +static bool8 DoesMonOTMatchOwner(void); +static bool8 DidMonComeFromGBAGames(void); +static bool8 IsInGamePartnerMon(void); +static void PrintEggOTName(void); +static void PrintEggOTID(void); +static void PrintEggState(void); +static void PrintEggMemo(void); +static void sub_81C3554(u8 taskId); +static void PrintHeldItemName(void); +static void sub_81C3530(void); +static void PrintRibbonCount(void); +static void BufferLeftColumnStats(void); +static void PrintLeftColumnStats(void); +static void BufferRightColumnStats(void); +static void PrintRightColumnStats(void); +static void PrintExpPointsNextLevel(void); +static void sub_81C3984(void); +static void sub_81C39F0(u8 taskId); +static void PrintMoveNameAndPP(u8 a); +static void sub_81C3D08(void); +static void sub_81C3D54(u8 taskId); +static void PrintContestMoveDescription(u8 a); +static void PrintMoveDetails(u16 a); +static void PrintNewMoveDetailsOrCancelText(void); +static void sub_81C4064(void); +static void sub_81C40A0(u8 a, u8 b); +static void PrintHMMovesCantBeForgotten(void); +static void sub_81C4190(void); +static void sub_81C4204(u8 a, u8 b); +static void sub_81C424C(void); +static void sub_81C4280(void); +static void sub_81C42C8(void); +static void sub_81C43A0(void); +static void sub_81C4420(void); +static void sub_81C4484(void); +static void sub_81C44F0(void); +static void sub_81C4568(u8 a, u8 b); +static u8 sub_81C45F4(struct Pokemon *a, s16 *b); +static u8 sub_81C47B4(struct Pokemon *unused); +static void sub_81C4844(struct Sprite *); void SummaryScreen_SetUnknownTaskId(u8 a); void SummaryScreen_DestroyUnknownTask(void); -void sub_81C48F0(void); -void CreateMonMarkingsSprite(struct Pokemon *mon); -void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon); -void CreateCaughtBallSprite(struct Pokemon *mon); -void CreateSetStatusSprite(void); -void sub_81C4AF8(u8 a); -void sub_81C4BE4(struct Sprite *sprite); -void sub_81C4C60(u8 a); -void sub_81C4C84(u8 a); -void sub_81C4D18(u8 a); +static void sub_81C48F0(void); +static void CreateMonMarkingsSprite(struct Pokemon *mon); +static void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon); +static void CreateCaughtBallSprite(struct Pokemon *mon); +static void CreateSetStatusSprite(void); +static void sub_81C4AF8(u8 a); +static void sub_81C4BE4(struct Sprite *sprite); +static void sub_81C4C60(u8 a); +static void sub_81C4C84(u8 a); +static void sub_81C4D18(u8 a); // const rom data #include "data/text/move_descriptions.h" @@ -711,38 +711,38 @@ static const u16 gUnknown_0861D120[] = INCBIN_U16("graphics/interface/summary_ma // code void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) { - gUnknown_0203CF1C = AllocZeroed(sizeof(*gUnknown_0203CF1C)); - gUnknown_0203CF1C->mode = mode; - gUnknown_0203CF1C->monList.mons = mons; - gUnknown_0203CF1C->curMonIndex = monIndex; - gUnknown_0203CF1C->maxMonIndex = maxMonIndex; - gUnknown_0203CF1C->callback = callback; + pssData = AllocZeroed(sizeof(*pssData)); + pssData->mode = mode; + pssData->monList.mons = mons; + pssData->curMonIndex = monIndex; + pssData->maxMonIndex = maxMonIndex; + pssData->callback = callback; if (mode == PSS_MODE_UNK2) - gUnknown_0203CF1C->isBoxMon = TRUE; + pssData->isBoxMon = TRUE; else - gUnknown_0203CF1C->isBoxMon = FALSE; + pssData->isBoxMon = FALSE; switch (mode) { case PSS_MODE_NORMAL: case PSS_MODE_UNK2: - gUnknown_0203CF1C->minPageIndex = 0; - gUnknown_0203CF1C->maxPageIndex = 3; + pssData->minPageIndex = 0; + pssData->maxPageIndex = 3; break; case PSS_MODE_UNK1: - gUnknown_0203CF1C->minPageIndex = 0; - gUnknown_0203CF1C->maxPageIndex = 3; - gUnknown_0203CF1C->unk40C8 = TRUE; + pssData->minPageIndex = 0; + pssData->maxPageIndex = 3; + pssData->unk40C8 = TRUE; break; case PSS_MODE_SELECT_MOVE: - gUnknown_0203CF1C->minPageIndex = 2; - gUnknown_0203CF1C->maxPageIndex = 3; - gUnknown_0203CF1C->unk40C3 = TRUE; + pssData->minPageIndex = 2; + pssData->maxPageIndex = 3; + pssData->unk40C3 = TRUE; break; } - gUnknown_0203CF1C->currPageIndex = gUnknown_0203CF1C->minPageIndex; + pssData->currPageIndex = pssData->minPageIndex; SummaryScreen_SetUnknownTaskId(-1); if (gMonSpritesGfxPtr == 0) @@ -754,13 +754,13 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void), u16 newMove) { ShowPokemonSummaryScreen(PSS_MODE_SELECT_MOVE, mons, monIndex, maxMonIndex, callback); - gUnknown_0203CF1C->newMove = newMove; + pssData->newMove = newMove; } void ShowPokemonSummaryScreenSet40EF(u8 mode, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) { ShowPokemonSummaryScreen(mode, mons, monIndex, maxMonIndex, callback); - gUnknown_0203CF1C->unk40EF = TRUE; + pssData->unk40EF = TRUE; } static void SummaryScreen_MainCB2(void) @@ -813,11 +813,11 @@ static bool8 SummaryScreen_LoadGraphics(void) break; case 5: InitBGs(); - gUnknown_0203CF1C->unk40F0 = 0; + pssData->unk40F0 = 0; gMain.state++; break; case 6: - if (sub_81BFEB0() != FALSE) + if (SummaryScreen_DecompressGraphics() != FALSE) gMain.state++; break; case 7: @@ -829,12 +829,12 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 9: - CopyMonToSummaryStruct(&gUnknown_0203CF1C->currentMon); - gUnknown_0203CF1C->unk40F0 = 0; + CopyMonToSummaryStruct(&pssData->currentMon); + pssData->unk40F0 = 0; gMain.state++; break; case 10: - if (ExtractMonDataToSummaryStruct(&gUnknown_0203CF1C->currentMon) != 0) + if (ExtractMonDataToSummaryStruct(&pssData->currentMon) != 0) gMain.state++; break; case 11: @@ -842,11 +842,11 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 12: - PrintPageNamesAndStatsPage(); + PrintPageNamesAndStatsPageToWindows(); gMain.state++; break; case 13: - sub_81C2D9C(gUnknown_0203CF1C->currPageIndex); + sub_81C2D9C(pssData->currPageIndex); gMain.state++; break; case 14: @@ -854,29 +854,29 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 15: - sub_81C2AFC(gUnknown_0203CF1C->currPageIndex); + sub_81C2AFC(pssData->currPageIndex); gMain.state++; break; case 16: sub_81C4190(); sub_81C42C8(); - gUnknown_0203CF1C->unk40F0 = 0; + pssData->unk40F0 = 0; gMain.state++; break; case 17: - gUnknown_0203CF1C->spriteIds[0] = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &gUnknown_0203CF1C->unk40F0); - if (gUnknown_0203CF1C->spriteIds[0] != 0xFF) + pssData->spriteIds[0] = sub_81C45F4(&pssData->currentMon, &pssData->unk40F0); + if (pssData->spriteIds[0] != 0xFF) { - gUnknown_0203CF1C->unk40F0 = 0; + pssData->unk40F0 = 0; gMain.state++; } break; case 18: - CreateMonMarkingsSprite(&gUnknown_0203CF1C->currentMon); + CreateMonMarkingsSprite(&pssData->currentMon); gMain.state++; break; case 19: - CreateCaughtBallSprite(&gUnknown_0203CF1C->currentMon); + CreateCaughtBallSprite(&pssData->currentMon); gMain.state++; break; case 20: @@ -888,7 +888,7 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 22: - if (gUnknown_0203CF1C->mode != PSS_MODE_SELECT_MOVE) + if (pssData->mode != PSS_MODE_SELECT_MOVE) CreateTask(sub_81C0510, 0); else CreateTask(sub_81C171C, 0); @@ -915,9 +915,9 @@ static void InitBGs(void) { ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gUnknown_0861CBB4, ARRAY_COUNT(gUnknown_0861CBB4)); - SetBgTilemapBuffer(1, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); - SetBgTilemapBuffer(2, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_SKILLS][0]); - SetBgTilemapBuffer(3, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0]); + SetBgTilemapBuffer(1, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); + SetBgTilemapBuffer(2, pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][0]); + SetBgTilemapBuffer(3, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0]); ResetAllBgsCoordinates(); schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); @@ -930,90 +930,90 @@ static void InitBGs(void) ShowBg(3); } -bool8 sub_81BFEB0(void) +static bool8 SummaryScreen_DecompressGraphics(void) { - switch (gUnknown_0203CF1C->unk40F0) + switch (pssData->unk40F0) { case 0: reset_temp_tile_data_buffers(); decompress_and_copy_tile_data_to_vram(1, &gUnknown_08D97D0C, 0, 0, 0); - gUnknown_0203CF1C->unk40F0++; + pssData->unk40F0++; break; case 1: if (free_temp_tile_data_buffers_if_possible() != 1) { - LZDecompressWram(&gUnknown_08D9862C, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0]); - gUnknown_0203CF1C->unk40F0++; + LZDecompressWram(&gUnknown_08D9862C, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0]); + pssData->unk40F0++; } break; case 2: - LZDecompressWram(&gUnknown_08D98CC8, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][1]); - gUnknown_0203CF1C->unk40F0++; + LZDecompressWram(&gUnknown_08D98CC8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][1]); + pssData->unk40F0++; break; case 3: - LZDecompressWram(&gUnknown_08D987FC, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_SKILLS][1]); - gUnknown_0203CF1C->unk40F0++; + LZDecompressWram(&gUnknown_08D987FC, pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][1]); + pssData->unk40F0++; break; case 4: - LZDecompressWram(&gUnknown_08D9898C, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][1]); - gUnknown_0203CF1C->unk40F0++; + LZDecompressWram(&gUnknown_08D9898C, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][1]); + pssData->unk40F0++; break; case 5: - LZDecompressWram(&gUnknown_08D98B28, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]); - gUnknown_0203CF1C->unk40F0++; + LZDecompressWram(&gUnknown_08D98B28, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]); + pssData->unk40F0++; break; case 6: LoadCompressedPalette(&gUnknown_08D9853C, 0, 0x100); LoadPalette(&gUnknown_08D85620, 0x81, 0x1E); - gUnknown_0203CF1C->unk40F0++; + pssData->unk40F0++; break; case 7: LoadCompressedObjectPic(&gUnknown_0861CFBC); - gUnknown_0203CF1C->unk40F0++; + pssData->unk40F0++; break; case 8: LoadCompressedObjectPic(&gUnknown_0861D074); - gUnknown_0203CF1C->unk40F0++; + pssData->unk40F0++; break; case 9: LoadCompressedObjectPic(&gUnknown_0861D0F8); - gUnknown_0203CF1C->unk40F0++; + pssData->unk40F0++; break; case 10: LoadCompressedObjectPalette(&gUnknown_0861D100); - gUnknown_0203CF1C->unk40F0++; + pssData->unk40F0++; break; case 11: LoadCompressedObjectPalette(&gUnknown_0861D07C); - gUnknown_0203CF1C->unk40F0++; + pssData->unk40F0++; break; case 12: LoadCompressedPalette(&gMoveTypes_Pal, 0x1D0, 0x60); - gUnknown_0203CF1C->unk40F0 = 0; + pssData->unk40F0 = 0; return TRUE; } return FALSE; } -void CopyMonToSummaryStruct(struct Pokemon *mon) +static void CopyMonToSummaryStruct(struct Pokemon *mon) { - if (!gUnknown_0203CF1C->isBoxMon) + if (!pssData->isBoxMon) { - struct Pokemon *partyMon = gUnknown_0203CF1C->monList.mons; - *mon = partyMon[gUnknown_0203CF1C->curMonIndex]; + struct Pokemon *partyMon = pssData->monList.mons; + *mon = partyMon[pssData->curMonIndex]; } else { - struct BoxPokemon *boxMon = gUnknown_0203CF1C->monList.boxMons; - BoxMonToMon(&boxMon[gUnknown_0203CF1C->curMonIndex], mon); + struct BoxPokemon *boxMon = pssData->monList.boxMons; + BoxMonToMon(&boxMon[pssData->curMonIndex], mon); } } -bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a) +static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a) { u32 i; - struct PokeSummary *sum = &gUnknown_0203CF1C->summary; - switch (gUnknown_0203CF1C->unk40F0) + struct PokeSummary *sum = &pssData->summary; + switch (pssData->unk40F0) { case 0: sum->species = GetMonData(a, MON_DATA_SPECIES); @@ -1040,7 +1040,7 @@ bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a) sum->ppBonuses = GetMonData(a, MON_DATA_PP_BONUSES); break; case 2: - if (gUnknown_0203CF1C->monList.mons == gPlayerParty || gUnknown_0203CF1C->mode == PSS_MODE_UNK2 || gUnknown_0203CF1C->unk40EF == TRUE) + if (pssData->monList.mons == gPlayerParty || pssData->mode == PSS_MODE_UNK2 || pssData->unk40EF == TRUE) { sum->nature = GetNature(a); sum->currentHP = GetMonData(a, MON_DATA_HP); @@ -1078,59 +1078,59 @@ bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a) sum->ribbonCount = GetMonData(a, MON_DATA_RIBBON_COUNT); return TRUE; } - gUnknown_0203CF1C->unk40F0++; + pssData->unk40F0++; return FALSE; } -void sub_81C0348(void) +static void sub_81C0348(void) { - if (gUnknown_0203CF1C->currPageIndex != PSS_PAGE_BATTLE_MOVES && gUnknown_0203CF1C->currPageIndex != PSS_PAGE_CONTEST_MOVES) + if (pssData->currPageIndex != PSS_PAGE_BATTLE_MOVES && pssData->currPageIndex != PSS_PAGE_CONTEST_MOVES) { sub_81C1DA4(0, 255); sub_81C1EFC(0, 255, 0); } else { - sub_81C240C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]); - sub_81C2194(gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); - sub_81C2194(gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); - SetBgTilemapBuffer(1, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0]); - SetBgTilemapBuffer(2, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); + sub_81C240C(pssData->summary.moves[pssData->firstMoveIndex]); + sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); + sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); + SetBgTilemapBuffer(1, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0]); + SetBgTilemapBuffer(2, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); ChangeBgX(2, 0x10000, 1); ClearWindowTilemap(19); ClearWindowTilemap(13); } - if (gUnknown_0203CF1C->summary.unk7 == 0) + if (pssData->summary.unk7 == 0) { sub_81C2074(0, 0xFF); } else { - if (gUnknown_0203CF1C->currPageIndex != PSS_PAGE_BATTLE_MOVES && gUnknown_0203CF1C->currPageIndex != PSS_PAGE_CONTEST_MOVES) + if (pssData->currPageIndex != PSS_PAGE_BATTLE_MOVES && pssData->currPageIndex != PSS_PAGE_CONTEST_MOVES) PutWindowTilemap(13); } sub_81C2524(); - sub_81C2228(&gUnknown_0203CF1C->currentMon); + sub_81C2228(&pssData->currentMon); } -void sub_81C0434(void) +static void sub_81C0434(void) { FreeAllWindowBuffers(); - Free(gUnknown_0203CF1C); + Free(pssData); } -void sub_81C044C(u8 taskId) +static void sub_81C044C(u8 taskId) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); gTasks[taskId].func = sub_81C0484; } -void sub_81C0484(u8 taskId) +static void sub_81C0484(u8 taskId) { - if (sub_81221EC() != 1 && !gPaletteFade.active) + if (sub_81221EC() != TRUE && !gPaletteFade.active) { - SetMainCallback2(gUnknown_0203CF1C->callback); - gUnknown_0203CF20 = gUnknown_0203CF1C->curMonIndex; + SetMainCallback2(pssData->callback); + gUnknown_0203CF20 = pssData->curMonIndex; SummaryScreen_DestroyUnknownTask(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -1143,9 +1143,9 @@ void sub_81C0484(u8 taskId) } } -void sub_81C0510(u8 taskId) +static void sub_81C0510(u8 taskId) { - if (sub_81221EC() != 1 && !gPaletteFade.active) + if (sub_81221EC() != TRUE && !gPaletteFade.active) { if (gMain.newKeys & DPAD_UP) { @@ -1165,9 +1165,9 @@ void sub_81C0510(u8 taskId) } else if (gMain.newKeys & A_BUTTON) { - if (gUnknown_0203CF1C->currPageIndex != PSS_PAGE_SKILLS) + if (pssData->currPageIndex != PSS_PAGE_SKILLS) { - if (gUnknown_0203CF1C->currPageIndex == PSS_PAGE_INFO) + if (pssData->currPageIndex == PSS_PAGE_INFO) { sub_81C48F0(); PlaySE(SE_SELECT); @@ -1189,15 +1189,15 @@ void sub_81C0510(u8 taskId) } } -void sub_81C0604(u8 taskId, s8 a) +static void sub_81C0604(u8 taskId, s8 a) { s8 r4_2; - if (!gUnknown_0203CF1C->unk40C3) + if (!pssData->unk40C3) { - if (gUnknown_0203CF1C->isBoxMon == TRUE) + if (pssData->isBoxMon == TRUE) { - if (gUnknown_0203CF1C->currPageIndex != PSS_PAGE_INFO) + if (pssData->currPageIndex != PSS_PAGE_INFO) { if (a == 1) a = 0; @@ -1211,7 +1211,7 @@ void sub_81C0604(u8 taskId, s8 a) else a = 3; } - r4_2 = sub_80D214C(gUnknown_0203CF1C->monList.boxMons, gUnknown_0203CF1C->curMonIndex, gUnknown_0203CF1C->maxMonIndex, a); + r4_2 = sub_80D214C(pssData->monList.boxMons, pssData->curMonIndex, pssData->maxMonIndex, a); } else if (sub_81B1250() == 1) { @@ -1225,21 +1225,21 @@ void sub_81C0604(u8 taskId, s8 a) if (r4_2 != -1) { PlaySE(SE_SELECT); - if (gUnknown_0203CF1C->summary.unk7 != 0) + if (pssData->summary.unk7 != 0) { sub_81C4204(2, 1); ClearWindowTilemap(13); schedule_bg_copy_tilemap_to_vram(0); sub_81C2074(0, 2); } - gUnknown_0203CF1C->curMonIndex = r4_2; + pssData->curMonIndex = r4_2; gTasks[taskId].data[0] = 0; gTasks[taskId].func = sub_81C0704; } } } -void sub_81C0704(u8 taskId) +static void sub_81C0704(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -1250,36 +1250,36 @@ void sub_81C0704(u8 taskId) break; case 1: SummaryScreen_DestroyUnknownTask(); - DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->spriteIds[0]]); + DestroySpriteAndFreeResources(&gSprites[pssData->spriteIds[0]]); break; case 2: - DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->spriteIds[1]]); + DestroySpriteAndFreeResources(&gSprites[pssData->spriteIds[1]]); break; case 3: - CopyMonToSummaryStruct(&gUnknown_0203CF1C->currentMon); - gUnknown_0203CF1C->unk40F0 = 0; + CopyMonToSummaryStruct(&pssData->currentMon); + pssData->unk40F0 = 0; break; case 4: - if (ExtractMonDataToSummaryStruct(&gUnknown_0203CF1C->currentMon) == FALSE) + if (ExtractMonDataToSummaryStruct(&pssData->currentMon) == FALSE) return; break; case 5: - RemoveAndCreateMonMarkingsSprite(&gUnknown_0203CF1C->currentMon); + RemoveAndCreateMonMarkingsSprite(&pssData->currentMon); break; case 6: - CreateCaughtBallSprite(&gUnknown_0203CF1C->currentMon); + CreateCaughtBallSprite(&pssData->currentMon); break; case 7: - if (gUnknown_0203CF1C->summary.unk7) + if (pssData->summary.unk7) sub_81C2074(10, -2); - sub_81C2228(&gUnknown_0203CF1C->currentMon); + sub_81C2228(&pssData->currentMon); data[1] = 0; break; case 8: - gUnknown_0203CF1C->spriteIds[0] = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &data[1]); - if (gUnknown_0203CF1C->spriteIds[0] == 0xFF) + pssData->spriteIds[0] = sub_81C45F4(&pssData->currentMon, &data[1]); + if (pssData->spriteIds[0] == 0xFF) return; - gSprites[gUnknown_0203CF1C->spriteIds[0]].data[2] = 1; + gSprites[pssData->spriteIds[0]].data[2] = 1; sub_81C0E24(); data[1] = 0; break; @@ -1290,11 +1290,11 @@ void sub_81C0704(u8 taskId) sub_81C25E8(); break; case 11: - sub_81C2D9C(gUnknown_0203CF1C->currPageIndex); + sub_81C2D9C(pssData->currPageIndex); sub_81C2524(); break; case 12: - gSprites[gUnknown_0203CF1C->spriteIds[0]].data[2] = 0; + gSprites[pssData->spriteIds[0]].data[2] = 0; break; default: if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0) @@ -1307,42 +1307,42 @@ void sub_81C0704(u8 taskId) data[0]++; } -s8 sub_81C08F8(s8 a) +static s8 sub_81C08F8(s8 a) { - struct Pokemon *mon = gUnknown_0203CF1C->monList.mons; + struct Pokemon *mon = pssData->monList.mons; - if (gUnknown_0203CF1C->currPageIndex == PSS_PAGE_INFO) + if (pssData->currPageIndex == PSS_PAGE_INFO) { - if (a == -1 && gUnknown_0203CF1C->curMonIndex == 0) + if (a == -1 && pssData->curMonIndex == 0) return -1; - else if (a == 1 && gUnknown_0203CF1C->curMonIndex >= gUnknown_0203CF1C->maxMonIndex) + else if (a == 1 && pssData->curMonIndex >= pssData->maxMonIndex) return -1; else - return gUnknown_0203CF1C->curMonIndex + a; + return pssData->curMonIndex + a; } else { - s8 index = gUnknown_0203CF1C->curMonIndex; + s8 index = pssData->curMonIndex; do { index += a; - if (index < 0 || index > gUnknown_0203CF1C->maxMonIndex) + if (index < 0 || index > pssData->maxMonIndex) return -1; } while (GetMonData(&mon[index], MON_DATA_IS_EGG) != 0); return index; } } -s8 sub_81C09B4(s8 a) +static s8 sub_81C09B4(s8 a) { - struct Pokemon *mon = gUnknown_0203CF1C->monList.mons; + struct Pokemon *mon = pssData->monList.mons; s8 r5 = 0; u8 i; for (i = 0; i < 6; i++) { - if (gUnknown_0861CC1C[i] == gUnknown_0203CF1C->curMonIndex) + if (gUnknown_0861CC1C[i] == pssData->curMonIndex) { r5 = i; break; @@ -1363,46 +1363,46 @@ s8 sub_81C09B4(s8 a) } } -bool8 sub_81C0A50(struct Pokemon* mon) +static bool8 sub_81C0A50(struct Pokemon* mon) { - if (GetMonData(mon, MON_DATA_SPECIES) == 0) + if (GetMonData(mon, MON_DATA_SPECIES) == SPECIES_NONE) return FALSE; - else if (gUnknown_0203CF1C->curMonIndex != 0 || GetMonData(mon, MON_DATA_IS_EGG) == 0) + else if (pssData->curMonIndex != 0 || GetMonData(mon, MON_DATA_IS_EGG) == 0) return TRUE; else return FALSE; } -void sub_81C0A8C(u8 taskId, s8 b) +static void sub_81C0A8C(u8 taskId, s8 b) { - struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + struct PokeSummary *summary = &pssData->summary; s16 *data = gTasks[taskId].data; if (summary->isEgg) return; - else if (b == -1 && gUnknown_0203CF1C->currPageIndex == gUnknown_0203CF1C->minPageIndex) + else if (b == -1 && pssData->currPageIndex == pssData->minPageIndex) return; - else if (b == 1 && gUnknown_0203CF1C->currPageIndex == gUnknown_0203CF1C->maxPageIndex) + else if (b == 1 && pssData->currPageIndex == pssData->maxPageIndex) return; PlaySE(SE_SELECT); - sub_81C2C38(gUnknown_0203CF1C->currPageIndex); - gUnknown_0203CF1C->currPageIndex += b; + sub_81C2C38(pssData->currPageIndex); + pssData->currPageIndex += b; data[0] = 0; if (b == 1) SetTaskFuncWithFollowupFunc(taskId, sub_81C0B8C, gTasks[taskId].func); else SetTaskFuncWithFollowupFunc(taskId, sub_81C0CC4, gTasks[taskId].func); - sub_81C2DE4(gUnknown_0203CF1C->currPageIndex); + sub_81C2DE4(pssData->currPageIndex); sub_81C424C(); } -void sub_81C0B8C(u8 taskId) +static void sub_81C0B8C(u8 taskId) { s16 *data = gTasks[taskId].data; if (data[0] == 0) { - if (gUnknown_0203CF1C->unk40C9 == 0) + if (pssData->unk40C9 == 0) { data[1] = 1; SetBgAttribute(1, 7, 1); @@ -1417,7 +1417,7 @@ void sub_81C0B8C(u8 taskId) schedule_bg_copy_tilemap_to_vram(2); } ChangeBgX(data[1], 0, 0); - SetBgTilemapBuffer(data[1], gUnknown_0203CF1C->bgTilemapBuffers[gUnknown_0203CF1C->currPageIndex][0]); + SetBgTilemapBuffer(data[1], pssData->bgTilemapBuffers[pssData->currPageIndex][0]); ShowBg(1); ShowBg(2); } @@ -1427,25 +1427,25 @@ void sub_81C0B8C(u8 taskId) gTasks[taskId].func = sub_81C0C68; } -void sub_81C0C68(u8 taskId) +static void sub_81C0C68(u8 taskId) { s16 *data = gTasks[taskId].data; - gUnknown_0203CF1C->unk40C9 ^= 1; + pssData->unk40C9 ^= 1; data[1] = 0; data[0] = 0; sub_81C1BA0(); - sub_81C2AFC(gUnknown_0203CF1C->currPageIndex); + sub_81C2AFC(pssData->currPageIndex); sub_81C4280(); sub_81C0E24(); SwitchTaskToFollowupFunc(taskId); } -void sub_81C0CC4(u8 taskId) +static void sub_81C0CC4(u8 taskId) { s16 *data = gTasks[taskId].data; if (data[0] == 0) { - if (gUnknown_0203CF1C->unk40C9 == 0) + if (pssData->unk40C9 == 0) data[1] = 2; else data[1] = 1; @@ -1457,10 +1457,10 @@ void sub_81C0CC4(u8 taskId) gTasks[taskId].func = sub_81C0D44; } -void sub_81C0D44(u8 taskId) +static void sub_81C0D44(u8 taskId) { s16 *data = gTasks[taskId].data; - if (gUnknown_0203CF1C->unk40C9 == 0) + if (pssData->unk40C9 == 0) { SetBgAttribute(1, 7, 1); SetBgAttribute(2, 7, 2); @@ -1472,46 +1472,46 @@ void sub_81C0D44(u8 taskId) SetBgAttribute(1, 7, 2); schedule_bg_copy_tilemap_to_vram(1); } - if (gUnknown_0203CF1C->currPageIndex > 1) + if (pssData->currPageIndex > 1) { - SetBgTilemapBuffer(data[1], (u8*)gUnknown_0203CF1C + ((gUnknown_0203CF1C->currPageIndex << 12) + 0xFFFFF0BC)); + SetBgTilemapBuffer(data[1], (u8*)pssData + ((pssData->currPageIndex << 12) + 0xFFFFF0BC)); ChangeBgX(data[1], 0x10000, 0); } ShowBg(1); ShowBg(2); - gUnknown_0203CF1C->unk40C9 ^= 1; + pssData->unk40C9 ^= 1; data[1] = 0; data[0] = 0; sub_81C1BA0(); - sub_81C2AFC(gUnknown_0203CF1C->currPageIndex); + sub_81C2AFC(pssData->currPageIndex); sub_81C4280(); sub_81C0E24(); SwitchTaskToFollowupFunc(taskId); } -void sub_81C0E24(void) +static void sub_81C0E24(void) { - if (gUnknown_0203CF1C->currPageIndex == 1) - sub_81C22CC(&gUnknown_0203CF1C->currentMon); + if (pssData->currPageIndex == 1) + sub_81C22CC(&pssData->currentMon); } -void sub_81C0E48(u8 taskId) +static void sub_81C0E48(u8 taskId) { u16 move; - gUnknown_0203CF1C->firstMoveIndex = 0; - move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; + pssData->firstMoveIndex = 0; + move = pssData->summary.moves[pssData->firstMoveIndex]; ClearWindowTilemap(0x13); - if (gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible == 0) + if (gSprites[pssData->spriteIds[2]].invisible == 0) ClearWindowTilemap(0xD); sub_81C1DA4(9, -3); sub_81C1EFC(9, -3, move); - if (!gUnknown_0203CF1C->unk40C8) + if (!pssData->unk40C8) { ClearWindowTilemap(5); PutWindowTilemap(6); } - sub_81C2194(gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); - sub_81C2194(gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); + sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); + sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); PrintMoveDetails(move); PrintNewMoveDetailsOrCancelText(); sub_81C44F0(); @@ -1522,7 +1522,7 @@ void sub_81C0E48(u8 taskId) gTasks[taskId].func = sub_81C0F44; } -void sub_81C0F44(u8 taskId) +static void sub_81C0F44(u8 taskId) { u8 id = taskId; s16 *data = gTasks[taskId].data; @@ -1532,17 +1532,17 @@ void sub_81C0F44(u8 taskId) if (gMain.newKeys & DPAD_UP) { data[0] = 4; - sub_81C1070(data, -1, &gUnknown_0203CF1C->firstMoveIndex); + sub_81C1070(data, -1, &pssData->firstMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 4; - sub_81C1070(data, 1, &gUnknown_0203CF1C->firstMoveIndex); + sub_81C1070(data, 1, &pssData->firstMoveIndex); } else if (gMain.newKeys & A_BUTTON) { - if (gUnknown_0203CF1C->unk40C8 == TRUE - || (gUnknown_0203CF1C->newMove == MOVE_NONE && gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES)) + if (pssData->unk40C8 == TRUE + || (pssData->newMove == MOVE_NONE && pssData->firstMoveIndex == MAX_MON_MOVES)) { PlaySE(SE_SELECT); sub_81C11F4(taskId); @@ -1565,18 +1565,18 @@ void sub_81C0F44(u8 taskId) } } -bool8 sub_81C1040(void) +static bool8 sub_81C1040(void) { u8 i; for (i = 1; i < 4; i++) { - if (gUnknown_0203CF1C->summary.moves[i] != 0) + if (pssData->summary.moves[i] != 0) return TRUE; } return FALSE; } -void sub_81C1070(s16 *a, s8 b, u8 *c) +static void sub_81C1070(s16 *a, s8 b, u8 *c) { s8 i; s8 moveIndex; @@ -1593,10 +1593,10 @@ void sub_81C1070(s16 *a, s8 b, u8 *c) moveIndex = a[0]; if (moveIndex == 4) { - move = gUnknown_0203CF1C->newMove; + move = pssData->newMove; break; } - move = gUnknown_0203CF1C->summary.moves[moveIndex]; + move = pssData->summary.moves[moveIndex]; if (move != 0) break; } @@ -1604,16 +1604,16 @@ void sub_81C1070(s16 *a, s8 b, u8 *c) schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); PrintMoveDetails(move); - if ((*c == 4 && gUnknown_0203CF1C->newMove == MOVE_NONE) || a[1] == 1) + if ((*c == 4 && pssData->newMove == MOVE_NONE) || a[1] == 1) { ClearWindowTilemap(19); - if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) + if (!gSprites[pssData->spriteIds[2]].invisible) ClearWindowTilemap(13); schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(9, -3); sub_81C1EFC(9, -3, move); } - if (*c != 4 && moveIndex == 4 && gUnknown_0203CF1C->newMove == MOVE_NONE) + if (*c != 4 && moveIndex == 4 && pssData->newMove == MOVE_NONE) { ClearWindowTilemap(14); ClearWindowTilemap(15); @@ -1622,22 +1622,22 @@ void sub_81C1070(s16 *a, s8 b, u8 *c) sub_81C1EFC(0, 3, 0); } *c = moveIndex; - if (c == &gUnknown_0203CF1C->firstMoveIndex) + if (c == &pssData->firstMoveIndex) sub_81C4D18(8); else sub_81C4D18(18); } -void sub_81C11F4(u8 taskId) +static void sub_81C11F4(u8 taskId) { sub_81C4C60(8); ClearWindowTilemap(6); PutWindowTilemap(5); PrintMoveDetails(0); - sub_81C2194(gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 1); - sub_81C2194(gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 1); + sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 1); + sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 1); sub_81C4064(); - if (gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) + if (pssData->firstMoveIndex != MAX_MON_MOVES) { ClearWindowTilemap(14); ClearWindowTilemap(15); @@ -1650,15 +1650,15 @@ void sub_81C11F4(u8 taskId) gTasks[taskId].func = sub_81C0510; } -void sub_81C129C(u8 taskId) +static void sub_81C129C(u8 taskId) { - gUnknown_0203CF1C->secondMoveIndex = gUnknown_0203CF1C->firstMoveIndex; + pssData->secondMoveIndex = pssData->firstMoveIndex; sub_81C4C84(1); sub_81C4AF8(18); gTasks[taskId].func = sub_81C12E4; } -void sub_81C12E4(u8 taskId) +static void sub_81C12E4(u8 taskId) { s16* data = gTasks[taskId].data; @@ -1667,16 +1667,16 @@ void sub_81C12E4(u8 taskId) if (gMain.newKeys & DPAD_UP) { data[0] = 3; - sub_81C1070(&data[0], -1, &gUnknown_0203CF1C->secondMoveIndex); + sub_81C1070(&data[0], -1, &pssData->secondMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 3; - sub_81C1070(&data[0], 1, &gUnknown_0203CF1C->secondMoveIndex); + sub_81C1070(&data[0], 1, &pssData->secondMoveIndex); } else if (gMain.newKeys & A_BUTTON) { - if (gUnknown_0203CF1C->firstMoveIndex == gUnknown_0203CF1C->secondMoveIndex) + if (pssData->firstMoveIndex == pssData->secondMoveIndex) { sub_81C13B0(taskId, 0); } @@ -1692,7 +1692,7 @@ void sub_81C12E4(u8 taskId) } } -void sub_81C13B0(u8 taskId, bool8 b) +static void sub_81C13B0(u8 taskId, bool8 b) { u16 move; @@ -1702,23 +1702,23 @@ void sub_81C13B0(u8 taskId, bool8 b) if (b == TRUE) { - if (!gUnknown_0203CF1C->isBoxMon) + if (!pssData->isBoxMon) { - struct Pokemon *why = gUnknown_0203CF1C->monList.mons; - sub_81C14BC(&why[gUnknown_0203CF1C->curMonIndex], gUnknown_0203CF1C->firstMoveIndex, gUnknown_0203CF1C->secondMoveIndex); + struct Pokemon *why = pssData->monList.mons; + SwapMonMoves(&why[pssData->curMonIndex], pssData->firstMoveIndex, pssData->secondMoveIndex); } else { - struct BoxPokemon *why = gUnknown_0203CF1C->monList.boxMons; - sub_81C15EC(&why[gUnknown_0203CF1C->curMonIndex], gUnknown_0203CF1C->firstMoveIndex, gUnknown_0203CF1C->secondMoveIndex); + struct BoxPokemon *why = pssData->monList.boxMons; + SwapBoxMonMoves(&why[pssData->curMonIndex], pssData->firstMoveIndex, pssData->secondMoveIndex); } - CopyMonToSummaryStruct(&gUnknown_0203CF1C->currentMon); - sub_81C40A0(gUnknown_0203CF1C->firstMoveIndex, gUnknown_0203CF1C->secondMoveIndex); - sub_81C4568(gUnknown_0203CF1C->firstMoveIndex, gUnknown_0203CF1C->secondMoveIndex); - gUnknown_0203CF1C->firstMoveIndex = gUnknown_0203CF1C->secondMoveIndex; + CopyMonToSummaryStruct(&pssData->currentMon); + sub_81C40A0(pssData->firstMoveIndex, pssData->secondMoveIndex); + sub_81C4568(pssData->firstMoveIndex, pssData->secondMoveIndex); + pssData->firstMoveIndex = pssData->secondMoveIndex; } - move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; + move = pssData->summary.moves[pssData->firstMoveIndex]; PrintMoveDetails(move); sub_81C240C(move); schedule_bg_copy_tilemap_to_vram(1); @@ -1726,437 +1726,84 @@ void sub_81C13B0(u8 taskId, bool8 b) gTasks[taskId].func = sub_81C0F44; } - -#ifdef NONMATCHING -void sub_81C14BC(struct Pokemon *mon, u8 swappingFromId, u8 swappingToId) +static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2) { - u16 localMoveTo; - u16 localMoveFrom; - u8 localPpTo; - u8 localPpFrom; - u8 localPpBonuses; - u16* moveFromPtr; - u16* moveToPtr; - u8* ppFromPtr; - u8* ppToPtr; - u8* ppBonusesPtr; + struct PokeSummary* summary = &pssData->summary; - moveFromPtr = &gUnknown_0203CF1C->summary.moves[swappingFromId]; - localMoveFrom = *moveFromPtr; + u16 move1 = summary->moves[moveIndex1]; + u16 move2 = summary->moves[moveIndex2]; + u8 move1pp = summary->pp[moveIndex1]; + u8 move2pp = summary->pp[moveIndex2]; + u8 ppBonuses = summary->ppBonuses; - moveToPtr = &gUnknown_0203CF1C->summary.moves[swappingToId]; - localMoveTo = *moveToPtr; + // Calculate PP bonuses + u8 ppUpMask1 = gUnknown_08329D22[moveIndex1]; + u8 ppBonusMove1 = (ppBonuses & ppUpMask1) >> (moveIndex1 * 2); + u8 ppUpMask2 = gUnknown_08329D22[moveIndex2]; + u8 ppBonusMove2 = (ppBonuses & ppUpMask2) >> (moveIndex2 * 2); + ppBonuses &= ~ppUpMask1; + ppBonuses &= ~ppUpMask2; + ppBonuses |= (ppBonusMove1 << (moveIndex2 * 2)) + (ppBonusMove2 << (moveIndex1 * 2)); - ppFromPtr = &gUnknown_0203CF1C->summary.pp[swappingFromId]; - localPpFrom = *ppFromPtr; + // Swap the moves + SetMonData(mon, MON_DATA_MOVE1 + moveIndex1, &move2); + SetMonData(mon, MON_DATA_MOVE1 + moveIndex2, &move1); + SetMonData(mon, MON_DATA_PP1 + moveIndex1, &move2pp); + SetMonData(mon, MON_DATA_PP1 + moveIndex2, &move1pp); + SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses); + + summary->moves[moveIndex1] = move2; + summary->moves[moveIndex2] = move1; - ppToPtr = &gUnknown_0203CF1C->summary.pp[swappingToId]; - localPpTo = *ppToPtr; + summary->pp[moveIndex1] = move2pp; + summary->pp[moveIndex2] = move1pp; - ppBonusesPtr = &gUnknown_0203CF1C->summary.ppBonuses; - localPpBonuses = *ppBonusesPtr; - -{ - u8 bitsFrom, bitsTo; - - bitsFrom = (localPpBonuses & gUnknown_08329D22[swappingFromId]) >> (swappingFromId << 1); - bitsTo = (localPpBonuses & gUnknown_08329D22[swappingToId]) >> (swappingToId << 1); - - - localPpBonuses &= ~(gUnknown_08329D22[swappingFromId]); - localPpBonuses &= ~(gUnknown_08329D22[swappingToId]); - - localPpBonuses |= ((bitsFrom << (swappingToId << 1)) + (bitsTo << (swappingToId << 1))); + summary->ppBonuses = ppBonuses; } - SetMonData(mon, swappingFromId + MON_DATA_MOVE1, &localMoveTo); - SetMonData(mon, swappingToId + MON_DATA_MOVE1, &localMoveFrom); - - SetMonData(mon, swappingFromId + MON_DATA_PP1, &localPpTo); - SetMonData(mon, swappingToId + MON_DATA_PP1, &localPpFrom); - - SetMonData(mon, MON_DATA_PP_BONUSES, &localPpBonuses); - - *moveFromPtr = localMoveTo; - *moveToPtr = localMoveFrom; - - *ppFromPtr = localPpTo; - *ppToPtr = localPpFrom; - - *ppBonusesPtr = localPpBonuses; -} -#else -NAKED -void sub_81C14BC(struct Pokemon *mon, u8 swappingFromId, u8 swappingToId) +static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2) { - 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, 0x28\n\ - adds r7, r0, 0\n\ - adds r4, r1, 0\n\ - adds r6, r2, 0\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - lsls r6, 24\n\ - lsrs r6, 24\n\ - ldr r0, =gUnknown_0203CF1C\n\ - ldr r2, [r0]\n\ - lsls r0, r4, 1\n\ - mov r10, r0\n\ - adds r1, r2, 0\n\ - adds r1, 0x84\n\ - adds r0, r1, r0\n\ - str r0, [sp, 0x8]\n\ - ldrh r0, [r0]\n\ - mov r3, sp\n\ - adds r3, 0x2\n\ - str r3, [sp, 0x1C]\n\ - strh r0, [r3]\n\ - lsls r0, r6, 1\n\ - mov r9, r0\n\ - add r1, r9\n\ - str r1, [sp, 0xC]\n\ - ldrh r1, [r1]\n\ - mov r0, sp\n\ - strh r1, [r0]\n\ - adds r1, r2, 0\n\ - adds r1, 0x8C\n\ - adds r3, r1, r4\n\ - str r3, [sp, 0x10]\n\ - ldrb r0, [r3]\n\ - mov r3, sp\n\ - adds r3, 0x5\n\ - str r3, [sp, 0x24]\n\ - strb r0, [r3]\n\ - adds r1, r6\n\ - str r1, [sp, 0x14]\n\ - ldrb r0, [r1]\n\ - mov r1, sp\n\ - adds r1, 0x4\n\ - str r1, [sp, 0x20]\n\ - strb r0, [r1]\n\ - adds r2, 0xA4\n\ - str r2, [sp, 0x18]\n\ - ldrb r0, [r2]\n\ - mov r5, sp\n\ - adds r5, 0x6\n\ - strb r0, [r5]\n\ - ldr r1, =gUnknown_08329D22\n\ - adds r0, r4, r1\n\ - ldrb r0, [r0]\n\ - mov r8, r0\n\ - ldrb r0, [r5]\n\ - adds r2, r0, 0\n\ - mov r3, r8\n\ - ands r2, r3\n\ - mov r3, r10\n\ - asrs r2, r3\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - adds r1, r6, r1\n\ - ldrb r1, [r1]\n\ - mov r12, r1\n\ - adds r1, r0, 0\n\ - mov r3, r12\n\ - ands r1, r3\n\ - mov r3, r9\n\ - asrs r1, r3\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r3, r8\n\ - bics r0, r3\n\ - strb r0, [r5]\n\ - ldrb r0, [r5]\n\ - mov r3, r12\n\ - bics r0, r3\n\ - strb r0, [r5]\n\ - mov r0, r9\n\ - lsls r2, r0\n\ - mov r3, r10\n\ - lsls r1, r3\n\ - adds r2, r1\n\ - ldrb r0, [r5]\n\ - orrs r0, r2\n\ - strb r0, [r5]\n\ - adds r1, r4, 0\n\ - adds r1, 0xD\n\ - adds r0, r7, 0\n\ - mov r2, sp\n\ - bl SetMonData\n\ - adds r1, r6, 0\n\ - adds r1, 0xD\n\ - adds r0, r7, 0\n\ - ldr r2, [sp, 0x1C]\n\ - bl SetMonData\n\ - adds r4, 0x11\n\ - adds r0, r7, 0\n\ - adds r1, r4, 0\n\ - ldr r2, [sp, 0x20]\n\ - bl SetMonData\n\ - adds r6, 0x11\n\ - adds r0, r7, 0\n\ - adds r1, r6, 0\n\ - ldr r2, [sp, 0x24]\n\ - bl SetMonData\n\ - adds r0, r7, 0\n\ - movs r1, 0x15\n\ - adds r2, r5, 0\n\ - bl SetMonData\n\ - mov r0, sp\n\ - ldrh r0, [r0]\n\ - ldr r1, [sp, 0x8]\n\ - strh r0, [r1]\n\ - ldr r3, [sp, 0x1C]\n\ - ldrh r0, [r3]\n\ - ldr r1, [sp, 0xC]\n\ - strh r0, [r1]\n\ - ldr r3, [sp, 0x20]\n\ - ldrb r0, [r3]\n\ - ldr r1, [sp, 0x10]\n\ - strb r0, [r1]\n\ - ldr r3, [sp, 0x24]\n\ - ldrb r0, [r3]\n\ - ldr r1, [sp, 0x14]\n\ - strb r0, [r1]\n\ - ldrb r0, [r5]\n\ - ldr r3, [sp, 0x18]\n\ - strb r0, [r3]\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\ - .pool\n\ - .syntax divided\n"); -} -#endif + struct PokeSummary* summary = &pssData->summary; -#ifdef NONMATCHING -void sub_81C15EC(struct BoxPokemon *mon, u8 swappingFromId, u8 swappingToId) -{ - u16 localMoveTo; - u16 localMoveFrom; - u8 localPpTo; - u8 localPpFrom; - u8 localPpBonuses; - u16* moveFromPtr; - u16* moveToPtr; - u8* ppFromPtr; - u8* ppToPtr; - u8* ppBonusesPtr; + u16 move1 = summary->moves[moveIndex1]; + u16 move2 = summary->moves[moveIndex2]; + u8 move1pp = summary->pp[moveIndex1]; + u8 move2pp = summary->pp[moveIndex2]; + u8 ppBonuses = summary->ppBonuses; - moveFromPtr = &gUnknown_0203CF1C->summary.moves[swappingFromId]; - localMoveFrom = *moveFromPtr; + // Calculate PP bonuses + u8 ppUpMask1 = gUnknown_08329D22[moveIndex1]; + u8 ppBonusMove1 = (ppBonuses & ppUpMask1) >> (moveIndex1 * 2); + u8 ppUpMask2 = gUnknown_08329D22[moveIndex2]; + u8 ppBonusMove2 = (ppBonuses & ppUpMask2) >> (moveIndex2 * 2); + ppBonuses &= ~ppUpMask1; + ppBonuses &= ~ppUpMask2; + ppBonuses |= (ppBonusMove1 << (moveIndex2 * 2)) + (ppBonusMove2 << (moveIndex1 * 2)); - moveToPtr = &gUnknown_0203CF1C->summary.moves[swappingToId]; - localMoveTo = *moveToPtr; + // Swap the moves + SetBoxMonData(mon, MON_DATA_MOVE1 + moveIndex1, &move2); + SetBoxMonData(mon, MON_DATA_MOVE1 + moveIndex2, &move1); + SetBoxMonData(mon, MON_DATA_PP1 + moveIndex1, &move2pp); + SetBoxMonData(mon, MON_DATA_PP1 + moveIndex2, &move1pp); + SetBoxMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses); + + summary->moves[moveIndex1] = move2; + summary->moves[moveIndex2] = move1; - ppFromPtr = &gUnknown_0203CF1C->summary.pp[swappingFromId]; - localPpFrom = *ppFromPtr; + summary->pp[moveIndex1] = move2pp; + summary->pp[moveIndex2] = move1pp; - ppToPtr = &gUnknown_0203CF1C->summary.pp[swappingToId]; - localPpTo = *ppToPtr; - - ppBonusesPtr = &gUnknown_0203CF1C->summary.ppBonuses; - localPpBonuses = *ppBonusesPtr; - -{ - u8 bitsFrom, bitsTo; - - bitsFrom = (localPpBonuses & gUnknown_08329D22[swappingFromId]) >> (swappingFromId << 1); - bitsTo = (localPpBonuses & gUnknown_08329D22[swappingToId]) >> (swappingToId << 1); - - - localPpBonuses &= ~(gUnknown_08329D22[swappingFromId]); - localPpBonuses &= ~(gUnknown_08329D22[swappingToId]); - - localPpBonuses |= ((bitsFrom << (swappingToId << 1)) + (bitsTo << (swappingToId << 1))); + summary->ppBonuses = ppBonuses; } - SetBoxMonData(mon, swappingFromId + MON_DATA_MOVE1, &localMoveTo); - SetBoxMonData(mon, swappingToId + MON_DATA_MOVE1, &localMoveFrom); - - SetBoxMonData(mon, swappingFromId + MON_DATA_PP1, &localPpTo); - SetBoxMonData(mon, swappingToId + MON_DATA_PP1, &localPpFrom); - - SetBoxMonData(mon, MON_DATA_PP_BONUSES, &localPpBonuses); - - *moveFromPtr = localMoveTo; - *moveToPtr = localMoveFrom; - - *ppFromPtr = localPpTo; - *ppToPtr = localPpFrom; - - *ppBonusesPtr = localPpBonuses; -} -#else -NAKED -void sub_81C15EC(struct BoxPokemon *mon, u8 swappingFromId, u8 swappingToId) -{ - 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, 0x28\n\ - adds r7, r0, 0\n\ - adds r4, r1, 0\n\ - adds r6, r2, 0\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - lsls r6, 24\n\ - lsrs r6, 24\n\ - ldr r0, =gUnknown_0203CF1C\n\ - ldr r2, [r0]\n\ - lsls r0, r4, 1\n\ - mov r10, r0\n\ - adds r1, r2, 0\n\ - adds r1, 0x84\n\ - adds r0, r1, r0\n\ - str r0, [sp, 0x8]\n\ - ldrh r0, [r0]\n\ - mov r3, sp\n\ - adds r3, 0x2\n\ - str r3, [sp, 0x1C]\n\ - strh r0, [r3]\n\ - lsls r0, r6, 1\n\ - mov r9, r0\n\ - add r1, r9\n\ - str r1, [sp, 0xC]\n\ - ldrh r1, [r1]\n\ - mov r0, sp\n\ - strh r1, [r0]\n\ - adds r1, r2, 0\n\ - adds r1, 0x8C\n\ - adds r3, r1, r4\n\ - str r3, [sp, 0x10]\n\ - ldrb r0, [r3]\n\ - mov r3, sp\n\ - adds r3, 0x5\n\ - str r3, [sp, 0x24]\n\ - strb r0, [r3]\n\ - adds r1, r6\n\ - str r1, [sp, 0x14]\n\ - ldrb r0, [r1]\n\ - mov r1, sp\n\ - adds r1, 0x4\n\ - str r1, [sp, 0x20]\n\ - strb r0, [r1]\n\ - adds r2, 0xA4\n\ - str r2, [sp, 0x18]\n\ - ldrb r0, [r2]\n\ - mov r5, sp\n\ - adds r5, 0x6\n\ - strb r0, [r5]\n\ - ldr r1, =gUnknown_08329D22\n\ - adds r0, r4, r1\n\ - ldrb r0, [r0]\n\ - mov r8, r0\n\ - ldrb r0, [r5]\n\ - adds r2, r0, 0\n\ - mov r3, r8\n\ - ands r2, r3\n\ - mov r3, r10\n\ - asrs r2, r3\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - adds r1, r6, r1\n\ - ldrb r1, [r1]\n\ - mov r12, r1\n\ - adds r1, r0, 0\n\ - mov r3, r12\n\ - ands r1, r3\n\ - mov r3, r9\n\ - asrs r1, r3\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r3, r8\n\ - bics r0, r3\n\ - strb r0, [r5]\n\ - ldrb r0, [r5]\n\ - mov r3, r12\n\ - bics r0, r3\n\ - strb r0, [r5]\n\ - mov r0, r9\n\ - lsls r2, r0\n\ - mov r3, r10\n\ - lsls r1, r3\n\ - adds r2, r1\n\ - ldrb r0, [r5]\n\ - orrs r0, r2\n\ - strb r0, [r5]\n\ - adds r1, r4, 0\n\ - adds r1, 0xD\n\ - adds r0, r7, 0\n\ - mov r2, sp\n\ - bl SetBoxMonData\n\ - adds r1, r6, 0\n\ - adds r1, 0xD\n\ - adds r0, r7, 0\n\ - ldr r2, [sp, 0x1C]\n\ - bl SetBoxMonData\n\ - adds r4, 0x11\n\ - adds r0, r7, 0\n\ - adds r1, r4, 0\n\ - ldr r2, [sp, 0x20]\n\ - bl SetBoxMonData\n\ - adds r6, 0x11\n\ - adds r0, r7, 0\n\ - adds r1, r6, 0\n\ - ldr r2, [sp, 0x24]\n\ - bl SetBoxMonData\n\ - adds r0, r7, 0\n\ - movs r1, 0x15\n\ - adds r2, r5, 0\n\ - bl SetBoxMonData\n\ - mov r0, sp\n\ - ldrh r0, [r0]\n\ - ldr r1, [sp, 0x8]\n\ - strh r0, [r1]\n\ - ldr r3, [sp, 0x1C]\n\ - ldrh r0, [r3]\n\ - ldr r1, [sp, 0xC]\n\ - strh r0, [r1]\n\ - ldr r3, [sp, 0x20]\n\ - ldrb r0, [r3]\n\ - ldr r1, [sp, 0x10]\n\ - strb r0, [r1]\n\ - ldr r3, [sp, 0x24]\n\ - ldrb r0, [r3]\n\ - ldr r1, [sp, 0x14]\n\ - strb r0, [r1]\n\ - ldrb r0, [r5]\n\ - ldr r3, [sp, 0x18]\n\ - strb r0, [r3]\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\ - .pool\n\ - .syntax divided\n"); -} -#endif - -void sub_81C171C(u8 taskId) +static void sub_81C171C(u8 taskId) { sub_81C44F0(); sub_81C4AF8(8); gTasks[taskId].func = sub_81C174C; } -void sub_81C174C(u8 taskId) +static void sub_81C174C(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2167,12 +1814,12 @@ void sub_81C174C(u8 taskId) if (gMain.newKeys & DPAD_UP) { data[0] = 4; - sub_81C1070(data, -1, &gUnknown_0203CF1C->firstMoveIndex); + sub_81C1070(data, -1, &pssData->firstMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 4; - sub_81C1070(data, 1, &gUnknown_0203CF1C->firstMoveIndex); + sub_81C1070(data, 1, &pssData->firstMoveIndex); } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { @@ -2188,7 +1835,7 @@ void sub_81C174C(u8 taskId) { sub_81C48F0(); PlaySE(SE_SELECT); - gUnknown_0203CF21 = gUnknown_0203CF1C->firstMoveIndex; + gUnknown_0203CF21 = pssData->firstMoveIndex; gSpecialVar_0x8005 = gUnknown_0203CF21; sub_81C044C(taskId); } @@ -2211,26 +1858,26 @@ void sub_81C174C(u8 taskId) } } -bool8 sub_81C18A8(void) +static bool8 sub_81C18A8(void) { - if (gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES || gUnknown_0203CF1C->newMove == MOVE_NONE || sub_81B6D14(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]) != 1) + if (pssData->firstMoveIndex == MAX_MON_MOVES || pssData->newMove == MOVE_NONE || sub_81B6D14(pssData->summary.moves[pssData->firstMoveIndex]) != 1) return TRUE; else return FALSE; } -void sub_81C18F4(u8 taskId) +static void sub_81C18F4(u8 taskId) { ClearWindowTilemap(14); ClearWindowTilemap(15); schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(0, 3); sub_81C1EFC(0, 3, 0); - sub_81C4154(); + PrintHMMovesCantBeForgotten(); gTasks[taskId].func = sub_81C1940; } -void sub_81C1940(u8 taskId) +static void sub_81C1940(u8 taskId) { s16* data = gTasks[taskId].data; u16 move; @@ -2240,7 +1887,7 @@ void sub_81C1940(u8 taskId) { data[1] = 1; data[0] = 4; - sub_81C1070(&data[0], -1, &gUnknown_0203CF1C->firstMoveIndex); + sub_81C1070(&data[0], -1, &pssData->firstMoveIndex); data[1] = 0; gTasks[taskId].func = sub_81C174C; } @@ -2248,18 +1895,18 @@ void sub_81C1940(u8 taskId) { data[1] = 1; data[0] = 4; - sub_81C1070(&data[0], 1, &gUnknown_0203CF1C->firstMoveIndex); + sub_81C1070(&data[0], 1, &pssData->firstMoveIndex); data[1] = 0; gTasks[taskId].func = sub_81C174C; } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { - if (gUnknown_0203CF1C->currPageIndex != 2) + if (pssData->currPageIndex != 2) { ClearWindowTilemap(19); - if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) + if (!gSprites[pssData->spriteIds[2]].invisible) ClearWindowTilemap(13); - move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; + move = pssData->summary.moves[pssData->firstMoveIndex]; gTasks[taskId].func = sub_81C174C; sub_81C0A8C(taskId, -1); sub_81C1DA4(9, -2); @@ -2268,12 +1915,12 @@ void sub_81C1940(u8 taskId) } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2) { - if (gUnknown_0203CF1C->currPageIndex != 3) + if (pssData->currPageIndex != 3) { ClearWindowTilemap(19); - if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) + if (!gSprites[pssData->spriteIds[2]].invisible) ClearWindowTilemap(13); - move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; + move = pssData->summary.moves[pssData->firstMoveIndex]; gTasks[taskId].func = sub_81C174C; sub_81C0A8C(taskId, 1); sub_81C1DA4(9, -2); @@ -2283,9 +1930,9 @@ void sub_81C1940(u8 taskId) else if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { ClearWindowTilemap(19); - if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) + if (!gSprites[pssData->spriteIds[2]].invisible) ClearWindowTilemap(13); - move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; + move = pssData->summary.moves[pssData->firstMoveIndex]; PrintMoveDetails(move); schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(9, -3); @@ -2300,64 +1947,66 @@ u8 sub_81C1B94(void) return gUnknown_0203CF21; } -void sub_81C1BA0(void) +static void sub_81C1BA0(void) { u16 *alloced = Alloc(32); u8 i; + for (i = 0; i < 4; i++) { - u8 j = i << 1; - if (i < gUnknown_0203CF1C->minPageIndex) + u8 j = i * 2; + + if (i < pssData->minPageIndex) { - alloced[j+0] = 0x40; - alloced[j+1] = 0x40; - alloced[j+8] = 0x50; - alloced[j+9] = 0x50; + alloced[j + 0] = 0x40; + alloced[j + 1] = 0x40; + alloced[j + 8] = 0x50; + alloced[j + 9] = 0x50; } - else if (i > gUnknown_0203CF1C->maxPageIndex) + else if (i > pssData->maxPageIndex) { - alloced[j+0] = 0x4A; - alloced[j+1] = 0x4A; - alloced[j+8] = 0x5A; - alloced[j+9] = 0x5A; + alloced[j + 0] = 0x4A; + alloced[j + 1] = 0x4A; + alloced[j + 8] = 0x5A; + alloced[j + 9] = 0x5A; } - else if (i < gUnknown_0203CF1C->currPageIndex) + else if (i < pssData->currPageIndex) { - alloced[j+0] = 0x46; - alloced[j+1] = 0x47; - alloced[j+8] = 0x56; - alloced[j+9] = 0x57; + alloced[j + 0] = 0x46; + alloced[j + 1] = 0x47; + alloced[j + 8] = 0x56; + alloced[j + 9] = 0x57; } - else if (i == gUnknown_0203CF1C->currPageIndex) + else if (i == pssData->currPageIndex) { - if (i != gUnknown_0203CF1C->maxPageIndex) + if (i != pssData->maxPageIndex) { - alloced[j+0] = 0x41; - alloced[j+1] = 0x42; - alloced[j+8] = 0x51; - alloced[j+9] = 0x52; + alloced[j + 0] = 0x41; + alloced[j + 1] = 0x42; + alloced[j + 8] = 0x51; + alloced[j + 9] = 0x52; } else { - alloced[j+0] = 0x4B; - alloced[j+1] = 0x4C; - alloced[j+8] = 0x5B; - alloced[j+9] = 0x5C; + alloced[j + 0] = 0x4B; + alloced[j + 1] = 0x4C; + alloced[j + 8] = 0x5B; + alloced[j + 9] = 0x5C; } } - else if (i != gUnknown_0203CF1C->maxPageIndex) + else if (i != pssData->maxPageIndex) { - alloced[j+0] = 0x43; - alloced[j+1] = 0x44; - alloced[j+8] = 0x53; - alloced[j+9] = 0x54; + alloced[j + 0] = 0x43; + alloced[j + 1] = 0x44; + alloced[j + 8] = 0x53; + alloced[j + 9] = 0x54; } else { - alloced[j+0] = 0x48; - alloced[j+1] = 0x49; - alloced[j+8] = 0x58; - alloced[j+9] = 0x59; + alloced[j + 0] = 0x48; + alloced[j + 1] = 0x49; + alloced[j + 8] = 0x58; + alloced[j + 9] = 0x59; } } CopyToBgTilemapBufferRect_ChangePalette(3, alloced, 11, 0, 8, 2, 16); @@ -2365,7 +2014,7 @@ void sub_81C1BA0(void) Free(alloced); } -void sub_81C1CB0(const struct UnkStruct_61CC04 *unkStruct, u16 *dest, u8 c, bool8 d) +static void sub_81C1CB0(const struct UnkStruct_61CC04 *unkStruct, u16 *dest, u8 c, bool8 d) { u16 i; u16 *alloced = Alloc(unkStruct->field_6 * 2 * unkStruct->field_7); @@ -2394,13 +2043,13 @@ void sub_81C1CB0(const struct UnkStruct_61CC04 *unkStruct, u16 *dest, u8 c, bool Free(alloced); } -void sub_81C1DA4(u16 a, s16 b) +static void sub_81C1DA4(u16 a, s16 b) { if (b > gUnknown_0861CC04.field_6) b = gUnknown_0861CC04.field_6; if (b == 0 || b == gUnknown_0861CC04.field_6) { - sub_81C1CB0(&gUnknown_0861CC04, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], b, 1); + sub_81C1CB0(&gUnknown_0861CC04, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], b, 1); } else { @@ -2414,7 +2063,7 @@ void sub_81C1DA4(u16 a, s16 b) } } -void sub_81C1E20(u8 taskId) +static void sub_81C1E20(u8 taskId) { s16 *data = gTasks[taskId].data; data[1] += data[0]; @@ -2426,17 +2075,17 @@ void sub_81C1E20(u8 taskId) { data[1] = gUnknown_0861CC04.field_6; } - sub_81C1CB0(&gUnknown_0861CC04, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], data[1], 1); + sub_81C1CB0(&gUnknown_0861CC04, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], data[1], 1); if (data[1] <= 0 || data[1] >= gUnknown_0861CC04.field_6) { if (data[0] < 0) { - if (gUnknown_0203CF1C->currPageIndex == 2) + if (pssData->currPageIndex == 2) PutWindowTilemap(14); } else { - if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) + if (!gSprites[pssData->spriteIds[2]].invisible) PutWindowTilemap(13); PutWindowTilemap(19); } @@ -2447,12 +2096,12 @@ void sub_81C1E20(u8 taskId) schedule_bg_copy_tilemap_to_vram(2); } -void sub_81C1EFC(u16 a, s16 b, u16 move) +static void sub_81C1EFC(u16 a, s16 b, u16 move) { if (b > gUnknown_0861CC10.field_6) b = gUnknown_0861CC10.field_6; if (b == 0 || b == gUnknown_0861CC10.field_6) - sub_81C1CB0(&gUnknown_0861CC10, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], b, 1); + sub_81C1CB0(&gUnknown_0861CC10, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], b, 1); else { u8 taskId = FindTaskIdByFunc(sub_81C1F80); @@ -2464,7 +2113,7 @@ void sub_81C1EFC(u16 a, s16 b, u16 move) } } -void sub_81C1F80(u8 taskId) +static void sub_81C1F80(u8 taskId) { s16 *data = gTasks[taskId].data; data[1] += data[0]; @@ -2476,18 +2125,18 @@ void sub_81C1F80(u8 taskId) { data[1] = gUnknown_0861CC10.field_6; } - sub_81C1CB0(&gUnknown_0861CC10, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], data[1], 1); + sub_81C1CB0(&gUnknown_0861CC10, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], data[1], 1); if (data[1] <= 0 || data[1] >= gUnknown_0861CC10.field_6) { if (data[0] < 0) { - if (gUnknown_0203CF1C->currPageIndex == 3 && FuncIsActiveTask(sub_81C0B8C) == 0) + if (pssData->currPageIndex == 3 && FuncIsActiveTask(sub_81C0B8C) == 0) PutWindowTilemap(15); sub_81C240C(data[2]); } else { - if (!gSprites[gUnknown_0203CF1C->spriteIds[2]].invisible) + if (!gSprites[pssData->spriteIds[2]].invisible) { PutWindowTilemap(13); } @@ -2500,14 +2149,14 @@ void sub_81C1F80(u8 taskId) schedule_bg_copy_tilemap_to_vram(2); } -void sub_81C2074(u16 a, s16 b) +static void sub_81C2074(u16 a, s16 b) { if (b > gUnknown_0861CBEC.field_6) b = gUnknown_0861CBEC.field_6; if (b == 0 || b == gUnknown_0861CBEC.field_6) { - sub_81C1CB0(&gUnknown_0861CBEC, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); - sub_81C1CB0(&gUnknown_0861CBF8, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); + sub_81C1CB0(&gUnknown_0861CBEC, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); + sub_81C1CB0(&gUnknown_0861CBF8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); } else { @@ -2517,7 +2166,7 @@ void sub_81C2074(u16 a, s16 b) } } -void sub_81C20F0(u8 taskId) +static void sub_81C20F0(u8 taskId) { s16 *data = gTasks[taskId].data; data[1] += data[0]; @@ -2525,8 +2174,8 @@ void sub_81C20F0(u8 taskId) data[1] = 0; else if (data[1] > gUnknown_0861CBEC.field_6) data[1] = gUnknown_0861CBEC.field_6; - sub_81C1CB0(&gUnknown_0861CBEC, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); - sub_81C1CB0(&gUnknown_0861CBF8, gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); + sub_81C1CB0(&gUnknown_0861CBEC, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); + sub_81C1CB0(&gUnknown_0861CBF8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); schedule_bg_copy_tilemap_to_vram(3); if (data[1] <= 0 || data[1] >= gUnknown_0861CBEC.field_6) { @@ -2540,11 +2189,12 @@ void sub_81C20F0(u8 taskId) } } -void sub_81C2194(u16 *output, u16 palette, bool8 c) +static void sub_81C2194(u16 *output, u16 palette, bool8 c) { u16 i; u32 var; - palette <<= 12; + + palette *= 0x1000; var = 0x56A; if (c == 0) @@ -2567,22 +2217,22 @@ void sub_81C2194(u16 *output, u16 palette, bool8 c) } } -void sub_81C2228(struct Pokemon *mon) +static void sub_81C2228(struct Pokemon *mon) { if (!CheckPartyPokerus(mon, 0) && CheckPartyHasHadPokerus(mon, 0)) { - gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x2C; - gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x2C; + pssData->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x2C; + pssData->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x2C; } else { - gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x81A; - gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x81A; + pssData->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x81A; + pssData->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x81A; } schedule_bg_copy_tilemap_to_vram(3); } -void sub_81C228C(bool8 isMonShiny) +static void sub_81C228C(bool8 isMonShiny) { if (!isMonShiny) sub_8199C30(3, 1, 4, 8, 8, 0); @@ -2591,10 +2241,10 @@ void sub_81C228C(bool8 isMonShiny) schedule_bg_copy_tilemap_to_vram(3); } -void sub_81C22CC(struct Pokemon *unused) +static void sub_81C22CC(struct Pokemon *unused) { s64 r6r7; - struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + struct PokeSummary *summary = &pssData->summary; u16 *r9; u8 i; @@ -2612,7 +2262,7 @@ void sub_81C22CC(struct Pokemon *unused) r6r7 = 0; } - r9 = &gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_SKILLS][1][0x255]; + r9 = &pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][1][0x255]; for (i = 0; i < 8; i++) { if (r6r7 > 7) @@ -2624,15 +2274,15 @@ void sub_81C22CC(struct Pokemon *unused) r6r7 = 0; } - if (GetBgTilemapBuffer(1) == gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_SKILLS][0]) + if (GetBgTilemapBuffer(1) == pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][0]) schedule_bg_copy_tilemap_to_vram(1); else schedule_bg_copy_tilemap_to_vram(2); } -void sub_81C240C(u16 move) +static void sub_81C240C(u16 move) { - u16 *tilemap = gUnknown_0203CF1C->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]; + u16 *tilemap = pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]; u8 i; u8 effectValue; @@ -2674,15 +2324,15 @@ void sub_81C240C(u16 move) } } -void sub_81C2524(void) +static void sub_81C2524(void) { - if (gUnknown_0203CF1C->summary.isEgg) + if (pssData->summary.isEgg) ChangeBgX(3, 0x10000, 0); else ChangeBgX(3, 0, 0); } -void sub_81C2554(void) +static void sub_81C2554(void) { u8 i; InitWindows(gUnknown_0861CC24); @@ -2694,7 +2344,7 @@ void sub_81C2554(void) } for (i = 0; i < 8; i++) { - gUnknown_0203CF1C->windowIds[i] = 0xFF; + pssData->windowIds[i] = 0xFF; } } @@ -2703,23 +2353,23 @@ static void SummaryScreen_PrintTextOnWindow(u8 windowId, const u8 *string, u8 x, AddTextPrinterParameterized2(windowId, 1, x, y, 0, lineSpacing, sTextColors_861CD2C[colorId], 0, string); } -void sub_81C25E8(void) +static void sub_81C25E8(void) { FillWindowPixelBuffer(17, 0); FillWindowPixelBuffer(18, 0); FillWindowPixelBuffer(19, 0); - if (!gUnknown_0203CF1C->summary.isEgg) + if (!pssData->summary.isEgg) sub_81C2628(); else sub_81C2794(); schedule_bg_copy_tilemap_to_vram(0); } -void sub_81C2628(void) +static void sub_81C2628(void) { u8 strArray[16]; - struct Pokemon *mon = &gUnknown_0203CF1C->currentMon; - struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + struct Pokemon *mon = &pssData->currentMon; + struct PokeSummary *summary = &pssData->summary; u16 dexNum = SpeciesToPokedexNum(summary->species); if (dexNum != 0xFFFF) { @@ -2760,38 +2410,38 @@ void sub_81C2628(void) PutWindowTilemap(19); } -void sub_81C2794(void) +static void sub_81C2794(void) { - GetMonNickname(&gUnknown_0203CF1C->currentMon, gStringVar1); + GetMonNickname(&pssData->currentMon, gStringVar1); SummaryScreen_PrintTextOnWindow(18, gStringVar1, 0, 1, 0, 1); PutWindowTilemap(18); ClearWindowTilemap(17); ClearWindowTilemap(19); } -void sub_81C27DC(struct Pokemon *mon, u16 a) +static void sub_81C27DC(struct Pokemon *mon, u16 species) { - if (a != SPECIES_NIDORAN_M && a != SPECIES_NIDORAN_F) + if (species != SPECIES_NIDORAN_M && species != SPECIES_NIDORAN_F) { u8 gender = GetMonGender(mon); switch (gender) { case MON_MALE: - SummaryScreen_PrintTextOnWindow(19, &gText_MaleSymbol[0], 57, 17, 0, 3); + SummaryScreen_PrintTextOnWindow(19, gText_MaleSymbol, 57, 17, 0, 3); break; case MON_FEMALE: - SummaryScreen_PrintTextOnWindow(19, &gText_FemaleSymbol[0], 57, 17, 0, 4); + SummaryScreen_PrintTextOnWindow(19, gText_FemaleSymbol, 57, 17, 0, 4); break; } } } -void PrintAOrBButtonIcon(u8 windowId, bool8 bButton, u32 x) +static void PrintAOrBButtonIcon(u8 windowId, bool8 bButton, u32 x) { BlitBitmapToWindow(windowId, (bButton) ? gUnknown_0861CDD3 : gUnknown_0861CDD3 - 0x80, x, 0, 16, 16); } -static void PrintPageNamesAndStatsPage(void) +static void PrintPageNamesAndStatsPageToWindows(void) { int stringXPos; int iconXPos; @@ -2846,7 +2496,7 @@ static void PrintPageNamesAndStatsPage(void) SummaryScreen_PrintTextOnWindow(15, gText_Jam, 0, 17, 0, 1); } -void sub_81C2AFC(u8 a) +static void sub_81C2AFC(u8 a) { u8 i; @@ -2872,9 +2522,9 @@ void sub_81C2AFC(u8 a) break; case 2: PutWindowTilemap(2); - if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + if (pssData->mode == PSS_MODE_SELECT_MOVE) { - if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) + if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) PutWindowTilemap(14); } else @@ -2884,9 +2534,9 @@ void sub_81C2AFC(u8 a) break; case 3: PutWindowTilemap(3); - if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + if (pssData->mode == PSS_MODE_SELECT_MOVE) { - if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) + if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) PutWindowTilemap(15); } else @@ -2898,13 +2548,13 @@ void sub_81C2AFC(u8 a) for (i = 0; i < 8; i++) { - PutWindowTilemap(gUnknown_0203CF1C->windowIds[i]); + PutWindowTilemap(pssData->windowIds[i]); } schedule_bg_copy_tilemap_to_vram(0); } -void sub_81C2C38(u8 a) +static void sub_81C2C38(u8 a) { u8 i; switch (a) @@ -2921,9 +2571,9 @@ void sub_81C2C38(u8 a) ClearWindowTilemap(12); break; case 2: - if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + if (pssData->mode == PSS_MODE_SELECT_MOVE) { - if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) + if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) ClearWindowTilemap(14); } else @@ -2932,9 +2582,9 @@ void sub_81C2C38(u8 a) } break; case 3: - if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + if (pssData->mode == PSS_MODE_SELECT_MOVE) { - if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) + if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) ClearWindowTilemap(15); } else @@ -2952,9 +2602,9 @@ void sub_81C2C38(u8 a) schedule_bg_copy_tilemap_to_vram(0); } -u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 templateId) +static u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 templateId) { - u8 *windowIdPtr = &(gUnknown_0203CF1C->windowIds[templateId]); + u8 *windowIdPtr = &(pssData->windowIds[templateId]); if (*windowIdPtr == 0xFF) { *windowIdPtr = AddWindow(&template[templateId]); @@ -2963,9 +2613,9 @@ u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 templateI return *windowIdPtr; } -void SummaryScreen_RemoveWindowByIndex(u8 windowIndex) +static void SummaryScreen_RemoveWindowByIndex(u8 windowIndex) { - u8 *windowIdPtr = &(gUnknown_0203CF1C->windowIds[windowIndex]); + u8 *windowIdPtr = &(pssData->windowIds[windowIndex]); if (*windowIdPtr != 0xFF) { ClearWindowTilemap(*windowIdPtr); @@ -2974,25 +2624,25 @@ void SummaryScreen_RemoveWindowByIndex(u8 windowIndex) } } -void sub_81C2D9C(u8 pageIndex) +static void sub_81C2D9C(u8 pageIndex) { u16 i; for (i = 0; i < 8; i++) { - if (gUnknown_0203CF1C->windowIds[i] != 0xFF) - FillWindowPixelBuffer(gUnknown_0203CF1C->windowIds[i], 0); + if (pssData->windowIds[i] != 0xFF) + FillWindowPixelBuffer(pssData->windowIds[i], 0); } gUnknown_0861CE54[pageIndex](); } -void sub_81C2DE4(u8 pageIndex) +static void sub_81C2DE4(u8 pageIndex) { CreateTask(gUnknown_0861CE64[pageIndex], 16); } -void sub_81C2E00(void) +static void sub_81C2E00(void) { - if (gUnknown_0203CF1C->summary.isEgg) + if (pssData->summary.isEgg) { PrintEggOTName(); PrintEggOTID(); @@ -3010,7 +2660,7 @@ void sub_81C2E00(void) } } -void sub_81C2E40(u8 taskId) +static void sub_81C2E40(u8 taskId) { s16 *data = gTasks[taskId].data; switch (data[0]) @@ -3040,7 +2690,7 @@ void sub_81C2E40(u8 taskId) data[0]++; } -void PrintMonOTName(void) +static void PrintMonOTName(void) { u8 windowId; int x; @@ -3049,39 +2699,39 @@ void PrintMonOTName(void) windowId = AddWindowFromTemplateList(gUnknown_0861CCCC, 0); SummaryScreen_PrintTextOnWindow(windowId, gText_OTSlash, 0, 1, 0, 1); x = GetStringWidth(1, gText_OTSlash, 0); - if (gUnknown_0203CF1C->summary.OTGender == 0) - SummaryScreen_PrintTextOnWindow(windowId, gUnknown_0203CF1C->summary.OTName, x, 1, 0, 5); + if (pssData->summary.OTGender == 0) + SummaryScreen_PrintTextOnWindow(windowId, pssData->summary.OTName, x, 1, 0, 5); else - SummaryScreen_PrintTextOnWindow(windowId, gUnknown_0203CF1C->summary.OTName, x, 1, 0, 6); + SummaryScreen_PrintTextOnWindow(windowId, pssData->summary.OTName, x, 1, 0, 6); } } -void PrintMonOTID(void) +static void PrintMonOTID(void) { int xPos; if (sub_81A6BF4() != TRUE && sub_81B9E94() != TRUE) { - ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)gUnknown_0203CF1C->summary.OTID, 2, 5); + ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)pssData->summary.OTID, 2, 5); xPos = GetStringRightAlignXOffset(1, gStringVar1, 56); SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 1), gStringVar1, xPos, 1, 0, 1); } } -void PrintMonAbilityName(void) +static void PrintMonAbilityName(void) { - u8 ability = GetAbilityBySpecies(gUnknown_0203CF1C->summary.species, gUnknown_0203CF1C->summary.altAbility); + u8 ability = GetAbilityBySpecies(pssData->summary.species, pssData->summary.altAbility); SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), gAbilityNames[ability], 0, 1, 0, 1); } -void PrintMonAbilityDescription(void) +static void PrintMonAbilityDescription(void) { - u8 ability = GetAbilityBySpecies(gUnknown_0203CF1C->summary.species, gUnknown_0203CF1C->summary.altAbility); + u8 ability = GetAbilityBySpecies(pssData->summary.species, pssData->summary.altAbility); SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); } -void BufferMonTrainerMemo(void) +static void BufferMonTrainerMemo(void) { - struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + struct PokeSummary *sum = &pssData->summary; const u8 *text; DynamicPlaceholderTextUtil_Reset(); @@ -3116,7 +2766,7 @@ void BufferMonTrainerMemo(void) { text = gText_XNatureFatefulEncounter; } - else if (sum->metLocation != MAPSEC_IN_GAME_TRADE && MonCameFromGBAGames()) + else if (sum->metLocation != MAPSEC_IN_GAME_TRADE && DidMonComeFromGBAGames()) { text = (sum->metLocation >= MAPSEC_NONE) ? gText_XNatureObtainedInTrade : gText_XNatureProbablyMetAt; } @@ -3131,34 +2781,34 @@ void BufferMonTrainerMemo(void) } } -void PrintMonTrainerMemo(void) +static void PrintMonTrainerMemo(void) { SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 3), gStringVar4, 0, 1, 0, 0); } -void BufferNatureString(void) +static void BufferNatureString(void) { - struct UnkSummaryStruct *sumStruct = gUnknown_0203CF1C; + struct UnkSummaryStruct *sumStruct = pssData; DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gNatureNamePointers[sumStruct->summary.nature]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, gText_EmptyString5); } -void GetMetLevelString(u8 *output) +static void GetMetLevelString(u8 *output) { - u8 level = gUnknown_0203CF1C->summary.metLevel; + u8 level = pssData->summary.metLevel; if (level == 0) level = EGG_HATCH_LEVEL; ConvertIntToDecimalStringN(output, level, 0, 3); DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, output); } -bool8 DoesMonOTMatchOwner(void) +static bool8 DoesMonOTMatchOwner(void) { - struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + struct PokeSummary *sum = &pssData->summary; u32 trainerId; u8 gender; - if (gUnknown_0203CF1C->monList.mons == gEnemyParty) + if (pssData->monList.mons == gEnemyParty) { u8 multiID = GetMultiplayerId() ^ 1; trainerId = (u16)gLinkPlayers[multiID].trainerId; @@ -3178,33 +2828,33 @@ bool8 DoesMonOTMatchOwner(void) return TRUE; } -bool8 MonCameFromGBAGames(void) +static bool8 DidMonComeFromGBAGames(void) { - struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + struct PokeSummary *sum = &pssData->summary; if (sum->metGame > 0 && sum->metGame <= VERSION_LEAF_GREEN) return TRUE; return FALSE; } -bool8 MonCameFromRSE(void) +bool8 DidMonComeFromRSE(void) { - struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + struct PokeSummary *sum = &pssData->summary; if (sum->metGame > 0 && sum->metGame <= VERSION_EMERALD) return TRUE; return FALSE; } -bool8 IsInGamePartnerMon(void) +static bool8 IsInGamePartnerMon(void) { if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) && gMain.inBattle) { - if (gUnknown_0203CF1C->curMonIndex == 1 || gUnknown_0203CF1C->curMonIndex == 4 || gUnknown_0203CF1C->curMonIndex == 5) + if (pssData->curMonIndex == 1 || pssData->curMonIndex == 4 || pssData->curMonIndex == 5) return TRUE; } return FALSE; } -void PrintEggOTName(void) +static void PrintEggOTName(void) { u32 windowId = AddWindowFromTemplateList(gUnknown_0861CCCC, 0); u32 width = GetStringWidth(1, gText_OTSlash, 0); @@ -3212,7 +2862,7 @@ void PrintEggOTName(void) SummaryScreen_PrintTextOnWindow(windowId, gText_FiveMarks, width, 1, 0, 1); } -void PrintEggOTID(void) +static void PrintEggOTID(void) { int x; StringCopy(gStringVar1, gText_UnkCtrlF907F908); @@ -3221,12 +2871,12 @@ void PrintEggOTID(void) SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 1), gStringVar1, x, 1, 0, 1); } -void PrintEggState(void) +static void PrintEggState(void) { const u8 *text; - struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + struct PokeSummary *sum = &pssData->summary; - if (gUnknown_0203CF1C->summary.sanity == TRUE) + if (pssData->summary.sanity == TRUE) text = gText_EggWillTakeALongTime; else if (sum->friendship <= 5) text = gText_EggAboutToHatch; @@ -3240,19 +2890,19 @@ void PrintEggState(void) SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), text, 0, 1, 0, 0); } -void PrintEggMemo(void) +static void PrintEggMemo(void) { const u8 *text; - struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + struct PokeSummary *sum = &pssData->summary; - if (gUnknown_0203CF1C->summary.sanity != 1) + if (pssData->summary.sanity != 1) { if (sum->metLocation == MAPSEC_FATEFUL_ENCOUNTER) text = gText_PeculiarEggNicePlace; - else if (MonCameFromGBAGames() == FALSE || DoesMonOTMatchOwner() == FALSE) + else if (DidMonComeFromGBAGames() == FALSE || DoesMonOTMatchOwner() == FALSE) text = gText_PeculiarEggTrade; else if (sum->metLocation == MAPSEC_SPECIAL_EGG) - text = (MonCameFromRSE() == TRUE) ? gText_EggFromHotSprings : gText_EggFromTraveler; + text = (DidMonComeFromRSE() == TRUE) ? gText_EggFromHotSprings : gText_EggFromTraveler; else text = gText_OddEggFoundByCouple; } @@ -3264,7 +2914,7 @@ void PrintEggMemo(void) SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 3), text, 0, 1, 0, 0); } -void sub_81C3530(void) +static void sub_81C3530(void) { PrintHeldItemName(); PrintRibbonCount(); @@ -3275,7 +2925,7 @@ void sub_81C3530(void) PrintExpPointsNextLevel(); } -void sub_81C3554(u8 taskId) +static void sub_81C3554(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -3309,22 +2959,22 @@ void sub_81C3554(u8 taskId) data[0]++; } -void PrintHeldItemName(void) +static void PrintHeldItemName(void) { const u8 *text; int offset; - if (gUnknown_0203CF1C->summary.item == ITEM_ENIGMA_BERRY && sub_81B1250() == TRUE && (gUnknown_0203CF1C->curMonIndex == 1 || gUnknown_0203CF1C->curMonIndex == 4 || gUnknown_0203CF1C->curMonIndex == 5)) + if (pssData->summary.item == ITEM_ENIGMA_BERRY && sub_81B1250() == TRUE && (pssData->curMonIndex == 1 || pssData->curMonIndex == 4 || pssData->curMonIndex == 5)) { text = ItemId_GetName(ITEM_ENIGMA_BERRY); } - else if (gUnknown_0203CF1C->summary.item == ITEM_NONE) + else if (pssData->summary.item == ITEM_NONE) { text = gText_None; } else { - CopyItemName(gUnknown_0203CF1C->summary.item, gStringVar1); + CopyItemName(pssData->summary.item, gStringVar1); text = gStringVar1; } @@ -3332,18 +2982,18 @@ void PrintHeldItemName(void) SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 0), text, offset, 1, 0, 0); } -void PrintRibbonCount(void) +static void PrintRibbonCount(void) { const u8 *text; int offset; - if (gUnknown_0203CF1C->summary.ribbonCount == 0) + if (pssData->summary.ribbonCount == 0) { text = gText_None; } else { - ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.ribbonCount, 1, 2); + ConvertIntToDecimalStringN(gStringVar1, pssData->summary.ribbonCount, 1, 2); StringExpandPlaceholders(gStringVar4, gText_RibbonsVar1); text = gStringVar4; } @@ -3352,17 +3002,17 @@ void PrintRibbonCount(void) SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 1), text, offset, 1, 0, 0); } -void BufferLeftColumnStats(void) +static void BufferLeftColumnStats(void) { u8 *currentHPString = Alloc(8); u8 *maxHPString = Alloc(8); u8 *attackString = Alloc(8); u8 *defenseString = Alloc(8); - ConvertIntToDecimalStringN(currentHPString, gUnknown_0203CF1C->summary.currentHP, 1, 3); - ConvertIntToDecimalStringN(maxHPString, gUnknown_0203CF1C->summary.maxHP, 1, 3); - ConvertIntToDecimalStringN(attackString, gUnknown_0203CF1C->summary.atk, 1, 7); - ConvertIntToDecimalStringN(defenseString, gUnknown_0203CF1C->summary.def, 1, 7); + ConvertIntToDecimalStringN(currentHPString, pssData->summary.currentHP, 1, 3); + ConvertIntToDecimalStringN(maxHPString, pssData->summary.maxHP, 1, 3); + ConvertIntToDecimalStringN(attackString, pssData->summary.atk, 1, 7); + ConvertIntToDecimalStringN(defenseString, pssData->summary.def, 1, 7); DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, currentHPString); @@ -3377,16 +3027,16 @@ void BufferLeftColumnStats(void) Free(defenseString); } -void PrintLeftColumnStats(void) +static void PrintLeftColumnStats(void) { SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 2), gStringVar4, 4, 1, 0, 0); } -void BufferRightColumnStats(void) +static void BufferRightColumnStats(void) { - ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.spatk, 1, 3); - ConvertIntToDecimalStringN(gStringVar2, gUnknown_0203CF1C->summary.spdef, 1, 3); - ConvertIntToDecimalStringN(gStringVar3, gUnknown_0203CF1C->summary.speed, 1, 3); + ConvertIntToDecimalStringN(gStringVar1, pssData->summary.spatk, 1, 3); + ConvertIntToDecimalStringN(gStringVar2, pssData->summary.spdef, 1, 3); + ConvertIntToDecimalStringN(gStringVar3, pssData->summary.speed, 1, 3); DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); @@ -3395,14 +3045,14 @@ void BufferRightColumnStats(void) DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE8E); } -void PrintRightColumnStats(void) +static void PrintRightColumnStats(void) { SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 3), gStringVar4, 2, 1, 0, 0); } -void PrintExpPointsNextLevel(void) +static void PrintExpPointsNextLevel(void) { - struct PokeSummary *sum = &gUnknown_0203CF1C->summary; + struct PokeSummary *sum = &pssData->summary; u8 windowId = AddWindowFromTemplateList(gUnknown_0861CCEC, 4); int offset; u32 expToNextLevel; @@ -3421,29 +3071,29 @@ void PrintExpPointsNextLevel(void) SummaryScreen_PrintTextOnWindow(windowId, gStringVar1, offset, 17, 0, 0); } -void sub_81C3984(void) +static void sub_81C3984(void) { PrintMoveNameAndPP(0); PrintMoveNameAndPP(1); PrintMoveNameAndPP(2); PrintMoveNameAndPP(3); - if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + if (pssData->mode == PSS_MODE_SELECT_MOVE) { PrintNewMoveDetailsOrCancelText(); - if (gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES) + if (pssData->firstMoveIndex == MAX_MON_MOVES) { - if (gUnknown_0203CF1C->newMove != MOVE_NONE) - PrintMoveDetails(gUnknown_0203CF1C->newMove); + if (pssData->newMove != MOVE_NONE) + PrintMoveDetails(pssData->newMove); } else { - PrintMoveDetails(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]); + PrintMoveDetails(pssData->summary.moves[pssData->firstMoveIndex]); } } } -void sub_81C39F0(u8 taskId) +static void sub_81C39F0(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -3462,22 +3112,22 @@ void sub_81C39F0(u8 taskId) PrintMoveNameAndPP(3); break; case 5: - if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + if (pssData->mode == PSS_MODE_SELECT_MOVE) PrintNewMoveDetailsOrCancelText(); break; case 6: - if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + if (pssData->mode == PSS_MODE_SELECT_MOVE) { - if (gUnknown_0203CF1C->firstMoveIndex == MAX_MON_MOVES) - data[1] = gUnknown_0203CF1C->newMove; + if (pssData->firstMoveIndex == MAX_MON_MOVES) + data[1] = pssData->newMove; else - data[1] = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->firstMoveIndex]; + data[1] = pssData->summary.moves[pssData->firstMoveIndex]; } break; case 7: - if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + if (pssData->mode == PSS_MODE_SELECT_MOVE) { - if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) + if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) PrintMoveDetails(data[1]); } break; @@ -3488,13 +3138,13 @@ void sub_81C39F0(u8 taskId) data[0]++; } -void PrintMoveNameAndPP(u8 moveIndex) +static void PrintMoveNameAndPP(u8 moveIndex) { u8 pp; u32 ppState; const u8 *text; u32 offset; - struct UnkSummaryStruct *summaryStruct = gUnknown_0203CF1C; + struct UnkSummaryStruct *summaryStruct = pssData; u8 moveNameWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 0); u8 ppValueWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 1); u16 move = summaryStruct->summary.moves[moveIndex]; @@ -3524,7 +3174,7 @@ void PrintMoveNameAndPP(u8 moveIndex) SummaryScreen_PrintTextOnWindow(ppValueWindowId, text, offset, moveIndex * 16 + 1, 0, ppState); } -void PrintMovePowerAndAccuracy(u16 moveIndex) +static void PrintMovePowerAndAccuracy(u16 moveIndex) { const u8 *text; if (moveIndex != 0) @@ -3557,21 +3207,21 @@ void PrintMovePowerAndAccuracy(u16 moveIndex) } } -void sub_81C3D08(void) +static void sub_81C3D08(void) { PrintMoveNameAndPP(0); PrintMoveNameAndPP(1); PrintMoveNameAndPP(2); PrintMoveNameAndPP(3); - if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + if (pssData->mode == PSS_MODE_SELECT_MOVE) { PrintNewMoveDetailsOrCancelText(); - PrintContestMoveDescription(gUnknown_0203CF1C->firstMoveIndex); + PrintContestMoveDescription(pssData->firstMoveIndex); } } -void sub_81C3D54(u8 taskId) +static void sub_81C3D54(u8 taskId) { s16 *data = gTasks[taskId].data; s16 dataa = data[0] - 1; @@ -3591,14 +3241,14 @@ void sub_81C3D54(u8 taskId) PrintMoveNameAndPP(3); break; case 4: - if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + if (pssData->mode == PSS_MODE_SELECT_MOVE) PrintNewMoveDetailsOrCancelText(); break; case 5: - if (gUnknown_0203CF1C->mode == PSS_MODE_SELECT_MOVE) + if (pssData->mode == PSS_MODE_SELECT_MOVE) { - if (gUnknown_0203CF1C->newMove != MOVE_NONE || gUnknown_0203CF1C->firstMoveIndex != MAX_MON_MOVES) - PrintContestMoveDescription(gUnknown_0203CF1C->firstMoveIndex); + if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) + PrintContestMoveDescription(pssData->firstMoveIndex); } break; case 6: @@ -3608,14 +3258,14 @@ void sub_81C3D54(u8 taskId) data[0]++; } -void PrintContestMoveDescription(u8 moveSlot) +static void PrintContestMoveDescription(u8 moveSlot) { u16 move; if (moveSlot == 4) - move = gUnknown_0203CF1C->newMove; + move = pssData->newMove; else - move = gUnknown_0203CF1C->summary.moves[moveSlot]; + move = pssData->summary.moves[moveSlot]; if (move != MOVE_NONE) { @@ -3624,13 +3274,13 @@ void PrintContestMoveDescription(u8 moveSlot) } } -void PrintMoveDetails(u16 move) +static void PrintMoveDetails(u16 move) { u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); FillWindowPixelBuffer(windowId, 0); if (move != MOVE_NONE) { - if (gUnknown_0203CF1C->currPageIndex == 2) + if (pssData->currPageIndex == 2) { PrintMovePowerAndAccuracy(move); SummaryScreen_PrintTextOnWindow(windowId, gMoveDescriptionPointers[move - 1], 6, 1, 0, 0); @@ -3649,20 +3299,20 @@ void PrintMoveDetails(u16 move) schedule_bg_copy_tilemap_to_vram(0); } -void PrintNewMoveDetailsOrCancelText(void) +static void PrintNewMoveDetailsOrCancelText(void) { u8 windowId1 = AddWindowFromTemplateList(gUnknown_0861CD14, 0); u8 windowId2 = AddWindowFromTemplateList(gUnknown_0861CD14, 1); - if (gUnknown_0203CF1C->newMove == MOVE_NONE) + if (pssData->newMove == MOVE_NONE) { SummaryScreen_PrintTextOnWindow(windowId1, gText_Cancel, 0, 65, 0, 1); } else { - u16 move = gUnknown_0203CF1C->newMove; + u16 move = pssData->newMove; - if (gUnknown_0203CF1C->currPageIndex == 2) + if (pssData->currPageIndex == 2) SummaryScreen_PrintTextOnWindow(windowId1, gMoveNames[move], 0, 65, 0, 6); else SummaryScreen_PrintTextOnWindow(windowId1, gMoveNames[move], 0, 65, 0, 5); @@ -3676,14 +3326,14 @@ void PrintNewMoveDetailsOrCancelText(void) } } -void sub_81C4064(void) +static void sub_81C4064(void) { u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 0); FillWindowPixelRect(windowId, 0, 0, 66, 72, 16); CopyWindowToVram(windowId, 2); } -void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) +static void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) { u8 windowId1 = AddWindowFromTemplateList(gUnknown_0861CD14, 0); u8 windowId2 = AddWindowFromTemplateList(gUnknown_0861CD14, 1); @@ -3698,49 +3348,51 @@ void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) PrintMoveNameAndPP(moveIndex2); } -void sub_81C4154(void) +static void PrintHMMovesCantBeForgotten(void) { u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); FillWindowPixelBuffer(windowId, 0); SummaryScreen_PrintTextOnWindow(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0); } -void sub_81C4190(void) +static void sub_81C4190(void) { u8 i; for (i = 0; i < 28; i++) - gUnknown_0203CF1C->spriteIds[i] |= 0xFF; -} - -void DestroySpriteInArray(u8 spriteArrayId) -{ - if (gUnknown_0203CF1C->spriteIds[spriteArrayId] != 0xFF) { - DestroySprite(&gSprites[gUnknown_0203CF1C->spriteIds[spriteArrayId]]); - gUnknown_0203CF1C->spriteIds[spriteArrayId] = 0xFF; + pssData->spriteIds[i] = 0xFF; } } -void sub_81C4204(u8 spriteArrayId, bool8 invisible) +static void DestroySpriteInArray(u8 spriteArrayId) { - gSprites[gUnknown_0203CF1C->spriteIds[spriteArrayId]].invisible = invisible; + if (pssData->spriteIds[spriteArrayId] != 0xFF) + { + DestroySprite(&gSprites[pssData->spriteIds[spriteArrayId]]); + pssData->spriteIds[spriteArrayId] = 0xFF; + } } -void sub_81C424C(void) +static void sub_81C4204(u8 spriteArrayId, bool8 invisible) +{ + gSprites[pssData->spriteIds[spriteArrayId]].invisible = invisible; +} + +static void sub_81C424C(void) { u8 i; for (i = 3; i < 28; i++) { - if (gUnknown_0203CF1C->spriteIds[i] != 0xFF) + if (pssData->spriteIds[i] != 0xFF) sub_81C4204(i, TRUE); } } -void sub_81C4280(void) +static void sub_81C4280(void) { - switch (gUnknown_0203CF1C->currPageIndex) + switch (pssData->currPageIndex) { case 0: sub_81C43A0(); @@ -3756,22 +3408,22 @@ void sub_81C4280(void) } } -void sub_81C42C8(void) +static void sub_81C42C8(void) { u8 i; for (i = 3; i < 8; i++) { - if (gUnknown_0203CF1C->spriteIds[i] == 0xFF) - gUnknown_0203CF1C->spriteIds[i] = CreateSprite(&gUnknown_0861CFC4, 0, 0, 2); + if (pssData->spriteIds[i] == 0xFF) + pssData->spriteIds[i] = CreateSprite(&gUnknown_0861CFC4, 0, 0, 2); sub_81C4204(i, TRUE); } } -void sub_81C4318(u8 typeId, u8 x, u8 y, u8 spriteArrayId) +static void SetMoveTypeSpritePosAndType(u8 typeId, u8 x, u8 y, u8 spriteArrayId) { - struct Sprite *sprite = &gSprites[gUnknown_0203CF1C->spriteIds[spriteArrayId]]; + struct Sprite *sprite = &gSprites[pssData->spriteIds[spriteArrayId]]; StartSpriteAnim(sprite, typeId); sprite->oam.paletteNum = gUnknown_0861CFDC[typeId]; sprite->pos1.x = x + 16; @@ -3779,20 +3431,20 @@ void sub_81C4318(u8 typeId, u8 x, u8 y, u8 spriteArrayId) sub_81C4204(spriteArrayId, FALSE); } -void sub_81C43A0(void) +static void sub_81C43A0(void) { - struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + struct PokeSummary *summary = &pssData->summary; if (summary->isEgg) { - sub_81C4318(TYPE_MYSTERY, 0x78, 0x30, 3); + SetMoveTypeSpritePosAndType(TYPE_MYSTERY, 120, 48, 3); sub_81C4204(4, TRUE); } else { - sub_81C4318(gBaseStats[summary->species].type1, 0x78, 0x30, 3); + SetMoveTypeSpritePosAndType(gBaseStats[summary->species].type1, 0x78, 0x30, 3); if (gBaseStats[summary->species].type1 != gBaseStats[summary->species].type2) { - sub_81C4318(gBaseStats[summary->species].type2, 0xA0, 0x30, 4); + SetMoveTypeSpritePosAndType(gBaseStats[summary->species].type2, 0xA0, 0x30, 4); sub_81C4204(4, FALSE); } else @@ -3802,51 +3454,51 @@ void sub_81C43A0(void) } } -void sub_81C4420(void) +static void sub_81C4420(void) { u8 i; - struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + struct PokeSummary *summary = &pssData->summary; for (i = 0; i < 4; i++) { if (summary->moves[i] != MOVE_NONE) - sub_81C4318(gBattleMoves[summary->moves[i]].type, 0x55, 0x20 + (i * 0x10), i + 3); + SetMoveTypeSpritePosAndType(gBattleMoves[summary->moves[i]].type, 0x55, 0x20 + (i * 0x10), i + 3); else sub_81C4204(i + 3, TRUE); } } -void sub_81C4484(void) +static void sub_81C4484(void) { u8 i; - struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + struct PokeSummary *summary = &pssData->summary; for (i = 0; i < 4; i++) { if (summary->moves[i] != MOVE_NONE) - sub_81C4318(NUMBER_OF_MON_TYPES + gContestMoves[summary->moves[i]].contestCategory, 0x55, 0x20 + (i * 0x10), i + 3); + SetMoveTypeSpritePosAndType(NUMBER_OF_MON_TYPES + gContestMoves[summary->moves[i]].contestCategory, 0x55, 0x20 + (i * 0x10), i + 3); else sub_81C4204(i + 3, TRUE); } } -void sub_81C44F0(void) +static void sub_81C44F0(void) { - if (gUnknown_0203CF1C->newMove == MOVE_NONE) + if (pssData->newMove == MOVE_NONE) { sub_81C4204(7, TRUE); } else { - if (gUnknown_0203CF1C->currPageIndex == 2) - sub_81C4318(gBattleMoves[gUnknown_0203CF1C->newMove].type, 0x55, 0x60, 7); + if (pssData->currPageIndex == 2) + SetMoveTypeSpritePosAndType(gBattleMoves[pssData->newMove].type, 85, 96, 7); else - sub_81C4318(NUMBER_OF_MON_TYPES + gContestMoves[gUnknown_0203CF1C->newMove].contestCategory, 0x55, 0x60, 7); + SetMoveTypeSpritePosAndType(NUMBER_OF_MON_TYPES + gContestMoves[pssData->newMove].contestCategory, 85, 96, 7); } } -void sub_81C4568(u8 a0, u8 a1) +static void sub_81C4568(u8 a0, u8 a1) { - struct Sprite *sprite1 = &gSprites[gUnknown_0203CF1C->spriteIds[a0 + 3]]; - struct Sprite *sprite2 = &gSprites[gUnknown_0203CF1C->spriteIds[a1 + 3]]; + struct Sprite *sprite1 = &gSprites[pssData->spriteIds[a0 + 3]]; + struct Sprite *sprite2 = &gSprites[pssData->spriteIds[a1 + 3]]; u8 temp = sprite1->animNum; sprite1->animNum = sprite2->animNum; @@ -3862,10 +3514,10 @@ void sub_81C4568(u8 a0, u8 a1) sprite2->animEnded = FALSE; } -u8 sub_81C45F4(struct Pokemon *mon, s16 *a1) +static u8 sub_81C45F4(struct Pokemon *mon, s16 *a1) { const struct CompressedSpritePalette *pal; - struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + struct PokeSummary *summary = &pssData->summary; switch (*a1) { @@ -3874,7 +3526,7 @@ u8 sub_81C45F4(struct Pokemon *mon, s16 *a1) case 0: if (gMain.inBattle) { - if (sub_80688F8(3, gUnknown_0203CF1C->curMonIndex)) + if (sub_80688F8(3, pssData->curMonIndex)) { HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid); } @@ -3887,7 +3539,7 @@ u8 sub_81C45F4(struct Pokemon *mon, s16 *a1) { if (gMonSpritesGfxPtr != NULL) { - if (gUnknown_0203CF1C->monList.mons == gPlayerParty || gUnknown_0203CF1C->mode == PSS_MODE_UNK2 || gUnknown_0203CF1C->unk40EF == TRUE) + if (pssData->monList.mons == gPlayerParty || pssData->mode == PSS_MODE_UNK2 || pssData->unk40EF == TRUE) { HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid); } @@ -3898,7 +3550,7 @@ u8 sub_81C45F4(struct Pokemon *mon, s16 *a1) } else { - if (gUnknown_0203CF1C->monList.mons == gPlayerParty || gUnknown_0203CF1C->mode == PSS_MODE_UNK2 || gUnknown_0203CF1C->unk40EF == TRUE) + if (pssData->monList.mons == gPlayerParty || pssData->mode == PSS_MODE_UNK2 || pssData->unk40EF == TRUE) { HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], sub_806F4F8(0, 1), summary->species2, summary->pid); } @@ -3919,12 +3571,12 @@ u8 sub_81C45F4(struct Pokemon *mon, s16 *a1) } } -void sub_81C4778(void) +static void sub_81C4778(void) { - struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + struct PokeSummary *summary = &pssData->summary; if (!summary->isEgg) { - if (ShouldPlayNormalMonCry(&gUnknown_0203CF1C->currentMon) == TRUE) + if (ShouldPlayNormalMonCry(&pssData->currentMon) == TRUE) { PlayCry3(summary->species2, 0, 0); } @@ -3935,9 +3587,9 @@ void sub_81C4778(void) } } -u8 sub_81C47B4(struct Pokemon *unused) +static u8 sub_81C47B4(struct Pokemon *unused) { - struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + struct PokeSummary *summary = &pssData->summary; u8 spriteId = CreateSprite(&gMultiuseSpriteTemplate, 40, 64, 5); struct Sprite *sprite = &gSprites[spriteId]; @@ -3960,9 +3612,9 @@ u8 sub_81C47B4(struct Pokemon *unused) return spriteId; } -void sub_81C4844(struct Sprite *sprite) +static void sub_81C4844(struct Sprite *sprite) { - struct PokeSummary *summary = &gUnknown_0203CF1C->summary; + struct PokeSummary *summary = &pssData->summary; if (!gPaletteFade.active && sprite->data[2] != 1) { @@ -3986,9 +3638,9 @@ void SummaryScreen_DestroyUnknownTask(void) } } -bool32 DoesSpriteHaveCallback(void) +static bool32 SummaryScreen_DoesSpriteHaveCallback(void) { - if (gSprites[gUnknown_0203CF1C->spriteIds[0]].callback == SpriteCallbackDummy) + if (gSprites[pssData->spriteIds[0]].callback == SpriteCallbackDummy) { return FALSE; } @@ -3998,16 +3650,16 @@ bool32 DoesSpriteHaveCallback(void) } } -void sub_81C48F0(void) +static void sub_81C48F0(void) { u16 i; u16 paletteIndex; - gSprites[gUnknown_0203CF1C->spriteIds[0]].animPaused = TRUE; - gSprites[gUnknown_0203CF1C->spriteIds[0]].callback = SpriteCallbackDummy; + gSprites[pssData->spriteIds[0]].animPaused = TRUE; + gSprites[pssData->spriteIds[0]].callback = SpriteCallbackDummy; sub_806EE98(); - paletteIndex = (gSprites[gUnknown_0203CF1C->spriteIds[0]].oam.paletteNum * 16) | 0x100; + paletteIndex = (gSprites[pssData->spriteIds[0]].oam.paletteNum * 16) | 0x100; for (i = 0; i < 16; i++) { @@ -4015,41 +3667,41 @@ void sub_81C48F0(void) } } -void CreateMonMarkingsSprite(struct Pokemon *mon) +static void CreateMonMarkingsSprite(struct Pokemon *mon) { struct Sprite *sprite = sub_811FF94(30003, 30003, gUnknown_0861D120); - gUnknown_0203CF1C->markingsSprite = sprite; + pssData->markingsSprite = sprite; if (sprite != NULL) { StartSpriteAnim(sprite, GetMonData(mon, MON_DATA_MARKINGS)); - gUnknown_0203CF1C->markingsSprite->pos1.x = 60; - gUnknown_0203CF1C->markingsSprite->pos1.y = 26; - gUnknown_0203CF1C->markingsSprite->oam.priority = 1; + pssData->markingsSprite->pos1.x = 60; + pssData->markingsSprite->pos1.y = 26; + pssData->markingsSprite->oam.priority = 1; } } -void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon) +static void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon) { - DestroySprite(gUnknown_0203CF1C->markingsSprite); + DestroySprite(pssData->markingsSprite); FreeSpriteTilesByTag(30003); CreateMonMarkingsSprite(mon); } -void CreateCaughtBallSprite(struct Pokemon *mon) +static void CreateCaughtBallSprite(struct Pokemon *mon) { u8 ball = ItemIdToBallId(GetMonData(mon, MON_DATA_POKEBALL)); LoadBallGfx(ball); - gUnknown_0203CF1C->spriteIds[1] = CreateSprite(&gBallSpriteTemplates[ball], 16, 136, 0); - gSprites[gUnknown_0203CF1C->spriteIds[1]].callback = SpriteCallbackDummy; - gSprites[gUnknown_0203CF1C->spriteIds[1]].oam.priority = 3; + pssData->spriteIds[1] = CreateSprite(&gBallSpriteTemplates[ball], 16, 136, 0); + gSprites[pssData->spriteIds[1]].callback = SpriteCallbackDummy; + gSprites[pssData->spriteIds[1]].oam.priority = 3; } -void CreateSetStatusSprite(void) +static void CreateSetStatusSprite(void) { - u8 *spriteId = &gUnknown_0203CF1C->spriteIds[2]; + u8 *spriteId = &pssData->spriteIds[2]; u8 anim; if (*spriteId == 0xFF) @@ -4057,7 +3709,7 @@ void CreateSetStatusSprite(void) *spriteId = CreateSprite(&gUnknown_0861D108, 64, 152, 0); } - anim = sub_81B205C(&gUnknown_0203CF1C->currentMon); + anim = sub_81B205C(&pssData->currentMon); if (anim != 0) { @@ -4070,12 +3722,12 @@ void CreateSetStatusSprite(void) } } -void sub_81C4AF8(u8 a0) +static void sub_81C4AF8(u8 a0) { u8 i; - u8 *spriteIds = &gUnknown_0203CF1C->spriteIds[a0]; + u8 *spriteIds = &pssData->spriteIds[a0]; - if (gUnknown_0203CF1C->currPageIndex > 1) + if (pssData->currPageIndex > 1) { u8 subsprite = 0; if (a0 == 8) @@ -4105,7 +3757,7 @@ void sub_81C4AF8(u8 a0) } } -void sub_81C4BE4(struct Sprite *sprite) +static void sub_81C4BE4(struct Sprite *sprite) { if (sprite->animNum > 3 && sprite->animNum < 7) { @@ -4127,15 +3779,15 @@ void sub_81C4BE4(struct Sprite *sprite) if (sprite->data[0] == 8) { - sprite->pos2.y = gUnknown_0203CF1C->firstMoveIndex * 16; + sprite->pos2.y = pssData->firstMoveIndex * 16; } else { - sprite->pos2.y = gUnknown_0203CF1C->secondMoveIndex * 16; + sprite->pos2.y = pssData->secondMoveIndex * 16; } } -void sub_81C4C60(u8 a0) +static void sub_81C4C60(u8 a0) { u8 i; for (i = 0; i < 10; i++) @@ -4144,10 +3796,10 @@ void sub_81C4C60(u8 a0) } } -void sub_81C4C84(u8 a0) +static void sub_81C4C84(u8 a0) { u8 i; - u8 *spriteIds = &gUnknown_0203CF1C->spriteIds[8]; + u8 *spriteIds = &pssData->spriteIds[8]; a0 *= 3; for (i = 0; i < 10; i++) @@ -4167,10 +3819,10 @@ void sub_81C4C84(u8 a0) } } -void sub_81C4D18(u8 a0) +static void sub_81C4D18(u8 firstSpriteId) { u8 i; - u8 *spriteIds = &gUnknown_0203CF1C->spriteIds[a0]; + u8 *spriteIds = &pssData->spriteIds[firstSpriteId]; for (i = 0; i < 10; i++) { From 2b81db7acecd8baa3e343de66fd229040ec81381 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 15 Aug 2018 18:50:56 -0700 Subject: [PATCH 113/174] Fix Task_Truck1 --- src/field_special_scene.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 6f33b2c9be..c6cb0741d4 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -63,32 +63,24 @@ s16 GetTruckBoxMovement(int a1) // for the box movement? return 0; } -// smh STILL BROKEN IN EMERALD void Task_Truck1(u8 taskId) { s16 *data = gTasks[taskId].data; - s16 cameraYpan; - s16 box1 = 0; - s16 box2 = 0; - s16 box3 = 0; - u8 mapNum, mapGroup; - register s16 zero asm("r4"); + s16 cameraXpan = 0, cameraYpan = 0; + s16 box1, box2, box3; box1 = GetTruckBoxMovement(data[0] + 30) * 4; // top box. - sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3, box1 + 3); + sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); box2 = GetTruckBoxMovement(data[0]) * 2; // bottom left box. - sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 0, box2 - 3); + sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); box3 = GetTruckBoxMovement(data[0]) * 4; // bottom right box. - mapNum = gSaveBlock1Ptr->location.mapNum; - mapGroup = gSaveBlock1Ptr->location.mapGroup; - zero = 0; - sub_808E82C(3, mapNum, mapGroup, -3, box3); + sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); if (++data[0] == SECONDS(500)) // this will never run - data[0] = zero; // reset the timer if it gets stuck. + data[0] = 0; // reset the timer if it gets stuck. cameraYpan = GetTruckCameraBobbingY(data[0]); - SetCameraPanning(0, cameraYpan); + SetCameraPanning(cameraXpan, cameraYpan); } void Task_Truck2(u8 taskId) From 7669a94f0d01c0a825d2ae48c12adef0be445d81 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 16 Aug 2018 22:46:02 +0200 Subject: [PATCH 114/174] this function is driving me insane --- src/battle_frontier_1.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index 3c97215e39..04faad6cd7 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -1466,10 +1466,9 @@ s32 sub_818FEB4(s32 *arr, bool8 arg1) return bits; } -/* s32 sub_818FFC0(s32 move, s32 species, s32 arg2) { - u8 type1, type2, ability, moveType; + s32 type1, type2, ability, moveType; s32 i = 0; s32 typePower = 20; @@ -1488,22 +1487,25 @@ s32 sub_818FFC0(s32 move, s32 species, s32 arg2) } else { - while (TYPE_EFFECT_ATK_TYPE(i) != TYPE_ENDTABLE) + while (gTypeEffectiveness[i + 0] != TYPE_ENDTABLE) { - if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) + if (gTypeEffectiveness[i + 0] == TYPE_FORESIGHT) { i += 3; - continue; } - else if (TYPE_EFFECT_ATK_TYPE(i) == moveType) + else { - // BUG: * 2 is not necessary and makes the condition always false if the ability is wonder guard. - if (TYPE_EFFECT_DEF_TYPE(i) == type1 && (ability != ABILITY_WONDER_GUARD || TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE * 2)) - typePower = (TYPE_EFFECT_MULTIPLIER(i) * typePower) / 10; - if (TYPE_EFFECT_DEF_TYPE(i) == type2 && type1 != type2 && (ability != ABILITY_WONDER_GUARD || TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE * 2)) - typePower = (TYPE_EFFECT_MULTIPLIER(i) * typePower) / 10; + u8 val = gTypeEffectiveness[i + 0]; + if (val == moveType) + { + // BUG: * 2 is not necessary and makes the condition always false if the ability is wonder guard. + if (gTypeEffectiveness[i + 1] == type1 && (ability != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2)) + typePower = (gTypeEffectiveness[i + 2] * typePower) / 10; + if (gTypeEffectiveness[i + 1] == type2 && type1 != type2 && (ability != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2)) + typePower = (gTypeEffectiveness[i + 2] * typePower) / 10; + } + i += 3; } - i += 3; } } @@ -1580,4 +1582,4 @@ s32 sub_818FFC0(s32 move, s32 species, s32 arg2) } return typePower; -}*/ +} From 5dd1afd383fafda3bb8b956073e426ffad42fa00 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 16 Aug 2018 22:55:36 +0200 Subject: [PATCH 115/174] contest effect review changes --- src/contest_effect.c | 24 ++++++++++++++++++++---- src/data/contest_moves.h | 5 ----- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/contest_effect.c b/src/contest_effect.c index 7c086b7994..760d74d694 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -440,10 +440,17 @@ static void ContestEffect_MakeFollowingMonsNervous(void) MakeContestantNervous(contestantIds[i]); SetContestantEffectStringID(contestantIds[i], CONTEST_STRING_NERVOUS); numUnnerved++; - } else + } + else + { contestantUnnerved = TRUE; - } else + } + } + else + { contestantUnnerved = TRUE; + } + if (contestantUnnerved) { contestantUnnerved = FALSE; @@ -542,8 +549,11 @@ static void ContestEffect_AppealAsGoodAsPrevOnes(void) } if (appealSum < 0) appealSum = 0; + if (shared192D0.turnOrder[shared192D0.contestant] == 0 || appealSum == 0) + { SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_NOT_WELL); + } else { sContestantStatus[shared192D0.contestant].appeal2 += appealSum / 2; @@ -567,7 +577,9 @@ static void ContestEffect_AppealAsGoodAsPrevOne(void) } } if (shared192D0.turnOrder[shared192D0.contestant] == 0 || appeal <= 0) + { SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_APPEAL_NOT_WELL2); + } else { sContestantStatus[shared192D0.contestant].appeal2 += appeal; @@ -716,7 +728,9 @@ static void ContestEffect_ImproveConditionPreventNervousness(void) SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_CONDITION_ROSE); } else + { SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_NO_CONDITION_IMPROVE); + } } // The appeal works well if the user’s condition is good. @@ -988,8 +1002,10 @@ static bool8 CanUnnerveContestant(u8 i) { return TRUE; } - - return FALSE; + else + { + return FALSE; + } } static bool8 WasAtLeastOneOpponentJammed(void) diff --git a/src/data/contest_moves.h b/src/data/contest_moves.h index fc262dd211..ae560c8338 100644 --- a/src/data/contest_moves.h +++ b/src/data/contest_moves.h @@ -1,6 +1,3 @@ -#ifndef POKEEMERALD_CONTEST_MOVES_H -#define POKEEMERALD_CONTEST_MOVES_H - const struct ContestMove gContestMoves[MOVES_COUNT] = { [MOVE_NONE] = {0}, @@ -3009,5 +3006,3 @@ void (*const gContestEffectFuncs[])(void) = ContestEffect_BetterWhenAudienceExcited, ContestEffect_DontExciteAudience, }; - -#endif // POKEEMERALD_CONTEST_MOVES_H From 63cbc8f3ccb11b05c627717a2de82d3134d599d9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 18 Aug 2018 00:54:18 +0200 Subject: [PATCH 116/174] battle dome - a couple more functions --- asm/battle_frontier_1.s | 1386 +--------------------------------- asm/easy_chat.s | 4 +- asm/pokemon_storage_system.s | 4 +- asm/rom_8011DC0.s | 4 +- asm/trade.s | 4 +- include/global.h | 15 +- include/menu.h | 2 +- src/battle_frontier_1.c | 812 +++++++++++++++++++- src/egg_hatch.c | 2 +- src/evolution_scene.c | 2 +- src/fieldmap.c | 2 +- src/link.c | 2 +- src/menu.c | 2 +- src/pokedex.c | 12 +- 14 files changed, 827 insertions(+), 1426 deletions(-) diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index 11f215a836..d2700fff00 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -8,1384 +8,6 @@ - - thumb_func_start GetDomeTrainerMonIvs -GetDomeTrainerMonIvs: @ 8190168 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - cmp r0, 0x63 - bls _0819019A - movs r1, 0x6 - cmp r0, 0x77 - bls _0819019A - movs r1, 0x9 - cmp r0, 0x8B - bls _0819019A - movs r1, 0xC - cmp r0, 0x9F - bls _0819019A - movs r1, 0xF - cmp r0, 0xB3 - bls _0819019A - movs r1, 0x12 - cmp r0, 0xC7 - bls _0819019A - movs r1, 0x1F - cmp r0, 0xDB - bhi _0819019A - movs r1, 0x15 -_0819019A: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end GetDomeTrainerMonIvs - - thumb_func_start sub_81901A0 -sub_81901A0: @ 81901A0 - push {r4-r7,lr} - adds r3, r0, 0 - adds r2, r1, 0 - movs r5, 0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r4, =0x00000d24 - adds r1, r4 - ldrh r1, [r1] - lsls r1, 22 - lsrs r1, 22 - mov r12, r0 - ldr r6, =gUnknown_0860D10C - cmp r1, r2 - beq _081901D8 - mov r7, r12 -_081901C0: - adds r5, 0x1 - cmp r5, 0xF - bgt _081901D8 - ldr r0, [r7] - lsls r1, r5, 2 - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r2 - bne _081901C0 -_081901D8: - cmp r3, 0 - beq _0819026C - cmp r3, 0x3 - bne _081901FC - lsls r0, r5, 2 - adds r1, r0, 0x3 - adds r1, r6 - ldrb r1, [r1] - adds r4, r1, 0 - adds r4, 0x8 - b _08190206 - .pool -_081901FC: - lsls r0, r5, 2 - adds r1, r3, r0 - adds r1, r6 - ldrb r1, [r1] - adds r4, r1, 0x4 -_08190206: - adds r0, r3, r0 - adds r0, r6 - ldrb r2, [r0] - cmp r2, r4 - bge _08190256 - ldr r1, =gUnknown_0860D14C - adds r0, r2, r1 - ldrb r3, [r0] - adds r6, r1, 0 - cmp r3, r5 - beq _08190234 - mov r1, r12 - ldr r0, [r1] - lsls r1, r3, 2 - adds r0, r1 - ldr r3, =0x00000d25 - adds r0, r3 - b _0819024E - .pool -_08190234: - adds r2, 0x1 - cmp r2, r4 - bge _08190256 - adds r0, r2, r6 - ldrb r1, [r0] - cmp r1, r5 - beq _08190234 - mov r3, r12 - ldr r0, [r3] - lsls r1, 2 - adds r0, r1 - ldr r1, =0x00000d25 - adds r0, r1 -_0819024E: - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08190234 -_08190256: - cmp r2, r4 - beq _08190286 - ldr r0, =gUnknown_0860D14C - adds r0, r2, r0 - ldrb r0, [r0] - b _08190292 - .pool -_0819026C: - mov r3, r12 - ldr r1, [r3] - lsls r0, r5, 2 - adds r0, r6 - ldrb r2, [r0] - lsls r0, r2, 2 - adds r1, r0 - ldr r0, =0x00000d25 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - bge _08190290 -_08190286: - movs r0, 0xFF - b _08190292 - .pool -_08190290: - adds r0, r2, 0 -_08190292: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81901A0 - - thumb_func_start sub_8190298 -sub_8190298: @ 8190298 - push {lr} - bl sub_81902AC - ldr r1, =gTrainerBattleOpponent_A - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190298 - - thumb_func_start sub_81902AC -sub_81902AC: @ 81902AC - push {r4,lr} - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - ldr r1, =0x00000cb2 - adds r0, r4, r1 - ldrh r0, [r0] - ldr r1, =0x000003ff - bl sub_81901A0 - lsls r0, 2 - adds r4, r0 - ldr r0, =0x00000d24 - adds r4, r0 - ldrh r0, [r4] - lsls r0, 22 - lsrs r0, 22 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81902AC - - thumb_func_start sub_81902E4 -sub_81902E4: @ 81902E4 - push {lr} - ldr r0, =gTrainerBattleOpponent_A - ldrh r0, [r0] - movs r1, 0 - bl sub_8162614 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81902E4 - - thumb_func_start sub_81902F8 -sub_81902F8: @ 81902F8 - push {r4,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =gSpecialVar_0x8005 - ldrh r1, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - strb r1, [r0] - movs r0, 0x80 - lsls r0, 7 - movs r1, 0 - bl VarSet - ldr r1, [r4] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bl sub_81A4C30 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81902F8 - - thumb_func_start sub_819033C -sub_819033C: @ 819033C - push {r4,r5,lr} - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r4, [r0] - lsls r4, 30 - lsrs r4, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 24 - ldr r1, [r5] - lsls r4, 1 - lsrs r0, 22 - adds r4, r0 - ldr r3, =0x00000d0c - adds r1, r3 - adds r1, r4 - ldrh r0, [r1] - ldr r2, =0x000003e6 - cmp r0, r2 - bhi _0819036E - adds r0, 0x1 - strh r0, [r1] -_0819036E: - ldr r0, [r5] - ldr r1, =0x00000d1c - adds r0, r1 - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, r2 - bhi _08190380 - adds r0, 0x1 - strh r0, [r1] -_08190380: - ldr r0, [r5] - adds r1, r0, r3 - adds r1, r4 - ldr r2, =0x00000d14 - adds r0, r2 - adds r0, r4 - ldrh r1, [r1] - ldrh r2, [r0] - cmp r1, r2 - bls _08190396 - strh r1, [r0] -_08190396: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819033C - - thumb_func_start sub_81903B8 -sub_81903B8: @ 81903B8 - push {r4,r5,lr} - ldr r0, =sub_8190400 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r5, 0 - strh r5, [r4, 0x8] - bl sub_81902AC - lsls r0, 16 - lsrs r0, 16 - bl TrainerIdToTournamentId - strh r0, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - ldr r0, =sub_8194B54 - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81903B8 - - thumb_func_start sub_8190400 -sub_8190400: @ 8190400 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r10 - lsls r0, 3 - adds r6, r0, r1 - movs r0, 0xA - ldrsh r5, [r6, r0] - movs r2, 0xC - ldrsh r1, [r6, r2] - mov r9, r1 - movs r0, 0xE - ldrsh r7, [r6, r0] - movs r1, 0x8 - ldrsh r4, [r6, r1] - cmp r4, 0x1 - beq _08190508 - cmp r4, 0x1 - bgt _08190440 - cmp r4, 0 - beq _0819044E - b _08190772 - .pool -_08190440: - cmp r4, 0x2 - bne _08190446 - b _08190570 -_08190446: - cmp r4, 0x3 - bne _0819044C - b _08190634 -_0819044C: - b _08190772 -_0819044E: - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x1 - bl EnableInterrupts - str r4, [sp, 0x4] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x05006000 - add r0, sp, 0x4 - bl CpuSet - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0860CE84 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r0, =gUnknown_0860CEB4 - bl InitWindows - bl DeactivateAllTextPrinters - ldr r0, =gBattle_BG0_X - strh r4, [r0] - ldr r0, =gBattle_BG0_Y - strh r4, [r0] - ldr r0, =gBattle_BG1_X - strh r4, [r0] - ldr r0, =gBattle_BG1_Y - strh r4, [r0] - ldr r0, =gBattle_BG3_X - strh r4, [r0] - ldr r0, =gBattle_BG3_Y - strh r4, [r0] - mov r2, r9 - cmp r2, 0x2 - bne _081904DC - ldr r0, =gBattle_BG2_X - strh r4, [r0] - ldr r0, =gBattle_BG2_Y - strh r4, [r0] - b _081904E6 - .pool -_081904DC: - ldr r0, =gBattle_BG2_X - strh r4, [r0] - ldr r1, =gBattle_BG2_Y - movs r0, 0xA0 - strh r0, [r1] -_081904E6: - ldr r0, =gTasks - mov r2, r10 - lsls r1, r2, 2 - add r1, r10 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _08190772 - .pool -_08190508: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x42 - movs r1, 0 - bl SetGpuReg - movs r0, 0x46 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x3F - bl SetGpuReg - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, =gReservedSpritePaletteCount - movs r0, 0x4 - strb r0, [r1] - b _08190602 - .pool -_08190570: - ldr r1, =gUnknown_08D83D50 - movs r5, 0x80 - lsls r5, 6 - movs r7, 0 - str r7, [sp] - movs r0, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree - ldr r1, =gUnknown_08D84970 - movs r4, 0x1 - str r4, [sp] - movs r0, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree - ldr r1, =gUnknown_08D84F00 - movs r2, 0x80 - lsls r2, 4 - str r4, [sp] - movs r0, 0x3 - movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree - ldr r0, =gUnknown_0860CF50 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_08D85358 - movs r4, 0x80 - lsls r4, 2 - movs r1, 0 - adds r2, r4, 0 - bl LoadCompressedPalette - ldr r0, =gUnknown_08D85444 - movs r1, 0x80 - lsls r1, 1 - adds r2, r4, 0 - bl LoadCompressedPalette - ldr r0, =gUnknown_08D85600 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadCompressedPalette - mov r0, r9 - cmp r0, 0x2 - bne _081905DE - ldr r0, =gUnknown_08D854C8 - movs r1, 0x50 - movs r2, 0x20 - bl LoadCompressedPalette -_081905DE: - str r7, [sp, 0x8] - add r0, sp, 0x8 - ldr r1, =gPlttBufferFaded - ldr r2, =0x05000100 - bl CpuSet - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg -_08190602: - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - b _08190772 - .pool -_08190634: - ldr r0, =sub_8194B70 - bl SetVBlankCallback - ldr r4, =gUnknown_0203CD78 - movs r0, 0x14 - bl AllocZeroed - str r0, [r4] - movs r6, 0 - lsls r5, 24 - movs r2, 0xFF -_0819064A: - ldr r1, [r4] - adds r1, r6 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0xF - ble _0819064A - bl LoadMonIconPalettes - ldr r0, =sub_8190CD4 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - strh r1, [r0, 0xC] - mov r1, r9 - strh r1, [r0, 0xE] - strh r7, [r0, 0x10] - mov r2, r9 - cmp r2, 0x2 - bne _081906A8 - lsrs r1, r5, 24 - movs r0, 0 - bl sub_819314C - ldr r0, =gUnknown_0203CD78 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0x10] - b _081906B0 - .pool -_081906A8: - lsrs r1, r5, 24 - movs r0, 0 - bl sub_81924E0 -_081906B0: - movs r1, 0xFA - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - mov r0, r9 - cmp r0, 0 - beq _0819076C - ldr r5, =gUnknown_0860D068 - adds r0, r5, 0 - movs r1, 0x78 - movs r2, 0x4 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - ldr r1, =gSprites - mov r8, r1 - add r4, r8 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim - strh r6, [r4, 0x2E] - adds r0, r5, 0 - movs r1, 0x78 - movs r2, 0x9C - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - add r4, r8 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - strh r6, [r4, 0x2E] - ldr r5, =gUnknown_0860D050 - adds r0, r5, 0 - movs r1, 0x6 - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - mov r2, r8 - adds r4, r0, r2 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim - strh r6, [r4, 0x2E] - movs r0, 0 - strh r0, [r4, 0x30] - mov r1, r9 - cmp r1, 0x1 - bne _08190746 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08190746: - adds r0, r5, 0 - movs r1, 0xEA - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - add r4, r8 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - strh r6, [r4, 0x2E] - movs r0, 0x1 - strh r0, [r4, 0x30] -_0819076C: - mov r0, r10 - bl DestroyTask -_08190772: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190400 - - thumb_func_start sub_8190790 -sub_8190790: @ 8190790 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x22] - adds r1, r0, 0x4 - strh r1, [r2, 0x22] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _081907D4 - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - blt _081907BC - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_081907BC: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - bne _081907F0 - ldr r0, =SpriteCallbackDummy - str r0, [r2, 0x1C] - b _081907F0 - .pool -_081907D4: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xBF - ble _081907F0 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r3, 0x32 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldrh r0, [r2, 0x34] - bl sub_818D8F0 -_081907F0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190790 - - thumb_func_start sub_81907F8 -sub_81907F8: @ 81907F8 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x22] - subs r1, r0, 0x4 - strh r1, [r2, 0x22] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08190838 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xC0 - bgt _08190820 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_08190820: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - bne _08190858 - ldr r0, =SpriteCallbackDummy - str r0, [r2, 0x1C] - b _08190858 - .pool -_08190838: - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bgt _08190858 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r3, 0x32 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldrh r0, [r2, 0x34] - bl sub_818D8F0 -_08190858: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81907F8 - - thumb_func_start sub_8190860 -sub_8190860: @ 8190860 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x20] - adds r1, r0, 0x4 - strh r1, [r2, 0x20] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _081908A4 - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - blt _0819088C - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_0819088C: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _081908C0 - ldr r0, =SpriteCallbackDummy - str r0, [r2, 0x1C] - b _081908C0 - .pool -_081908A4: - lsls r1, 16 - ldr r0, =0x010f0000 - cmp r1, r0 - ble _081908C0 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r3, 0x32 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldrh r0, [r2, 0x34] - bl sub_818D8F0 -_081908C0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190860 - - thumb_func_start sub_81908CC -sub_81908CC: @ 81908CC - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x20] - subs r1, r0, 0x4 - strh r1, [r2, 0x20] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08190910 - lsls r1, 16 - movs r0, 0x88 - lsls r0, 17 - cmp r1, r0 - bgt _081908F6 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_081908F6: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _08190930 - ldr r0, =SpriteCallbackDummy - str r0, [r2, 0x1C] - b _08190930 - .pool -_08190910: - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bgt _08190930 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r3, 0x32 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldrh r0, [r2, 0x34] - bl sub_818D8F0 -_08190930: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81908CC - - thumb_func_start sub_8190938 -sub_8190938: @ 8190938 - push {lr} - adds r1, r0, 0 - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0819094A - adds r0, r1, 0 - bl UpdateMonIconFrame -_0819094A: - pop {r0} - bx r0 - thumb_func_end sub_8190938 - - thumb_func_start sub_8190950 -sub_8190950: @ 8190950 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08190962 - adds r0, r4, 0 - bl UpdateMonIconFrame -_08190962: - ldrh r0, [r4, 0x22] - adds r1, r0, 0x4 - strh r1, [r4, 0x22] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081909A4 - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - blt _0819098A - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_0819098A: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - bne _081909C0 - ldr r0, =sub_8190938 - str r0, [r4, 0x1C] - b _081909C0 - .pool -_081909A4: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xAF - ble _081909C0 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r2, 0x32 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - adds r0, r4, 0 - bl sub_80D2EF8 -_081909C0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190950 - - thumb_func_start sub_81909CC -sub_81909CC: @ 81909CC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081909DE - adds r0, r4, 0 - bl UpdateMonIconFrame -_081909DE: - ldrh r0, [r4, 0x22] - subs r1, r0, 0x4 - strh r1, [r4, 0x22] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08190A1C - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xB0 - bgt _08190A02 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08190A02: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - bne _08190A3C - ldr r0, =sub_8190938 - str r0, [r4, 0x1C] - b _08190A3C - .pool -_08190A1C: - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bgt _08190A3C - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r2, 0x32 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - adds r0, r4, 0 - bl sub_80D2EF8 -_08190A3C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81909CC - - thumb_func_start sub_8190A48 -sub_8190A48: @ 8190A48 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08190A5A - adds r0, r4, 0 - bl UpdateMonIconFrame -_08190A5A: - ldrh r0, [r4, 0x20] - adds r1, r0, 0x4 - strh r1, [r4, 0x20] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08190A9C - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - blt _08190A82 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08190A82: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _08190AB8 - ldr r0, =sub_8190938 - str r0, [r4, 0x1C] - b _08190AB8 - .pool -_08190A9C: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _08190AB8 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r2, 0x32 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - adds r0, r4, 0 - bl sub_80D2EF8 -_08190AB8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190A48 - - thumb_func_start sub_8190AC4 -sub_8190AC4: @ 8190AC4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08190AD6 - adds r0, r4, 0 - bl UpdateMonIconFrame -_08190AD6: - ldrh r0, [r4, 0x20] - subs r1, r0, 0x4 - strh r1, [r4, 0x20] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08190B14 - lsls r1, 16 - movs r0, 0x80 - lsls r0, 17 - cmp r1, r0 - bgt _08190AFC - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08190AFC: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _08190B34 - ldr r0, =sub_8190938 - str r0, [r4, 0x1C] - b _08190B34 - .pool -_08190B14: - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bgt _08190B34 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r2, 0x32 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - adds r0, r4, 0 - bl sub_80D2EF8 -_08190B34: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190AC4 - - thumb_func_start sub_8190B40 -sub_8190B40: @ 8190B40 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r6, [r3, r0] - ldr r2, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r2 - movs r7, 0x10 - ldrsh r1, [r4, r7] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0xA - ldrsh r0, [r0, r1] - ldr r1, =gUnknown_0860D080 - adds r0, r1 - ldrb r0, [r0] - mov r10, r0 - ldr r1, =gSaveBlock2Ptr - ldr r5, [r1] - ldr r7, =0x00000cb2 - adds r0, r5, r7 - ldrh r0, [r0] - mov r12, r0 - movs r7, 0xE - ldrsh r0, [r4, r7] - mov r9, r2 - mov r8, r1 - cmp r0, 0x1 - bne _08190C0C - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08190BFC - mov r2, r10 - lsls r0, r2, 2 - adds r1, r5, r0 - ldr r7, =0x00000d25 - adds r1, r7 - ldrb r2, [r1] - lsls r1, r2, 29 - adds r4, r0, 0 - cmp r1, 0 - bge _08190BB6 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r1, [r0, 0x10] - subs r1, 0x1 - lsls r0, r2, 27 - lsrs r0, 30 - cmp r1, r0 - blt _08190C32 -_08190BB6: - mov r1, r8 - ldr r0, [r1] - adds r0, r4 - ldr r2, =0x00000d25 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08190BD4 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - subs r0, 0x1 - cmp r0, r12 - blt _08190C32 -_08190BD4: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - add r0, r9 - movs r7, 0x8 - ldrsh r0, [r0, r7] - b _08190C4C - .pool -_08190BFC: - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0 - bne _08190C32 - b _08190C48 - .pool -_08190C0C: - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _08190C28 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - bls _08190C32 - movs r7, 0x8 - ldrsh r0, [r4, r7] - b _08190C4C - .pool -_08190C28: - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0 - beq _08190C48 -_08190C32: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _08190C5C - .pool -_08190C48: - movs r1, 0x8 - ldrsh r0, [r4, r1] -_08190C4C: - cmp r0, 0x2 - bne _08190C5C - adds r0, r3, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08190C5C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8190B40 - - thumb_func_start sub_8190C6C -sub_8190C6C: @ 8190C6C - push {lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r0, r2 - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _08190C9C - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0 - bne _08190CA6 - b _08190CC0 - .pool -_08190C9C: - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - beq _08190CC0 -_08190CA6: - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - bne _08190CCE - adds r0, r3, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _08190CCE - .pool -_08190CC0: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08190CCE: - pop {r0} - bx r0 - thumb_func_end sub_8190C6C - thumb_func_start sub_8190CD4 sub_8190CD4: @ 8190CD4 push {r4-r7,lr} @@ -7719,26 +6341,26 @@ _0819438C: movs r0, 0x1 adds r2, r5, 0 movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree + bl DecompressAndLoadBgGfxUsingHeap ldr r1, =gUnknown_08D834FC str r6, [sp] movs r0, 0x2 adds r2, r5, 0 movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree + bl DecompressAndLoadBgGfxUsingHeap ldr r1, =gUnknown_08D83B2C movs r4, 0x1 str r4, [sp] movs r0, 0x2 adds r2, r5, 0 movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree + bl DecompressAndLoadBgGfxUsingHeap ldr r1, =gUnknown_08D83C3C str r4, [sp] movs r0, 0x3 adds r2, r5, 0 movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree + bl DecompressAndLoadBgGfxUsingHeap ldr r0, =gUnknown_08D85358 movs r4, 0x80 lsls r4, 2 diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 2762670431..768311639d 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -2706,7 +2706,7 @@ _0811C044: movs r0, 0x3 movs r2, 0 movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree + bl DecompressAndLoadBgGfxUsingHeap ldr r1, =gEasyChatWindow_Tilemap movs r0, 0x3 movs r2, 0 @@ -2732,7 +2732,7 @@ _0811C090: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree + bl DecompressAndLoadBgGfxUsingHeap movs r0, 0x1 bl CopyBgTilemapBufferToVram b _0811C124 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 2633db13f5..2a14d1e9f8 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -3805,7 +3805,7 @@ sub_80C9FEC: @ 80C9FEC movs r0, 0x3 movs r2, 0 movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree + bl DecompressAndLoadBgGfxUsingHeap ldr r0, =gUnknown_08572174 ldr r1, =0x0600f800 bl LZ77UnCompVram @@ -3844,7 +3844,7 @@ sub_80CA044: @ 80CA044 movs r0, 0x1 movs r2, 0 movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree + bl DecompressAndLoadBgGfxUsingHeap ldr r0, =gUnknown_085722A0 ldr r5, =gUnknown_02039D08 ldr r1, [r5] diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s index 306e2892d5..01f29e0a51 100644 --- a/asm/rom_8011DC0.s +++ b/asm/rom_8011DC0.s @@ -7909,7 +7909,7 @@ bgid_upload_textbox_1: @ 8019938 lsls r2, 1 movs r3, 0 str r3, [sp] - bl copy_decompressed_tile_data_to_vram_autofree + bl DecompressAndLoadBgGfxUsingHeap add sp, 0x4 pop {r0} bx r0 @@ -9386,7 +9386,7 @@ sub_801A43C: @ 801A43C movs r0, 0x1 movs r2, 0 movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree + bl DecompressAndLoadBgGfxUsingHeap ldr r1, =gWirelessInfoScreenTilemap movs r0, 0x1 movs r2, 0 diff --git a/asm/trade.s b/asm/trade.s index 19dfd5ff92..3267fa950b 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -7609,7 +7609,7 @@ sub_807B170: @ 807B170 mov r1, r10 movs r2, 0 movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree + bl DecompressAndLoadBgGfxUsingHeap ldr r0, =gBattleTextboxTilemap mov r8, r0 ldr r4, =gDecompressionBuffer @@ -7633,7 +7633,7 @@ sub_807B170: @ 807B170 mov r1, r10 movs r2, 0 movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree + bl DecompressAndLoadBgGfxUsingHeap mov r0, r8 adds r1, r4, 0 bl LZDecompressWram diff --git a/include/global.h b/include/global.h index 5b78fc4c04..4bfa6194d9 100644 --- a/include/global.h +++ b/include/global.h @@ -393,19 +393,8 @@ struct BattleFrontier /*0xD0A*/ u8 field_D0A; /*0xD0B*/ u8 field_D0B; /*0xD0C*/ u16 field_D0C[2][2]; - /*0xD14*/ u16 field_D14[2]; - /*0xD18*/ u8 field_D18; - /*0xD19*/ u8 field_D19; - /*0xD1A*/ u8 field_D1A; - /*0xD1B*/ u8 field_D1B; - /*0xD1C*/ u8 field_D1C; - /*0xD1D*/ u8 field_D1D; - /*0xD1E*/ u8 field_D1E; - /*0xD1F*/ u8 field_D1F; - /*0xD20*/ u8 field_D20; - /*0xD21*/ u8 field_D21; - /*0xD22*/ u8 field_D22; - /*0xD23*/ u8 field_D23; + /*0xD14*/ u16 field_D14[2][2]; + /*0xD1C*/ u16 field_D1C[2][2]; /*0xD24*/ struct BattleDomeTrainer domeTrainers[DOME_TOURNAMENT_TRAINERS_COUNT]; /*0xD64*/ u16 domeMonId[DOME_TOURNAMENT_TRAINERS_COUNT][3]; /*0xDC8*/ u16 field_DC8[2]; diff --git a/include/menu.h b/include/menu.h index 5dfd99c64e..6273747588 100644 --- a/include/menu.h +++ b/include/menu.h @@ -53,7 +53,7 @@ void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, bool8 free_temp_tile_data_buffers_if_possible(void); struct WindowTemplate CreateWindowTemplate(u8, u8, u8, u8, u8, u8, u16); void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); -void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode); +void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode); s8 Menu_ProcessInputNoWrap_(void); s8 ProcessMenuInput_other(void); void do_scheduled_bg_tilemap_copies_to_vram(void); diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index 04faad6cd7..d217bfa603 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -9,6 +9,16 @@ #include "malloc.h" #include "string_util.h" #include "random.h" +#include "task.h" +#include "main.h" +#include "gpu_regs.h" +#include "text.h" +#include "bg.h" +#include "window.h" +#include "palette.h" +#include "decompress.h" +#include "menu.h" +#include "pokemon_icon.h" #include "constants/species.h" #include "constants/moves.h" #include "constants/trainers.h" @@ -23,6 +33,12 @@ struct Unknown_0203BC8C_Struct u8 nature; }; +struct Unknown_0203CD78_Struct +{ + u8 arr[16]; + u8 unk_11; +}; + extern struct Unknown_0203BC8C_Struct *gFacilityTrainerMons; extern void sub_81B8558(void); @@ -32,10 +48,22 @@ extern u16 sub_8163524(u16); extern u8 GetFrontierEnemyMonLevel(void); extern void sub_8195898(u8 *dst, u16 trainerId); extern u16 sub_81A5060(u8, u8); +extern void sub_8162614(u16, u8); +extern void sub_81A4C30(void); +extern u16 sub_818D8F0(u16); extern u8 gUnknown_0203CEF8[]; extern u32 gUnknown_0203CD70; extern u32 gUnknown_0203CD74; +extern u16 gBattle_BG0_X; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG1_X; +extern u16 gBattle_BG1_Y; +extern u16 gBattle_BG2_X; +extern u16 gBattle_BG2_Y; +extern u16 gBattle_BG3_X; +extern u16 gBattle_BG3_Y; +extern struct Unknown_0203CD78_Struct *gUnknown_0203CD78; extern void (* const gUnknown_0860D090[])(void); extern const u32 gUnknown_0860D0EC[][2]; @@ -52,6 +80,13 @@ s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); s32 sub_818FFC0(s32 move, s32 species, s32 arg2); s32 sub_818FEB4(s32 *arr, bool8 arg1); +u16 sub_81902AC(void); +void sub_8190400(u8 taskId); +void sub_8190CD4(u8 taskId); +void sub_8194B54(void); +void sub_8194B70(void); +void sub_819314C(u8, u8); +void sub_81924E0(u8, u8); // code void sub_818E9AC(void) @@ -62,14 +97,14 @@ void sub_818E9AC(void) void sub_818E9CC(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; - u32 id = VarGet(VAR_0x40CE); + u32 battleMode = VarGet(VAR_0x40CE); gSaveBlock2Ptr->frontier.field_CA8 = 0; gSaveBlock2Ptr->frontier.field_CB2 = 0; gSaveBlock2Ptr->frontier.field_CA9_a = 0; gSaveBlock2Ptr->frontier.field_CA9_b = 0; - if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[id][lvlMode])) - gSaveBlock2Ptr->frontier.field_D0C[id][lvlMode] = 0; + if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[battleMode][lvlMode])) + gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] = 0; saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); gTrainerBattleOpponent_A = 0; @@ -78,15 +113,15 @@ void sub_818E9CC(void) void sub_818EA84(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; - u32 id = VarGet(VAR_0x40CE); + u32 battleMode = VarGet(VAR_0x40CE); switch (gSpecialVar_0x8005) { case 0: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D0C[id][lvlMode]; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode]; break; case 1: - gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[id][lvlMode]) != 0); + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[battleMode][lvlMode]) != 0); break; case 2: gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0; @@ -146,18 +181,18 @@ void sub_818EA84(void) void sub_818ED28(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; - u32 id = VarGet(VAR_0x40CE); + u32 battleMode = VarGet(VAR_0x40CE); switch (gSpecialVar_0x8005) { case 0: - gSaveBlock2Ptr->frontier.field_D0C[id][lvlMode] = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] = gSpecialVar_0x8006; break; case 1: if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860D0EC[id][lvlMode]; + gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860D0EC[battleMode][lvlMode]; else - gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860D0FC[id][lvlMode]; + gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860D0FC[battleMode][lvlMode]; break; case 2: gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006; @@ -1267,7 +1302,7 @@ void CreateDomeMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentMonId, u { s32 i; u8 happiness = 0xFF; - u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // UB: Should be using trainerId instead of tournamentTrainerId. As a result, all Pokemon have ivs of 3. + u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using trainerId instead of tournamentTrainerId. As a result, all Pokemon have ivs of 3. u8 level = GetFrontierEnemyMonLevel(); CreateMonWithEVSpreadPersonalityOTID(&gEnemyParty[monPartyId], gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].species, @@ -1466,6 +1501,8 @@ s32 sub_818FEB4(s32 *arr, bool8 arg1) return bits; } +// Functionally equivalent, while loop is impossible to match. +#ifdef NONMATCHING s32 sub_818FFC0(s32 move, s32 species, s32 arg2) { s32 type1, type2, ability, moveType; @@ -1583,3 +1620,756 @@ s32 sub_818FFC0(s32 move, s32 species, s32 arg2) return typePower; } +#else +NAKED +s32 sub_818FFC0(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\ +_0818FFF0:\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\ +_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\ +_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\ +_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\ +_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\ +_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\ +_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\ +_081900A4:\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\ +_081900BC:\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\ +_081900DA:\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\ +_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\ +_08190100:\n\ + movs r2, 0x8\n\ + b _08190154\n\ +_08190104:\n\ + movs r2, 0x2\n\ + b _08190154\n\ +_08190108:\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\ +_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\ +_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\ +_08190134:\n\ + cmp r2, 0x50\n\ + beq _08190152\n\ + b _08190146\n\ +_0819013A:\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\ +_08190146:\n\ + movs r2, 0\n\ + b _08190154\n\ +_0819014A:\n\ + movs r2, 0x4\n\ + b _08190154\n\ +_0819014E:\n\ + movs r2, 0xC\n\ + b _08190154\n\ +_08190152:\n\ + movs r2, 0x14\n\ +_08190154:\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\ + "); +} +#endif // NONMATCHING + +u8 GetDomeTrainerMonIvs(u16 trainerId) +{ + u8 fixedIv; + if (trainerId <= 99) + fixedIv = 3; + else if (trainerId <= 119) + fixedIv = 6; + else if (trainerId <= 139) + fixedIv = 9; + else if (trainerId <= 159) + fixedIv = 12; + else if (trainerId <= 179) + fixedIv = 15; + else if (trainerId <= 199) + fixedIv = 18; + else if (trainerId <= 219) + fixedIv = 21; + else + fixedIv = 31; + + return fixedIv; +} + +extern const u8 gUnknown_0860D10C[][4]; +extern const u8 gUnknown_0860D14C[]; + +s32 sub_81901A0(s32 arg0, s32 trainerId) +{ + s32 i, j, val; + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId) + break; + } + + if (arg0 != 0) + { + if (arg0 == 3) + val = gUnknown_0860D10C[i][arg0] + 8; + else + val = gUnknown_0860D10C[i][arg0] + 4; + + for (j = gUnknown_0860D10C[i][arg0]; j < val; j++) + { + if (gUnknown_0860D14C[j] != i && !gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D14C[j]].unk1) + break; + } + + if (j != val) + return gUnknown_0860D14C[j]; + else + return 0xFF; + } + else + { + if (!gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D10C[i][0]].unk1) + return gUnknown_0860D10C[i][0]; + else + return 0xFF; + } +} + +void sub_8190298(void) +{ + gTrainerBattleOpponent_A = sub_81902AC(); +} + +u16 sub_81902AC(void) +{ + return gSaveBlock2Ptr->frontier.domeTrainers[sub_81901A0(gSaveBlock2Ptr->frontier.field_CB2, 0x3FF)].trainerId; +} + +void sub_81902E4(void) +{ + sub_8162614(gTrainerBattleOpponent_A, 0); +} + +void sub_81902F8(void) +{ + gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + VarSet(VAR_TEMP_0, 0); + gSaveBlock2Ptr->frontier.field_CA9_a = 1; + sub_81A4C30(); +} + +void sub_819033C(void) +{ + u8 lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; + u8 battleMode = VarGet(VAR_0x40CE); + + if (gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] < 999) + gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode]++; + if (gSaveBlock2Ptr->frontier.field_D1C[battleMode][lvlMode] < 999) + gSaveBlock2Ptr->frontier.field_D1C[battleMode][lvlMode]++; + + if (gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] > gSaveBlock2Ptr->frontier.field_D14[battleMode][lvlMode]) + gSaveBlock2Ptr->frontier.field_D14[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode]; +} + +void sub_81903B8(void) +{ + u8 taskId = CreateTask(sub_8190400, 0); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = TrainerIdToTournamentId(sub_81902AC()); + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = 0; + + SetMainCallback2(sub_8194B54); +} + +extern const struct BgTemplate gUnknown_0860CE84[4]; +extern const struct WindowTemplate gUnknown_0860CEB4[]; +extern const u8 gUnknown_08D83D50[]; +extern const u8 gUnknown_08D84970[]; +extern const u8 gUnknown_08D84F00[]; +extern const u8 gUnknown_08D85444[]; +extern const u8 gUnknown_08D85358[]; +extern const u8 gUnknown_08D85600[]; +extern const u8 gUnknown_08D854C8[]; +extern const struct CompressedSpriteSheet gUnknown_0860CF50; +extern const struct SpriteTemplate gUnknown_0860D068; +extern const struct SpriteTemplate gUnknown_0860D050; + +void sub_8190400(u8 taskId) +{ + s32 i; + s32 r5 = gTasks[taskId].data[1]; + s32 r9 = gTasks[taskId].data[2]; + s32 r7 = gTasks[taskId].data[3]; + + switch (gTasks[taskId].data[0]) + { + case 0: + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + EnableInterrupts(INTR_FLAG_VBLANK); + CpuFill32(0, (void *)VRAM, VRAM_SIZE); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_0860CE84, ARRAY_COUNT(gUnknown_0860CE84)); + InitWindows(gUnknown_0860CEB4); + DeactivateAllTextPrinters(); + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + gBattle_BG3_X = 0; + gBattle_BG3_Y = 0; + if (r9 == 2) + gBattle_BG2_X = 0, gBattle_BG2_Y = 0; + else + gBattle_BG2_X = 0, gBattle_BG2_Y = 160; + + gTasks[taskId].data[0]++; + break; + case 1: + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + SetGpuReg(REG_OFFSET_MOSAIC, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WIN1H, 0); + SetGpuReg(REG_OFFSET_WIN1V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); + ResetPaletteFade(); + ResetSpriteData(); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 4; + gTasks[taskId].data[0]++; + break; + case 2: + DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D83D50, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D84970, 0x2000, 0, 1); + DecompressAndLoadBgGfxUsingHeap(3, gUnknown_08D84F00, 0x800, 0, 1); + LoadCompressedObjectPic(&gUnknown_0860CF50); + LoadCompressedPalette(gUnknown_08D85358, 0, 0x200); + LoadCompressedPalette(gUnknown_08D85444, 0x100, 0x200); + LoadCompressedPalette(gUnknown_08D85600, 0xF0, 0x20); + if (r9 == 2) + LoadCompressedPalette(gUnknown_08D854C8, 0x50, 0x20); + CpuFill32(0, gPlttBufferFaded, 0x400); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + gTasks[taskId].data[0]++; + break; + case 3: + SetVBlankCallback(sub_8194B70); + gUnknown_0203CD78 = AllocZeroed(sizeof(*gUnknown_0203CD78)); + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + gUnknown_0203CD78->arr[i] |= 0xFF; + LoadMonIconPalettes(); + i = CreateTask(sub_8190CD4, 0); + gTasks[i].data[0] = 0; + gTasks[i].data[2] = 0; + gTasks[i].data[3] = r9; + gTasks[i].data[4] = r7; + if (r9 == 2) + { + sub_819314C(0, r5); + gUnknown_0203CD78->arr[16] = 1; + } + else + { + sub_81924E0(0, r5); + } + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP); + if (r9 != 0) + { + r7 = CreateSprite(&gUnknown_0860D068, 120, 4, 0); + StartSpriteAnim(&gSprites[r7], 0); + gSprites[r7].data[0] = i; + + r7 = CreateSprite(&gUnknown_0860D068, 120, 156, 0); + StartSpriteAnim(&gSprites[r7], 1); + gSprites[r7].data[0] = i; + + r7 = CreateSprite(&gUnknown_0860D050, 6, 80, 0); + StartSpriteAnim(&gSprites[r7], 0); + gSprites[r7].data[0] = i; + gSprites[r7].data[1] = 0; + if (r9 == 1) + gSprites[r7].invisible = 1; + + r7 = CreateSprite(&gUnknown_0860D050, 234, 80, 0); + StartSpriteAnim(&gSprites[r7], 1); + gSprites[r7].data[0] = i; + gSprites[r7].data[1] = 1; + } + DestroyTask(taskId); + break; + } +} + +void sub_8190790(struct Sprite *sprite) +{ + sprite->pos1.y += 4; + if (sprite->data[0] != 0) + { + if (sprite->pos1.y >= -32) + sprite->invisible = 0; + if (++sprite->data[1] == 40) + sprite->callback = SpriteCallbackDummy; + } + else + { + if (sprite->pos1.y >= 192) + { + gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sub_818D8F0(sprite->data[3]); + } + } +} + +void sub_81907F8(struct Sprite *sprite) +{ + sprite->pos1.y -= 4; + if (sprite->data[0] != 0) + { + if (sprite->pos1.y <= 192) + sprite->invisible = 0; + if (++sprite->data[1] == 40) + sprite->callback = SpriteCallbackDummy; + } + else + { + if (sprite->pos1.y <= -32) + { + gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sub_818D8F0(sprite->data[3]); + } + } +} + +void sub_8190860(struct Sprite *sprite) +{ + sprite->pos1.x += 4; + if (sprite->data[0] != 0) + { + if (sprite->pos1.x >= -32) + sprite->invisible = 0; + if (++sprite->data[1] == 64) + sprite->callback = SpriteCallbackDummy; + } + else + { + if (sprite->pos1.x >= 272) + { + gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sub_818D8F0(sprite->data[3]); + } + } +} + +void sub_81908CC(struct Sprite *sprite) +{ + sprite->pos1.x -= 4; + if (sprite->data[0] != 0) + { + if (sprite->pos1.x <= 272) + sprite->invisible = 0; + if (++sprite->data[1] == 64) + sprite->callback = SpriteCallbackDummy; + } + else + { + if (sprite->pos1.x <= -32) + { + gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sub_818D8F0(sprite->data[3]); + } + } +} + +void sub_8190938(struct Sprite *sprite) +{ + if (!sprite->data[3]) + UpdateMonIconFrame(sprite); +} + +void sub_8190950(struct Sprite *sprite) +{ + if (!sprite->data[3]) + UpdateMonIconFrame(sprite); + sprite->pos1.y += 4; + if (sprite->data[0] != 0) + { + if (sprite->pos1.y >= -16) + sprite->invisible = 0; + if (++sprite->data[1] == 40) + sprite->callback = sub_8190938; + } + else + { + if (sprite->pos1.y >= 176) + { + gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sub_80D2EF8(sprite); + } + } +} + +void sub_81909CC(struct Sprite *sprite) +{ + if (!sprite->data[3]) + UpdateMonIconFrame(sprite); + sprite->pos1.y -= 4; + if (sprite->data[0] != 0) + { + if (sprite->pos1.y <= 176) + sprite->invisible = 0; + if (++sprite->data[1] == 40) + sprite->callback = sub_8190938; + } + else + { + if (sprite->pos1.y <= -16) + { + gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sub_80D2EF8(sprite); + } + } +} + +void sub_8190A48(struct Sprite *sprite) +{ + if (!sprite->data[3]) + UpdateMonIconFrame(sprite); + sprite->pos1.x += 4; + if (sprite->data[0] != 0) + { + if (sprite->pos1.x >= -16) + sprite->invisible = 0; + if (++sprite->data[1] == 64) + sprite->callback = sub_8190938; + } + else + { + if (sprite->pos1.x >= 256) + { + gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sub_80D2EF8(sprite); + } + } +} + +void sub_8190AC4(struct Sprite *sprite) +{ + if (!sprite->data[3]) + UpdateMonIconFrame(sprite); + sprite->pos1.x -= 4; + if (sprite->data[0] != 0) + { + if (sprite->pos1.x <= 256) + sprite->invisible = 0; + if (++sprite->data[1] == 64) + sprite->callback = sub_8190938; + } + else + { + if (sprite->pos1.x <= -16) + { + gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sub_80D2EF8(sprite); + } + } +} + +extern const u8 gUnknown_0860D080[]; + +void sub_8190B40(struct Sprite *sprite) +{ + s32 taskId1 = sprite->data[0]; + s32 arrId = gTasks[gTasks[taskId1].data[4]].data[1]; + s32 tournmanetTrainerId = gUnknown_0860D080[arrId]; + s32 r12 = gSaveBlock2Ptr->frontier.field_CB2; + + if (gTasks[taskId1].data[3] == 1) + { + if (sprite->data[1]) + { + if ((gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].unk1 + && gUnknown_0203CD78->arr[16] - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].unk2)) + { + sprite->invisible = 0; + } + else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].unk1 + && gUnknown_0203CD78->arr[16] - 1 < r12) + { + sprite->invisible = 0; + } + else + { + if (gTasks[taskId1].data[0] == 2) + sprite->invisible = 1; + } + } + else + { + if (gUnknown_0203CD78->arr[16] != 0) + { + sprite->invisible = 0; + } + else + { + if (gTasks[taskId1].data[0] == 2) + sprite->invisible = 1; + } + } + } + else + { + if (sprite->data[1]) + { + if (gUnknown_0203CD78->arr[16] > 1) + { + if (gTasks[taskId1].data[0] == 2) + sprite->invisible = 1; + } + else + { + sprite->invisible = 0; + } + } + else + { + if (gUnknown_0203CD78->arr[16] != 0) + { + sprite->invisible = 0; + } + else + { + if (gTasks[taskId1].data[0] == 2) + sprite->invisible = 1; + } + } + } +} + +void sub_8190C6C(struct Sprite *sprite) +{ + s32 taskId1 = sprite->data[0]; + + if (gTasks[taskId1].data[3] == 1) + { + if (gUnknown_0203CD78->arr[16] != 0) + { + if (gTasks[taskId1].data[0] == 2) + sprite->invisible = 1; + } + else + { + sprite->invisible = 0; + } + } + else + { + if (gUnknown_0203CD78->arr[16] != 1) + { + if (gTasks[taskId1].data[0] == 2) + sprite->invisible = 1; + } + else + { + sprite->invisible = 0; + } + } +} diff --git a/src/egg_hatch.c b/src/egg_hatch.c index ab0cd92a23..1c626cc868 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -512,7 +512,7 @@ static void CB2_EggHatch_0(void) gMain.state++; break; case 2: - copy_decompressed_tile_data_to_vram_autofree(0, gBattleTextboxTiles, 0, 0, 0); + DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0); CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0); LoadCompressedPalette(gBattleTextboxPalette, 0, 0x20); gMain.state++; diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 7960d6cba1..ae15e79fe7 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -1484,7 +1484,7 @@ static void InitMovingBackgroundTask(bool8 isLink) LoadPalette(sUnknown_085B51E4, 0xA0, 0x20); - copy_decompressed_tile_data_to_vram_autofree(1, sUnknown_085B4134, FALSE, 0, 0); + DecompressAndLoadBgGfxUsingHeap(1, sUnknown_085B4134, FALSE, 0, 0); CopyToBgTilemapBuffer(1, sUnknown_085B482C, 0, 0); CopyToBgTilemapBuffer(outerBgId, sUnknown_085B4D10, 0, 0); CopyBgTilemapBufferToVram(1); diff --git a/src/fieldmap.c b/src/fieldmap.c index f57c4b48f1..8d1988686c 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -951,7 +951,7 @@ void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles, if (!tileset->isCompressed) LoadBgTiles(2, tileset->tiles, numTiles * 32, offset); else - copy_decompressed_tile_data_to_vram_autofree(2, tileset->tiles, numTiles * 32, offset, 0); + DecompressAndLoadBgGfxUsingHeap(2, tileset->tiles, numTiles * 32, offset, 0); } } diff --git a/src/link.c b/src/link.c index b729f86eb8..457e44a016 100644 --- a/src/link.c +++ b/src/link.c @@ -1679,7 +1679,7 @@ void CB2_LinkError(void) static void sub_800B080(void) { LoadBgTiles(0, g2BlankTilesGfx, 0x20, 0); - copy_decompressed_tile_data_to_vram_autofree(1, gWirelessLinkDisplayGfx, FALSE, 0, 0); + DecompressAndLoadBgGfxUsingHeap(1, gWirelessLinkDisplayGfx, FALSE, 0, 0); CopyToBgTilemapBuffer(1, gWirelessLinkDisplayTilemap, 0, 0); CopyBgTilemapBufferToVram(1); LoadPalette(gWirelessLinkDisplayPal, 0, 0x20); diff --git a/src/menu.c b/src/menu.c index eda9513ba6..8a4b4fce55 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1801,7 +1801,7 @@ void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, return NULL; } -void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode) +void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode) { int sizeOut; void *ptr = malloc_and_decompress(src, &sizeOut); diff --git a/src/pokedex.c b/src/pokedex.c index 0d73a9fe10..2a0033306a 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1377,7 +1377,7 @@ bool8 sub_80BC514(u8 a) SetBgTilemapBuffer(2, AllocZeroed(0x800)); SetBgTilemapBuffer(1, AllocZeroed(0x800)); SetBgTilemapBuffer(0, AllocZeroed(0x800)); - copy_decompressed_tile_data_to_vram_autofree(3, gPokedexMenu_Gfx, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(1, gUnknown_08DC2C5C, 0, 0); CopyToBgTilemapBuffer(3, gUnknown_08DC2DAC, 0, 0); if (a == 0) @@ -2518,7 +2518,7 @@ void sub_80BEA24(u8 taskId) } break; case 1: - copy_decompressed_tile_data_to_vram_autofree(3, gPokedexMenu_Gfx, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, gUnknown_08DC3080, 0, 0); FillWindowPixelBuffer(0, 0); PutWindowTilemap(0); @@ -2813,7 +2813,7 @@ void sub_80BF250(u8 taskId) } break; case 1: - copy_decompressed_tile_data_to_vram_autofree(3, &gPokedexMenu_Gfx, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(3, &gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, &gUnknown_08DC3198, 0, 0); FillWindowPixelBuffer(0, 0); PutWindowTilemap(0); @@ -3007,7 +3007,7 @@ void sub_80BF82C(u8 taskId) } break; case 1: - copy_decompressed_tile_data_to_vram_autofree(3, gPokedexMenu_Gfx, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, gUnknown_08DC2E6C, 0, 0); FillWindowPixelBuffer(0, 0); PutWindowTilemap(0); @@ -3354,7 +3354,7 @@ void sub_80BFE38(u8 taskId) } break; case 1: - copy_decompressed_tile_data_to_vram_autofree(3, gPokedexMenu_Gfx, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, gUnknown_08DC3080, 0, 0); FillWindowPixelBuffer(0, 0); PutWindowTilemap(0); @@ -4397,7 +4397,7 @@ void sub_80C12E0(u8 taskId) InitWindows(gUnknown_0856F008); DeactivateAllTextPrinters(); PutWindowTilemap(0); - copy_decompressed_tile_data_to_vram_autofree(3, gPokedexSearchMenu_Gfx, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(3, gPokedexSearchMenu_Gfx, 0x2000, 0, 0); if (!IsNationalPokedexEnabled()) CopyToBgTilemapBuffer(3, gPokedexSearch2_Tilemap, 0, 0); From f7fd5ce75c481ff1f019d661b4e817c6a8d1a34f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 18 Aug 2018 18:23:40 +0200 Subject: [PATCH 117/174] Match one of the hardest battle dome functions --- src/battle_frontier_1.c | 1845 +++++++++++++++++++-------------------- 1 file changed, 897 insertions(+), 948 deletions(-) diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index d217bfa603..c977f7d76e 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -36,21 +36,22 @@ struct Unknown_0203BC8C_Struct struct Unknown_0203CD78_Struct { u8 arr[16]; - u8 unk_11; + u8 unk_10; + u8 unk_11[3]; }; -extern struct Unknown_0203BC8C_Struct *gFacilityTrainerMons; - extern void sub_81B8558(void); extern u32 sub_81A39C4(void); extern u16 sub_8162548(u8, u8); -extern u16 sub_8163524(u16); +extern u16 RandomizeFacilityTrainerMonId(u16); extern u8 GetFrontierEnemyMonLevel(void); extern void sub_8195898(u8 *dst, u16 trainerId); extern u16 sub_81A5060(u8, u8); extern void sub_8162614(u16, u8); extern void sub_81A4C30(void); extern u16 sub_818D8F0(u16); +extern bool8 sub_81A3610(void); +extern u16 sub_81A4FF0(u8); extern u8 gUnknown_0203CEF8[]; extern u32 gUnknown_0203CD70; @@ -63,16 +64,37 @@ extern u16 gBattle_BG2_X; extern u16 gBattle_BG2_Y; extern u16 gBattle_BG3_X; extern u16 gBattle_BG3_Y; +extern struct Unknown_0203BC8C_Struct *gFacilityTrainerMons; extern struct Unknown_0203CD78_Struct *gUnknown_0203CD78; extern void (* const gUnknown_0860D090[])(void); extern const u32 gUnknown_0860D0EC[][2]; extern const u32 gUnknown_0860D0FC[][2]; extern const u16 gBattleFrontierHeldItems[]; +extern const u8 gUnknown_0860D10C[][4]; +extern const u8 gUnknown_0860D14C[]; +extern const struct BgTemplate gUnknown_0860CE84[4]; +extern const struct WindowTemplate gUnknown_0860CEB4[]; +extern const struct CompressedSpriteSheet gUnknown_0860CF50; +extern const struct SpriteTemplate gUnknown_0860D068; +extern const struct SpriteTemplate gUnknown_0860D050; +extern const u8 gUnknown_0860D080[]; +extern const u8 gUnknown_0860D15C[]; +extern const u8 gUnknown_0860D3F1[][2]; + +// gfx +extern const u8 gUnknown_08D83D50[]; +extern const u8 gUnknown_08D84970[]; +extern const u8 gUnknown_08D84F00[]; +extern const u8 gUnknown_08D85444[]; +extern const u8 gUnknown_08D85358[]; +extern const u8 gUnknown_08D85600[]; +extern const u8 gUnknown_08D854C8[]; // This file's functions. u8 GetDomeTrainerMonIvs(u16 trainerId); -void sub_818F720(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats); +void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray); +void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats); void CreateDomeTrainerMons(u16 tournamentTrainerId); u16 TrainerIdToTournamentId(u16 trainerId); s32 sub_818FC78(u16 tournamentTrainerId); @@ -83,10 +105,13 @@ s32 sub_818FEB4(s32 *arr, bool8 arg1); u16 sub_81902AC(void); void sub_8190400(u8 taskId); void sub_8190CD4(u8 taskId); +void sub_8194220(u8 taskId); void sub_8194B54(void); void sub_8194B70(void); void sub_819314C(u8, u8); void sub_81924E0(u8, u8); +u8 sub_819221C(u8 taskId); +s32 sub_8192F08(u8, u8*); // code void sub_818E9AC(void) @@ -244,33 +269,34 @@ void sub_818ED28(void) } } -#ifdef NONMATCHING -// Not even close, this function is insane. -void sub_818F02C(void) +void SetDomeTrainersAndMons(void) { - s32 i, j, k, l; - u32 array[16]; - u32 var_28; - u32 var_24; - s32 var_38; + s32 i, j, k; + s32 monLevel; + s32 species[3]; s32 monTypesBits, monTypesCount; - u32 var_54 = 0; - u32 var_50 = 0; - u32 var_4C = 0; - u32 *var_40 = AllocZeroed(0x20); - u16 *var_44 = AllocZeroed(0x18); - u32 var_48; + s32 trainerId; + s32 monTournamentId; + u16 *statSums; + s32 *statValues; + u8 ivs = 0; + + species[0] = 0; + species[1] = 0; + species[2] = 0; + statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); + statValues = AllocZeroed(sizeof(s32) * 6); gSaveBlock2Ptr->frontier.field_D0A = gSaveBlock2Ptr->frontier.chosenLvl + 1; gSaveBlock2Ptr->frontier.field_D0B = VarGet(VAR_0x40CE) + 1; - gSaveBlock2Ptr->frontier.domeTrainers[0].trainerId = 0x3FF; + gSaveBlock2Ptr->frontier.domeTrainers[0].trainerId = TRAINER_PLAYER; gSaveBlock2Ptr->frontier.domeTrainers[0].unk1 = 0; gSaveBlock2Ptr->frontier.domeTrainers[0].unk2 = 0; gSaveBlock2Ptr->frontier.domeTrainers[0].unk3 = 0; for (i = 0; i < 3; i++) { - gSaveBlock2Ptr->frontier.domeMonId[i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1], MON_DATA_SPECIES, NULL); + gSaveBlock2Ptr->frontier.domeMonId[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1], MON_DATA_SPECIES, NULL); for (j = 0; j < 4; j++) gSaveBlock2Ptr->frontier.field_EFC[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1], MON_DATA_MOVE1 + j, NULL); for (j = 0; j < 6; j++) @@ -279,939 +305,165 @@ void sub_818F02C(void) gSaveBlock2Ptr->frontier.field_EFC[i].nature = GetNature(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1]); } - var_28 = 4; - var_24 = 6; - for (l = j; l < 16; l++) + for (i = 1; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - u16 val; - if (l > 5) + if (i > 5) { - while (1) + do { - val = sub_8162548(sub_81A39C4(), 0); - for (k = 1; k < l; k++) + trainerId = sub_8162548(sub_81A39C4(), 0); + for (j = 1; j < i; j++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[k].trainerId == val) + if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId) break; } - if (k != l) - { - gSaveBlock2Ptr->frontier.domeTrainers[var_28].trainerId = val; - break; - } - } + } while (j != i); + gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; } else { - while (1) - { - val = sub_8162548(sub_81A39C4() + 1, 0); - for (k = 1; k < l; k++) - { - if (gSaveBlock2Ptr->frontier.domeTrainers[k].trainerId == val) - break; - } - if (k != l) - { - gSaveBlock2Ptr->frontier.domeTrainers[var_28].trainerId = val; - break; - } - } - } - - for (var_38 = 0; var_38 < 3; var_38++) - { - u16 val2; do { - val2 = sub_8163524(val); - for (i = 0; i < l; i++) + trainerId = sub_8162548(sub_81A39C4() + 1, 0); + for (j = 1; j < i; j++) { - if (gSaveBlock2Ptr->frontier.domeMonId[i] == val2) - break; - if (var_54 == gFacilityTrainerMons[val2].field_0) - break; - if (var_50 == gFacilityTrainerMons[val2].field_0) - break; - if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i]].field_A == gFacilityTrainerMons[val2].field_A) + if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId) break; } - } while (i != var_38); - - gSaveBlock2Ptr->frontier.domeMonId[var_24] = val2; - array[var_38] = gFacilityTrainerMons[val2].field_0; + } while (j != i); + gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; } - gSaveBlock2Ptr->frontier.domeTrainers[var_28].unk1 = 0; - gSaveBlock2Ptr->frontier.domeTrainers[var_28].unk2 = 0; - gSaveBlock2Ptr->frontier.domeTrainers[var_28].unk3 = 0; + for (j = 0; j < 3; j++) + { + // Make sure the mon is valid. + do + { + monTournamentId = RandomizeFacilityTrainerMonId(trainerId); + for (k = 0; k < j; k++) + { + s32 checkingMonId = gSaveBlock2Ptr->frontier.domeMonId[i][k]; + if (checkingMonId == monTournamentId + || species[0] == gFacilityTrainerMons[monTournamentId].species + || species[1] == gFacilityTrainerMons[monTournamentId].species + || gFacilityTrainerMons[checkingMonId].itemTableId == gFacilityTrainerMons[monTournamentId].itemTableId) + break; + } + } while (k != j); + + gSaveBlock2Ptr->frontier.domeMonId[i][j] = monTournamentId; + species[j] = gFacilityTrainerMons[monTournamentId].species; + } + + gSaveBlock2Ptr->frontier.domeTrainers[i].unk1 = 0; + gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 = 0; + gSaveBlock2Ptr->frontier.domeTrainers[i].unk3 = 0; } + monTypesBits = 0; + statSums[0] = 0; for (i = 0; i < 3; i++) { - struct Pokemon *mon = &gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1]; - var_44[0] += GetMonData(mon, MON_DATA_ATK, NULL); - var_44[0] += GetMonData(mon, MON_DATA_DEF, NULL); - var_44[0] += GetMonData(mon, MON_DATA_SPATK, NULL); - var_44[0] += GetMonData(mon, MON_DATA_SPDEF, NULL); - var_44[0] += GetMonData(mon, MON_DATA_SPEED, NULL); - var_44[0] += GetMonData(mon, MON_DATA_MAX_HP, NULL); - monTypesBits |= gBitTable[gBaseStats[GetMonData(mon, MON_DATA_SPECIES, NULL)].type1]; - monTypesBits |= gBitTable[gBaseStats[GetMonData(mon, MON_DATA_SPECIES, NULL)].type2]; + trainerId = gSaveBlock2Ptr->frontier.field_CAA[i] - 1; // Great variable choice, gamefreak. + statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_ATK, NULL); + statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_DEF, NULL); + statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPATK, NULL); + statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPDEF, NULL); + statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPEED, NULL); + statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_MAX_HP, NULL); + monTypesBits |= gBitTable[gBaseStats[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].type1]; + monTypesBits |= gBitTable[gBaseStats[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].type2]; } - for (monTypesCount = 0, i = 0; i < 31; i++) + for (monTypesCount = 0, j = 0; j < 32; j++) { if (monTypesBits & 1) monTypesCount++; monTypesBits >>= 1; } - var_48 = GetFrontierEnemyMonLevel(); - var_44[0] += (monTypesCount * var_48) / 20; + monLevel = GetFrontierEnemyMonLevel(); + statSums[0] += (monTypesCount * monLevel) / 20; - for (i = 0; i < 16; i++) + for (i = 1; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - u8 r8; - - var_44[i + 1] = 0; - r8 = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); + monTypesBits = 0; + statSums[i] = 0; + ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); for (j = 0; j < 3; j++) { - sub_818F720(gSaveBlock2Ptr->frontier.domeMonId[i]); + CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species, + monLevel, ivs, + gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].evSpread, + gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[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.domeMonId[i][j]].species].type1]; + monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species].type2]; + } + + for (monTypesCount = 0, j = 0; j < 32; j++) + { + if (monTypesBits & 1) + monTypesCount++; + monTypesBits >>= 1; + } + statSums[i] += (monTypesCount * 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[j].trainerId == TRAINER_PLAYER) + SwapDomeTrainers(i, j, statSums); + else if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId > gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId) + SwapDomeTrainers(i, j, statSums); + } + } } } - Free(var_44); - Free(var_40); + if (sub_81A3610()) + { + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) + break; + } + + if (gUnknown_0860D3F1[i][0] != 0) + { + j = 0; + gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId = TRAINER_FRONTIER_BRAIN; + } + else + { + j = 1; + gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId = TRAINER_FRONTIER_BRAIN; + } + + for (i = 0; i < 3; i++) + gSaveBlock2Ptr->frontier.domeMonId[j][i] = sub_81A4FF0(i); + } + + Free(statSums); + Free(statValues); } -#else -NAKED -void sub_818F02C(void) -{ - asm_unified("\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x3C\n\ - movs r0, 0\n\ - str r0, [sp, 0x8]\n\ - str r0, [sp, 0xC]\n\ - str r0, [sp, 0x10]\n\ - movs r0, 0x20\n\ - bl AllocZeroed\n\ - str r0, [sp, 0x18]\n\ - movs r0, 0x18\n\ - bl AllocZeroed\n\ - str r0, [sp, 0x1C]\n\ - ldr r4, =gSaveBlock2Ptr\n\ - ldr r1, [r4]\n\ - ldr r2, =0x00000ca9\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - lsls r0, 30\n\ - lsrs r0, 30\n\ - adds r0, 0x1\n\ - ldr r3, =0x00000d0a\n\ - adds r1, r3\n\ - strb r0, [r1]\n\ - ldr r0, =0x000040ce\n\ - bl VarGet\n\ - ldr r1, [r4]\n\ - adds r0, 0x1\n\ - ldr r5, =0x00000d0b\n\ - adds r1, r5\n\ - strb r0, [r1]\n\ - ldr r2, [r4]\n\ - ldr r7, =0x00000d24\n\ - adds r3, r2, r7\n\ - ldrh r0, [r3]\n\ - ldr r5, =0x000003ff\n\ - adds r1, r5, 0\n\ - orrs r0, r1\n\ - strh r0, [r3]\n\ - ldr r3, =0x00000d25\n\ - adds r2, r3\n\ - ldrb r1, [r2]\n\ - movs r0, 0x5\n\ - negs r0, r0\n\ - ands r0, r1\n\ - strb r0, [r2]\n\ - ldr r1, [r4]\n\ - adds r1, r3\n\ - ldrb r2, [r1]\n\ - movs r0, 0x19\n\ - negs r0, r0\n\ - ands r0, r2\n\ - strb r0, [r1]\n\ - ldr r1, [r4]\n\ - adds r1, r3\n\ - ldrb r2, [r1]\n\ - movs r0, 0x1F\n\ - ands r0, r2\n\ - strb r0, [r1]\n\ - movs r7, 0\n\ - mov r10, r7\n\ - mov r8, r4\n\ - ldr r0, =gBattleScripting + 0x14\n\ - mov r9, r0\n\ - movs r4, 0\n\ -_0818F0BA:\n\ - mov r1, r8\n\ - ldr r0, [r1]\n\ - ldr r2, =0x00000caa\n\ - adds r0, r2\n\ - adds r0, r4\n\ - ldrh r0, [r0]\n\ - movs r3, 0x64\n\ - muls r0, r3\n\ - add r0, r9\n\ - movs r1, 0xB\n\ - movs r2, 0\n\ - bl GetMonData\n\ - mov r5, r8\n\ - ldr r1, [r5]\n\ - ldr r7, =0x00000d64\n\ - adds r1, r7\n\ - adds r1, r4\n\ - strh r0, [r1]\n\ - movs r5, 0\n\ - mov r0, r10\n\ - lsls r7, r0, 4\n\ - adds r6, r7, 0\n\ -_0818F0E8:\n\ - mov r1, r8\n\ - ldr r0, [r1]\n\ - ldr r2, =0x00000caa\n\ - adds r0, r2\n\ - adds r0, r4\n\ - ldrh r0, [r0]\n\ - movs r3, 0x64\n\ - muls r0, r3\n\ - add r0, r9\n\ - adds r1, r5, 0\n\ - adds r1, 0xD\n\ - movs r2, 0\n\ - bl GetMonData\n\ - mov r2, r8\n\ - ldr r1, [r2]\n\ - ldr r3, =0x00000efc\n\ - adds r1, r3\n\ - adds r1, r6\n\ - strh r0, [r1]\n\ - adds r6, 0x2\n\ - adds r5, 0x1\n\ - cmp r5, 0x3\n\ - ble _0818F0E8\n\ - movs r5, 0\n\ - ldr r6, =gSaveBlock2Ptr\n\ -_0818F11C:\n\ - ldr r0, [r6]\n\ - ldr r1, =0x00000caa\n\ - adds r0, r1\n\ - adds r0, r4\n\ - ldrh r0, [r0]\n\ - movs r2, 0x64\n\ - muls r0, r2\n\ - add r0, r9\n\ - adds r1, r5, 0\n\ - adds r1, 0x1A\n\ - movs r2, 0\n\ - bl GetMonData\n\ - ldr r1, [r6]\n\ - adds r2, r5, r7\n\ - ldr r3, =0x00000f04\n\ - adds r1, r3\n\ - adds r1, r2\n\ - strb r0, [r1]\n\ - adds r5, 0x1\n\ - cmp r5, 0x5\n\ - ble _0818F11C\n\ - mov r5, r8\n\ - ldr r0, [r5]\n\ - ldr r1, =0x00000caa\n\ - adds r0, r1\n\ - adds r0, r4\n\ - ldrh r0, [r0]\n\ - movs r2, 0x64\n\ - muls r0, r2\n\ - add r0, r9\n\ - bl GetNature\n\ - ldr r1, [r5]\n\ - adds r1, r7\n\ - ldr r3, =0x00000f0a\n\ - adds r1, r3\n\ - strb r0, [r1]\n\ - adds r4, 0x2\n\ - movs r5, 0x1\n\ - add r10, r5\n\ - mov r7, r10\n\ - cmp r7, 0x2\n\ - ble _0818F0BA\n\ - mov r10, r5\n\ - movs r0, 0x4\n\ - str r0, [sp, 0x34]\n\ - movs r1, 0x6\n\ - str r1, [sp, 0x38]\n\ -_0818F17E:\n\ - mov r2, r10\n\ - cmp r2, 0x5\n\ - ble _0818F22C\n\ -_0818F184:\n\ - bl sub_81A39C4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - movs r1, 0\n\ - bl sub_8162548\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - movs r5, 0x1\n\ - cmp r5, r10\n\ - bge _0818F1CA\n\ - ldr r3, =gSaveBlock2Ptr\n\ - ldr r0, [r3]\n\ - ldr r7, =0x00000d28\n\ - adds r0, r7\n\ - ldrh r0, [r0]\n\ - lsls r0, 22\n\ - lsrs r0, 22\n\ - adds r2, r3, 0\n\ - cmp r0, r4\n\ - beq _0818F1CA\n\ - ldr r3, =0x00000d24\n\ -_0818F1B2:\n\ - adds r5, 0x1\n\ - cmp r5, r10\n\ - bge _0818F1CA\n\ - ldr r0, [r2]\n\ - lsls r1, r5, 2\n\ - adds r0, r1\n\ - adds r0, r3\n\ - ldrh r0, [r0]\n\ - lsls r0, 22\n\ - lsrs r0, 22\n\ - cmp r0, r4\n\ - bne _0818F1B2\n\ -_0818F1CA:\n\ - cmp r5, r10\n\ - bne _0818F184\n\ - ldr r0, =gSaveBlock2Ptr\n\ - ldr r3, [r0]\n\ - ldr r1, [sp, 0x34]\n\ - adds r3, r1\n\ - ldr r2, =0x00000d24\n\ - adds r3, r2\n\ - ldr r5, =0x000003ff\n\ - adds r0, r5, 0\n\ - adds r2, r4, 0\n\ - ands r2, r0\n\ - ldrh r0, [r3]\n\ - ldr r7, =0xfffffc00\n\ - adds r1, r7, 0\n\ - b _0818F292\n\ - .pool\n\ -_0818F22C:\n\ - bl sub_81A39C4\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - movs r1, 0\n\ - bl sub_8162548\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - movs r5, 0x1\n\ - cmp r5, r10\n\ - bge _0818F274\n\ - ldr r1, =gSaveBlock2Ptr\n\ - ldr r0, [r1]\n\ - ldr r2, =0x00000d28\n\ - adds r0, r2\n\ - ldrh r0, [r0]\n\ - lsls r0, 22\n\ - lsrs r0, 22\n\ - adds r2, r1, 0\n\ - cmp r0, r4\n\ - beq _0818F274\n\ - ldr r3, =0x00000d24\n\ -_0818F25C:\n\ - adds r5, 0x1\n\ - cmp r5, r10\n\ - bge _0818F274\n\ - ldr r0, [r2]\n\ - lsls r1, r5, 2\n\ - adds r0, r1\n\ - adds r0, r3\n\ - ldrh r0, [r0]\n\ - lsls r0, 22\n\ - lsrs r0, 22\n\ - cmp r0, r4\n\ - bne _0818F25C\n\ -_0818F274:\n\ - cmp r5, r10\n\ - bne _0818F22C\n\ - ldr r5, =gSaveBlock2Ptr\n\ - ldr r3, [r5]\n\ - ldr r7, [sp, 0x34]\n\ - adds r3, r7\n\ - ldr r0, =0x00000d24\n\ - adds r3, r0\n\ - ldr r1, =0x000003ff\n\ - adds r0, r1, 0\n\ - adds r2, r4, 0\n\ - ands r2, r0\n\ - ldrh r0, [r3]\n\ - ldr r5, =0xfffffc00\n\ - adds r1, r5, 0\n\ -_0818F292:\n\ - ands r0, r1\n\ - orrs r0, r2\n\ - strh r0, [r3]\n\ - movs r5, 0\n\ - lsls r4, 16\n\ - str r4, [sp, 0x2C]\n\ - ldr r7, [sp, 0x38]\n\ - str r7, [sp, 0x20]\n\ -_0818F2A2:\n\ - lsls r0, r5, 1\n\ - mov r9, r0\n\ - adds r1, r5, 0x1\n\ - str r1, [sp, 0x24]\n\ - lsls r2, r5, 2\n\ - str r2, [sp, 0x28]\n\ -_0818F2AE:\n\ - ldr r3, [sp, 0x2C]\n\ - lsrs r0, r3, 16\n\ - bl sub_8163524\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - movs r7, 0\n\ - cmp r7, r5\n\ - bge _0818F300\n\ - ldr r0, =gSaveBlock2Ptr\n\ - ldr r0, [r0]\n\ - ldr r1, [sp, 0x8]\n\ - mov r8, r1\n\ - ldr r2, [sp, 0xC]\n\ - mov r12, r2\n\ - ldr r3, =0x00000d64\n\ - adds r0, r3\n\ - ldr r1, [sp, 0x20]\n\ - adds r4, r1, r0\n\ -_0818F2D4:\n\ - ldrh r3, [r4]\n\ - cmp r3, r6\n\ - beq _0818F300\n\ - ldr r2, =gFacilityTrainerMons\n\ - ldr r1, [r2]\n\ - lsls r0, r6, 4\n\ - adds r2, r0, r1\n\ - ldrh r0, [r2]\n\ - cmp r8, r0\n\ - beq _0818F300\n\ - cmp r12, r0\n\ - beq _0818F300\n\ - lsls r0, r3, 4\n\ - adds r0, r1\n\ - ldrb r0, [r0, 0xA]\n\ - ldrb r2, [r2, 0xA]\n\ - cmp r0, r2\n\ - beq _0818F300\n\ - adds r4, 0x2\n\ - adds r7, 0x1\n\ - cmp r7, r5\n\ - blt _0818F2D4\n\ -_0818F300:\n\ - cmp r7, r5\n\ - bne _0818F2AE\n\ - ldr r3, =gSaveBlock2Ptr\n\ - ldr r0, [r3]\n\ - ldr r1, [sp, 0x38]\n\ - add r1, r9\n\ - ldr r5, =0x00000d64\n\ - adds r0, r5\n\ - adds r0, r1\n\ - strh r6, [r0]\n\ - ldr r2, [sp, 0x28]\n\ - add r2, sp\n\ - adds r2, 0x8\n\ - ldr r0, =gFacilityTrainerMons\n\ - ldr r1, [r0]\n\ - lsls r0, r6, 4\n\ - adds r0, r1\n\ - ldrh r0, [r0]\n\ - str r0, [r2]\n\ - ldr r5, [sp, 0x24]\n\ - cmp r5, 0x2\n\ - ble _0818F2A2\n\ - ldr r2, [r3]\n\ - ldr r7, [sp, 0x34]\n\ - adds r2, r7\n\ - ldr r0, =0x00000d25\n\ - adds r2, r0\n\ - ldrb r0, [r2]\n\ - movs r3, 0x5\n\ - negs r3, r3\n\ - adds r1, r3, 0\n\ - ands r0, r1\n\ - strb r0, [r2]\n\ - ldr r5, =gSaveBlock2Ptr\n\ - ldr r2, [r5]\n\ - adds r2, r7\n\ - ldr r7, =0x00000d25\n\ - adds r2, r7\n\ - ldrb r0, [r2]\n\ - subs r3, 0x14\n\ - adds r1, r3, 0\n\ - ands r0, r1\n\ - strb r0, [r2]\n\ - ldr r1, [r5]\n\ - ldr r5, [sp, 0x34]\n\ - adds r1, r5\n\ - adds r1, r7\n\ - ldrb r2, [r1]\n\ - movs r0, 0x1F\n\ - ands r0, r2\n\ - strb r0, [r1]\n\ - adds r5, 0x4\n\ - str r5, [sp, 0x34]\n\ - ldr r7, [sp, 0x38]\n\ - adds r7, 0x6\n\ - str r7, [sp, 0x38]\n\ - movs r0, 0x1\n\ - add r10, r0\n\ - mov r1, r10\n\ - cmp r1, 0xF\n\ - bgt _0818F37C\n\ - b _0818F17E\n\ -_0818F37C:\n\ - movs r7, 0\n\ - ldr r2, [sp, 0x18]\n\ - strh r7, [r2]\n\ - movs r3, 0\n\ - mov r10, r3\n\ - ldr r6, =gBitTable\n\ - ldr r5, =gBaseStats\n\ -_0818F38A:\n\ - ldr r0, =gSaveBlock2Ptr\n\ - ldr r0, [r0]\n\ - mov r2, r10\n\ - lsls r1, r2, 1\n\ - ldr r3, =0x00000caa\n\ - adds r0, r3\n\ - adds r0, r1\n\ - ldrh r0, [r0]\n\ - subs r4, r0, 0x1\n\ - movs r0, 0x64\n\ - muls r4, r0\n\ - ldr r0, =gPlayerParty\n\ - adds r4, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0x3B\n\ - movs r2, 0\n\ - bl GetMonData\n\ - ldr r2, [sp, 0x18]\n\ - ldrh r1, [r2]\n\ - adds r1, r0\n\ - strh r1, [r2]\n\ - adds r0, r4, 0\n\ - movs r1, 0x3C\n\ - movs r2, 0\n\ - bl GetMonData\n\ - ldr r3, [sp, 0x18]\n\ - ldrh r1, [r3]\n\ - adds r1, r0\n\ - strh r1, [r3]\n\ - adds r0, r4, 0\n\ - movs r1, 0x3E\n\ - movs r2, 0\n\ - bl GetMonData\n\ - ldr r2, [sp, 0x18]\n\ - ldrh r1, [r2]\n\ - adds r1, r0\n\ - strh r1, [r2]\n\ - adds r0, r4, 0\n\ - movs r1, 0x3F\n\ - movs r2, 0\n\ - bl GetMonData\n\ - ldr r3, [sp, 0x18]\n\ - ldrh r1, [r3]\n\ - adds r1, r0\n\ - strh r1, [r3]\n\ - adds r0, r4, 0\n\ - movs r1, 0x3D\n\ - movs r2, 0\n\ - bl GetMonData\n\ - ldr r2, [sp, 0x18]\n\ - ldrh r1, [r2]\n\ - adds r1, r0\n\ - strh r1, [r2]\n\ - adds r0, r4, 0\n\ - movs r1, 0x3A\n\ - movs r2, 0\n\ - bl GetMonData\n\ - ldr r3, [sp, 0x18]\n\ - ldrh r1, [r3]\n\ - adds r1, r0\n\ - strh r1, [r3]\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - movs r2, 0\n\ - bl GetMonData\n\ - lsls r1, r0, 3\n\ - subs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r5\n\ - ldrb r0, [r1, 0x6]\n\ - lsls r0, 2\n\ - adds r0, r6\n\ - ldr r0, [r0]\n\ - orrs r7, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - movs r2, 0\n\ - bl GetMonData\n\ - lsls r1, r0, 3\n\ - subs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r5\n\ - ldrb r0, [r1, 0x7]\n\ - lsls r0, 2\n\ - adds r0, r6\n\ - ldr r0, [r0]\n\ - orrs r7, r0\n\ - movs r0, 0x1\n\ - add r10, r0\n\ - mov r1, r10\n\ - cmp r1, 0x2\n\ - ble _0818F38A\n\ - movs r4, 0\n\ - movs r1, 0x1\n\ - movs r5, 0x1F\n\ -_0818F458:\n\ - adds r0, r7, 0\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0818F462\n\ - adds r4, 0x1\n\ -_0818F462:\n\ - asrs r7, 1\n\ - subs r5, 0x1\n\ - cmp r5, 0\n\ - bge _0818F458\n\ - bl GetFrontierEnemyMonLevel\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x14]\n\ - adds r2, r0, 0\n\ - adds r0, r4, 0\n\ - muls r0, r2\n\ - movs r1, 0x14\n\ - bl __divsi3\n\ - ldr r3, [sp, 0x18]\n\ - ldrh r1, [r3]\n\ - adds r1, r0\n\ - strh r1, [r3]\n\ - movs r5, 0x1\n\ - mov r10, r5\n\ - adds r6, r3, 0\n\ - adds r6, 0x2\n\ - movs r7, 0x2\n\ - str r7, [sp, 0x30]\n\ -_0818F494:\n\ - movs r7, 0\n\ - strh r7, [r6]\n\ - ldr r1, =gSaveBlock2Ptr\n\ - ldr r0, [r1]\n\ - mov r2, r10\n\ - lsls r1, r2, 2\n\ - adds r0, r1\n\ - ldr r3, =0x00000d24\n\ - adds r0, r3\n\ - ldrh r0, [r0]\n\ - lsls r0, 22\n\ - lsrs r0, 22\n\ - bl GetDomeTrainerMonIvs\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - movs r5, 0\n\ - ldr r0, [sp, 0x30]\n\ - mov r9, r0\n\ -_0818F4BC:\n\ - ldr r1, =gSaveBlock2Ptr\n\ - ldr r0, [r1]\n\ - mov r4, r9\n\ - add r4, r10\n\ - adds r4, r5\n\ - lsls r4, 1\n\ - ldr r2, =0x00000d64\n\ - adds r0, r2\n\ - adds r0, r4\n\ - ldrh r1, [r0]\n\ - ldr r3, =gFacilityTrainerMons\n\ - ldr r0, [r3]\n\ - lsls r1, 4\n\ - adds r1, r0\n\ - ldrh r0, [r1]\n\ - ldrb r3, [r1, 0xB]\n\ - ldrb r1, [r1, 0xC]\n\ - str r1, [sp]\n\ - ldr r1, [sp, 0x1C]\n\ - str r1, [sp, 0x4]\n\ - ldr r1, [sp, 0x14]\n\ - mov r2, r8\n\ - bl sub_818F720\n\ - ldr r2, [sp, 0x1C]\n\ - ldr r1, [r2, 0x4]\n\ - ldrh r0, [r6]\n\ - adds r0, r1\n\ - ldr r1, [r2, 0x8]\n\ - adds r0, r1\n\ - ldr r1, [r2, 0x10]\n\ - adds r0, r1\n\ - ldr r1, [r2, 0x14]\n\ - adds r0, r1\n\ - ldr r1, [r2, 0xC]\n\ - adds r0, r1\n\ - ldr r1, [r2]\n\ - adds r0, r1\n\ - strh r0, [r6]\n\ - ldr r3, =gSaveBlock2Ptr\n\ - ldr r0, [r3]\n\ - ldr r1, =0x00000d64\n\ - adds r0, r1\n\ - adds r0, r4\n\ - ldrh r0, [r0]\n\ - ldr r2, =gFacilityTrainerMons\n\ - ldr r1, [r2]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - ldrh r0, [r0]\n\ - lsls r1, r0, 3\n\ - subs r1, r0\n\ - lsls r1, 2\n\ - ldr r3, =gBaseStats\n\ - adds r1, r3\n\ - ldrb r0, [r1, 0x6]\n\ - lsls r0, 2\n\ - ldr r2, =gBitTable\n\ - adds r0, r2\n\ - ldr r0, [r0]\n\ - orrs r7, r0\n\ - ldrb r0, [r1, 0x7]\n\ - lsls r0, 2\n\ - adds r0, r2\n\ - ldr r0, [r0]\n\ - orrs r7, r0\n\ - adds r5, 0x1\n\ - cmp r5, 0x2\n\ - ble _0818F4BC\n\ - movs r4, 0\n\ - movs r1, 0x1\n\ - movs r5, 0x1F\n\ -_0818F54C:\n\ - adds r0, r7, 0\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0818F556\n\ - adds r4, 0x1\n\ -_0818F556:\n\ - asrs r7, 1\n\ - subs r5, 0x1\n\ - cmp r5, 0\n\ - bge _0818F54C\n\ - ldr r3, [sp, 0x14]\n\ - adds r0, r4, 0\n\ - muls r0, r3\n\ - movs r1, 0x14\n\ - bl __divsi3\n\ - ldrh r1, [r6]\n\ - adds r1, r0\n\ - strh r1, [r6]\n\ - adds r6, 0x2\n\ - ldr r5, [sp, 0x30]\n\ - adds r5, 0x2\n\ - str r5, [sp, 0x30]\n\ - movs r7, 0x1\n\ - add r10, r7\n\ - mov r0, r10\n\ - cmp r0, 0xF\n\ - ble _0818F494\n\ - movs r1, 0\n\ - mov r10, r1\n\ - ldr r2, =0x000003ff\n\ - mov r8, r2\n\ -_0818F58A:\n\ - mov r5, r10\n\ - adds r5, 0x1\n\ - adds r7, r5, 0\n\ - cmp r5, 0xF\n\ - bgt _0818F626\n\ - mov r3, r10\n\ - lsls r0, r3, 1\n\ - ldr r1, [sp, 0x18]\n\ - adds r6, r0, r1\n\ - lsls r0, r5, 1\n\ - adds r4, r0, r1\n\ -_0818F5A0:\n\ - ldrh r1, [r6]\n\ - ldrh r0, [r4]\n\ - cmp r1, r0\n\ - bcc _0818F5C2\n\ - cmp r1, r0\n\ - bne _0818F61E\n\ - ldr r0, =gSaveBlock2Ptr\n\ - ldr r1, [r0]\n\ - lsls r0, r5, 2\n\ - adds r0, r1, r0\n\ - ldr r2, =0x00000d24\n\ - adds r0, r2\n\ - ldrh r0, [r0]\n\ - lsls r2, r0, 22\n\ - lsrs r0, r2, 22\n\ - cmp r0, r8\n\ - bne _0818F602\n\ -_0818F5C2:\n\ - mov r0, r10\n\ - adds r1, r5, 0\n\ - ldr r2, [sp, 0x18]\n\ - bl sub_818F904\n\ - b _0818F600\n\ - .pool\n\ -_0818F600:\n\ - b _0818F61E\n\ -_0818F602:\n\ - mov r3, r10\n\ - lsls r0, r3, 2\n\ - adds r0, r1, r0\n\ - ldr r1, =0x00000d24\n\ - adds r0, r1\n\ - ldrh r0, [r0]\n\ - lsls r0, 22\n\ - cmp r0, r2\n\ - bls _0818F61E\n\ - mov r0, r10\n\ - adds r1, r5, 0\n\ - ldr r2, [sp, 0x18]\n\ - bl sub_818F904\n\ -_0818F61E:\n\ - adds r4, 0x2\n\ - adds r5, 0x1\n\ - cmp r5, 0xF\n\ - ble _0818F5A0\n\ -_0818F626:\n\ - mov r10, r7\n\ - mov r2, r10\n\ - cmp r2, 0xE\n\ - ble _0818F58A\n\ - bl sub_81A3610\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0818F6EE\n\ - movs r3, 0\n\ - mov r10, r3\n\ - ldr r0, =gSaveBlock2Ptr\n\ - ldr r1, [r0]\n\ - ldr r4, =0x00000d24\n\ - adds r1, r4\n\ - ldrh r1, [r1]\n\ - lsls r1, 22\n\ - lsrs r1, 22\n\ - ldr r3, =0x000003ff\n\ - adds r2, r0, 0\n\ - ldr r6, =gUnknown_0860D3F1\n\ - cmp r1, r3\n\ - beq _0818F674\n\ - adds r5, r2, 0\n\ -_0818F656:\n\ - movs r7, 0x1\n\ - add r10, r7\n\ - mov r0, r10\n\ - cmp r0, 0xF\n\ - bgt _0818F674\n\ - ldr r0, [r5]\n\ - mov r7, r10\n\ - lsls r1, r7, 2\n\ - adds r0, r1\n\ - adds r0, r4\n\ - ldrh r0, [r0]\n\ - lsls r0, 22\n\ - lsrs r0, 22\n\ - cmp r0, r3\n\ - bne _0818F656\n\ -_0818F674:\n\ - mov r1, r10\n\ - lsls r0, r1, 1\n\ - adds r0, r6\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _0818F6AC\n\ - movs r5, 0\n\ - ldr r2, [r2]\n\ - ldr r3, =0x00000d24\n\ - adds r2, r3\n\ - ldrh r1, [r2]\n\ - ldr r0, =0xfffffc00\n\ - ands r0, r1\n\ - ldr r7, =0x000003fe\n\ - adds r1, r7, 0\n\ - b _0818F6BE\n\ - .pool\n\ -_0818F6AC:\n\ - movs r5, 0x1\n\ - ldr r2, [r2]\n\ - ldr r0, =0x00000d28\n\ - adds r2, r0\n\ - ldrh r1, [r2]\n\ - ldr r0, =0xfffffc00\n\ - ands r0, r1\n\ - ldr r3, =0x000003fe\n\ - adds r1, r3, 0\n\ -_0818F6BE:\n\ - orrs r0, r1\n\ - strh r0, [r2]\n\ - movs r7, 0\n\ - mov r10, r7\n\ - lsls r0, r5, 1\n\ - adds r0, r5\n\ - lsls r4, r0, 1\n\ -_0818F6CC:\n\ - mov r1, r10\n\ - lsls r0, r1, 24\n\ - lsrs r0, 24\n\ - bl sub_81A4FF0\n\ - ldr r1, =gSaveBlock2Ptr\n\ - ldr r1, [r1]\n\ - ldr r2, =0x00000d64\n\ - adds r1, r2\n\ - adds r1, r4\n\ - strh r0, [r1]\n\ - adds r4, 0x2\n\ - movs r3, 0x1\n\ - add r10, r3\n\ - mov r5, r10\n\ - cmp r5, 0x2\n\ - ble _0818F6CC\n\ -_0818F6EE:\n\ - ldr r0, [sp, 0x18]\n\ - bl Free\n\ - ldr r0, [sp, 0x1C]\n\ - bl Free\n\ - add sp, 0x3C\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\ -\n\ - "); -} -#endif // NONMATCHING #define CALC_STAT(base, statIndex) \ { \ @@ -1220,7 +472,7 @@ _0818F6EE:\n\ stats[statIndex] = (u8) ModifyStatByNature(nature, stats[statIndex], statIndex); \ } -void sub_818F720(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats) +void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats) { s32 i, count; u8 bits; @@ -1266,12 +518,12 @@ void sub_818F720(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *sta y = temp; \ } -void sub_818F904(s32 id1, s32 id2, u16 *dst) +void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray) { s32 i; u16 temp; - SWAP_16(dst[id1], dst[id2]); + SWAP_16(statsArray[id1], statsArray[id2]); SWAP_16(gSaveBlock2Ptr->frontier.domeTrainers[id1].trainerId, gSaveBlock2Ptr->frontier.domeTrainers[id2].trainerId); for (i = 0; i < 3; i++) @@ -1885,9 +1137,6 @@ u8 GetDomeTrainerMonIvs(u16 trainerId) return fixedIv; } -extern const u8 gUnknown_0860D10C[][4]; -extern const u8 gUnknown_0860D14C[]; - s32 sub_81901A0(s32 arg0, s32 trainerId) { s32 i, j, val; @@ -1932,7 +1181,7 @@ void sub_8190298(void) u16 sub_81902AC(void) { - return gSaveBlock2Ptr->frontier.domeTrainers[sub_81901A0(gSaveBlock2Ptr->frontier.field_CB2, 0x3FF)].trainerId; + return gSaveBlock2Ptr->frontier.domeTrainers[sub_81901A0(gSaveBlock2Ptr->frontier.field_CB2, TRAINER_PLAYER)].trainerId; } void sub_81902E4(void) @@ -1973,19 +1222,6 @@ void sub_81903B8(void) SetMainCallback2(sub_8194B54); } -extern const struct BgTemplate gUnknown_0860CE84[4]; -extern const struct WindowTemplate gUnknown_0860CEB4[]; -extern const u8 gUnknown_08D83D50[]; -extern const u8 gUnknown_08D84970[]; -extern const u8 gUnknown_08D84F00[]; -extern const u8 gUnknown_08D85444[]; -extern const u8 gUnknown_08D85358[]; -extern const u8 gUnknown_08D85600[]; -extern const u8 gUnknown_08D854C8[]; -extern const struct CompressedSpriteSheet gUnknown_0860CF50; -extern const struct SpriteTemplate gUnknown_0860D068; -extern const struct SpriteTemplate gUnknown_0860D050; - void sub_8190400(u8 taskId) { s32 i; @@ -2065,7 +1301,7 @@ void sub_8190400(u8 taskId) if (r9 == 2) { sub_819314C(0, r5); - gUnknown_0203CD78->arr[16] = 1; + gUnknown_0203CD78->unk_10 = 1; } else { @@ -2273,8 +1509,6 @@ void sub_8190AC4(struct Sprite *sprite) } } -extern const u8 gUnknown_0860D080[]; - void sub_8190B40(struct Sprite *sprite) { s32 taskId1 = sprite->data[0]; @@ -2287,12 +1521,12 @@ void sub_8190B40(struct Sprite *sprite) if (sprite->data[1]) { if ((gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].unk1 - && gUnknown_0203CD78->arr[16] - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].unk2)) + && gUnknown_0203CD78->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].unk2)) { sprite->invisible = 0; } else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].unk1 - && gUnknown_0203CD78->arr[16] - 1 < r12) + && gUnknown_0203CD78->unk_10 - 1 < r12) { sprite->invisible = 0; } @@ -2304,7 +1538,7 @@ void sub_8190B40(struct Sprite *sprite) } else { - if (gUnknown_0203CD78->arr[16] != 0) + if (gUnknown_0203CD78->unk_10 != 0) { sprite->invisible = 0; } @@ -2319,7 +1553,7 @@ void sub_8190B40(struct Sprite *sprite) { if (sprite->data[1]) { - if (gUnknown_0203CD78->arr[16] > 1) + if (gUnknown_0203CD78->unk_10 > 1) { if (gTasks[taskId1].data[0] == 2) sprite->invisible = 1; @@ -2331,7 +1565,7 @@ void sub_8190B40(struct Sprite *sprite) } else { - if (gUnknown_0203CD78->arr[16] != 0) + if (gUnknown_0203CD78->unk_10 != 0) { sprite->invisible = 0; } @@ -2350,7 +1584,7 @@ void sub_8190C6C(struct Sprite *sprite) if (gTasks[taskId1].data[3] == 1) { - if (gUnknown_0203CD78->arr[16] != 0) + if (gUnknown_0203CD78->unk_10 != 0) { if (gTasks[taskId1].data[0] == 2) sprite->invisible = 1; @@ -2362,7 +1596,7 @@ void sub_8190C6C(struct Sprite *sprite) } else { - if (gUnknown_0203CD78->arr[16] != 1) + if (gUnknown_0203CD78->unk_10 != 1) { if (gTasks[taskId1].data[0] == 2) sprite->invisible = 1; @@ -2373,3 +1607,718 @@ void sub_8190C6C(struct Sprite *sprite) } } } + +void sub_8190CD4(u8 taskId) +{ + s32 i; + s32 var; + s32 r9 = gTasks[taskId].data[3]; + s32 taskId2 = gTasks[taskId].data[4]; + s32 arg, arg2; + + switch (gTasks[taskId].data[0]) + { + case 0: + if (!gPaletteFade.active) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + gTasks[taskId].data[0] = 1; + } + break; + case 1: + if (!gPaletteFade.active) + gTasks[taskId].data[0] = 2; + break; + case 2: + i = sub_819221C(taskId); + switch (i) + { + case 9: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0] = 8; + break; + case 1 ... 8: + gTasks[taskId].data[5] = i; + if (gTasks[taskId].data[2] != 0) + var = 9; + else + var = 0; + + for (i = var; i < var + 9; i++) + { + CopyWindowToVram(i, 2); + FillWindowPixelBuffer(i, 0); + } + gTasks[taskId].data[0] = 3; + break; + case 0: + break; + } + break; + case 3: + i = gTasks[taskId].data[5]; + switch (i) + { + case 1: + case 5: + if (gTasks[taskId].data[2]) + { + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 160; + } + else + { + gBattle_BG0_X = 0; + gBattle_BG0_Y = 160; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + } + + if (i == 1) + { + if (gUnknown_0203CD78->unk_10 == 0) + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 320; + arg = gUnknown_0860D080[gTasks[taskId2].data[1]]; + sub_81924E0(gTasks[taskId].data[2] | 0x10, arg); + } + else + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 0; + arg = gUnknown_0860D080[gTasks[taskId2].data[1]]; + sub_81924E0(gTasks[taskId].data[2] | 0x10, arg); + gUnknown_0203CD78->unk_10 = 0; + } + } + else + { + if (gUnknown_0203CD78->unk_10 == 0) + { + arg2 = gTasks[taskId2].data[1] - 16; + sub_8192F08(arg2, gUnknown_0203CD78->unk_11); + gBattle_BG2_X = 0; + gBattle_BG2_Y = 320; + arg = gUnknown_0203CD78->unk_11[0]; + sub_81924E0(gTasks[taskId].data[2] | 0x10, arg); + } + else if (gUnknown_0203CD78->unk_10 == 2) + { + arg2 = gTasks[taskId2].data[1] - 16; + sub_8192F08(arg2, gUnknown_0203CD78->unk_11); + gBattle_BG2_X = 0; + gBattle_BG2_Y = 320; + arg = gUnknown_0203CD78->unk_11[1]; + sub_81924E0(gTasks[taskId].data[2] | 0x10, arg); + } + else + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 160; + arg2 = gTasks[taskId2].data[1] - 16; + sub_819314C(gTasks[taskId].data[2] | 0x10, arg2); + } + } + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + { + if (i < 2) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190790; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + } + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190950; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + } + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190790; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + } + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190950; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + } + } + } + + gTasks[taskId].data[0] = 4; + gTasks[taskId].data[5] = 0; + break; + case 2: + case 6: + if (gTasks[taskId].data[2]) + { + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = -160; + } + else + { + gBattle_BG0_X = 0; + gBattle_BG0_Y = -160; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + } + + if (i == 2) + { + if (gUnknown_0203CD78->unk_10 == 0) + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 160; + arg = gUnknown_0860D080[gTasks[taskId2].data[1]]; + sub_81924E0(gTasks[taskId].data[2] | 4, arg); + } + else + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 0; + arg = gUnknown_0860D080[gTasks[taskId2].data[1]]; + sub_81924E0(gTasks[taskId].data[2] | 4, arg); + gUnknown_0203CD78->unk_10 = 0; + } + } + else + { + if (gUnknown_0203CD78->unk_10 == 0) + { + arg2 = gTasks[taskId2].data[1] - 16; + sub_8192F08(arg2, gUnknown_0203CD78->unk_11); + gBattle_BG2_X = 0; + gBattle_BG2_Y = 160; + arg = gUnknown_0203CD78->unk_11[0]; + sub_81924E0(gTasks[taskId].data[2] | 4, arg); + } + else if (gUnknown_0203CD78->unk_10 == 2) + { + arg2 = gTasks[taskId2].data[1] - 16; + sub_8192F08(arg2, gUnknown_0203CD78->unk_11); + gBattle_BG2_X = 0; + gBattle_BG2_Y = 160; + arg = gUnknown_0203CD78->unk_11[1]; + sub_81924E0(gTasks[taskId].data[2] | 4, arg); + } + else + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 0; + arg2 = gTasks[taskId2].data[1] - 16; + sub_819314C(gTasks[taskId].data[2] | 4, arg2); + } + } + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + { + if (i < 2) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81907F8; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + } + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81909CC; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + } + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81907F8; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + } + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81909CC; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + } + } + } + + gTasks[taskId].data[0] = 5; + gTasks[taskId].data[5] = 0; + break; + case 3: + if (gTasks[taskId].data[2]) + { + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 256; + gBattle_BG1_Y = 0; + } + else + { + gBattle_BG0_X = 256; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + } + + if (gUnknown_0203CD78->unk_10 == 0) + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 160; + arg = gUnknown_0860D080[gTasks[taskId2].data[1]]; + sub_81924E0(gTasks[taskId].data[2] | 8, arg); + } + else + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 0; + arg = gUnknown_0860D15C[(gTasks[taskId2].data[1] * 4) + (gUnknown_0203CD78->unk_10 - 1)]; + sub_819314C(gTasks[taskId].data[2] | 8, arg); + } + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + { + if (i < 2) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190860; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + } + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190A48; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + } + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190860; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + } + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190A48; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + } + } + } + + gTasks[taskId].data[0] = 6; + gTasks[taskId].data[5] = 0; + break; + case 7: + if (gTasks[taskId].data[2]) + { + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 256; + gBattle_BG1_Y = 0; + } + else + { + gBattle_BG0_X = 256; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + } + + if (gUnknown_0203CD78->unk_10 == 0) + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 160; + arg = gUnknown_0203CD78->unk_11[0]; + sub_81924E0(gTasks[taskId].data[2] | 8, arg); + } + else + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 160; + arg2 = gTasks[taskId2].data[1] - 16; + sub_819314C(gTasks[taskId].data[2] | 8, arg2); + } + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + { + if (i < 2) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190860; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + } + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190A48; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + } + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190860; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + } + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190A48; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + } + } + } + + gTasks[taskId].data[0] = 6; + gTasks[taskId].data[5] = 0; + break; + case 4: + if (gTasks[taskId].data[2]) + { + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = -256; + gBattle_BG1_Y = 0; + } + else + { + gBattle_BG0_X = -256; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + } + + if (gUnknown_0203CD78->unk_10 == 1) + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 160; + } + else + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 0; + } + arg = gUnknown_0860D15C[(gUnknown_0203CD78->unk_10 - 1) + (gTasks[taskId2].data[1] * 4)]; + sub_819314C(gTasks[taskId].data[2] | 2, arg); + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + { + if (i < 2) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81908CC; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + } + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190AC4; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + } + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81908CC; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + } + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190AC4; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + } + } + } + + gTasks[taskId].data[0] = 7; + gTasks[taskId].data[5] = 0; + break; + case 8: + if (gTasks[taskId].data[2]) + { + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = -256; + gBattle_BG1_Y = 0; + } + else + { + gBattle_BG0_X = -256; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + } + + if (gUnknown_0203CD78->unk_10 == 2) + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 160; + arg = gUnknown_0203CD78->unk_11[1]; + sub_81924E0(gTasks[taskId].data[2] | 2, arg); + } + else + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 160; + arg2 = gTasks[taskId2].data[1] - 16; + sub_819314C(gTasks[taskId].data[2] | 2, arg2); + } + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + { + if (i < 2) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81908CC; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + } + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190AC4; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + } + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81908CC; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + } + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + { + gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190AC4; + gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; + gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + } + } + } + + gTasks[taskId].data[0] = 7; + gTasks[taskId].data[5] = 0; + break; + } + break; + case 4: + if (++gTasks[taskId].data[5] != 41) + { + gBattle_BG0_Y -= 4; + gBattle_BG1_Y -= 4; + gBattle_BG2_Y -= 4; + } + else + { + gTasks[taskId].data[0] = 2; + } + break; + case 5: + if (++gTasks[taskId].data[5] != 41) + { + gBattle_BG0_Y += 4; + gBattle_BG1_Y += 4; + gBattle_BG2_Y += 4; + } + else + { + gTasks[taskId].data[0] = 2; + } + break; + case 6: + if (++gTasks[taskId].data[5] != 65) + { + gBattle_BG0_X -= 4; + gBattle_BG1_X -= 4; + gBattle_BG2_X -= 4; + } + else + { + gTasks[taskId].data[0] = 2; + } + break; + case 7: + if (++gTasks[taskId].data[5] != 65) + { + gBattle_BG0_X += 4; + gBattle_BG1_X += 4; + gBattle_BG2_X += 4; + } + else + { + gTasks[taskId].data[0] = 2; + } + break; + case 8: + if (!gPaletteFade.active) + { + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + { + if (i < 2) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + sub_818D8F0(gUnknown_0203CD78->arr[i]); + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + sub_80D2EF8(&gSprites[gUnknown_0203CD78->arr[i]]); + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + sub_818D8F0(gUnknown_0203CD78->arr[i]); + } + else + { + if (gUnknown_0203CD78->arr[i] != 0xFF) + sub_80D2EF8(&gSprites[gUnknown_0203CD78->arr[i]]); + } + } + + FreeMonIconPalettes(); + FREE_AND_SET_NULL(gUnknown_0203CD78); + FreeAllWindowBuffers(); + if (r9 == 0) + { + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + } + else + { + i = CreateTask(sub_8194220, 0); + gTasks[i].data[0] = 0; + gTasks[i].data[1] = 0; + gTasks[i].data[2] = 3; + gTasks[i].data[3] = gTasks[taskId].data[4]; + gTasks[i].data[4] = gTasks[taskId2].data[6]; + } + DestroyTask(taskId); + } + break; + } +} From e4649245bac064d700413e922b067ecb50133175 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 18 Aug 2018 19:52:25 +0200 Subject: [PATCH 118/174] this file is too much --- asm/battle_frontier_1.s | 2725 +--------------------------------- asm/battle_tower.s | 8 +- data/battle_frontier_1.s | 4 +- include/constants/trainers.h | 1 + include/global.h | 1 + src/battle_frontier_1.c | 146 +- 6 files changed, 146 insertions(+), 2739 deletions(-) diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index d2700fff00..0f8af28a90 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -6,2721 +6,6 @@ .text - - - thumb_func_start sub_8190CD4 -sub_8190CD4: @ 8190CD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r3, 0xE - ldrsh r2, [r0, r3] - mov r9, r2 - movs r4, 0x10 - ldrsh r7, [r0, r4] - movs r5, 0x8 - ldrsh r0, [r0, r5] - cmp r0, 0x8 - bls _08190D06 - bl _08192202 -_08190D06: - lsls r0, 2 - ldr r1, =_08190D18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08190D18: - .4byte _08190D3C - .4byte _08190D7C - .4byte _08190DA8 - .4byte _08190E48 - .4byte _08191FF8 - .4byte _08192038 - .4byte _08192078 - .4byte _081920BC - .4byte _08192106 -_08190D3C: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08190D50 - bl _08192202 -_08190D50: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, =gTasks - mov r6, r8 - lsls r0, r6, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x8] - bl _08192202 - .pool -_08190D7C: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08190D8C - bl _08192202 -_08190D8C: - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - ldr r2, =gTasks - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x8] - bl _08192202 - .pool -_08190DA8: - mov r0, r8 - bl sub_819221C - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x8 - bgt _08190DBE - cmp r6, 0x1 - bge _08190DF0 - bl _08192202 -_08190DBE: - cmp r6, 0x9 - beq _08190DC6 - bl _08192202 -_08190DC6: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - strh r1, [r0, 0x8] - bl _08192202 - .pool -_08190DF0: - ldr r1, =gTasks - mov r4, r8 - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x12] - movs r5, 0xC - ldrsh r0, [r0, r5] - movs r1, 0 - mov r9, r2 - cmp r0, 0 - beq _08190E0C - movs r1, 0x9 -_08190E0C: - adds r6, r1, 0 - adds r0, r6, 0 - adds r0, 0x9 - cmp r6, r0 - bge _08190E32 - adds r5, r0, 0 -_08190E18: - lsls r4, r6, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x2 - bl CopyWindowToVram - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r6, 0x1 - cmp r6, r5 - blt _08190E18 -_08190E32: - ldr r0, =gTasks - mov r1, r9 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x3 - strh r0, [r1, 0x8] - bl _08192202 - .pool -_08190E48: - mov r6, r8 - lsls r1, r6, 2 - adds r0, r1, r6 - lsls r0, 3 - ldr r2, =gTasks - adds r0, r2 - movs r3, 0x12 - ldrsh r6, [r0, r3] - subs r0, r6, 0x1 - mov r9, r1 - cmp r0, 0x7 - bls _08190E64 - bl _08192202 -_08190E64: - lsls r0, 2 - ldr r1, =_08190E78 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08190E78: - .4byte _08190E98 - .4byte _08191234 - .4byte _081915CC - .4byte _08191B08 - .4byte _08190E98 - .4byte _08191234 - .4byte _0819187C - .4byte _08191D68 -_08190E98: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r0, r4 - movs r5, 0xC - ldrsh r2, [r0, r5] - cmp r2, 0 - beq _08190ED4 - ldr r0, =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG0_Y - strh r1, [r0] - ldr r0, =gBattle_BG1_X - strh r1, [r0] - ldr r1, =gBattle_BG1_Y - movs r0, 0xA0 - strh r0, [r1] - b _08190EE6 - .pool -_08190ED4: - ldr r0, =gBattle_BG0_X - strh r2, [r0] - ldr r1, =gBattle_BG0_Y - movs r0, 0xA0 - strh r0, [r1] - ldr r0, =gBattle_BG1_X - strh r2, [r0] - ldr r0, =gBattle_BG1_Y - strh r2, [r0] -_08190EE6: - cmp r6, 0x1 - bne _08190F9C - ldr r5, =gUnknown_0203CD78 - ldr r0, [r5] - ldrb r1, [r0, 0x10] - cmp r1, 0 - bne _08190F50 - ldr r0, =gBattle_BG2_X - strh r1, [r0] - ldr r1, =gBattle_BG2_Y - movs r6, 0xA0 - lsls r6, 1 - adds r0, r6, 0 - strh r0, [r1] - ldr r3, =gUnknown_0860D080 - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r4, 0xA - ldrsh r1, [r0, r4] - adds r1, r3 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0xC] - movs r0, 0x10 - orrs r0, r2 - ldrb r1, [r1] - bl sub_81924E0 - b _08191084 - .pool -_08190F50: - ldr r1, =gBattle_BG2_X - movs r6, 0x80 - lsls r6, 1 - adds r0, r6, 0 - strh r0, [r1] - ldr r0, =gBattle_BG2_Y - movs r4, 0 - strh r4, [r0] - ldr r3, =gUnknown_0860D080 - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r6, 0xA - ldrsh r1, [r0, r6] - adds r1, r3 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0xC] - movs r0, 0x10 - orrs r0, r2 - ldrb r1, [r1] - bl sub_81924E0 - ldr r0, [r5] - strb r4, [r0, 0x10] - b _08191084 - .pool -_08190F9C: - ldr r6, =gUnknown_0203CD78 - ldr r1, [r6] - ldrb r5, [r1, 0x10] - cmp r5, 0 - bne _08190FF8 - ldr r4, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 - movs r2, 0xA - ldrsh r0, [r0, r2] - adds r2, r0, 0 - subs r2, 0x10 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, 0x11 - bl sub_8192F08 - ldr r0, =gBattle_BG2_X - strh r5, [r0] - ldr r1, =gBattle_BG2_Y - movs r3, 0xA0 - lsls r3, 1 - adds r0, r3, 0 - strh r0, [r1] - ldr r2, [r6] - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r4 - ldrb r1, [r0, 0xC] - movs r0, 0x10 - orrs r0, r1 - ldrb r1, [r2, 0x11] - bl sub_81924E0 - b _08191084 - .pool -_08190FF8: - cmp r5, 0x2 - bne _0819104C - ldr r4, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 - movs r5, 0xA - ldrsh r0, [r0, r5] - adds r2, r0, 0 - subs r2, 0x10 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, 0x11 - bl sub_8192F08 - ldr r1, =gBattle_BG2_X - movs r0, 0 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, [r6] - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r4 - ldrb r1, [r0, 0xC] - movs r0, 0x10 - orrs r0, r1 - ldrb r1, [r2, 0x12] - bl sub_81924E0 - b _08191084 - .pool -_0819104C: - ldr r1, =gBattle_BG2_X - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - movs r0, 0xA0 - strh r0, [r1] - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r4, 0xA - ldrsh r0, [r0, r4] - adds r2, r0, 0 - subs r2, 0x10 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - movs r0, 0x10 - orrs r0, r1 - lsls r1, r2, 24 - lsrs r1, 24 - bl sub_819314C -_08191084: - movs r6, 0 - ldr r5, =gUnknown_0203CD78 - mov r10, r5 - ldr r3, =gSprites - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks - adds r5, r0, r1 - mov r12, r6 - adds r4, r3, 0 - adds r4, 0x1C - movs r7, 0x1 -_0819109E: - cmp r6, 0x1 - bgt _0819110C - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191150 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190790 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191150 - .pool -_0819110C: - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191150 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190950 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191150: - adds r6, 0x1 - cmp r6, 0x7 - ble _0819109E - movs r6, 0x8 - ldr r2, =gUnknown_0203CD78 - mov r12, r2 - ldr r3, =gSprites - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - movs r4, 0 - adds r7, r3, 0 - adds r7, 0x1C -_0819116E: - cmp r6, 0x9 - bgt _081911D4 - mov r1, r12 - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191214 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190790 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191214 - .pool -_081911D4: - mov r2, r12 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191214 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190950 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191214: - adds r6, 0x1 - cmp r6, 0xF - ble _0819116E - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - movs r2, 0 - movs r1, 0x4 - bl _08191FE8 - .pool -_08191234: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r0, r4 - movs r5, 0xC - ldrsh r2, [r0, r5] - cmp r2, 0 - beq _08191278 - ldr r0, =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG0_Y - strh r1, [r0] - ldr r0, =gBattle_BG1_X - strh r1, [r0] - ldr r1, =gBattle_BG1_Y - ldr r2, =0x0000ff60 - adds r0, r2, 0 - strh r0, [r1] - b _0819128C - .pool -_08191278: - ldr r0, =gBattle_BG0_X - strh r2, [r0] - ldr r1, =gBattle_BG0_Y - ldr r3, =0x0000ff60 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, =gBattle_BG1_X - strh r2, [r0] - ldr r0, =gBattle_BG1_Y - strh r2, [r0] -_0819128C: - cmp r6, 0x2 - bne _0819133C - ldr r5, =gUnknown_0203CD78 - ldr r0, [r5] - ldrb r1, [r0, 0x10] - cmp r1, 0 - bne _081912F4 - ldr r0, =gBattle_BG2_X - strh r1, [r0] - ldr r1, =gBattle_BG2_Y - movs r0, 0xA0 - strh r0, [r1] - ldr r3, =gUnknown_0860D080 - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r4, 0xA - ldrsh r1, [r0, r4] - adds r1, r3 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0xC] - movs r0, 0x4 - orrs r0, r2 - ldrb r1, [r1] - bl sub_81924E0 - b _0819141C - .pool -_081912F4: - ldr r0, =gBattle_BG2_X - movs r4, 0 - strh r4, [r0] - ldr r0, =gBattle_BG2_Y - strh r4, [r0] - ldr r3, =gUnknown_0860D080 - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r6, 0xA - ldrsh r1, [r0, r6] - adds r1, r3 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0xC] - movs r0, 0x4 - orrs r0, r2 - ldrb r1, [r1] - bl sub_81924E0 - ldr r0, [r5] - strb r4, [r0, 0x10] - b _0819141C - .pool -_0819133C: - ldr r6, =gUnknown_0203CD78 - ldr r1, [r6] - ldrb r5, [r1, 0x10] - cmp r5, 0 - bne _08191394 - ldr r4, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 - movs r2, 0xA - ldrsh r0, [r0, r2] - adds r2, r0, 0 - subs r2, 0x10 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, 0x11 - bl sub_8192F08 - ldr r0, =gBattle_BG2_X - strh r5, [r0] - ldr r1, =gBattle_BG2_Y - movs r0, 0xA0 - strh r0, [r1] - ldr r2, [r6] - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r4 - ldrb r1, [r0, 0xC] - movs r0, 0x4 - orrs r0, r1 - ldrb r1, [r2, 0x11] - bl sub_81924E0 - b _0819141C - .pool -_08191394: - cmp r5, 0x2 - bne _081913E4 - ldr r4, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 - movs r3, 0xA - ldrsh r0, [r0, r3] - adds r2, r0, 0 - subs r2, 0x10 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, 0x11 - bl sub_8192F08 - ldr r1, =gBattle_BG2_X - movs r0, 0 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - movs r0, 0xA0 - strh r0, [r1] - ldr r2, [r6] - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r4 - ldrb r1, [r0, 0xC] - movs r0, 0x4 - orrs r0, r1 - ldrb r1, [r2, 0x12] - bl sub_81924E0 - b _0819141C - .pool -_081913E4: - ldr r1, =gBattle_BG2_X - movs r4, 0x80 - lsls r4, 1 - adds r0, r4, 0 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - movs r0, 0 - strh r0, [r1] - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r5, 0xA - ldrsh r0, [r0, r5] - adds r2, r0, 0 - subs r2, 0x10 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - movs r0, 0x4 - orrs r0, r1 - lsls r1, r2, 24 - lsrs r1, 24 - bl sub_819314C -_0819141C: - movs r6, 0 - ldr r0, =gUnknown_0203CD78 - mov r10, r0 - ldr r3, =gSprites - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks - adds r5, r0, r1 - mov r12, r6 - adds r4, r3, 0 - adds r4, 0x1C - movs r7, 0x1 -_08191436: - cmp r6, 0x1 - bgt _081914A4 - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _081914E8 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_81907F8 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _081914E8 - .pool -_081914A4: - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _081914E8 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_81909CC - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_081914E8: - adds r6, 0x1 - cmp r6, 0x7 - ble _08191436 - movs r6, 0x8 - ldr r2, =gUnknown_0203CD78 - mov r12, r2 - ldr r3, =gSprites - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - movs r4, 0 - adds r7, r3, 0 - adds r7, 0x1C -_08191506: - cmp r6, 0x9 - bgt _0819156C - mov r1, r12 - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _081915AC - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_81907F8 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _081915AC - .pool -_0819156C: - mov r2, r12 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _081915AC - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_81909CC - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_081915AC: - adds r6, 0x1 - cmp r6, 0xF - ble _08191506 - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - movs r2, 0 - movs r1, 0x5 - bl _08191FE8 - .pool -_081915CC: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r0, r4 - movs r5, 0xC - ldrsh r2, [r0, r5] - cmp r2, 0 - beq _0819160C - ldr r0, =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG0_Y - strh r1, [r0] - ldr r2, =gBattle_BG1_X - movs r6, 0x80 - lsls r6, 1 - adds r0, r6, 0 - strh r0, [r2] - ldr r0, =gBattle_BG1_Y - strh r1, [r0] - b _08191622 - .pool -_0819160C: - ldr r1, =gBattle_BG0_X - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, =gBattle_BG0_Y - strh r2, [r0] - ldr r0, =gBattle_BG1_X - strh r2, [r0] - ldr r0, =gBattle_BG1_Y - strh r2, [r0] -_08191622: - ldr r0, =gUnknown_0203CD78 - ldr r4, [r0] - ldrb r0, [r4, 0x10] - cmp r0, 0 - bne _08191688 - ldr r1, =gBattle_BG2_X - movs r4, 0x80 - lsls r4, 1 - adds r0, r4, 0 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - movs r0, 0xA0 - strh r0, [r1] - ldr r3, =gUnknown_0860D080 - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r5, 0xA - ldrsh r1, [r0, r5] - adds r1, r3 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0xC] - movs r0, 0x8 - orrs r0, r2 - ldrb r1, [r1] - bl sub_81924E0 - b _081916C6 - .pool -_08191688: - ldr r1, =gBattle_BG2_X - movs r6, 0x80 - lsls r6, 1 - adds r0, r6, 0 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - movs r0, 0 - strh r0, [r1] - ldr r3, =gUnknown_0860D15C - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r5, 0xA - ldrsh r1, [r0, r5] - lsls r1, 2 - subs r1, 0x1 - ldrb r4, [r4, 0x10] - adds r1, r4 - adds r1, r3 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0xC] - movs r0, 0x8 - orrs r0, r2 - ldrb r1, [r1] - bl sub_819314C -_081916C6: - movs r6, 0 - ldr r0, =gUnknown_0203CD78 - mov r10, r0 - ldr r3, =gSprites - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks - adds r5, r0, r1 - mov r12, r6 - adds r4, r3, 0 - adds r4, 0x1C - movs r7, 0x1 -_081916E0: - cmp r6, 0x1 - bgt _08191754 - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191798 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190860 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191798 - .pool -_08191754: - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191798 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190A48 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191798: - adds r6, 0x1 - cmp r6, 0x7 - ble _081916E0 - movs r6, 0x8 - ldr r2, =gUnknown_0203CD78 - mov r12, r2 - ldr r3, =gSprites - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - movs r4, 0 - adds r7, r3, 0 - adds r7, 0x1C -_081917B6: - cmp r6, 0x9 - bgt _0819181C - mov r1, r12 - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _0819185C - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190860 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _0819185C - .pool -_0819181C: - mov r2, r12 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _0819185C - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190A48 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_0819185C: - adds r6, 0x1 - cmp r6, 0xF - ble _081917B6 - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - movs r2, 0 - movs r1, 0x6 - b _08191FE8 - .pool -_0819187C: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r0, r4 - movs r5, 0xC - ldrsh r2, [r0, r5] - cmp r2, 0 - beq _081918BC - ldr r0, =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG0_Y - strh r1, [r0] - ldr r2, =gBattle_BG1_X - movs r6, 0x80 - lsls r6, 1 - adds r0, r6, 0 - strh r0, [r2] - ldr r0, =gBattle_BG1_Y - strh r1, [r0] - b _081918D2 - .pool -_081918BC: - ldr r1, =gBattle_BG0_X - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, =gBattle_BG0_Y - strh r2, [r0] - ldr r0, =gBattle_BG1_X - strh r2, [r0] - ldr r0, =gBattle_BG1_Y - strh r2, [r0] -_081918D2: - ldr r0, =gUnknown_0203CD78 - ldr r2, [r0] - ldrb r0, [r2, 0x10] - cmp r0, 0 - bne _08191924 - ldr r1, =gBattle_BG2_X - movs r4, 0x80 - lsls r4, 1 - adds r0, r4, 0 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - movs r0, 0xA0 - strh r0, [r1] - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - movs r0, 0x8 - orrs r0, r1 - ldrb r1, [r2, 0x11] - bl sub_81924E0 - b _08191958 - .pool -_08191924: - ldr r1, =gBattle_BG2_X - movs r0, 0 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - movs r0, 0xA0 - strh r0, [r1] - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r5, 0xA - ldrsh r0, [r0, r5] - adds r2, r0, 0 - subs r2, 0x10 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - movs r0, 0x8 - orrs r0, r1 - lsls r1, r2, 24 - lsrs r1, 24 - bl sub_819314C -_08191958: - movs r6, 0 - ldr r0, =gUnknown_0203CD78 - mov r10, r0 - ldr r3, =gSprites - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks - adds r5, r0, r1 - mov r12, r6 - adds r4, r3, 0 - adds r4, 0x1C - movs r7, 0x1 -_08191972: - cmp r6, 0x1 - bgt _081919E0 - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191A24 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190860 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191A24 - .pool -_081919E0: - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191A24 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190A48 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191A24: - adds r6, 0x1 - cmp r6, 0x7 - ble _08191972 - movs r6, 0x8 - ldr r2, =gUnknown_0203CD78 - mov r12, r2 - ldr r3, =gSprites - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - movs r4, 0 - adds r7, r3, 0 - adds r7, 0x1C -_08191A42: - cmp r6, 0x9 - bgt _08191AA8 - mov r1, r12 - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191AE8 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190860 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191AE8 - .pool -_08191AA8: - mov r2, r12 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191AE8 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190A48 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191AE8: - adds r6, 0x1 - cmp r6, 0xF - ble _08191A42 - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - movs r2, 0 - movs r1, 0x6 - b _08191FE8 - .pool -_08191B08: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r0, r4 - movs r5, 0xC - ldrsh r2, [r0, r5] - cmp r2, 0 - beq _08191B48 - ldr r0, =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG0_Y - strh r1, [r0] - ldr r2, =gBattle_BG1_X - movs r6, 0xFF - lsls r6, 8 - adds r0, r6, 0 - strh r0, [r2] - ldr r0, =gBattle_BG1_Y - strh r1, [r0] - b _08191B5E - .pool -_08191B48: - ldr r1, =gBattle_BG0_X - movs r3, 0xFF - lsls r3, 8 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, =gBattle_BG0_Y - strh r2, [r0] - ldr r0, =gBattle_BG1_X - strh r2, [r0] - ldr r0, =gBattle_BG1_Y - strh r2, [r0] -_08191B5E: - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - bne _08191B94 - ldr r1, =gBattle_BG2_X - movs r0, 0 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - movs r0, 0xA0 - strh r0, [r1] - b _08191B9E - .pool -_08191B94: - ldr r0, =gBattle_BG2_X - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG2_Y - strh r1, [r0] -_08191B9E: - ldr r4, =gUnknown_0860D15C - ldr r5, =gUnknown_0203CD78 - ldr r3, [r5] - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r6, 0xA - ldrsh r1, [r0, r6] - lsls r1, 2 - subs r1, 0x1 - ldrb r3, [r3, 0x10] - adds r1, r3 - adds r1, r4 - mov r4, r9 - add r4, r8 - lsls r4, 3 - adds r4, r2 - ldrb r2, [r4, 0xC] - movs r0, 0x2 - orrs r0, r2 - ldrb r1, [r1] - bl sub_819314C - movs r6, 0 - ldr r7, =gSprites - mov r12, r6 - mov r10, r5 - adds r5, r7, 0 - adds r5, 0x1C -_08191BDC: - cmp r6, 0x1 - bgt _08191C50 - mov r1, r10 - ldr r0, [r1] - adds r3, r0, r6 - ldrb r0, [r3] - cmp r0, 0xFF - beq _08191C96 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =sub_81908CC - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r4, 0xC] - movs r2, 0x1 - eors r1, r2 - strh r1, [r0, 0x2E] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r2, r12 - strh r2, [r0, 0x30] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r6, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r1, [r0, 0x34] - b _08191C96 - .pool -_08191C50: - mov r3, r10 - ldr r0, [r3] - adds r3, r0, r6 - ldrb r0, [r3] - cmp r0, 0xFF - beq _08191C96 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =sub_8190AC4 - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r4, 0xC] - movs r2, 0x1 - eors r1, r2 - strh r1, [r0, 0x2E] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r6, [r0, 0x32] -_08191C96: - adds r6, 0x1 - cmp r6, 0x7 - ble _08191BDC - movs r6, 0x8 - ldr r2, =gUnknown_0203CD78 - mov r12, r2 - ldr r3, =gSprites - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - movs r4, 0 - adds r7, r3, 0 - adds r7, 0x1C -_08191CB4: - cmp r6, 0x9 - bgt _08191D1C - mov r1, r12 - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191D5C - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_81908CC - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191D5C - .pool -_08191D1C: - mov r2, r12 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191D5C - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190AC4 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191D5C: - adds r6, 0x1 - cmp r6, 0xF - ble _08191CB4 - b _08191FDA - .pool -_08191D68: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r0, r4 - movs r5, 0xC - ldrsh r2, [r0, r5] - cmp r2, 0 - beq _08191DA8 - ldr r0, =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG0_Y - strh r1, [r0] - ldr r2, =gBattle_BG1_X - movs r6, 0xFF - lsls r6, 8 - adds r0, r6, 0 - strh r0, [r2] - ldr r0, =gBattle_BG1_Y - strh r1, [r0] - b _08191DBE - .pool -_08191DA8: - ldr r1, =gBattle_BG0_X - movs r3, 0xFF - lsls r3, 8 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, =gBattle_BG0_Y - strh r2, [r0] - ldr r0, =gBattle_BG1_X - strh r2, [r0] - ldr r0, =gBattle_BG1_Y - strh r2, [r0] -_08191DBE: - ldr r0, =gUnknown_0203CD78 - ldr r2, [r0] - ldrb r0, [r2, 0x10] - cmp r0, 0x2 - bne _08191E10 - ldr r1, =gBattle_BG2_X - movs r4, 0x80 - lsls r4, 1 - adds r0, r4, 0 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - movs r0, 0xA0 - strh r0, [r1] - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - movs r0, 0x2 - orrs r0, r1 - ldrb r1, [r2, 0x12] - bl sub_81924E0 - b _08191E44 - .pool -_08191E10: - ldr r1, =gBattle_BG2_X - movs r0, 0 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - movs r0, 0xA0 - strh r0, [r1] - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r5, 0xA - ldrsh r0, [r0, r5] - adds r2, r0, 0 - subs r2, 0x10 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - movs r0, 0x2 - orrs r0, r1 - lsls r1, r2, 24 - lsrs r1, 24 - bl sub_819314C -_08191E44: - movs r6, 0 - ldr r0, =gUnknown_0203CD78 - mov r10, r0 - ldr r3, =gSprites - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks - adds r5, r0, r1 - mov r12, r6 - adds r4, r3, 0 - adds r4, 0x1C - movs r7, 0x1 -_08191E5E: - cmp r6, 0x1 - bgt _08191ECC - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191F10 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_81908CC - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191F10 - .pool -_08191ECC: - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191F10 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190AC4 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191F10: - adds r6, 0x1 - cmp r6, 0x7 - ble _08191E5E - movs r6, 0x8 - ldr r2, =gUnknown_0203CD78 - mov r12, r2 - ldr r3, =gSprites - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - movs r4, 0 - adds r7, r3, 0 - adds r7, 0x1C -_08191F2E: - cmp r6, 0x9 - bgt _08191F94 - mov r1, r12 - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191FD4 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_81908CC - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191FD4 - .pool -_08191F94: - mov r2, r12 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191FD4 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190AC4 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191FD4: - adds r6, 0x1 - cmp r6, 0xF - ble _08191F2E -_08191FDA: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - movs r2, 0 - movs r1, 0x7 -_08191FE8: - strh r1, [r0, 0x8] - strh r2, [r0, 0x12] - b _08192202 - .pool -_08191FF8: - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - ldr r5, =gTasks - adds r1, r0, r5 - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x29 - beq _08192100 - ldr r1, =gBattle_BG0_Y - ldrh r0, [r1] - subs r0, 0x4 - strh r0, [r1] - ldr r1, =gBattle_BG1_Y - ldrh r0, [r1] - subs r0, 0x4 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - b _081920A4 - .pool -_08192038: - mov r6, r8 - lsls r0, r6, 2 - add r0, r8 - lsls r0, 3 - ldr r2, =gTasks - adds r1, r0, r2 - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x29 - beq _08192100 - ldr r1, =gBattle_BG0_Y - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - ldr r1, =gBattle_BG1_Y - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - ldr r1, =gBattle_BG2_Y - b _081920E8 - .pool -_08192078: - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r1, r0, r4 - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x41 - beq _08192100 - ldr r1, =gBattle_BG0_X - ldrh r0, [r1] - subs r0, 0x4 - strh r0, [r1] - ldr r1, =gBattle_BG1_X - ldrh r0, [r1] - subs r0, 0x4 - strh r0, [r1] - ldr r1, =gBattle_BG2_X -_081920A4: - ldrh r0, [r1] - subs r0, 0x4 - strh r0, [r1] - b _08192202 - .pool -_081920BC: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - ldr r6, =gTasks - adds r1, r0, r6 - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x41 - beq _08192100 - ldr r1, =gBattle_BG0_X - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - ldr r1, =gBattle_BG1_X - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - ldr r1, =gBattle_BG2_X -_081920E8: - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - b _08192202 - .pool -_08192100: - movs r0, 0x2 - strh r0, [r1, 0x8] - b _08192202 -_08192106: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08192202 - movs r6, 0 - ldr r4, =gUnknown_0203CD78 -_08192116: - cmp r6, 0x1 - bgt _08192134 - ldr r0, [r4] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0819214E - bl sub_818D8F0 - b _0819214E - .pool -_08192134: - ldr r0, [r4] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0819214E - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl sub_80D2EF8 -_0819214E: - adds r6, 0x1 - cmp r6, 0x7 - ble _08192116 - movs r6, 0x8 - ldr r4, =gUnknown_0203CD78 -_08192158: - cmp r6, 0x9 - bgt _08192174 - ldr r0, [r4] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0819218E - bl sub_818D8F0 - b _0819218E - .pool -_08192174: - ldr r0, [r4] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0819218E - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl sub_80D2EF8 -_0819218E: - adds r6, 0x1 - cmp r6, 0xF - ble _08192158 - bl FreeMonIconPalettes - ldr r4, =gUnknown_0203CD78 - ldr r0, [r4] - bl Free - movs r5, 0 - str r5, [r4] - bl FreeAllWindowBuffers - mov r0, r9 - cmp r0, 0 - bne _081921C4 - ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl SetMainCallback2 - b _081921FC - .pool -_081921C4: - ldr r0, =sub_8194220 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - strh r5, [r1, 0xA] - movs r0, 0x3 - strh r0, [r1, 0xC] - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x10] - strh r0, [r1, 0xE] - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x14] - strh r0, [r1, 0x10] -_081921FC: - mov r0, r8 - bl DestroyTask -_08192202: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190CD4 - - thumb_func_start sub_819221C -sub_819221C: @ 819221C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0 - ldr r2, =gTasks - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r0, r2 - mov r12, r0 - movs r1, 0x10 - ldrsh r6, [r0, r1] - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r2 - movs r3, 0xA - ldrsh r5, [r0, r3] - ldr r0, =gUnknown_0860D080 - adds r0, r5, r0 - ldrb r0, [r0] - mov r10, r0 - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - mov r8, r0 - ldr r1, =gMain - ldrh r4, [r1, 0x2E] - movs r0, 0x3 - ands r0, r4 - adds r2, r1, 0 - cmp r0, 0 - beq _0819226E - movs r7, 0x9 -_0819226E: - mov r3, r12 - movs r1, 0xE - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _0819227A - b _081924CC -_0819227A: - cmp r0, 0x1 - beq _08192280 - b _081923B0 -_08192280: - movs r0, 0x40 - ands r0, r4 - cmp r0, 0 - beq _081922BA - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0 - bne _081922BA - cmp r5, 0 - bne _081922B4 - movs r5, 0xF - b _081922B6 - .pool -_081922B4: - subs r5, 0x1 -_081922B6: - movs r7, 0x1 - b _08192360 -_081922BA: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081922E2 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0 - bne _081922E2 - cmp r5, 0xF - bne _081922DC - movs r5, 0 - b _081922DE - .pool -_081922DC: - adds r5, 0x1 -_081922DE: - movs r7, 0x2 - b _08192360 -_081922E2: - ldrh r1, [r2, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08192304 - ldr r0, =gUnknown_0203CD78 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - cmp r0, 0 - beq _08192304 - subs r0, 0x1 - strb r0, [r1, 0x10] - movs r7, 0x3 - b _08192360 - .pool -_08192304: - ldrh r1, [r2, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08192360 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - mov r3, r10 - lsls r1, r3, 2 - adds r0, r1 - ldr r2, =0x00000d25 - adds r0, r2 - ldrb r3, [r0] - lsls r0, r3, 29 - mov r12, r1 - cmp r0, 0 - bge _0819233C - ldr r0, =gUnknown_0203CD78 - ldr r2, [r0] - ldrb r4, [r2, 0x10] - subs r1, r4, 0x1 - lsls r0, r3, 27 - lsrs r0, 30 - cmp r1, r0 - bge _0819233C - adds r0, r4, 0x1 - strb r0, [r2, 0x10] - movs r7, 0x4 -_0819233C: - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - add r0, r12 - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08192360 - ldr r0, =gUnknown_0203CD78 - ldr r3, [r0] - ldrb r1, [r3, 0x10] - subs r0, r1, 0x1 - cmp r0, r8 - bge _08192360 - adds r0, r1, 0x1 - strb r0, [r3, 0x10] - movs r7, 0x4 -_08192360: - cmp r7, 0x9 - beq _08192366 - b _081924A0 -_08192366: - ldr r0, =gUnknown_0203CD78 - ldr r3, [r0] - ldrb r0, [r3, 0x10] - cmp r0, 0 - beq _081923A0 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - ldr r2, =gTasks - adds r1, r2 - ldr r2, =gUnknown_0860D1A0 - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r0, 1 - lsls r0, 2 - subs r0, 0x1 - ldrb r3, [r3, 0x10] - adds r0, r3 - b _08192482 - .pool -_081923A0: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - b _0819249E - .pool -_081923B0: - movs r0, 0x40 - ands r0, r4 - cmp r0, 0 - beq _081923DE - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - bne _081923DE - cmp r5, 0x10 - bne _081923D8 - ldr r0, =gUnknown_0860D19C - add r0, r8 - ldrb r5, [r0] - b _081923DA - .pool -_081923D8: - subs r5, 0x1 -_081923DA: - movs r7, 0x5 - b _08192446 -_081923DE: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819240E - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - bne _0819240E - ldr r0, =gUnknown_0860D19C - add r0, r8 - ldrb r0, [r0] - cmp r5, r0 - bne _08192408 - movs r5, 0x10 - b _0819240A - .pool -_08192408: - adds r5, 0x1 -_0819240A: - movs r7, 0x6 - b _08192446 -_0819240E: - ldrh r1, [r2, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819242C - ldr r0, =gUnknown_0203CD78 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - cmp r0, 0 - beq _0819242C - movs r7, 0x7 - subs r0, 0x1 - b _08192444 - .pool -_0819242C: - ldrh r1, [r2, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08192446 - ldr r0, =gUnknown_0203CD78 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - cmp r0, 0x1 - bhi _08192446 - movs r7, 0x8 - adds r0, 0x1 -_08192444: - strb r0, [r1, 0x10] -_08192446: - cmp r7, 0x9 - bne _081924A0 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r1, [r0, 0x10] - cmp r1, 0 - bne _08192470 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - ldr r2, =gTasks - adds r1, r2 - ldr r2, =gUnknown_0860D1C0 - ldrb r0, [r0, 0x11] - b _08192482 - .pool -_08192470: - cmp r1, 0x2 - bne _08192494 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - ldr r3, =gTasks - adds r1, r3 - ldr r2, =gUnknown_0860D1C0 - ldrb r0, [r0, 0x12] -_08192482: - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1, 0xA] - b _081924A0 - .pool -_08192494: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks - adds r0, r1 -_0819249E: - strh r5, [r0, 0xA] -_081924A0: - cmp r7, 0 - beq _081924CC - cmp r7, 0x9 - beq _081924CC - movs r0, 0x5 - bl PlaySE - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0xA] - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0xC] - movs r2, 0x1 - eors r1, r2 - strh r1, [r0, 0xC] -_081924CC: - adds r0, r7, 0 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_819221C - thumb_func_start sub_81924E0 sub_81924E0: @ 81924E0 push {r4-r7,lr} @@ -7775,7 +5060,7 @@ _08195092: _0819509E: ldr r4, [sp, 0x30] lsrs r0, r4, 16 - bl sub_8163524 + bl RandomizeFacilityTrainerMonId lsls r0, 16 lsrs r5, r0, 16 movs r7, 0 @@ -7932,7 +5217,7 @@ _081951AA: str r1, [sp, 0x4] movs r1, 0x32 mov r2, r8 - bl sub_818F720 + bl CalcDomeMonStats ldr r2, [sp, 0x1C] ldr r1, [r2, 0x4] ldrh r0, [r5] @@ -8031,7 +5316,7 @@ _08195288: mov r0, r10 adds r1, r6, 0 ldr r2, [sp, 0x18] - bl sub_818F904 + bl SwapDomeTrainers b _081952F0 .pool _081952C4: @@ -8055,7 +5340,7 @@ _081952C4: mov r0, r10 adds r1, r6, 0 ldr r2, [sp, 0x18] - bl sub_818F904 + bl SwapDomeTrainers _081952F0: adds r4, 0x2 adds r6, 0x1 @@ -8272,7 +5557,7 @@ _08195488: str r5, [sp, 0x4] lsrs r1, 22 ldr r0, [sp] - bl sub_81901A0 + bl TournamentIdOfOpponent str r0, [sp, 0x8] ldr r0, =gSaveBlock2Ptr ldr r3, [r0] diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 43dc9b19bf..e905342667 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -2545,8 +2545,8 @@ _081634D4: .pool thumb_func_end sub_8163444 - thumb_func_start sub_8163524 -sub_8163524: @ 8163524 + thumb_func_start RandomizeFacilityTrainerMonId +RandomizeFacilityTrainerMonId: @ 8163524 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 16 @@ -2598,7 +2598,7 @@ _08163580: pop {r1} bx r1 .pool - thumb_func_end sub_8163524 + thumb_func_end RandomizeFacilityTrainerMonId thumb_func_start sub_8163590 sub_8163590: @ 8163590 @@ -4186,7 +4186,7 @@ _081643A8: str r0, [sp, 0x28] _081643C0: mov r0, r8 - bl sub_8163524 + bl RandomizeFacilityTrainerMonId lsls r0, 16 lsrs r6, r0, 16 movs r0, 0x1 diff --git a/data/battle_frontier_1.s b/data/battle_frontier_1.s index e2eb99505e..e0e2b73b40 100644 --- a/data/battle_frontier_1.s +++ b/data/battle_frontier_1.s @@ -393,7 +393,7 @@ gUnknown_0860D090:: @ 860D090 .4byte sub_818F9B0 .4byte sub_818F9E0 .4byte sub_818FA20 - .4byte sub_81903B8 + .4byte ShowDomeOpponentInfo .4byte sub_81938A4 .4byte sub_81938E0 .4byte sub_8190298 @@ -409,7 +409,7 @@ gUnknown_0860D090:: @ 860D090 .4byte sub_8194EC0 .4byte sub_8194EF8 .4byte sub_8194F58 - .4byte sub_818F02C + .4byte InitDomeTrainers .align 2 gUnknown_0860D0EC:: @ 860D0EC diff --git a/include/constants/trainers.h b/include/constants/trainers.h index 57c7fd523f..df908c8bfd 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -5,6 +5,7 @@ // Special Trainer Ids. #define TRAINER_FRONTIER_BRAIN 1022 +#define TRAINER_PLAYER 1023 #define TRAINER_SECRET_BASE 1024 #define TRAINER_LINK_OPPONENT 2048 #define TRAINER_OPPONENT_C00 3072 diff --git a/include/global.h b/include/global.h index 4bfa6194d9..9f2c7c9a25 100644 --- a/include/global.h +++ b/include/global.h @@ -397,6 +397,7 @@ struct BattleFrontier /*0xD1C*/ u16 field_D1C[2][2]; /*0xD24*/ struct BattleDomeTrainer domeTrainers[DOME_TOURNAMENT_TRAINERS_COUNT]; /*0xD64*/ u16 domeMonId[DOME_TOURNAMENT_TRAINERS_COUNT][3]; + /*0xD64*/ u16 field_DC4[2]; /*0xDC8*/ u16 field_DC8[2]; /*0xDCC*/ u8 filler_DCC[4]; /*0xDD0*/ u16 field_DD0[2]; diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index c977f7d76e..784ad36567 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -18,11 +18,19 @@ #include "palette.h" #include "decompress.h" #include "menu.h" +#include "sound.h" #include "pokemon_icon.h" #include "constants/species.h" #include "constants/moves.h" #include "constants/trainers.h" #include "constants/abilities.h" +#include "constants/songs.h" + +#define DOME_ROUND1 0 +#define DOME_ROUND2 1 +#define DOME_QUARTERFINAL 1 // Different name for the same round. +#define DOME_SEMIFINAL 2 +#define DOME_FINAL 3 struct Unknown_0203BC8C_Struct { @@ -80,6 +88,9 @@ extern const struct SpriteTemplate gUnknown_0860D068; extern const struct SpriteTemplate gUnknown_0860D050; extern const u8 gUnknown_0860D080[]; extern const u8 gUnknown_0860D15C[]; +extern const u8 gUnknown_0860D1A0[]; +extern const u8 gUnknown_0860D19C[]; +extern const u8 gUnknown_0860D1C0[]; extern const u8 gUnknown_0860D3F1[][2]; // gfx @@ -102,7 +113,7 @@ s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); s32 sub_818FFC0(s32 move, s32 species, s32 arg2); s32 sub_818FEB4(s32 *arr, bool8 arg1); -u16 sub_81902AC(void); +u16 TrainerIdOfPlayerOpponent(void); void sub_8190400(u8 taskId); void sub_8190CD4(u8 taskId); void sub_8194220(u8 taskId); @@ -269,7 +280,7 @@ void sub_818ED28(void) } } -void SetDomeTrainersAndMons(void) +void InitDomeTrainers(void) { s32 i, j, k; s32 monLevel; @@ -1137,7 +1148,7 @@ u8 GetDomeTrainerMonIvs(u16 trainerId) return fixedIv; } -s32 sub_81901A0(s32 arg0, s32 trainerId) +s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId) { s32 i, j, val; @@ -1147,14 +1158,14 @@ s32 sub_81901A0(s32 arg0, s32 trainerId) break; } - if (arg0 != 0) + if (roundId != DOME_ROUND1) { - if (arg0 == 3) - val = gUnknown_0860D10C[i][arg0] + 8; + if (roundId == DOME_FINAL) + val = gUnknown_0860D10C[i][roundId] + 8; else - val = gUnknown_0860D10C[i][arg0] + 4; + val = gUnknown_0860D10C[i][roundId] + 4; - for (j = gUnknown_0860D10C[i][arg0]; j < val; j++) + for (j = gUnknown_0860D10C[i][roundId]; j < val; j++) { if (gUnknown_0860D14C[j] != i && !gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D14C[j]].unk1) break; @@ -1176,12 +1187,12 @@ s32 sub_81901A0(s32 arg0, s32 trainerId) void sub_8190298(void) { - gTrainerBattleOpponent_A = sub_81902AC(); + gTrainerBattleOpponent_A = TrainerIdOfPlayerOpponent(); } -u16 sub_81902AC(void) +u16 TrainerIdOfPlayerOpponent(void) { - return gSaveBlock2Ptr->frontier.domeTrainers[sub_81901A0(gSaveBlock2Ptr->frontier.field_CB2, TRAINER_PLAYER)].trainerId; + return gSaveBlock2Ptr->frontier.domeTrainers[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.field_CB2, TRAINER_PLAYER)].trainerId; } void sub_81902E4(void) @@ -1211,11 +1222,11 @@ void sub_819033C(void) gSaveBlock2Ptr->frontier.field_D14[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode]; } -void sub_81903B8(void) +void ShowDomeOpponentInfo(void) { u8 taskId = CreateTask(sub_8190400, 0); gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = TrainerIdToTournamentId(sub_81902AC()); + gTasks[taskId].data[1] = TrainerIdToTournamentId(TrainerIdOfPlayerOpponent()); gTasks[taskId].data[2] = 0; gTasks[taskId].data[3] = 0; @@ -2322,3 +2333,112 @@ void sub_8190CD4(u8 taskId) break; } } + +u8 sub_819221C(u8 taskId) +{ + u8 retVal = 0; + s32 taskId2 = gTasks[taskId].data[4]; + s32 r5 = gTasks[taskId2].data[1]; + u8 r10 = gUnknown_0860D080[r5]; + u16 roundId = gSaveBlock2Ptr->frontier.field_CB2; + + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + retVal = 9; + + if (gTasks[taskId].data[3] != 0) + { + if (gTasks[taskId].data[3] == 1) + { + if (gMain.newKeys & DPAD_UP && gUnknown_0203CD78->unk_10 == 0) + { + if (r5 == 0) + r5 = 15; + else + r5--; + retVal = 1; + } + else if (gMain.newKeys & DPAD_DOWN && gUnknown_0203CD78->unk_10 != 0) + { + if (r5 == 15) + r5 = 0; + else + r5++; + retVal = 2; + } + else if (gMain.newKeys & DPAD_LEFT && gUnknown_0203CD78->unk_10 != 0) + { + gUnknown_0203CD78->unk_10--; + retVal = 3; + } + else if (gMain.newKeys & DPAD_RIGHT) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[r10].unk1 && gUnknown_0203CD78->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].unk2) + { + gUnknown_0203CD78->unk_10++; + retVal = 4; + } + if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].unk1 && gUnknown_0203CD78->unk_10 - 1 < roundId) + { + gUnknown_0203CD78->unk_10++; + retVal = 4; + } + } + + if (retVal == 9) + { + if (gUnknown_0203CD78->unk_10 != 0) + gTasks[taskId2].data[1] = gUnknown_0860D1A0[(r5 / 2) * 4 + (gUnknown_0203CD78->unk_10 - 1)]; + else + gTasks[taskId2].data[1] = r5; + } + } + else + { + if (gMain.newKeys & DPAD_UP && gUnknown_0203CD78->unk_10 == 1) + { + if (r5 == 16) + r5 = gUnknown_0860D19C[roundId]; + else + r5--; + retVal = 5; + } + else if (gMain.newKeys & DPAD_DOWN && gUnknown_0203CD78->unk_10 == 1) + { + if (r5 == gUnknown_0860D19C[roundId]) + r5 = 16; + else + r5++; + retVal = 6; + } + else if (gMain.newKeys & DPAD_LEFT && gUnknown_0203CD78->unk_10 != 0) + { + retVal = 7; + gUnknown_0203CD78->unk_10--; + } + else if (gMain.newKeys & DPAD_RIGHT && (gUnknown_0203CD78->unk_10 == 0 || gUnknown_0203CD78->unk_10 == 1)) + { + retVal = 8; + gUnknown_0203CD78->unk_10++; + } + + if (retVal == 9) + { + if (gUnknown_0203CD78->unk_10 == 0) + gTasks[taskId2].data[1] = gUnknown_0860D1C0[gUnknown_0203CD78->unk_11[0]]; + else if (gUnknown_0203CD78->unk_10 == 2) + gTasks[taskId2].data[1] = gUnknown_0860D1C0[gUnknown_0203CD78->unk_11[1]]; + else + gTasks[taskId2].data[1] = r5; + } + } + + if (retVal != 0 && retVal != 9) + { + PlaySE(SE_SELECT); + gTasks[taskId2].data[1] = r5; + gTasks[taskId].data[2] ^= 1; + } + } + + return retVal; +} From fb19a8fc59fcf67c6d4ddfd696e172bcacff27b7 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 19 Aug 2018 01:06:10 +0200 Subject: [PATCH 119/174] battle dome cards sensibly renamed --- asm/battle_frontier_1.s | 6 +- asm/battle_frontier_2.s | 22 +- asm/pokenav.s | 8 +- include/battle_dome_cards.h | 13 -- include/constants/trainers.h | 4 +- include/trainer_pokemon_sprites.h | 13 ++ ld_script.txt | 4 +- src/battle_frontier_1.c | 182 ++++++++------- src/credits.c | 9 +- src/field_effect.c | 12 +- src/field_specials.c | 34 +-- src/hall_of_fame.c | 28 +-- src/main_menu.c | 16 +- src/new_game.c | 4 +- src/overworld.c | 4 +- src/pokedex.c | 116 +++++----- src/pokemon.c | 4 +- src/record_mixing.c | 2 +- src/starter_choose.c | 15 +- ...dome_cards.c => trainer_pokemon_sprites.c} | 216 ++++++++---------- sym_ewram.txt | 2 +- 21 files changed, 342 insertions(+), 372 deletions(-) delete mode 100644 include/battle_dome_cards.h create mode 100644 include/trainer_pokemon_sprites.h rename src/{battle_dome_cards.c => trainer_pokemon_sprites.c} (52%) diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index 0f8af28a90..f1508c2970 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -121,7 +121,7 @@ _081925B6: ldr r1, =0x0000ffff str r1, [sp, 0x4] movs r1, 0x1 - bl sub_818D8AC + bl CreateTrainerPicSprite ldr r1, =gUnknown_0203CD78 ldr r1, [r1] adds r1, r5 @@ -1701,7 +1701,7 @@ _081932F8: ldr r1, =0x0000ffff str r1, [sp, 0x4] movs r1, 0x1 - bl sub_818D8AC + bl CreateTrainerPicSprite ldr r1, =gUnknown_0203CD78 ldr r1, [r1] ldr r2, [sp, 0x3C] @@ -1789,7 +1789,7 @@ _081933B8: ldr r1, =0x0000ffff str r1, [sp, 0x4] movs r1, 0x1 - bl sub_818D8AC + bl CreateTrainerPicSprite ldr r1, =gUnknown_0203CD78 ldr r1, [r1] add r1, r9 diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 46204bb647..ad79758755 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -2935,7 +2935,7 @@ sub_819BD70: @ 819BD70 adds r0, r5, 0 mov r2, r8 movs r3, 0x1 - bl sub_818D7D8 + bl CreateMonPicSprite_HandleDeoxys ldr r1, [r6] movs r2, 0xA6 lsls r2, 2 @@ -3053,7 +3053,7 @@ sub_819BE34: @ 819BE34 adds r0, r5, 0 mov r2, r9 movs r3, 0x1 - bl sub_818D7D8 + bl CreateMonPicSprite_HandleDeoxys ldr r1, [r6] movs r2, 0xA6 lsls r2, 2 @@ -3166,7 +3166,7 @@ _0819BF48: adds r0, r5, 0 adds r2, r6, 0 movs r3, 0x1 - bl sub_818D7D8 + bl CreateMonPicSprite_HandleDeoxys mov r2, r9 ldr r1, [r2] add r1, r8 @@ -3846,19 +3846,19 @@ sub_819C568: @ 819C568 lsls r1, 2 adds r0, r1 ldrb r0, [r0] - bl sub_818D820 + bl FreeAndDestroyMonPicSprite ldr r0, [r4] movs r1, 0xA6 lsls r1, 2 adds r0, r1 ldrb r0, [r0] - bl sub_818D820 + bl FreeAndDestroyMonPicSprite ldr r0, [r4] movs r1, 0xA7 lsls r1, 2 adds r0, r1 ldrb r0, [r0] - bl sub_818D820 + bl FreeAndDestroyMonPicSprite ldr r0, =sub_819C2D4 movs r1, 0x1 bl CreateTask @@ -6709,7 +6709,7 @@ _0819DDA8: bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes - bl dp13_810BB8C + bl ResetAllPicSprites ldr r0, =gFrontierFactorySelectMenu_Gfx ldr r5, =gUnknown_0203CE40 ldr r1, [r5] @@ -9315,7 +9315,7 @@ sub_819F304: @ 819F304 adds r0, r5, 0 mov r1, r9 movs r3, 0x1 - bl sub_818D7D8 + bl CreateMonPicSprite_HandleDeoxys ldr r1, [r6] adds r1, 0x2C strb r0, [r1] @@ -9370,7 +9370,7 @@ sub_819F3F8: @ 819F3F8 lsrs r5, 24 lsls r0, r4, 24 lsrs r0, 24 - bl sub_818D820 + bl FreeAndDestroyMonPicSprite ldr r0, =sub_819F7B4 movs r1, 0x1 bl CreateTask @@ -9403,7 +9403,7 @@ sub_819F444: @ 819F444 adds r6, r1, 0 lsls r0, r4, 24 lsrs r0, 24 - bl sub_818D820 + bl FreeAndDestroyMonPicSprite ldr r5, =gSprites lsls r4, 16 lsrs r1, r4, 24 @@ -9996,7 +9996,7 @@ _0819F908: adds r0, r4, 0 adds r2, r5, 0 movs r3, 0x1 - bl sub_818D7D8 + bl CreateMonPicSprite_HandleDeoxys ldr r2, =gUnknown_03001284 ldr r1, [r2] adds r1, 0x2C diff --git a/asm/pokenav.s b/asm/pokenav.s index 250eca0f27..8adb3cbd91 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -20169,7 +20169,7 @@ sub_81D1148: @ 81D1148 add r2, sp, 0x8 mov r0, sp bl sub_81D0760 - bl dp13_810BB8C + bl ResetAllPicSprites movs r0, 0x28 movs r1, 0x68 bl sub_81D1184 @@ -20187,7 +20187,7 @@ sub_81D1148: @ 81D1148 sub_81D1178: @ 81D1178 push {lr} ldrh r0, [r0, 0x10] - bl sub_818D820 + bl FreeAndDestroyMonPicSprite pop {r0} bx r0 thumb_func_end sub_81D1178 @@ -20213,7 +20213,7 @@ sub_81D1184: @ 81D1184 ldr r3, =0x0000ffff str r3, [sp, 0xC] movs r3, 0x1 - bl sub_818D7D8 + bl CreateMonPicSprite_HandleDeoxys lsls r0, 16 lsrs r0, 16 ldr r1, =gSprites @@ -20256,7 +20256,7 @@ sub_81D11FC: @ 81D11FC push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x10] - bl sub_818D820 + bl FreeAndDestroyMonPicSprite movs r5, 0x20 negs r5, r5 adds r0, r5, 0 diff --git a/include/battle_dome_cards.h b/include/battle_dome_cards.h deleted file mode 100644 index a0696d1563..0000000000 --- a/include/battle_dome_cards.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef GUARD_BATTLE_DOME_CARDS_H -#define GUARD_BATTLE_DOME_CARDS_H - -bool16 dp13_810BB8C(void); -u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); -u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); -u16 sub_818D820(u16 spriteId); -u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); -u16 sub_818D8F0(u16 spriteId); -u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); -u8 sub_818D97C(u8 a0, u8 a1); - -#endif //GUARD_BATTLE_DOME_CARDS_H diff --git a/include/constants/trainers.h b/include/constants/trainers.h index df908c8bfd..f79216d942 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -174,10 +174,10 @@ #define FACILITY_CLASS_TWINS 0x39 #define FACILITY_CLASS_SAILOR 0x3a #define FACILITY_CLASS_PKMN_TRAINER_1 0x3b -#define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3c +#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3c #define FACILITY_CLASS_PKMN_TRAINER_3 0x3d #define FACILITY_CLASS_PKMN_TRAINER_4 0x3e -#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3f +#define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3f #define FACILITY_CLASS_PKMN_TRAINER_6 0x40 #define FACILITY_CLASS_PKMN_TRAINER_7 0x41 #define FACILITY_CLASS_PKMN_BREEDER_2 0x42 diff --git a/include/trainer_pokemon_sprites.h b/include/trainer_pokemon_sprites.h new file mode 100644 index 0000000000..90ceedaf5f --- /dev/null +++ b/include/trainer_pokemon_sprites.h @@ -0,0 +1,13 @@ +#ifndef GUARD_TRAINER_POKEMON_SPRITES_H +#define GUARD_TRAINER_POKEMON_SPRITES_H + +bool16 ResetAllPicSprites(void); +u16 CreatePicSprite2(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 FreeAndDestroyMonPicSprite(u16 spriteId); +u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 FreeAndDestroyTrainerPicSprite(u16 spriteId); +u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); +u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass); + +#endif // GUARD_TRAINER_POKEMON_SPRITES_H diff --git a/ld_script.txt b/ld_script.txt index 0ee9c61c29..0eee2e8cef 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -240,7 +240,7 @@ SECTIONS { src/recorded_battle.o(.text); src/battle_controller_recorded_opponent.o(.text); src/battle_controller_recorded_player.o(.text); - src/battle_dome_cards.o(.text); + src/trainer_pokemon_sprites.o(.text); src/lilycove_lady.o(.text); src/battle_frontier_1.o(.text); asm/battle_frontier_1.o(.text); @@ -520,7 +520,7 @@ SECTIONS { src/pokemon_animation.o(.rodata); src/battle_controller_recorded_opponent.o(.rodata); src/battle_controller_recorded_player.o(.rodata); - src/battle_dome_cards.o(.rodata); + src/trainer_pokemon_sprites.o(.rodata); src/lilycove_lady.o(.rodata); src/battle_frontier_1.o(.rodata); data/battle_frontier_1.o(.rodata); diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index 784ad36567..a1d8b2c317 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -20,6 +20,7 @@ #include "menu.h" #include "sound.h" #include "pokemon_icon.h" +#include "trainer_pokemon_sprites.h" #include "constants/species.h" #include "constants/moves.h" #include "constants/trainers.h" @@ -57,7 +58,6 @@ extern void sub_8195898(u8 *dst, u16 trainerId); extern u16 sub_81A5060(u8, u8); extern void sub_8162614(u16, u8); extern void sub_81A4C30(void); -extern u16 sub_818D8F0(u16); extern bool8 sub_81A3610(void); extern u16 sub_81A4FF0(u8); @@ -1361,7 +1361,7 @@ void sub_8190790(struct Sprite *sprite) if (sprite->pos1.y >= 192) { gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; - sub_818D8F0(sprite->data[3]); + FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } } @@ -1381,7 +1381,7 @@ void sub_81907F8(struct Sprite *sprite) if (sprite->pos1.y <= -32) { gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; - sub_818D8F0(sprite->data[3]); + FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } } @@ -1401,7 +1401,7 @@ void sub_8190860(struct Sprite *sprite) if (sprite->pos1.x >= 272) { gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; - sub_818D8F0(sprite->data[3]); + FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } } @@ -1421,7 +1421,7 @@ void sub_81908CC(struct Sprite *sprite) if (sprite->pos1.x <= -32) { gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; - sub_818D8F0(sprite->data[3]); + FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } } @@ -2290,7 +2290,7 @@ void sub_8190CD4(u8 taskId) if (i < 2) { if (gUnknown_0203CD78->arr[i] != 0xFF) - sub_818D8F0(gUnknown_0203CD78->arr[i]); + FreeAndDestroyTrainerPicSprite(gUnknown_0203CD78->arr[i]); } else { @@ -2303,7 +2303,7 @@ void sub_8190CD4(u8 taskId) if (i < 10) { if (gUnknown_0203CD78->arr[i] != 0xFF) - sub_818D8F0(gUnknown_0203CD78->arr[i]); + FreeAndDestroyTrainerPicSprite(gUnknown_0203CD78->arr[i]); } else { @@ -2345,100 +2345,108 @@ u8 sub_819221C(u8 taskId) if (gMain.newKeys & (A_BUTTON | B_BUTTON)) retVal = 9; - if (gTasks[taskId].data[3] != 0) + if (gTasks[taskId].data[3] == 0) + return retVal; + + if (gTasks[taskId].data[3] == 1) { - if (gTasks[taskId].data[3] == 1) + if (gMain.newKeys & DPAD_UP && gUnknown_0203CD78->unk_10 == 0) { - if (gMain.newKeys & DPAD_UP && gUnknown_0203CD78->unk_10 == 0) - { - if (r5 == 0) - r5 = 15; - else - r5--; - retVal = 1; - } - else if (gMain.newKeys & DPAD_DOWN && gUnknown_0203CD78->unk_10 != 0) - { - if (r5 == 15) - r5 = 0; - else - r5++; - retVal = 2; - } - else if (gMain.newKeys & DPAD_LEFT && gUnknown_0203CD78->unk_10 != 0) - { - gUnknown_0203CD78->unk_10--; - retVal = 3; - } - else if (gMain.newKeys & DPAD_RIGHT) - { - if (gSaveBlock2Ptr->frontier.domeTrainers[r10].unk1 && gUnknown_0203CD78->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].unk2) - { - gUnknown_0203CD78->unk_10++; - retVal = 4; - } - if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].unk1 && gUnknown_0203CD78->unk_10 - 1 < roundId) - { - gUnknown_0203CD78->unk_10++; - retVal = 4; - } - } - - if (retVal == 9) - { - if (gUnknown_0203CD78->unk_10 != 0) - gTasks[taskId2].data[1] = gUnknown_0860D1A0[(r5 / 2) * 4 + (gUnknown_0203CD78->unk_10 - 1)]; - else - gTasks[taskId2].data[1] = r5; - } + if (r5 == 0) + r5 = 15; + else + r5--; + retVal = 1; } - else + else if (gMain.newKeys & DPAD_DOWN && gUnknown_0203CD78->unk_10 == 0) { - if (gMain.newKeys & DPAD_UP && gUnknown_0203CD78->unk_10 == 1) + if (r5 == 15) + r5 = 0; + else + r5++; + retVal = 2; + } + else if (gMain.newKeys & DPAD_LEFT && gUnknown_0203CD78->unk_10 != 0) + { + gUnknown_0203CD78->unk_10--; + retVal = 3; + } + else if (gMain.newKeys & DPAD_RIGHT) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[r10].unk1 && gUnknown_0203CD78->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].unk2) { - if (r5 == 16) - r5 = gUnknown_0860D19C[roundId]; - else - r5--; - retVal = 5; - } - else if (gMain.newKeys & DPAD_DOWN && gUnknown_0203CD78->unk_10 == 1) - { - if (r5 == gUnknown_0860D19C[roundId]) - r5 = 16; - else - r5++; - retVal = 6; - } - else if (gMain.newKeys & DPAD_LEFT && gUnknown_0203CD78->unk_10 != 0) - { - retVal = 7; - gUnknown_0203CD78->unk_10--; - } - else if (gMain.newKeys & DPAD_RIGHT && (gUnknown_0203CD78->unk_10 == 0 || gUnknown_0203CD78->unk_10 == 1)) - { - retVal = 8; gUnknown_0203CD78->unk_10++; + retVal = 4; } - - if (retVal == 9) + if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].unk1 && gUnknown_0203CD78->unk_10 - 1 < roundId) { - if (gUnknown_0203CD78->unk_10 == 0) - gTasks[taskId2].data[1] = gUnknown_0860D1C0[gUnknown_0203CD78->unk_11[0]]; - else if (gUnknown_0203CD78->unk_10 == 2) - gTasks[taskId2].data[1] = gUnknown_0860D1C0[gUnknown_0203CD78->unk_11[1]]; - else - gTasks[taskId2].data[1] = r5; + gUnknown_0203CD78->unk_10++; + retVal = 4; } } - if (retVal != 0 && retVal != 9) + if (retVal == 9) { - PlaySE(SE_SELECT); - gTasks[taskId2].data[1] = r5; - gTasks[taskId].data[2] ^= 1; + if (gUnknown_0203CD78->unk_10 != 0) + gTasks[taskId2].data[1] = gUnknown_0860D1A0[(r5 / 2) * 4 + (gUnknown_0203CD78->unk_10 - 1)]; + else + gTasks[taskId2].data[1] = r5; + } + } + else + { + if (gMain.newKeys & DPAD_UP && gUnknown_0203CD78->unk_10 == 1) + { + if (r5 == 16) + r5 = gUnknown_0860D19C[roundId]; + else + r5--; + retVal = 5; + } + else if (gMain.newKeys & DPAD_DOWN && gUnknown_0203CD78->unk_10 == 1) + { + if (r5 == gUnknown_0860D19C[roundId]) + r5 = 16; + else + r5++; + retVal = 6; + } + else if (gMain.newKeys & DPAD_LEFT && gUnknown_0203CD78->unk_10 != 0) + { + retVal = 7; + gUnknown_0203CD78->unk_10--; + } + else if (gMain.newKeys & DPAD_RIGHT && (gUnknown_0203CD78->unk_10 == 0 || gUnknown_0203CD78->unk_10 == 1)) + { + retVal = 8; + gUnknown_0203CD78->unk_10++; + } + + if (retVal == 9) + { + if (gUnknown_0203CD78->unk_10 == 0) + gTasks[taskId2].data[1] = gUnknown_0860D1C0[gUnknown_0203CD78->unk_11[0]]; + else if (gUnknown_0203CD78->unk_10 == 2) + gTasks[taskId2].data[1] = gUnknown_0860D1C0[gUnknown_0203CD78->unk_11[1]]; + else + gTasks[taskId2].data[1] = r5; } } + if (retVal != 0 && retVal != 9) + { + PlaySE(SE_SELECT); + gTasks[taskId2].data[1] = r5; + gTasks[taskId].data[2] ^= 1; + } + + return retVal; } + +/* +void sub_81924E0(u8 arg0, u8 arg1) +{ + +} +*/ diff --git a/src/credits.c b/src/credits.c index a88e4b5494..c054958ce3 100644 --- a/src/credits.c +++ b/src/credits.c @@ -12,7 +12,7 @@ #include "gpu_regs.h" #include "m4a.h" #include "constants/rgb.h" -#include "battle_dome_cards.h" +#include "trainer_pokemon_sprites.h" #include "starter_choose.h" #include "decompress.h" #include "intro_credits_graphics.h" @@ -1197,7 +1197,6 @@ void sub_8175620(void) u8 taskIdA; s16 taskIdC; u8 taskIdB; - u16 savedIme; sub_8175CE4(); SetVBlankCallback(NULL); @@ -1333,7 +1332,7 @@ static void sub_81758E4(u8 taskIdA) u16 *temp; ResetSpriteData(); - dp13_810BB8C(); + ResetAllPicSprites(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM); @@ -2164,7 +2163,7 @@ static void sub_8177050(struct Sprite *sprite) { if (gUnknown_0203BD28) { - sub_818D820(sprite->data[6]); + FreeAndDestroyMonPicSprite(sprite->data[6]); return; } @@ -2242,7 +2241,7 @@ static void sub_8177050(struct Sprite *sprite) case 10: SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); - sub_818D820(sprite->data[6]); + FreeAndDestroyMonPicSprite(sprite->data[6]); break; } } diff --git a/src/field_effect.c b/src/field_effect.c index f047c78a35..13de58aa4a 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1,8 +1,6 @@ - -// Includes #include "global.h" #include "field_effect.h" -#include "battle_dome_cards.h" +#include "trainer_pokemon_sprites.h" #include "decompress.h" #include "field_camera.h" #include "field_effect_helpers.h" @@ -557,7 +555,7 @@ u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority) #ifdef NONMATCHING u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y) { - u16 spriteId = sub_818D7D8(species, 0, 0x8000, 1, x, y, 0, gMonPaletteTable[species].tag); + u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, 0, 0x8000, 1, x, y, 0, gMonPaletteTable[species].tag); PreservePaletteInWeather(IndexOfSpritePaletteTag(gMonPaletteTable[species].tag) + 0x10); if (spriteId == 0xFFFF) return 0x40; @@ -590,7 +588,7 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y) movs r1, 0\n\ adds r2, r3, 0\n\ movs r3, 0x1\n\ - bl sub_818D7D8\n\ + bl CreateMonPicSprite_HandleDeoxys\n\ lsls r0, 16\n\ lsrs r5, r0, 16\n\ ldrh r0, [r4, 0x4]\n\ @@ -619,7 +617,7 @@ _080B5FDE:\n\ u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subpriority) { const struct CompressedSpritePalette *spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, d, g); - u16 spriteId = sub_818D7D8(species, d, g, 1, x, y, 0, spritePalette->tag); + u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, d, g, 1, x, y, 0, spritePalette->tag); PreservePaletteInWeather(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10); if (spriteId == 0xFFFF) return 0x40; @@ -634,7 +632,7 @@ void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId) { FreeOamMatrix(sprite->oam.matrixNum); } - sub_818D820(spriteId); + FreeAndDestroyMonPicSprite(spriteId); } #ifdef NONMATCHING diff --git a/src/field_specials.c b/src/field_specials.c index 897bcc8d73..e20ccf618c 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1645,7 +1645,7 @@ bool8 sub_81398C0(void) StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_0x8004)]); return TRUE; } - + return FALSE; } @@ -1799,7 +1799,7 @@ void ShakeScreenInElevator(void) if (floorDelta > 8) floorDelta = 8; - + data[5] = gUnknown_085B2C18[floorDelta]; SetCameraPanningCallback(NULL); @@ -1830,16 +1830,16 @@ static void sub_8139AF4(u8 taskId) void sub_8139B60(void) { int xPos; - + gUnknown_0203AB5E = AddWindow(&gUnknown_085B2BAC); SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0); - + xPos = GetStringCenterAlignXOffset(1, gText_ElevatorNowOn, 64); PrintTextOnWindow(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, TEXT_SPEED_FF, NULL); - + xPos = GetStringCenterAlignXOffset(1, gElevatorFloorsTable[gSpecialVar_0x8005], 64); PrintTextOnWindow(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, TEXT_SPEED_FF, NULL); - + PutWindowTilemap(gUnknown_0203AB5E); CopyWindowToVram(gUnknown_0203AB5E, 3); } @@ -2167,13 +2167,13 @@ void sub_8139F20(void) } break; case 4: - if (gSaveBlock2Ptr->frontier.field_D0C[0] >= gSaveBlock2Ptr->frontier.field_D0C[1]) + if (gSaveBlock2Ptr->frontier.field_D0C[0][0] >= gSaveBlock2Ptr->frontier.field_D0C[0][1]) { - unk = gSaveBlock2Ptr->frontier.field_D0C[0]; + unk = gSaveBlock2Ptr->frontier.field_D0C[0][0]; } else { - unk = gSaveBlock2Ptr->frontier.field_D0C[1]; + unk = gSaveBlock2Ptr->frontier.field_D0C[0][1]; } break; case 5: @@ -2662,8 +2662,8 @@ static void sub_813A2DC(u8 taskId) } task->data[4] = convert_pixel_width_to_tile_width(unk1); - - if (task->data[2] + task->data[4] > 0x1D) + + if (task->data[2] + task->data[4] > 0x1D) { int unk2 = 0x1D - task->data[4]; if (unk2 < 0) @@ -3363,7 +3363,7 @@ void sub_813ADD4(void) struct Task *task = &gTasks[taskId]; ListMenuGetScrollAndRow(task->data[14], &scrollOffset, &selectedRow); SetStandardWindowBorderStyle(task->data[13], 0); - + for (i = 0; i < 6; i++) { sub_8199F74(task->data[13], 1, gUnknown_085B2CF0[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0); @@ -3381,7 +3381,7 @@ void sub_813AEB4(void) u16 temp1 = 0; u16 temp2 = 0; gSpecialVar_0x8005 = 0; - + temp1 = VarGet(VAR_TEMP_E); temp2 = VarGet(VAR_TEMP_D); @@ -3509,7 +3509,7 @@ static void sub_813B0B4(u8 a0) u8 eventObjectId; LoadPalette(&gUnknown_085B3280[a0], 0x1A0, 8); TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId); - + if (a0 == 0) { PlaySE(SE_W109); @@ -3656,7 +3656,7 @@ bool32 sub_813B374(void) u16 var = VarGet(VAR_0x4037); GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0); - + if (var < 9) { return FALSE; @@ -3697,7 +3697,7 @@ bool32 sub_813B3B0(void) break; } } - + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER3)) { switch (gSaveBlock1Ptr->location.mapNum) @@ -4159,7 +4159,7 @@ static u16 sub_813BC00(void) } } } - + if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B347C[retVal]) & 1)) { gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] ^= 1 << gUnknown_085B347C[retVal]; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index f5c4ba4917..33c85d448f 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -5,6 +5,7 @@ #include "sprite.h" #include "pokemon.h" #include "text.h" +#include "text_window.h" #include "malloc.h" #include "gpu_regs.h" #include "main.h" @@ -26,6 +27,7 @@ #include "event_data.h" #include "overworld.h" #include "menu.h" +#include "trainer_pokemon_sprites.h" struct HallofFameMon { @@ -81,18 +83,10 @@ extern const u8 gText_MainMenuTime[]; extern const u8 gContestConfetti_Gfx[]; extern const u8 gContestConfetti_Pal[]; -extern void NewMenuHelpers_DrawDialogueFrame(u8, u8); extern void sub_8175620(void); extern u8 TrySavingData(u8); -extern u8 sub_818D3E4(u16 species, u32 trainerId, u32 personality, u8 flags, s16 x, s16 y, u8, u16); extern void sub_8197434(u8, u8); extern u16 sub_818D97C(u8 playerGender, u8); -extern u16 sub_818D8AC(u16, u8, s16, s16, u8, u16); -extern const void* stdpal_get(u8); -extern void LoadWindowGfx(u8, u8, u16, u8); -extern u16 sub_818D820(u16); -extern u16 sub_818D8F0(u16); -extern u16 sub_818D7D8(u16 species, u32 trainerId, u32 personality, u8 arg3, s16 sp0, s16 sp1, u8 sp2, u16 sp3); extern void sub_8198204(u8 *dst, const u8 *src, u8, u8, u8); extern bool8 sub_80F9C30(void); extern void sub_8198314(void); @@ -102,8 +96,6 @@ extern void sub_80F9BF4(u16, u16, u8); extern void sub_81980F0(u8, u8, u8, u8, u16); extern void sub_80F9BCC(u16, u16, u8); extern bool8 sub_80F9C1C(void); -extern u16 SpeciesToPokedexNum(u16 species); -extern void dp13_810BB8C(void); extern void sub_81971D0(void); extern void sub_8197200(void); extern void sub_8152254(void); @@ -611,7 +603,7 @@ static void Task_Hof_DisplayMon(u8 taskId) if (currMon->species == SPECIES_EGG) field6 += 10; - spriteId = sub_818D3E4(currMon->species, currMon->tid, currMon->personality, 1, xPos, yPos, currMonId, 0xFFFF); + spriteId = CreatePicSprite2(currMon->species, currMon->tid, currMon->personality, 1, xPos, yPos, currMonId, 0xFFFF); gSprites[spriteId].tDestinationX = field4; gSprites[spriteId].tDestinationY = field6; gSprites[spriteId].data[0] = 0; @@ -723,7 +715,7 @@ static void sub_8173EE4(u8 taskId) ShowBg(0); ShowBg(1); ShowBg(3); - gTasks[taskId].tPlayerSpriteID = sub_818D8AC(sub_818D97C(gSaveBlock2Ptr->playerGender, 1), 1, 120, 72, 6, 0xFFFF); + gTasks[taskId].tPlayerSpriteID = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), 1, 120, 72, 6, 0xFFFF); AddWindow(&sHof_WindowTemplate); LoadWindowGfx(1, gSaveBlock2Ptr->optionsWindowFrameType, 0x21D, 0xD0); LoadPalette(stdpal_get(1), 0xE0, 0x20); @@ -780,11 +772,11 @@ static void Task_Hof_HandleExit(u8 taskId) if (spriteId != 0xFF) { FreeOamMatrix(gSprites[spriteId].oam.matrixNum); - sub_818D820(spriteId); + FreeAndDestroyMonPicSprite(spriteId); } } - sub_818D8F0(gTasks[taskId].tPlayerSpriteID); + FreeAndDestroyTrainerPicSprite(gTasks[taskId].tPlayerSpriteID); HideBg(0); HideBg(1); HideBg(3); @@ -956,7 +948,7 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId) if (currMon->species == SPECIES_EGG) posY += 10; - spriteId = sub_818D7D8(currMon->species, currMon->tid, currMon->personality, 1, posX, posY, i, 0xFFFF); + spriteId = CreateMonPicSprite_HandleDeoxys(currMon->species, currMon->tid, currMon->personality, 1, posX, posY, i, 0xFFFF); gSprites[spriteId].oam.priority = 1; gTasks[taskId].tMonSpriteId(i) = spriteId; } @@ -1026,7 +1018,7 @@ static void Task_HofPC_HandleInput(u8 taskId) u8 spriteId = gTasks[taskId].tMonSpriteId(i); if (spriteId != 0xFF) { - sub_818D820(spriteId); + FreeAndDestroyMonPicSprite(spriteId); gTasks[taskId].tMonSpriteId(i) = 0xFF; } } @@ -1087,7 +1079,7 @@ static void Task_HofPC_HandleExit(u8 taskId) u16 spriteId = gTasks[taskId].tMonSpriteId(i); if (spriteId != 0xFF) { - sub_818D820(spriteId); + FreeAndDestroyMonPicSprite(spriteId); gTasks[taskId].tMonSpriteId(i) = 0xFF; } } @@ -1305,7 +1297,7 @@ static void sub_8174F70(void) ResetTasks(); ResetSpriteData(); reset_temp_tile_data_buffers(); - dp13_810BB8C(); + ResetAllPicSprites(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; LoadCompressedObjectPic(&sHallOfFame_ConfettiSpriteSheet); diff --git a/src/main_menu.c b/src/main_menu.c index 052035e348..e28faf986a 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1,7 +1,5 @@ - -// Includes #include "global.h" -#include "battle_dome_cards.h" +#include "trainer_pokemon_sprites.h" #include "bg.h" #include "constants/flags.h" #include "constants/rgb.h" @@ -1018,7 +1016,7 @@ void task_new_game_prof_birch_speech_1(u8 taskId) ScanlineEffect_Stop(); ResetSpriteData(); FreeAllSpritePalettes(); - dp13_810BB8C(); + ResetAllPicSprites(); AddBirchSpeechObjects(taskId); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); gTasks[taskId].data[4] = 0; @@ -1336,7 +1334,7 @@ void task_new_game_prof_birch_speech_17(u8 taskId) if (!gPaletteFade.active) { FreeAllWindowBuffers(); - sub_818D820(gTasks[taskId].data[9]); + FreeAndDestroyMonPicSprite(gTasks[taskId].data[9]); set_default_player_name(Random() % 20); DestroyTask(taskId); DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, new_game_prof_birch_speech_part2_start); @@ -1515,8 +1513,8 @@ void task_new_game_prof_birch_speech_part2_12(u8 taskId) if (!gPaletteFade.active) { FreeAllWindowBuffers(); - sub_818D820(gTasks[taskId].data[9]); - dp13_810BB8C(); + FreeAndDestroyMonPicSprite(gTasks[taskId].data[9]); + ResetAllPicSprites(); SetMainCallback2(CB2_NewGame); DestroyTask(taskId); } @@ -1558,7 +1556,7 @@ void new_game_prof_birch_speech_part2_start(void) ScanlineEffect_Stop(); ResetSpriteData(); FreeAllSpritePalettes(); - dp13_810BB8C(); + ResetAllPicSprites(); AddBirchSpeechObjects(taskId); if (gSaveBlock2Ptr->playerGender != MALE) { @@ -1613,7 +1611,7 @@ void sub_80318D8(struct Sprite *sprite) u8 sub_80318F4(u8 a, u8 b) { - return sub_818D3E4(SPECIES_LOTAD, 8, 0, 1, a, b, 14, -1); + return CreatePicSprite2(SPECIES_LOTAD, 8, 0, 1, a, b, 14, -1); } void AddBirchSpeechObjects(u8 taskId) diff --git a/src/new_game.c b/src/new_game.c index 8b8436d105..da5e91229c 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -23,6 +23,8 @@ #include "overworld.h" #include "mail.h" #include "battle_records.h" +#include "item.h" +#include "pokedex.h" extern u8 gDifferentSaveFile; extern u16 gSaveFileStatus; @@ -33,13 +35,11 @@ extern u16 GetGeneratedTrainerIdLower(void); extern void ClearContestWinnerPicsInContestHall(void); extern void sub_80BB358(void); extern void ResetBagScrollPositions(void); -extern void ResetPokedex(void); extern void ResetGabbyAndTy(void); extern void ResetSecretBases(void); extern void ResetLinkContestBoolean(void); extern void sub_8052DA8(void); extern void ResetPokemonStorageSystem(void); -extern void ClearBag(void); extern void NewGameInitPCItems(void); extern void ClearDecorationInventories(void); extern void ResetFanClub(void); diff --git a/src/overworld.c b/src/overworld.c index d85af9e4d4..1cf830cf70 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -151,7 +151,7 @@ extern void TransferTilesetAnimsBuffer(void); extern bool32 sub_81D5F48(void); extern u8 GetCurrentTrainerHillMapId(void); extern bool8 warp0_in_pokecenter(void); -extern void dp13_810BB8C(void); +extern void ResetAllPicSprites(void); extern void FieldEffectActiveListClear(void); extern void SetUpFieldTasks(void); extern void sub_81BE6B8(void); @@ -2149,7 +2149,7 @@ static void sub_8086988(u32 a1) ResetSpriteData(); ResetPaletteFade(); ScanlineEffect_Clear(); - dp13_810BB8C(); + ResetAllPicSprites(); ResetCameraUpdateInfo(); InstallCameraPanAheadCallback(); if (!a1) diff --git a/src/pokedex.c b/src/pokedex.c index 2a0033306a..2cb3c153ff 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -11,7 +11,7 @@ #include "main.h" #include "sound.h" #include "task.h" -#include "battle_dome_cards.h" +#include "trainer_pokemon_sprites.h" #include "scanline_effect.h" #include "malloc.h" #include "gpu_regs.h" @@ -821,7 +821,7 @@ const u8 sText_TenDashes[] = _("----------"); void ResetPokedex(void) { u16 i; - + gUnknown_02039B50 = 0; gUnknown_02039B52 = 64; gUnknown_030060B0 = 0; @@ -910,7 +910,7 @@ void sub_80BB534(void) { u8 *addr; u32 size; - + switch (gMain.state) { case 0: @@ -929,7 +929,7 @@ void sub_80BB534(void) ResetPaletteFade(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; - dp13_810BB8C(); + ResetAllPicSprites(); gMain.state++; break; case 2: @@ -984,7 +984,7 @@ void sub_80BB78C(u8 taskId) void sub_80BB7D4(u8 taskId) { SetGpuReg(REG_OFFSET_BG0VOFS, gUnknown_02039B4C->menuY); - + if (gUnknown_02039B4C->menuY) { gUnknown_02039B4C->menuY -= 8; @@ -1467,7 +1467,7 @@ void sub_80BC844(u8 a) void sub_80BC890(void) { void* tilemapBuffer; - + FreeAllWindowBuffers(); tilemapBuffer = GetBgTilemapBuffer(0); if (tilemapBuffer) @@ -1487,7 +1487,7 @@ 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. s16 i; - + gUnknown_02039B4C->pokemonListCount = 0; switch (dexMode) @@ -1633,7 +1633,7 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode) void sub_80BCE2C(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top) { u8 color[3]; - + color[0] = 0; color[1] = 15; color[2] = 3; @@ -1731,7 +1731,7 @@ void sub_80BD154(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) @@ -1753,7 +1753,7 @@ void sub_80BD1F4(u16 a, u8 x, u8 y, u16 unused) u8 sub_80BD23C(u16 num, u8 left, u8 top) { const u8* str; - + num = NationalPokedexNumToSpecies(num); if (num) str = gSpeciesNames[num]; @@ -1773,7 +1773,7 @@ void sub_80BD2B4(u16 a, u16 b) u8 i; u16 unk; u8 spriteId; - + gPaletteFade.bufferTransferDisabled = TRUE; for (i = 0; i < 4; i++) @@ -1803,13 +1803,13 @@ void sub_80BD2B4(u16 a, u16 b) gSprites[spriteId].callback = sub_80BE4E0; gSprites[spriteId].data[5] = 32; } - + sub_80BCE84(0, a, b); SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_02039B4C->unk62D); gUnknown_02039B4C->unk630 = 0; gUnknown_02039B4C->unk632 = 0; - + gPaletteFade.bufferTransferDisabled = FALSE; } @@ -1897,7 +1897,7 @@ u16 sub_80BD69C(u16 a, u16 b) u8 i; u16 r6; u8 r10 = 0; - + if ((gMain.heldKeys & DPAD_UP) && (a > 0)) { r10 = 1; @@ -1917,7 +1917,7 @@ u16 sub_80BD69C(u16 a, u16 b) else if ((gMain.newKeys & DPAD_LEFT) && (a > 0)) { r6 = a; - + for (i = 0; i < 7; i++) a = sub_80C0E0C(1, a, 0, gUnknown_02039B4C->pokemonListCount - 1); gUnknown_02039B4C->unk62C += 16 * (a - r6); @@ -1935,13 +1935,13 @@ u16 sub_80BD69C(u16 a, u16 b) sub_80BD2B4(a, 0xE); PlaySE(SE_Z_PAGE); } - + if (r10 == 0) { gUnknown_02039B4C->unk638 = 0; return a; } - + r5 = gUnknown_0855D28C[gUnknown_02039B4C->unk638 / 4]; r3 = gUnknown_0855D291[gUnknown_02039B4C->unk638 / 4]; gUnknown_02039B4C->unk62E = r3; @@ -2030,7 +2030,7 @@ u8 sub_80BDA40(void) { if (gUnknown_02039B4C->unk61E[i] != 0xFFFF) { - sub_818D820(gUnknown_02039B4C->unk61E[i]); + FreeAndDestroyMonPicSprite(gUnknown_02039B4C->unk61E[i]); gUnknown_02039B4C->unk61E[i] |= 0xFFFF; } } @@ -2109,7 +2109,7 @@ void sub_80BDB7C(u8 a) if (a == 0) { u32 _a; - + if (!IsNationalPokedexEnabled()) { CreateSprite(&gUnknown_0855D1F4, 32, 40, 1); @@ -2160,22 +2160,22 @@ void sub_80BDB7C(u8 a) else { u16 r6; - + CreateSprite(&gUnknown_0855D1F4, 32, 40, 1); spriteId = CreateSprite(&gUnknown_0855D1F4, 32, 76, 1); StartSpriteAnim(&gSprites[spriteId], 1); CreateSprite(&gUnknown_0855D20C, 17, 45, 1); - + spriteId = CreateSprite(&gUnknown_0855D20C, 17, 55, 1); StartSpriteAnim(&gSprites[spriteId], 1); CreateSprite(&gUnknown_0855D20C, 17, 81, 1); - + spriteId = CreateSprite(&gUnknown_0855D20C, 17, 91, 1); StartSpriteAnim(&gSprites[spriteId], 1); - + r6 = GetHoennPokedexCount(0); _a = 0; @@ -2197,9 +2197,9 @@ void sub_80BDB7C(u8 a) spriteId = CreateSprite(&gUnknown_0855D23C, 56, 45, 1); r5 = (r6 % 100) % 10; StartSpriteAnim(&gSprites[spriteId], r5); - + _a = 0; - + spriteId = CreateSprite(&gUnknown_0855D23C, 40, 55, 1); r5 = gUnknown_02039B4C->unk61A / 100; StartSpriteAnim(&gSprites[spriteId], r5); @@ -2207,21 +2207,21 @@ void sub_80BDB7C(u8 a) _a = 1; else gSprites[spriteId].invisible = TRUE; - + spriteId = CreateSprite(&gUnknown_0855D23C, 48, 55, 1); r5 = (gUnknown_02039B4C->unk61A % 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; StartSpriteAnim(&gSprites[spriteId], r5); - + r6 = GetHoennPokedexCount(1); _a = 0; - + spriteId = CreateSprite(&gUnknown_0855D23C, 40, 81, 1); r5 = r6 / 100; StartSpriteAnim(&gSprites[spriteId], r5); @@ -2229,20 +2229,20 @@ void sub_80BDB7C(u8 a) _a = 1; else gSprites[spriteId].invisible = TRUE; - + spriteId = CreateSprite(&gUnknown_0855D23C, 48, 81, 1); r5 = (r6 % 100) / 10; if (r5 != 0 || _a != 0) StartSpriteAnim(&gSprites[spriteId], r5); else gSprites[spriteId].invisible = TRUE; - + spriteId = CreateSprite(&gUnknown_0855D23C, 56, 81, 1); r5 = (r6 % 100) % 10; StartSpriteAnim(&gSprites[spriteId], r5); - + _a = 0; - + spriteId = CreateSprite(&gUnknown_0855D23C, 40, 91, 1); r5 = gUnknown_02039B4C->unk61C / 100; StartSpriteAnim(&gSprites[spriteId], r5); @@ -2250,14 +2250,14 @@ void sub_80BDB7C(u8 a) _a = 1; else gSprites[spriteId].invisible = TRUE; - + spriteId = CreateSprite(&gUnknown_0855D23C, 48, 91, 1); r5 = (gUnknown_02039B4C->unk61C % 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; StartSpriteAnim(&gSprites[spriteId], r5); @@ -2313,7 +2313,7 @@ void sub_80BE4E0(struct Sprite *sprite) if (gUnknown_02039B4C->unk64A != 0 && gUnknown_02039B4C->unk64A != 3) { - sub_818D820(gUnknown_02039B4C->unk61E[data1]); + FreeAndDestroyMonPicSprite(gUnknown_02039B4C->unk61E[data1]); gUnknown_02039B4C->unk61E[data1] = 0xFFFF; } else @@ -2339,7 +2339,7 @@ void sub_80BE4E0(struct Sprite *sprite) if ((sprite->data[5] <= -64 || sprite->data[5] >= 64) && sprite->data[0] != 0) { - sub_818D820(gUnknown_02039B4C->unk61E[data1]); + FreeAndDestroyMonPicSprite(gUnknown_02039B4C->unk61E[data1]); gUnknown_02039B4C->unk61E[data1] = 0xFFFF; } } @@ -2449,14 +2449,14 @@ void sub_80BE8DC(const u8* str, u8 left, u8 top) color[0] = 0; color[1] = 15; color[2] = 3; - + AddTextPrinterParameterized2(0, 1, left, top, 0, 0, color, -1, str); } u8 sub_80BE91C(struct PokedexListItem* item, u8 b) { u8 taskId; - + gUnknown_02039B54 = item; taskId = CreateTask(sub_80BEA24, 0); gTasks[taskId].data[0] = 0; @@ -2473,7 +2473,7 @@ u8 sub_80BE91C(struct PokedexListItem* item, u8 b) SetBgTilemapBuffer(0, AllocZeroed(0x800)); InitWindows(gUnknown_0856E640); DeactivateAllTextPrinters(); - + return taskId; } @@ -2703,7 +2703,7 @@ void sub_80BEFD0(u8 taskId) { if (!gPaletteFade.active) { - sub_818D820(gTasks[taskId].data[4]); + FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]); switch (gUnknown_02039B4C->unk64E) { case 1: @@ -2724,7 +2724,7 @@ void sub_80BF038(u8 taskId) { if (!gPaletteFade.active) { - sub_818D820(gTasks[taskId].data[4]); + FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]); gTasks[taskId].func = sub_80BEA24; } } @@ -2733,7 +2733,7 @@ void sub_80BF070(u8 taskId) { if (!gPaletteFade.active) { - sub_818D820(gTasks[taskId].data[4]); + FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]); sub_80BEDB0(); DestroyTask(taskId); } @@ -2960,7 +2960,7 @@ void sub_80BF790(u8 taskId) if (!gPaletteFade.active) { sub_8145914(); - sub_818D820(gTasks[taskId].data[4]); + FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]); switch (gUnknown_02039B4C->unk64E) { default: @@ -3109,8 +3109,8 @@ void sub_80BFC78(u8 taskId) { if (!gPaletteFade.active) { - sub_818D820(gTasks[taskId].data[4]); - sub_818D8F0(gTasks[taskId].data[5]); + FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]); + FreeAndDestroyTrainerPicSprite(gTasks[taskId].data[5]); switch (gUnknown_02039B4C->unk64E) { default: @@ -3334,7 +3334,7 @@ void sub_80BFE38(u8 taskId) { u8 spriteId; u16 dexNum = gTasks[taskId].data[1]; - + switch (gTasks[taskId].data[0]) { case 0: @@ -3440,7 +3440,7 @@ void blockset_load_palette_to_gpu(u8 taskId) buffer = GetBgTilemapBuffer(3); if (buffer) Free(buffer); - + species = NationalPokedexNumToSpecies(gTasks[taskId].data[1]); otId = ((u16)gTasks[taskId].data[13] << 16) | (u16)gTasks[taskId].data[12]; personality = ((u16)gTasks[taskId].data[15] << 16) | (u16)gTasks[taskId].data[14]; @@ -3472,7 +3472,7 @@ void sub_80C020C(u32 num, u32 value, u32 c, u32 d) const u8 *text; const u8 *text2; const u8 *text3; - + if (d) sub_80BE8DC(gText_PokedexRegistration, GetStringCenterAlignXOffset(1, gText_PokedexRegistration, 0xF0), 0); if (value == 0) @@ -4064,7 +4064,7 @@ void sub_80C0A88(u8 windowId, const u8 *str, u8 left, u8 top) color[0] = 0; color[1] = 15; color[2] = 3; - + AddTextPrinterParameterized2(windowId, 1, left, top, 0, 0, color, -1, str); } @@ -4107,7 +4107,7 @@ void sub_80C0BF0(u8 windowId, const u8* str, u8 left, u8 top) u8 str2[11]; u8 i; u8 count; - + for (i = 0; i < 11; i++) str2[i] = CHAR_SPACE; for (count = 0; str[count] != CHAR_SPACE && count < 11; count++) @@ -4232,12 +4232,12 @@ u32 sub_80C0E68(u16 a) u16 sub_80C0E9C(u16 num, s16 x, s16 y, u16 paletteSlot) { num = NationalPokedexNumToSpecies(num); - return sub_818D7D8(num, 8, sub_80C0E68(num), TRUE, x, y, paletteSlot, 0xFFFF); + return CreateMonPicSprite_HandleDeoxys(num, 8, sub_80C0E68(num), TRUE, x, y, paletteSlot, 0xFFFF); } u16 sub_80C0EF8(u16 species, s16 x, s16 y, s8 paletteSlot) { - return sub_818D8AC(species, TRUE, x, y, paletteSlot, 0xFFFF); + return CreateTrainerPicSprite(species, TRUE, x, y, paletteSlot, 0xFFFF); } int sub_80C0F30(u8 dexMode, u8 sortMode, u8 abcGroup, u8 bodyColor, u8 type1, u8 type2) @@ -4364,7 +4364,7 @@ u8 sub_80C1258(void) void sub_80C1270(const u8 *str, u32 left, u32 top) { u8 color[3]; - + color[0] = 0; color[1] = 15; color[2] = 2; @@ -4398,7 +4398,7 @@ void sub_80C12E0(u8 taskId) DeactivateAllTextPrinters(); PutWindowTilemap(0); DecompressAndLoadBgGfxUsingHeap(3, gPokedexSearchMenu_Gfx, 0x2000, 0, 0); - + if (!IsNationalPokedexEnabled()) CopyToBgTilemapBuffer(3, gPokedexSearch2_Tilemap, 0, 0); else @@ -4450,7 +4450,7 @@ void sub_80C12E0(u8 taskId) void sub_80C152C(void) { void* tilemapBuffer; - + FreeAllWindowBuffers(); tilemapBuffer = GetBgTilemapBuffer(0); if (tilemapBuffer) @@ -4992,12 +4992,12 @@ void sub_80C2064(u8 a, u8 b) void sub_80C20F8(u8 taskId) { u16 var; - + sub_80C12B0(0x28, 0x10, 0x60, 0x50); var = gTasks[taskId].data[6] + gTasks[taskId].data[7]; sub_80C1270(gUnknown_0856EE5C[var].text2, 0x2D, 0x11); - + var = gTasks[taskId].data[8] + gTasks[taskId].data[9]; sub_80C1270(gUnknown_0856EEB4[var].text2, 0x2D, 0x21); diff --git a/src/pokemon.c b/src/pokemon.c index 7c010cd391..7dedc917f7 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5874,9 +5874,9 @@ u16 FacilityClassToPicIndex(u16 facilityClass) u16 PlayerGenderToFrontTrainerPicId(u8 playerGender) { if (playerGender != MALE) - return FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_BRENDAN); - else return FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_MAY); + else + return FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_BRENDAN); } void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality) diff --git a/src/record_mixing.c b/src/record_mixing.c index 8b21e214f8..8e85fed181 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -1635,7 +1635,7 @@ void sub_80E8260(struct UnkRecordMixingStruct2 *dst) dst->field_0[0][i].field_4 = gSaveBlock2Ptr->frontier.field_CF0[i]; dst->field_0[1][i].field_4 = gSaveBlock2Ptr->frontier.field_CF4[i]; dst->field_0[2][i].field_4 = gSaveBlock2Ptr->frontier.field_CF8[i]; - dst->field_0[3][i].field_4 = gSaveBlock2Ptr->frontier.field_D14[i]; + dst->field_0[3][i].field_4 = gSaveBlock2Ptr->frontier.field_D14[0][i]; dst->field_0[4][i].field_4 = gSaveBlock2Ptr->frontier.field_DD0[i]; dst->field_0[5][i].field_4 = gSaveBlock2Ptr->frontier.field_DDE[i]; dst->field_0[6][i].field_4 = gSaveBlock2Ptr->frontier.field_DEA[i]; diff --git a/src/starter_choose.c b/src/starter_choose.c index 36e2b121a5..c1e7eea407 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -20,6 +20,7 @@ #include "international_string_util.h" #include "trig.h" #include "scanline_effect.h" +#include "trainer_pokemon_sprites.h" #define STARTER_MON_COUNT 3 @@ -48,12 +49,6 @@ extern const u8 gStarterChoose_LabelCoords[][2]; extern const u8 gUnknown_085B1E0C[]; extern const u8 gUnknown_085B1E28[][2]; -extern void clear_scheduled_bg_copies_to_vram(void); -extern void dp13_810BB8C(void); -extern void do_scheduled_bg_tilemap_copies_to_vram(void); -extern u16 sub_818D820(u16); -extern u8 sub_818D3E4(u16 species, u32 trainerId, u32 personality, u8 flags, s16 x, s16 y, u8, u16); - // this file's functions static void MainCallback2_StarterChoose(void); static void sub_8134604(void); @@ -132,7 +127,7 @@ void CB2_ChooseStarter(void) ResetSpriteData(); ResetPaletteFade(); FreeAllSpritePalettes(); - dp13_810BB8C(); + ResetAllPicSprites(); LoadPalette(GetOverworldTextboxPalettePtr(), 0xE0, 0x20); LoadPalette(gBirchBagGrassPal, 0, 0x40); @@ -263,7 +258,7 @@ static void Task_StarterChoose5(u8 taskId) case 0: // YES // Return the starter choice and exit. gSpecialVar_Result = gTasks[taskId].tStarterSelection; - dp13_810BB8C(); + ResetAllPicSprites(); SetMainCallback2(gMain.savedCallback); break; case 1: // NO @@ -271,7 +266,7 @@ static void Task_StarterChoose5(u8 taskId) PlaySE(SE_SELECT); spriteId = gTasks[taskId].tPkmnSpriteId; FreeOamMatrix(gSprites[spriteId].oam.matrixNum); - sub_818D820(spriteId); + FreeAndDestroyMonPicSprite(spriteId); spriteId = gTasks[taskId].tCircleSpriteId; FreeOamMatrix(gSprites[spriteId].oam.matrixNum); @@ -349,7 +344,7 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) { u8 spriteId; - spriteId = sub_818D3E4(species, 8, 0, 1, x, y, 0xE, 0xFFFF); + spriteId = CreatePicSprite2(species, 8, 0, 1, x, y, 0xE, 0xFFFF); gSprites[spriteId].oam.priority = 0; return spriteId; } diff --git a/src/battle_dome_cards.c b/src/trainer_pokemon_sprites.c similarity index 52% rename from src/battle_dome_cards.c rename to src/trainer_pokemon_sprites.c index 5e659a2e89..085e66214c 100644 --- a/src/battle_dome_cards.c +++ b/src/trainer_pokemon_sprites.c @@ -1,5 +1,3 @@ - -// Includes #include "global.h" #include "sprite.h" #include "window.h" @@ -7,7 +5,10 @@ #include "constants/species.h" #include "palette.h" #include "decompress.h" -#include "battle_dome_cards.h" +#include "trainer_pokemon_sprites.h" +#include "data2.h" +#include "pokemon.h" +#include "constants/trainers.h" extern const struct CompressedSpriteSheet gMonFrontPicTable[NUM_SPECIES]; extern const struct CompressedSpriteSheet gMonBackPicTable[NUM_SPECIES]; @@ -19,11 +20,10 @@ extern const union AffineAnimCmd *const gUnknown_082FF694[]; extern const union AnimCmd *const gPlayerMonSpriteAnimsTable[]; extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[NUM_SPECIES]; extern const union AnimCmd *const *const gUnknown_0830536C[]; -extern const u8 gFacilityClassToPicIndex[]; // Static type declarations -struct BattleDomeCard +struct PicData { u8 *frames; struct SpriteFrameImage *images; @@ -33,15 +33,16 @@ struct BattleDomeCard }; // Static RAM declarations +#define PICS_COUNT 8 -static EWRAM_DATA struct SpriteTemplate gUnknown_0203CCEC = {}; -static EWRAM_DATA struct BattleDomeCard gUnknown_0203CD04[8] = {}; +static EWRAM_DATA struct SpriteTemplate sCreatingSpriteTemplate = {}; +static EWRAM_DATA struct PicData sSpritePics[PICS_COUNT] = {}; // Static ROM declarations // .rodata -static const struct BattleDomeCard gUnknown_0860B058 = {}; +static const struct PicData sDummyPicData = {}; static const struct OamData gUnknown_0860B064 = { .size = 3 @@ -53,80 +54,67 @@ static const struct OamData gUnknown_0860B06C = // .text -static void nullsub_122(struct Sprite *sprite) +static void DummyPicSpriteCallback(struct Sprite *sprite) { } -bool16 dp13_810BB8C(void) +bool16 ResetAllPicSprites(void) { int i; - for (i = 0; i < 8; i ++) - { - gUnknown_0203CD04[i] = gUnknown_0860B058; - } + for (i = 0; i < PICS_COUNT; i ++) + sSpritePics[i] = sDummyPicData; + return FALSE; } -static bool16 load_pokemon_image_TODO(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer, bool8 ignoreDeoxys) +static bool16 DecompressPic(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer, bool8 ignoreDeoxys) { if (!isTrainer) { if (isFrontPic) { if (!ignoreDeoxys) - { LoadSpecialPokePic(&gMonFrontPicTable[species], dest, species, personality, isFrontPic); - } else - { LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], dest, species, personality, isFrontPic); - } } else { if (!ignoreDeoxys) - { LoadSpecialPokePic(&gMonBackPicTable[species], dest, species, personality, isFrontPic); - } else - { LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], dest, species, personality, isFrontPic); - } } } else { if (isFrontPic) - { DecompressPicFromTable(&gTrainerFrontPicTable[species], dest, species); - } else - { DecompressPicFromTable(&gTrainerBackPicTable[species], dest, species); - } } return FALSE; } -static bool16 sub_818D09C(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer) +static bool16 DecompressPic_HandleDeoxys(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer) { - return load_pokemon_image_TODO(species, personality, isFrontPic, dest, isTrainer, FALSE); + return DecompressPic(species, personality, isFrontPic, dest, isTrainer, FALSE); } -static void sub_818D0C4(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) +static void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) { if (!isTrainer) { if (paletteTag == 0xFFFF) { - gUnknown_0203CCEC.paletteTag |= 0xFFFF; + sCreatingSpriteTemplate.paletteTag |= 0xFFFF; LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20); } else { - gUnknown_0203CCEC.paletteTag = paletteTag; + sCreatingSpriteTemplate.paletteTag = paletteTag; LoadCompressedObjectPalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality)); } } @@ -134,42 +122,34 @@ static void sub_818D0C4(u16 species, u32 otId, u32 personality, u8 paletteSlot, { if (paletteTag == 0xFFFF) { - gUnknown_0203CCEC.paletteTag |= 0xFFFF; + sCreatingSpriteTemplate.paletteTag |= 0xFFFF; LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, 0x100 + paletteSlot * 0x10, 0x20); } else { - gUnknown_0203CCEC.paletteTag = paletteTag; + sCreatingSpriteTemplate.paletteTag = paletteTag; LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]); } } } -static void sub_818D180(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer) +static void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer) { if (!isTrainer) - { LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), paletteSlot * 0x10, 0x20); - } else - { LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, paletteSlot * 0x10, 0x20); - } } -static void uns_builder_assign_animtable1(bool8 isTrainer) +static void AssignSpriteAnimsTable(bool8 isTrainer) { if (!isTrainer) - { - gUnknown_0203CCEC.anims = gPlayerMonSpriteAnimsTable; - } + sCreatingSpriteTemplate.anims = gPlayerMonSpriteAnimsTable; else - { - gUnknown_0203CCEC.anims = gUnknown_0830536C[0]; - } + sCreatingSpriteTemplate.anims = gUnknown_0830536C[0]; } -static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys) +static u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys) { u8 i; u8 *framePics; @@ -177,14 +157,14 @@ static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 persona int j; u8 spriteId; - for (i = 0; i < 8; i ++) + for (i = 0; i < PICS_COUNT; i ++) { - if (!gUnknown_0203CD04[i].active) + if (!sSpritePics[i].active) { break; } } - if (i == 8) + if (i == PICS_COUNT) { return 0xFFFF; } @@ -199,7 +179,7 @@ static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 persona Free(framePics); return 0xFFFF; } - if (load_pokemon_image_TODO(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys)) + if (DecompressPic(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys)) { // debug trap? return 0xFFFF; @@ -209,32 +189,32 @@ static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 persona images[j].data = framePics + 0x800 * j; images[j].size = 0x800; } - gUnknown_0203CCEC.tileTag = 0xFFFF; - gUnknown_0203CCEC.oam = &gUnknown_0860B064; - uns_builder_assign_animtable1(isTrainer); - gUnknown_0203CCEC.images = images; - gUnknown_0203CCEC.affineAnims = gDummySpriteAffineAnimTable; - gUnknown_0203CCEC.callback = nullsub_122; - sub_818D0C4(species, otId, personality, paletteSlot, paletteTag, isTrainer); - spriteId = CreateSprite(&gUnknown_0203CCEC, x, y, 0); + sCreatingSpriteTemplate.tileTag = 0xFFFF; + sCreatingSpriteTemplate.oam = &gUnknown_0860B064; + AssignSpriteAnimsTable(isTrainer); + sCreatingSpriteTemplate.images = images; + sCreatingSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; + sCreatingSpriteTemplate.callback = DummyPicSpriteCallback; + LoadPicPaletteByTagOrSlot(species, otId, personality, paletteSlot, paletteTag, isTrainer); + spriteId = CreateSprite(&sCreatingSpriteTemplate, x, y, 0); if (paletteTag == 0xFFFF) { gSprites[spriteId].oam.paletteNum = paletteSlot; } - gUnknown_0203CD04[i].frames = framePics; - gUnknown_0203CD04[i].images = images; - gUnknown_0203CD04[i].paletteTag = paletteTag; - gUnknown_0203CD04[i].spriteId = spriteId; - gUnknown_0203CD04[i].active = TRUE; + sSpritePics[i].frames = framePics; + sSpritePics[i].images = images; + sSpritePics[i].paletteTag = paletteTag; + sSpritePics[i].spriteId = spriteId; + sSpritePics[i].active = TRUE; return spriteId; } -static u16 sub_818D384(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) +static u16 CreatePicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) { - return oamt_spawn_poke_or_trainer_picture(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE); + return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE); } -u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +u16 CreatePicSprite2(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) { u8 *framePics; struct SpriteFrameImage *images; @@ -243,14 +223,14 @@ u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 spriteId; u8 flags2; - for (i = 0; i < 8; i ++) + for (i = 0; i < PICS_COUNT; i ++) { - if (!gUnknown_0203CD04[i].active) + if (!sSpritePics[i].active) { break; } } - if (i == 8) + if (i == PICS_COUNT) { return 0xFFFF; } @@ -274,7 +254,7 @@ u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, Free(framePics); return 0xFFFF; } - if (load_pokemon_image_TODO(species, personality, flags, framePics, FALSE, FALSE)) + if (DecompressPic(species, personality, flags, framePics, FALSE, FALSE)) { // debug trap? return 0xFFFF; @@ -284,76 +264,76 @@ u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, images[j].data = framePics + 0x800 * j; images[j].size = 0x800; } - gUnknown_0203CCEC.tileTag = 0xFFFF; - gUnknown_0203CCEC.anims = gMonAnimationsSpriteAnimsPtrTable[species]; - gUnknown_0203CCEC.images = images; + sCreatingSpriteTemplate.tileTag = 0xFFFF; + sCreatingSpriteTemplate.anims = gMonAnimationsSpriteAnimsPtrTable[species]; + sCreatingSpriteTemplate.images = images; if (flags2 == 0x01) { - gUnknown_0203CCEC.affineAnims = gUnknown_082FF694; - gUnknown_0203CCEC.oam = &gUnknown_0860B06C; + sCreatingSpriteTemplate.affineAnims = gUnknown_082FF694; + sCreatingSpriteTemplate.oam = &gUnknown_0860B06C; } else if (flags2 == 0x00) { - gUnknown_0203CCEC.affineAnims = gUnknown_082FF618; - gUnknown_0203CCEC.oam = &gUnknown_0860B06C; + sCreatingSpriteTemplate.affineAnims = gUnknown_082FF618; + sCreatingSpriteTemplate.oam = &gUnknown_0860B06C; } else { - gUnknown_0203CCEC.oam = &gUnknown_0860B064; - gUnknown_0203CCEC.affineAnims = gDummySpriteAffineAnimTable; + sCreatingSpriteTemplate.oam = &gUnknown_0860B064; + sCreatingSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; } - gUnknown_0203CCEC.callback = nullsub_122; - sub_818D0C4(species, otId, personality, paletteSlot, paletteTag, FALSE); - spriteId = CreateSprite(&gUnknown_0203CCEC, x, y, 0); + sCreatingSpriteTemplate.callback = DummyPicSpriteCallback; + LoadPicPaletteByTagOrSlot(species, otId, personality, paletteSlot, paletteTag, FALSE); + spriteId = CreateSprite(&sCreatingSpriteTemplate, x, y, 0); if (paletteTag == 0xFFFF) { gSprites[spriteId].oam.paletteNum = paletteSlot; } - gUnknown_0203CD04[i].frames = framePics; - gUnknown_0203CD04[i].images = images; - gUnknown_0203CD04[i].paletteTag = paletteTag; - gUnknown_0203CD04[i].spriteId = spriteId; - gUnknown_0203CD04[i].active = TRUE; + sSpritePics[i].frames = framePics; + sSpritePics[i].images = images; + sSpritePics[i].paletteTag = paletteTag; + sSpritePics[i].spriteId = spriteId; + sSpritePics[i].active = TRUE; return spriteId; } -static u16 sub_818D5B0(u16 spriteId) +static u16 FreeAndDestroyPicSpriteInternal(u16 spriteId) { u8 i; u8 *framePics; struct SpriteFrameImage *images; - for (i = 0; i < 8; i ++) + for (i = 0; i < PICS_COUNT; i ++) { - if (gUnknown_0203CD04[i].spriteId == spriteId) + if (sSpritePics[i].spriteId == spriteId) { break; } } - if (i == 8) + if (i == PICS_COUNT) { return 0xFFFF; } - framePics = gUnknown_0203CD04[i].frames; - images = gUnknown_0203CD04[i].images; - if (gUnknown_0203CD04[i].paletteTag != 0xFFFF) + framePics = sSpritePics[i].frames; + images = sSpritePics[i].images; + if (sSpritePics[i].paletteTag != 0xFFFF) { FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum)); } DestroySprite(&gSprites[spriteId]); Free(framePics); Free(images); - gUnknown_0203CD04[i] = gUnknown_0860B058; + sSpritePics[i] = sDummyPicData; return 0; } static u16 sub_818D65C(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId, bool8 isTrainer) { - if (sub_818D09C(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE)) + if (DecompressPic_HandleDeoxys(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE)) { return 0xFFFF; } - sub_818D180(species, otId, personality, paletteSlot, isTrainer); + LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer); return 0; } @@ -362,29 +342,29 @@ static u16 sub_818D6CC(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 *framePics; framePics = Alloc(4 * 0x800); - if (framePics && !sub_818D09C(species, personality, isFrontPic, framePics, isTrainer)) + if (framePics && !DecompressPic_HandleDeoxys(species, personality, isFrontPic, framePics, isTrainer)) { BlitBitmapRectToWindow(windowId, framePics, 0, 0, 0x40, 0x40, destX, destY, 0x40, 0x40); - sub_818D180(species, otId, personality, paletteSlot, isTrainer); + LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer); Free(framePics); return 0; } return 0xFFFF; } -static u16 sub_818D778(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys) +static u16 CreateMonPicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys) { - return oamt_spawn_poke_or_trainer_picture(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys); + return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys); } -u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) { - return sub_818D778(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE); + return CreateMonPicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE); } -u16 sub_818D820(u16 spriteId) +u16 FreeAndDestroyMonPicSprite(u16 spriteId) { - return sub_818D5B0(spriteId); + return FreeAndDestroyPicSpriteInternal(spriteId); } u16 sub_818D834(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId) @@ -397,14 +377,14 @@ u16 sub_818D864(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 de return sub_818D6CC(species, otId, personality, isFrontPic, destX, destY, paletteSlot, windowId, FALSE); } -u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) { - return sub_818D384(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE); + return CreatePicSprite_HandleDeoxys(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE); } -u16 sub_818D8F0(u16 spriteId) +u16 FreeAndDestroyTrainerPicSprite(u16 spriteId) { - return sub_818D5B0(spriteId); + return FreeAndDestroyPicSpriteInternal(spriteId); } u16 sub_818D904(u16 species, bool8 isFrontPic, u8 paletteSlot, u8 windowId) @@ -417,17 +397,17 @@ u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteS return sub_818D6CC(species, 0, 0, isFrontPic, destX, destY, paletteSlot, windowId, TRUE); } -u8 sub_818D97C(u8 a0, u8 a1) +u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass) { - if (a1 == 1) + if (getClass == TRUE) { - switch (a0) + switch (gender) { - default: - return gFacilityClassToPicIndex[0x3F]; - case 0: - return gFacilityClassToPicIndex[0x3C]; + default: + return gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_MAY]; + case MALE: + return gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_BRENDAN]; } } - return a0; + return gender; } diff --git a/sym_ewram.txt b/sym_ewram.txt index cb887bd901..05c5a59503 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -633,7 +633,7 @@ gFacilityTrainerMons: @ 203BC8C .include "src/pokeblock_feed.o" .include "src/intro_credits_graphics.o" .include "src/recorded_battle.o" - .include "src/battle_dome_cards.o" + .include "src/trainer_pokemon_sprites.o" .include "src/lilycove_lady.o" gUnknown_0203CD70: @ 203CD70 From 239c56496b2bc88f485b6305ddce44155735410b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 19 Aug 2018 17:13:05 +0200 Subject: [PATCH 120/174] This is impossible --- asm/battle_frontier_1.s | 60 +++---- include/pokemon.h | 1 + src/battle_frontier_1.c | 388 +++++++++++++++++++++++++++++++++++++++- 3 files changed, 413 insertions(+), 36 deletions(-) diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index f1508c2970..f18f5dbf68 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -101,7 +101,7 @@ _08192598: ldr r3, [sp, 0x24] cmp r3, r0 bne _081925AC - bl sub_8195910 + bl GetDomeBrainTrainerPicId b _081925B2 .pool _081925AC: @@ -316,7 +316,7 @@ _08192784: ldr r1, [sp, 0x24] cmp r1, r0 bne _08192798 - bl sub_8195924 + bl GetDomeBrainTrainerClass b _0819279E .pool _08192798: @@ -373,7 +373,7 @@ _08192800: bne _08192824 ldr r4, =gStringVar2 adds r0, r4, 0 - bl sub_8195938 + bl CopyDomeBrainTrainerName adds r0, r5, 0 adds r1, r4, 0 bl StringAppend @@ -383,7 +383,7 @@ _08192824: ldr r4, =gStringVar2 ldr r1, [sp, 0x24] adds r0, r4, 0 - bl sub_8195898 + bl CopyDomeOpponentName adds r0, r5, 0 adds r1, r4, 0 bl StringAppend @@ -1296,13 +1296,13 @@ _08192F9C: cmp r0, r9 bne _08192FB0 ldr r0, =gStringVar1 - bl sub_8195938 + bl CopyDomeBrainTrainerName b _08192FB8 .pool _08192FB0: lsrs r1, 22 ldr r0, =gStringVar1 - bl sub_8195898 + bl CopyDomeOpponentName _08192FB8: movs r2, 0x1 add r8, r2 @@ -1442,13 +1442,13 @@ _081930E0: cmp r1, r0 bne _081930F8 ldr r0, =gStringVar1 - bl sub_8195938 + bl CopyDomeBrainTrainerName b _08193100 .pool _081930F8: lsrs r1, 22 ldr r0, =gStringVar1 - bl sub_8195898 + bl CopyDomeOpponentName _08193100: mov r0, r8 cmp r0, 0x2 @@ -1683,7 +1683,7 @@ _081932D4: ldr r0, =0x000003fe cmp r1, r0 bne _081932E4 - bl sub_8195910 + bl GetDomeBrainTrainerPicId b _081932EC .pool _081932E4: @@ -1765,7 +1765,7 @@ _08193388: ldr r0, =0x000003fe cmp r1, r0 bne _081933A4 - bl sub_8195910 + bl GetDomeBrainTrainerPicId lsls r0, 24 lsrs r0, 24 ldr r2, [sp, 0x7C] @@ -2207,14 +2207,14 @@ _0819375C: cmp r1, r0 bne _08193774 ldr r0, =gStringVar1 - bl sub_8195938 + bl CopyDomeBrainTrainerName b _0819377E .pool _08193774: ldr r0, =gStringVar1 lsls r1, 16 lsrs r1, 16 - bl sub_8195898 + bl CopyDomeOpponentName _0819377E: add r0, sp, 0xC movs r4, 0x2 @@ -2262,14 +2262,14 @@ _081937E4: cmp r1, r0 bne _081937F8 adds r0, r5, 0 - bl sub_8195938 + bl CopyDomeBrainTrainerName b _08193802 .pool _081937F8: lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 - bl sub_8195898 + bl CopyDomeOpponentName _08193802: ldr r0, =gStringVar1 str r0, [sp, 0xC] @@ -3800,7 +3800,7 @@ _0819456C: lsls r1, 22 lsrs r1, 22 ldr r0, =gDisplayedStringBattle - bl sub_8195898 + bl CopyDomeOpponentName mov r2, r10 cmp r2, 0x1 bne _081945C4 @@ -4342,7 +4342,7 @@ _08194A1C: lsls r1, 22 lsrs r1, 22 mov r0, r9 - bl sub_8195898 + bl CopyDomeOpponentName mov r0, r8 ldr r2, [r0] adds r0, r2, r5 @@ -4895,7 +4895,7 @@ _08194F2A: ldrh r1, [r1] lsls r1, 22 lsrs r1, 22 - bl sub_8195898 + bl CopyDomeOpponentName pop {r4} pop {r0} bx r0 @@ -6041,8 +6041,8 @@ _0819587E: .pool thumb_func_end sub_8195438 - thumb_func_start sub_8195898 -sub_8195898: @ 8195898 + thumb_func_start CopyDomeOpponentName +CopyDomeOpponentName: @ 8195898 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 @@ -6053,7 +6053,7 @@ sub_8195898: @ 8195898 cmp r5, r0 bne _081958B8 adds r0, r6, 0 - bl sub_8195938 + bl CopyDomeBrainTrainerName b _08195902 .pool _081958B8: @@ -6099,30 +6099,30 @@ _08195902: pop {r0} bx r0 .pool - thumb_func_end sub_8195898 + thumb_func_end CopyDomeOpponentName - thumb_func_start sub_8195910 -sub_8195910: @ 8195910 + thumb_func_start GetDomeBrainTrainerPicId +GetDomeBrainTrainerPicId: @ 8195910 ldr r0, =gTrainers ldr r1, =0x00007df3 adds r0, r1 ldrb r0, [r0] bx lr .pool - thumb_func_end sub_8195910 + thumb_func_end GetDomeBrainTrainerPicId - thumb_func_start sub_8195924 -sub_8195924: @ 8195924 + thumb_func_start GetDomeBrainTrainerClass +GetDomeBrainTrainerClass: @ 8195924 ldr r0, =gTrainers ldr r1, =0x00007df1 adds r0, r1 ldrb r0, [r0] bx lr .pool - thumb_func_end sub_8195924 + thumb_func_end GetDomeBrainTrainerClass - thumb_func_start sub_8195938 -sub_8195938: @ 8195938 + thumb_func_start CopyDomeBrainTrainerName +CopyDomeBrainTrainerName: @ 8195938 push {r4,lr} adds r3, r0, 0 movs r2, 0 @@ -6142,7 +6142,7 @@ _08195940: pop {r0} bx r0 .pool - thumb_func_end sub_8195938 + thumb_func_end CopyDomeBrainTrainerName thumb_func_start sub_8195960 sub_8195960: @ 8195960 diff --git a/include/pokemon.h b/include/pokemon.h index a60ad66bed..09496b5c3d 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -456,6 +456,7 @@ extern const u8 gStatStageRatios[][2]; extern const u16 gUnknown_08329D54[]; extern const struct SpriteTemplate gUnknown_08329D98[]; extern const struct CompressedSpritePalette gMonPaletteTable[]; +extern const s8 gNatureStatTable[][5]; void ZeroBoxMonData(struct BoxPokemon *boxMon); void ZeroMonData(struct Pokemon *mon); diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index a1d8b2c317..692f942fc9 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -20,6 +20,8 @@ #include "menu.h" #include "sound.h" #include "pokemon_icon.h" +#include "data2.h" +#include "international_string_util.h" #include "trainer_pokemon_sprites.h" #include "constants/species.h" #include "constants/moves.h" @@ -54,12 +56,16 @@ extern u32 sub_81A39C4(void); extern u16 sub_8162548(u8, u8); extern u16 RandomizeFacilityTrainerMonId(u16); extern u8 GetFrontierEnemyMonLevel(void); -extern void sub_8195898(u8 *dst, u16 trainerId); +extern void CopyDomeOpponentName(u8 *dst, u16 trainerId); extern u16 sub_81A5060(u8, u8); +extern u8 sub_81A50F0(u8, u8); +extern u8 sub_81A50B0(u8); extern void sub_8162614(u16, u8); extern void sub_81A4C30(void); extern bool8 sub_81A3610(void); extern u16 sub_81A4FF0(u8); +extern u8 GetFrontierTrainerFrontSpriteId(u16); +extern u8 GetFrontierOpponentClass(u16); extern u8 gUnknown_0203CEF8[]; extern u32 gUnknown_0203CD70; @@ -90,8 +96,17 @@ extern const u8 gUnknown_0860D080[]; extern const u8 gUnknown_0860D15C[]; extern const u8 gUnknown_0860D1A0[]; extern const u8 gUnknown_0860D19C[]; +extern const u8 gUnknown_0860D349[]; extern const u8 gUnknown_0860D1C0[]; +extern const u8 gUnknown_0860D343[]; +extern const u8 gUnknown_0860D340[]; +extern const u8 gUnknown_0860D346[]; +extern const u8 gUnknown_0860B358[][16]; +extern const u8 gUnknown_0860C988[31][16]; extern const u8 gUnknown_0860D3F1[][2]; +extern const u8 *const gBattleDomePotentialPointers[]; +extern const u8 *const gBattleDomeOpponentStylePointers[]; +extern const u8 *const gBattleDomeOpponentStatsPointers[]; // gfx extern const u8 gUnknown_08D83D50[]; @@ -102,6 +117,9 @@ extern const u8 gUnknown_08D85358[]; extern const u8 gUnknown_08D85600[]; extern const u8 gUnknown_08D854C8[]; +// text +extern const u8 gTrainerClassNames[][0xD]; + // This file's functions. u8 GetDomeTrainerMonIvs(u16 trainerId); void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray); @@ -120,9 +138,13 @@ void sub_8194220(u8 taskId); void sub_8194B54(void); void sub_8194B70(void); void sub_819314C(u8, u8); -void sub_81924E0(u8, u8); +void sub_81924E0(u8, u8 trainerTournamentId); u8 sub_819221C(u8 taskId); s32 sub_8192F08(u8, u8*); +u8 GetDomeBrainTrainerPicId(void); +u8 GetDomeBrainTrainerClass(void); +void CopyDomeBrainTrainerName(u8 *dst); +void CopyDomeOpponentName(u8 *dst, u16 trainerId); // code void sub_818E9AC(void) @@ -549,7 +571,7 @@ void sub_818F9B0(void) void sub_818F9E0(void) { StringCopy(gStringVar1, gRoundsStringTable[gSaveBlock2Ptr->frontier.field_CB2]); - sub_8195898(gStringVar2, gTrainerBattleOpponent_A); + CopyDomeOpponentName(gStringVar2, gTrainerBattleOpponent_A); } void sub_818FA20(void) @@ -2444,9 +2466,363 @@ u8 sub_819221C(u8 taskId) return retVal; } -/* -void sub_81924E0(u8 arg0, u8 arg1) +void sub_81924E0(u8 arg0, u8 trainerTournamentId) { + s32 i, j, k; + s16 *allocatedArray; + struct TextSubPrinter textPrinter; + s32 trainerId; + s32 windowId; + s32 x, y; + u8 palSlot; + u8 nature; + j = 0; + windowId = 0; + x = 0; + y = 0; + palSlot = 0; + allocatedArray = AllocZeroed(sizeof(s16) * 18); + trainerId = gSaveBlock2Ptr->frontier.domeTrainers[trainerTournamentId].trainerId; + + if (arg0 & 1) + j = 8, windowId = 9, palSlot = 2; + if (arg0 & 2) + x = 256; + if (arg0 & 4) + y = 160; + if (arg0 & 8) + x = -256; + if (arg0 & 0x10) + y = -160; + + if (trainerId == TRAINER_PLAYER) + gUnknown_0203CD78->arr[j] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + else if (trainerId == TRAINER_FRONTIER_BRAIN) + gUnknown_0203CD78->arr[j] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + else + gUnknown_0203CD78->arr[j] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + + if (arg0 & 0x1E) + gSprites[gUnknown_0203CD78->arr[j]].invisible = 1; + + for (i = 0; i < 3; i++) + { + if (trainerId == TRAINER_PLAYER) + gUnknown_0203CD78->arr[i + 2 + j] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], + sub_8190938, + x | gUnknown_0860D340[i], + y + gUnknown_0860D343[i], + 0, 0, TRUE); + else if (trainerId == TRAINER_FRONTIER_BRAIN) + gUnknown_0203CD78->arr[i + 2 + j] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], + sub_8190938, + x | gUnknown_0860D340[i], + y + gUnknown_0860D343[i], + 0, 0, TRUE); + else + gUnknown_0203CD78->arr[i + 2 + j] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species, + sub_8190938, + x | gUnknown_0860D340[i], + y + gUnknown_0860D343[i], + 0, 0, TRUE); + gSprites[gUnknown_0203CD78->arr[i + 2 + j]].oam.priority = 0; + if (arg0 & 0x1E) + gSprites[gUnknown_0203CD78->arr[i + 2 + j]].invisible = 1; + } + textPrinter.fontId = 2; + textPrinter.x = 0; + textPrinter.y = 0; + textPrinter.currentX = 0; + textPrinter.currentY = 0; + textPrinter.letterSpacing = 2; + textPrinter.lineSpacing = 0; + textPrinter.fontColor_l = 0; + textPrinter.fgColor = 14; + textPrinter.bgColor = 0; + textPrinter.shadowColor = 13; + + i = 0; + if (trainerId == TRAINER_PLAYER) + j = gFacilityClassToTrainerClass[FACILITY_CLASS_PKMN_TRAINER_BRENDAN]; + else if (trainerId == TRAINER_FRONTIER_BRAIN) + j = GetDomeBrainTrainerClass(); + else + j = GetFrontierOpponentClass(trainerId); + + for (;gTrainerClassNames[j][i] != EOS; i++) + gStringVar1[i] = gTrainerClassNames[j][i]; + gStringVar1[i] = CHAR_SPACE; + gStringVar1[i + 1] = EOS; + + if (trainerId == TRAINER_PLAYER) + { + StringAppend(gStringVar1, gSaveBlock2Ptr->playerName); + } + else if (trainerId == TRAINER_FRONTIER_BRAIN) + { + CopyDomeBrainTrainerName(gStringVar2); + StringAppend(gStringVar1, gStringVar2); + } + else + { + CopyDomeOpponentName(gStringVar2, trainerId); + StringAppend(gStringVar1, gStringVar2); + } + + textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, gStringVar1, 0xD0, textPrinter.letterSpacing); + textPrinter.current_text_offset = gStringVar1; + textPrinter.windowId = windowId; + PutWindowTilemap(windowId); + CopyWindowToVram(windowId, 3); + AddTextPrinter(&textPrinter, 0, NULL); + textPrinter.letterSpacing = 0; + + for (i = 0; i < 3; i++) + { + textPrinter.currentY = gUnknown_0860D346[i]; + if (trainerId == TRAINER_PLAYER) + textPrinter.current_text_offset = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]]; + else if (trainerId == TRAINER_FRONTIER_BRAIN) + textPrinter.current_text_offset = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]]; + else + textPrinter.current_text_offset = gSpeciesNames[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species]; + + textPrinter.windowId = windowId + i + 1; + if (i == 1) + textPrinter.currentX = 7; + else + textPrinter.currentX = 0; + + j = i + 1; + PutWindowTilemap(windowId + j); + CopyWindowToVram(windowId + j, 3); + AddTextPrinter(&textPrinter, 0, NULL); + } + + PutWindowTilemap(windowId + 4); + CopyWindowToVram(windowId + 4, 3); + if (trainerId == TRAINER_FRONTIER_BRAIN) + textPrinter.current_text_offset = gBattleDomePotentialPointers[16]; + else + textPrinter.current_text_offset = gBattleDomePotentialPointers[trainerTournamentId]; + + textPrinter.fontId = 1; + textPrinter.windowId = windowId + 4; + textPrinter.currentX = 0; + textPrinter.y = 4; + textPrinter.currentY = 4; + AddTextPrinter(&textPrinter, 0, NULL); + + for (i = 0; i < 3; i++) + { + for (j = 0; j < 4; j++) + { + for (k = 0; k < DOME_TOURNAMENT_TRAINERS_COUNT; k++) + { + if (trainerId == TRAINER_FRONTIER_BRAIN) + allocatedArray[k] += gUnknown_0860B358[sub_81A5060(i, j)][k]; + else if (trainerId == TRAINER_PLAYER) + allocatedArray[k] += gUnknown_0860B358[gSaveBlock2Ptr->frontier.field_EFC[i].moves[j]][k]; + else + allocatedArray[k] += gUnknown_0860B358[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].moves[j]][k]; + } + } + } + + for (i = 0; i < ARRAY_COUNT(gUnknown_0860C988); i++) + { + s32 r4 = 0; + + for (k = 0, j = 0; j < DOME_TOURNAMENT_TRAINERS_COUNT; j++) + { + if (gUnknown_0860C988[i][j] != 0) + { + r4++; + if (allocatedArray[j] != 0 && allocatedArray[j] >= gUnknown_0860C988[i][j]) + k++; + } + } + if (r4 == k) + break; + } + + textPrinter.current_text_offset = gBattleDomeOpponentStylePointers[i]; + textPrinter.y = 20; + textPrinter.currentY = 20; + AddTextPrinter(&textPrinter, 0, NULL); + + for (i = 0; i < 18; i++) + allocatedArray[i] = 0; + + if (trainerId == TRAINER_FRONTIER_BRAIN || trainerId == TRAINER_PLAYER) + { + for (i = 0; i < 3; i++) + { + for (j = 0; j < 6; j++) + { + if (trainerId == TRAINER_FRONTIER_BRAIN) + allocatedArray[j] = sub_81A50F0(i, j); + else + allocatedArray[j] = gSaveBlock2Ptr->frontier.field_EFC[i].evs[j]; + } + allocatedArray[6] += allocatedArray[0]; + for (j = 0; j < 5; j++) + { + if (trainerId == TRAINER_FRONTIER_BRAIN) + nature = sub_81A50B0(i); + else + nature = gSaveBlock2Ptr->frontier.field_EFC[i].nature; + + if (gNatureStatTable[nature][j] > 0) + { + allocatedArray[j + 7] += (allocatedArray[j + 1] * 110) / 100; + } + else if (gNatureStatTable[nature][j] < 0) + { + allocatedArray[j + 7] += (allocatedArray[j + 1] * 90) / 100; + allocatedArray[j + 13]++; + } + else + { + allocatedArray[j + 7] += allocatedArray[j + 1]; + } + } + } + for (j = 0, i = 0; i < 6; i++) + j += allocatedArray[6 + i]; + for (i = 0; i < 6; i++) + allocatedArray[i] = (allocatedArray[6 + i] * 100) / j; + } + else + { + for (i = 0; i < 3; i++) + { + s32 evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].evSpread; + for (k = 0, j = 0; j < 6; j++) + { + allocatedArray[j] = 0; + if (evBits & 1) + k++; + evBits >>= 1; + } + k = 510 / k; + evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].evSpread; + for (j = 0; j < 6; j++) + { + if (evBits & 1) + allocatedArray[j] = k; + evBits >>= 1; + } + + allocatedArray[6] += allocatedArray[0]; + for (j = 0; j < 5; j++) + { + nature = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].nature; + if (gNatureStatTable[nature][j] > 0) + { + allocatedArray[j + 7] += (allocatedArray[j + 1] * 110) / 100; + } + else if (gNatureStatTable[nature][j] < 0) + { + allocatedArray[j + 7] += (allocatedArray[j + 1] * 90) / 100; + allocatedArray[j + 13]++; + } + else + { + allocatedArray[j + 7] += allocatedArray[j + 1]; + } + } + } + for (j = 0, i = 0; i < 6; i++) + j += allocatedArray[i + 6]; + for (i = 0; i < 6; i++) + allocatedArray[i] = (allocatedArray[6 + i] * 100) / j; + } + + for (i = 0, j = 0, k = 0; k < 6; k++) + { + if (allocatedArray[k] > 29) + { + if (i == 2) + { + if (allocatedArray[6] < allocatedArray[k]) + { + s16 var_24 = allocatedArray[7]; + if (allocatedArray[7] < allocatedArray[k]) + { + if (allocatedArray[6] < allocatedArray[7]) + { + allocatedArray[6] = var_24; + allocatedArray[7] = k; + } + else + { + allocatedArray[7] = k; + } + } + else + { + allocatedArray[6] = var_24; + allocatedArray[7] = k; + } + } + else + { + if (allocatedArray[7] < allocatedArray[k]) + allocatedArray[7] = k; + } + } + else + { + allocatedArray[i + 7] = k; + i++; + } + } + if (allocatedArray[k] == 0) + { + if (j == 2) + { + if (allocatedArray[k + 12] >= 2 + || ((allocatedArray[k + 12] == 1 && (allocatedArray[12 + allocatedArray[8]] != 0 || allocatedArray[12 + allocatedArray[9]] == 0)) + ) + ) + { + allocatedArray[8] = allocatedArray[9]; + allocatedArray[9] = k; + } + else if (allocatedArray[k + 12] == 1 && allocatedArray[12 + allocatedArray[8]] == 0) + { + allocatedArray[8] = allocatedArray[9]; + allocatedArray[9] = k; + } + else if (allocatedArray[k + 12] == 1 && allocatedArray[12 + allocatedArray[9]] == 0) + { + allocatedArray[9] = k; + } + } + else + { + allocatedArray[j + 8] = k; + j++; + } + } + } + + if (i == 2) + i = gUnknown_0860D349[allocatedArray[6]] + (allocatedArray[7] - (allocatedArray[6] + 1)); + else if (i == 1) + i = allocatedArray[6] + 15; + else if (j == 2) + i = gUnknown_0860D349[allocatedArray[8]] + (allocatedArray[9] - (allocatedArray[8] + 1)) + 21; + else if (j == 1) + i = allocatedArray[8] + 36; + else + i = 42; + + textPrinter.current_text_offset = gBattleDomeOpponentStatsPointers[i]; + textPrinter.y = 36; + textPrinter.currentY = 36; + AddTextPrinter(&textPrinter, 0, NULL); + Free(allocatedArray); } -*/ From 4a0f7398ece5d07e432c555ed75106554db8f97c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 19 Aug 2018 20:21:37 +0200 Subject: [PATCH 121/174] Cant believe Ive matched this --- asm/battle_frontier_1.s | 1225 --------------------------------------- src/battle_frontier_1.c | 146 ++--- 2 files changed, 73 insertions(+), 1298 deletions(-) diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index f18f5dbf68..d662e47419 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -5,1231 +5,6 @@ .text - - thumb_func_start sub_81924E0 -sub_81924E0: @ 81924E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x20] - movs r5, 0 - movs r0, 0 - str r0, [sp, 0x28] - movs r1, 0 - str r1, [sp, 0x2C] - movs r2, 0 - str r2, [sp, 0x30] - movs r4, 0 - movs r0, 0x24 - bl AllocZeroed - mov r8, r0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r3, [sp, 0x20] - lsls r0, r3, 2 - adds r0, r1, r0 - ldr r2, =0x00000d24 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - str r0, [sp, 0x24] - movs r0, 0x1 - ldr r3, [sp, 0x1C] - ands r0, r3 - cmp r0, 0 - beq _08192538 - movs r5, 0x8 - movs r4, 0x9 - str r4, [sp, 0x28] - movs r4, 0x2 -_08192538: - movs r0, 0x2 - ldr r2, [sp, 0x1C] - ands r0, r2 - cmp r0, 0 - beq _08192548 - movs r3, 0x80 - lsls r3, 1 - str r3, [sp, 0x2C] -_08192548: - movs r0, 0x4 - ldr r2, [sp, 0x1C] - ands r0, r2 - cmp r0, 0 - beq _08192556 - movs r3, 0xA0 - str r3, [sp, 0x30] -_08192556: - movs r0, 0x8 - ldr r2, [sp, 0x1C] - ands r0, r2 - cmp r0, 0 - beq _08192564 - ldr r3, =0xffffff00 - str r3, [sp, 0x2C] -_08192564: - movs r0, 0x10 - ldr r2, [sp, 0x1C] - ands r0, r2 - cmp r0, 0 - beq _08192574 - movs r3, 0xA0 - negs r3, r3 - str r3, [sp, 0x30] -_08192574: - ldr r0, =0x000003ff - ldr r2, [sp, 0x24] - cmp r2, r0 - bne _08192598 - ldrb r0, [r1, 0x8] - bl PlayerGenderToFrontTrainerPicId - lsls r0, 16 - lsrs r0, 16 - b _081925B6 - .pool -_08192598: - ldr r0, =0x000003fe - ldr r3, [sp, 0x24] - cmp r3, r0 - bne _081925AC - bl GetDomeBrainTrainerPicId - b _081925B2 - .pool -_081925AC: - ldr r0, [sp, 0x24] - bl GetFrontierTrainerFrontSpriteId -_081925B2: - lsls r0, 24 - lsrs r0, 24 -_081925B6: - ldr r2, [sp, 0x2C] - adds r2, 0x30 - ldr r3, [sp, 0x30] - adds r3, 0x40 - adds r1, r4, 0 - adds r1, 0xC - str r1, [sp] - ldr r1, =0x0000ffff - str r1, [sp, 0x4] - movs r1, 0x1 - bl CreateTrainerPicSprite - ldr r1, =gUnknown_0203CD78 - ldr r1, [r1] - adds r1, r5 - strb r0, [r1] - movs r0, 0x1E - ldr r4, [sp, 0x1C] - ands r0, r4 - cmp r0, 0 - beq _081925FC - ldr r2, =gSprites - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_081925FC: - movs r7, 0 - ldr r0, [sp, 0x20] - lsls r0, 1 - str r0, [sp, 0x3C] - adds r1, r5, 0x2 - ldr r2, [sp, 0x28] - lsls r2, 24 - str r2, [sp, 0x44] - ldr r3, [sp, 0x28] - adds r3, 0x4 - str r3, [sp, 0x40] - ldr r4, [sp, 0x20] - adds r0, r4 - ldr r6, =gUnknown_0203CD78 - ldr r2, =gSprites - mov r10, r2 - adds r4, r1, 0 - lsls r5, r0, 1 - movs r3, 0 - mov r9, r3 -_08192624: - ldr r0, =0x000003ff - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192660 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d64 - adds r0, r2 - adds r0, r5 - ldrh r0, [r0] - ldr r1, =gUnknown_0860D340 - adds r1, r7, r1 - ldrb r2, [r1] - ldr r3, [sp, 0x2C] - orrs r2, r3 - b _081926B0 - .pool -_08192660: - ldr r0, =0x000003fe - ldr r3, [sp, 0x24] - cmp r3, r0 - bne _08192690 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000d64 - adds r0, r1 - adds r0, r5 - ldrh r0, [r0] - ldr r1, =gUnknown_0860D340 - adds r1, r7, r1 - ldrb r2, [r1] - ldr r3, [sp, 0x2C] - orrs r2, r3 - b _081926B0 - .pool -_08192690: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d64 - adds r0, r3 - adds r0, r5 - ldrh r1, [r0] - ldr r0, =gFacilityTrainerMons - ldr r0, [r0] - lsls r1, 4 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =gUnknown_0860D340 - adds r1, r7, r1 - ldrb r2, [r1] - ldr r1, [sp, 0x2C] - orrs r2, r1 -_081926B0: - ldr r1, =gUnknown_0860D343 - adds r1, r7, r1 - ldrb r3, [r1] - ldr r1, [sp, 0x30] - adds r3, r1 - mov r1, r9 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - ldr r1, =sub_8190938 - bl CreateMonIcon - ldr r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrb r1, [r0, 0x5] - movs r2, 0xD - negs r2, r2 - ands r1, r2 - strb r1, [r0, 0x5] - movs r0, 0x1E - ldr r3, [sp, 0x1C] - ands r0, r3 - cmp r0, 0 - beq _0819270A - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0819270A: - adds r4, 0x1 - adds r5, 0x2 - adds r7, 0x1 - cmp r7, 0x2 - ble _08192624 - add r0, sp, 0xC - movs r2, 0 - movs r3, 0x2 - strb r3, [r0, 0x5] - strb r2, [r0, 0x6] - strb r2, [r0, 0x7] - adds r1, r0, 0 - adds r0, r2, 0 - strb r0, [r1, 0x8] - adds r0, r1, 0 - ldrb r0, [r0, 0x7] - strb r0, [r1, 0x9] - adds r0, r1, 0 - strb r3, [r0, 0xA] - strb r2, [r0, 0xB] - adds r3, r0, 0 - ldrb r2, [r3, 0xC] - movs r1, 0x10 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - adds r2, r3, 0 - movs r0, 0xE0 - strb r0, [r2, 0xC] - ldrb r0, [r2, 0xD] - ands r1, r0 - strb r1, [r2, 0xD] - adds r1, r2, 0 - movs r0, 0xD0 - strb r0, [r1, 0xD] - movs r7, 0 - ldr r0, =0x000003ff - ldr r4, [sp, 0x24] - cmp r4, r0 - bne _08192784 - ldr r0, =gFacilityClassToTrainerClass - adds r0, 0x3C - ldrb r5, [r0] - b _081927A2 - .pool -_08192784: - ldr r0, =0x000003fe - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192798 - bl GetDomeBrainTrainerClass - b _0819279E - .pool -_08192798: - ldr r0, [sp, 0x24] - bl GetFrontierOpponentClass -_0819279E: - lsls r0, 24 - lsrs r5, r0, 24 -_081927A2: - ldr r2, =gTrainerClassNames - movs r0, 0xD - adds r1, r5, 0 - muls r1, r0 - adds r0, r7, r1 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0xFF - beq _081927CA - ldr r3, =gStringVar1 - adds r0, r1, r2 - adds r2, r7, r0 -_081927BA: - adds r0, r7, r3 - ldrb r1, [r2] - strb r1, [r0] - adds r2, 0x1 - adds r7, 0x1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _081927BA -_081927CA: - ldr r5, =gStringVar1 - adds r1, r7, r5 - movs r0, 0 - strb r0, [r1] - adds r0, r7, 0x1 - adds r0, r5 - movs r1, 0xFF - strb r1, [r0] - ldr r0, =0x000003ff - ldr r2, [sp, 0x24] - cmp r2, r0 - bne _08192800 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r5, 0 - bl StringAppend - b _08192836 - .pool -_08192800: - ldr r0, =0x000003fe - ldr r3, [sp, 0x24] - cmp r3, r0 - bne _08192824 - ldr r4, =gStringVar2 - adds r0, r4, 0 - bl CopyDomeBrainTrainerName - adds r0, r5, 0 - adds r1, r4, 0 - bl StringAppend - b _08192836 - .pool -_08192824: - ldr r4, =gStringVar2 - ldr r1, [sp, 0x24] - adds r0, r4, 0 - bl CopyDomeOpponentName - adds r0, r5, 0 - adds r1, r4, 0 - bl StringAppend -_08192836: - add r0, sp, 0xC - ldrb r0, [r0, 0x5] - ldr r4, =gStringVar1 - add r1, sp, 0xC - ldrb r3, [r1, 0xA] - adds r1, r4, 0 - movs r2, 0xD0 - bl GetStringCenterAlignXOffsetWithLetterSpacing - add r1, sp, 0xC - movs r5, 0 - strb r0, [r1, 0x8] - str r4, [sp, 0xC] - adds r0, r1, 0 - add r4, sp, 0x28 - ldrb r4, [r4] - strb r4, [r0, 0x4] - ldr r0, [sp, 0x44] - lsrs r4, r0, 24 - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add r0, sp, 0xC - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - add r0, sp, 0xC - strb r5, [r0, 0xA] - movs r7, 0 - adds r6, r0, 0 - ldr r1, [sp, 0x3C] - ldr r2, [sp, 0x20] - adds r0, r1, r2 - lsls r0, 1 - mov r9, r0 - movs r3, 0xB - mov r10, r3 -_0819288A: - ldr r0, =gUnknown_0860D346 - adds r0, r7, r0 - ldrb r0, [r0] - strb r0, [r6, 0x9] - ldr r0, =0x000003ff - ldr r4, [sp, 0x24] - cmp r4, r0 - bne _081928C0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - lsls r0, r7, 1 - add r0, r9 - ldr r2, =0x00000d64 - adds r1, r2 - b _081928FA - .pool -_081928C0: - ldr r0, =0x000003fe - ldr r4, [sp, 0x24] - cmp r4, r0 - bne _081928E4 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - lsls r0, r7, 1 - add r0, r9 - ldr r2, =0x00000d64 - adds r1, r2 - b _081928FA - .pool -_081928E4: - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - lsls r0, r7, 1 - add r0, r9 - ldr r2, =0x00000d64 - adds r1, r2 - adds r1, r0 - ldrh r1, [r1] - ldr r0, =gFacilityTrainerMons - ldr r0, [r0] - lsls r1, 4 -_081928FA: - adds r1, r0 - ldrh r0, [r1] - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - ldr r1, =gSpeciesNames - adds r0, r1 - str r0, [sp, 0xC] - adds r0, r7, 0x1 - ldr r4, [sp, 0x28] - adds r0, r4 - movs r1, 0 - strb r0, [r6, 0x4] - cmp r7, 0x1 - bne _08192930 - movs r0, 0x7 - strb r0, [r6, 0x8] - b _08192932 - .pool -_08192930: - strb r1, [r6, 0x8] -_08192932: - adds r5, r7, 0x1 - ldr r0, [sp, 0x28] - adds r4, r5, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add r0, sp, 0xC - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - adds r7, r5, 0 - cmp r7, 0x2 - ble _0819288A - ldr r4, [sp, 0x40] - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =0x000003fe - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192980 - ldr r0, =gBattleDomePotentialPointers - ldr r0, [r0, 0x40] - b _0819298A - .pool -_08192980: - ldr r0, =gBattleDomePotentialPointers - ldr r2, [sp, 0x20] - lsls r1, r2, 2 - adds r1, r0 - ldr r0, [r1] -_0819298A: - str r0, [sp, 0xC] - add r1, sp, 0xC - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x5] - adds r0, r1, 0 - add r3, sp, 0x40 - ldrb r3, [r3] - strb r3, [r0, 0x4] - strb r2, [r0, 0x8] - movs r1, 0x4 - strb r1, [r0, 0x7] - strb r1, [r0, 0x9] - movs r1, 0 - bl AddTextPrinter - movs r7, 0 - ldr r3, =gUnknown_0860B358 -_081929AE: - movs r5, 0 - adds r4, r7, 0x1 - str r4, [sp, 0x38] - lsls r0, r7, 1 - str r0, [sp, 0x34] - lsls r2, r7, 4 -_081929BA: - movs r6, 0 - lsls r1, r5, 1 - mov r10, r1 - mov r4, r8 - mov r9, r2 -_081929C4: - ldr r0, =0x000003fe - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192A00 - lsls r0, r7, 24 - lsls r1, r5, 24 - lsrs r0, 24 - lsrs r1, 24 - str r2, [sp, 0x48] - str r3, [sp, 0x4C] - bl sub_81A5060 - lsls r0, 16 - lsrs r0, 12 - adds r0, r6, r0 - ldr r3, [sp, 0x4C] - adds r0, r3 - ldrh r1, [r4] - ldrb r0, [r0] - adds r1, r0 - strh r1, [r4] - ldr r2, [sp, 0x48] - b _08192A58 - .pool -_08192A00: - ldr r0, =0x000003ff - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192A20 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000efc - adds r0, r1 - add r0, r9 - b _08192A48 - .pool -_08192A20: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - mov r12, r0 - ldr r0, [sp, 0x3C] - ldr r1, [sp, 0x20] - adds r0, r1 - str r0, [sp, 0x50] - lsls r0, 1 - ldr r1, [sp, 0x34] - adds r0, r1, r0 - ldr r1, =0x00000d64 - add r1, r12 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =gFacilityTrainerMons - ldr r1, [r1] - lsls r0, 4 - adds r0, r1 - adds r0, 0x2 - add r0, r10 -_08192A48: - ldrh r0, [r0] - lsls r0, 4 - adds r0, r6, r0 - adds r0, r3 - ldrh r1, [r4] - ldrb r0, [r0] - adds r1, r0 - strh r1, [r4] -_08192A58: - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0xF - ble _081929C4 - adds r2, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _081929BA - ldr r7, [sp, 0x38] - cmp r7, 0x2 - ble _081929AE - movs r7, 0 - ldr r2, =gBattleDomeOpponentStylePointers - mov r9, r2 - ldr r3, =gUnknown_0860C988 - mov r10, r3 -_08192A78: - movs r4, 0 - movs r6, 0 - movs r5, 0 - mov r3, r8 - lsls r0, r7, 4 - mov r1, r10 - adds r2, r0, r1 -_08192A86: - ldrb r0, [r2] - cmp r0, 0 - beq _08192A9E - adds r4, 0x1 - movs r1, 0 - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08192A9E - ldrb r1, [r2] - cmp r0, r1 - blt _08192A9E - adds r6, 0x1 -_08192A9E: - adds r3, 0x2 - adds r2, 0x1 - adds r5, 0x1 - cmp r5, 0xF - ble _08192A86 - cmp r4, r6 - beq _08192AB2 - adds r7, 0x1 - cmp r7, 0x1E - bls _08192A78 -_08192AB2: - lsls r0, r7, 2 - add r0, r9 - ldr r0, [r0] - str r0, [sp, 0xC] - add r0, sp, 0xC - movs r1, 0x14 - strb r1, [r0, 0x7] - strb r1, [r0, 0x9] - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - movs r1, 0 - mov r0, r8 - adds r0, 0x22 -_08192AD0: - strh r1, [r0] - subs r0, 0x2 - cmp r0, r8 - bge _08192AD0 - ldr r2, [sp, 0x24] - ldr r3, =0xfffffc02 - adds r0, r2, r3 - cmp r0, 0x1 - bls _08192AE4 - b _08192C24 -_08192AE4: - movs r7, 0 - movs r4, 0 - mov r9, r4 -_08192AEA: - movs r5, 0 - mov r4, r8 - mov r6, r9 -_08192AF0: - ldr r0, =0x000003fe - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192B24 - lsls r1, r5, 24 - lsrs r1, 24 - lsrs r0, r6, 24 - bl sub_81A50F0 - lsls r0, 24 - lsrs r0, 24 - b _08192B34 - .pool -_08192B24: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r7, 4 - adds r1, r5, r1 - ldr r2, =0x00000f04 - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] -_08192B34: - strh r0, [r4] - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x5 - ble _08192AF0 - mov r3, r8 - ldrh r0, [r3] - ldrh r4, [r3, 0xC] - adds r0, r4 - strh r0, [r3, 0xC] - movs r5, 0 - mov r4, r8 -_08192B4C: - ldr r0, =0x000003fe - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192B70 - mov r2, r9 - lsrs r0, r2, 24 - bl sub_81A50B0 - lsls r0, 24 - lsrs r2, r0, 24 - b _08192B7E - .pool -_08192B70: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r7, 4 - adds r0, r1 - ldr r3, =0x00000f0a - adds r0, r3 - ldrb r2, [r0] -_08192B7E: - ldr r1, =gNatureStatTable - lsls r0, r2, 2 - adds r0, r2 - adds r0, r5, r0 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _08192BB4 - movs r0, 0x2 - ldrsh r1, [r4, r0] - movs r0, 0x6E - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - ldrh r1, [r4, 0xE] - adds r1, r0 - strh r1, [r4, 0xE] - b _08192BDC - .pool -_08192BB4: - cmp r0, 0 - bge _08192BD4 - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r0, 0x5A - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - ldrh r1, [r4, 0xE] - adds r1, r0 - strh r1, [r4, 0xE] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - b _08192BDC -_08192BD4: - ldrh r0, [r4, 0x2] - ldrh r3, [r4, 0xE] - adds r0, r3 - strh r0, [r4, 0xE] -_08192BDC: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x4 - ble _08192B4C - movs r4, 0x80 - lsls r4, 17 - add r9, r4 - adds r7, 0x1 - cmp r7, 0x2 - bgt _08192BF2 - b _08192AEA -_08192BF2: - movs r5, 0 - mov r1, r8 - movs r7, 0x5 -_08192BF8: - movs r2, 0xC - ldrsh r0, [r1, r2] - adds r5, r0 - adds r1, 0x2 - subs r7, 0x1 - cmp r7, 0 - bge _08192BF8 - movs r6, 0x64 - mov r4, r8 - movs r7, 0x5 -_08192C0C: - movs r3, 0xC - ldrsh r0, [r4, r3] - muls r0, r6 - adds r1, r5, 0 - bl __divsi3 - strh r0, [r4] - adds r4, 0x2 - subs r7, 0x1 - cmp r7, 0 - bge _08192C0C - b _08192D70 -_08192C24: - ldr r4, =gFacilityTrainerMons - mov r10, r4 - ldr r1, [sp, 0x3C] - ldr r2, [sp, 0x20] - adds r0, r1, r2 - lsls r0, 1 - mov r9, r0 - movs r7, 0x2 -_08192C34: - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r4, =0x00000d64 - adds r0, r4 - add r0, r9 - ldrh r0, [r0] - mov r2, r10 - ldr r1, [r2] - lsls r0, 4 - adds r0, r1 - ldrb r2, [r0, 0xB] - movs r6, 0 - movs r4, 0 - movs r3, 0x1 - mov r1, r8 - movs r5, 0x5 -_08192C54: - strh r4, [r1] - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _08192C60 - adds r6, 0x1 -_08192C60: - asrs r2, 1 - adds r1, 0x2 - subs r5, 0x1 - cmp r5, 0 - bge _08192C54 - movs r0, 0xFF - lsls r0, 1 - adds r1, r6, 0 - bl __divsi3 - adds r6, r0, 0 - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r4, =0x00000d64 - adds r0, r4 - add r0, r9 - ldrh r0, [r0] - mov r2, r10 - ldr r1, [r2] - lsls r0, 4 - adds r0, r1 - ldrb r2, [r0, 0xB] - movs r3, 0x1 - mov r1, r8 - movs r5, 0x5 -_08192C92: - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _08192C9C - strh r6, [r1] -_08192C9C: - asrs r2, 1 - adds r1, 0x2 - subs r5, 0x1 - cmp r5, 0 - bge _08192C92 - mov r3, r8 - ldrh r0, [r3] - ldrh r4, [r3, 0xC] - adds r0, r4 - strh r0, [r3, 0xC] - movs r5, 0 - mov r4, r8 -_08192CB4: - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000d64 - adds r0, r2 - add r0, r9 - ldrh r0, [r0] - mov r3, r10 - ldr r1, [r3] - lsls r0, 4 - adds r0, r1 - ldrb r2, [r0, 0xC] - lsls r0, r2, 2 - adds r0, r2 - adds r0, r5, r0 - ldr r1, =gNatureStatTable - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _08192D04 - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r0, 0x6E - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - ldrh r1, [r4, 0xE] - adds r1, r0 - strh r1, [r4, 0xE] - b _08192D2C - .pool -_08192D04: - cmp r0, 0 - bge _08192D24 - movs r3, 0x2 - ldrsh r1, [r4, r3] - movs r0, 0x5A - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - ldrh r1, [r4, 0xE] - adds r1, r0 - strh r1, [r4, 0xE] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - b _08192D2C -_08192D24: - ldrh r0, [r4, 0x2] - ldrh r1, [r4, 0xE] - adds r0, r1 - strh r0, [r4, 0xE] -_08192D2C: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x4 - ble _08192CB4 - movs r2, 0x2 - add r9, r2 - subs r7, 0x1 - cmp r7, 0 - blt _08192D40 - b _08192C34 -_08192D40: - movs r5, 0 - mov r1, r8 - movs r7, 0x5 -_08192D46: - movs r3, 0xC - ldrsh r0, [r1, r3] - adds r5, r0 - adds r1, 0x2 - subs r7, 0x1 - cmp r7, 0 - bge _08192D46 - movs r6, 0x64 - mov r4, r8 - movs r7, 0x5 -_08192D5A: - movs r1, 0xC - ldrsh r0, [r4, r1] - muls r0, r6 - adds r1, r5, 0 - bl __divsi3 - strh r0, [r4] - adds r4, 0x2 - subs r7, 0x1 - cmp r7, 0 - bge _08192D5A -_08192D70: - movs r7, 0 - movs r5, 0 - movs r6, 0 - mov r4, r8 - mov r10, r8 - mov r9, r8 -_08192D7C: - movs r2, 0 - ldrsh r1, [r4, r2] - cmp r1, 0x1D - ble _08192DDE - cmp r7, 0x2 - bne _08192DD4 - mov r3, r8 - movs r0, 0xC - ldrsh r3, [r3, r0] - mov r12, r3 - cmp r12, r1 - bge _08192DC6 - mov r2, r8 - ldrh r2, [r2, 0xE] - add r3, sp, 0x54 - strh r2, [r3] - mov r2, r8 - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r0, r1 - bge _08192DBA - cmp r12, r0 - bge _08192DB4 - add r0, sp, 0x54 - ldrh r0, [r0] - strh r0, [r2, 0xC] - strh r6, [r2, 0xE] - b _08192DDE -_08192DB4: - mov r1, r8 - strh r6, [r1, 0xE] - b _08192DDE -_08192DBA: - add r2, sp, 0x54 - ldrh r3, [r2] - mov r2, r8 - strh r3, [r2, 0xC] - strh r6, [r2, 0xE] - b _08192DDE -_08192DC6: - mov r3, r8 - movs r2, 0xE - ldrsh r0, [r3, r2] - cmp r0, r1 - bge _08192DDE - strh r6, [r3, 0xE] - b _08192DDE -_08192DD4: - mov r3, r9 - strh r6, [r3, 0xC] - movs r0, 0x2 - add r9, r0 - adds r7, 0x1 -_08192DDE: - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08192E64 - cmp r5, 0x2 - bne _08192E5A - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bgt _08192E18 - cmp r0, 0x1 - bne _08192E64 - mov r3, r8 - movs r1, 0x10 - ldrsh r0, [r3, r1] - lsls r0, 1 - add r0, r8 - movs r2, 0x18 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _08192E22 - movs r1, 0x12 - ldrsh r0, [r3, r1] - lsls r0, 1 - add r0, r8 - movs r2, 0x18 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _08192E22 -_08192E18: - mov r3, r8 - ldrh r0, [r3, 0x12] - strh r0, [r3, 0x10] - strh r6, [r3, 0x12] - b _08192E64 -_08192E22: - movs r1, 0x18 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08192E64 - mov r2, r8 - movs r3, 0x10 - ldrsh r0, [r2, r3] - lsls r0, 1 - add r0, r8 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08192E44 - ldrh r0, [r2, 0x12] - strh r0, [r2, 0x10] - strh r6, [r2, 0x12] - b _08192E64 -_08192E44: - mov r2, r8 - movs r3, 0x12 - ldrsh r0, [r2, r3] - lsls r0, 1 - add r0, r8 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08192E64 - strh r6, [r2, 0x12] - b _08192E64 -_08192E5A: - mov r2, r10 - strh r6, [r2, 0x10] - movs r3, 0x2 - add r10, r3 - adds r5, 0x1 -_08192E64: - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x5 - ble _08192D7C - cmp r7, 0x2 - bne _08192E8C - ldr r0, =gUnknown_0860D349 - mov r4, r8 - movs r1, 0xC - ldrsh r2, [r4, r1] - adds r0, r2, r0 - movs r3, 0xE - ldrsh r1, [r4, r3] - subs r1, 0x1 - subs r1, r2 - ldrb r0, [r0] - adds r7, r1, r0 - b _08192ED2 - .pool -_08192E8C: - cmp r7, 0x1 - bne _08192E9C - mov r4, r8 - movs r1, 0xC - ldrsh r0, [r4, r1] - adds r7, r0, 0 - adds r7, 0xF - b _08192ED2 -_08192E9C: - cmp r5, 0x2 - bne _08192EC0 - ldr r0, =gUnknown_0860D349 - mov r3, r8 - movs r4, 0x10 - ldrsh r2, [r3, r4] - adds r0, r2, r0 - movs r4, 0x12 - ldrsh r1, [r3, r4] - subs r1, 0x1 - subs r1, r2 - ldrb r0, [r0] - adds r1, r0 - adds r7, r1, 0 - adds r7, 0x15 - b _08192ED2 - .pool -_08192EC0: - cmp r5, 0x1 - bne _08192ED0 - mov r1, r8 - movs r2, 0x10 - ldrsh r0, [r1, r2] - adds r7, r0, 0 - adds r7, 0x24 - b _08192ED2 -_08192ED0: - movs r7, 0x2A -_08192ED2: - lsls r0, r7, 2 - ldr r3, =gBattleDomeOpponentStatsPointers - adds r0, r3 - ldr r0, [r0] - str r0, [sp, 0xC] - add r0, sp, 0xC - movs r1, 0x24 - strb r1, [r0, 0x7] - strb r1, [r0, 0x9] - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - mov r0, r8 - bl Free - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81924E0 - thumb_func_start sub_8192F08 sub_8192F08: @ 8192F08 push {r4-r7,lr} diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index 692f942fc9..f65a25a16d 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -138,7 +138,7 @@ void sub_8194220(u8 taskId); void sub_8194B54(void); void sub_8194B70(void); void sub_819314C(u8, u8); -void sub_81924E0(u8, u8 trainerTournamentId); +static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId); u8 sub_819221C(u8 taskId); s32 sub_8192F08(u8, u8*); u8 GetDomeBrainTrainerPicId(void); @@ -1338,7 +1338,7 @@ void sub_8190400(u8 taskId) } else { - sub_81924E0(0, r5); + DisplayTrainerInfoOnCard(0, r5); } SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP); if (r9 != 0) @@ -1647,7 +1647,7 @@ void sub_8190CD4(u8 taskId) s32 var; s32 r9 = gTasks[taskId].data[3]; s32 taskId2 = gTasks[taskId].data[4]; - s32 arg, arg2; + s32 trainerTournamentId, arg2; switch (gTasks[taskId].data[0]) { @@ -1715,15 +1715,15 @@ void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 0; gBattle_BG2_Y = 320; - arg = gUnknown_0860D080[gTasks[taskId2].data[1]]; - sub_81924E0(gTasks[taskId].data[2] | 0x10, arg); + trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); } else { gBattle_BG2_X = 256; gBattle_BG2_Y = 0; - arg = gUnknown_0860D080[gTasks[taskId2].data[1]]; - sub_81924E0(gTasks[taskId].data[2] | 0x10, arg); + trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); gUnknown_0203CD78->unk_10 = 0; } } @@ -1735,8 +1735,8 @@ void sub_8190CD4(u8 taskId) sub_8192F08(arg2, gUnknown_0203CD78->unk_11); gBattle_BG2_X = 0; gBattle_BG2_Y = 320; - arg = gUnknown_0203CD78->unk_11[0]; - sub_81924E0(gTasks[taskId].data[2] | 0x10, arg); + trainerTournamentId = gUnknown_0203CD78->unk_11[0]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); } else if (gUnknown_0203CD78->unk_10 == 2) { @@ -1744,8 +1744,8 @@ void sub_8190CD4(u8 taskId) sub_8192F08(arg2, gUnknown_0203CD78->unk_11); gBattle_BG2_X = 0; gBattle_BG2_Y = 320; - arg = gUnknown_0203CD78->unk_11[1]; - sub_81924E0(gTasks[taskId].data[2] | 0x10, arg); + trainerTournamentId = gUnknown_0203CD78->unk_11[1]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); } else { @@ -1831,15 +1831,15 @@ void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 0; gBattle_BG2_Y = 160; - arg = gUnknown_0860D080[gTasks[taskId2].data[1]]; - sub_81924E0(gTasks[taskId].data[2] | 4, arg); + trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); } else { gBattle_BG2_X = 0; gBattle_BG2_Y = 0; - arg = gUnknown_0860D080[gTasks[taskId2].data[1]]; - sub_81924E0(gTasks[taskId].data[2] | 4, arg); + trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); gUnknown_0203CD78->unk_10 = 0; } } @@ -1851,8 +1851,8 @@ void sub_8190CD4(u8 taskId) sub_8192F08(arg2, gUnknown_0203CD78->unk_11); gBattle_BG2_X = 0; gBattle_BG2_Y = 160; - arg = gUnknown_0203CD78->unk_11[0]; - sub_81924E0(gTasks[taskId].data[2] | 4, arg); + trainerTournamentId = gUnknown_0203CD78->unk_11[0]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); } else if (gUnknown_0203CD78->unk_10 == 2) { @@ -1860,8 +1860,8 @@ void sub_8190CD4(u8 taskId) sub_8192F08(arg2, gUnknown_0203CD78->unk_11); gBattle_BG2_X = 0; gBattle_BG2_Y = 160; - arg = gUnknown_0203CD78->unk_11[1]; - sub_81924E0(gTasks[taskId].data[2] | 4, arg); + trainerTournamentId = gUnknown_0203CD78->unk_11[1]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); } else { @@ -1944,15 +1944,15 @@ void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 256; gBattle_BG2_Y = 160; - arg = gUnknown_0860D080[gTasks[taskId2].data[1]]; - sub_81924E0(gTasks[taskId].data[2] | 8, arg); + trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId); } else { gBattle_BG2_X = 256; gBattle_BG2_Y = 0; - arg = gUnknown_0860D15C[(gTasks[taskId2].data[1] * 4) + (gUnknown_0203CD78->unk_10 - 1)]; - sub_819314C(gTasks[taskId].data[2] | 8, arg); + trainerTournamentId = gUnknown_0860D15C[(gTasks[taskId2].data[1] * 4) + (gUnknown_0203CD78->unk_10 - 1)]; + sub_819314C(gTasks[taskId].data[2] | 8, trainerTournamentId); } for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) @@ -2027,8 +2027,8 @@ void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 256; gBattle_BG2_Y = 160; - arg = gUnknown_0203CD78->unk_11[0]; - sub_81924E0(gTasks[taskId].data[2] | 8, arg); + trainerTournamentId = gUnknown_0203CD78->unk_11[0]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId); } else { @@ -2116,8 +2116,8 @@ void sub_8190CD4(u8 taskId) gBattle_BG2_X = 0; gBattle_BG2_Y = 0; } - arg = gUnknown_0860D15C[(gUnknown_0203CD78->unk_10 - 1) + (gTasks[taskId2].data[1] * 4)]; - sub_819314C(gTasks[taskId].data[2] | 2, arg); + trainerTournamentId = gUnknown_0860D15C[(gUnknown_0203CD78->unk_10 - 1) + (gTasks[taskId2].data[1] * 4)]; + sub_819314C(gTasks[taskId].data[2] | 2, trainerTournamentId); for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) { @@ -2191,8 +2191,8 @@ void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 256; gBattle_BG2_Y = 160; - arg = gUnknown_0203CD78->unk_11[1]; - sub_81924E0(gTasks[taskId].data[2] | 2, arg); + trainerTournamentId = gUnknown_0203CD78->unk_11[1]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 2, trainerTournamentId); } else { @@ -2462,79 +2462,81 @@ u8 sub_819221C(u8 taskId) gTasks[taskId].data[2] ^= 1; } - return retVal; } -void sub_81924E0(u8 arg0, u8 trainerTournamentId) +static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) { - s32 i, j, k; - s16 *allocatedArray; struct TextSubPrinter textPrinter; - s32 trainerId; - s32 windowId; - s32 x, y; - u8 palSlot; - u8 nature; - - j = 0; - windowId = 0; - x = 0; - y = 0; - palSlot = 0; - allocatedArray = AllocZeroed(sizeof(s16) * 18); + s32 i, j, k; + s32 trainerId = 0; + u8 nature = 0; + s32 arrId = 0; + s32 windowId = 0; + s32 x = 0, y = 0; + u8 palSlot = 0; + s16 *allocatedArray = AllocZeroed(sizeof(s16) * 18); trainerId = gSaveBlock2Ptr->frontier.domeTrainers[trainerTournamentId].trainerId; - if (arg0 & 1) - j = 8, windowId = 9, palSlot = 2; - if (arg0 & 2) + if (flags & 1) + arrId = 8, windowId = 9, palSlot = 2; + if (flags & 2) x = 256; - if (arg0 & 4) + if (flags & 4) y = 160; - if (arg0 & 8) + if (flags & 8) x = -256; - if (arg0 & 0x10) + if (flags & 0x10) y = -160; if (trainerId == TRAINER_PLAYER) - gUnknown_0203CD78->arr[j] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + gUnknown_0203CD78->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); else if (trainerId == TRAINER_FRONTIER_BRAIN) - gUnknown_0203CD78->arr[j] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + gUnknown_0203CD78->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); else - gUnknown_0203CD78->arr[j] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + gUnknown_0203CD78->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); - if (arg0 & 0x1E) - gSprites[gUnknown_0203CD78->arr[j]].invisible = 1; + if (flags & 0x1E) + gSprites[gUnknown_0203CD78->arr[arrId]].invisible = 1; for (i = 0; i < 3; i++) { if (trainerId == TRAINER_PLAYER) - gUnknown_0203CD78->arr[i + 2 + j] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], + { + gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], sub_8190938, x | gUnknown_0860D340[i], y + gUnknown_0860D343[i], 0, 0, TRUE); + gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.priority = 0; + } else if (trainerId == TRAINER_FRONTIER_BRAIN) - gUnknown_0203CD78->arr[i + 2 + j] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], + { + gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], sub_8190938, x | gUnknown_0860D340[i], y + gUnknown_0860D343[i], 0, 0, TRUE); + gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.priority = 0; + } else - gUnknown_0203CD78->arr[i + 2 + j] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species, + { + gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species, sub_8190938, x | gUnknown_0860D340[i], y + gUnknown_0860D343[i], 0, 0, TRUE); - gSprites[gUnknown_0203CD78->arr[i + 2 + j]].oam.priority = 0; - if (arg0 & 0x1E) - gSprites[gUnknown_0203CD78->arr[i + 2 + j]].invisible = 1; + gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.priority = 0; + } + + if (flags & 0x1E) + gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].invisible = 1; } textPrinter.fontId = 2; textPrinter.x = 0; textPrinter.y = 0; - textPrinter.currentX = 0; - textPrinter.currentY = 0; + textPrinter.currentX = textPrinter.x; + textPrinter.currentY = textPrinter.y; textPrinter.letterSpacing = 2; textPrinter.lineSpacing = 0; textPrinter.fontColor_l = 0; @@ -2588,15 +2590,14 @@ void sub_81924E0(u8 arg0, u8 trainerTournamentId) else textPrinter.current_text_offset = gSpeciesNames[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species]; - textPrinter.windowId = windowId + i + 1; + textPrinter.windowId = 1 + i + windowId; if (i == 1) textPrinter.currentX = 7; else textPrinter.currentX = 0; - j = i + 1; - PutWindowTilemap(windowId + j); - CopyWindowToVram(windowId + j, 3); + PutWindowTilemap(1 + i + windowId); + CopyWindowToVram(1 + i + windowId, 3); AddTextPrinter(&textPrinter, 0, NULL); } @@ -2748,12 +2749,11 @@ void sub_81924E0(u8 arg0, u8 trainerTournamentId) { if (allocatedArray[6] < allocatedArray[k]) { - s16 var_24 = allocatedArray[7]; if (allocatedArray[7] < allocatedArray[k]) { if (allocatedArray[6] < allocatedArray[7]) { - allocatedArray[6] = var_24; + allocatedArray[6] = allocatedArray[7]; allocatedArray[7] = k; } else @@ -2763,7 +2763,7 @@ void sub_81924E0(u8 arg0, u8 trainerTournamentId) } else { - allocatedArray[6] = var_24; + allocatedArray[6] = allocatedArray[7]; allocatedArray[7] = k; } } @@ -2775,7 +2775,7 @@ void sub_81924E0(u8 arg0, u8 trainerTournamentId) } else { - allocatedArray[i + 7] = k; + allocatedArray[i + 6] = k; i++; } } @@ -2784,7 +2784,7 @@ void sub_81924E0(u8 arg0, u8 trainerTournamentId) if (j == 2) { if (allocatedArray[k + 12] >= 2 - || ((allocatedArray[k + 12] == 1 && (allocatedArray[12 + allocatedArray[8]] != 0 || allocatedArray[12 + allocatedArray[9]] == 0)) + || ((allocatedArray[k + 12] == 1 && allocatedArray[12 + allocatedArray[8]] == 0 && allocatedArray[12 + allocatedArray[9]] == 0) ) ) { From 5da12f2b21e5e9018fc151b2765587cb84109cfb Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 19 Aug 2018 22:26:07 +0200 Subject: [PATCH 122/174] battle dome - more work --- asm/battle_frontier_1.s | 260 ----------------------- data/battle_frontier_1.s | 180 ---------------- include/global.h | 9 +- src/battle_frontier_1.c | 432 ++++++++++++++++++++++++++++++++++++++- 4 files changed, 436 insertions(+), 445 deletions(-) diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index d662e47419..1aa100d794 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -5,266 +5,6 @@ .text - thumb_func_start sub_8192F08 -sub_8192F08: @ 8192F08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - str r1, [sp] - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - str r0, [sp, 0x4] - mov r8, r0 - ldr r2, =gUnknown_0860D3C4 - lsls r0, r7, 1 - adds r0, r7 - adds r1, r0, r2 - ldrb r6, [r1] - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - adds r0, r6, r0 - adds r3, r2, 0 - cmp r6, r0 - bge _08192FD4 - ldr r5, =gSaveBlock2Ptr - ldr r1, =0x000003ff - mov r10, r1 - ldr r2, =0x000003fe - mov r9, r2 -_08192F42: - ldr r0, =gUnknown_0860D3B4 - adds r0, r6, r0 - ldrb r4, [r0] - ldr r0, [r5] - lsls r1, r4, 2 - adds r0, r1 - ldr r2, =0x00000d25 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08192FBE - ldr r0, [sp] - add r0, r8 - strb r4, [r0] - ldr r2, [r5] - adds r0, r2, r1 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r0, 22 - lsrs r0, r1, 22 - cmp r0, r10 - bne _08192F9C - ldr r0, =gStringVar1 - adds r1, r2, 0 - bl StringCopy - b _08192FB8 - .pool -_08192F9C: - lsrs r0, r1, 22 - cmp r0, r9 - bne _08192FB0 - ldr r0, =gStringVar1 - bl CopyDomeBrainTrainerName - b _08192FB8 - .pool -_08192FB0: - lsrs r1, 22 - ldr r0, =gStringVar1 - bl CopyDomeOpponentName -_08192FB8: - movs r2, 0x1 - add r8, r2 - ldr r3, =gUnknown_0860D3C4 -_08192FBE: - adds r6, 0x1 - lsls r1, r7, 1 - adds r1, r7 - adds r0, r1, r3 - ldrb r2, [r0] - adds r0, r3, 0x1 - adds r1, r0 - ldrb r0, [r1] - adds r2, r0 - cmp r6, r2 - blt _08192F42 -_08192FD4: - mov r5, r8 - cmp r5, 0x2 - bne _08192FE8 - movs r0, 0 - b _0819313C - .pool -_08192FE8: - mov r12, r3 - lsls r3, r7, 1 - adds r0, r3, r7 - mov r2, r12 - adds r1, r0, r2 - ldrb r6, [r1] - mov r1, r12 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - adds r0, r6, r0 - str r3, [sp, 0x8] - cmp r6, r0 - blt _08193006 - b _08193126 -_08193006: - ldr r5, =gSaveBlock2Ptr - mov r10, r5 - ldr r0, =0x00000d25 - mov r9, r0 -_0819300E: - ldr r0, =gUnknown_0860D3B4 - adds r0, r6, r0 - ldrb r4, [r0] - mov r1, r10 - ldr r0, [r1] - lsls r2, r4, 2 - str r2, [sp, 0xC] - adds r0, r2 - add r0, r9 - ldrb r2, [r0] - lsls r0, r2, 29 - cmp r0, 0 - bge _08193100 - lsls r2, 27 - adds r1, r3, r7 - mov r0, r12 - adds r0, 0x2 - adds r1, r0 - lsrs r2, 30 - ldrb r1, [r1] - cmp r2, r1 - bcc _08193100 - ldr r0, [sp] - add r0, r8 - strb r4, [r0] - movs r5, 0x1 - add r8, r5 - mov r0, r10 - ldr r3, [r0] - ldr r5, [sp, 0xC] - adds r2, r3, r5 - adds r0, r2, 0 - add r0, r9 - ldrb r5, [r0] - mov r12, r5 - mov r0, r12 - lsls r0, 27 - lsrs r0, 30 - cmp r0, r1 - bne _081930BC - lsls r4, 1 - movs r1, 0xEC - lsls r1, 4 - adds r0, r3, r1 - adds r0, r4 - ldrh r1, [r0] - movs r0, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - ldr r0, =gStringVar2 - bl StringCopy - mov r2, r10 - ldr r1, [r2] - ldr r5, [sp, 0xC] - adds r0, r1, r5 - add r0, r9 - ldrb r0, [r0] - lsls r2, r0, 24 - lsrs r0, r2, 29 - lsls r0, 1 - str r0, [sp, 0x4] - movs r0, 0xEC - lsls r0, 4 - adds r1, r0 - adds r1, r4 - ldrh r0, [r1] - cmp r0, 0 - bne _08193100 - lsrs r0, r2, 29 - cmp r0, 0 - bne _08193100 - movs r1, 0x4 - str r1, [sp, 0x4] - b _08193100 - .pool -_081930BC: - ldr r5, =0x00000d24 - adds r0, r2, r5 - ldrh r0, [r0] - lsls r1, r0, 22 - ldr r0, =0xffc00000 - cmp r1, r0 - bne _081930E0 - ldr r0, =gStringVar1 - adds r1, r3, 0 - bl StringCopy - b _08193100 - .pool -_081930E0: - ldr r0, =0xff800000 - cmp r1, r0 - bne _081930F8 - ldr r0, =gStringVar1 - bl CopyDomeBrainTrainerName - b _08193100 - .pool -_081930F8: - lsrs r1, 22 - ldr r0, =gStringVar1 - bl CopyDomeOpponentName -_08193100: - mov r0, r8 - cmp r0, 0x2 - beq _08193126 - adds r6, 0x1 - ldr r1, =gUnknown_0860D3C4 - mov r12, r1 - ldr r3, [sp, 0x8] - adds r1, r3, r7 - mov r2, r12 - adds r0, r1, r2 - ldrb r2, [r0] - mov r0, r12 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - adds r2, r0 - cmp r6, r2 - bge _08193126 - b _0819300E -_08193126: - cmp r7, 0xE - beq _08193138 - ldr r0, [sp, 0x4] - adds r0, 0x1 - b _0819313C - .pool -_08193138: - ldr r0, [sp, 0x4] - adds r0, 0x2 -_0819313C: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8192F08 - thumb_func_start sub_819314C sub_819314C: @ 819314C push {r4-r7,lr} diff --git a/data/battle_frontier_1.s b/data/battle_frontier_1.s index e0e2b73b40..3901d3b864 100644 --- a/data/battle_frontier_1.s +++ b/data/battle_frontier_1.s @@ -5,186 +5,6 @@ .section .rodata -gUnknown_0860B358:: @ 860B358 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00 - .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01 - gUnknown_0860C988:: @ 860C988 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 diff --git a/include/global.h b/include/global.h index 9f2c7c9a25..a4db847a4a 100644 --- a/include/global.h +++ b/include/global.h @@ -431,7 +431,14 @@ struct BattleFrontier /*0xE6E*/ u16 field_E6E; /*0xE70*/ u8 field_E70[72]; /*0xEB8*/ u16 frontierBattlePoints; - /*0xEBA*/ u8 field_EBA[39]; + /*0xEBA*/ u8 field_EBA; + /*0xEBB*/ u8 field_EBB; + /*0xEBC*/ u8 field_EBC; + /*0xEBD*/ u8 field_EBD; + /*0xEBE*/ u8 field_EBE; + /*0xEBF*/ u8 field_EBF; + /*0xEC0*/ u16 field_EC0[16]; + /*0xEE0*/ u8 field_EE0; /*0xEE1*/ u8 field_EE1[2][PLAYER_NAME_LENGTH]; /*0xEF1*/ u8 field_EF1[2][4]; /*0xEF9*/ u8 field_EF9; diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index f65a25a16d..0c718ed742 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -101,9 +101,10 @@ extern const u8 gUnknown_0860D1C0[]; extern const u8 gUnknown_0860D343[]; extern const u8 gUnknown_0860D340[]; extern const u8 gUnknown_0860D346[]; -extern const u8 gUnknown_0860B358[][16]; extern const u8 gUnknown_0860C988[31][16]; extern const u8 gUnknown_0860D3F1[][2]; +extern const u8 gUnknown_0860D3C4[][3]; +extern const u8 gUnknown_0860D3B4[]; extern const u8 *const gBattleDomePotentialPointers[]; extern const u8 *const gBattleDomeOpponentStylePointers[]; extern const u8 *const gBattleDomeOpponentStatsPointers[]; @@ -146,6 +147,367 @@ u8 GetDomeBrainTrainerClass(void); void CopyDomeBrainTrainerName(u8 *dst); void CopyDomeOpponentName(u8 *dst, u16 trainerId); +// const rom data +ALIGNED(4) +static const u8 sMovePoints[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}, +}; + // code void sub_818E9AC(void) { @@ -2622,11 +2984,11 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) for (k = 0; k < DOME_TOURNAMENT_TRAINERS_COUNT; k++) { if (trainerId == TRAINER_FRONTIER_BRAIN) - allocatedArray[k] += gUnknown_0860B358[sub_81A5060(i, j)][k]; + allocatedArray[k] += sMovePoints[sub_81A5060(i, j)][k]; else if (trainerId == TRAINER_PLAYER) - allocatedArray[k] += gUnknown_0860B358[gSaveBlock2Ptr->frontier.field_EFC[i].moves[j]][k]; + allocatedArray[k] += sMovePoints[gSaveBlock2Ptr->frontier.field_EFC[i].moves[j]][k]; else - allocatedArray[k] += gUnknown_0860B358[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].moves[j]][k]; + allocatedArray[k] += sMovePoints[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].moves[j]][k]; } } } @@ -2826,3 +3188,65 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) AddTextPrinter(&textPrinter, 0, NULL); Free(allocatedArray); } + +s32 sub_8192F08(u8 arg0, u8 *arg1) +{ + s32 i; + u8 tournamentId; + s32 retVal = 0; + s32 count = 0; + + for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++) + { + tournamentId = gUnknown_0860D3B4[i]; + if (!gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk1) + { + arg1[count] = tournamentId; + if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_PLAYER) + StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); + else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN) + CopyDomeBrainTrainerName(gStringVar1); + else + CopyDomeOpponentName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId); + count++; + } + } + + if (count == 2) + return 0; + + for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++) + { + tournamentId = gUnknown_0860D3B4[i]; + if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk1 + && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk2 >= gUnknown_0860D3C4[arg0][2]) + { + arg1[count] = tournamentId; + count++; + if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk2 == gUnknown_0860D3C4[arg0][2]) + { + StringCopy(gStringVar2, gMoveNames[gSaveBlock2Ptr->frontier.field_EC0[tournamentId]]); + retVal = gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk3 * 2; + if (gSaveBlock2Ptr->frontier.field_EC0[tournamentId] == 0 && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk3 == 0) + retVal = 4; + } + else + { + if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_PLAYER) + StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); + else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN) + CopyDomeBrainTrainerName(gStringVar1); + else + CopyDomeOpponentName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId); + } + } + + if (count == 2) + break; + } + + if (arg0 == 14) + return retVal + 2; + else + return retVal + 1; +} From a12b69eae1d24168e0135b42c766b3b5d64d7007 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 20 Aug 2018 22:56:05 +0200 Subject: [PATCH 123/174] DisplayMatchInfoOnCard decompiled --- asm/battle_frontier_1.s | 853 ---------------------------------------- asm/battle_frontier_2.s | 2 +- src/battle_frontier_1.c | 372 ++++++++++++++---- 3 files changed, 298 insertions(+), 929 deletions(-) diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index 1aa100d794..a68dbf3296 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -5,859 +5,6 @@ .text - thumb_func_start sub_819314C -sub_819314C: @ 819314C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x80 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x34] - lsls r1, 24 - lsrs r6, r1, 24 - movs r0, 0 - str r0, [sp, 0x3C] - movs r7, 0 - movs r1, 0 - str r1, [sp, 0x40] - movs r2, 0 - str r2, [sp, 0x44] - mov r9, r2 - movs r0, 0x1 - ldr r3, [sp, 0x34] - ands r0, r3 - cmp r0, 0 - beq _08193186 - movs r7, 0x8 - str r7, [sp, 0x3C] - movs r7, 0x9 - movs r0, 0x2 - mov r9, r0 -_08193186: - movs r0, 0x2 - ldr r1, [sp, 0x34] - ands r0, r1 - cmp r0, 0 - beq _08193196 - movs r2, 0x80 - lsls r2, 1 - str r2, [sp, 0x40] -_08193196: - movs r0, 0x4 - ldr r3, [sp, 0x34] - ands r0, r3 - cmp r0, 0 - beq _081931A4 - movs r0, 0xA0 - str r0, [sp, 0x44] -_081931A4: - movs r0, 0x8 - ldr r1, [sp, 0x34] - ands r0, r1 - cmp r0, 0 - beq _081931B2 - ldr r2, =0xffffff00 - str r2, [sp, 0x40] -_081931B2: - movs r0, 0x10 - ldr r3, [sp, 0x34] - ands r0, r3 - cmp r0, 0 - beq _081931C2 - movs r0, 0xA0 - negs r0, r0 - str r0, [sp, 0x44] -_081931C2: - ldr r4, =gUnknown_0203CD78 - ldr r1, [r4] - adds r1, 0x11 - adds r0, r6, 0 - bl sub_8192F08 - str r0, [sp, 0x38] - movs r5, 0 - mov r1, sp - adds r1, 0x1C - str r1, [sp, 0x48] - mov r2, sp - adds r2, 0x24 - str r2, [sp, 0x4C] - lsls r1, r6, 1 - mov r3, sp - adds r3, 0x2C - str r3, [sp, 0x50] - ldr r0, [sp, 0x40] - adds r0, 0x30 - mov r8, r0 - ldr r2, [sp, 0x44] - adds r2, 0x58 - str r2, [sp, 0x78] - movs r3, 0xC - add r3, r9 - mov r10, r3 - ldr r0, [sp, 0x40] - adds r0, 0xC0 - str r0, [sp, 0x7C] - mov r2, r9 - adds r2, 0xD - str r2, [sp, 0x74] - ldr r3, [sp, 0x3C] - adds r3, 0x1 - mov r9, r3 - ldr r0, [sp, 0x3C] - adds r0, 0x2 - str r0, [sp, 0x54] - ldr r2, [sp, 0x3C] - adds r2, 0x5 - str r2, [sp, 0x5C] - adds r3, r7, 0 - adds r3, 0x8 - str r3, [sp, 0x6C] - adds r0, r7, 0x6 - str r0, [sp, 0x64] - adds r2, r7, 0x7 - str r2, [sp, 0x68] - lsls r3, r6, 2 - str r3, [sp, 0x58] - adds r0, r7, 0x5 - str r0, [sp, 0x60] - ldr r0, [r4] - adds r0, 0x11 - mov r12, r0 - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - ldr r0, =gUnknown_0860D3C6 - movs r3, 0 - adds r1, r6 - adds r1, r0 - ldrb r6, [r1] -_08193240: - ldr r1, [sp, 0x48] - adds r2, r3, r1 - mov r7, r12 - adds r0, r7, r5 - ldrb r0, [r0] - str r0, [r2] - ldr r7, [sp, 0x4C] - adds r1, r3, r7 - lsls r0, 2 - adds r0, r4, r0 - ldr r7, =0x00000d24 - adds r0, r7 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - str r0, [r1] - ldr r0, [r2] - lsls r0, 2 - adds r0, r4, r0 - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 27 - lsrs r0, 30 - cmp r0, r6 - bhi _0819329C - lsls r0, r1, 29 - cmp r0, 0 - bge _0819329C - ldr r2, [sp, 0x50] - adds r1, r3, r2 - movs r0, 0x1 - b _081932A2 - .pool -_0819329C: - ldr r7, [sp, 0x50] - adds r1, r3, r7 - movs r0, 0 -_081932A2: - str r0, [r1] - adds r3, 0x4 - adds r5, 0x1 - cmp r5, 0x1 - ble _08193240 - ldr r1, [sp, 0x24] - ldr r0, =0x000003ff - cmp r1, r0 - bne _081932D4 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - bl PlayerGenderToFrontTrainerPicId - lsls r0, 16 - lsrs r0, 16 - mov r2, r8 - ldr r3, [sp, 0x78] - mov r1, r10 - str r1, [sp] - b _081932F8 - .pool -_081932D4: - ldr r0, =0x000003fe - cmp r1, r0 - bne _081932E4 - bl GetDomeBrainTrainerPicId - b _081932EC - .pool -_081932E4: - lsls r0, r1, 16 - lsrs r0, 16 - bl GetFrontierTrainerFrontSpriteId -_081932EC: - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - ldr r3, [sp, 0x78] - mov r7, r10 - str r7, [sp] -_081932F8: - ldr r1, =0x0000ffff - str r1, [sp, 0x4] - movs r1, 0x1 - bl CreateTrainerPicSprite - ldr r1, =gUnknown_0203CD78 - ldr r1, [r1] - ldr r2, [sp, 0x3C] - adds r1, r2 - strb r0, [r1] - movs r0, 0x1E - ldr r3, [sp, 0x34] - ands r0, r3 - cmp r0, 0 - beq _08193334 - ldr r2, =gSprites - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldr r7, [sp, 0x3C] - adds r0, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08193334: - ldr r0, [sp, 0x2C] - cmp r0, 0 - beq _0819335A - ldr r2, =gSprites - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldr r1, [sp, 0x3C] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x5] - movs r1, 0xF - ands r1, r2 - movs r2, 0x30 - orrs r1, r2 - strb r1, [r0, 0x5] -_0819335A: - ldr r2, [sp, 0x4C] - ldr r1, [r2, 0x4] - ldr r0, =0x000003ff - cmp r1, r0 - bne _08193388 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - bl PlayerGenderToFrontTrainerPicId - lsls r0, 16 - lsrs r0, 16 - b _081933B0 - .pool -_08193388: - ldr r0, =0x000003fe - cmp r1, r0 - bne _081933A4 - bl GetDomeBrainTrainerPicId - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x7C] - ldr r3, [sp, 0x78] - ldr r1, [sp, 0x74] - str r1, [sp] - b _081933B8 - .pool -_081933A4: - lsls r0, r1, 16 - lsrs r0, 16 - bl GetFrontierTrainerFrontSpriteId - lsls r0, 24 - lsrs r0, 24 -_081933B0: - ldr r2, [sp, 0x7C] - ldr r3, [sp, 0x78] - ldr r7, [sp, 0x74] - str r7, [sp] -_081933B8: - ldr r1, =0x0000ffff - str r1, [sp, 0x4] - movs r1, 0x1 - bl CreateTrainerPicSprite - ldr r1, =gUnknown_0203CD78 - ldr r1, [r1] - add r1, r9 - strb r0, [r1] - movs r0, 0x1E - ldr r1, [sp, 0x34] - ands r0, r1 - cmp r0, 0 - beq _081933F0 - ldr r2, =gSprites - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_081933F0: - ldr r2, [sp, 0x50] - ldr r0, [r2, 0x4] - cmp r0, 0 - beq _08193416 - ldr r2, =gSprites - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x5] - movs r1, 0xF - ands r1, r2 - movs r2, 0x30 - orrs r1, r2 - strb r1, [r0, 0x5] -_08193416: - movs r5, 0 - ldr r3, [sp, 0x38] - lsls r3, 2 - str r3, [sp, 0x70] - mov r8, r5 - ldr r6, =gUnknown_0203CD78 - ldr r7, =gSprites - ldr r4, [sp, 0x54] - mov r9, r5 - movs r0, 0x1 - mov r10, r0 -_0819342C: - ldr r1, [sp, 0x24] - ldr r0, =0x000003ff - cmp r1, r0 - bne _08193464 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, [sp, 0x1C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r9 - ldr r1, =0x00000d64 - adds r2, r1 - adds r2, r0 - ldrh r0, [r2] - b _081934B0 - .pool -_08193464: - ldr r0, =0x000003fe - cmp r1, r0 - bne _08193490 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, [sp, 0x1C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r9 - ldr r1, =0x00000d64 - adds r2, r1 - adds r2, r0 - ldrh r0, [r2] - b _081934B0 - .pool -_08193490: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, [sp, 0x1C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r9 - ldr r1, =0x00000d64 - adds r2, r1 - adds r2, r0 - ldrh r1, [r2] - ldr r0, =gFacilityTrainerMons - ldr r0, [r0] - lsls r1, 4 - adds r1, r0 - ldrh r0, [r1] -_081934B0: - ldr r1, =gUnknown_0860D3A8 - adds r1, r5, r1 - ldrb r2, [r1] - ldr r3, [sp, 0x40] - orrs r2, r3 - ldr r1, =gUnknown_0860D3AB - adds r1, r5, r1 - ldrb r3, [r1] - ldr r1, [sp, 0x44] - adds r3, r1 - mov r1, r8 - str r1, [sp] - str r1, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - ldr r1, =sub_8190938 - bl CreateMonIcon - ldr r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r1, [r0, 0x5] - movs r3, 0xD - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - strb r1, [r0, 0x5] - movs r0, 0x1E - ldr r1, [sp, 0x34] - ands r0, r1 - cmp r0, 0 - beq _08193516 - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08193516: - ldr r0, [sp, 0x2C] - cmp r0, 0 - beq _08193548 - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - movs r2, 0x30 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r2, r10 - strh r2, [r0, 0x34] -_08193548: - adds r4, 0x1 - movs r3, 0x2 - add r9, r3 - adds r5, 0x1 - cmp r5, 0x2 - bgt _08193556 - b _0819342C -_08193556: - movs r5, 0 - ldr r6, =gUnknown_0203CD78 - ldr r7, =gSprites - mov r8, r7 - ldr r4, [sp, 0x5C] - mov r9, r5 - movs r7, 0 -_08193564: - ldr r0, [sp, 0x4C] - ldr r1, [r0, 0x4] - ldr r0, =0x000003ff - cmp r1, r0 - bne _081935AC - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r3, [sp, 0x48] - ldr r1, [r3, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r9 - ldr r1, =0x00000d64 - adds r2, r1 - adds r2, r0 - ldrh r0, [r2] - b _081935FA - .pool -_081935AC: - ldr r0, =0x000003fe - cmp r1, r0 - bne _081935D8 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, [sp, 0x48] - ldr r1, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r9 - ldr r1, =0x00000d64 - adds r2, r1 - adds r2, r0 - ldrh r0, [r2] - b _081935FA - .pool -_081935D8: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, [sp, 0x48] - ldr r1, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r9 - ldr r1, =0x00000d64 - adds r2, r1 - adds r2, r0 - ldrh r1, [r2] - ldr r0, =gFacilityTrainerMons - ldr r0, [r0] - lsls r1, 4 - adds r1, r0 - ldrh r0, [r1] -_081935FA: - ldr r1, =gUnknown_0860D3AE - adds r1, r5, r1 - ldrb r2, [r1] - ldr r3, [sp, 0x40] - orrs r2, r3 - ldr r1, =gUnknown_0860D3B1 - adds r1, r5, r1 - ldrb r3, [r1] - ldr r1, [sp, 0x44] - adds r3, r1 - str r7, [sp] - str r7, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - ldr r1, =sub_8190938 - bl CreateMonIcon - ldr r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r1, [r0, 0x5] - movs r3, 0xD - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - strb r1, [r0, 0x5] - movs r0, 0x1E - ldr r1, [sp, 0x34] - ands r0, r1 - cmp r0, 0 - beq _0819365E - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0819365E: - ldr r2, [sp, 0x50] - ldr r0, [r2, 0x4] - cmp r0, 0 - beq _08193692 - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - movs r2, 0x30 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - movs r1, 0x1 - strh r1, [r0, 0x34] -_08193692: - adds r4, 0x1 - movs r3, 0x2 - add r9, r3 - adds r5, 0x1 - cmp r5, 0x2 - bgt _081936A0 - b _08193564 -_081936A0: - add r0, sp, 0xC - movs r5, 0 - strb r5, [r0, 0x6] - adds r1, r0, 0 - movs r0, 0x2 - strb r0, [r1, 0x7] - adds r0, r1, 0 - ldrb r0, [r0, 0x6] - strb r0, [r1, 0x8] - adds r0, r1, 0 - ldrb r0, [r0, 0x7] - strb r0, [r1, 0x9] - adds r0, r1, 0 - strb r5, [r0, 0xA] - strb r5, [r0, 0xB] - adds r3, r0, 0 - ldrb r2, [r3, 0xC] - movs r1, 0x10 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - adds r2, r3, 0 - movs r0, 0xE0 - strb r0, [r2, 0xC] - ldrb r0, [r2, 0xD] - ands r1, r0 - strb r1, [r2, 0xD] - adds r1, r2, 0 - movs r0, 0xD0 - strb r0, [r1, 0xD] - ldr r4, =gStringVar4 - ldr r0, =gBattleDomeWinStringsPointers - ldr r7, [sp, 0x70] - adds r0, r7, r0 - ldr r1, [r0] - adds r0, r4, 0 - bl StringExpandPlaceholders - str r4, [sp, 0xC] - add r0, sp, 0xC - add r1, sp, 0x6C - ldrb r1, [r1] - strb r1, [r0, 0x4] - adds r1, r0, 0 - movs r0, 0x1 - strb r0, [r1, 0x5] - ldr r4, [sp, 0x6C] - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add r0, sp, 0xC - strb r5, [r0, 0x8] - adds r1, r0, 0 - strb r5, [r0, 0x7] - strb r5, [r1, 0x9] - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - ldr r1, [sp, 0x24] - ldr r0, =0x000003ff - cmp r1, r0 - bne _0819375C - ldr r0, =gStringVar1 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - b _0819377E - .pool -_0819375C: - ldr r0, =0x000003fe - cmp r1, r0 - bne _08193774 - ldr r0, =gStringVar1 - bl CopyDomeBrainTrainerName - b _0819377E - .pool -_08193774: - ldr r0, =gStringVar1 - lsls r1, 16 - lsrs r1, 16 - bl CopyDomeOpponentName -_0819377E: - add r0, sp, 0xC - movs r4, 0x2 - strb r4, [r0, 0x5] - strb r4, [r0, 0xA] - ldr r5, =gStringVar1 - str r5, [sp, 0xC] - add r2, sp, 0x64 - ldrb r2, [r2] - strb r2, [r0, 0x4] - ldrb r0, [r0, 0x5] - ldr r1, [sp, 0xC] - add r2, sp, 0xC - ldrb r3, [r2, 0xA] - movs r2, 0x40 - bl GetStringCenterAlignXOffsetWithLetterSpacing - add r1, sp, 0xC - strb r0, [r1, 0x8] - adds r0, r1, 0 - strb r4, [r0, 0x7] - strb r4, [r1, 0x9] - ldr r4, [sp, 0x64] - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add r0, sp, 0xC - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - ldr r3, [sp, 0x4C] - ldr r1, [r3, 0x4] - ldr r0, =0x000003ff - cmp r1, r0 - bne _081937E4 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r5, 0 - bl StringCopy - b _08193802 - .pool -_081937E4: - ldr r0, =0x000003fe - cmp r1, r0 - bne _081937F8 - adds r0, r5, 0 - bl CopyDomeBrainTrainerName - b _08193802 - .pool -_081937F8: - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl CopyDomeOpponentName -_08193802: - ldr r0, =gStringVar1 - str r0, [sp, 0xC] - add r0, sp, 0xC - movs r6, 0 - add r7, sp, 0x68 - ldrb r7, [r7] - strb r7, [r0, 0x4] - ldrb r0, [r0, 0x5] - ldr r1, [sp, 0xC] - add r2, sp, 0xC - ldrb r3, [r2, 0xA] - movs r2, 0x40 - bl GetStringCenterAlignXOffsetWithLetterSpacing - add r1, sp, 0xC - strb r0, [r1, 0x8] - adds r0, r1, 0 - movs r5, 0x2 - strb r5, [r0, 0x7] - strb r5, [r1, 0x9] - ldr r4, [sp, 0x68] - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add r0, sp, 0xC - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - add r0, sp, 0xC - strb r6, [r0, 0xA] - ldr r0, =gBattleDomeMatchNumberPointers - ldr r1, [sp, 0x58] - adds r0, r1, r0 - ldr r0, [r0] - str r0, [sp, 0xC] - add r0, sp, 0xC - add r2, sp, 0x60 - ldrb r2, [r2] - strb r2, [r0, 0x4] - ldrb r0, [r0, 0x5] - ldr r1, [sp, 0xC] - add r2, sp, 0xC - ldrb r3, [r2, 0xA] - movs r2, 0xA0 - bl GetStringCenterAlignXOffsetWithLetterSpacing - add r1, sp, 0xC - strb r0, [r1, 0x8] - adds r0, r1, 0 - strb r5, [r0, 0x7] - strb r5, [r1, 0x9] - ldr r4, [sp, 0x60] - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add r0, sp, 0xC - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - add sp, 0x80 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819314C - thumb_func_start sub_81938A4 sub_81938A4: @ 81938A4 push {lr} diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index ad79758755..7d17f5c6c8 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -20049,7 +20049,7 @@ sub_81A4E04: @ 81A4E04 bl sub_81953A0 lsls r0, 16 lsrs r0, 16 - bl sub_818FC78 + bl GetTrainerMonCountInBits adds r4, r0, 0 b _081A4E46 .pool diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index 0c718ed742..ccead08454 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -105,9 +105,15 @@ extern const u8 gUnknown_0860C988[31][16]; extern const u8 gUnknown_0860D3F1[][2]; extern const u8 gUnknown_0860D3C4[][3]; extern const u8 gUnknown_0860D3B4[]; +extern const u8 gUnknown_0860D3A8[]; +extern const u8 gUnknown_0860D3AB[]; +extern const u8 gUnknown_0860D3AE[]; +extern const u8 gUnknown_0860D3B1[]; extern const u8 *const gBattleDomePotentialPointers[]; extern const u8 *const gBattleDomeOpponentStylePointers[]; extern const u8 *const gBattleDomeOpponentStatsPointers[]; +extern const u8 *const gBattleDomeWinStringsPointers[]; +extern const u8 *const gBattleDomeMatchNumberPointers[]; // gfx extern const u8 gUnknown_08D83D50[]; @@ -127,7 +133,7 @@ void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray); void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats); void CreateDomeTrainerMons(u16 tournamentTrainerId); u16 TrainerIdToTournamentId(u16 trainerId); -s32 sub_818FC78(u16 tournamentTrainerId); +s32 GetTrainerMonCountInBits(u16 tournamentTrainerId); s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); s32 sub_818FFC0(s32 move, s32 species, s32 arg2); @@ -138,7 +144,7 @@ void sub_8190CD4(u8 taskId); void sub_8194220(u8 taskId); void sub_8194B54(void); void sub_8194B70(void); -void sub_819314C(u8, u8); +static void DrawMatchInfoOnCard(u8 flags, u8 matchNo); static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId); u8 sub_819221C(u8 taskId); s32 sub_8192F08(u8, u8*); @@ -979,7 +985,7 @@ void CreateDomeTrainerMons(u16 tournamentTrainerId) s32 i, bits; ZeroEnemyPartyMons(); - bits = sub_818FC78(tournamentTrainerId); + bits = GetTrainerMonCountInBits(tournamentTrainerId); otId = Random32(); if (Random() % 10 > 5) { @@ -1007,7 +1013,7 @@ void CreateDomeTrainerMons(u16 tournamentTrainerId) } } -s32 sub_818FC78(u16 tournamentTrainerId) +s32 GetTrainerMonCountInBits(u16 tournamentTrainerId) { s32 bits; if (Random() & 1) @@ -1695,7 +1701,7 @@ void sub_8190400(u8 taskId) gTasks[i].data[4] = r7; if (r9 == 2) { - sub_819314C(0, r5); + DrawMatchInfoOnCard(0, r5); gUnknown_0203CD78->unk_10 = 1; } else @@ -1730,7 +1736,11 @@ void sub_8190400(u8 taskId) } } -void sub_8190790(struct Sprite *sprite) +// Note: Card scrolling up means the current card goes down and another one appears from top. +// The same is true for scrolling left. +// That means that the sprite needs to move with the moving card in the opposite scrolling direction. + +static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite) { sprite->pos1.y += 4; if (sprite->data[0] != 0) @@ -1750,7 +1760,7 @@ void sub_8190790(struct Sprite *sprite) } } -void sub_81907F8(struct Sprite *sprite) +static void SpriteCb_TrainerIconCardScrollDown(struct Sprite *sprite) { sprite->pos1.y -= 4; if (sprite->data[0] != 0) @@ -1770,7 +1780,7 @@ void sub_81907F8(struct Sprite *sprite) } } -void sub_8190860(struct Sprite *sprite) +static void SpriteCb_TrainerIconCardScrollLeft(struct Sprite *sprite) { sprite->pos1.x += 4; if (sprite->data[0] != 0) @@ -1790,7 +1800,7 @@ void sub_8190860(struct Sprite *sprite) } } -void sub_81908CC(struct Sprite *sprite) +static void SpriteCb_TrainerIconCardScrollRight(struct Sprite *sprite) { sprite->pos1.x -= 4; if (sprite->data[0] != 0) @@ -1810,15 +1820,17 @@ void sub_81908CC(struct Sprite *sprite) } } -void sub_8190938(struct Sprite *sprite) +#define sMonIconStill data[3] + +static void SpriteCb_MonIcon(struct Sprite *sprite) { - if (!sprite->data[3]) + if (!sprite->sMonIconStill) UpdateMonIconFrame(sprite); } -void sub_8190950(struct Sprite *sprite) +static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite) { - if (!sprite->data[3]) + if (!sprite->sMonIconStill) UpdateMonIconFrame(sprite); sprite->pos1.y += 4; if (sprite->data[0] != 0) @@ -1826,7 +1838,7 @@ void sub_8190950(struct Sprite *sprite) if (sprite->pos1.y >= -16) sprite->invisible = 0; if (++sprite->data[1] == 40) - sprite->callback = sub_8190938; + sprite->callback = SpriteCb_MonIcon; } else { @@ -1838,9 +1850,9 @@ void sub_8190950(struct Sprite *sprite) } } -void sub_81909CC(struct Sprite *sprite) +static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite) { - if (!sprite->data[3]) + if (!sprite->sMonIconStill) UpdateMonIconFrame(sprite); sprite->pos1.y -= 4; if (sprite->data[0] != 0) @@ -1848,7 +1860,7 @@ void sub_81909CC(struct Sprite *sprite) if (sprite->pos1.y <= 176) sprite->invisible = 0; if (++sprite->data[1] == 40) - sprite->callback = sub_8190938; + sprite->callback = SpriteCb_MonIcon; } else { @@ -1860,9 +1872,9 @@ void sub_81909CC(struct Sprite *sprite) } } -void sub_8190A48(struct Sprite *sprite) +static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite) { - if (!sprite->data[3]) + if (!sprite->sMonIconStill) UpdateMonIconFrame(sprite); sprite->pos1.x += 4; if (sprite->data[0] != 0) @@ -1870,7 +1882,7 @@ void sub_8190A48(struct Sprite *sprite) if (sprite->pos1.x >= -16) sprite->invisible = 0; if (++sprite->data[1] == 64) - sprite->callback = sub_8190938; + sprite->callback = SpriteCb_MonIcon; } else { @@ -1882,9 +1894,9 @@ void sub_8190A48(struct Sprite *sprite) } } -void sub_8190AC4(struct Sprite *sprite) +static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite) { - if (!sprite->data[3]) + if (!sprite->sMonIconStill) UpdateMonIconFrame(sprite); sprite->pos1.x -= 4; if (sprite->data[0] != 0) @@ -1892,7 +1904,7 @@ void sub_8190AC4(struct Sprite *sprite) if (sprite->pos1.x <= 256) sprite->invisible = 0; if (++sprite->data[1] == 64) - sprite->callback = sub_8190938; + sprite->callback = SpriteCb_MonIcon; } else { @@ -2006,10 +2018,11 @@ void sub_8190C6C(struct Sprite *sprite) void sub_8190CD4(u8 taskId) { s32 i; - s32 var; + s32 windowId = 0; s32 r9 = gTasks[taskId].data[3]; s32 taskId2 = gTasks[taskId].data[4]; - s32 trainerTournamentId, arg2; + s32 trainerTournamentId = 0; + s32 matchNo = 0; switch (gTasks[taskId].data[0]) { @@ -2035,11 +2048,11 @@ void sub_8190CD4(u8 taskId) case 1 ... 8: gTasks[taskId].data[5] = i; if (gTasks[taskId].data[2] != 0) - var = 9; + windowId = 9; else - var = 0; + windowId = 0; - for (i = var; i < var + 9; i++) + for (i = windowId; i < windowId + 9; i++) { CopyWindowToVram(i, 2); FillWindowPixelBuffer(i, 0); @@ -2093,8 +2106,8 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->unk_10 == 0) { - arg2 = gTasks[taskId2].data[1] - 16; - sub_8192F08(arg2, gUnknown_0203CD78->unk_11); + matchNo = gTasks[taskId2].data[1] - 16; + sub_8192F08(matchNo, gUnknown_0203CD78->unk_11); gBattle_BG2_X = 0; gBattle_BG2_Y = 320; trainerTournamentId = gUnknown_0203CD78->unk_11[0]; @@ -2102,8 +2115,8 @@ void sub_8190CD4(u8 taskId) } else if (gUnknown_0203CD78->unk_10 == 2) { - arg2 = gTasks[taskId2].data[1] - 16; - sub_8192F08(arg2, gUnknown_0203CD78->unk_11); + matchNo = gTasks[taskId2].data[1] - 16; + sub_8192F08(matchNo, gUnknown_0203CD78->unk_11); gBattle_BG2_X = 0; gBattle_BG2_Y = 320; trainerTournamentId = gUnknown_0203CD78->unk_11[1]; @@ -2113,8 +2126,8 @@ void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 256; gBattle_BG2_Y = 160; - arg2 = gTasks[taskId2].data[1] - 16; - sub_819314C(gTasks[taskId].data[2] | 0x10, arg2); + matchNo = gTasks[taskId2].data[1] - 16; + DrawMatchInfoOnCard(gTasks[taskId].data[2] | 0x10, matchNo); } } @@ -2124,7 +2137,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190790; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollUp; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2135,7 +2148,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190950; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollUp; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2148,7 +2161,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190790; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollUp; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2159,7 +2172,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190950; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollUp; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2209,8 +2222,8 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->unk_10 == 0) { - arg2 = gTasks[taskId2].data[1] - 16; - sub_8192F08(arg2, gUnknown_0203CD78->unk_11); + matchNo = gTasks[taskId2].data[1] - 16; + sub_8192F08(matchNo, gUnknown_0203CD78->unk_11); gBattle_BG2_X = 0; gBattle_BG2_Y = 160; trainerTournamentId = gUnknown_0203CD78->unk_11[0]; @@ -2218,8 +2231,8 @@ void sub_8190CD4(u8 taskId) } else if (gUnknown_0203CD78->unk_10 == 2) { - arg2 = gTasks[taskId2].data[1] - 16; - sub_8192F08(arg2, gUnknown_0203CD78->unk_11); + matchNo = gTasks[taskId2].data[1] - 16; + sub_8192F08(matchNo, gUnknown_0203CD78->unk_11); gBattle_BG2_X = 0; gBattle_BG2_Y = 160; trainerTournamentId = gUnknown_0203CD78->unk_11[1]; @@ -2229,8 +2242,8 @@ void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 256; gBattle_BG2_Y = 0; - arg2 = gTasks[taskId2].data[1] - 16; - sub_819314C(gTasks[taskId].data[2] | 4, arg2); + matchNo = gTasks[taskId2].data[1] - 16; + DrawMatchInfoOnCard(gTasks[taskId].data[2] | 4, matchNo); } } @@ -2240,7 +2253,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81907F8; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollDown; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2251,7 +2264,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81909CC; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollDown; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2264,7 +2277,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81907F8; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollDown; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2275,7 +2288,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81909CC; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollDown; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2313,8 +2326,8 @@ void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 256; gBattle_BG2_Y = 0; - trainerTournamentId = gUnknown_0860D15C[(gTasks[taskId2].data[1] * 4) + (gUnknown_0203CD78->unk_10 - 1)]; - sub_819314C(gTasks[taskId].data[2] | 8, trainerTournamentId); + matchNo = gUnknown_0860D15C[(gTasks[taskId2].data[1] * 4) + (gUnknown_0203CD78->unk_10 - 1)]; + DrawMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); } for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) @@ -2323,7 +2336,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190860; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2334,7 +2347,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190A48; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2347,7 +2360,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190860; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2358,7 +2371,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190A48; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2396,8 +2409,8 @@ void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 0; gBattle_BG2_Y = 160; - arg2 = gTasks[taskId2].data[1] - 16; - sub_819314C(gTasks[taskId].data[2] | 8, arg2); + matchNo = gTasks[taskId2].data[1] - 16; + DrawMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); } for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) @@ -2406,7 +2419,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190860; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2417,7 +2430,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190A48; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2430,7 +2443,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190860; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2441,7 +2454,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190A48; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2478,8 +2491,8 @@ void sub_8190CD4(u8 taskId) gBattle_BG2_X = 0; gBattle_BG2_Y = 0; } - trainerTournamentId = gUnknown_0860D15C[(gUnknown_0203CD78->unk_10 - 1) + (gTasks[taskId2].data[1] * 4)]; - sub_819314C(gTasks[taskId].data[2] | 2, trainerTournamentId); + matchNo = gUnknown_0860D15C[(gUnknown_0203CD78->unk_10 - 1) + (gTasks[taskId2].data[1] * 4)]; + DrawMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo); for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) { @@ -2487,7 +2500,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81908CC; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2498,7 +2511,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190AC4; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollRight; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2511,7 +2524,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81908CC; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2522,7 +2535,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190AC4; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollRight; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2560,8 +2573,8 @@ void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 0; gBattle_BG2_Y = 160; - arg2 = gTasks[taskId2].data[1] - 16; - sub_819314C(gTasks[taskId].data[2] | 2, arg2); + matchNo = gTasks[taskId2].data[1] - 16; + DrawMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo); } for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) @@ -2570,7 +2583,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81908CC; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2581,7 +2594,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190AC4; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollRight; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2594,7 +2607,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_81908CC; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2605,7 +2618,7 @@ void sub_8190CD4(u8 taskId) { if (gUnknown_0203CD78->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = sub_8190AC4; + gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollRight; gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; @@ -2866,7 +2879,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) if (trainerId == TRAINER_PLAYER) { gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], - sub_8190938, + SpriteCb_MonIcon, x | gUnknown_0860D340[i], y + gUnknown_0860D343[i], 0, 0, TRUE); @@ -2875,7 +2888,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) else if (trainerId == TRAINER_FRONTIER_BRAIN) { gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], - sub_8190938, + SpriteCb_MonIcon, x | gUnknown_0860D340[i], y + gUnknown_0860D343[i], 0, 0, TRUE); @@ -2884,7 +2897,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) else { gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species, - sub_8190938, + SpriteCb_MonIcon, x | gUnknown_0860D340[i], y + gUnknown_0860D343[i], 0, 0, TRUE); @@ -3250,3 +3263,212 @@ s32 sub_8192F08(u8 arg0, u8 *arg1) else return retVal + 1; } + +static void DrawMatchInfoOnCard(u8 flags, u8 matchNo) +{ + struct TextSubPrinter textPrinter; + s32 tournamentIds[2]; + s32 trainerIds[2]; + bool32 lost[2]; + s32 i; + s32 winStringId = 0; + s32 arrId = 0; + s32 windowId = 0; + s32 x = 0, y = 0; + u8 palSlot = 0; + + if (flags & 1) + arrId = 8, windowId = 9, palSlot = 2; + if (flags & 2) + x = 256; + if (flags & 4) + y = 160; + if (flags & 8) + x = -256; + if (flags & 0x10) + y = -160; + + // Copy trainers information to handy arrays. + winStringId = sub_8192F08(matchNo, gUnknown_0203CD78->unk_11); + for (i = 0; i < 2; i++) + { + tournamentIds[i] = gUnknown_0203CD78->unk_11[i]; + trainerIds[i] = gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].trainerId; + if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].unk2 <= gUnknown_0860D3C4[matchNo][2] + && gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].unk1) + lost[i] = TRUE; + else + lost[i] = FALSE; + } + + // Draw first trainer sprite. + if (trainerIds[0] == TRAINER_PLAYER) + gUnknown_0203CD78->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); + else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN) + gUnknown_0203CD78->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); + else + gUnknown_0203CD78->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[0]), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); + + if (flags & 0x1E) + gSprites[gUnknown_0203CD78->arr[arrId]].invisible = 1; + if (lost[0]) + gSprites[gUnknown_0203CD78->arr[arrId]].oam.paletteNum = 3; + + // Draw second trainer sprite. + if (trainerIds[1] == TRAINER_PLAYER) + gUnknown_0203CD78->arr[1 + arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); + else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN) + gUnknown_0203CD78->arr[1 + arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); + else + gUnknown_0203CD78->arr[1 + arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[1]), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); + + if (flags & 0x1E) + gSprites[gUnknown_0203CD78->arr[1 + arrId]].invisible = 1; + if (lost[1]) + gSprites[gUnknown_0203CD78->arr[1 + arrId]].oam.paletteNum = 3; + + // Draw first trainer's pokemon icons. + for (i = 0; i < 3; i++) + { + if (trainerIds[0] == TRAINER_PLAYER) + { + gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i], + SpriteCb_MonIcon, + x | gUnknown_0860D3A8[i], + y + gUnknown_0860D3AB[i], + 0, 0, TRUE); + gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.priority = 0; + } + else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN) + { + gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i], + SpriteCb_MonIcon, + x | gUnknown_0860D3A8[i], + y + gUnknown_0860D3AB[i], + 0, 0, TRUE); + gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.priority = 0; + } + else + { + gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i]].species, + SpriteCb_MonIcon, + x | gUnknown_0860D3A8[i], + y + gUnknown_0860D3AB[i], + 0, 0, TRUE); + gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.priority = 0; + } + + if (flags & 0x1E) + gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].invisible = 1; + if (lost[0]) + { + gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.paletteNum = 3; + gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].sMonIconStill = TRUE; + } + } + + // Draw second trainer's pokemon icons. + for (i = 0; i < 3; i++) + { + if (trainerIds[1] == TRAINER_PLAYER) + { + gUnknown_0203CD78->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i], + SpriteCb_MonIcon, + x | gUnknown_0860D3AE[i], + y + gUnknown_0860D3B1[i], + 0, 0, TRUE); + gSprites[gUnknown_0203CD78->arr[5 + i + arrId]].oam.priority = 0; + } + else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN) + { + gUnknown_0203CD78->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i], + SpriteCb_MonIcon, + x | gUnknown_0860D3AE[i], + y + gUnknown_0860D3B1[i], + 0, 0, TRUE); + gSprites[gUnknown_0203CD78->arr[5 + i + arrId]].oam.priority = 0; + } + else + { + gUnknown_0203CD78->arr[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i]].species, + SpriteCb_MonIcon, + x | gUnknown_0860D3AE[i], + y + gUnknown_0860D3B1[i], + 0, 0, TRUE); + gSprites[gUnknown_0203CD78->arr[5 + i + arrId]].oam.priority = 0; + } + + if (flags & 0x1E) + gSprites[gUnknown_0203CD78->arr[5 + i + arrId]].invisible = 1; + if (lost[1]) + { + gSprites[gUnknown_0203CD78->arr[5 + i + arrId]].oam.paletteNum = 3; + gSprites[gUnknown_0203CD78->arr[5 + i + arrId]].sMonIconStill = TRUE; + } + } + + // Print the win string (or 'Let the battle begin!' one). + textPrinter.x = 0; + textPrinter.y = 2; + textPrinter.currentX = textPrinter.x; + textPrinter.currentY = textPrinter.y; + textPrinter.letterSpacing = 0; + textPrinter.lineSpacing = 0; + textPrinter.fontColor_l = 0; + textPrinter.fgColor = 14; + textPrinter.bgColor = 0; + textPrinter.shadowColor = 13; + StringExpandPlaceholders(gStringVar4, gBattleDomeWinStringsPointers[winStringId]); + textPrinter.current_text_offset = gStringVar4; + textPrinter.windowId = windowId + 8; + textPrinter.fontId = 1; + PutWindowTilemap(windowId + 8); + CopyWindowToVram(windowId + 8, 3); + textPrinter.currentX = 0; + textPrinter.currentY = textPrinter.y = 0; + AddTextPrinter(&textPrinter, 0, NULL); + + // Print first trainer's name. + if (trainerIds[0] == TRAINER_PLAYER) + StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); + else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN) + CopyDomeBrainTrainerName(gStringVar1); + else + CopyDomeOpponentName(gStringVar1, trainerIds[0]); + + textPrinter.fontId = 2; + textPrinter.letterSpacing = 2; + textPrinter.current_text_offset = gStringVar1; + textPrinter.windowId = windowId + 6; + textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.current_text_offset, 0x40, textPrinter.letterSpacing); + textPrinter.currentY = textPrinter.y = 2; + PutWindowTilemap(windowId + 6); + CopyWindowToVram(windowId + 6, 3); + AddTextPrinter(&textPrinter, 0, NULL); + + // Print second trainer's name. + if (trainerIds[1] == TRAINER_PLAYER) + StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); + else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN) + CopyDomeBrainTrainerName(gStringVar1); + else + CopyDomeOpponentName(gStringVar1, trainerIds[1]); + + textPrinter.current_text_offset = gStringVar1; + textPrinter.windowId = windowId + 7; + textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.current_text_offset, 0x40, textPrinter.letterSpacing); + textPrinter.currentY = textPrinter.y = 2; + PutWindowTilemap(windowId + 7); + CopyWindowToVram(windowId + 7, 3); + AddTextPrinter(&textPrinter, 0, NULL); + + // Print match number. + textPrinter.letterSpacing = 0; + textPrinter.current_text_offset = gBattleDomeMatchNumberPointers[matchNo]; + textPrinter.windowId = windowId + 5; + textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.current_text_offset, 0xA0, textPrinter.letterSpacing); + textPrinter.currentY = textPrinter.y = 2; + PutWindowTilemap(windowId + 5); + CopyWindowToVram(windowId + 5, 3); + AddTextPrinter(&textPrinter, 0, NULL); +} From dea1de3fed1e47323dd148fa62225712fc0d52b2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 21 Aug 2018 23:36:59 +0200 Subject: [PATCH 124/174] More battle dome --- asm/battle_frontier_1.s | 518 ---------------------------------------- src/battle_frontier_1.c | 186 ++++++++++++++- 2 files changed, 177 insertions(+), 527 deletions(-) diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index a68dbf3296..c6866ebf05 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -5,525 +5,7 @@ .text - thumb_func_start sub_81938A4 -sub_81938A4: @ 81938A4 - push {lr} - ldr r0, =sub_8194220 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - strh r2, [r1, 0xA] - movs r0, 0x2 - strh r0, [r1, 0xC] - strh r2, [r1, 0x10] - ldr r0, =sub_8194B54 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81938A4 - thumb_func_start sub_81938E0 -sub_81938E0: @ 81938E0 - push {r4,lr} - bl sub_8194D48 - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - ldr r1, =0x00000d0a - adds r0, r2, r1 - ldrb r1, [r0] - subs r1, 0x1 - ldr r0, =0x00000ca9 - adds r2, r0 - movs r0, 0x3 - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4] - ldr r1, =0x00000cb2 - adds r0, r1 - movs r4, 0 - movs r1, 0x3 - strh r1, [r0] - ldr r0, =sub_8194220 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r4, [r1, 0xA] - movs r0, 0x2 - strh r0, [r1, 0xC] - movs r0, 0x1 - strh r0, [r1, 0x10] - ldr r0, =sub_8194B54 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81938E0 - - thumb_func_start sub_819395C -sub_819395C: @ 819395C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0xA - ldrsh r7, [r0, r2] - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x7 - bls _0819397E - b _08193BC2 -_0819397E: - lsls r0, 2 - ldr r1, =_08193990 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08193990: - .4byte _081939B0 - .4byte _08193A00 - .4byte _08193A20 - .4byte _08193AA8 - .4byte _08193BC2 - .4byte _08193B20 - .4byte _08193BC2 - .4byte _08193B84 -_081939B0: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _081939C2 - b _08193BC2 -_081939C2: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x8] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim - b _08193BC2 - .pool -_08193A00: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08193A0E - b _08193BC2 -_08193A0E: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x8] - b _08193BC2 - .pool -_08193A20: - adds r0, r5, 0 - bl sub_8193BDC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08193A30 - b _08193BC2 -_08193A30: - cmp r0, 0x1 - ble _08193A3C - cmp r0, 0x2 - beq _08193A60 - cmp r0, 0x3 - beq _08193A84 -_08193A3C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x7 - strh r1, [r0, 0x8] - b _08193BC2 - .pool -_08193A60: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x8] - b _08193BC2 - .pool -_08193A84: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x5 - strh r1, [r0, 0x8] - b _08193BC2 - .pool -_08193AA8: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _08193ABA - b _08193BC2 -_08193ABA: - bl FreeAllWindowBuffers - bl ScanlineEffect_Stop - ldr r4, =gUnknown_0203CD7C - ldr r0, [r4] - bl Free - str r6, [r4] - ldr r0, =sub_8190400 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r2 - movs r3, 0 - strh r6, [r1, 0x8] - ldr r0, =gUnknown_0860D080 - adds r0, r7, r0 - ldrb r0, [r0] - strh r0, [r1, 0xA] - movs r0, 0x1 - strh r0, [r1, 0xC] - strh r5, [r1, 0xE] - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x4 - strh r1, [r0, 0x8] - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - strb r3, [r0, 0x10] - b _08193BC2 - .pool -_08193B20: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _08193BC2 - bl FreeAllWindowBuffers - bl ScanlineEffect_Stop - ldr r4, =gUnknown_0203CD7C - ldr r0, [r4] - bl Free - str r6, [r4] - ldr r0, =sub_8190400 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r2 - strh r6, [r0, 0x8] - adds r1, r7, 0 - subs r1, 0x10 - strh r1, [r0, 0xA] - movs r1, 0x2 - strh r1, [r0, 0xC] - strh r5, [r0, 0xE] - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x6 - strh r1, [r0, 0x8] - b _08193BC2 - .pool -_08193B84: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _08193BC2 - bl FreeAllWindowBuffers - bl ScanlineEffect_Stop - ldr r4, =gUnknown_0203CD7C - ldr r0, [r4] - bl Free - str r6, [r4] - ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl SetMainCallback2 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x16] - bl DestroyTask - adds r0, r5, 0 - bl DestroyTask -_08193BC2: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819395C - - thumb_func_start sub_8193BDC -sub_8193BDC: @ 8193BDC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x1 - mov r9, r0 - movs r1, 0x4 - mov r8, r1 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0xA - ldrsh r5, [r0, r1] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r6, [r0] - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - adds r2, r1, 0 - adds r3, r0, 0 - cmp r2, 0x2 - beq _08193C20 - mov r0, r9 - ands r0, r1 - cmp r0, 0 - beq _08193C58 - cmp r5, 0x1F - bne _08193C3C -_08193C20: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - mov r9, r0 - b _08193CDE - .pool -_08193C3C: - cmp r5, 0xF - bgt _08193C4C - movs r0, 0x5 - bl PlaySE - movs r1, 0x2 - mov r9, r1 - b _08193CDE -_08193C4C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x3 - mov r9, r0 - b _08193CDE -_08193C58: - cmp r2, 0x40 - bne _08193C78 - ldr r0, =gUnknown_0860CBF1 - lsls r1, r5, 2 - adds r1, r5 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08193C78 - movs r1, 0 - mov r8, r1 - b _08193CDE - .pool -_08193C78: - ldrh r0, [r3, 0x2E] - cmp r0, 0x80 - bne _08193C9C - ldr r0, =gUnknown_0860CBF1 - lsls r1, r5, 2 - adds r1, r5 - adds r1, r6 - lsls r1, 2 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08193C9C - movs r0, 0x1 - b _08193CDC - .pool -_08193C9C: - ldrh r0, [r3, 0x2E] - cmp r0, 0x20 - bne _08193CC0 - ldr r0, =gUnknown_0860CBF1 - lsls r1, r5, 2 - adds r1, r5 - adds r1, r6 - lsls r1, 2 - adds r0, 0x2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08193CC0 - movs r1, 0x2 - mov r8, r1 - b _08193CDE - .pool -_08193CC0: - ldrh r0, [r3, 0x2E] - cmp r0, 0x10 - bne _08193CDE - ldr r0, =gUnknown_0860CBF1 - lsls r1, r5, 2 - adds r1, r5 - adds r1, r6 - lsls r1, 2 - adds r0, 0x3 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08193CDE - movs r0, 0x3 -_08193CDC: - mov r8, r0 -_08193CDE: - mov r1, r8 - cmp r1, 0x4 - beq _08193D26 - movs r0, 0x5 - bl PlaySE - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - movs r1, 0 - bl StartSpriteAnim - ldr r2, =gUnknown_0860CBF1 - lsls r1, r6, 2 - add r1, r8 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 2 - adds r1, r0 - adds r1, r2 - ldrb r5, [r1] - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAnim - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0xA] -_08193D26: - mov r0, r9 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8193BDC thumb_func_start sub_8193D40 sub_8193D40: @ 8193D40 diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index ccead08454..db6f99c8c7 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -23,6 +23,7 @@ #include "data2.h" #include "international_string_util.h" #include "trainer_pokemon_sprites.h" +#include "scanline_effect.h" #include "constants/species.h" #include "constants/moves.h" #include "constants/trainers.h" @@ -80,6 +81,7 @@ extern u16 gBattle_BG3_X; extern u16 gBattle_BG3_Y; extern struct Unknown_0203BC8C_Struct *gFacilityTrainerMons; extern struct Unknown_0203CD78_Struct *gUnknown_0203CD78; +extern void *gUnknown_0203CD7C; extern void (* const gUnknown_0860D090[])(void); extern const u32 gUnknown_0860D0EC[][2]; @@ -109,6 +111,8 @@ extern const u8 gUnknown_0860D3A8[]; extern const u8 gUnknown_0860D3AB[]; extern const u8 gUnknown_0860D3AE[]; extern const u8 gUnknown_0860D3B1[]; +extern const u8 gUnknown_0860D080[]; +extern const u8 gUnknown_0860CBF1[][5][4]; extern const u8 *const gBattleDomePotentialPointers[]; extern const u8 *const gBattleDomeOpponentStylePointers[]; extern const u8 *const gBattleDomeOpponentStatsPointers[]; @@ -144,7 +148,7 @@ void sub_8190CD4(u8 taskId); void sub_8194220(u8 taskId); void sub_8194B54(void); void sub_8194B70(void); -static void DrawMatchInfoOnCard(u8 flags, u8 matchNo); +static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo); static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId); u8 sub_819221C(u8 taskId); s32 sub_8192F08(u8, u8*); @@ -152,6 +156,8 @@ u8 GetDomeBrainTrainerPicId(void); u8 GetDomeBrainTrainerClass(void); void CopyDomeBrainTrainerName(u8 *dst); void CopyDomeOpponentName(u8 *dst, u16 trainerId); +void sub_8194D48(void); +u8 sub_8193BDC(u8 taskId); // const rom data ALIGNED(4) @@ -1701,7 +1707,7 @@ void sub_8190400(u8 taskId) gTasks[i].data[4] = r7; if (r9 == 2) { - DrawMatchInfoOnCard(0, r5); + DisplayMatchInfoOnCard(0, r5); gUnknown_0203CD78->unk_10 = 1; } else @@ -2127,7 +2133,7 @@ void sub_8190CD4(u8 taskId) gBattle_BG2_X = 256; gBattle_BG2_Y = 160; matchNo = gTasks[taskId2].data[1] - 16; - DrawMatchInfoOnCard(gTasks[taskId].data[2] | 0x10, matchNo); + DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 0x10, matchNo); } } @@ -2243,7 +2249,7 @@ void sub_8190CD4(u8 taskId) gBattle_BG2_X = 256; gBattle_BG2_Y = 0; matchNo = gTasks[taskId2].data[1] - 16; - DrawMatchInfoOnCard(gTasks[taskId].data[2] | 4, matchNo); + DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 4, matchNo); } } @@ -2327,7 +2333,7 @@ void sub_8190CD4(u8 taskId) gBattle_BG2_X = 256; gBattle_BG2_Y = 0; matchNo = gUnknown_0860D15C[(gTasks[taskId2].data[1] * 4) + (gUnknown_0203CD78->unk_10 - 1)]; - DrawMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); + DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); } for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) @@ -2410,7 +2416,7 @@ void sub_8190CD4(u8 taskId) gBattle_BG2_X = 0; gBattle_BG2_Y = 160; matchNo = gTasks[taskId2].data[1] - 16; - DrawMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); + DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); } for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) @@ -2492,7 +2498,7 @@ void sub_8190CD4(u8 taskId) gBattle_BG2_Y = 0; } matchNo = gUnknown_0860D15C[(gUnknown_0203CD78->unk_10 - 1) + (gTasks[taskId2].data[1] * 4)]; - DrawMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo); + DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo); for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) { @@ -2574,7 +2580,7 @@ void sub_8190CD4(u8 taskId) gBattle_BG2_X = 0; gBattle_BG2_Y = 160; matchNo = gTasks[taskId2].data[1] - 16; - DrawMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo); + DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo); } for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) @@ -3264,7 +3270,7 @@ s32 sub_8192F08(u8 arg0, u8 *arg1) return retVal + 1; } -static void DrawMatchInfoOnCard(u8 flags, u8 matchNo) +static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) { struct TextSubPrinter textPrinter; s32 tournamentIds[2]; @@ -3472,3 +3478,165 @@ static void DrawMatchInfoOnCard(u8 flags, u8 matchNo) CopyWindowToVram(windowId + 5, 3); AddTextPrinter(&textPrinter, 0, NULL); } + +void sub_81938A4(void) +{ + u8 taskId = CreateTask(sub_8194220, 0); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = 2; + gTasks[taskId].data[4] = 0; + SetMainCallback2(sub_8194B54); +} + +void sub_81938E0(void) +{ + u8 taskId; + + sub_8194D48(); + gSaveBlock2Ptr->frontier.chosenLvl = gSaveBlock2Ptr->frontier.field_D0A - 1; + gSaveBlock2Ptr->frontier.field_CB2 = 3; + taskId = CreateTask(sub_8194220, 0); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = 2; + gTasks[taskId].data[4] = 1; + SetMainCallback2(sub_8194B54); +} + +void sub_819395C(u8 taskId) +{ + u8 newTaskId = 0; + s32 spriteId = gTasks[taskId].data[1]; + + switch (gTasks[taskId].data[0]) + { + case 0: + if (!gPaletteFade.active) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + gTasks[taskId].data[0] = 1; + StartSpriteAnim(&gSprites[spriteId], 1); + } + break; + case 1: + if (!gPaletteFade.active) + gTasks[taskId].data[0] = 2; + break; + case 2: + switch (sub_8193BDC(taskId)) + { + case 0: + default: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0] = 7; + break; + case 1: + break; + case 2: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0] = 3; + break; + case 3: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0] = 5; + break; + } + break; + case 3: + if (!gPaletteFade.active) + { + FreeAllWindowBuffers(); + ScanlineEffect_Stop(); + FREE_AND_SET_NULL(gUnknown_0203CD7C); + newTaskId = CreateTask(sub_8190400, 0); + gTasks[newTaskId].data[0] = 0; + gTasks[newTaskId].data[1] = gUnknown_0860D080[spriteId]; + gTasks[newTaskId].data[2] = 1; + gTasks[newTaskId].data[3] = taskId; + + gTasks[taskId].data[0] = 4; + gUnknown_0203CD78->unk_10 = 0; + } + break; + case 4: + break; + case 5: + if (!gPaletteFade.active) + { + FreeAllWindowBuffers(); + ScanlineEffect_Stop(); + FREE_AND_SET_NULL(gUnknown_0203CD7C); + newTaskId = CreateTask(sub_8190400, 0); + gTasks[newTaskId].data[0] = 0; + gTasks[newTaskId].data[1] = spriteId - 16; + gTasks[newTaskId].data[2] = 2; + gTasks[newTaskId].data[3] = taskId; + + gTasks[taskId].data[0] = 6; + } + break; + case 6: + break; + case 7: + if (!gPaletteFade.active) + { + FreeAllWindowBuffers(); + ScanlineEffect_Stop(); + FREE_AND_SET_NULL(gUnknown_0203CD7C); + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + DestroyTask(gTasks[taskId].data[7]); + DestroyTask(taskId); + } + break; + } +} + +u8 sub_8193BDC(u8 taskId) +{ + u8 retVal = 1; + s32 arrId = 4; + s32 spriteId = gTasks[taskId].data[1]; + s32 roundId = gSaveBlock2Ptr->frontier.field_CB2; + + if (gMain.newKeys == B_BUTTON || (gMain.newKeys & A_BUTTON && spriteId == 31)) + { + PlaySE(SE_SELECT); + retVal = 0; + } + else if (gMain.newKeys & A_BUTTON) + { + if (spriteId < 16) + { + PlaySE(SE_SELECT); + retVal = 2; + } + else + { + PlaySE(SE_SELECT); + retVal = 3; + } + } + else + { + if (gMain.newKeys == DPAD_UP && gUnknown_0860CBF1[spriteId][roundId][0] != 0xFF) + arrId = 0; + else if (gMain.newKeys == DPAD_DOWN && gUnknown_0860CBF1[spriteId][roundId][1] != 0xFF) + arrId = 1; + else if (gMain.newKeys == DPAD_LEFT && gUnknown_0860CBF1[spriteId][roundId][2] != 0xFF) + arrId = 2; + else if (gMain.newKeys == DPAD_RIGHT && gUnknown_0860CBF1[spriteId][roundId][3] != 0xFF) + arrId = 3; + } + + if (arrId != 4) + { + PlaySE(SE_SELECT); + StartSpriteAnim(&gSprites[spriteId], 0); + spriteId = gUnknown_0860CBF1[spriteId][roundId][arrId]; + StartSpriteAnim(&gSprites[spriteId], 1); + gTasks[taskId].data[1] = spriteId; + } + + return retVal; +} From ef6a3c2278c63d1e29d8b2352f2b08b63e0d97de Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Wed, 22 Aug 2018 14:34:36 +0100 Subject: [PATCH 125/174] Move some data from data2b.s to C --- data/data2b.s | 131 - data/enemy_mon_elevation.inc | 415 - data/graphics/pokemon/front_anims.inc | 6915 --------------- data/graphics/pokemon/front_pic_table.inc | 442 - data/graphics/trainers/back_pic_coords.inc | 10 - .../trainers/back_pic_palette_table.inc | 10 - data/graphics/trainers/back_pic_table.inc | 10 - .../pokemon_graphics/enemy_mon_elevation.h | 417 + include/data/pokemon_graphics/front_anims.h | 7391 +++++++++++++++++ .../data/pokemon_graphics/front_pic_table.h | 446 + .../data/trainer_graphics/back_pic_tables.h | 35 + .../data/trainer_graphics/front_pic_tables.h | 290 + include/graphics.h | 204 + ld_script.txt | 1 + src/data2b.c | 127 + 15 files changed, 8911 insertions(+), 7933 deletions(-) delete mode 100644 data/enemy_mon_elevation.inc delete mode 100644 data/graphics/pokemon/front_anims.inc delete mode 100644 data/graphics/pokemon/front_pic_table.inc delete mode 100644 data/graphics/trainers/back_pic_coords.inc delete mode 100644 data/graphics/trainers/back_pic_palette_table.inc delete mode 100644 data/graphics/trainers/back_pic_table.inc create mode 100644 include/data/pokemon_graphics/enemy_mon_elevation.h create mode 100644 include/data/pokemon_graphics/front_anims.h create mode 100644 include/data/pokemon_graphics/front_pic_table.h create mode 100644 include/data/trainer_graphics/back_pic_tables.h create mode 100644 include/data/trainer_graphics/front_pic_tables.h create mode 100644 src/data2b.c diff --git a/data/data2b.s b/data/data2b.s index bf28d13d62..31020a852c 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -4499,134 +4499,3 @@ gUnknown_08305D0C:: @ 8305D0C .4byte gUnknown_08305CF4 .4byte gUnknown_08305CFC .4byte gUnknown_08305D04 - - -@ 8305D2C - .include "data/graphics/trainers/back_pic_coords.inc" - -@ 8305D4C - .include "data/graphics/trainers/back_pic_table.inc" - -@ 8305D8C - .include "data/graphics/trainers/back_pic_palette_table.inc" - -@ 8305DCC - .include "data/enemy_mon_elevation.inc" - -@ 8305F68 - .include "data/graphics/pokemon/front_anims.inc" - -@ 830A18C - .include "data/graphics/pokemon/front_pic_table.inc" - -@ 830AF4C - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000088, 0x00000888, 0x00000888, 0x00000886 - .4byte 0x00000888, 0x00000886, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000886, 0x00000886 - .4byte 0x00000888, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000888, 0x00000886, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000886, 0x00000886 - .4byte 0x00000888, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000886, 0x00000886, 0x00000088 - .4byte 0x00000886, 0x00000886, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000886, 0x00000888, 0x00000088, 0x00000088 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000886 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000886 - .4byte 0x00000886, 0x00000886, 0x00000886, 0x00000886 - .4byte 0x00000886, 0x00000886, 0x00000888, 0x00000888 - .4byte 0x00000886, 0x00000886, 0x00000886, 0x00000886 - .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000886, 0x00000886, 0x00000888 - .4byte 0x00000886, 0x00000886, 0x00000888, 0x00000888 - .4byte 0x00000088, 0x00000088, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000886, 0x00000886, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000088, 0x00000886 - .4byte 0x00000888, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000888, 0x00000886, 0x00000888 - .4byte 0x00000088, 0x00000088, 0x00000886, 0x00000886 - .4byte 0x00000088, 0x00000088, 0x00000888, 0x00000886 - .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000088 - .4byte 0x00000888, 0x00000886, 0x00000886, 0x00000888 - .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000886 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000088, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000088, 0x00000888, 0x00000888, 0x00000886 - .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000886 - .4byte 0x00000888, 0x00000886, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000888, 0x00000088, 0x00000888 - .4byte 0x00000888, 0x00000088, 0x00000088, 0x00000888 - .4byte 0x00000886, 0x00000888, 0x00000886, 0x00000886 - .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000088, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000088, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000088, 0x00000088 - .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000088, 0x00000888 - .4byte 0x00000886, 0x00000888, 0x00000088, 0x00000088 - .4byte 0x00000888, 0x00000888, 0x00000088, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000088 - .4byte 0x00000888, 0x00000888, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000888, 0x00000088, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000886, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000886, 0x00000886, 0x00000886 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000886 - .4byte 0x00000088, 0x00000886, 0x00000886, 0x00000886 - .4byte 0x00000088, 0x00000886, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000886 - .4byte 0x00000886, 0x00000886, 0x00000888, 0x00000888 - .4byte 0x00000886, 0x00000886, 0x00000886, 0x00000886 - .4byte 0x00000088, 0x00000088, 0x00000886, 0x00000886 - .4byte 0x00001882, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000886, 0x00000886, 0x00000886 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000886, 0x00000088, 0x00000886, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000886, 0x00000886 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000886 - .4byte 0x00000886, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000886, 0x00000088 - .4byte 0x00000088, 0x00000886, 0x00000886, 0x00000886 - .4byte 0x00000886, 0x00000886, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000886 - .4byte 0x00000886, 0x00000886, 0x00000886, 0x00000088 - .4byte 0x00000886, 0x00000088, 0x00000886, 0x00000886 - .4byte 0x00000886, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000886, 0x00000886 - .4byte 0x00000886, 0x00000888, 0x00000886, 0x00000886 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000886, 0x00000886, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 - .4byte 0x00000088, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 - .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 diff --git a/data/enemy_mon_elevation.inc b/data/enemy_mon_elevation.inc deleted file mode 100644 index 2dadadd076..0000000000 --- a/data/enemy_mon_elevation.inc +++ /dev/null @@ -1,415 +0,0 @@ -@ This determines how much higher above the usual position the enemy Pokémon -@ is during battle. Species that float or fly have nonzero values. -gEnemyMonElevation:: @ 8305DCC - .byte 0 @ 0 - .byte 0 @ SPECIES_BULBASAUR - .byte 0 @ SPECIES_IVYSAUR - .byte 0 @ SPECIES_VENUSAUR - .byte 0 @ SPECIES_CHARMANDER - .byte 0 @ SPECIES_CHARMELEON - .byte 0 @ SPECIES_CHARIZARD - .byte 0 @ SPECIES_SQUIRTLE - .byte 0 @ SPECIES_WARTORTLE - .byte 0 @ SPECIES_BLASTOISE - .byte 0 @ SPECIES_CATERPIE - .byte 0 @ SPECIES_METAPOD - .byte 8 @ SPECIES_BUTTERFREE - .byte 0 @ SPECIES_WEEDLE - .byte 0 @ SPECIES_KAKUNA - .byte 8 @ SPECIES_BEEDRILL - .byte 16 @ SPECIES_PIDGEY - .byte 0 @ SPECIES_PIDGEOTTO - .byte 4 @ SPECIES_PIDGEOT - .byte 0 @ SPECIES_RATTATA - .byte 0 @ SPECIES_RATICATE - .byte 0 @ SPECIES_SPEAROW - .byte 6 @ SPECIES_FEAROW - .byte 0 @ SPECIES_EKANS - .byte 0 @ SPECIES_ARBOK - .byte 0 @ SPECIES_PIKACHU - .byte 0 @ SPECIES_RAICHU - .byte 0 @ SPECIES_SANDSHREW - .byte 0 @ SPECIES_SANDSLASH - .byte 0 @ SPECIES_NIDORAN_F - .byte 0 @ SPECIES_NIDORINA - .byte 0 @ SPECIES_NIDOQUEEN - .byte 0 @ SPECIES_NIDORAN_M - .byte 0 @ SPECIES_NIDORINO - .byte 0 @ SPECIES_NIDOKING - .byte 0 @ SPECIES_CLEFAIRY - .byte 0 @ SPECIES_CLEFABLE - .byte 0 @ SPECIES_VULPIX - .byte 0 @ SPECIES_NINETALES - .byte 0 @ SPECIES_JIGGLYPUFF - .byte 0 @ SPECIES_WIGGLYTUFF - .byte 8 @ SPECIES_ZUBAT - .byte 8 @ SPECIES_GOLBAT - .byte 0 @ SPECIES_ODDISH - .byte 0 @ SPECIES_GLOOM - .byte 0 @ SPECIES_VILEPLUME - .byte 0 @ SPECIES_PARAS - .byte 0 @ SPECIES_PARASECT - .byte 0 @ SPECIES_VENONAT - .byte 8 @ SPECIES_VENOMOTH - .byte 0 @ SPECIES_DIGLETT - .byte 0 @ SPECIES_DUGTRIO - .byte 0 @ SPECIES_MEOWTH - .byte 0 @ SPECIES_PERSIAN - .byte 0 @ SPECIES_PSYDUCK - .byte 0 @ SPECIES_GOLDUCK - .byte 0 @ SPECIES_MANKEY - .byte 0 @ SPECIES_PRIMEAPE - .byte 0 @ SPECIES_GROWLITHE - .byte 0 @ SPECIES_ARCANINE - .byte 0 @ SPECIES_POLIWAG - .byte 0 @ SPECIES_POLIWHIRL - .byte 0 @ SPECIES_POLIWRATH - .byte 0 @ SPECIES_ABRA - .byte 0 @ SPECIES_KADABRA - .byte 0 @ SPECIES_ALAKAZAM - .byte 0 @ SPECIES_MACHOP - .byte 0 @ SPECIES_MACHOKE - .byte 0 @ SPECIES_MACHAMP - .byte 0 @ SPECIES_BELLSPROUT - .byte 0 @ SPECIES_WEEPINBELL - .byte 0 @ SPECIES_VICTREEBEL - .byte 0 @ SPECIES_TENTACOOL - .byte 0 @ SPECIES_TENTACRUEL - .byte 16 @ SPECIES_GEODUDE - .byte 0 @ SPECIES_GRAVELER - .byte 0 @ SPECIES_GOLEM - .byte 0 @ SPECIES_PONYTA - .byte 0 @ SPECIES_RAPIDASH - .byte 0 @ SPECIES_SLOWPOKE - .byte 0 @ SPECIES_SLOWBRO - .byte 16 @ SPECIES_MAGNEMITE - .byte 8 @ SPECIES_MAGNETON - .byte 0 @ SPECIES_FARFETCHD - .byte 0 @ SPECIES_DODUO - .byte 0 @ SPECIES_DODRIO - .byte 0 @ SPECIES_SEEL - .byte 0 @ SPECIES_DEWGONG - .byte 0 @ SPECIES_GRIMER - .byte 0 @ SPECIES_MUK - .byte 0 @ SPECIES_SHELLDER - .byte 0 @ SPECIES_CLOYSTER - .byte 4 @ SPECIES_GASTLY - .byte 4 @ SPECIES_HAUNTER - .byte 0 @ SPECIES_GENGAR - .byte 0 @ SPECIES_ONIX - .byte 0 @ SPECIES_DROWZEE - .byte 0 @ SPECIES_HYPNO - .byte 0 @ SPECIES_KRABBY - .byte 0 @ SPECIES_KINGLER - .byte 10 @ SPECIES_VOLTORB - .byte 12 @ SPECIES_ELECTRODE - .byte 0 @ SPECIES_EXEGGCUTE - .byte 0 @ SPECIES_EXEGGUTOR - .byte 0 @ SPECIES_CUBONE - .byte 0 @ SPECIES_MAROWAK - .byte 0 @ SPECIES_HITMONLEE - .byte 0 @ SPECIES_HITMONCHAN - .byte 0 @ SPECIES_LICKITUNG - .byte 8 @ SPECIES_KOFFING - .byte 6 @ SPECIES_WEEZING - .byte 0 @ SPECIES_RHYHORN - .byte 0 @ SPECIES_RHYDON - .byte 0 @ SPECIES_CHANSEY - .byte 0 @ SPECIES_TANGELA - .byte 0 @ SPECIES_KANGASKHAN - .byte 0 @ SPECIES_HORSEA - .byte 0 @ SPECIES_SEADRA - .byte 0 @ SPECIES_GOLDEEN - .byte 0 @ SPECIES_SEAKING - .byte 0 @ SPECIES_STARYU - .byte 0 @ SPECIES_STARMIE - .byte 0 @ SPECIES_MR_MIME - .byte 0 @ SPECIES_SCYTHER - .byte 0 @ SPECIES_JYNX - .byte 0 @ SPECIES_ELECTABUZZ - .byte 0 @ SPECIES_MAGMAR - .byte 0 @ SPECIES_PINSIR - .byte 0 @ SPECIES_TAUROS - .byte 0 @ SPECIES_MAGIKARP - .byte 0 @ SPECIES_GYARADOS - .byte 0 @ SPECIES_LAPRAS - .byte 0 @ SPECIES_DITTO - .byte 0 @ SPECIES_EEVEE - .byte 0 @ SPECIES_VAPOREON - .byte 0 @ SPECIES_JOLTEON - .byte 0 @ SPECIES_FLAREON - .byte 0 @ SPECIES_PORYGON - .byte 0 @ SPECIES_OMANYTE - .byte 0 @ SPECIES_OMASTAR - .byte 0 @ SPECIES_KABUTO - .byte 0 @ SPECIES_KABUTOPS - .byte 7 @ SPECIES_AERODACTYL - .byte 0 @ SPECIES_SNORLAX - .byte 6 @ SPECIES_ARTICUNO - .byte 8 @ SPECIES_ZAPDOS - .byte 5 @ SPECIES_MOLTRES - .byte 0 @ SPECIES_DRATINI - .byte 0 @ SPECIES_DRAGONAIR - .byte 6 @ SPECIES_DRAGONITE - .byte 0 @ SPECIES_MEWTWO - .byte 8 @ SPECIES_MEW - .byte 0 @ SPECIES_CHIKORITA - .byte 0 @ SPECIES_BAYLEEF - .byte 0 @ SPECIES_MEGANIUM - .byte 0 @ SPECIES_CYNDAQUIL - .byte 0 @ SPECIES_QUILAVA - .byte 0 @ SPECIES_TYPHLOSION - .byte 0 @ SPECIES_TOTODILE - .byte 0 @ SPECIES_CROCONAW - .byte 0 @ SPECIES_FERALIGATR - .byte 0 @ SPECIES_SENTRET - .byte 0 @ SPECIES_FURRET - .byte 0 @ SPECIES_HOOTHOOT - .byte 0 @ SPECIES_NOCTOWL - .byte 0 @ SPECIES_LEDYBA - .byte 8 @ SPECIES_LEDIAN - .byte 0 @ SPECIES_SPINARAK - .byte 0 @ SPECIES_ARIADOS - .byte 6 @ SPECIES_CROBAT - .byte 0 @ SPECIES_CHINCHOU - .byte 0 @ SPECIES_LANTURN - .byte 0 @ SPECIES_PICHU - .byte 0 @ SPECIES_CLEFFA - .byte 0 @ SPECIES_IGGLYBUFF - .byte 0 @ SPECIES_TOGEPI - .byte 0 @ SPECIES_TOGETIC - .byte 0 @ SPECIES_NATU - .byte 0 @ SPECIES_XATU - .byte 0 @ SPECIES_MAREEP - .byte 0 @ SPECIES_FLAAFFY - .byte 0 @ SPECIES_AMPHAROS - .byte 0 @ SPECIES_BELLOSSOM - .byte 0 @ SPECIES_MARILL - .byte 0 @ SPECIES_AZUMARILL - .byte 0 @ SPECIES_SUDOWOODO - .byte 0 @ SPECIES_POLITOED - .byte 11 @ SPECIES_HOPPIP - .byte 12 @ SPECIES_SKIPLOOM - .byte 9 @ SPECIES_JUMPLUFF - .byte 0 @ SPECIES_AIPOM - .byte 0 @ SPECIES_SUNKERN - .byte 0 @ SPECIES_SUNFLORA - .byte 8 @ SPECIES_YANMA - .byte 0 @ SPECIES_WOOPER - .byte 0 @ SPECIES_QUAGSIRE - .byte 0 @ SPECIES_ESPEON - .byte 0 @ SPECIES_UMBREON - .byte 0 @ SPECIES_MURKROW - .byte 0 @ SPECIES_SLOWKING - .byte 8 @ SPECIES_MISDREAVUS - .byte 8 @ SPECIES_UNOWN - .byte 0 @ SPECIES_WOBBUFFET - .byte 0 @ SPECIES_GIRAFARIG - .byte 0 @ SPECIES_PINECO - .byte 0 @ SPECIES_FORRETRESS - .byte 0 @ SPECIES_DUNSPARCE - .byte 6 @ SPECIES_GLIGAR - .byte 0 @ SPECIES_STEELIX - .byte 0 @ SPECIES_SNUBBULL - .byte 0 @ SPECIES_GRANBULL - .byte 0 @ SPECIES_QWILFISH - .byte 0 @ SPECIES_SCIZOR - .byte 0 @ SPECIES_SHUCKLE - .byte 0 @ SPECIES_HERACROSS - .byte 0 @ SPECIES_SNEASEL - .byte 0 @ SPECIES_TEDDIURSA - .byte 0 @ SPECIES_URSARING - .byte 0 @ SPECIES_SLUGMA - .byte 0 @ SPECIES_MAGCARGO - .byte 0 @ SPECIES_SWINUB - .byte 0 @ SPECIES_PILOSWINE - .byte 0 @ SPECIES_CORSOLA - .byte 0 @ SPECIES_REMORAID - .byte 0 @ SPECIES_OCTILLERY - .byte 0 @ SPECIES_DELIBIRD - .byte 0 @ SPECIES_MANTINE - .byte 0 @ SPECIES_SKARMORY - .byte 0 @ SPECIES_HOUNDOUR - .byte 0 @ SPECIES_HOUNDOOM - .byte 0 @ SPECIES_KINGDRA - .byte 0 @ SPECIES_PHANPY - .byte 0 @ SPECIES_DONPHAN - .byte 0 @ SPECIES_PORYGON2 - .byte 0 @ SPECIES_STANTLER - .byte 0 @ SPECIES_SMEARGLE - .byte 0 @ SPECIES_TYROGUE - .byte 0 @ SPECIES_HITMONTOP - .byte 0 @ SPECIES_SMOOCHUM - .byte 0 @ SPECIES_ELEKID - .byte 0 @ SPECIES_MAGBY - .byte 0 @ SPECIES_MILTANK - .byte 0 @ SPECIES_BLISSEY - .byte 0 @ SPECIES_RAIKOU - .byte 0 @ SPECIES_ENTEI - .byte 0 @ SPECIES_SUICUNE - .byte 0 @ SPECIES_LARVITAR - .byte 0 @ SPECIES_PUPITAR - .byte 0 @ SPECIES_TYRANITAR - .byte 6 @ SPECIES_LUGIA - .byte 6 @ SPECIES_HO_OH - .byte 15 @ SPECIES_CELEBI - .byte 0 @ 252 - .byte 0 @ 253 - .byte 0 @ 254 - .byte 0 @ 255 - .byte 0 @ 256 - .byte 0 @ 257 - .byte 0 @ 258 - .byte 0 @ 259 - .byte 0 @ 260 - .byte 0 @ 261 - .byte 0 @ 262 - .byte 0 @ 263 - .byte 0 @ 264 - .byte 0 @ 265 - .byte 0 @ 266 - .byte 0 @ 267 - .byte 0 @ 268 - .byte 0 @ 269 - .byte 0 @ 270 - .byte 0 @ 271 - .byte 0 @ 272 - .byte 0 @ 273 - .byte 0 @ 274 - .byte 0 @ 275 - .byte 0 @ 276 - .byte 0 @ SPECIES_TREECKO - .byte 0 @ SPECIES_GROVYLE - .byte 0 @ SPECIES_SCEPTILE - .byte 0 @ SPECIES_TORCHIC - .byte 0 @ SPECIES_COMBUSKEN - .byte 0 @ SPECIES_BLAZIKEN - .byte 0 @ SPECIES_MUDKIP - .byte 0 @ SPECIES_MARSHTOMP - .byte 0 @ SPECIES_SWAMPERT - .byte 0 @ SPECIES_POOCHYENA - .byte 0 @ SPECIES_MIGHTYENA - .byte 0 @ SPECIES_ZIGZAGOON - .byte 0 @ SPECIES_LINOONE - .byte 0 @ SPECIES_WURMPLE - .byte 0 @ SPECIES_SILCOON - .byte 8 @ SPECIES_BEAUTIFLY - .byte 0 @ SPECIES_CASCOON - .byte 10 @ SPECIES_DUSTOX - .byte 0 @ SPECIES_LOTAD - .byte 0 @ SPECIES_LOMBRE - .byte 0 @ SPECIES_LUDICOLO - .byte 0 @ SPECIES_SEEDOT - .byte 0 @ SPECIES_NUZLEAF - .byte 0 @ SPECIES_SHIFTRY - .byte 0 @ SPECIES_NINCADA - .byte 10 @ SPECIES_NINJASK - .byte 8 @ SPECIES_SHEDINJA - .byte 0 @ SPECIES_TAILLOW - .byte 0 @ SPECIES_SWELLOW - .byte 0 @ SPECIES_SHROOMISH - .byte 0 @ SPECIES_BRELOOM - .byte 0 @ SPECIES_SPINDA - .byte 16 @ SPECIES_WINGULL - .byte 8 @ SPECIES_PELIPPER - .byte 0 @ SPECIES_SURSKIT - .byte 10 @ SPECIES_MASQUERAIN - .byte 0 @ SPECIES_WAILMER - .byte 0 @ SPECIES_WAILORD - .byte 0 @ SPECIES_SKITTY - .byte 0 @ SPECIES_DELCATTY - .byte 0 @ SPECIES_KECLEON - .byte 4 @ SPECIES_BALTOY - .byte 10 @ SPECIES_CLAYDOL - .byte 0 @ SPECIES_NOSEPASS - .byte 0 @ SPECIES_TORKOAL - .byte 0 @ SPECIES_SABLEYE - .byte 0 @ SPECIES_BARBOACH - .byte 0 @ SPECIES_WHISCASH - .byte 0 @ SPECIES_LUVDISC - .byte 0 @ SPECIES_CORPHISH - .byte 0 @ SPECIES_CRAWDAUNT - .byte 0 @ SPECIES_FEEBAS - .byte 0 @ SPECIES_MILOTIC - .byte 0 @ SPECIES_CARVANHA - .byte 0 @ SPECIES_SHARPEDO - .byte 0 @ SPECIES_TRAPINCH - .byte 0 @ SPECIES_VIBRAVA - .byte 7 @ SPECIES_FLYGON - .byte 0 @ SPECIES_MAKUHITA - .byte 0 @ SPECIES_HARIYAMA - .byte 0 @ SPECIES_ELECTRIKE - .byte 0 @ SPECIES_MANECTRIC - .byte 0 @ SPECIES_NUMEL - .byte 0 @ SPECIES_CAMERUPT - .byte 0 @ SPECIES_SPHEAL - .byte 0 @ SPECIES_SEALEO - .byte 0 @ SPECIES_WALREIN - .byte 0 @ SPECIES_CACNEA - .byte 0 @ SPECIES_CACTURNE - .byte 0 @ SPECIES_SNORUNT - .byte 12 @ SPECIES_GLALIE - .byte 13 @ SPECIES_LUNATONE - .byte 4 @ SPECIES_SOLROCK - .byte 0 @ SPECIES_AZURILL - .byte 0 @ SPECIES_SPOINK - .byte 0 @ SPECIES_GRUMPIG - .byte 0 @ SPECIES_PLUSLE - .byte 0 @ SPECIES_MINUN - .byte 0 @ SPECIES_MAWILE - .byte 0 @ SPECIES_MEDITITE - .byte 0 @ SPECIES_MEDICHAM - .byte 12 @ SPECIES_SWABLU - .byte 8 @ SPECIES_ALTARIA - .byte 0 @ SPECIES_WYNAUT - .byte 9 @ SPECIES_DUSKULL - .byte 0 @ SPECIES_DUSCLOPS - .byte 0 @ SPECIES_ROSELIA - .byte 0 @ SPECIES_SLAKOTH - .byte 0 @ SPECIES_VIGOROTH - .byte 0 @ SPECIES_SLAKING - .byte 0 @ SPECIES_GULPIN - .byte 0 @ SPECIES_SWALOT - .byte 0 @ SPECIES_TROPIUS - .byte 0 @ SPECIES_WHISMUR - .byte 0 @ SPECIES_LOUDRED - .byte 0 @ SPECIES_EXPLOUD - .byte 0 @ SPECIES_CLAMPERL - .byte 0 @ SPECIES_HUNTAIL - .byte 0 @ SPECIES_GOREBYSS - .byte 0 @ SPECIES_ABSOL - .byte 12 @ SPECIES_SHUPPET - .byte 8 @ SPECIES_BANETTE - .byte 0 @ SPECIES_SEVIPER - .byte 0 @ SPECIES_ZANGOOSE - .byte 0 @ SPECIES_RELICANTH - .byte 0 @ SPECIES_ARON - .byte 0 @ SPECIES_LAIRON - .byte 0 @ SPECIES_AGGRON - .byte 16 @ SPECIES_CASTFORM - .byte 0 @ SPECIES_VOLBEAT - .byte 0 @ SPECIES_ILLUMISE - .byte 0 @ SPECIES_LILEEP - .byte 0 @ SPECIES_CRADILY - .byte 0 @ SPECIES_ANORITH - .byte 0 @ SPECIES_ARMALDO - .byte 0 @ SPECIES_RALTS - .byte 0 @ SPECIES_KIRLIA - .byte 0 @ SPECIES_GARDEVOIR - .byte 0 @ SPECIES_BAGON - .byte 0 @ SPECIES_SHELGON - .byte 0 @ SPECIES_SALAMENCE - .byte 8 @ SPECIES_BELDUM - .byte 0 @ SPECIES_METANG - .byte 0 @ SPECIES_METAGROSS - .byte 0 @ SPECIES_REGIROCK - .byte 0 @ SPECIES_REGICE - .byte 0 @ SPECIES_REGISTEEL - .byte 0 @ SPECIES_KYOGRE - .byte 0 @ SPECIES_GROUDON - .byte 6 @ SPECIES_RAYQUAZA - .byte 6 @ SPECIES_LATIAS - .byte 6 @ SPECIES_LATIOS - .byte 12 @ SPECIES_JIRACHI - .byte 8 @ SPECIES_DEOXYS - .byte 12 @ SPECIES_CHIMECHO diff --git a/data/graphics/pokemon/front_anims.inc b/data/graphics/pokemon/front_anims.inc deleted file mode 100644 index 69341c88d7..0000000000 --- a/data/graphics/pokemon/front_anims.inc +++ /dev/null @@ -1,6915 +0,0 @@ - - .align 2 -gAnimCmd_NONE_1:: @ 8305F68 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_BULBASAUR_1:: @ 8305F78 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_IVYSAUR_1:: @ 8305F88 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 36 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_VENUSAUR_1:: @ 8305F98 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_CHARMANDER_1:: @ 8305FA8 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 46 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_CHARMELEON_1:: @ 8305FB8 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gAnimCmd_CHARIZARD_1:: @ 8305FC8 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_SQUIRTLE_1:: @ 8305FD4 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_WARTORTLE_1:: @ 8305FE4 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_BLASTOISE_1:: @ 8305FF4 - obj_image_anim_frame 0, 50 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_CATERPIE_1:: @ 830600C - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_METAPOD_1:: @ 8306030 - obj_image_anim_frame 1, 45 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_BUTTERFREE_1:: @ 830603C - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 25 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_WEEDLE_1:: @ 8306074 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_KAKUNA_1:: @ 8306094 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_BEEDRILL_1:: @ 83060C4 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 28 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_PIDGEY_1:: @ 83060DC - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_PIDGEOTTO_1:: @ 8306110 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_PIDGEOT_1:: @ 8306128 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_RATTATA_1:: @ 830613C - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 28 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_RATICATE_1:: @ 8306150 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_SPEAROW_1:: @ 8306184 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_FEAROW_1:: @ 83061C8 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 7 - obj_image_anim_end - - .align 2 -gAnimCmd_EKANS_1:: @ 83061EC - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_ARBOK_1:: @ 8306208 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_PIKACHU_1:: @ 8306218 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_PIKACHU_2:: @ 8306230 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_RAICHU_1:: @ 8306244 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_RAICHU_2:: @ 830625C - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_SANDSHREW_1:: @ 8306270 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_SANDSHREW_2:: @ 8306288 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_SANDSLASH_1:: @ 830629C - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_SANDSLASH_2:: @ 83062B4 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_NIDORAN_F_1:: @ 83062C8 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 50 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_NIDORINA_1:: @ 83062F0 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_NIDOQUEEN_1:: @ 83062FC - obj_image_anim_frame 1, 45 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_NIDORAN_M_1:: @ 8306308 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_NIDORINO_1:: @ 8306318 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_NIDOKING_1:: @ 8306328 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_CLEFAIRY_1:: @ 830633C - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_CLEFABLE_1:: @ 830634C - obj_image_anim_frame 1, 27 - obj_image_anim_frame 0, 27 - obj_image_anim_frame 1, 24 - obj_image_anim_frame 0, 25 - obj_image_anim_frame 1, 27 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_VULPIX_1:: @ 8306368 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_VULPIX_2:: @ 8306380 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_NINETALES_1:: @ 8306394 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_NINETALES_2:: @ 83063AC - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_JIGGLYPUFF_1:: @ 83063C0 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_JIGGLYPUFF_2:: @ 83063D8 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_WIGGLYTUFF_1:: @ 83063EC - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_WIGGLYTUFF_2:: @ 8306404 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_ZUBAT_1:: @ 8306418 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_end - - .align 2 -gAnimCmd_GOLBAT_1:: @ 8306450 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_ODDISH_1:: @ 83064A0 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 6 - obj_image_anim_end - - .align 2 -gAnimCmd_GLOOM_1:: @ 83064C0 - obj_image_anim_frame 0, 21 - obj_image_anim_frame 1, 45 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_VILEPLUME_1:: @ 83064D4 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 21 - obj_image_anim_frame 0, 13 - obj_image_anim_frame 1, 21 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_PARAS_1:: @ 83064EC - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_PARASECT_1:: @ 8306530 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_VENONAT_1:: @ 830654C - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 35 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_VENOMOTH_1:: @ 8306568 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_end - - .align 2 -gAnimCmd_DIGLETT_1:: @ 83065C4 - obj_image_anim_frame 0, 25 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_DUGTRIO_1:: @ 83065D4 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MEOWTH_1:: @ 8306600 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 17 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_PERSIAN_1:: @ 830661C - obj_image_anim_frame 1, 50 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_PSYDUCK_1:: @ 8306628 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_PSYDUCK_2:: @ 8306640 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_GOLDUCK_1:: @ 8306654 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_GOLDUCK_2:: @ 830666C - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_MANKEY_1:: @ 8306680 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 28 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_PRIMEAPE_1:: @ 830669C - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_GROWLITHE_1:: @ 83066B8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_ARCANINE_1:: @ 83066D4 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_POLIWAG_1:: @ 83066F0 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_POLIWHIRL_1:: @ 8306700 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_POLIWRATH_1:: @ 8306718 - obj_image_anim_frame 1, 45 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_ABRA_1:: @ 8306724 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 21 - obj_image_anim_frame 0, 13 - obj_image_anim_frame 1, 21 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_KADABRA_1:: @ 830673C - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 45 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_ALAKAZAM_1:: @ 830674C - obj_image_anim_frame 0, 9 - obj_image_anim_frame 1, 54 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_MACHOP_1:: @ 830675C - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MACHOKE_1:: @ 830677C - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 44 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_MACHAMP_1:: @ 830678C - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_BELLSPROUT_1:: @ 83067AC - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_WEEPINBELL_1:: @ 83067BC - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_VICTREEBEL_1:: @ 83067DC - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_TENTACOOL_1:: @ 83067FC - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_TENTACRUEL_1:: @ 8306814 - obj_image_anim_frame 0, 19 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 19 - obj_image_anim_frame 1, 19 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_GEODUDE_1:: @ 830682C - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 36 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_GRAVELER_1:: @ 830683C - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_end - - .align 2 -gAnimCmd_GOLEM_1:: @ 8306854 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 31 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_PONYTA_1:: @ 830686C - obj_image_anim_frame 1, 45 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_RAPIDASH_1:: @ 8306878 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_SLOWPOKE_1:: @ 8306888 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_SLOWBRO_1:: @ 8306898 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 45 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MAGNEMITE_1:: @ 83068A8 - obj_image_anim_frame 0, 28 - obj_image_anim_frame 1, 28 - obj_image_anim_frame 0, 28 - obj_image_anim_frame 1, 28 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MAGNETON_1:: @ 83068C0 - obj_image_anim_frame 0, 14 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 14 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 14 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 14 - obj_image_anim_end - - .align 2 -gAnimCmd_FARFETCHD_1:: @ 83068E0 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_DODUO_1:: @ 8306914 - obj_image_anim_frame 0, 18 - obj_image_anim_frame 1, 18 - obj_image_anim_frame 0, 18 - obj_image_anim_frame 1, 18 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_DODRIO_1:: @ 830692C - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_SEEL_1:: @ 8306954 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_DEWGONG_1:: @ 8306978 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gAnimCmd_GRIMER_1:: @ 8306988 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_GRIMER_2:: @ 83069A0 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_MUK_1:: @ 83069B4 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MUK_2:: @ 83069CC - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_SHELLDER_1:: @ 83069E0 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 45 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_CLOYSTER_1:: @ 83069F4 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 25 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_GASTLY_1:: @ 8306A38 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_HAUNTER_1:: @ 8306A48 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_GENGAR_1:: @ 8306A60 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_ONIX_1:: @ 8306A70 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gAnimCmd_DROWZEE_1:: @ 8306A80 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 45 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_HYPNO_1:: @ 8306A9C - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_KRABBY_1:: @ 8306ABC - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_KINGLER_1:: @ 8306AD8 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 25 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_VOLTORB_1:: @ 8306B00 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 4 - obj_image_anim_end - - .align 2 -gAnimCmd_ELECTRODE_1:: @ 8306B18 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_EXEGGCUTE_1:: @ 8306B30 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_EXEGGUTOR_1:: @ 8306B58 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_CUBONE_1:: @ 8306B64 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 14 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 14 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 14 - obj_image_anim_end - - .align 2 -gAnimCmd_MAROWAK_1:: @ 8306B80 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 14 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 14 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 14 - obj_image_anim_end - - .align 2 -gAnimCmd_HITMONLEE_1:: @ 8306B9C - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_HITMONCHAN_1:: @ 8306BA8 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_LICKITUNG_1:: @ 8306BCC - obj_image_anim_frame 0, 28 - obj_image_anim_frame 1, 32 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_KOFFING_1:: @ 8306BDC - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_KOFFING_2:: @ 8306BF4 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_WEEZING_1:: @ 8306C08 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_WEEZING_2:: @ 8306C20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_RHYHORN_1:: @ 8306C34 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_RHYHORN_2:: @ 8306C4C - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_RHYDON_1:: @ 8306C60 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 48 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_RHYDON_2:: @ 8306C78 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_CHANSEY_1:: @ 8306C8C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_TANGELA_1:: @ 8306C9C - obj_image_anim_frame 1, 9 - obj_image_anim_frame 0, 9 - obj_image_anim_frame 1, 9 - obj_image_anim_frame 0, 9 - obj_image_anim_frame 1, 9 - obj_image_anim_frame 0, 9 - obj_image_anim_frame 1, 9 - obj_image_anim_frame 0, 9 - obj_image_anim_frame 1, 9 - obj_image_anim_frame 0, 9 - obj_image_anim_end - - .align 2 -gAnimCmd_KANGASKHAN_1:: @ 8306CC8 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_HORSEA_1:: @ 8306CDC - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_HORSEA_2:: @ 8306CF4 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_SEADRA_1:: @ 8306D08 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_SEADRA_2:: @ 8306D20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_GOLDEEN_1:: @ 8306D34 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_SEAKING_1:: @ 8306D5C - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_STARYU_1:: @ 8306D74 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_STARYU_2:: @ 8306D8C - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_STARMIE_1:: @ 8306DA0 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_STARMIE_2:: @ 8306DB8 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_MR_MIME_1:: @ 8306DCC - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SCYTHER_1:: @ 8306DE8 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_JYNX_1:: @ 8306E0C - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_ELECTABUZZ_1:: @ 8306E24 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MAGMAR_1:: @ 8306E38 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_PINSIR_1:: @ 8306E44 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_PINSIR_2:: @ 8306E5C - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_TAUROS_1:: @ 8306E70 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_MAGIKARP_1:: @ 8306E84 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_GYARADOS_1:: @ 8306EAC - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 32 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_LAPRAS_1:: @ 8306EBC - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_DITTO_1:: @ 8306EC8 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_EEVEE_1:: @ 8306EDC - obj_image_anim_frame 1, 33 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_VAPOREON_1:: @ 8306EE8 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_JOLTEON_1:: @ 8306EF4 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_FLAREON_1:: @ 8306F00 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gAnimCmd_PORYGON_1:: @ 8306F0C - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_OMANYTE_1:: @ 8306F20 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_OMASTAR_1:: @ 8306F44 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_KABUTO_1:: @ 8306F58 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_KABUTOPS_1:: @ 8306F7C - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_AERODACTYL_1:: @ 8306F90 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 25 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 25 - obj_image_anim_end - - .align 2 -gAnimCmd_SNORLAX_1:: @ 8306FA4 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_ARTICUNO_1:: @ 8306FB4 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_ZAPDOS_1:: @ 8306FC8 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MOLTRES_1:: @ 8306FDC - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_end - - .align 2 -gAnimCmd_DRATINI_1:: @ 8307060 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_DRAGONAIR_1:: @ 8307070 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_DRAGONITE_1:: @ 8307084 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MEWTWO_1:: @ 8307094 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_MEW_1:: @ 83070A0 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_CHIKORITA_1:: @ 83070B0 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_BAYLEEF_1:: @ 83070C0 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_MEGANIUM_1:: @ 83070CC - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_CYNDAQUIL_1:: @ 83070D8 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_QUILAVA_1:: @ 83070EC - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_TYPHLOSION_1:: @ 83070F8 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_TOTODILE_1:: @ 8307104 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_CROCONAW_1:: @ 8307120 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_FERALIGATR_1:: @ 830712C - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 40 - obj_image_anim_end - - .align 2 -gAnimCmd_SENTRET_1:: @ 8307140 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_FURRET_1:: @ 8307154 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_HOOTHOOT_1:: @ 8307160 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 7 - obj_image_anim_end - - .align 2 -gAnimCmd_NOCTOWL_1:: @ 8307194 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_LEDYBA_1:: @ 83071A0 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_LEDIAN_1:: @ 83071B4 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_end - - .align 2 -gAnimCmd_SPINARAK_1:: @ 8307220 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_end - - .align 2 -gAnimCmd_ARIADOS_1:: @ 8307244 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_CROBAT_1:: @ 8307258 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_end - - .align 2 -gAnimCmd_CHINCHOU_1:: @ 83072A0 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_CHINCHOU_2:: @ 83072B8 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_LANTURN_1:: @ 83072CC - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_LANTURN_2:: @ 83072E4 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_PICHU_1:: @ 83072F8 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_PICHU_2:: @ 8307310 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_CLEFFA_1:: @ 8307324 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_IGGLYBUFF_1:: @ 8307338 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_IGGLYBUFF_2:: @ 8307350 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_TOGEPI_1:: @ 8307364 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_TOGETIC_1:: @ 8307374 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_NATU_1:: @ 8307384 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_NATU_2:: @ 830739C - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_XATU_1:: @ 83073B0 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 45 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_XATU_2:: @ 83073D0 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_MAREEP_1:: @ 83073E4 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_FLAAFFY_1:: @ 8307400 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_AMPHAROS_1:: @ 8307414 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_BELLOSSOM_1:: @ 8307424 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_end - - .align 2 -gAnimCmd_MARILL_1:: @ 8307444 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 44 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 44 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_AZUMARILL_1:: @ 830745C - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_SUDOWOODO_1:: @ 8307474 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_POLITOED_1:: @ 8307490 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_HOPPIP_1:: @ 83074AC - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 25 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 25 - obj_image_anim_end - - .align 2 -gAnimCmd_SKIPLOOM_1:: @ 83074C0 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_JUMPLUFF_1:: @ 83074E4 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 25 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 25 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_AIPOM_1:: @ 8307500 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_SUNKERN_1:: @ 830750C - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_SUNFLORA_1:: @ 8307520 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_YANMA_1:: @ 8307530 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_end - - .align 2 -gAnimCmd_WOOPER_1:: @ 830758C - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_QUAGSIRE_1:: @ 830759C - obj_image_anim_frame 1, 32 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_ESPEON_1:: @ 83075A8 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_UMBREON_1:: @ 83075B8 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_MURKROW_1:: @ 83075C4 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_SLOWKING_1:: @ 83075D0 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_MISDREAVUS_1:: @ 83075E0 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_1:: @ 830760C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_WOBBUFFET_1:: @ 830761C - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_WOBBUFFET_2:: @ 8307634 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_GIRAFARIG_1:: @ 8307648 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_GIRAFARIG_2:: @ 8307668 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_PINECO_1:: @ 830767C - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_FORRETRESS_1:: @ 83076A0 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_DUNSPARCE_1:: @ 83076B4 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_GLIGAR_1:: @ 83076C8 - obj_image_anim_frame 1, 17 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_STEELIX_1:: @ 83076D4 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_SNUBBULL_1:: @ 83076F0 - obj_image_anim_frame 1, 32 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_GRANBULL_1:: @ 83076FC - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_QWILFISH_1:: @ 8307708 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gAnimCmd_SCIZOR_1:: @ 8307728 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_SHUCKLE_1:: @ 8307734 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gAnimCmd_HERACROSS_1:: @ 8307744 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_HERACROSS_2:: @ 830775C - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_SNEASEL_1:: @ 8307770 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_TEDDIURSA_1:: @ 830777C - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_URSARING_1:: @ 8307788 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_SLUGMA_1:: @ 8307794 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_SLUGMA_2:: @ 83077AC - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_MAGCARGO_1:: @ 83077C0 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MAGCARGO_2:: @ 83077D8 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_SWINUB_1:: @ 83077EC - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_PILOSWINE_1:: @ 8307800 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_CORSOLA_1:: @ 8307814 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_CORSOLA_2:: @ 830782C - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_REMORAID_1:: @ 8307840 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_OCTILLERY_1:: @ 8307854 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_DELIBIRD_1:: @ 8307868 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MANTINE_1:: @ 830787C - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 40 - obj_image_anim_end - - .align 2 -gAnimCmd_SKARMORY_1:: @ 8307890 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SKARMORY_2:: @ 83078A8 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_HOUNDOUR_1:: @ 83078BC - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_HOUNDOOM_1:: @ 83078D0 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gAnimCmd_KINGDRA_1:: @ 83078DC - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_KINGDRA_2:: @ 83078F4 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_PHANPY_1:: @ 8307908 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_PHANPY_2:: @ 8307928 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_DONPHAN_1:: @ 830793C - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_DONPHAN_2:: @ 830795C - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_PORYGON2_1:: @ 8307970 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_STANTLER_1:: @ 8307988 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SMEARGLE_1:: @ 8307994 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_TYROGUE_1:: @ 83079A8 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_HITMONTOP_1:: @ 83079B4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_end - - .align 2 -gAnimCmd_SMOOCHUM_1:: @ 83079E4 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_ELEKID_1:: @ 8307A00 - obj_image_anim_frame 1, 50 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_MAGBY_1:: @ 8307A10 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MILTANK_1:: @ 8307A30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gAnimCmd_BLISSEY_1:: @ 8307A3C - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_RAIKOU_1:: @ 8307A48 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_ENTEI_1:: @ 8307A5C - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_SUICUNE_1:: @ 8307A68 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_LARVITAR_1:: @ 8307A74 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_PUPITAR_1:: @ 8307A88 - obj_image_anim_frame 1, 40 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_TYRANITAR_1:: @ 8307A94 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_LUGIA_1:: @ 8307AA8 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_HO_OH_1:: @ 8307AB4 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_CELEBI_1:: @ 8307AC0 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gAnimCmd_OLD_UNOWN_B_1:: @ 8307AD4 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_TREECKO_1:: @ 8307AE4 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 3 - obj_image_anim_end - - .align 2 -gAnimCmd_GROVYLE_1:: @ 8307AFC - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 18 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 6 - obj_image_anim_end - - .align 2 -gAnimCmd_SCEPTILE_1:: @ 8307B14 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 26 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_TORCHIC_1:: @ 8307B24 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_COMBUSKEN_1:: @ 8307B44 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 12 - obj_image_anim_end - - .align 2 -gAnimCmd_BLAZIKEN_1:: @ 8307B54 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 7 - obj_image_anim_end - - .align 2 -gAnimCmd_BLAZIKEN_2:: @ 8307B6C - obj_image_anim_frame 0, 1 - obj_image_anim_frame 2, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_BLAZIKEN_3:: @ 8307B7C - obj_image_anim_frame 0, 10 - obj_image_anim_frame 2, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_BLAZIKEN_4:: @ 8307B88 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MUDKIP_1:: @ 8307B90 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 13 - obj_image_anim_frame 0, 7 - obj_image_anim_end - - .align 2 -gAnimCmd_MARSHTOMP_1:: @ 8307BA8 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_SWAMPERT_1:: @ 8307BD0 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 44 - obj_image_anim_frame 0, 18 - obj_image_anim_frame 1, 18 - obj_image_anim_frame 0, 7 - obj_image_anim_end - - .align 2 -gAnimCmd_POOCHYENA_1:: @ 8307BE8 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 44 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MIGHTYENA_1:: @ 8307BF8 - obj_image_anim_frame 0, 27 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_end - - .align 2 -gAnimCmd_ZIGZAGOON_1:: @ 8307C10 - obj_image_anim_frame 0, 27 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_LINOONE_1:: @ 8307C28 - obj_image_anim_frame 0, 14 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 14 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 14 - obj_image_anim_end - - .align 2 -gAnimCmd_WURMPLE_1:: @ 8307C40 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_SILCOON_1:: @ 8307C50 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SILCOON_2:: @ 8307C60 - obj_image_anim_frame 1, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_BEAUTIFLY_1:: @ 8307C68 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_end - - .align 2 -gAnimCmd_BEAUTIFLY_2:: @ 8307C90 - obj_image_anim_frame 1, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_CASCOON_1:: @ 8307C98 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_CASCOON_2:: @ 8307CB0 - obj_image_anim_frame 1, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_DUSTOX_1:: @ 8307CB8 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 1 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 1 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_DUSTOX_2:: @ 8307CF8 - obj_image_anim_frame 1, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_LOTAD_1:: @ 8307D00 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 55 - obj_image_anim_frame 0, 22 - obj_image_anim_end - - .align 2 -gAnimCmd_LOMBRE_1:: @ 8307D10 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 7 - obj_image_anim_end - - .align 2 -gAnimCmd_LUDICOLO_1:: @ 8307D28 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_end - - .align 2 -gAnimCmd_SEEDOT_1:: @ 8307D48 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_NUZLEAF_1:: @ 8307D70 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 7 - obj_image_anim_end - - .align 2 -gAnimCmd_SHIFTRY_1:: @ 8307D98 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_NINCADA_1:: @ 8307DA8 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 33 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_NINJASK_1:: @ 8307DC0 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 1 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 1 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 1 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 1 - obj_image_anim_frame 0, 33 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 1 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 1 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 1 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 1 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_SHEDINJA_1:: @ 8307E0C - obj_image_anim_frame 0, 33 - obj_image_anim_frame 1, 33 - obj_image_anim_frame 0, 33 - obj_image_anim_frame 1, 33 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_TAILLOW_1:: @ 8307E24 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_SWELLOW_1:: @ 8307E4C - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 18 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_SHROOMISH_1:: @ 8307E5C - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_end - - .align 2 -gAnimCmd_BRELOOM_1:: @ 8307E8C - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 7 - obj_image_anim_end - - .align 2 -gAnimCmd_WINGULL_1:: @ 8307EA4 - obj_image_anim_frame 0, 17 - obj_image_anim_frame 1, 23 - obj_image_anim_frame 0, 13 - obj_image_anim_end - - .align 2 -gAnimCmd_PELIPPER_1:: @ 8307EB4 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_SURSKIT_1:: @ 8307EDC - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 18 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 18 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_SURSKIT_2:: @ 8307EF4 - obj_image_anim_frame 1, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_MASQUERAIN_1:: @ 8307EFC - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_MASQUERAIN_2:: @ 8307F24 - obj_image_anim_frame 1, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_WAILMER_1:: @ 8307F2C - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_end - - .align 2 -gAnimCmd_WAILORD_1:: @ 8307F4C - obj_image_anim_frame 0, 26 - obj_image_anim_frame 1, 48 - obj_image_anim_frame 0, 33 - obj_image_anim_end - - .align 2 -gAnimCmd_SKITTY_1:: @ 8307F5C - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 35 - obj_image_anim_frame 0, 9 - obj_image_anim_end - - .align 2 -gAnimCmd_DELCATTY_1:: @ 8307F6C - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 46 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_KECLEON_1:: @ 8307F7C - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 18 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_BALTOY_1:: @ 8307F94 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 50 - obj_image_anim_end - - .align 2 -gAnimCmd_CLAYDOL_1:: @ 8307FB4 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_NOSEPASS_1:: @ 8307FD4 - obj_image_anim_frame 0, 27 - obj_image_anim_frame 1, 27 - obj_image_anim_frame 0, 27 - obj_image_anim_frame 1, 27 - obj_image_anim_frame 0, 27 - obj_image_anim_frame 1, 27 - obj_image_anim_frame 0, 3 - obj_image_anim_end - - .align 2 -gAnimCmd_TORKOAL_1:: @ 8307FF4 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SABLEYE_1:: @ 830800C - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_BARBOACH_1:: @ 8308024 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 50 - obj_image_anim_end - - .align 2 -gAnimCmd_WHISCASH_1:: @ 830805C - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_LUVDISC_1:: @ 8308094 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_CORPHISH_1:: @ 83080AC - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 50 - obj_image_anim_end - - .align 2 -gAnimCmd_CRAWDAUNT_1:: @ 83080CC - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_FEEBAS_1:: @ 83080E4 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_MILOTIC_1:: @ 8308104 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_CARVANHA_1:: @ 8308124 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_end - - .align 2 -gAnimCmd_SHARPEDO_1:: @ 830814C - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 22 - obj_image_anim_end - - .align 2 -gAnimCmd_TRAPINCH_1:: @ 8308174 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_VIBRAVA_1:: @ 830818C - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 50 - obj_image_anim_end - - .align 2 -gAnimCmd_FLYGON_1:: @ 83081AC - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 50 - obj_image_anim_end - - .align 2 -gAnimCmd_MAKUHITA_1:: @ 83081CC - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 7 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 22 - obj_image_anim_end - - .align 2 -gAnimCmd_HARIYAMA_1:: @ 83081F4 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_ELECTRIKE_1:: @ 8308208 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 17 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 3 - obj_image_anim_end - - .align 2 -gAnimCmd_MANECTRIC_1:: @ 8308220 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 33 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 3 - obj_image_anim_end - - .align 2 -gAnimCmd_NUMEL_1:: @ 8308238 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 40 - obj_image_anim_end - - .align 2 -gAnimCmd_CAMERUPT_1:: @ 8308250 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SPHEAL_1:: @ 8308270 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 43 - obj_image_anim_frame 1, 60 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SEALEO_1:: @ 8308294 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_WALREIN_1:: @ 83082AC - obj_image_anim_frame 0, 2 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_CACNEA_1:: @ 83082C4 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_CACTURNE_1:: @ 83082F4 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SNORUNT_1:: @ 830830C - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_GLALIE_1:: @ 8308324 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_LUNATONE_1:: @ 830833C - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_LUNATONE_2:: @ 8308354 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_SOLROCK_1:: @ 8308368 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SOLROCK_2:: @ 8308380 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_AZURILL_1:: @ 8308394 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 12 - obj_image_anim_frame 0, 12 - obj_image_anim_end - - .align 2 -gAnimCmd_SPOINK_1:: @ 83083B4 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_GRUMPIG_1:: @ 83083E4 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_PLUSLE_1:: @ 83083FC - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MINUN_1:: @ 8308414 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MAWILE_1:: @ 830842C - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_MEDITITE_1:: @ 830844C - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 2 - obj_image_anim_frame 0, 22 - obj_image_anim_end - - .align 2 -gAnimCmd_MEDICHAM_1:: @ 830845C - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_SWABLU_1:: @ 830847C - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_SWABLU_2:: @ 830849C - obj_image_anim_frame 0, 1 - obj_image_anim_frame 2, 8 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 2, 8 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 2, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_ALTARIA_1:: @ 83084B8 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_ALTARIA_2:: @ 83084D0 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_WYNAUT_1:: @ 83084E4 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_DUSKULL_1:: @ 83084FC - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_DUSCLOPS_1:: @ 8308514 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_ROSELIA_1:: @ 830852C - obj_image_anim_frame 0, 18 - obj_image_anim_frame 1, 44 - obj_image_anim_frame 0, 22 - obj_image_anim_end - - .align 2 -gAnimCmd_SLAKOTH_1:: @ 830853C - obj_image_anim_frame 0, 13 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_VIGOROTH_1:: @ 8308558 - obj_image_anim_frame 0, 13 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 13 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 13 - obj_image_anim_frame 1, 7 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_SLAKING_1:: @ 8308578 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_end - - .align 2 -gAnimCmd_GULPIN_1:: @ 8308598 - obj_image_anim_frame 0, 14 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 14 - obj_image_anim_frame 1, 14 - obj_image_anim_frame 0, 4 - obj_image_anim_end - - .align 2 -gAnimCmd_SWALOT_1:: @ 83085B0 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gAnimCmd_TROPIUS_1:: @ 83085C4 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_WHISMUR_1:: @ 83085DC - obj_image_anim_frame 0, 9 - obj_image_anim_frame 1, 9 - obj_image_anim_frame 0, 9 - obj_image_anim_frame 1, 9 - obj_image_anim_frame 0, 33 - obj_image_anim_frame 0, 9 - obj_image_anim_frame 1, 9 - obj_image_anim_frame 0, 9 - obj_image_anim_frame 1, 9 - obj_image_anim_frame 0, 9 - obj_image_anim_end - - .align 2 -gAnimCmd_LOUDRED_1:: @ 8308608 - obj_image_anim_frame 0, 9 - obj_image_anim_frame 1, 9 - obj_image_anim_frame 0, 9 - obj_image_anim_frame 1, 9 - obj_image_anim_frame 0, 33 - obj_image_anim_end - - .align 2 -gAnimCmd_EXPLOUD_1:: @ 8308620 - obj_image_anim_frame 0, 9 - obj_image_anim_frame 1, 44 - obj_image_anim_frame 0, 9 - obj_image_anim_end - - .align 2 -gAnimCmd_CLAMPERL_1:: @ 8308630 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_HUNTAIL_1:: @ 8308648 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_GOREBYSS_1:: @ 8308660 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_ABSOL_1:: @ 8308678 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SHUPPET_1:: @ 8308690 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_BANETTE_1:: @ 83086B0 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SEVIPER_1:: @ 83086D0 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 50 - obj_image_anim_end - - .align 2 -gAnimCmd_ZANGOOSE_1:: @ 83086F0 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 50 - obj_image_anim_end - - .align 2 -gAnimCmd_RELICANTH_1:: @ 8308710 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_ARON_1:: @ 8308728 - obj_image_anim_frame 0, 33 - obj_image_anim_frame 1, 44 - obj_image_anim_frame 0, 33 - obj_image_anim_frame 1, 33 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_LAIRON_1:: @ 8308740 - obj_image_anim_frame 0, 12 - obj_image_anim_frame 1, 29 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 29 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_AGGRON_1:: @ 8308758 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 44 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_CASTFORM_0:: @ 8308768 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_CASTFORM_1:: @ 8308770 - obj_image_anim_frame 1, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_CASTFORM_2:: @ 8308778 - obj_image_anim_frame 2, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_CASTFORM_3:: @ 8308780 - obj_image_anim_frame 3, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_VOLBEAT_1:: @ 8308788 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 11 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gAnimCmd_ILLUMISE_1:: @ 83087A8 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 22 - obj_image_anim_frame 0, 11 - obj_image_anim_end - - .align 2 -gAnimCmd_LILEEP_1:: @ 83087C0 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_CRADILY_1:: @ 83087D8 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_ANORITH_1:: @ 83087F8 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_ARMALDO_1:: @ 8308818 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_RALTS_1:: @ 8308830 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 25 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_KIRLIA_1:: @ 8308840 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 39 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_GARDEVOIR_1:: @ 8308850 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 1, 3 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_BAGON_1:: @ 8308888 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SHELGON_1:: @ 83088A0 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_SALAMENCE_1:: @ 83088B8 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_BELDUM_1:: @ 83088D0 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_METANG_1:: @ 83088E8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gAnimCmd_METAGROSS_1:: @ 8308900 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_end - - .align 2 -gAnimCmd_REGIROCK_1:: @ 8308918 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_REGIROCK_2:: @ 8308930 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_REGICE_1:: @ 8308944 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 18 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_REGISTEEL_1:: @ 830895C - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_REGISTEEL_2:: @ 8308974 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_KYOGRE_1:: @ 8308988 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_KYOGRE_2:: @ 83089A0 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_GROUDON_1:: @ 83089B4 - obj_image_anim_frame 0, 11 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 20 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_GROUDON_2:: @ 83089CC - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_RAYQUAZA_1:: @ 83089E0 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 22 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 0, 6 - obj_image_anim_end - - .align 2 -gAnimCmd_RAYQUAZA_2:: @ 83089F8 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_LATIAS_1:: @ 8308A0C - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_LATIAS_2:: @ 8308A24 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_LATIOS_1:: @ 8308A38 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_LATIOS_2:: @ 8308A50 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_JIRACHI_1:: @ 8308A64 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_frame 1, 10 - obj_image_anim_frame 0, 10 - obj_image_anim_end - - .align 2 -gAnimCmd_JIRACHI_2:: @ 8308A90 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_DEOXYS_1:: @ 8308AA4 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 26 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_end - - .align 2 -gAnimCmd_DEOXYS_2:: @ 8308ABC - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_frame 0, 20 - obj_image_anim_frame 2, 20 - obj_image_anim_end - - .align 2 -gAnimCmd_CHIMECHO_1:: @ 8308AD0 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_frame 1, 15 - obj_image_anim_frame 0, 15 - obj_image_anim_end - - .align 2 -gAnimCmd_EGG_1:: @ 8308AF8 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 2, 6 - obj_image_anim_frame 3, 6 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_B_1:: @ 8308B0C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_C_1:: @ 8308B1C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_D_1:: @ 8308B2C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_E_1:: @ 8308B3C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_F_1:: @ 8308B4C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_G_1:: @ 8308B5C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_H_1:: @ 8308B6C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_I_1:: @ 8308B7C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_J_1:: @ 8308B8C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_K_1:: @ 8308B9C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_L_1:: @ 8308BAC - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_M_1:: @ 8308BBC - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_N_1:: @ 8308BCC - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_O_1:: @ 8308BDC - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_P_1:: @ 8308BEC - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_Q_1:: @ 8308BFC - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_R_1:: @ 8308C0C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_S_1:: @ 8308C1C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_T_1:: @ 8308C2C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_U_1:: @ 8308C3C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_V_1:: @ 8308C4C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_W_1:: @ 8308C5C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_X_1:: @ 8308C6C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_Y_1:: @ 8308C7C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_Z_1:: @ 8308C8C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_EMARK_1:: @ 8308C9C - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnimCmd_UNOWN_QMARK_1:: @ 8308CAC - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gAnims_NONE:: @ 8308CBC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NONE_1 - - .align 2 -gAnims_BULBASAUR:: @ 8308CC4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BULBASAUR_1 - - .align 2 -gAnims_IVYSAUR:: @ 8308CCC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_IVYSAUR_1 - - .align 2 -gAnims_VENUSAUR:: @ 8308CD4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_VENUSAUR_1 - - .align 2 -gAnims_CHARMANDER:: @ 8308CDC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CHARMANDER_1 - - .align 2 -gAnims_CHARMELEON:: @ 8308CE4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CHARMELEON_1 - - .align 2 -gAnims_CHARIZARD:: @ 8308CEC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CHARIZARD_1 - - .align 2 -gAnims_SQUIRTLE:: @ 8308CF4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SQUIRTLE_1 - - .align 2 -gAnims_WARTORTLE:: @ 8308CFC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WARTORTLE_1 - - .align 2 -gAnims_BLASTOISE:: @ 8308D04 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BLASTOISE_1 - - .align 2 -gAnims_CATERPIE:: @ 8308D0C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CATERPIE_1 - - .align 2 -gAnims_METAPOD:: @ 8308D14 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_METAPOD_1 - - .align 2 -gAnims_BUTTERFREE:: @ 8308D1C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BUTTERFREE_1 - - .align 2 -gAnims_WEEDLE:: @ 8308D24 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WEEDLE_1 - - .align 2 -gAnims_KAKUNA:: @ 8308D2C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_KAKUNA_1 - - .align 2 -gAnims_BEEDRILL:: @ 8308D34 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BEEDRILL_1 - - .align 2 -gAnims_PIDGEY:: @ 8308D3C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PIDGEY_1 - - .align 2 -gAnims_PIDGEOTTO:: @ 8308D44 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PIDGEOTTO_1 - - .align 2 -gAnims_PIDGEOT:: @ 8308D4C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PIDGEOT_1 - - .align 2 -gAnims_RATTATA:: @ 8308D54 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_RATTATA_1 - - .align 2 -gAnims_RATICATE:: @ 8308D5C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_RATICATE_1 - - .align 2 -gAnims_SPEAROW:: @ 8308D64 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SPEAROW_1 - - .align 2 -gAnims_FEAROW:: @ 8308D6C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_FEAROW_1 - - .align 2 -gAnims_EKANS:: @ 8308D74 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_EKANS_1 - - .align 2 -gAnims_ARBOK:: @ 8308D7C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ARBOK_1 - - .align 2 -gAnims_PIKACHU:: @ 8308D84 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PIKACHU_1 - .4byte gAnimCmd_PIKACHU_2 - - .align 2 -gAnims_RAICHU:: @ 8308D90 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_RAICHU_1 - .4byte gAnimCmd_RAICHU_2 - - .align 2 -gAnims_SANDSHREW:: @ 8308D9C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SANDSHREW_1 - .4byte gAnimCmd_SANDSHREW_2 - - .align 2 -gAnims_SANDSLASH:: @ 8308DA8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SANDSLASH_1 - .4byte gAnimCmd_SANDSLASH_2 - - .align 2 -gAnims_NIDORAN_F:: @ 8308DB4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NIDORAN_F_1 - - .align 2 -gAnims_NIDORINA:: @ 8308DBC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NIDORINA_1 - - .align 2 -gAnims_NIDOQUEEN:: @ 8308DC4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NIDOQUEEN_1 - - .align 2 -gAnims_NIDORAN_M:: @ 8308DCC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NIDORAN_M_1 - - .align 2 -gAnims_NIDORINO:: @ 8308DD4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NIDORINO_1 - - .align 2 -gAnims_NIDOKING:: @ 8308DDC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NIDOKING_1 - - .align 2 -gAnims_CLEFAIRY:: @ 8308DE4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CLEFAIRY_1 - - .align 2 -gAnims_CLEFABLE:: @ 8308DEC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CLEFABLE_1 - - .align 2 -gAnims_VULPIX:: @ 8308DF4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_VULPIX_1 - .4byte gAnimCmd_VULPIX_2 - - .align 2 -gAnims_NINETALES:: @ 8308E00 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NINETALES_1 - .4byte gAnimCmd_NINETALES_2 - - .align 2 -gAnims_JIGGLYPUFF:: @ 8308E0C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_JIGGLYPUFF_1 - .4byte gAnimCmd_JIGGLYPUFF_2 - - .align 2 -gAnims_WIGGLYTUFF:: @ 8308E18 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WIGGLYTUFF_1 - .4byte gAnimCmd_WIGGLYTUFF_2 - - .align 2 -gAnims_ZUBAT:: @ 8308E24 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ZUBAT_1 - - .align 2 -gAnims_GOLBAT:: @ 8308E2C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GOLBAT_1 - - .align 2 -gAnims_ODDISH:: @ 8308E34 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ODDISH_1 - - .align 2 -gAnims_GLOOM:: @ 8308E3C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GLOOM_1 - - .align 2 -gAnims_VILEPLUME:: @ 8308E44 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_VILEPLUME_1 - - .align 2 -gAnims_PARAS:: @ 8308E4C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PARAS_1 - - .align 2 -gAnims_PARASECT:: @ 8308E54 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PARASECT_1 - - .align 2 -gAnims_VENONAT:: @ 8308E5C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_VENONAT_1 - - .align 2 -gAnims_VENOMOTH:: @ 8308E64 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_VENOMOTH_1 - - .align 2 -gAnims_DIGLETT:: @ 8308E6C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DIGLETT_1 - - .align 2 -gAnims_DUGTRIO:: @ 8308E74 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DUGTRIO_1 - - .align 2 -gAnims_MEOWTH:: @ 8308E7C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MEOWTH_1 - - .align 2 -gAnims_PERSIAN:: @ 8308E84 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PERSIAN_1 - - .align 2 -gAnims_PSYDUCK:: @ 8308E8C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PSYDUCK_1 - .4byte gAnimCmd_PSYDUCK_2 - - .align 2 -gAnims_GOLDUCK:: @ 8308E98 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GOLDUCK_1 - .4byte gAnimCmd_GOLDUCK_2 - - .align 2 -gAnims_MANKEY:: @ 8308EA4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MANKEY_1 - - .align 2 -gAnims_PRIMEAPE:: @ 8308EAC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PRIMEAPE_1 - - .align 2 -gAnims_GROWLITHE:: @ 8308EB4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GROWLITHE_1 - - .align 2 -gAnims_ARCANINE:: @ 8308EBC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ARCANINE_1 - - .align 2 -gAnims_POLIWAG:: @ 8308EC4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_POLIWAG_1 - - .align 2 -gAnims_POLIWHIRL:: @ 8308ECC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_POLIWHIRL_1 - - .align 2 -gAnims_POLIWRATH:: @ 8308ED4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_POLIWRATH_1 - - .align 2 -gAnims_ABRA:: @ 8308EDC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ABRA_1 - - .align 2 -gAnims_KADABRA:: @ 8308EE4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_KADABRA_1 - - .align 2 -gAnims_ALAKAZAM:: @ 8308EEC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ALAKAZAM_1 - - .align 2 -gAnims_MACHOP:: @ 8308EF4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MACHOP_1 - - .align 2 -gAnims_MACHOKE:: @ 8308EFC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MACHOKE_1 - - .align 2 -gAnims_MACHAMP:: @ 8308F04 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MACHAMP_1 - - .align 2 -gAnims_BELLSPROUT:: @ 8308F0C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BELLSPROUT_1 - - .align 2 -gAnims_WEEPINBELL:: @ 8308F14 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WEEPINBELL_1 - - .align 2 -gAnims_VICTREEBEL:: @ 8308F1C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_VICTREEBEL_1 - - .align 2 -gAnims_TENTACOOL:: @ 8308F24 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TENTACOOL_1 - - .align 2 -gAnims_TENTACRUEL:: @ 8308F2C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TENTACRUEL_1 - - .align 2 -gAnims_GEODUDE:: @ 8308F34 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GEODUDE_1 - - .align 2 -gAnims_GRAVELER:: @ 8308F3C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GRAVELER_1 - - .align 2 -gAnims_GOLEM:: @ 8308F44 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GOLEM_1 - - .align 2 -gAnims_PONYTA:: @ 8308F4C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PONYTA_1 - - .align 2 -gAnims_RAPIDASH:: @ 8308F54 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_RAPIDASH_1 - - .align 2 -gAnims_SLOWPOKE:: @ 8308F5C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SLOWPOKE_1 - - .align 2 -gAnims_SLOWBRO:: @ 8308F64 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SLOWBRO_1 - - .align 2 -gAnims_MAGNEMITE:: @ 8308F6C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MAGNEMITE_1 - - .align 2 -gAnims_MAGNETON:: @ 8308F74 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MAGNETON_1 - - .align 2 -gAnims_FARFETCHD:: @ 8308F7C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_FARFETCHD_1 - - .align 2 -gAnims_DODUO:: @ 8308F84 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DODUO_1 - - .align 2 -gAnims_DODRIO:: @ 8308F8C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DODRIO_1 - - .align 2 -gAnims_SEEL:: @ 8308F94 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SEEL_1 - - .align 2 -gAnims_DEWGONG:: @ 8308F9C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DEWGONG_1 - - .align 2 -gAnims_GRIMER:: @ 8308FA4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GRIMER_1 - .4byte gAnimCmd_GRIMER_2 - - .align 2 -gAnims_MUK:: @ 8308FB0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MUK_1 - .4byte gAnimCmd_MUK_2 - - .align 2 -gAnims_SHELLDER:: @ 8308FBC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SHELLDER_1 - - .align 2 -gAnims_CLOYSTER:: @ 8308FC4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CLOYSTER_1 - - .align 2 -gAnims_GASTLY:: @ 8308FCC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GASTLY_1 - - .align 2 -gAnims_HAUNTER:: @ 8308FD4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HAUNTER_1 - - .align 2 -gAnims_GENGAR:: @ 8308FDC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GENGAR_1 - - .align 2 -gAnims_ONIX:: @ 8308FE4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ONIX_1 - - .align 2 -gAnims_DROWZEE:: @ 8308FEC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DROWZEE_1 - - .align 2 -gAnims_HYPNO:: @ 8308FF4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HYPNO_1 - - .align 2 -gAnims_KRABBY:: @ 8308FFC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_KRABBY_1 - - .align 2 -gAnims_KINGLER:: @ 8309004 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_KINGLER_1 - - .align 2 -gAnims_VOLTORB:: @ 830900C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_VOLTORB_1 - - .align 2 -gAnims_ELECTRODE:: @ 8309014 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ELECTRODE_1 - - .align 2 -gAnims_EXEGGCUTE:: @ 830901C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_EXEGGCUTE_1 - - .align 2 -gAnims_EXEGGUTOR:: @ 8309024 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_EXEGGUTOR_1 - - .align 2 -gAnims_CUBONE:: @ 830902C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CUBONE_1 - - .align 2 -gAnims_MAROWAK:: @ 8309034 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MAROWAK_1 - - .align 2 -gAnims_HITMONLEE:: @ 830903C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HITMONLEE_1 - - .align 2 -gAnims_HITMONCHAN:: @ 8309044 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HITMONCHAN_1 - - .align 2 -gAnims_LICKITUNG:: @ 830904C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LICKITUNG_1 - - .align 2 -gAnims_KOFFING:: @ 8309054 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_KOFFING_1 - .4byte gAnimCmd_KOFFING_2 - - .align 2 -gAnims_WEEZING:: @ 8309060 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WEEZING_1 - .4byte gAnimCmd_WEEZING_2 - - .align 2 -gAnims_RHYHORN:: @ 830906C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_RHYHORN_1 - .4byte gAnimCmd_RHYHORN_2 - - .align 2 -gAnims_RHYDON:: @ 8309078 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_RHYDON_1 - .4byte gAnimCmd_RHYDON_2 - - .align 2 -gAnims_CHANSEY:: @ 8309084 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CHANSEY_1 - - .align 2 -gAnims_TANGELA:: @ 830908C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TANGELA_1 - - .align 2 -gAnims_KANGASKHAN:: @ 8309094 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_KANGASKHAN_1 - - .align 2 -gAnims_HORSEA:: @ 830909C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HORSEA_1 - .4byte gAnimCmd_HORSEA_2 - - .align 2 -gAnims_SEADRA:: @ 83090A8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SEADRA_1 - .4byte gAnimCmd_SEADRA_2 - - .align 2 -gAnims_GOLDEEN:: @ 83090B4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GOLDEEN_1 - - .align 2 -gAnims_SEAKING:: @ 83090BC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SEAKING_1 - - .align 2 -gAnims_STARYU:: @ 83090C4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_STARYU_1 - .4byte gAnimCmd_STARYU_2 - - .align 2 -gAnims_STARMIE:: @ 83090D0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_STARMIE_1 - .4byte gAnimCmd_STARMIE_2 - - .align 2 -gAnims_MR_MIME:: @ 83090DC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MR_MIME_1 - - .align 2 -gAnims_SCYTHER:: @ 83090E4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SCYTHER_1 - - .align 2 -gAnims_JYNX:: @ 83090EC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_JYNX_1 - - .align 2 -gAnims_ELECTABUZZ:: @ 83090F4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ELECTABUZZ_1 - - .align 2 -gAnims_MAGMAR:: @ 83090FC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MAGMAR_1 - - .align 2 -gAnims_PINSIR:: @ 8309104 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PINSIR_1 - .4byte gAnimCmd_PINSIR_2 - - .align 2 -gAnims_TAUROS:: @ 8309110 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TAUROS_1 - - .align 2 -gAnims_MAGIKARP:: @ 8309118 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MAGIKARP_1 - - .align 2 -gAnims_GYARADOS:: @ 8309120 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GYARADOS_1 - - .align 2 -gAnims_LAPRAS:: @ 8309128 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LAPRAS_1 - - .align 2 -gAnims_DITTO:: @ 8309130 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DITTO_1 - - .align 2 -gAnims_EEVEE:: @ 8309138 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_EEVEE_1 - - .align 2 -gAnims_VAPOREON:: @ 8309140 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_VAPOREON_1 - - .align 2 -gAnims_JOLTEON:: @ 8309148 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_JOLTEON_1 - - .align 2 -gAnims_FLAREON:: @ 8309150 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_FLAREON_1 - - .align 2 -gAnims_PORYGON:: @ 8309158 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PORYGON_1 - - .align 2 -gAnims_OMANYTE:: @ 8309160 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_OMANYTE_1 - - .align 2 -gAnims_OMASTAR:: @ 8309168 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_OMASTAR_1 - - .align 2 -gAnims_KABUTO:: @ 8309170 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_KABUTO_1 - - .align 2 -gAnims_KABUTOPS:: @ 8309178 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_KABUTOPS_1 - - .align 2 -gAnims_AERODACTYL:: @ 8309180 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_AERODACTYL_1 - - .align 2 -gAnims_SNORLAX:: @ 8309188 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SNORLAX_1 - - .align 2 -gAnims_ARTICUNO:: @ 8309190 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ARTICUNO_1 - - .align 2 -gAnims_ZAPDOS:: @ 8309198 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ZAPDOS_1 - - .align 2 -gAnims_MOLTRES:: @ 83091A0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MOLTRES_1 - - .align 2 -gAnims_DRATINI:: @ 83091A8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DRATINI_1 - - .align 2 -gAnims_DRAGONAIR:: @ 83091B0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DRAGONAIR_1 - - .align 2 -gAnims_DRAGONITE:: @ 83091B8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DRAGONITE_1 - - .align 2 -gAnims_MEWTWO:: @ 83091C0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MEWTWO_1 - - .align 2 -gAnims_MEW:: @ 83091C8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MEW_1 - - .align 2 -gAnims_CHIKORITA:: @ 83091D0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CHIKORITA_1 - - .align 2 -gAnims_BAYLEEF:: @ 83091D8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BAYLEEF_1 - - .align 2 -gAnims_MEGANIUM:: @ 83091E0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MEGANIUM_1 - - .align 2 -gAnims_CYNDAQUIL:: @ 83091E8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CYNDAQUIL_1 - - .align 2 -gAnims_QUILAVA:: @ 83091F0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_QUILAVA_1 - - .align 2 -gAnims_TYPHLOSION:: @ 83091F8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TYPHLOSION_1 - - .align 2 -gAnims_TOTODILE:: @ 8309200 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TOTODILE_1 - - .align 2 -gAnims_CROCONAW:: @ 8309208 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CROCONAW_1 - - .align 2 -gAnims_FERALIGATR:: @ 8309210 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_FERALIGATR_1 - - .align 2 -gAnims_SENTRET:: @ 8309218 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SENTRET_1 - - .align 2 -gAnims_FURRET:: @ 8309220 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_FURRET_1 - - .align 2 -gAnims_HOOTHOOT:: @ 8309228 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HOOTHOOT_1 - - .align 2 -gAnims_NOCTOWL:: @ 8309230 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NOCTOWL_1 - - .align 2 -gAnims_LEDYBA:: @ 8309238 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LEDYBA_1 - - .align 2 -gAnims_LEDIAN:: @ 8309240 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LEDIAN_1 - - .align 2 -gAnims_SPINARAK:: @ 8309248 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SPINARAK_1 - - .align 2 -gAnims_ARIADOS:: @ 8309250 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ARIADOS_1 - - .align 2 -gAnims_CROBAT:: @ 8309258 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CROBAT_1 - - .align 2 -gAnims_CHINCHOU:: @ 8309260 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CHINCHOU_1 - .4byte gAnimCmd_CHINCHOU_2 - - .align 2 -gAnims_LANTURN:: @ 830926C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LANTURN_1 - .4byte gAnimCmd_LANTURN_2 - - .align 2 -gAnims_PICHU:: @ 8309278 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PICHU_1 - .4byte gAnimCmd_PICHU_2 - - .align 2 -gAnims_CLEFFA:: @ 8309284 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CLEFFA_1 - - .align 2 -gAnims_IGGLYBUFF:: @ 830928C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_IGGLYBUFF_1 - .4byte gAnimCmd_IGGLYBUFF_2 - - .align 2 -gAnims_TOGEPI:: @ 8309298 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TOGEPI_1 - - .align 2 -gAnims_TOGETIC:: @ 83092A0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TOGETIC_1 - - .align 2 -gAnims_NATU:: @ 83092A8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NATU_1 - .4byte gAnimCmd_NATU_2 - - .align 2 -gAnims_XATU:: @ 83092B4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_XATU_1 - .4byte gAnimCmd_XATU_2 - - .align 2 -gAnims_MAREEP:: @ 83092C0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MAREEP_1 - - .align 2 -gAnims_FLAAFFY:: @ 83092C8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_FLAAFFY_1 - - .align 2 -gAnims_AMPHAROS:: @ 83092D0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_AMPHAROS_1 - - .align 2 -gAnims_BELLOSSOM:: @ 83092D8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BELLOSSOM_1 - - .align 2 -gAnims_MARILL:: @ 83092E0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MARILL_1 - - .align 2 -gAnims_AZUMARILL:: @ 83092E8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_AZUMARILL_1 - - .align 2 -gAnims_SUDOWOODO:: @ 83092F0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SUDOWOODO_1 - - .align 2 -gAnims_POLITOED:: @ 83092F8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_POLITOED_1 - - .align 2 -gAnims_HOPPIP:: @ 8309300 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HOPPIP_1 - - .align 2 -gAnims_SKIPLOOM:: @ 8309308 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SKIPLOOM_1 - - .align 2 -gAnims_JUMPLUFF:: @ 8309310 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_JUMPLUFF_1 - - .align 2 -gAnims_AIPOM:: @ 8309318 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_AIPOM_1 - - .align 2 -gAnims_SUNKERN:: @ 8309320 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SUNKERN_1 - - .align 2 -gAnims_SUNFLORA:: @ 8309328 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SUNFLORA_1 - - .align 2 -gAnims_YANMA:: @ 8309330 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_YANMA_1 - - .align 2 -gAnims_WOOPER:: @ 8309338 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WOOPER_1 - - .align 2 -gAnims_QUAGSIRE:: @ 8309340 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_QUAGSIRE_1 - - .align 2 -gAnims_ESPEON:: @ 8309348 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ESPEON_1 - - .align 2 -gAnims_UMBREON:: @ 8309350 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UMBREON_1 - - .align 2 -gAnims_MURKROW:: @ 8309358 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MURKROW_1 - - .align 2 -gAnims_SLOWKING:: @ 8309360 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SLOWKING_1 - - .align 2 -gAnims_MISDREAVUS:: @ 8309368 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MISDREAVUS_1 - - .align 2 -gAnims_UNOWN:: @ 8309370 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_1 - - .align 2 -gAnims_WOBBUFFET:: @ 8309378 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WOBBUFFET_1 - .4byte gAnimCmd_WOBBUFFET_2 - - .align 2 -gAnims_GIRAFARIG:: @ 8309384 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GIRAFARIG_1 - .4byte gAnimCmd_GIRAFARIG_2 - - .align 2 -gAnims_PINECO:: @ 8309390 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PINECO_1 - - .align 2 -gAnims_FORRETRESS:: @ 8309398 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_FORRETRESS_1 - - .align 2 -gAnims_DUNSPARCE:: @ 83093A0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DUNSPARCE_1 - - .align 2 -gAnims_GLIGAR:: @ 83093A8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GLIGAR_1 - - .align 2 -gAnims_STEELIX:: @ 83093B0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_STEELIX_1 - - .align 2 -gAnims_SNUBBULL:: @ 83093B8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SNUBBULL_1 - - .align 2 -gAnims_GRANBULL:: @ 83093C0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GRANBULL_1 - - .align 2 -gAnims_QWILFISH:: @ 83093C8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_QWILFISH_1 - - .align 2 -gAnims_SCIZOR:: @ 83093D0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SCIZOR_1 - - .align 2 -gAnims_SHUCKLE:: @ 83093D8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SHUCKLE_1 - - .align 2 -gAnims_HERACROSS:: @ 83093E0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HERACROSS_1 - .4byte gAnimCmd_HERACROSS_2 - - .align 2 -gAnims_SNEASEL:: @ 83093EC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SNEASEL_1 - - .align 2 -gAnims_TEDDIURSA:: @ 83093F4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TEDDIURSA_1 - - .align 2 -gAnims_URSARING:: @ 83093FC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_URSARING_1 - - .align 2 -gAnims_SLUGMA:: @ 8309404 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SLUGMA_1 - .4byte gAnimCmd_SLUGMA_2 - - .align 2 -gAnims_MAGCARGO:: @ 8309410 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MAGCARGO_1 - .4byte gAnimCmd_MAGCARGO_2 - - .align 2 -gAnims_SWINUB:: @ 830941C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SWINUB_1 - - .align 2 -gAnims_PILOSWINE:: @ 8309424 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PILOSWINE_1 - - .align 2 -gAnims_CORSOLA:: @ 830942C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CORSOLA_1 - .4byte gAnimCmd_CORSOLA_2 - - .align 2 -gAnims_REMORAID:: @ 8309438 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_REMORAID_1 - - .align 2 -gAnims_OCTILLERY:: @ 8309440 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_OCTILLERY_1 - - .align 2 -gAnims_DELIBIRD:: @ 8309448 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DELIBIRD_1 - - .align 2 -gAnims_MANTINE:: @ 8309450 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MANTINE_1 - - .align 2 -gAnims_SKARMORY:: @ 8309458 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SKARMORY_1 - .4byte gAnimCmd_SKARMORY_2 - - .align 2 -gAnims_HOUNDOUR:: @ 8309464 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HOUNDOUR_1 - - .align 2 -gAnims_HOUNDOOM:: @ 830946C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HOUNDOOM_1 - - .align 2 -gAnims_KINGDRA:: @ 8309474 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_KINGDRA_1 - .4byte gAnimCmd_KINGDRA_2 - - .align 2 -gAnims_PHANPY:: @ 8309480 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PHANPY_1 - .4byte gAnimCmd_PHANPY_2 - - .align 2 -gAnims_DONPHAN:: @ 830948C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DONPHAN_1 - .4byte gAnimCmd_DONPHAN_2 - - .align 2 -gAnims_PORYGON2:: @ 8309498 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PORYGON2_1 - - .align 2 -gAnims_STANTLER:: @ 83094A0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_STANTLER_1 - - .align 2 -gAnims_SMEARGLE:: @ 83094A8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SMEARGLE_1 - - .align 2 -gAnims_TYROGUE:: @ 83094B0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TYROGUE_1 - - .align 2 -gAnims_HITMONTOP:: @ 83094B8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HITMONTOP_1 - - .align 2 -gAnims_SMOOCHUM:: @ 83094C0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SMOOCHUM_1 - - .align 2 -gAnims_ELEKID:: @ 83094C8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ELEKID_1 - - .align 2 -gAnims_MAGBY:: @ 83094D0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MAGBY_1 - - .align 2 -gAnims_MILTANK:: @ 83094D8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MILTANK_1 - - .align 2 -gAnims_BLISSEY:: @ 83094E0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BLISSEY_1 - - .align 2 -gAnims_RAIKOU:: @ 83094E8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_RAIKOU_1 - - .align 2 -gAnims_ENTEI:: @ 83094F0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ENTEI_1 - - .align 2 -gAnims_SUICUNE:: @ 83094F8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SUICUNE_1 - - .align 2 -gAnims_LARVITAR:: @ 8309500 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LARVITAR_1 - - .align 2 -gAnims_PUPITAR:: @ 8309508 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PUPITAR_1 - - .align 2 -gAnims_TYRANITAR:: @ 8309510 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TYRANITAR_1 - - .align 2 -gAnims_LUGIA:: @ 8309518 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LUGIA_1 - - .align 2 -gAnims_HO_OH:: @ 8309520 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HO_OH_1 - - .align 2 -gAnims_CELEBI:: @ 8309528 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CELEBI_1 - - .align 2 -gAnims_OLD_UNOWN_B:: @ 8309530 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_OLD_UNOWN_B_1 - - .align 2 -gAnims_TREECKO:: @ 8309538 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TREECKO_1 - - .align 2 -gAnims_GROVYLE:: @ 8309540 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GROVYLE_1 - - .align 2 -gAnims_SCEPTILE:: @ 8309548 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SCEPTILE_1 - - .align 2 -gAnims_TORCHIC:: @ 8309550 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TORCHIC_1 - - .align 2 -gAnims_COMBUSKEN:: @ 8309558 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_COMBUSKEN_1 - - .align 2 -gAnims_BLAZIKEN:: @ 8309560 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BLAZIKEN_1 - .4byte gAnimCmd_BLAZIKEN_2 - .4byte gAnimCmd_BLAZIKEN_3 - .4byte gAnimCmd_BLAZIKEN_4 - - .align 2 -gAnims_MUDKIP:: @ 8309574 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MUDKIP_1 - - .align 2 -gAnims_MARSHTOMP:: @ 830957C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MARSHTOMP_1 - - .align 2 -gAnims_SWAMPERT:: @ 8309584 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SWAMPERT_1 - - .align 2 -gAnims_POOCHYENA:: @ 830958C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_POOCHYENA_1 - - .align 2 -gAnims_MIGHTYENA:: @ 8309594 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MIGHTYENA_1 - - .align 2 -gAnims_ZIGZAGOON:: @ 830959C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ZIGZAGOON_1 - - .align 2 -gAnims_LINOONE:: @ 83095A4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LINOONE_1 - - .align 2 -gAnims_WURMPLE:: @ 83095AC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WURMPLE_1 - - .align 2 -gAnims_SILCOON:: @ 83095B4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SILCOON_1 - .4byte gAnimCmd_SILCOON_2 - - .align 2 -gAnims_BEAUTIFLY:: @ 83095C0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BEAUTIFLY_1 - .4byte gAnimCmd_BEAUTIFLY_2 - - .align 2 -gAnims_CASCOON:: @ 83095CC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CASCOON_1 - .4byte gAnimCmd_CASCOON_2 - - .align 2 -gAnims_DUSTOX:: @ 83095D8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DUSTOX_1 - .4byte gAnimCmd_DUSTOX_2 - - .align 2 -gAnims_LOTAD:: @ 83095E4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LOTAD_1 - - .align 2 -gAnims_LOMBRE:: @ 83095EC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LOMBRE_1 - - .align 2 -gAnims_LUDICOLO:: @ 83095F4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LUDICOLO_1 - - .align 2 -gAnims_SEEDOT:: @ 83095FC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SEEDOT_1 - - .align 2 -gAnims_NUZLEAF:: @ 8309604 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NUZLEAF_1 - - .align 2 -gAnims_SHIFTRY:: @ 830960C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SHIFTRY_1 - - .align 2 -gAnims_NINCADA:: @ 8309614 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NINCADA_1 - - .align 2 -gAnims_NINJASK:: @ 830961C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NINJASK_1 - - .align 2 -gAnims_SHEDINJA:: @ 8309624 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SHEDINJA_1 - - .align 2 -gAnims_TAILLOW:: @ 830962C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TAILLOW_1 - - .align 2 -gAnims_SWELLOW:: @ 8309634 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SWELLOW_1 - - .align 2 -gAnims_SHROOMISH:: @ 830963C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SHROOMISH_1 - - .align 2 -gAnims_BRELOOM:: @ 8309644 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BRELOOM_1 - - .align 2 -gAnims_SPINDA:: @ 830964C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gAnims_WINGULL:: @ 8309650 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WINGULL_1 - - .align 2 -gAnims_PELIPPER:: @ 8309658 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PELIPPER_1 - - .align 2 -gAnims_SURSKIT:: @ 8309660 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SURSKIT_1 - .4byte gAnimCmd_SURSKIT_2 - - .align 2 -gAnims_MASQUERAIN:: @ 830966C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MASQUERAIN_1 - .4byte gAnimCmd_MASQUERAIN_2 - - .align 2 -gAnims_WAILMER:: @ 8309678 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WAILMER_1 - - .align 2 -gAnims_WAILORD:: @ 8309680 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WAILORD_1 - - .align 2 -gAnims_SKITTY:: @ 8309688 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SKITTY_1 - - .align 2 -gAnims_DELCATTY:: @ 8309690 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DELCATTY_1 - - .align 2 -gAnims_KECLEON:: @ 8309698 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_KECLEON_1 - - .align 2 -gAnims_BALTOY:: @ 83096A0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BALTOY_1 - - .align 2 -gAnims_CLAYDOL:: @ 83096A8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CLAYDOL_1 - - .align 2 -gAnims_NOSEPASS:: @ 83096B0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NOSEPASS_1 - - .align 2 -gAnims_TORKOAL:: @ 83096B8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TORKOAL_1 - - .align 2 -gAnims_SABLEYE:: @ 83096C0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SABLEYE_1 - - .align 2 -gAnims_BARBOACH:: @ 83096C8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BARBOACH_1 - - .align 2 -gAnims_WHISCASH:: @ 83096D0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WHISCASH_1 - - .align 2 -gAnims_LUVDISC:: @ 83096D8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LUVDISC_1 - - .align 2 -gAnims_CORPHISH:: @ 83096E0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CORPHISH_1 - - .align 2 -gAnims_CRAWDAUNT:: @ 83096E8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CRAWDAUNT_1 - - .align 2 -gAnims_FEEBAS:: @ 83096F0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_FEEBAS_1 - - .align 2 -gAnims_MILOTIC:: @ 83096F8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MILOTIC_1 - - .align 2 -gAnims_CARVANHA:: @ 8309700 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CARVANHA_1 - - .align 2 -gAnims_SHARPEDO:: @ 8309708 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SHARPEDO_1 - - .align 2 -gAnims_TRAPINCH:: @ 8309710 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TRAPINCH_1 - - .align 2 -gAnims_VIBRAVA:: @ 8309718 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_VIBRAVA_1 - - .align 2 -gAnims_FLYGON:: @ 8309720 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_FLYGON_1 - - .align 2 -gAnims_MAKUHITA:: @ 8309728 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MAKUHITA_1 - - .align 2 -gAnims_HARIYAMA:: @ 8309730 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HARIYAMA_1 - - .align 2 -gAnims_ELECTRIKE:: @ 8309738 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ELECTRIKE_1 - - .align 2 -gAnims_MANECTRIC:: @ 8309740 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MANECTRIC_1 - - .align 2 -gAnims_NUMEL:: @ 8309748 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_NUMEL_1 - - .align 2 -gAnims_CAMERUPT:: @ 8309750 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CAMERUPT_1 - - .align 2 -gAnims_SPHEAL:: @ 8309758 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SPHEAL_1 - - .align 2 -gAnims_SEALEO:: @ 8309760 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SEALEO_1 - - .align 2 -gAnims_WALREIN:: @ 8309768 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WALREIN_1 - - .align 2 -gAnims_CACNEA:: @ 8309770 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CACNEA_1 - - .align 2 -gAnims_CACTURNE:: @ 8309778 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CACTURNE_1 - - .align 2 -gAnims_SNORUNT:: @ 8309780 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SNORUNT_1 - - .align 2 -gAnims_GLALIE:: @ 8309788 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GLALIE_1 - - .align 2 -gAnims_LUNATONE:: @ 8309790 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LUNATONE_1 - .4byte gAnimCmd_LUNATONE_2 - - .align 2 -gAnims_SOLROCK:: @ 830979C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SOLROCK_1 - .4byte gAnimCmd_SOLROCK_2 - - .align 2 -gAnims_AZURILL:: @ 83097A8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_AZURILL_1 - - .align 2 -gAnims_SPOINK:: @ 83097B0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SPOINK_1 - - .align 2 -gAnims_GRUMPIG:: @ 83097B8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GRUMPIG_1 - - .align 2 -gAnims_PLUSLE:: @ 83097C0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_PLUSLE_1 - - .align 2 -gAnims_MINUN:: @ 83097C8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MINUN_1 - - .align 2 -gAnims_MAWILE:: @ 83097D0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MAWILE_1 - - .align 2 -gAnims_MEDITITE:: @ 83097D8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MEDITITE_1 - - .align 2 -gAnims_MEDICHAM:: @ 83097E0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_MEDICHAM_1 - - .align 2 -gAnims_SWABLU:: @ 83097E8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SWABLU_1 - .4byte gAnimCmd_SWABLU_2 - - .align 2 -gAnims_ALTARIA:: @ 83097F4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ALTARIA_1 - .4byte gAnimCmd_ALTARIA_2 - - .align 2 -gAnims_WYNAUT:: @ 8309800 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WYNAUT_1 - - .align 2 -gAnims_DUSKULL:: @ 8309808 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DUSKULL_1 - - .align 2 -gAnims_DUSCLOPS:: @ 8309810 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DUSCLOPS_1 - - .align 2 -gAnims_ROSELIA:: @ 8309818 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ROSELIA_1 - - .align 2 -gAnims_SLAKOTH:: @ 8309820 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SLAKOTH_1 - - .align 2 -gAnims_VIGOROTH:: @ 8309828 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_VIGOROTH_1 - - .align 2 -gAnims_SLAKING:: @ 8309830 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SLAKING_1 - - .align 2 -gAnims_GULPIN:: @ 8309838 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GULPIN_1 - - .align 2 -gAnims_SWALOT:: @ 8309840 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SWALOT_1 - - .align 2 -gAnims_TROPIUS:: @ 8309848 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_TROPIUS_1 - - .align 2 -gAnims_WHISMUR:: @ 8309850 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_WHISMUR_1 - - .align 2 -gAnims_LOUDRED:: @ 8309858 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LOUDRED_1 - - .align 2 -gAnims_EXPLOUD:: @ 8309860 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_EXPLOUD_1 - - .align 2 -gAnims_CLAMPERL:: @ 8309868 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CLAMPERL_1 - - .align 2 -gAnims_HUNTAIL:: @ 8309870 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_HUNTAIL_1 - - .align 2 -gAnims_GOREBYSS:: @ 8309878 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GOREBYSS_1 - - .align 2 -gAnims_ABSOL:: @ 8309880 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ABSOL_1 - - .align 2 -gAnims_SHUPPET:: @ 8309888 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SHUPPET_1 - - .align 2 -gAnims_BANETTE:: @ 8309890 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BANETTE_1 - - .align 2 -gAnims_SEVIPER:: @ 8309898 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SEVIPER_1 - - .align 2 -gAnims_ZANGOOSE:: @ 83098A0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ZANGOOSE_1 - - .align 2 -gAnims_RELICANTH:: @ 83098A8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_RELICANTH_1 - - .align 2 -gAnims_ARON:: @ 83098B0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ARON_1 - - .align 2 -gAnims_LAIRON:: @ 83098B8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LAIRON_1 - - .align 2 -gAnims_AGGRON:: @ 83098C0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_AGGRON_1 - - .align 2 -gAnims_CASTFORM:: @ 83098C8 - .4byte gAnimCmd_CASTFORM_0 - .4byte gAnimCmd_CASTFORM_1 - .4byte gAnimCmd_CASTFORM_2 - .4byte gAnimCmd_CASTFORM_3 - - .align 2 -gAnims_VOLBEAT:: @ 83098D8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_VOLBEAT_1 - - .align 2 -gAnims_ILLUMISE:: @ 83098E0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ILLUMISE_1 - - .align 2 -gAnims_LILEEP:: @ 83098E8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LILEEP_1 - - .align 2 -gAnims_CRADILY:: @ 83098F0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CRADILY_1 - - .align 2 -gAnims_ANORITH:: @ 83098F8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ANORITH_1 - - .align 2 -gAnims_ARMALDO:: @ 8309900 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_ARMALDO_1 - - .align 2 -gAnims_RALTS:: @ 8309908 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_RALTS_1 - - .align 2 -gAnims_KIRLIA:: @ 8309910 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_KIRLIA_1 - - .align 2 -gAnims_GARDEVOIR:: @ 8309918 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GARDEVOIR_1 - - .align 2 -gAnims_BAGON:: @ 8309920 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BAGON_1 - - .align 2 -gAnims_SHELGON:: @ 8309928 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SHELGON_1 - - .align 2 -gAnims_SALAMENCE:: @ 8309930 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_SALAMENCE_1 - - .align 2 -gAnims_BELDUM:: @ 8309938 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_BELDUM_1 - - .align 2 -gAnims_METANG:: @ 8309940 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_METANG_1 - - .align 2 -gAnims_METAGROSS:: @ 8309948 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_METAGROSS_1 - - .align 2 -gAnims_REGIROCK:: @ 8309950 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_REGIROCK_1 - .4byte gAnimCmd_REGIROCK_2 - - .align 2 -gAnims_REGICE:: @ 830995C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_REGICE_1 - - .align 2 -gAnims_REGISTEEL:: @ 8309964 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_REGISTEEL_1 - .4byte gAnimCmd_REGISTEEL_2 - - .align 2 -gAnims_KYOGRE:: @ 8309970 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_KYOGRE_1 - .4byte gAnimCmd_KYOGRE_2 - - .align 2 -gAnims_GROUDON:: @ 830997C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_GROUDON_1 - .4byte gAnimCmd_GROUDON_2 - - .align 2 -gAnims_RAYQUAZA:: @ 8309988 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_RAYQUAZA_1 - .4byte gAnimCmd_RAYQUAZA_2 - - .align 2 -gAnims_LATIAS:: @ 8309994 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LATIAS_1 - .4byte gAnimCmd_LATIAS_2 - - .align 2 -gAnims_LATIOS:: @ 83099A0 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_LATIOS_1 - .4byte gAnimCmd_LATIOS_2 - - .align 2 -gAnims_JIRACHI:: @ 83099AC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_JIRACHI_1 - .4byte gAnimCmd_JIRACHI_2 - - .align 2 -gAnims_DEOXYS:: @ 83099B8 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_DEOXYS_1 - .4byte gAnimCmd_DEOXYS_2 - - .align 2 -gAnims_CHIMECHO:: @ 83099C4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_CHIMECHO_1 - - .align 2 -gAnims_EGG:: @ 83099CC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_EGG_1 - - .align 2 -gAnims_UNOWN_B:: @ 83099D4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_B_1 - - .align 2 -gAnims_UNOWN_C:: @ 83099DC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_C_1 - - .align 2 -gAnims_UNOWN_D:: @ 83099E4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_D_1 - - .align 2 -gAnims_UNOWN_E:: @ 83099EC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_E_1 - - .align 2 -gAnims_UNOWN_F:: @ 83099F4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_F_1 - - .align 2 -gAnims_UNOWN_G:: @ 83099FC - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_G_1 - - .align 2 -gAnims_UNOWN_H:: @ 8309A04 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_H_1 - - .align 2 -gAnims_UNOWN_I:: @ 8309A0C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_I_1 - - .align 2 -gAnims_UNOWN_J:: @ 8309A14 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_J_1 - - .align 2 -gAnims_UNOWN_K:: @ 8309A1C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_K_1 - - .align 2 -gAnims_UNOWN_L:: @ 8309A24 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_L_1 - - .align 2 -gAnims_UNOWN_M:: @ 8309A2C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_M_1 - - .align 2 -gAnims_UNOWN_N:: @ 8309A34 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_N_1 - - .align 2 -gAnims_UNOWN_O:: @ 8309A3C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_O_1 - - .align 2 -gAnims_UNOWN_P:: @ 8309A44 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_P_1 - - .align 2 -gAnims_UNOWN_Q:: @ 8309A4C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_Q_1 - - .align 2 -gAnims_UNOWN_R:: @ 8309A54 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_R_1 - - .align 2 -gAnims_UNOWN_S:: @ 8309A5C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_S_1 - - .align 2 -gAnims_UNOWN_T:: @ 8309A64 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_T_1 - - .align 2 -gAnims_UNOWN_U:: @ 8309A6C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_U_1 - - .align 2 -gAnims_UNOWN_V:: @ 8309A74 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_V_1 - - .align 2 -gAnims_UNOWN_W:: @ 8309A7C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_W_1 - - .align 2 -gAnims_UNOWN_X:: @ 8309A84 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_X_1 - - .align 2 -gAnims_UNOWN_Y:: @ 8309A8C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_Y_1 - - .align 2 -gAnims_UNOWN_Z:: @ 8309A94 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_Z_1 - - .align 2 -gAnims_UNOWN_EMARK:: @ 8309A9C - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_EMARK_1 - - .align 2 -gAnims_UNOWN_QMARK:: @ 8309AA4 - .4byte gAnimCmd_General_Frame0 - .4byte gAnimCmd_UNOWN_QMARK_1 - - .align 2 -gMonAnimationsSpriteAnimsPtrTable:: @ 8309AAC - .4byte gAnims_NONE - .4byte gAnims_BULBASAUR - .4byte gAnims_IVYSAUR - .4byte gAnims_VENUSAUR - .4byte gAnims_CHARMANDER - .4byte gAnims_CHARMELEON - .4byte gAnims_CHARIZARD - .4byte gAnims_SQUIRTLE - .4byte gAnims_WARTORTLE - .4byte gAnims_BLASTOISE - .4byte gAnims_CATERPIE - .4byte gAnims_METAPOD - .4byte gAnims_BUTTERFREE - .4byte gAnims_WEEDLE - .4byte gAnims_KAKUNA - .4byte gAnims_BEEDRILL - .4byte gAnims_PIDGEY - .4byte gAnims_PIDGEOTTO - .4byte gAnims_PIDGEOT - .4byte gAnims_RATTATA - .4byte gAnims_RATICATE - .4byte gAnims_SPEAROW - .4byte gAnims_FEAROW - .4byte gAnims_EKANS - .4byte gAnims_ARBOK - .4byte gAnims_PIKACHU - .4byte gAnims_RAICHU - .4byte gAnims_SANDSHREW - .4byte gAnims_SANDSLASH - .4byte gAnims_NIDORAN_F - .4byte gAnims_NIDORINA - .4byte gAnims_NIDOQUEEN - .4byte gAnims_NIDORAN_M - .4byte gAnims_NIDORINO - .4byte gAnims_NIDOKING - .4byte gAnims_CLEFAIRY - .4byte gAnims_CLEFABLE - .4byte gAnims_VULPIX - .4byte gAnims_NINETALES - .4byte gAnims_JIGGLYPUFF - .4byte gAnims_WIGGLYTUFF - .4byte gAnims_ZUBAT - .4byte gAnims_GOLBAT - .4byte gAnims_ODDISH - .4byte gAnims_GLOOM - .4byte gAnims_VILEPLUME - .4byte gAnims_PARAS - .4byte gAnims_PARASECT - .4byte gAnims_VENONAT - .4byte gAnims_VENOMOTH - .4byte gAnims_DIGLETT - .4byte gAnims_DUGTRIO - .4byte gAnims_MEOWTH - .4byte gAnims_PERSIAN - .4byte gAnims_PSYDUCK - .4byte gAnims_GOLDUCK - .4byte gAnims_MANKEY - .4byte gAnims_PRIMEAPE - .4byte gAnims_GROWLITHE - .4byte gAnims_ARCANINE - .4byte gAnims_POLIWAG - .4byte gAnims_POLIWHIRL - .4byte gAnims_POLIWRATH - .4byte gAnims_ABRA - .4byte gAnims_KADABRA - .4byte gAnims_ALAKAZAM - .4byte gAnims_MACHOP - .4byte gAnims_MACHOKE - .4byte gAnims_MACHAMP - .4byte gAnims_BELLSPROUT - .4byte gAnims_WEEPINBELL - .4byte gAnims_VICTREEBEL - .4byte gAnims_TENTACOOL - .4byte gAnims_TENTACRUEL - .4byte gAnims_GEODUDE - .4byte gAnims_GRAVELER - .4byte gAnims_GOLEM - .4byte gAnims_PONYTA - .4byte gAnims_RAPIDASH - .4byte gAnims_SLOWPOKE - .4byte gAnims_SLOWBRO - .4byte gAnims_MAGNEMITE - .4byte gAnims_MAGNETON - .4byte gAnims_FARFETCHD - .4byte gAnims_DODUO - .4byte gAnims_DODRIO - .4byte gAnims_SEEL - .4byte gAnims_DEWGONG - .4byte gAnims_GRIMER - .4byte gAnims_MUK - .4byte gAnims_SHELLDER - .4byte gAnims_CLOYSTER - .4byte gAnims_GASTLY - .4byte gAnims_HAUNTER - .4byte gAnims_GENGAR - .4byte gAnims_ONIX - .4byte gAnims_DROWZEE - .4byte gAnims_HYPNO - .4byte gAnims_KRABBY - .4byte gAnims_KINGLER - .4byte gAnims_VOLTORB - .4byte gAnims_ELECTRODE - .4byte gAnims_EXEGGCUTE - .4byte gAnims_EXEGGUTOR - .4byte gAnims_CUBONE - .4byte gAnims_MAROWAK - .4byte gAnims_HITMONLEE - .4byte gAnims_HITMONCHAN - .4byte gAnims_LICKITUNG - .4byte gAnims_KOFFING - .4byte gAnims_WEEZING - .4byte gAnims_RHYHORN - .4byte gAnims_RHYDON - .4byte gAnims_CHANSEY - .4byte gAnims_TANGELA - .4byte gAnims_KANGASKHAN - .4byte gAnims_HORSEA - .4byte gAnims_SEADRA - .4byte gAnims_GOLDEEN - .4byte gAnims_SEAKING - .4byte gAnims_STARYU - .4byte gAnims_STARMIE - .4byte gAnims_MR_MIME - .4byte gAnims_SCYTHER - .4byte gAnims_JYNX - .4byte gAnims_ELECTABUZZ - .4byte gAnims_MAGMAR - .4byte gAnims_PINSIR - .4byte gAnims_TAUROS - .4byte gAnims_MAGIKARP - .4byte gAnims_GYARADOS - .4byte gAnims_LAPRAS - .4byte gAnims_DITTO - .4byte gAnims_EEVEE - .4byte gAnims_VAPOREON - .4byte gAnims_JOLTEON - .4byte gAnims_FLAREON - .4byte gAnims_PORYGON - .4byte gAnims_OMANYTE - .4byte gAnims_OMASTAR - .4byte gAnims_KABUTO - .4byte gAnims_KABUTOPS - .4byte gAnims_AERODACTYL - .4byte gAnims_SNORLAX - .4byte gAnims_ARTICUNO - .4byte gAnims_ZAPDOS - .4byte gAnims_MOLTRES - .4byte gAnims_DRATINI - .4byte gAnims_DRAGONAIR - .4byte gAnims_DRAGONITE - .4byte gAnims_MEWTWO - .4byte gAnims_MEW - .4byte gAnims_CHIKORITA - .4byte gAnims_BAYLEEF - .4byte gAnims_MEGANIUM - .4byte gAnims_CYNDAQUIL - .4byte gAnims_QUILAVA - .4byte gAnims_TYPHLOSION - .4byte gAnims_TOTODILE - .4byte gAnims_CROCONAW - .4byte gAnims_FERALIGATR - .4byte gAnims_SENTRET - .4byte gAnims_FURRET - .4byte gAnims_HOOTHOOT - .4byte gAnims_NOCTOWL - .4byte gAnims_LEDYBA - .4byte gAnims_LEDIAN - .4byte gAnims_SPINARAK - .4byte gAnims_ARIADOS - .4byte gAnims_CROBAT - .4byte gAnims_CHINCHOU - .4byte gAnims_LANTURN - .4byte gAnims_PICHU - .4byte gAnims_CLEFFA - .4byte gAnims_IGGLYBUFF - .4byte gAnims_TOGEPI - .4byte gAnims_TOGETIC - .4byte gAnims_NATU - .4byte gAnims_XATU - .4byte gAnims_MAREEP - .4byte gAnims_FLAAFFY - .4byte gAnims_AMPHAROS - .4byte gAnims_BELLOSSOM - .4byte gAnims_MARILL - .4byte gAnims_AZUMARILL - .4byte gAnims_SUDOWOODO - .4byte gAnims_POLITOED - .4byte gAnims_HOPPIP - .4byte gAnims_SKIPLOOM - .4byte gAnims_JUMPLUFF - .4byte gAnims_AIPOM - .4byte gAnims_SUNKERN - .4byte gAnims_SUNFLORA - .4byte gAnims_YANMA - .4byte gAnims_WOOPER - .4byte gAnims_QUAGSIRE - .4byte gAnims_ESPEON - .4byte gAnims_UMBREON - .4byte gAnims_MURKROW - .4byte gAnims_SLOWKING - .4byte gAnims_MISDREAVUS - .4byte gAnims_UNOWN - .4byte gAnims_WOBBUFFET - .4byte gAnims_GIRAFARIG - .4byte gAnims_PINECO - .4byte gAnims_FORRETRESS - .4byte gAnims_DUNSPARCE - .4byte gAnims_GLIGAR - .4byte gAnims_STEELIX - .4byte gAnims_SNUBBULL - .4byte gAnims_GRANBULL - .4byte gAnims_QWILFISH - .4byte gAnims_SCIZOR - .4byte gAnims_SHUCKLE - .4byte gAnims_HERACROSS - .4byte gAnims_SNEASEL - .4byte gAnims_TEDDIURSA - .4byte gAnims_URSARING - .4byte gAnims_SLUGMA - .4byte gAnims_MAGCARGO - .4byte gAnims_SWINUB - .4byte gAnims_PILOSWINE - .4byte gAnims_CORSOLA - .4byte gAnims_REMORAID - .4byte gAnims_OCTILLERY - .4byte gAnims_DELIBIRD - .4byte gAnims_MANTINE - .4byte gAnims_SKARMORY - .4byte gAnims_HOUNDOUR - .4byte gAnims_HOUNDOOM - .4byte gAnims_KINGDRA - .4byte gAnims_PHANPY - .4byte gAnims_DONPHAN - .4byte gAnims_PORYGON2 - .4byte gAnims_STANTLER - .4byte gAnims_SMEARGLE - .4byte gAnims_TYROGUE - .4byte gAnims_HITMONTOP - .4byte gAnims_SMOOCHUM - .4byte gAnims_ELEKID - .4byte gAnims_MAGBY - .4byte gAnims_MILTANK - .4byte gAnims_BLISSEY - .4byte gAnims_RAIKOU - .4byte gAnims_ENTEI - .4byte gAnims_SUICUNE - .4byte gAnims_LARVITAR - .4byte gAnims_PUPITAR - .4byte gAnims_TYRANITAR - .4byte gAnims_LUGIA - .4byte gAnims_HO_OH - .4byte gAnims_CELEBI - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_OLD_UNOWN_B - .4byte gAnims_TREECKO - .4byte gAnims_GROVYLE - .4byte gAnims_SCEPTILE - .4byte gAnims_TORCHIC - .4byte gAnims_COMBUSKEN - .4byte gAnims_BLAZIKEN - .4byte gAnims_MUDKIP - .4byte gAnims_MARSHTOMP - .4byte gAnims_SWAMPERT - .4byte gAnims_POOCHYENA - .4byte gAnims_MIGHTYENA - .4byte gAnims_ZIGZAGOON - .4byte gAnims_LINOONE - .4byte gAnims_WURMPLE - .4byte gAnims_SILCOON - .4byte gAnims_BEAUTIFLY - .4byte gAnims_CASCOON - .4byte gAnims_DUSTOX - .4byte gAnims_LOTAD - .4byte gAnims_LOMBRE - .4byte gAnims_LUDICOLO - .4byte gAnims_SEEDOT - .4byte gAnims_NUZLEAF - .4byte gAnims_SHIFTRY - .4byte gAnims_NINCADA - .4byte gAnims_NINJASK - .4byte gAnims_SHEDINJA - .4byte gAnims_TAILLOW - .4byte gAnims_SWELLOW - .4byte gAnims_SHROOMISH - .4byte gAnims_BRELOOM - .4byte gAnims_SPINDA - .4byte gAnims_WINGULL - .4byte gAnims_PELIPPER - .4byte gAnims_SURSKIT - .4byte gAnims_MASQUERAIN - .4byte gAnims_WAILMER - .4byte gAnims_WAILORD - .4byte gAnims_SKITTY - .4byte gAnims_DELCATTY - .4byte gAnims_KECLEON - .4byte gAnims_BALTOY - .4byte gAnims_CLAYDOL - .4byte gAnims_NOSEPASS - .4byte gAnims_TORKOAL - .4byte gAnims_SABLEYE - .4byte gAnims_BARBOACH - .4byte gAnims_WHISCASH - .4byte gAnims_LUVDISC - .4byte gAnims_CORPHISH - .4byte gAnims_CRAWDAUNT - .4byte gAnims_FEEBAS - .4byte gAnims_MILOTIC - .4byte gAnims_CARVANHA - .4byte gAnims_SHARPEDO - .4byte gAnims_TRAPINCH - .4byte gAnims_VIBRAVA - .4byte gAnims_FLYGON - .4byte gAnims_MAKUHITA - .4byte gAnims_HARIYAMA - .4byte gAnims_ELECTRIKE - .4byte gAnims_MANECTRIC - .4byte gAnims_NUMEL - .4byte gAnims_CAMERUPT - .4byte gAnims_SPHEAL - .4byte gAnims_SEALEO - .4byte gAnims_WALREIN - .4byte gAnims_CACNEA - .4byte gAnims_CACTURNE - .4byte gAnims_SNORUNT - .4byte gAnims_GLALIE - .4byte gAnims_LUNATONE - .4byte gAnims_SOLROCK - .4byte gAnims_AZURILL - .4byte gAnims_SPOINK - .4byte gAnims_GRUMPIG - .4byte gAnims_PLUSLE - .4byte gAnims_MINUN - .4byte gAnims_MAWILE - .4byte gAnims_MEDITITE - .4byte gAnims_MEDICHAM - .4byte gAnims_SWABLU - .4byte gAnims_ALTARIA - .4byte gAnims_WYNAUT - .4byte gAnims_DUSKULL - .4byte gAnims_DUSCLOPS - .4byte gAnims_ROSELIA - .4byte gAnims_SLAKOTH - .4byte gAnims_VIGOROTH - .4byte gAnims_SLAKING - .4byte gAnims_GULPIN - .4byte gAnims_SWALOT - .4byte gAnims_TROPIUS - .4byte gAnims_WHISMUR - .4byte gAnims_LOUDRED - .4byte gAnims_EXPLOUD - .4byte gAnims_CLAMPERL - .4byte gAnims_HUNTAIL - .4byte gAnims_GOREBYSS - .4byte gAnims_ABSOL - .4byte gAnims_SHUPPET - .4byte gAnims_BANETTE - .4byte gAnims_SEVIPER - .4byte gAnims_ZANGOOSE - .4byte gAnims_RELICANTH - .4byte gAnims_ARON - .4byte gAnims_LAIRON - .4byte gAnims_AGGRON - .4byte gAnims_CASTFORM - .4byte gAnims_VOLBEAT - .4byte gAnims_ILLUMISE - .4byte gAnims_LILEEP - .4byte gAnims_CRADILY - .4byte gAnims_ANORITH - .4byte gAnims_ARMALDO - .4byte gAnims_RALTS - .4byte gAnims_KIRLIA - .4byte gAnims_GARDEVOIR - .4byte gAnims_BAGON - .4byte gAnims_SHELGON - .4byte gAnims_SALAMENCE - .4byte gAnims_BELDUM - .4byte gAnims_METANG - .4byte gAnims_METAGROSS - .4byte gAnims_REGIROCK - .4byte gAnims_REGICE - .4byte gAnims_REGISTEEL - .4byte gAnims_KYOGRE - .4byte gAnims_GROUDON - .4byte gAnims_RAYQUAZA - .4byte gAnims_LATIAS - .4byte gAnims_LATIOS - .4byte gAnims_JIRACHI - .4byte gAnims_DEOXYS - .4byte gAnims_CHIMECHO - .4byte gAnims_EGG - .4byte gAnims_UNOWN_B - .4byte gAnims_UNOWN_C - .4byte gAnims_UNOWN_D - .4byte gAnims_UNOWN_E - .4byte gAnims_UNOWN_F - .4byte gAnims_UNOWN_G - .4byte gAnims_UNOWN_H - .4byte gAnims_UNOWN_I - .4byte gAnims_UNOWN_J - .4byte gAnims_UNOWN_K - .4byte gAnims_UNOWN_L - .4byte gAnims_UNOWN_M - .4byte gAnims_UNOWN_N - .4byte gAnims_UNOWN_O - .4byte gAnims_UNOWN_P - .4byte gAnims_UNOWN_Q - .4byte gAnims_UNOWN_R - .4byte gAnims_UNOWN_S - .4byte gAnims_UNOWN_T - .4byte gAnims_UNOWN_U - .4byte gAnims_UNOWN_V - .4byte gAnims_UNOWN_W - .4byte gAnims_UNOWN_X - .4byte gAnims_UNOWN_Y - .4byte gAnims_UNOWN_Z - .4byte gAnims_UNOWN_EMARK - .4byte gAnims_UNOWN_QMARK diff --git a/data/graphics/pokemon/front_pic_table.inc b/data/graphics/pokemon/front_pic_table.inc deleted file mode 100644 index 7f481e1900..0000000000 --- a/data/graphics/pokemon/front_pic_table.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonFrontPicTable:: @ 830A18C - obj_tiles gMonFrontPic_CircledQuestionMark, 0x800, 0 - obj_tiles gMonFrontPic_Bulbasaur, 0x800, 1 - obj_tiles gMonFrontPic_Ivysaur, 0x800, 2 - obj_tiles gMonFrontPic_Venusaur, 0x800, 3 - obj_tiles gMonFrontPic_Charmander, 0x800, 4 - obj_tiles gMonFrontPic_Charmeleon, 0x800, 5 - obj_tiles gMonFrontPic_Charizard, 0x800, 6 - obj_tiles gMonFrontPic_Squirtle, 0x800, 7 - obj_tiles gMonFrontPic_Wartortle, 0x800, 8 - obj_tiles gMonFrontPic_Blastoise, 0x800, 9 - obj_tiles gMonFrontPic_Caterpie, 0x800, 10 - obj_tiles gMonFrontPic_Metapod, 0x800, 11 - obj_tiles gMonFrontPic_Butterfree, 0x800, 12 - obj_tiles gMonFrontPic_Weedle, 0x800, 13 - obj_tiles gMonFrontPic_Kakuna, 0x800, 14 - obj_tiles gMonFrontPic_Beedrill, 0x800, 15 - obj_tiles gMonFrontPic_Pidgey, 0x800, 16 - obj_tiles gMonFrontPic_Pidgeotto, 0x800, 17 - obj_tiles gMonFrontPic_Pidgeot, 0x800, 18 - obj_tiles gMonFrontPic_Rattata, 0x800, 19 - obj_tiles gMonFrontPic_Raticate, 0x800, 20 - obj_tiles gMonFrontPic_Spearow, 0x800, 21 - obj_tiles gMonFrontPic_Fearow, 0x800, 22 - obj_tiles gMonFrontPic_Ekans, 0x800, 23 - obj_tiles gMonFrontPic_Arbok, 0x800, 24 - obj_tiles gMonFrontPic_Pikachu, 0x800, 25 - obj_tiles gMonFrontPic_Raichu, 0x800, 26 - obj_tiles gMonFrontPic_Sandshrew, 0x800, 27 - obj_tiles gMonFrontPic_Sandslash, 0x800, 28 - obj_tiles gMonFrontPic_NidoranF, 0x800, 29 - obj_tiles gMonFrontPic_Nidorina, 0x800, 30 - obj_tiles gMonFrontPic_Nidoqueen, 0x800, 31 - obj_tiles gMonFrontPic_NidoranM, 0x800, 32 - obj_tiles gMonFrontPic_Nidorino, 0x800, 33 - obj_tiles gMonFrontPic_Nidoking, 0x800, 34 - obj_tiles gMonFrontPic_Clefairy, 0x800, 35 - obj_tiles gMonFrontPic_Clefable, 0x800, 36 - obj_tiles gMonFrontPic_Vulpix, 0x800, 37 - obj_tiles gMonFrontPic_Ninetales, 0x800, 38 - obj_tiles gMonFrontPic_Jigglypuff, 0x800, 39 - obj_tiles gMonFrontPic_Wigglytuff, 0x800, 40 - obj_tiles gMonFrontPic_Zubat, 0x800, 41 - obj_tiles gMonFrontPic_Golbat, 0x800, 42 - obj_tiles gMonFrontPic_Oddish, 0x800, 43 - obj_tiles gMonFrontPic_Gloom, 0x800, 44 - obj_tiles gMonFrontPic_Vileplume, 0x800, 45 - obj_tiles gMonFrontPic_Paras, 0x800, 46 - obj_tiles gMonFrontPic_Parasect, 0x800, 47 - obj_tiles gMonFrontPic_Venonat, 0x800, 48 - obj_tiles gMonFrontPic_Venomoth, 0x800, 49 - obj_tiles gMonFrontPic_Diglett, 0x800, 50 - obj_tiles gMonFrontPic_Dugtrio, 0x800, 51 - obj_tiles gMonFrontPic_Meowth, 0x800, 52 - obj_tiles gMonFrontPic_Persian, 0x800, 53 - obj_tiles gMonFrontPic_Psyduck, 0x800, 54 - obj_tiles gMonFrontPic_Golduck, 0x800, 55 - obj_tiles gMonFrontPic_Mankey, 0x800, 56 - obj_tiles gMonFrontPic_Primeape, 0x800, 57 - obj_tiles gMonFrontPic_Growlithe, 0x800, 58 - obj_tiles gMonFrontPic_Arcanine, 0x800, 59 - obj_tiles gMonFrontPic_Poliwag, 0x800, 60 - obj_tiles gMonFrontPic_Poliwhirl, 0x800, 61 - obj_tiles gMonFrontPic_Poliwrath, 0x800, 62 - obj_tiles gMonFrontPic_Abra, 0x800, 63 - obj_tiles gMonFrontPic_Kadabra, 0x800, 64 - obj_tiles gMonFrontPic_Alakazam, 0x800, 65 - obj_tiles gMonFrontPic_Machop, 0x800, 66 - obj_tiles gMonFrontPic_Machoke, 0x800, 67 - obj_tiles gMonFrontPic_Machamp, 0x800, 68 - obj_tiles gMonFrontPic_Bellsprout, 0x800, 69 - obj_tiles gMonFrontPic_Weepinbell, 0x800, 70 - obj_tiles gMonFrontPic_Victreebel, 0x800, 71 - obj_tiles gMonFrontPic_Tentacool, 0x800, 72 - obj_tiles gMonFrontPic_Tentacruel, 0x800, 73 - obj_tiles gMonFrontPic_Geodude, 0x800, 74 - obj_tiles gMonFrontPic_Graveler, 0x800, 75 - obj_tiles gMonFrontPic_Golem, 0x800, 76 - obj_tiles gMonFrontPic_Ponyta, 0x800, 77 - obj_tiles gMonFrontPic_Rapidash, 0x800, 78 - obj_tiles gMonFrontPic_Slowpoke, 0x800, 79 - obj_tiles gMonFrontPic_Slowbro, 0x800, 80 - obj_tiles gMonFrontPic_Magnemite, 0x800, 81 - obj_tiles gMonFrontPic_Magneton, 0x800, 82 - obj_tiles gMonFrontPic_Farfetchd, 0x800, 83 - obj_tiles gMonFrontPic_Doduo, 0x800, 84 - obj_tiles gMonFrontPic_Dodrio, 0x800, 85 - obj_tiles gMonFrontPic_Seel, 0x800, 86 - obj_tiles gMonFrontPic_Dewgong, 0x800, 87 - obj_tiles gMonFrontPic_Grimer, 0x800, 88 - obj_tiles gMonFrontPic_Muk, 0x800, 89 - obj_tiles gMonFrontPic_Shellder, 0x800, 90 - obj_tiles gMonFrontPic_Cloyster, 0x800, 91 - obj_tiles gMonFrontPic_Gastly, 0x800, 92 - obj_tiles gMonFrontPic_Haunter, 0x800, 93 - obj_tiles gMonFrontPic_Gengar, 0x800, 94 - obj_tiles gMonFrontPic_Onix, 0x800, 95 - obj_tiles gMonFrontPic_Drowzee, 0x800, 96 - obj_tiles gMonFrontPic_Hypno, 0x800, 97 - obj_tiles gMonFrontPic_Krabby, 0x800, 98 - obj_tiles gMonFrontPic_Kingler, 0x800, 99 - obj_tiles gMonFrontPic_Voltorb, 0x800, 100 - obj_tiles gMonFrontPic_Electrode, 0x800, 101 - obj_tiles gMonFrontPic_Exeggcute, 0x800, 102 - obj_tiles gMonFrontPic_Exeggutor, 0x800, 103 - obj_tiles gMonFrontPic_Cubone, 0x800, 104 - obj_tiles gMonFrontPic_Marowak, 0x800, 105 - obj_tiles gMonFrontPic_Hitmonlee, 0x800, 106 - obj_tiles gMonFrontPic_Hitmonchan, 0x800, 107 - obj_tiles gMonFrontPic_Lickitung, 0x800, 108 - obj_tiles gMonFrontPic_Koffing, 0x800, 109 - obj_tiles gMonFrontPic_Weezing, 0x800, 110 - obj_tiles gMonFrontPic_Rhyhorn, 0x800, 111 - obj_tiles gMonFrontPic_Rhydon, 0x800, 112 - obj_tiles gMonFrontPic_Chansey, 0x800, 113 - obj_tiles gMonFrontPic_Tangela, 0x800, 114 - obj_tiles gMonFrontPic_Kangaskhan, 0x800, 115 - obj_tiles gMonFrontPic_Horsea, 0x800, 116 - obj_tiles gMonFrontPic_Seadra, 0x800, 117 - obj_tiles gMonFrontPic_Goldeen, 0x800, 118 - obj_tiles gMonFrontPic_Seaking, 0x800, 119 - obj_tiles gMonFrontPic_Staryu, 0x800, 120 - obj_tiles gMonFrontPic_Starmie, 0x800, 121 - obj_tiles gMonFrontPic_Mrmime, 0x800, 122 - obj_tiles gMonFrontPic_Scyther, 0x800, 123 - obj_tiles gMonFrontPic_Jynx, 0x800, 124 - obj_tiles gMonFrontPic_Electabuzz, 0x800, 125 - obj_tiles gMonFrontPic_Magmar, 0x800, 126 - obj_tiles gMonFrontPic_Pinsir, 0x800, 127 - obj_tiles gMonFrontPic_Tauros, 0x800, 128 - obj_tiles gMonFrontPic_Magikarp, 0x800, 129 - obj_tiles gMonFrontPic_Gyarados, 0x800, 130 - obj_tiles gMonFrontPic_Lapras, 0x800, 131 - obj_tiles gMonFrontPic_Ditto, 0x800, 132 - obj_tiles gMonFrontPic_Eevee, 0x800, 133 - obj_tiles gMonFrontPic_Vaporeon, 0x800, 134 - obj_tiles gMonFrontPic_Jolteon, 0x800, 135 - obj_tiles gMonFrontPic_Flareon, 0x800, 136 - obj_tiles gMonFrontPic_Porygon, 0x800, 137 - obj_tiles gMonFrontPic_Omanyte, 0x800, 138 - obj_tiles gMonFrontPic_Omastar, 0x800, 139 - obj_tiles gMonFrontPic_Kabuto, 0x800, 140 - obj_tiles gMonFrontPic_Kabutops, 0x800, 141 - obj_tiles gMonFrontPic_Aerodactyl, 0x800, 142 - obj_tiles gMonFrontPic_Snorlax, 0x800, 143 - obj_tiles gMonFrontPic_Articuno, 0x800, 144 - obj_tiles gMonFrontPic_Zapdos, 0x800, 145 - obj_tiles gMonFrontPic_Moltres, 0x800, 146 - obj_tiles gMonFrontPic_Dratini, 0x800, 147 - obj_tiles gMonFrontPic_Dragonair, 0x800, 148 - obj_tiles gMonFrontPic_Dragonite, 0x800, 149 - obj_tiles gMonFrontPic_Mewtwo, 0x800, 150 - obj_tiles gMonFrontPic_Mew, 0x800, 151 - obj_tiles gMonFrontPic_Chikorita, 0x800, 152 - obj_tiles gMonFrontPic_Bayleef, 0x800, 153 - obj_tiles gMonFrontPic_Meganium, 0x800, 154 - obj_tiles gMonFrontPic_Cyndaquil, 0x800, 155 - obj_tiles gMonFrontPic_Quilava, 0x800, 156 - obj_tiles gMonFrontPic_Typhlosion, 0x800, 157 - obj_tiles gMonFrontPic_Totodile, 0x800, 158 - obj_tiles gMonFrontPic_Croconaw, 0x800, 159 - obj_tiles gMonFrontPic_Feraligatr, 0x800, 160 - obj_tiles gMonFrontPic_Sentret, 0x800, 161 - obj_tiles gMonFrontPic_Furret, 0x800, 162 - obj_tiles gMonFrontPic_Hoothoot, 0x800, 163 - obj_tiles gMonFrontPic_Noctowl, 0x800, 164 - obj_tiles gMonFrontPic_Ledyba, 0x800, 165 - obj_tiles gMonFrontPic_Ledian, 0x800, 166 - obj_tiles gMonFrontPic_Spinarak, 0x800, 167 - obj_tiles gMonFrontPic_Ariados, 0x800, 168 - obj_tiles gMonFrontPic_Crobat, 0x800, 169 - obj_tiles gMonFrontPic_Chinchou, 0x800, 170 - obj_tiles gMonFrontPic_Lanturn, 0x800, 171 - obj_tiles gMonFrontPic_Pichu, 0x800, 172 - obj_tiles gMonFrontPic_Cleffa, 0x800, 173 - obj_tiles gMonFrontPic_Igglybuff, 0x800, 174 - obj_tiles gMonFrontPic_Togepi, 0x800, 175 - obj_tiles gMonFrontPic_Togetic, 0x800, 176 - obj_tiles gMonFrontPic_Natu, 0x800, 177 - obj_tiles gMonFrontPic_Xatu, 0x800, 178 - obj_tiles gMonFrontPic_Mareep, 0x800, 179 - obj_tiles gMonFrontPic_Flaaffy, 0x800, 180 - obj_tiles gMonFrontPic_Ampharos, 0x800, 181 - obj_tiles gMonFrontPic_Bellossom, 0x800, 182 - obj_tiles gMonFrontPic_Marill, 0x800, 183 - obj_tiles gMonFrontPic_Azumarill, 0x800, 184 - obj_tiles gMonFrontPic_Sudowoodo, 0x800, 185 - obj_tiles gMonFrontPic_Politoed, 0x800, 186 - obj_tiles gMonFrontPic_Hoppip, 0x800, 187 - obj_tiles gMonFrontPic_Skiploom, 0x800, 188 - obj_tiles gMonFrontPic_Jumpluff, 0x800, 189 - obj_tiles gMonFrontPic_Aipom, 0x800, 190 - obj_tiles gMonFrontPic_Sunkern, 0x800, 191 - obj_tiles gMonFrontPic_Sunflora, 0x800, 192 - obj_tiles gMonFrontPic_Yanma, 0x800, 193 - obj_tiles gMonFrontPic_Wooper, 0x800, 194 - obj_tiles gMonFrontPic_Quagsire, 0x800, 195 - obj_tiles gMonFrontPic_Espeon, 0x800, 196 - obj_tiles gMonFrontPic_Umbreon, 0x800, 197 - obj_tiles gMonFrontPic_Murkrow, 0x800, 198 - obj_tiles gMonFrontPic_Slowking, 0x800, 199 - obj_tiles gMonFrontPic_Misdreavus, 0x800, 200 - obj_tiles gMonFrontPic_UnownA, 0x800, 201 - obj_tiles gMonFrontPic_Wobbuffet, 0x800, 202 - obj_tiles gMonFrontPic_Girafarig, 0x800, 203 - obj_tiles gMonFrontPic_Pineco, 0x800, 204 - obj_tiles gMonFrontPic_Forretress, 0x800, 205 - obj_tiles gMonFrontPic_Dunsparce, 0x800, 206 - obj_tiles gMonFrontPic_Gligar, 0x800, 207 - obj_tiles gMonFrontPic_Steelix, 0x800, 208 - obj_tiles gMonFrontPic_Snubbull, 0x800, 209 - obj_tiles gMonFrontPic_Granbull, 0x800, 210 - obj_tiles gMonFrontPic_Qwilfish, 0x800, 211 - obj_tiles gMonFrontPic_Scizor, 0x800, 212 - obj_tiles gMonFrontPic_Shuckle, 0x800, 213 - obj_tiles gMonFrontPic_Heracross, 0x800, 214 - obj_tiles gMonFrontPic_Sneasel, 0x800, 215 - obj_tiles gMonFrontPic_Teddiursa, 0x800, 216 - obj_tiles gMonFrontPic_Ursaring, 0x800, 217 - obj_tiles gMonFrontPic_Slugma, 0x800, 218 - obj_tiles gMonFrontPic_Magcargo, 0x800, 219 - obj_tiles gMonFrontPic_Swinub, 0x800, 220 - obj_tiles gMonFrontPic_Piloswine, 0x800, 221 - obj_tiles gMonFrontPic_Corsola, 0x800, 222 - obj_tiles gMonFrontPic_Remoraid, 0x800, 223 - obj_tiles gMonFrontPic_Octillery, 0x800, 224 - obj_tiles gMonFrontPic_Delibird, 0x800, 225 - obj_tiles gMonFrontPic_Mantine, 0x800, 226 - obj_tiles gMonFrontPic_Skarmory, 0x800, 227 - obj_tiles gMonFrontPic_Houndour, 0x800, 228 - obj_tiles gMonFrontPic_Houndoom, 0x800, 229 - obj_tiles gMonFrontPic_Kingdra, 0x800, 230 - obj_tiles gMonFrontPic_Phanpy, 0x800, 231 - obj_tiles gMonFrontPic_Donphan, 0x800, 232 - obj_tiles gMonFrontPic_Porygon2, 0x800, 233 - obj_tiles gMonFrontPic_Stantler, 0x800, 234 - obj_tiles gMonFrontPic_Smeargle, 0x800, 235 - obj_tiles gMonFrontPic_Tyrogue, 0x800, 236 - obj_tiles gMonFrontPic_Hitmontop, 0x800, 237 - obj_tiles gMonFrontPic_Smoochum, 0x800, 238 - obj_tiles gMonFrontPic_Elekid, 0x800, 239 - obj_tiles gMonFrontPic_Magby, 0x800, 240 - obj_tiles gMonFrontPic_Miltank, 0x800, 241 - obj_tiles gMonFrontPic_Blissey, 0x800, 242 - obj_tiles gMonFrontPic_Raikou, 0x800, 243 - obj_tiles gMonFrontPic_Entei, 0x800, 244 - obj_tiles gMonFrontPic_Suicune, 0x800, 245 - obj_tiles gMonFrontPic_Larvitar, 0x800, 246 - obj_tiles gMonFrontPic_Pupitar, 0x800, 247 - obj_tiles gMonFrontPic_Tyranitar, 0x800, 248 - obj_tiles gMonFrontPic_Lugia, 0x800, 249 - obj_tiles gMonFrontPic_HoOh, 0x800, 250 - obj_tiles gMonFrontPic_Celebi, 0x800, 251 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 252 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 253 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 254 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 255 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 256 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 257 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 258 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 259 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 260 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 261 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 262 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 263 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 264 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 265 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 266 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 267 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 268 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 269 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 270 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 271 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 272 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 273 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 274 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 275 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 276 - obj_tiles gMonFrontPic_Treecko, 0x800, 277 - obj_tiles gMonFrontPic_Grovyle, 0x800, 278 - obj_tiles gMonFrontPic_Sceptile, 0x800, 279 - obj_tiles gMonFrontPic_Torchic, 0x800, 280 - obj_tiles gMonFrontPic_Combusken, 0x800, 281 - obj_tiles gMonFrontPic_Blaziken, 0x800, 282 - obj_tiles gMonFrontPic_Mudkip, 0x800, 283 - obj_tiles gMonFrontPic_Marshtomp, 0x800, 284 - obj_tiles gMonFrontPic_Swampert, 0x800, 285 - obj_tiles gMonFrontPic_Poochyena, 0x800, 286 - obj_tiles gMonFrontPic_Mightyena, 0x800, 287 - obj_tiles gMonFrontPic_Zigzagoon, 0x800, 288 - obj_tiles gMonFrontPic_Linoone, 0x800, 289 - obj_tiles gMonFrontPic_Wurmple, 0x800, 290 - obj_tiles gMonFrontPic_Silcoon, 0x800, 291 - obj_tiles gMonFrontPic_Beautifly, 0x800, 292 - obj_tiles gMonFrontPic_Cascoon, 0x800, 293 - obj_tiles gMonFrontPic_Dustox, 0x800, 294 - obj_tiles gMonFrontPic_Lotad, 0x800, 295 - obj_tiles gMonFrontPic_Lombre, 0x800, 296 - obj_tiles gMonFrontPic_Ludicolo, 0x800, 297 - obj_tiles gMonFrontPic_Seedot, 0x800, 298 - obj_tiles gMonFrontPic_Nuzleaf, 0x800, 299 - obj_tiles gMonFrontPic_Shiftry, 0x800, 300 - obj_tiles gMonFrontPic_Nincada, 0x800, 301 - obj_tiles gMonFrontPic_Ninjask, 0x800, 302 - obj_tiles gMonFrontPic_Shedinja, 0x800, 303 - obj_tiles gMonFrontPic_Taillow, 0x800, 304 - obj_tiles gMonFrontPic_Swellow, 0x800, 305 - obj_tiles gMonFrontPic_Shroomish, 0x800, 306 - obj_tiles gMonFrontPic_Breloom, 0x800, 307 - obj_tiles gMonFrontPic_Spinda, 0x800, 308 - obj_tiles gMonFrontPic_Wingull, 0x800, 309 - obj_tiles gMonFrontPic_Pelipper, 0x800, 310 - obj_tiles gMonFrontPic_Surskit, 0x800, 311 - obj_tiles gMonFrontPic_Masquerain, 0x800, 312 - obj_tiles gMonFrontPic_Wailmer, 0x800, 313 - obj_tiles gMonFrontPic_Wailord, 0x800, 314 - obj_tiles gMonFrontPic_Skitty, 0x800, 315 - obj_tiles gMonFrontPic_Delcatty, 0x800, 316 - obj_tiles gMonFrontPic_Kecleon, 0x800, 317 - obj_tiles gMonFrontPic_Baltoy, 0x800, 318 - obj_tiles gMonFrontPic_Claydol, 0x800, 319 - obj_tiles gMonFrontPic_Nosepass, 0x800, 320 - obj_tiles gMonFrontPic_Torkoal, 0x800, 321 - obj_tiles gMonFrontPic_Sableye, 0x800, 322 - obj_tiles gMonFrontPic_Barboach, 0x800, 323 - obj_tiles gMonFrontPic_Whiscash, 0x800, 324 - obj_tiles gMonFrontPic_Luvdisc, 0x800, 325 - obj_tiles gMonFrontPic_Corphish, 0x800, 326 - obj_tiles gMonFrontPic_Crawdaunt, 0x800, 327 - obj_tiles gMonFrontPic_Feebas, 0x800, 328 - obj_tiles gMonFrontPic_Milotic, 0x800, 329 - obj_tiles gMonFrontPic_Carvanha, 0x800, 330 - obj_tiles gMonFrontPic_Sharpedo, 0x800, 331 - obj_tiles gMonFrontPic_Trapinch, 0x800, 332 - obj_tiles gMonFrontPic_Vibrava, 0x800, 333 - obj_tiles gMonFrontPic_Flygon, 0x800, 334 - obj_tiles gMonFrontPic_Makuhita, 0x800, 335 - obj_tiles gMonFrontPic_Hariyama, 0x800, 336 - obj_tiles gMonFrontPic_Electrike, 0x800, 337 - obj_tiles gMonFrontPic_Manectric, 0x800, 338 - obj_tiles gMonFrontPic_Numel, 0x800, 339 - obj_tiles gMonFrontPic_Camerupt, 0x800, 340 - obj_tiles gMonFrontPic_Spheal, 0x800, 341 - obj_tiles gMonFrontPic_Sealeo, 0x800, 342 - obj_tiles gMonFrontPic_Walrein, 0x800, 343 - obj_tiles gMonFrontPic_Cacnea, 0x800, 344 - obj_tiles gMonFrontPic_Cacturne, 0x800, 345 - obj_tiles gMonFrontPic_Snorunt, 0x800, 346 - obj_tiles gMonFrontPic_Glalie, 0x800, 347 - obj_tiles gMonFrontPic_Lunatone, 0x800, 348 - obj_tiles gMonFrontPic_Solrock, 0x800, 349 - obj_tiles gMonFrontPic_Azurill, 0x800, 350 - obj_tiles gMonFrontPic_Spoink, 0x800, 351 - obj_tiles gMonFrontPic_Grumpig, 0x800, 352 - obj_tiles gMonFrontPic_Plusle, 0x800, 353 - obj_tiles gMonFrontPic_Minun, 0x800, 354 - obj_tiles gMonFrontPic_Mawile, 0x800, 355 - obj_tiles gMonFrontPic_Meditite, 0x800, 356 - obj_tiles gMonFrontPic_Medicham, 0x800, 357 - obj_tiles gMonFrontPic_Swablu, 0x800, 358 - obj_tiles gMonFrontPic_Altaria, 0x800, 359 - obj_tiles gMonFrontPic_Wynaut, 0x800, 360 - obj_tiles gMonFrontPic_Duskull, 0x800, 361 - obj_tiles gMonFrontPic_Dusclops, 0x800, 362 - obj_tiles gMonFrontPic_Roselia, 0x800, 363 - obj_tiles gMonFrontPic_Slakoth, 0x800, 364 - obj_tiles gMonFrontPic_Vigoroth, 0x800, 365 - obj_tiles gMonFrontPic_Slaking, 0x800, 366 - obj_tiles gMonFrontPic_Gulpin, 0x800, 367 - obj_tiles gMonFrontPic_Swalot, 0x800, 368 - obj_tiles gMonFrontPic_Tropius, 0x800, 369 - obj_tiles gMonFrontPic_Whismur, 0x800, 370 - obj_tiles gMonFrontPic_Loudred, 0x800, 371 - obj_tiles gMonFrontPic_Exploud, 0x800, 372 - obj_tiles gMonFrontPic_Clamperl, 0x800, 373 - obj_tiles gMonFrontPic_Huntail, 0x800, 374 - obj_tiles gMonFrontPic_Gorebyss, 0x800, 375 - obj_tiles gMonFrontPic_Absol, 0x800, 376 - obj_tiles gMonFrontPic_Shuppet, 0x800, 377 - obj_tiles gMonFrontPic_Banette, 0x800, 378 - obj_tiles gMonFrontPic_Seviper, 0x800, 379 - obj_tiles gMonFrontPic_Zangoose, 0x800, 380 - obj_tiles gMonFrontPic_Relicanth, 0x800, 381 - obj_tiles gMonFrontPic_Aron, 0x800, 382 - obj_tiles gMonFrontPic_Lairon, 0x800, 383 - obj_tiles gMonFrontPic_Aggron, 0x800, 384 - obj_tiles gMonFrontPic_Castform, 0x800, 385 - obj_tiles gMonFrontPic_Volbeat, 0x800, 386 - obj_tiles gMonFrontPic_Illumise, 0x800, 387 - obj_tiles gMonFrontPic_Lileep, 0x800, 388 - obj_tiles gMonFrontPic_Cradily, 0x800, 389 - obj_tiles gMonFrontPic_Anorith, 0x800, 390 - obj_tiles gMonFrontPic_Armaldo, 0x800, 391 - obj_tiles gMonFrontPic_Ralts, 0x800, 392 - obj_tiles gMonFrontPic_Kirlia, 0x800, 393 - obj_tiles gMonFrontPic_Gardevoir, 0x800, 394 - obj_tiles gMonFrontPic_Bagon, 0x800, 395 - obj_tiles gMonFrontPic_Shelgon, 0x800, 396 - obj_tiles gMonFrontPic_Salamence, 0x800, 397 - obj_tiles gMonFrontPic_Beldum, 0x800, 398 - obj_tiles gMonFrontPic_Metang, 0x800, 399 - obj_tiles gMonFrontPic_Metagross, 0x800, 400 - obj_tiles gMonFrontPic_Regirock, 0x800, 401 - obj_tiles gMonFrontPic_Regice, 0x800, 402 - obj_tiles gMonFrontPic_Registeel, 0x800, 403 - obj_tiles gMonFrontPic_Kyogre, 0x800, 404 - obj_tiles gMonFrontPic_Groudon, 0x800, 405 - obj_tiles gMonFrontPic_Rayquaza, 0x800, 406 - obj_tiles gMonFrontPic_Latias, 0x800, 407 - obj_tiles gMonFrontPic_Latios, 0x800, 408 - obj_tiles gMonFrontPic_Jirachi, 0x800, 409 - obj_tiles gMonFrontPic_Deoxys, 0x800, 410 - obj_tiles gMonFrontPic_Chimecho, 0x800, 411 - obj_tiles gMonFrontPic_Egg, 0x800, 412 - obj_tiles gMonFrontPic_UnownB, 0x800, 413 - obj_tiles gMonFrontPic_UnownC, 0x800, 414 - obj_tiles gMonFrontPic_UnownD, 0x800, 415 - obj_tiles gMonFrontPic_UnownE, 0x800, 416 - obj_tiles gMonFrontPic_UnownF, 0x800, 417 - obj_tiles gMonFrontPic_UnownG, 0x800, 418 - obj_tiles gMonFrontPic_UnownH, 0x800, 419 - obj_tiles gMonFrontPic_UnownI, 0x800, 420 - obj_tiles gMonFrontPic_UnownJ, 0x800, 421 - obj_tiles gMonFrontPic_UnownK, 0x800, 422 - obj_tiles gMonFrontPic_UnownL, 0x800, 423 - obj_tiles gMonFrontPic_UnownM, 0x800, 424 - obj_tiles gMonFrontPic_UnownN, 0x800, 425 - obj_tiles gMonFrontPic_UnownO, 0x800, 426 - obj_tiles gMonFrontPic_UnownP, 0x800, 427 - obj_tiles gMonFrontPic_UnownQ, 0x800, 428 - obj_tiles gMonFrontPic_UnownR, 0x800, 429 - obj_tiles gMonFrontPic_UnownS, 0x800, 430 - obj_tiles gMonFrontPic_UnownT, 0x800, 431 - obj_tiles gMonFrontPic_UnownU, 0x800, 432 - obj_tiles gMonFrontPic_UnownV, 0x800, 433 - obj_tiles gMonFrontPic_UnownW, 0x800, 434 - obj_tiles gMonFrontPic_UnownX, 0x800, 435 - obj_tiles gMonFrontPic_UnownY, 0x800, 436 - obj_tiles gMonFrontPic_UnownZ, 0x800, 437 - obj_tiles gMonFrontPic_UnownExclamationMark, 0x800, 438 - obj_tiles gMonFrontPic_UnownQuestionMark, 0x800, 439 diff --git a/data/graphics/trainers/back_pic_coords.inc b/data/graphics/trainers/back_pic_coords.inc deleted file mode 100644 index 57a45c71e8..0000000000 --- a/data/graphics/trainers/back_pic_coords.inc +++ /dev/null @@ -1,10 +0,0 @@ - .align 2 -gTrainerBackPicCoords:: @ 8305D2C - .byte 0x08, 0x04, 0x00, 0x00 - .byte 0x08, 0x04, 0x00, 0x00 - .byte 0x08, 0x05, 0x00, 0x00 - .byte 0x08, 0x05, 0x00, 0x00 - .byte 0x08, 0x04, 0x00, 0x00 - .byte 0x08, 0x04, 0x00, 0x00 - .byte 0x08, 0x04, 0x00, 0x00 - .byte 0x08, 0x04, 0x00, 0x00 diff --git a/data/graphics/trainers/back_pic_palette_table.inc b/data/graphics/trainers/back_pic_palette_table.inc deleted file mode 100644 index 46e56f2ac1..0000000000 --- a/data/graphics/trainers/back_pic_palette_table.inc +++ /dev/null @@ -1,10 +0,0 @@ - .align 2 -gTrainerBackPicPaletteTable:: @ 8305D8C - obj_pal gTrainerPalette_Brendan, 0 - obj_pal gTrainerPalette_May, 1 - obj_pal gTrainerBackPicPalette_Red, 2 - obj_pal gTrainerBackPicPalette_Leaf, 3 - obj_pal gTrainerPalette_RubySapphireBrendan, 4 - obj_pal gTrainerPalette_RubySapphireMay, 5 - obj_pal gTrainerPalette_Wally, 6 - obj_pal gTrainerPalette_Steven, 7 diff --git a/data/graphics/trainers/back_pic_table.inc b/data/graphics/trainers/back_pic_table.inc deleted file mode 100644 index e67c2a0734..0000000000 --- a/data/graphics/trainers/back_pic_table.inc +++ /dev/null @@ -1,10 +0,0 @@ - .align 2 -gTrainerBackPicTable:: @ 8305D4C - obj_tiles gTrainerBackPic_Brendan, 0x2000, 0 - obj_tiles gTrainerBackPic_May, 0x2000, 1 - obj_tiles gTrainerBackPic_Red, 0x2800, 2 - obj_tiles gTrainerBackPic_Leaf, 0x2800, 3 - obj_tiles gTrainerBackPic_RubySapphireBrendan, 0x2000, 4 - obj_tiles gTrainerBackPic_RubySapphireMay, 0x2000, 5 - obj_tiles gTrainerBackPic_Wally, 0x2000, 6 - obj_tiles gTrainerBackPic_Steven, 0x2000, 7 diff --git a/include/data/pokemon_graphics/enemy_mon_elevation.h b/include/data/pokemon_graphics/enemy_mon_elevation.h new file mode 100644 index 0000000000..80e2a415a2 --- /dev/null +++ b/include/data/pokemon_graphics/enemy_mon_elevation.h @@ -0,0 +1,417 @@ +// 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 +}; diff --git a/include/data/pokemon_graphics/front_anims.h b/include/data/pokemon_graphics/front_anims.h new file mode 100644 index 0000000000..0e7b75bde2 --- /dev/null +++ b/include/data/pokemon_graphics/front_anims.h @@ -0,0 +1,7391 @@ + +const union AnimCmd gAnimCmd_NONE_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BULBASAUR_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_IVYSAUR_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 36), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_VENUSAUR_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CHARMANDER_1[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 46), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CHARMELEON_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CHARIZARD_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SQUIRTLE_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WARTORTLE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BLASTOISE_1[] = +{ + ANIMCMD_FRAME(0, 50), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CATERPIE_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_METAPOD_1[] = +{ + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BUTTERFREE_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WEEDLE_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KAKUNA_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BEEDRILL_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 28), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PIDGEY_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PIDGEOTTO_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PIDGEOT_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + + +const union AnimCmd gAnimCmd_RATTATA_1[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 28), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RATICATE_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SPEAROW_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_FEAROW_1[] = +{ + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_EKANS_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ARBOK_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PIKACHU_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PIKACHU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RAICHU_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RAICHU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SANDSHREW_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SANDSHREW_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SANDSLASH_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SANDSLASH_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NIDORAN_F_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 50), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NIDORINA_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NIDOQUEEN_1[] = +{ + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NIDORAN_M_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NIDORINO_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NIDOKING_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CLEFAIRY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CLEFABLE_1[] = +{ + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 24), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_VULPIX_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_VULPIX_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NINETALES_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NINETALES_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_JIGGLYPUFF_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_JIGGLYPUFF_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WIGGLYTUFF_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WIGGLYTUFF_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ZUBAT_1[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GOLBAT_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ODDISH_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GLOOM_1[] = +{ + ANIMCMD_FRAME(0, 21), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_VILEPLUME_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 21), + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 21), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PARAS_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PARASECT_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_VENONAT_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 35), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_VENOMOTH_1[] = +{ + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DIGLETT_1[] = +{ + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DUGTRIO_1[] = +{ + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MEOWTH_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 17), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PERSIAN_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PSYDUCK_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PSYDUCK_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GOLDUCK_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GOLDUCK_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MANKEY_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 28), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PRIMEAPE_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GROWLITHE_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ARCANINE_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END,}; + +const union AnimCmd gAnimCmd_POLIWAG_1[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_POLIWHIRL_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_POLIWRATH_1[] = +{ + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ABRA_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 21), + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 21), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KADABRA_1[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ALAKAZAM_1[] = +{ + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 54), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MACHOP_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MACHOKE_1[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MACHAMP_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BELLSPROUT_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WEEPINBELL_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_VICTREEBEL_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TENTACOOL_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TENTACRUEL_1[] = +{ + ANIMCMD_FRAME(0, 19), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 19), + ANIMCMD_FRAME(1, 19), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GEODUDE_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 36), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GRAVELER_1[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GOLEM_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 31), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PONYTA_1[] = +{ + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RAPIDASH_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SLOWPOKE_1[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SLOWBRO_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MAGNEMITE_1[] = +{ + ANIMCMD_FRAME(0, 28), + ANIMCMD_FRAME(1, 28), + ANIMCMD_FRAME(0, 28), + ANIMCMD_FRAME(1, 28), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MAGNETON_1[] = +{ + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_FARFETCHD_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DODUO_1[] = +{ + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DODRIO_1[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SEEL_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DEWGONG_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GRIMER_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GRIMER_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MUK_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MUK_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SHELLDER_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CLOYSTER_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GASTLY_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HAUNTER_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GENGAR_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ONIX_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DROWZEE_1[] = +{ + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HYPNO_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KRABBY_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KINGLER_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_VOLTORB_1[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ELECTRODE_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_EXEGGCUTE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_EXEGGUTOR_1[] = +{ + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END,}; + + +const union AnimCmd gAnimCmd_CUBONE_1[] = +{ + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MAROWAK_1[] = +{ + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HITMONLEE_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HITMONCHAN_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LICKITUNG_1[] = +{ + ANIMCMD_FRAME(0, 28), + ANIMCMD_FRAME(1, 32), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KOFFING_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KOFFING_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WEEZING_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WEEZING_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RHYHORN_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RHYHORN_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RHYDON_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 48), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RHYDON_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CHANSEY_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TANGELA_1[] = +{ + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KANGASKHAN_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HORSEA_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HORSEA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SEADRA_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SEADRA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GOLDEEN_1[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SEAKING_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_STARYU_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_STARYU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_STARMIE_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_STARMIE_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MR_MIME_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SCYTHER_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_JYNX_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ELECTABUZZ_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MAGMAR_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PINSIR_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PINSIR_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TAUROS_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MAGIKARP_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GYARADOS_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 32), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LAPRAS_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DITTO_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_EEVEE_1[] = +{ + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_VAPOREON_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_JOLTEON_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_FLAREON_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PORYGON_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_OMANYTE_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_OMASTAR_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KABUTO_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KABUTOPS_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_AERODACTYL_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 25), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SNORLAX_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ARTICUNO_1[] = +{ + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ZAPDOS_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MOLTRES_1[] = +{ + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DRATINI_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DRAGONAIR_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DRAGONITE_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MEWTWO_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MEW_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CHIKORITA_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END,}; + + +const union AnimCmd gAnimCmd_BAYLEEF_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MEGANIUM_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CYNDAQUIL_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_QUILAVA_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TYPHLOSION_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TOTODILE_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CROCONAW_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_FERALIGATR_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 40), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SENTRET_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_FURRET_1[] = +{ + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HOOTHOOT_1[] = +{ + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NOCTOWL_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LEDYBA_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LEDIAN_1[] = +{ + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SPINARAK_1[] = +{ + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ARIADOS_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CROBAT_1[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CHINCHOU_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CHINCHOU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LANTURN_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LANTURN_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PICHU_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PICHU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CLEFFA_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_IGGLYBUFF_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_IGGLYBUFF_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TOGEPI_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TOGETIC_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NATU_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NATU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_XATU_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_XATU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MAREEP_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_FLAAFFY_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_AMPHAROS_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BELLOSSOM_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MARILL_1[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_AZUMARILL_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SUDOWOODO_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_POLITOED_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HOPPIP_1[] = +{ + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 25), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SKIPLOOM_1[] = +{ + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_JUMPLUFF_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_AIPOM_1[] = +{ + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SUNKERN_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SUNFLORA_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_YANMA_1[] = +{ + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WOOPER_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_QUAGSIRE_1[] = +{ + ANIMCMD_FRAME(1, 32), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ESPEON_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UMBREON_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MURKROW_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SLOWKING_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MISDREAVUS_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WOBBUFFET_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WOBBUFFET_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GIRAFARIG_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GIRAFARIG_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PINECO_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_FORRETRESS_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DUNSPARCE_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GLIGAR_1[] = +{ + ANIMCMD_FRAME(1, 17), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_STEELIX_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SNUBBULL_1[] = +{ + ANIMCMD_FRAME(1, 32), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GRANBULL_1[] = +{ + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_QWILFISH_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SCIZOR_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SHUCKLE_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HERACROSS_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HERACROSS_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SNEASEL_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TEDDIURSA_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_URSARING_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SLUGMA_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SLUGMA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MAGCARGO_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MAGCARGO_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SWINUB_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PILOSWINE_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CORSOLA_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CORSOLA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_REMORAID_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_OCTILLERY_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DELIBIRD_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MANTINE_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 40), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SKARMORY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SKARMORY_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HOUNDOUR_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HOUNDOOM_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KINGDRA_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KINGDRA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PHANPY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PHANPY_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DONPHAN_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DONPHAN_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PORYGON2_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_STANTLER_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SMEARGLE_1[] = +{ + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TYROGUE_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HITMONTOP_1[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SMOOCHUM_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ELEKID_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MAGBY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MILTANK_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BLISSEY_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RAIKOU_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ENTEI_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SUICUNE_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LARVITAR_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PUPITAR_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TYRANITAR_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LUGIA_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HO_OH_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CELEBI_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_OLD_UNOWN_B_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TREECKO_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END,}; + +const union AnimCmd gAnimCmd_GROVYLE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SCEPTILE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 26), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TORCHIC_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_COMBUSKEN_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 12), + ANIMCMD_END,}; + +const union AnimCmd gAnimCmd_BLAZIKEN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BLAZIKEN_2[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BLAZIKEN_3[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(2, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BLAZIKEN_4[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MUDKIP_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 13), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MARSHTOMP_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SWAMPERT_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_POOCHYENA_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MIGHTYENA_1[] = +{ + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ZIGZAGOON_1[] = +{ + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LINOONE_1[] = +{ + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WURMPLE_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SILCOON_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SILCOON_2[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BEAUTIFLY_1[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BEAUTIFLY_2[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CASCOON_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CASCOON_2[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DUSTOX_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DUSTOX_2[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LOTAD_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 55), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LOMBRE_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LUDICOLO_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SEEDOT_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NUZLEAF_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SHIFTRY_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NINCADA_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NINJASK_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SHEDINJA_1[] = +{ + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TAILLOW_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SWELLOW_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SHROOMISH_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BRELOOM_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WINGULL_1[] = +{ + ANIMCMD_FRAME(0, 17), + ANIMCMD_FRAME(1, 23), + ANIMCMD_FRAME(0, 13), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PELIPPER_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SURSKIT_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SURSKIT_2[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MASQUERAIN_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MASQUERAIN_2[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WAILMER_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WAILORD_1[] = +{ + ANIMCMD_FRAME(0, 26), + ANIMCMD_FRAME(1, 48), + ANIMCMD_FRAME(0, 33), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SKITTY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 9), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DELCATTY_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 46), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KECLEON_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BALTOY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CLAYDOL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NOSEPASS_1[] = +{ + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TORKOAL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SABLEYE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BARBOACH_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WHISCASH_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LUVDISC_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CORPHISH_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CRAWDAUNT_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_FEEBAS_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MILOTIC_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CARVANHA_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SHARPEDO_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TRAPINCH_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_VIBRAVA_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_FLYGON_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MAKUHITA_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HARIYAMA_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ELECTRIKE_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 17), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MANECTRIC_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_NUMEL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 40), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CAMERUPT_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SPHEAL_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 43), + ANIMCMD_FRAME(1, 60), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SEALEO_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WALREIN_1[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CACNEA_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CACTURNE_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SNORUNT_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GLALIE_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LUNATONE_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LUNATONE_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SOLROCK_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SOLROCK_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_AZURILL_1[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SPOINK_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GRUMPIG_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_PLUSLE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MINUN_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MAWILE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MEDITITE_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_MEDICHAM_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SWABLU_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SWABLU_2[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(2, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ALTARIA_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ALTARIA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WYNAUT_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DUSKULL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DUSCLOPS_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ROSELIA_1[] = +{ + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SLAKOTH_1[] = +{ + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_VIGOROTH_1[] = +{ + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SLAKING_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GULPIN_1[] = +{ + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SWALOT_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_TROPIUS_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_WHISMUR_1[] = +{ + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LOUDRED_1[] = +{ + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 33), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_EXPLOUD_1[] = +{ + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 9), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CLAMPERL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_HUNTAIL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GOREBYSS_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ABSOL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SHUPPET_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BANETTE_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SEVIPER_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ZANGOOSE_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RELICANTH_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ARON_1[] = +{ + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LAIRON_1[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 29), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 29), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_AGGRON_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CASTFORM_0[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CASTFORM_1[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CASTFORM_2[] = +{ + ANIMCMD_FRAME(2, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CASTFORM_3[] = +{ + ANIMCMD_FRAME(3, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_VOLBEAT_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ILLUMISE_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LILEEP_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CRADILY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ANORITH_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_ARMALDO_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RALTS_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KIRLIA_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 39), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GARDEVOIR_1[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BAGON_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SHELGON_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_SALAMENCE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_BELDUM_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_METANG_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_METAGROSS_1[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_REGIROCK_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_REGIROCK_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_REGICE_1[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_REGISTEEL_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_REGISTEEL_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KYOGRE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_KYOGRE_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GROUDON_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_GROUDON_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RAYQUAZA_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_RAYQUAZA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LATIAS_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LATIAS_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LATIOS_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_LATIOS_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_JIRACHI_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_JIRACHI_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DEOXYS_1[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 26), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_DEOXYS_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_CHIMECHO_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_EGG_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(2, 6), + ANIMCMD_FRAME(3, 6), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_B_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_C_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_D_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_E_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_F_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_G_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_H_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_I_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_J_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_K_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_L_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_M_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_N_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_O_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_P_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_Q_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_R_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_S_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_T_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_U_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_V_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_W_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_X_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_Y_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_Z_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_EMARK_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gAnimCmd_UNOWN_QMARK_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gAnims_NONE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NONE_1, +}; + +const union AnimCmd *const gAnims_BULBASAUR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BULBASAUR_1, +}; + +const union AnimCmd *const gAnims_IVYSAUR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_IVYSAUR_1, +}; + +const union AnimCmd *const gAnims_VENUSAUR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_VENUSAUR_1, +}; + +const union AnimCmd *const gAnims_CHARMANDER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CHARMANDER_1, +}; + +const union AnimCmd *const gAnims_CHARMELEON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CHARMELEON_1, +}; + +const union AnimCmd *const gAnims_CHARIZARD[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CHARIZARD_1, +}; + +const union AnimCmd *const gAnims_SQUIRTLE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SQUIRTLE_1, +}; + +const union AnimCmd *const gAnims_WARTORTLE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WARTORTLE_1, +}; + +const union AnimCmd *const gAnims_BLASTOISE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BLASTOISE_1, +}; + +const union AnimCmd *const gAnims_CATERPIE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CATERPIE_1, +}; + +const union AnimCmd *const gAnims_METAPOD[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_METAPOD_1, +}; + +const union AnimCmd *const gAnims_BUTTERFREE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BUTTERFREE_1, +}; + +const union AnimCmd *const gAnims_WEEDLE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WEEDLE_1, +}; + +const union AnimCmd *const gAnims_KAKUNA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_KAKUNA_1, +}; + +const union AnimCmd *const gAnims_BEEDRILL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BEEDRILL_1, +}; + +const union AnimCmd *const gAnims_PIDGEY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PIDGEY_1, +}; + +const union AnimCmd *const gAnims_PIDGEOTTO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PIDGEOTTO_1, +}; + +const union AnimCmd *const gAnims_PIDGEOT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PIDGEOT_1, +}; + +const union AnimCmd *const gAnims_RATTATA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_RATTATA_1, +}; + +const union AnimCmd *const gAnims_RATICATE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_RATICATE_1, +}; + +const union AnimCmd *const gAnims_SPEAROW[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SPEAROW_1, +}; + +const union AnimCmd *const gAnims_FEAROW[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_FEAROW_1, +}; + +const union AnimCmd *const gAnims_EKANS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_EKANS_1, +}; + +const union AnimCmd *const gAnims_ARBOK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ARBOK_1, +}; + +const union AnimCmd *const gAnims_PIKACHU[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PIKACHU_1, + gAnimCmd_PIKACHU_2, +}; + +const union AnimCmd *const gAnims_RAICHU[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_RAICHU_1, + gAnimCmd_RAICHU_2, +}; + +const union AnimCmd *const gAnims_SANDSHREW[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SANDSHREW_1, + gAnimCmd_SANDSHREW_2, +}; + +const union AnimCmd *const gAnims_SANDSLASH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SANDSLASH_1, + gAnimCmd_SANDSLASH_2, +}; + +const union AnimCmd *const gAnims_NIDORAN_F[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NIDORAN_F_1, +}; + +const union AnimCmd *const gAnims_NIDORINA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NIDORINA_1, +}; + +const union AnimCmd *const gAnims_NIDOQUEEN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NIDOQUEEN_1, +}; + +const union AnimCmd *const gAnims_NIDORAN_M[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NIDORAN_M_1, +}; + +const union AnimCmd *const gAnims_NIDORINO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NIDORINO_1, +}; + +const union AnimCmd *const gAnims_NIDOKING[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NIDOKING_1, +}; + +const union AnimCmd *const gAnims_CLEFAIRY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CLEFAIRY_1, +}; + +const union AnimCmd *const gAnims_CLEFABLE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CLEFABLE_1, +}; + +const union AnimCmd *const gAnims_VULPIX[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_VULPIX_1, + gAnimCmd_VULPIX_2, +}; + +const union AnimCmd *const gAnims_NINETALES[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NINETALES_1, + gAnimCmd_NINETALES_2, +}; + +const union AnimCmd *const gAnims_JIGGLYPUFF[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_JIGGLYPUFF_1, + gAnimCmd_JIGGLYPUFF_2, +}; + +const union AnimCmd *const gAnims_WIGGLYTUFF[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WIGGLYTUFF_1, + gAnimCmd_WIGGLYTUFF_2, +}; + +const union AnimCmd *const gAnims_ZUBAT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ZUBAT_1, +}; + +const union AnimCmd *const gAnims_GOLBAT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GOLBAT_1, +}; + +const union AnimCmd *const gAnims_ODDISH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ODDISH_1, +}; + +const union AnimCmd *const gAnims_GLOOM[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GLOOM_1, +}; + +const union AnimCmd *const gAnims_VILEPLUME[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_VILEPLUME_1, +}; + +const union AnimCmd *const gAnims_PARAS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PARAS_1, +}; + +const union AnimCmd *const gAnims_PARASECT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PARASECT_1, +}; + +const union AnimCmd *const gAnims_VENONAT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_VENONAT_1, +}; + +const union AnimCmd *const gAnims_VENOMOTH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_VENOMOTH_1, +}; + +const union AnimCmd *const gAnims_DIGLETT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DIGLETT_1, +}; + +const union AnimCmd *const gAnims_DUGTRIO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DUGTRIO_1, +}; + +const union AnimCmd *const gAnims_MEOWTH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MEOWTH_1, +}; + +const union AnimCmd *const gAnims_PERSIAN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PERSIAN_1, +}; + +const union AnimCmd *const gAnims_PSYDUCK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PSYDUCK_1, + gAnimCmd_PSYDUCK_2, +}; + +const union AnimCmd *const gAnims_GOLDUCK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GOLDUCK_1, + gAnimCmd_GOLDUCK_2, +}; + +const union AnimCmd *const gAnims_MANKEY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MANKEY_1, +}; + +const union AnimCmd *const gAnims_PRIMEAPE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PRIMEAPE_1, +}; + +const union AnimCmd *const gAnims_GROWLITHE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GROWLITHE_1, +}; + +const union AnimCmd *const gAnims_ARCANINE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ARCANINE_1, +}; + +const union AnimCmd *const gAnims_POLIWAG[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_POLIWAG_1, +}; + +const union AnimCmd *const gAnims_POLIWHIRL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_POLIWHIRL_1, +}; + +const union AnimCmd *const gAnims_POLIWRATH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_POLIWRATH_1, +}; + +const union AnimCmd *const gAnims_ABRA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ABRA_1, +}; + +const union AnimCmd *const gAnims_KADABRA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_KADABRA_1, +}; + +const union AnimCmd *const gAnims_ALAKAZAM[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ALAKAZAM_1, +}; + +const union AnimCmd *const gAnims_MACHOP[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MACHOP_1, +}; + +const union AnimCmd *const gAnims_MACHOKE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MACHOKE_1, +}; + +const union AnimCmd *const gAnims_MACHAMP[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MACHAMP_1, +}; + +const union AnimCmd *const gAnims_BELLSPROUT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BELLSPROUT_1, +}; + +const union AnimCmd *const gAnims_WEEPINBELL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WEEPINBELL_1, +}; + +const union AnimCmd *const gAnims_VICTREEBEL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_VICTREEBEL_1, +}; + +const union AnimCmd *const gAnims_TENTACOOL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TENTACOOL_1, +}; + +const union AnimCmd *const gAnims_TENTACRUEL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TENTACRUEL_1, +}; + +const union AnimCmd *const gAnims_GEODUDE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GEODUDE_1, +}; + +const union AnimCmd *const gAnims_GRAVELER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GRAVELER_1, +}; + +const union AnimCmd *const gAnims_GOLEM[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GOLEM_1, +}; + +const union AnimCmd *const gAnims_PONYTA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PONYTA_1, +}; + +const union AnimCmd *const gAnims_RAPIDASH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_RAPIDASH_1, +}; + +const union AnimCmd *const gAnims_SLOWPOKE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SLOWPOKE_1, +}; + +const union AnimCmd *const gAnims_SLOWBRO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SLOWBRO_1, +}; + +const union AnimCmd *const gAnims_MAGNEMITE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MAGNEMITE_1, +}; + +const union AnimCmd *const gAnims_MAGNETON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MAGNETON_1, +}; + +const union AnimCmd *const gAnims_FARFETCHD[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_FARFETCHD_1, +}; + +const union AnimCmd *const gAnims_DODUO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DODUO_1, +}; + +const union AnimCmd *const gAnims_DODRIO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DODRIO_1, +}; + +const union AnimCmd *const gAnims_SEEL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SEEL_1, +}; + +const union AnimCmd *const gAnims_DEWGONG[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DEWGONG_1, +}; + +const union AnimCmd *const gAnims_GRIMER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GRIMER_1, + gAnimCmd_GRIMER_2, +}; + +const union AnimCmd *const gAnims_MUK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MUK_1, + gAnimCmd_MUK_2, +}; + +const union AnimCmd *const gAnims_SHELLDER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SHELLDER_1, +}; + +const union AnimCmd *const gAnims_CLOYSTER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CLOYSTER_1, +}; + +const union AnimCmd *const gAnims_GASTLY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GASTLY_1, +}; + +const union AnimCmd *const gAnims_HAUNTER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HAUNTER_1, +}; + +const union AnimCmd *const gAnims_GENGAR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GENGAR_1, +}; + +const union AnimCmd *const gAnims_ONIX[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ONIX_1, +}; + +const union AnimCmd *const gAnims_DROWZEE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DROWZEE_1, +}; + +const union AnimCmd *const gAnims_HYPNO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HYPNO_1, +}; + +const union AnimCmd *const gAnims_KRABBY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_KRABBY_1, +}; + +const union AnimCmd *const gAnims_KINGLER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_KINGLER_1, +}; + +const union AnimCmd *const gAnims_VOLTORB[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_VOLTORB_1, +}; + +const union AnimCmd *const gAnims_ELECTRODE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ELECTRODE_1, +}; + +const union AnimCmd *const gAnims_EXEGGCUTE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_EXEGGCUTE_1, +}; + +const union AnimCmd *const gAnims_EXEGGUTOR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_EXEGGUTOR_1, +}; + +const union AnimCmd *const gAnims_CUBONE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CUBONE_1, +}; + +const union AnimCmd *const gAnims_MAROWAK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MAROWAK_1, +}; + +const union AnimCmd *const gAnims_HITMONLEE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HITMONLEE_1, +}; + +const union AnimCmd *const gAnims_HITMONCHAN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HITMONCHAN_1, +}; + +const union AnimCmd *const gAnims_LICKITUNG[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LICKITUNG_1, +}; + +const union AnimCmd *const gAnims_KOFFING[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_KOFFING_1, + gAnimCmd_KOFFING_2, +}; + +const union AnimCmd *const gAnims_WEEZING[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WEEZING_1, + gAnimCmd_WEEZING_2, +}; + +const union AnimCmd *const gAnims_RHYHORN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_RHYHORN_1, + gAnimCmd_RHYHORN_2, +}; + +const union AnimCmd *const gAnims_RHYDON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_RHYDON_1, + gAnimCmd_RHYDON_2, +}; + +const union AnimCmd *const gAnims_CHANSEY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CHANSEY_1, +}; + +const union AnimCmd *const gAnims_TANGELA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TANGELA_1, +}; + +const union AnimCmd *const gAnims_KANGASKHAN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_KANGASKHAN_1, +}; + +const union AnimCmd *const gAnims_HORSEA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HORSEA_1, + gAnimCmd_HORSEA_2, +}; + +const union AnimCmd *const gAnims_SEADRA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SEADRA_1, + gAnimCmd_SEADRA_2, +}; + +const union AnimCmd *const gAnims_GOLDEEN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GOLDEEN_1, +}; + +const union AnimCmd *const gAnims_SEAKING[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SEAKING_1, +}; + +const union AnimCmd *const gAnims_STARYU[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_STARYU_1, + gAnimCmd_STARYU_2, +}; + +const union AnimCmd *const gAnims_STARMIE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_STARMIE_1, + gAnimCmd_STARMIE_2, +}; + +const union AnimCmd *const gAnims_MR_MIME[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MR_MIME_1, +}; + +const union AnimCmd *const gAnims_SCYTHER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SCYTHER_1, +}; + +const union AnimCmd *const gAnims_JYNX[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_JYNX_1, +}; + +const union AnimCmd *const gAnims_ELECTABUZZ[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ELECTABUZZ_1, +}; + +const union AnimCmd *const gAnims_MAGMAR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MAGMAR_1, +}; + +const union AnimCmd *const gAnims_PINSIR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PINSIR_1, + gAnimCmd_PINSIR_2, +}; + +const union AnimCmd *const gAnims_TAUROS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TAUROS_1, +}; + +const union AnimCmd *const gAnims_MAGIKARP[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MAGIKARP_1, +}; + +const union AnimCmd *const gAnims_GYARADOS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GYARADOS_1, +}; + +const union AnimCmd *const gAnims_LAPRAS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LAPRAS_1, +}; + +const union AnimCmd *const gAnims_DITTO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DITTO_1, +}; + +const union AnimCmd *const gAnims_EEVEE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_EEVEE_1, +}; + +const union AnimCmd *const gAnims_VAPOREON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_VAPOREON_1, +}; + +const union AnimCmd *const gAnims_JOLTEON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_JOLTEON_1, +}; + +const union AnimCmd *const gAnims_FLAREON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_FLAREON_1, +}; + +const union AnimCmd *const gAnims_PORYGON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PORYGON_1, +}; + +const union AnimCmd *const gAnims_OMANYTE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_OMANYTE_1, +}; + +const union AnimCmd *const gAnims_OMASTAR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_OMASTAR_1, +}; + +const union AnimCmd *const gAnims_KABUTO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_KABUTO_1, +}; + +const union AnimCmd *const gAnims_KABUTOPS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_KABUTOPS_1, +}; + +const union AnimCmd *const gAnims_AERODACTYL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_AERODACTYL_1, +}; + +const union AnimCmd *const gAnims_SNORLAX[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SNORLAX_1, +}; + +const union AnimCmd *const gAnims_ARTICUNO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ARTICUNO_1, +}; + +const union AnimCmd *const gAnims_ZAPDOS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ZAPDOS_1, +}; + +const union AnimCmd *const gAnims_MOLTRES[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MOLTRES_1, +}; + +const union AnimCmd *const gAnims_DRATINI[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DRATINI_1, +}; + +const union AnimCmd *const gAnims_DRAGONAIR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DRAGONAIR_1, +}; + +const union AnimCmd *const gAnims_DRAGONITE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DRAGONITE_1, +}; + +const union AnimCmd *const gAnims_MEWTWO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MEWTWO_1, +}; + +const union AnimCmd *const gAnims_MEW[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MEW_1, +}; + +const union AnimCmd *const gAnims_CHIKORITA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CHIKORITA_1, +}; + +const union AnimCmd *const gAnims_BAYLEEF[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BAYLEEF_1, +}; + +const union AnimCmd *const gAnims_MEGANIUM[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MEGANIUM_1, +}; + +const union AnimCmd *const gAnims_CYNDAQUIL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CYNDAQUIL_1, +}; + +const union AnimCmd *const gAnims_QUILAVA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_QUILAVA_1, +}; + +const union AnimCmd *const gAnims_TYPHLOSION[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TYPHLOSION_1, +}; + +const union AnimCmd *const gAnims_TOTODILE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TOTODILE_1, +}; + +const union AnimCmd *const gAnims_CROCONAW[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CROCONAW_1, +}; + +const union AnimCmd *const gAnims_FERALIGATR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_FERALIGATR_1, +}; + +const union AnimCmd *const gAnims_SENTRET[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SENTRET_1, +}; + +const union AnimCmd *const gAnims_FURRET[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_FURRET_1, +}; + +const union AnimCmd *const gAnims_HOOTHOOT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HOOTHOOT_1, +}; + +const union AnimCmd *const gAnims_NOCTOWL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NOCTOWL_1, +}; + +const union AnimCmd *const gAnims_LEDYBA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LEDYBA_1, +}; + +const union AnimCmd *const gAnims_LEDIAN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LEDIAN_1, +}; + +const union AnimCmd *const gAnims_SPINARAK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SPINARAK_1, +}; + +const union AnimCmd *const gAnims_ARIADOS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ARIADOS_1, +}; + +const union AnimCmd *const gAnims_CROBAT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CROBAT_1, +}; + +const union AnimCmd *const gAnims_CHINCHOU[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CHINCHOU_1, + gAnimCmd_CHINCHOU_2, +}; + +const union AnimCmd *const gAnims_LANTURN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LANTURN_1, + gAnimCmd_LANTURN_2, +}; + +const union AnimCmd *const gAnims_PICHU[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PICHU_1, + gAnimCmd_PICHU_2, +}; + +const union AnimCmd *const gAnims_CLEFFA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CLEFFA_1, +}; + +const union AnimCmd *const gAnims_IGGLYBUFF[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_IGGLYBUFF_1, + gAnimCmd_IGGLYBUFF_2, +}; + +const union AnimCmd *const gAnims_TOGEPI[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TOGEPI_1, +}; + +const union AnimCmd *const gAnims_TOGETIC[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TOGETIC_1, +}; + +const union AnimCmd *const gAnims_NATU[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NATU_1, + gAnimCmd_NATU_2, +}; + +const union AnimCmd *const gAnims_XATU[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_XATU_1, + gAnimCmd_XATU_2, +}; + +const union AnimCmd *const gAnims_MAREEP[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MAREEP_1, +}; + +const union AnimCmd *const gAnims_FLAAFFY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_FLAAFFY_1, +}; + +const union AnimCmd *const gAnims_AMPHAROS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_AMPHAROS_1, +}; + +const union AnimCmd *const gAnims_BELLOSSOM[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BELLOSSOM_1, +}; + +const union AnimCmd *const gAnims_MARILL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MARILL_1, +}; + +const union AnimCmd *const gAnims_AZUMARILL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_AZUMARILL_1, +}; + +const union AnimCmd *const gAnims_SUDOWOODO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SUDOWOODO_1, +}; + +const union AnimCmd *const gAnims_POLITOED[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_POLITOED_1, +}; + +const union AnimCmd *const gAnims_HOPPIP[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HOPPIP_1, +}; + +const union AnimCmd *const gAnims_SKIPLOOM[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SKIPLOOM_1, +}; + +const union AnimCmd *const gAnims_JUMPLUFF[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_JUMPLUFF_1, +}; + +const union AnimCmd *const gAnims_AIPOM[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_AIPOM_1, +}; + +const union AnimCmd *const gAnims_SUNKERN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SUNKERN_1, +}; + +const union AnimCmd *const gAnims_SUNFLORA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SUNFLORA_1, +}; + +const union AnimCmd *const gAnims_YANMA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_YANMA_1, +}; + +const union AnimCmd *const gAnims_WOOPER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WOOPER_1, +}; + +const union AnimCmd *const gAnims_QUAGSIRE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_QUAGSIRE_1, +}; + +const union AnimCmd *const gAnims_ESPEON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ESPEON_1, +}; + +const union AnimCmd *const gAnims_UMBREON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UMBREON_1, +}; + +const union AnimCmd *const gAnims_MURKROW[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MURKROW_1, +}; + +const union AnimCmd *const gAnims_SLOWKING[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SLOWKING_1, +}; + +const union AnimCmd *const gAnims_MISDREAVUS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MISDREAVUS_1, +}; + +const union AnimCmd *const gAnims_UNOWN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_1, +}; + +const union AnimCmd *const gAnims_WOBBUFFET[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WOBBUFFET_1, + gAnimCmd_WOBBUFFET_2, +}; + +const union AnimCmd *const gAnims_GIRAFARIG[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GIRAFARIG_1, + gAnimCmd_GIRAFARIG_2, +}; + +const union AnimCmd *const gAnims_PINECO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PINECO_1, +}; + +const union AnimCmd *const gAnims_FORRETRESS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_FORRETRESS_1, +}; + +const union AnimCmd *const gAnims_DUNSPARCE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DUNSPARCE_1, +}; + +const union AnimCmd *const gAnims_GLIGAR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GLIGAR_1, +}; + +const union AnimCmd *const gAnims_STEELIX[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_STEELIX_1, +}; + +const union AnimCmd *const gAnims_SNUBBULL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SNUBBULL_1, +}; + +const union AnimCmd *const gAnims_GRANBULL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GRANBULL_1, +}; + +const union AnimCmd *const gAnims_QWILFISH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_QWILFISH_1, +}; + +const union AnimCmd *const gAnims_SCIZOR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SCIZOR_1, +}; + +const union AnimCmd *const gAnims_SHUCKLE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SHUCKLE_1, +}; + +const union AnimCmd *const gAnims_HERACROSS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HERACROSS_1, + gAnimCmd_HERACROSS_2, +}; + +const union AnimCmd *const gAnims_SNEASEL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SNEASEL_1, +}; + +const union AnimCmd *const gAnims_TEDDIURSA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TEDDIURSA_1, +}; + +const union AnimCmd *const gAnims_URSARING[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_URSARING_1, +}; + +const union AnimCmd *const gAnims_SLUGMA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SLUGMA_1, + gAnimCmd_SLUGMA_2, +}; + +const union AnimCmd *const gAnims_MAGCARGO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MAGCARGO_1, + gAnimCmd_MAGCARGO_2, +}; + +const union AnimCmd *const gAnims_SWINUB[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SWINUB_1, +}; + +const union AnimCmd *const gAnims_PILOSWINE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PILOSWINE_1, +}; + +const union AnimCmd *const gAnims_CORSOLA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CORSOLA_1, + gAnimCmd_CORSOLA_2, +}; + +const union AnimCmd *const gAnims_REMORAID[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_REMORAID_1, +}; + +const union AnimCmd *const gAnims_OCTILLERY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_OCTILLERY_1, +}; + +const union AnimCmd *const gAnims_DELIBIRD[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DELIBIRD_1, +}; + +const union AnimCmd *const gAnims_MANTINE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MANTINE_1, +}; + +const union AnimCmd *const gAnims_SKARMORY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SKARMORY_1, + gAnimCmd_SKARMORY_2, +}; + +const union AnimCmd *const gAnims_HOUNDOUR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HOUNDOUR_1, +}; + +const union AnimCmd *const gAnims_HOUNDOOM[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HOUNDOOM_1, +}; + +const union AnimCmd *const gAnims_KINGDRA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_KINGDRA_1, + gAnimCmd_KINGDRA_2, +}; + +const union AnimCmd *const gAnims_PHANPY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PHANPY_1, + gAnimCmd_PHANPY_2, +}; + +const union AnimCmd *const gAnims_DONPHAN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DONPHAN_1, + gAnimCmd_DONPHAN_2, +}; + +const union AnimCmd *const gAnims_PORYGON2[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PORYGON2_1, +}; + +const union AnimCmd *const gAnims_STANTLER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_STANTLER_1, +}; + +const union AnimCmd *const gAnims_SMEARGLE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SMEARGLE_1, +}; + +const union AnimCmd *const gAnims_TYROGUE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TYROGUE_1, +}; + +const union AnimCmd *const gAnims_HITMONTOP[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HITMONTOP_1, +}; + +const union AnimCmd *const gAnims_SMOOCHUM[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SMOOCHUM_1, +}; + +const union AnimCmd *const gAnims_ELEKID[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ELEKID_1, +}; + +const union AnimCmd *const gAnims_MAGBY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MAGBY_1, +}; + +const union AnimCmd *const gAnims_MILTANK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MILTANK_1, +}; + +const union AnimCmd *const gAnims_BLISSEY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BLISSEY_1, +}; + +const union AnimCmd *const gAnims_RAIKOU[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_RAIKOU_1, +}; + +const union AnimCmd *const gAnims_ENTEI[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ENTEI_1, +}; + +const union AnimCmd *const gAnims_SUICUNE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SUICUNE_1, +}; + +const union AnimCmd *const gAnims_LARVITAR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LARVITAR_1, +}; + +const union AnimCmd *const gAnims_PUPITAR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PUPITAR_1, +}; + +const union AnimCmd *const gAnims_TYRANITAR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TYRANITAR_1, +}; + +const union AnimCmd *const gAnims_LUGIA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LUGIA_1, +}; + +const union AnimCmd *const gAnims_HO_OH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HO_OH_1, +}; + +const union AnimCmd *const gAnims_CELEBI[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CELEBI_1, +}; + +const union AnimCmd *const gAnims_OLD_UNOWN_B[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_OLD_UNOWN_B_1, +}; + +const union AnimCmd *const gAnims_TREECKO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TREECKO_1, +}; + +const union AnimCmd *const gAnims_GROVYLE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GROVYLE_1, +}; + +const union AnimCmd *const gAnims_SCEPTILE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SCEPTILE_1, +}; + +const union AnimCmd *const gAnims_TORCHIC[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TORCHIC_1, +}; + +const union AnimCmd *const gAnims_COMBUSKEN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_COMBUSKEN_1, +}; + +const union AnimCmd *const gAnims_BLAZIKEN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BLAZIKEN_1, + gAnimCmd_BLAZIKEN_2, + gAnimCmd_BLAZIKEN_3, + gAnimCmd_BLAZIKEN_4, +}; + +const union AnimCmd *const gAnims_MUDKIP[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MUDKIP_1, +}; + +const union AnimCmd *const gAnims_MARSHTOMP[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MARSHTOMP_1, +}; + +const union AnimCmd *const gAnims_SWAMPERT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SWAMPERT_1, +}; + +const union AnimCmd *const gAnims_POOCHYENA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_POOCHYENA_1, +}; + +const union AnimCmd *const gAnims_MIGHTYENA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MIGHTYENA_1, +}; + +const union AnimCmd *const gAnims_ZIGZAGOON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ZIGZAGOON_1, +}; + +const union AnimCmd *const gAnims_LINOONE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LINOONE_1, +}; + +const union AnimCmd *const gAnims_WURMPLE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WURMPLE_1, +}; + +const union AnimCmd *const gAnims_SILCOON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SILCOON_1, + gAnimCmd_SILCOON_2, +}; + +const union AnimCmd *const gAnims_BEAUTIFLY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BEAUTIFLY_1, + gAnimCmd_BEAUTIFLY_2, +}; + +const union AnimCmd *const gAnims_CASCOON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CASCOON_1, + gAnimCmd_CASCOON_2, +}; + +const union AnimCmd *const gAnims_DUSTOX[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DUSTOX_1, + gAnimCmd_DUSTOX_2, +}; + +const union AnimCmd *const gAnims_LOTAD[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LOTAD_1, +}; + +const union AnimCmd *const gAnims_LOMBRE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LOMBRE_1, +}; + +const union AnimCmd *const gAnims_LUDICOLO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LUDICOLO_1, +}; + +const union AnimCmd *const gAnims_SEEDOT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SEEDOT_1, +}; + +const union AnimCmd *const gAnims_NUZLEAF[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NUZLEAF_1, +}; + +const union AnimCmd *const gAnims_SHIFTRY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SHIFTRY_1, +}; + +const union AnimCmd *const gAnims_NINCADA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NINCADA_1, +}; + +const union AnimCmd *const gAnims_NINJASK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NINJASK_1, +}; + +const union AnimCmd *const gAnims_SHEDINJA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SHEDINJA_1, +}; + +const union AnimCmd *const gAnims_TAILLOW[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TAILLOW_1, +}; + +const union AnimCmd *const gAnims_SWELLOW[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SWELLOW_1, +}; + +const union AnimCmd *const gAnims_SHROOMISH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SHROOMISH_1, +}; + +const union AnimCmd *const gAnims_BRELOOM[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BRELOOM_1, +}; + +const union AnimCmd *const gAnims_SPINDA[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gAnims_WINGULL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WINGULL_1, +}; + +const union AnimCmd *const gAnims_PELIPPER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PELIPPER_1, +}; + +const union AnimCmd *const gAnims_SURSKIT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SURSKIT_1, + gAnimCmd_SURSKIT_2, +}; + +const union AnimCmd *const gAnims_MASQUERAIN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MASQUERAIN_1, + gAnimCmd_MASQUERAIN_2, +}; + +const union AnimCmd *const gAnims_WAILMER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WAILMER_1, +}; + +const union AnimCmd *const gAnims_WAILORD[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WAILORD_1, +}; + +const union AnimCmd *const gAnims_SKITTY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SKITTY_1, +}; + +const union AnimCmd *const gAnims_DELCATTY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DELCATTY_1, +}; + +const union AnimCmd *const gAnims_KECLEON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_KECLEON_1, +}; + +const union AnimCmd *const gAnims_BALTOY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BALTOY_1, +}; + +const union AnimCmd *const gAnims_CLAYDOL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CLAYDOL_1, +}; + +const union AnimCmd *const gAnims_NOSEPASS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NOSEPASS_1, +}; + +const union AnimCmd *const gAnims_TORKOAL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TORKOAL_1, +}; + +const union AnimCmd *const gAnims_SABLEYE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SABLEYE_1, +}; + +const union AnimCmd *const gAnims_BARBOACH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BARBOACH_1, +}; + +const union AnimCmd *const gAnims_WHISCASH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WHISCASH_1, +}; + +const union AnimCmd *const gAnims_LUVDISC[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LUVDISC_1, +}; + +const union AnimCmd *const gAnims_CORPHISH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CORPHISH_1, +}; + +const union AnimCmd *const gAnims_CRAWDAUNT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CRAWDAUNT_1, +}; + +const union AnimCmd *const gAnims_FEEBAS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_FEEBAS_1, +}; + +const union AnimCmd *const gAnims_MILOTIC[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MILOTIC_1, +}; + +const union AnimCmd *const gAnims_CARVANHA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CARVANHA_1, +}; + +const union AnimCmd *const gAnims_SHARPEDO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SHARPEDO_1, +}; + +const union AnimCmd *const gAnims_TRAPINCH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TRAPINCH_1, +}; + +const union AnimCmd *const gAnims_VIBRAVA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_VIBRAVA_1, +}; + +const union AnimCmd *const gAnims_FLYGON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_FLYGON_1, +}; + +const union AnimCmd *const gAnims_MAKUHITA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MAKUHITA_1, +}; + +const union AnimCmd *const gAnims_HARIYAMA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HARIYAMA_1, +}; + +const union AnimCmd *const gAnims_ELECTRIKE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ELECTRIKE_1, +}; + +const union AnimCmd *const gAnims_MANECTRIC[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MANECTRIC_1, +}; + +const union AnimCmd *const gAnims_NUMEL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_NUMEL_1, +}; + +const union AnimCmd *const gAnims_CAMERUPT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CAMERUPT_1, +}; + +const union AnimCmd *const gAnims_SPHEAL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SPHEAL_1, +}; + +const union AnimCmd *const gAnims_SEALEO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SEALEO_1, +}; + +const union AnimCmd *const gAnims_WALREIN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WALREIN_1, +}; + +const union AnimCmd *const gAnims_CACNEA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CACNEA_1, +}; + +const union AnimCmd *const gAnims_CACTURNE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CACTURNE_1, +}; + +const union AnimCmd *const gAnims_SNORUNT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SNORUNT_1, +}; + +const union AnimCmd *const gAnims_GLALIE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GLALIE_1, +}; + +const union AnimCmd *const gAnims_LUNATONE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LUNATONE_1, + gAnimCmd_LUNATONE_2, +}; + +const union AnimCmd *const gAnims_SOLROCK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SOLROCK_1, + gAnimCmd_SOLROCK_2, +}; + +const union AnimCmd *const gAnims_AZURILL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_AZURILL_1, +}; + +const union AnimCmd *const gAnims_SPOINK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SPOINK_1, +}; + +const union AnimCmd *const gAnims_GRUMPIG[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GRUMPIG_1, +}; + +const union AnimCmd *const gAnims_PLUSLE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_PLUSLE_1, +}; + +const union AnimCmd *const gAnims_MINUN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MINUN_1, +}; + +const union AnimCmd *const gAnims_MAWILE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MAWILE_1, +}; + +const union AnimCmd *const gAnims_MEDITITE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MEDITITE_1, +}; + +const union AnimCmd *const gAnims_MEDICHAM[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_MEDICHAM_1, +}; + +const union AnimCmd *const gAnims_SWABLU[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SWABLU_1, + gAnimCmd_SWABLU_2, +}; + +const union AnimCmd *const gAnims_ALTARIA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ALTARIA_1, + gAnimCmd_ALTARIA_2, +}; + +const union AnimCmd *const gAnims_WYNAUT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WYNAUT_1, +}; + +const union AnimCmd *const gAnims_DUSKULL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DUSKULL_1, +}; + +const union AnimCmd *const gAnims_DUSCLOPS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DUSCLOPS_1, +}; + +const union AnimCmd *const gAnims_ROSELIA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ROSELIA_1, +}; + +const union AnimCmd *const gAnims_SLAKOTH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SLAKOTH_1, +}; + +const union AnimCmd *const gAnims_VIGOROTH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_VIGOROTH_1, +}; + +const union AnimCmd *const gAnims_SLAKING[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SLAKING_1, +}; + +const union AnimCmd *const gAnims_GULPIN[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GULPIN_1, +}; + +const union AnimCmd *const gAnims_SWALOT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SWALOT_1, +}; + +const union AnimCmd *const gAnims_TROPIUS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_TROPIUS_1, +}; + +const union AnimCmd *const gAnims_WHISMUR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_WHISMUR_1, +}; + +const union AnimCmd *const gAnims_LOUDRED[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LOUDRED_1, +}; + +const union AnimCmd *const gAnims_EXPLOUD[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_EXPLOUD_1, +}; + +const union AnimCmd *const gAnims_CLAMPERL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CLAMPERL_1, +}; + +const union AnimCmd *const gAnims_HUNTAIL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_HUNTAIL_1, +}; + +const union AnimCmd *const gAnims_GOREBYSS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GOREBYSS_1, +}; + +const union AnimCmd *const gAnims_ABSOL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ABSOL_1, +}; + +const union AnimCmd *const gAnims_SHUPPET[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SHUPPET_1, +}; + +const union AnimCmd *const gAnims_BANETTE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BANETTE_1, +}; + +const union AnimCmd *const gAnims_SEVIPER[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SEVIPER_1, +}; + +const union AnimCmd *const gAnims_ZANGOOSE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ZANGOOSE_1, +}; + +const union AnimCmd *const gAnims_RELICANTH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_RELICANTH_1, +}; + +const union AnimCmd *const gAnims_ARON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ARON_1, +}; + +const union AnimCmd *const gAnims_LAIRON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LAIRON_1, +}; + +const union AnimCmd *const gAnims_AGGRON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_AGGRON_1, +}; + +const union AnimCmd *const gAnims_CASTFORM[] ={ + gAnimCmd_CASTFORM_0, + gAnimCmd_CASTFORM_1, + gAnimCmd_CASTFORM_2, + gAnimCmd_CASTFORM_3, +}; + +const union AnimCmd *const gAnims_VOLBEAT[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_VOLBEAT_1, +}; + +const union AnimCmd *const gAnims_ILLUMISE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ILLUMISE_1, +}; + +const union AnimCmd *const gAnims_LILEEP[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LILEEP_1, +}; + +const union AnimCmd *const gAnims_CRADILY[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CRADILY_1, +}; + +const union AnimCmd *const gAnims_ANORITH[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ANORITH_1, +}; + +const union AnimCmd *const gAnims_ARMALDO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_ARMALDO_1, +}; + +const union AnimCmd *const gAnims_RALTS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_RALTS_1, +}; + +const union AnimCmd *const gAnims_KIRLIA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_KIRLIA_1, +}; + +const union AnimCmd *const gAnims_GARDEVOIR[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GARDEVOIR_1, +}; + +const union AnimCmd *const gAnims_BAGON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BAGON_1, +}; + +const union AnimCmd *const gAnims_SHELGON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SHELGON_1, +}; + +const union AnimCmd *const gAnims_SALAMENCE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_SALAMENCE_1, +}; + +const union AnimCmd *const gAnims_BELDUM[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_BELDUM_1, +}; + +const union AnimCmd *const gAnims_METANG[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_METANG_1, +}; + +const union AnimCmd *const gAnims_METAGROSS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_METAGROSS_1, +}; + +const union AnimCmd *const gAnims_REGIROCK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_REGIROCK_1, + gAnimCmd_REGIROCK_2, +}; + +const union AnimCmd *const gAnims_REGICE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_REGICE_1, +}; + +const union AnimCmd *const gAnims_REGISTEEL[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_REGISTEEL_1, + gAnimCmd_REGISTEEL_2, +}; + +const union AnimCmd *const gAnims_KYOGRE[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_KYOGRE_1, + gAnimCmd_KYOGRE_2, +}; + +const union AnimCmd *const gAnims_GROUDON[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_GROUDON_1, + gAnimCmd_GROUDON_2, +}; + +const union AnimCmd *const gAnims_RAYQUAZA[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_RAYQUAZA_1, + gAnimCmd_RAYQUAZA_2, +}; + +const union AnimCmd *const gAnims_LATIAS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LATIAS_1, + gAnimCmd_LATIAS_2, +}; + +const union AnimCmd *const gAnims_LATIOS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_LATIOS_1, + gAnimCmd_LATIOS_2, +}; + +const union AnimCmd *const gAnims_JIRACHI[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_JIRACHI_1, + gAnimCmd_JIRACHI_2, +}; + +const union AnimCmd *const gAnims_DEOXYS[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_DEOXYS_1, + gAnimCmd_DEOXYS_2, +}; + +const union AnimCmd *const gAnims_CHIMECHO[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_CHIMECHO_1, +}; + +const union AnimCmd *const gAnims_EGG[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_EGG_1, +}; + +const union AnimCmd *const gAnims_UNOWN_B[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_B_1, +}; + +const union AnimCmd *const gAnims_UNOWN_C[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_C_1, +}; + +const union AnimCmd *const gAnims_UNOWN_D[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_D_1, +}; + +const union AnimCmd *const gAnims_UNOWN_E[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_E_1, +}; + +const union AnimCmd *const gAnims_UNOWN_F[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_F_1, +}; + +const union AnimCmd *const gAnims_UNOWN_G[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_G_1, +}; + +const union AnimCmd *const gAnims_UNOWN_H[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_H_1, +}; + +const union AnimCmd *const gAnims_UNOWN_I[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_I_1, +}; + +const union AnimCmd *const gAnims_UNOWN_J[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_J_1, +}; + +const union AnimCmd *const gAnims_UNOWN_K[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_K_1, +}; + +const union AnimCmd *const gAnims_UNOWN_L[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_L_1, +}; + +const union AnimCmd *const gAnims_UNOWN_M[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_M_1, +}; + +const union AnimCmd *const gAnims_UNOWN_N[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_N_1, +}; + +const union AnimCmd *const gAnims_UNOWN_O[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_O_1, +}; + +const union AnimCmd *const gAnims_UNOWN_P[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_P_1, +}; + +const union AnimCmd *const gAnims_UNOWN_Q[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_Q_1, +}; + +const union AnimCmd *const gAnims_UNOWN_R[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_R_1, +}; + +const union AnimCmd *const gAnims_UNOWN_S[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_S_1, +}; + +const union AnimCmd *const gAnims_UNOWN_T[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_T_1, +}; + +const union AnimCmd *const gAnims_UNOWN_U[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_U_1, +}; + +const union AnimCmd *const gAnims_UNOWN_V[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_V_1, +}; + +const union AnimCmd *const gAnims_UNOWN_W[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_W_1, +}; + +const union AnimCmd *const gAnims_UNOWN_X[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_X_1, +}; + +const union AnimCmd *const gAnims_UNOWN_Y[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_Y_1, +}; + +const union AnimCmd *const gAnims_UNOWN_Z[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_Z_1, +}; + +const union AnimCmd *const gAnims_UNOWN_EMARK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_EMARK_1, +}; + +const union AnimCmd *const gAnims_UNOWN_QMARK[] ={ + gAnimCmd_General_Frame0, + gAnimCmd_UNOWN_QMARK_1, +}; + +const union AnimCmd* const * const gMonAnimationsSpriteAnimsPtrTable[] = +{ + gAnims_NONE, + gAnims_BULBASAUR, + gAnims_IVYSAUR, + gAnims_VENUSAUR, + gAnims_CHARMANDER, + gAnims_CHARMELEON, + gAnims_CHARIZARD, + gAnims_SQUIRTLE, + gAnims_WARTORTLE, + gAnims_BLASTOISE, + gAnims_CATERPIE, + gAnims_METAPOD, + gAnims_BUTTERFREE, + gAnims_WEEDLE, + gAnims_KAKUNA, + gAnims_BEEDRILL, + gAnims_PIDGEY, + gAnims_PIDGEOTTO, + gAnims_PIDGEOT, + gAnims_RATTATA, + gAnims_RATICATE, + gAnims_SPEAROW, + gAnims_FEAROW, + gAnims_EKANS, + gAnims_ARBOK, + gAnims_PIKACHU, + gAnims_RAICHU, + gAnims_SANDSHREW, + gAnims_SANDSLASH, + gAnims_NIDORAN_F, + gAnims_NIDORINA, + gAnims_NIDOQUEEN, + gAnims_NIDORAN_M, + gAnims_NIDORINO, + gAnims_NIDOKING, + gAnims_CLEFAIRY, + gAnims_CLEFABLE, + gAnims_VULPIX, + gAnims_NINETALES, + gAnims_JIGGLYPUFF, + gAnims_WIGGLYTUFF, + gAnims_ZUBAT, + gAnims_GOLBAT, + gAnims_ODDISH, + gAnims_GLOOM, + gAnims_VILEPLUME, + gAnims_PARAS, + gAnims_PARASECT, + gAnims_VENONAT, + gAnims_VENOMOTH, + gAnims_DIGLETT, + gAnims_DUGTRIO, + gAnims_MEOWTH, + gAnims_PERSIAN, + gAnims_PSYDUCK, + gAnims_GOLDUCK, + gAnims_MANKEY, + gAnims_PRIMEAPE, + gAnims_GROWLITHE, + gAnims_ARCANINE, + gAnims_POLIWAG, + gAnims_POLIWHIRL, + gAnims_POLIWRATH, + gAnims_ABRA, + gAnims_KADABRA, + gAnims_ALAKAZAM, + gAnims_MACHOP, + gAnims_MACHOKE, + gAnims_MACHAMP, + gAnims_BELLSPROUT, + gAnims_WEEPINBELL, + gAnims_VICTREEBEL, + gAnims_TENTACOOL, + gAnims_TENTACRUEL, + gAnims_GEODUDE, + gAnims_GRAVELER, + gAnims_GOLEM, + gAnims_PONYTA, + gAnims_RAPIDASH, + gAnims_SLOWPOKE, + gAnims_SLOWBRO, + gAnims_MAGNEMITE, + gAnims_MAGNETON, + gAnims_FARFETCHD, + gAnims_DODUO, + gAnims_DODRIO, + gAnims_SEEL, + gAnims_DEWGONG, + gAnims_GRIMER, + gAnims_MUK, + gAnims_SHELLDER, + gAnims_CLOYSTER, + gAnims_GASTLY, + gAnims_HAUNTER, + gAnims_GENGAR, + gAnims_ONIX, + gAnims_DROWZEE, + gAnims_HYPNO, + gAnims_KRABBY, + gAnims_KINGLER, + gAnims_VOLTORB, + gAnims_ELECTRODE, + gAnims_EXEGGCUTE, + gAnims_EXEGGUTOR, + gAnims_CUBONE, + gAnims_MAROWAK, + gAnims_HITMONLEE, + gAnims_HITMONCHAN, + gAnims_LICKITUNG, + gAnims_KOFFING, + gAnims_WEEZING, + gAnims_RHYHORN, + gAnims_RHYDON, + gAnims_CHANSEY, + gAnims_TANGELA, + gAnims_KANGASKHAN, + gAnims_HORSEA, + gAnims_SEADRA, + gAnims_GOLDEEN, + gAnims_SEAKING, + gAnims_STARYU, + gAnims_STARMIE, + gAnims_MR_MIME, + gAnims_SCYTHER, + gAnims_JYNX, + gAnims_ELECTABUZZ, + gAnims_MAGMAR, + gAnims_PINSIR, + gAnims_TAUROS, + gAnims_MAGIKARP, + gAnims_GYARADOS, + gAnims_LAPRAS, + gAnims_DITTO, + gAnims_EEVEE, + gAnims_VAPOREON, + gAnims_JOLTEON, + gAnims_FLAREON, + gAnims_PORYGON, + gAnims_OMANYTE, + gAnims_OMASTAR, + gAnims_KABUTO, + gAnims_KABUTOPS, + gAnims_AERODACTYL, + gAnims_SNORLAX, + gAnims_ARTICUNO, + gAnims_ZAPDOS, + gAnims_MOLTRES, + gAnims_DRATINI, + gAnims_DRAGONAIR, + gAnims_DRAGONITE, + gAnims_MEWTWO, + gAnims_MEW, + gAnims_CHIKORITA, + gAnims_BAYLEEF, + gAnims_MEGANIUM, + gAnims_CYNDAQUIL, + gAnims_QUILAVA, + gAnims_TYPHLOSION, + gAnims_TOTODILE, + gAnims_CROCONAW, + gAnims_FERALIGATR, + gAnims_SENTRET, + gAnims_FURRET, + gAnims_HOOTHOOT, + gAnims_NOCTOWL, + gAnims_LEDYBA, + gAnims_LEDIAN, + gAnims_SPINARAK, + gAnims_ARIADOS, + gAnims_CROBAT, + gAnims_CHINCHOU, + gAnims_LANTURN, + gAnims_PICHU, + gAnims_CLEFFA, + gAnims_IGGLYBUFF, + gAnims_TOGEPI, + gAnims_TOGETIC, + gAnims_NATU, + gAnims_XATU, + gAnims_MAREEP, + gAnims_FLAAFFY, + gAnims_AMPHAROS, + gAnims_BELLOSSOM, + gAnims_MARILL, + gAnims_AZUMARILL, + gAnims_SUDOWOODO, + gAnims_POLITOED, + gAnims_HOPPIP, + gAnims_SKIPLOOM, + gAnims_JUMPLUFF, + gAnims_AIPOM, + gAnims_SUNKERN, + gAnims_SUNFLORA, + gAnims_YANMA, + gAnims_WOOPER, + gAnims_QUAGSIRE, + gAnims_ESPEON, + gAnims_UMBREON, + gAnims_MURKROW, + gAnims_SLOWKING, + gAnims_MISDREAVUS, + gAnims_UNOWN, + gAnims_WOBBUFFET, + gAnims_GIRAFARIG, + gAnims_PINECO, + gAnims_FORRETRESS, + gAnims_DUNSPARCE, + gAnims_GLIGAR, + gAnims_STEELIX, + gAnims_SNUBBULL, + gAnims_GRANBULL, + gAnims_QWILFISH, + gAnims_SCIZOR, + gAnims_SHUCKLE, + gAnims_HERACROSS, + gAnims_SNEASEL, + gAnims_TEDDIURSA, + gAnims_URSARING, + gAnims_SLUGMA, + gAnims_MAGCARGO, + gAnims_SWINUB, + gAnims_PILOSWINE, + gAnims_CORSOLA, + gAnims_REMORAID, + gAnims_OCTILLERY, + gAnims_DELIBIRD, + gAnims_MANTINE, + gAnims_SKARMORY, + gAnims_HOUNDOUR, + gAnims_HOUNDOOM, + gAnims_KINGDRA, + gAnims_PHANPY, + gAnims_DONPHAN, + gAnims_PORYGON2, + gAnims_STANTLER, + gAnims_SMEARGLE, + gAnims_TYROGUE, + gAnims_HITMONTOP, + gAnims_SMOOCHUM, + gAnims_ELEKID, + gAnims_MAGBY, + gAnims_MILTANK, + gAnims_BLISSEY, + gAnims_RAIKOU, + gAnims_ENTEI, + gAnims_SUICUNE, + gAnims_LARVITAR, + gAnims_PUPITAR, + gAnims_TYRANITAR, + gAnims_LUGIA, + gAnims_HO_OH, + gAnims_CELEBI, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_OLD_UNOWN_B, + gAnims_TREECKO, + gAnims_GROVYLE, + gAnims_SCEPTILE, + gAnims_TORCHIC, + gAnims_COMBUSKEN, + gAnims_BLAZIKEN, + gAnims_MUDKIP, + gAnims_MARSHTOMP, + gAnims_SWAMPERT, + gAnims_POOCHYENA, + gAnims_MIGHTYENA, + gAnims_ZIGZAGOON, + gAnims_LINOONE, + gAnims_WURMPLE, + gAnims_SILCOON, + gAnims_BEAUTIFLY, + gAnims_CASCOON, + gAnims_DUSTOX, + gAnims_LOTAD, + gAnims_LOMBRE, + gAnims_LUDICOLO, + gAnims_SEEDOT, + gAnims_NUZLEAF, + gAnims_SHIFTRY, + gAnims_NINCADA, + gAnims_NINJASK, + gAnims_SHEDINJA, + gAnims_TAILLOW, + gAnims_SWELLOW, + gAnims_SHROOMISH, + gAnims_BRELOOM, + gAnims_SPINDA, + gAnims_WINGULL, + gAnims_PELIPPER, + gAnims_SURSKIT, + gAnims_MASQUERAIN, + gAnims_WAILMER, + gAnims_WAILORD, + gAnims_SKITTY, + gAnims_DELCATTY, + gAnims_KECLEON, + gAnims_BALTOY, + gAnims_CLAYDOL, + gAnims_NOSEPASS, + gAnims_TORKOAL, + gAnims_SABLEYE, + gAnims_BARBOACH, + gAnims_WHISCASH, + gAnims_LUVDISC, + gAnims_CORPHISH, + gAnims_CRAWDAUNT, + gAnims_FEEBAS, + gAnims_MILOTIC, + gAnims_CARVANHA, + gAnims_SHARPEDO, + gAnims_TRAPINCH, + gAnims_VIBRAVA, + gAnims_FLYGON, + gAnims_MAKUHITA, + gAnims_HARIYAMA, + gAnims_ELECTRIKE, + gAnims_MANECTRIC, + gAnims_NUMEL, + gAnims_CAMERUPT, + gAnims_SPHEAL, + gAnims_SEALEO, + gAnims_WALREIN, + gAnims_CACNEA, + gAnims_CACTURNE, + gAnims_SNORUNT, + gAnims_GLALIE, + gAnims_LUNATONE, + gAnims_SOLROCK, + gAnims_AZURILL, + gAnims_SPOINK, + gAnims_GRUMPIG, + gAnims_PLUSLE, + gAnims_MINUN, + gAnims_MAWILE, + gAnims_MEDITITE, + gAnims_MEDICHAM, + gAnims_SWABLU, + gAnims_ALTARIA, + gAnims_WYNAUT, + gAnims_DUSKULL, + gAnims_DUSCLOPS, + gAnims_ROSELIA, + gAnims_SLAKOTH, + gAnims_VIGOROTH, + gAnims_SLAKING, + gAnims_GULPIN, + gAnims_SWALOT, + gAnims_TROPIUS, + gAnims_WHISMUR, + gAnims_LOUDRED, + gAnims_EXPLOUD, + gAnims_CLAMPERL, + gAnims_HUNTAIL, + gAnims_GOREBYSS, + gAnims_ABSOL, + gAnims_SHUPPET, + gAnims_BANETTE, + gAnims_SEVIPER, + gAnims_ZANGOOSE, + gAnims_RELICANTH, + gAnims_ARON, + gAnims_LAIRON, + gAnims_AGGRON, + gAnims_CASTFORM, + gAnims_VOLBEAT, + gAnims_ILLUMISE, + gAnims_LILEEP, + gAnims_CRADILY, + gAnims_ANORITH, + gAnims_ARMALDO, + gAnims_RALTS, + gAnims_KIRLIA, + gAnims_GARDEVOIR, + gAnims_BAGON, + gAnims_SHELGON, + gAnims_SALAMENCE, + gAnims_BELDUM, + gAnims_METANG, + gAnims_METAGROSS, + gAnims_REGIROCK, + gAnims_REGICE, + gAnims_REGISTEEL, + gAnims_KYOGRE, + gAnims_GROUDON, + gAnims_RAYQUAZA, + gAnims_LATIAS, + gAnims_LATIOS, + gAnims_JIRACHI, + gAnims_DEOXYS, + gAnims_CHIMECHO, + gAnims_EGG, + gAnims_UNOWN_B, + gAnims_UNOWN_C, + gAnims_UNOWN_D, + gAnims_UNOWN_E, + gAnims_UNOWN_F, + gAnims_UNOWN_G, + gAnims_UNOWN_H, + gAnims_UNOWN_I, + gAnims_UNOWN_J, + gAnims_UNOWN_K, + gAnims_UNOWN_L, + gAnims_UNOWN_M, + gAnims_UNOWN_N, + gAnims_UNOWN_O, + gAnims_UNOWN_P, + gAnims_UNOWN_Q, + gAnims_UNOWN_R, + gAnims_UNOWN_S, + gAnims_UNOWN_T, + gAnims_UNOWN_U, + gAnims_UNOWN_V, + gAnims_UNOWN_W, + gAnims_UNOWN_X, + gAnims_UNOWN_Y, + gAnims_UNOWN_Z, + gAnims_UNOWN_EMARK, + gAnims_UNOWN_QMARK, +}; diff --git a/include/data/pokemon_graphics/front_pic_table.h b/include/data/pokemon_graphics/front_pic_table.h new file mode 100644 index 0000000000..5aa22f4f8a --- /dev/null +++ b/include/data/pokemon_graphics/front_pic_table.h @@ -0,0 +1,446 @@ +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, +}; diff --git a/include/data/trainer_graphics/back_pic_tables.h b/include/data/trainer_graphics/back_pic_tables.h new file mode 100644 index 0000000000..ba7f73ebb6 --- /dev/null +++ b/include/data/trainer_graphics/back_pic_tables.h @@ -0,0 +1,35 @@ +const u8 gTrainerBackPicCoords[] = +{ + 8, 4, 0, 0, + 8, 4, 0, 0, + 8, 5, 0, 0, + 8, 5, 0, 0, + 8, 4, 0, 0, + 8, 4, 0, 0, + 8, 4, 0, 0, + 8, 4, 0, 0, +}; + +const struct CompressedSpriteSheet gTrainerBackPicTable[] = +{ + gTrainerBackPic_Brendan, 0x2000, 0, + gTrainerBackPic_May, 0x2000, 1, + gTrainerBackPic_Red, 0x2800, 2, + gTrainerBackPic_Leaf, 0x2800, 3, + gTrainerBackPic_RubySapphireBrendan, 0x2000, 4, + gTrainerBackPic_RubySapphireMay, 0x2000, 5, + gTrainerBackPic_Wally, 0x2000, 6, + gTrainerBackPic_Steven, 0x2000, 7, +}; + +const struct CompressedSpritePalette gTrainerBackPicPaletteTable[] = +{ + gTrainerPalette_Brendan, 0, + gTrainerPalette_May, 1, + gTrainerBackPicPalette_Red, 2, + gTrainerBackPicPalette_Leaf, 3, + gTrainerPalette_RubySapphireBrendan, 4, + gTrainerPalette_RubySapphireMay, 5, + gTrainerPalette_Wally, 6, + gTrainerPalette_Steven, 7, +}; diff --git a/include/data/trainer_graphics/front_pic_tables.h b/include/data/trainer_graphics/front_pic_tables.h new file mode 100644 index 0000000000..feb05f3f36 --- /dev/null +++ b/include/data/trainer_graphics/front_pic_tables.h @@ -0,0 +1,290 @@ +const u8 gTrainerFrontPicCoords[] = +{ + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 2, 0, 0, + 8, 2, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 2, 0, 0, + 8, 1, 0, 0, + 8, 2, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 2, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 2, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, + 8, 1, 0, 0, +}; + +const struct CompressedSpriteSheet gTrainerFrontPicTable[] = +{ + gTrainerFrontPic_Hiker, 0x800, 0, + gTrainerFrontPic_AquaGruntM, 0x800, 1, + gTrainerFrontPic_PokemonBreederF, 0x800, 2, + gTrainerFrontPic_CoolTrainerM, 0x800, 3, + gTrainerFrontPic_BirdKeeper, 0x800, 4, + gTrainerFrontPic_Collector, 0x800, 5, + gTrainerFrontPic_AquaGruntF, 0x800, 6, + gTrainerFrontPic_SwimmerM, 0x800, 7, + gTrainerFrontPic_MagmaGruntM, 0x800, 8, + gTrainerFrontPic_ExpertM, 0x800, 9, + gTrainerFrontPic_AquaAdminM, 0x800, 10, + gTrainerFrontPic_BlackBelt, 0x800, 11, + gTrainerFrontPic_AquaAdminF, 0x800, 12, + gTrainerFrontPic_AquaLeaderArchie, 0x800, 13, + gTrainerFrontPic_HexManiac, 0x800, 14, + gTrainerFrontPic_AromaLady, 0x800, 15, + gTrainerFrontPic_RuinManiac, 0x800, 16, + gTrainerFrontPic_Interviewer, 0x800, 17, + gTrainerFrontPic_TuberF, 0x800, 18, + gTrainerFrontPic_TuberM, 0x800, 19, + gTrainerFrontPic_CoolTrainerF, 0x800, 20, + gTrainerFrontPic_Lady, 0x800, 21, + gTrainerFrontPic_Beauty, 0x800, 22, + gTrainerFrontPic_RichBoy, 0x800, 23, + gTrainerFrontPic_ExpertF, 0x800, 24, + gTrainerFrontPic_Pokemaniac, 0x800, 25, + gTrainerFrontPic_MagmaGruntF, 0x800, 26, + gTrainerFrontPic_Guitarist, 0x800, 27, + gTrainerFrontPic_Kindler, 0x800, 28, + gTrainerFrontPic_Camper, 0x800, 29, + gTrainerFrontPic_Picnicker, 0x800, 30, + gTrainerFrontPic_BugManiac, 0x800, 31, + gTrainerFrontPic_PokemonBreederM, 0x800, 32, + gTrainerFrontPic_PsychicM, 0x800, 33, + gTrainerFrontPic_PsychicF, 0x800, 34, + gTrainerFrontPic_Gentleman, 0x800, 35, + gTrainerFrontPic_EliteFourSidney, 0x800, 36, + gTrainerFrontPic_EliteFourPhoebe, 0x800, 37, + gTrainerFrontPic_EliteFourGlacia, 0x800, 38, + gTrainerFrontPic_EliteFourDrake, 0x800, 39, + gTrainerFrontPic_LeaderRoxanne, 0x800, 40, + gTrainerFrontPic_LeaderBrawly, 0x800, 41, + gTrainerFrontPic_LeaderWattson, 0x800, 42, + gTrainerFrontPic_LeaderFlannery, 0x800, 43, + gTrainerFrontPic_LeaderNorman, 0x800, 44, + gTrainerFrontPic_LeaderWinona, 0x800, 45, + gTrainerFrontPic_LeaderTateAndLiza, 0x800, 46, + gTrainerFrontPic_LeaderJuan, 0x800, 47, + gTrainerFrontPic_SchoolKidM, 0x800, 48, + gTrainerFrontPic_SchoolKidF, 0x800, 49, + gTrainerFrontPic_SrAndJr, 0x1000, 50, + gTrainerFrontPic_WinstrateM, 0x1000, 51, + gTrainerFrontPic_WinstrateF, 0x800, 52, + gTrainerFrontPic_Youngster, 0x800, 53, + gTrainerFrontPic_ChampionWallace, 0x1000, 54, + gTrainerFrontPic_Fisherman, 0x800, 55, + gTrainerFrontPic_CyclingTriathleteM, 0x1000, 56, + gTrainerFrontPic_CyclingTriathleteF, 0x800, 57, + gTrainerFrontPic_RunningTriathleteM, 0x800, 58, + gTrainerFrontPic_RunningTriathleteF, 0x800, 59, + gTrainerFrontPic_SwimmingTriathleteM, 0x800, 60, + gTrainerFrontPic_SwimmingTriathleteF, 0x800, 61, + gTrainerFrontPic_DragonTamer, 0x800, 62, + gTrainerFrontPic_NinjaBoy, 0x800, 63, + gTrainerFrontPic_BattleGirl, 0x1000, 64, + gTrainerFrontPic_ParasolLady, 0x800, 65, + gTrainerFrontPic_SwimmerF, 0x800, 66, + gTrainerFrontPic_Twins, 0x800, 67, + gTrainerFrontPic_Sailor, 0x800, 68, + gTrainerFrontPic_MagmaAdmin, 0x800, 69, + gTrainerFrontPic_Wally, 0x800, 70, + gTrainerFrontPic_Brendan, 0x800, 71, + gTrainerFrontPic_May, 0x800, 72, + gTrainerFrontPic_BugCatcher, 0x800, 73, + gTrainerFrontPic_PokemonRangerM, 0x800, 74, + gTrainerFrontPic_PokemonRangerF, 0x800, 75, + gTrainerFrontPic_MagmaLeaderMaxie, 0x800, 76, + gTrainerFrontPic_Lass, 0x800, 77, + gTrainerFrontPic_YoungCouple, 0x800, 78, + gTrainerFrontPic_OldCouple, 0x800, 79, + gTrainerFrontPic_SisAndBro, 0x800, 80, + gTrainerFrontPic_Steven, 0x800, 81, + gTrainerFrontPic_SalonMaidenAnabel, 0x800, 82, + gTrainerFrontPic_DomeAceTucker, 0x800, 83, + gTrainerFrontPic_PalaceMavenSpenser, 0x800, 84, + gTrainerFrontPic_ArenaTycoonGreta, 0x1000, 85, + gTrainerFrontPic_FactoryHeadNoland, 0x800, 86, + gTrainerFrontPic_PikeQueenLucy, 0x800, 87, + gTrainerFrontPic_PyramidKingBrandon, 0x800, 88, + gTrainerFrontPic_Red, 0x800, 89, + gTrainerFrontPic_Leaf, 0x800, 90, + gTrainerFrontPic_RubySapphireBrendan, 0x800, 91, + gTrainerFrontPic_RubySapphireMay, 0x800, 92, +}; + +const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[] = +{ + gTrainerPalette_Hiker, 0, + gTrainerPalette_AquaGruntM, 1, + gTrainerPalette_PokemonBreederF, 2, + gTrainerPalette_CoolTrainerM, 3, + gTrainerPalette_BirdKeeper, 4, + gTrainerPalette_Collector, 5, + gTrainerPalette_AquaGruntF, 6, + gTrainerPalette_SwimmerM, 7, + gTrainerPalette_MagmaGruntM, 8, + gTrainerPalette_ExpertM, 9, + gTrainerPalette_AquaAdminM, 10, + gTrainerPalette_BlackBelt, 11, + gTrainerPalette_AquaAdminF, 12, + gTrainerPalette_AquaLeaderArchie, 13, + gTrainerPalette_HexManiac, 14, + gTrainerPalette_AromaLady, 15, + gTrainerPalette_RuinManiac, 16, + gTrainerPalette_Interviewer, 17, + gTrainerPalette_TuberF, 18, + gTrainerPalette_TuberM, 19, + gTrainerPalette_CoolTrainerF, 20, + gTrainerPalette_Lady, 21, + gTrainerPalette_Beauty, 22, + gTrainerPalette_RichBoy, 23, + gTrainerPalette_ExpertF, 24, + gTrainerPalette_Pokemaniac, 25, + gTrainerPalette_MagmaGruntF, 26, + gTrainerPalette_Guitarist, 27, + gTrainerPalette_Kindler, 28, + gTrainerPalette_Camper, 29, + gTrainerPalette_Picnicker, 30, + gTrainerPalette_BugManiac, 31, + gTrainerPalette_PokemonBreederM, 32, + gTrainerPalette_PsychicM, 33, + gTrainerPalette_PsychicF, 34, + gTrainerPalette_Gentleman, 35, + gTrainerPalette_EliteFourSidney, 36, + gTrainerPalette_EliteFourPhoebe, 37, + gTrainerPalette_EliteFourGlacia, 38, + gTrainerPalette_EliteFourDrake, 39, + gTrainerPalette_LeaderRoxanne, 40, + gTrainerPalette_LeaderBrawly, 41, + gTrainerPalette_LeaderWattson, 42, + gTrainerPalette_LeaderFlannery, 43, + gTrainerPalette_LeaderNorman, 44, + gTrainerPalette_LeaderWinona, 45, + gTrainerPalette_LeaderTateAndLiza, 46, + gTrainerPalette_LeaderJuan, 47, + gTrainerPalette_SchoolKidM, 48, + gTrainerPalette_SchoolKidF, 49, + gTrainerPalette_SrAndJr, 50, + gTrainerPalette_WinstrateM, 51, + gTrainerPalette_WinstrateF, 52, + gTrainerPalette_Youngster, 53, + gTrainerPalette_ChampionWallace, 54, + gTrainerPalette_Fisherman, 55, + gTrainerPalette_CyclingTriathleteM, 56, + gTrainerPalette_CyclingTriathleteF, 57, + gTrainerPalette_RunningTriathleteM, 58, + gTrainerPalette_RunningTriathleteF, 59, + gTrainerPalette_SwimmingTriathleteM, 60, + gTrainerPalette_SwimmingTriathleteF, 61, + gTrainerPalette_DragonTamer, 62, + gTrainerPalette_NinjaBoy, 63, + gTrainerPalette_BattleGirl, 64, + gTrainerPalette_ParasolLady, 65, + gTrainerPalette_SwimmerF, 66, + gTrainerPalette_Twins, 67, + gTrainerPalette_Sailor, 68, + gTrainerPalette_MagmaAdmin, 69, + gTrainerPalette_Wally, 70, + gTrainerPalette_Brendan, 71, + gTrainerPalette_May, 72, + gTrainerPalette_BugCatcher, 73, + gTrainerPalette_PokemonRangerM, 74, + gTrainerPalette_PokemonRangerF, 75, + gTrainerPalette_MagmaLeaderMaxie, 76, + gTrainerPalette_Lass, 77, + gTrainerPalette_YoungCouple, 78, + gTrainerPalette_OldCouple, 79, + gTrainerPalette_SisAndBro, 80, + gTrainerPalette_Steven, 81, + gTrainerPalette_SalonMaidenAnabel, 82, + gTrainerPalette_DomeAceTucker, 83, + gTrainerPalette_PalaceMavenSpenser, 84, + gTrainerPalette_ArenaTycoonGreta, 85, + gTrainerPalette_FactoryHeadNoland, 86, + gTrainerPalette_PikeQueenLucy, 87, + gTrainerPalette_PyramidKingBrandon, 88, + gTrainerPalette_Red, 89, + gTrainerPalette_Leaf, 90, + gTrainerPalette_RubySapphireBrendan, 91, + gTrainerPalette_RubySapphireMay, 92, +} diff --git a/include/graphics.h b/include/graphics.h index a5acca6253..1f2522ef98 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2437,10 +2437,214 @@ extern const u8 gMonFrontPic_UnownQuestionMark[]; extern const u8 gMonBackPic_UnownQuestionMark[]; extern const u8 gMonIcon_UnownQuestionMark[]; +extern const u8 gMonFrontPic_CircledQuestionMark[]; extern const u8 gMonIcon_QuestionMark[]; +extern const u8 gMonFrontPic_DoubleQuestionMark[]; +extern const u8 gMonFrontPic_Egg[]; extern const u8 gMonIcon_Egg[]; extern const u16 gMonIconPalettes[][16]; +// trainer sprites +extern const u8 gTrainerFrontPic_Hiker[]; +extern const u8 gTrainerFrontPic_AquaGruntM[]; +extern const u8 gTrainerFrontPic_PokemonBreederF[]; +extern const u8 gTrainerFrontPic_CoolTrainerM[]; +extern const u8 gTrainerFrontPic_BirdKeeper[]; +extern const u8 gTrainerFrontPic_Collector[]; +extern const u8 gTrainerFrontPic_AquaGruntF[]; +extern const u8 gTrainerFrontPic_SwimmerM[]; +extern const u8 gTrainerFrontPic_MagmaGruntM[]; +extern const u8 gTrainerFrontPic_ExpertM[]; +extern const u8 gTrainerFrontPic_AquaAdminM[]; +extern const u8 gTrainerFrontPic_BlackBelt[]; +extern const u8 gTrainerFrontPic_AquaAdminF[]; +extern const u8 gTrainerFrontPic_AquaLeaderArchie[]; +extern const u8 gTrainerFrontPic_HexManiac[]; +extern const u8 gTrainerFrontPic_AromaLady[]; +extern const u8 gTrainerFrontPic_RuinManiac[]; +extern const u8 gTrainerFrontPic_Interviewer[]; +extern const u8 gTrainerFrontPic_TuberF[]; +extern const u8 gTrainerFrontPic_TuberM[]; +extern const u8 gTrainerFrontPic_CoolTrainerF[]; +extern const u8 gTrainerFrontPic_Lady[]; +extern const u8 gTrainerFrontPic_Beauty[]; +extern const u8 gTrainerFrontPic_RichBoy[]; +extern const u8 gTrainerFrontPic_ExpertF[]; +extern const u8 gTrainerFrontPic_Pokemaniac[]; +extern const u8 gTrainerFrontPic_MagmaGruntF[]; +extern const u8 gTrainerFrontPic_Guitarist[]; +extern const u8 gTrainerFrontPic_Kindler[]; +extern const u8 gTrainerFrontPic_Camper[]; +extern const u8 gTrainerFrontPic_Picnicker[]; +extern const u8 gTrainerFrontPic_BugManiac[]; +extern const u8 gTrainerFrontPic_PokemonBreederM[]; +extern const u8 gTrainerFrontPic_PsychicM[]; +extern const u8 gTrainerFrontPic_PsychicF[]; +extern const u8 gTrainerFrontPic_Gentleman[]; +extern const u8 gTrainerFrontPic_EliteFourSidney[]; +extern const u8 gTrainerFrontPic_EliteFourPhoebe[]; +extern const u8 gTrainerFrontPic_EliteFourGlacia[]; +extern const u8 gTrainerFrontPic_EliteFourDrake[]; +extern const u8 gTrainerFrontPic_LeaderRoxanne[]; +extern const u8 gTrainerFrontPic_LeaderBrawly[]; +extern const u8 gTrainerFrontPic_LeaderWattson[]; +extern const u8 gTrainerFrontPic_LeaderFlannery[]; +extern const u8 gTrainerFrontPic_LeaderNorman[]; +extern const u8 gTrainerFrontPic_LeaderWinona[]; +extern const u8 gTrainerFrontPic_LeaderTateAndLiza[]; +extern const u8 gTrainerFrontPic_LeaderJuan[]; +extern const u8 gTrainerFrontPic_SchoolKidM[]; +extern const u8 gTrainerFrontPic_SchoolKidF[]; +extern const u8 gTrainerFrontPic_SrAndJr[]; +extern const u8 gTrainerFrontPic_WinstrateM[]; +extern const u8 gTrainerFrontPic_WinstrateF[]; +extern const u8 gTrainerFrontPic_Youngster[]; +extern const u8 gTrainerFrontPic_ChampionWallace[]; +extern const u8 gTrainerFrontPic_Fisherman[]; +extern const u8 gTrainerFrontPic_CyclingTriathleteM[]; +extern const u8 gTrainerFrontPic_CyclingTriathleteF[]; +extern const u8 gTrainerFrontPic_RunningTriathleteM[]; +extern const u8 gTrainerFrontPic_RunningTriathleteF[]; +extern const u8 gTrainerFrontPic_SwimmingTriathleteM[]; +extern const u8 gTrainerFrontPic_SwimmingTriathleteF[]; +extern const u8 gTrainerFrontPic_DragonTamer[]; +extern const u8 gTrainerFrontPic_NinjaBoy[]; +extern const u8 gTrainerFrontPic_BattleGirl[]; +extern const u8 gTrainerFrontPic_ParasolLady[]; +extern const u8 gTrainerFrontPic_SwimmerF[]; +extern const u8 gTrainerFrontPic_Twins[]; +extern const u8 gTrainerFrontPic_Sailor[]; +extern const u8 gTrainerFrontPic_MagmaAdmin[]; +extern const u8 gTrainerFrontPic_Wally[]; +extern const u8 gTrainerFrontPic_Brendan[]; +extern const u8 gTrainerFrontPic_May[]; +extern const u8 gTrainerFrontPic_BugCatcher[]; +extern const u8 gTrainerFrontPic_PokemonRangerM[]; +extern const u8 gTrainerFrontPic_PokemonRangerF[]; +extern const u8 gTrainerFrontPic_MagmaLeaderMaxie[]; +extern const u8 gTrainerFrontPic_Lass[]; +extern const u8 gTrainerFrontPic_YoungCouple[]; +extern const u8 gTrainerFrontPic_OldCouple[]; +extern const u8 gTrainerFrontPic_SisAndBro[]; +extern const u8 gTrainerFrontPic_Steven[]; +extern const u8 gTrainerFrontPic_SalonMaidenAnabel[]; +extern const u8 gTrainerFrontPic_DomeAceTucker[]; +extern const u8 gTrainerFrontPic_PalaceMavenSpenser[]; +extern const u8 gTrainerFrontPic_ArenaTycoonGreta[]; +extern const u8 gTrainerFrontPic_FactoryHeadNoland[]; +extern const u8 gTrainerFrontPic_PikeQueenLucy[]; +extern const u8 gTrainerFrontPic_PyramidKingBrandon[]; +extern const u8 gTrainerFrontPic_Red[]; +extern const u8 gTrainerFrontPic_Leaf[]; +extern const u8 gTrainerFrontPic_RubySapphireBrendan[]; +extern const u8 gTrainerFrontPic_RubySapphireMay[]; + +extern const u8 gTrainerPalette_Hiker[]; +extern const u8 gTrainerPalette_AquaGruntM[]; +extern const u8 gTrainerPalette_PokemonBreederF[]; +extern const u8 gTrainerPalette_CoolTrainerM[]; +extern const u8 gTrainerPalette_BirdKeeper[]; +extern const u8 gTrainerPalette_Collector[]; +extern const u8 gTrainerPalette_AquaGruntF[]; +extern const u8 gTrainerPalette_SwimmerM[]; +extern const u8 gTrainerPalette_MagmaGruntM[]; +extern const u8 gTrainerPalette_ExpertM[]; +extern const u8 gTrainerPalette_AquaAdminM[]; +extern const u8 gTrainerPalette_BlackBelt[]; +extern const u8 gTrainerPalette_AquaAdminF[]; +extern const u8 gTrainerPalette_AquaLeaderArchie[]; +extern const u8 gTrainerPalette_HexManiac[]; +extern const u8 gTrainerPalette_AromaLady[]; +extern const u8 gTrainerPalette_RuinManiac[]; +extern const u8 gTrainerPalette_Interviewer[]; +extern const u8 gTrainerPalette_TuberF[]; +extern const u8 gTrainerPalette_TuberM[]; +extern const u8 gTrainerPalette_CoolTrainerF[]; +extern const u8 gTrainerPalette_Lady[]; +extern const u8 gTrainerPalette_Beauty[]; +extern const u8 gTrainerPalette_RichBoy[]; +extern const u8 gTrainerPalette_ExpertF[]; +extern const u8 gTrainerPalette_Pokemaniac[]; +extern const u8 gTrainerPalette_MagmaGruntF[]; +extern const u8 gTrainerPalette_Guitarist[]; +extern const u8 gTrainerPalette_Kindler[]; +extern const u8 gTrainerPalette_Camper[]; +extern const u8 gTrainerPalette_Picnicker[]; +extern const u8 gTrainerPalette_BugManiac[]; +extern const u8 gTrainerPalette_PokemonBreederM[]; +extern const u8 gTrainerPalette_PsychicM[]; +extern const u8 gTrainerPalette_PsychicF[]; +extern const u8 gTrainerPalette_Gentleman[]; +extern const u8 gTrainerPalette_EliteFourSidney[]; +extern const u8 gTrainerPalette_EliteFourPhoebe[]; +extern const u8 gTrainerPalette_EliteFourGlacia[]; +extern const u8 gTrainerPalette_EliteFourDrake[]; +extern const u8 gTrainerPalette_LeaderRoxanne[]; +extern const u8 gTrainerPalette_LeaderBrawly[]; +extern const u8 gTrainerPalette_LeaderWattson[]; +extern const u8 gTrainerPalette_LeaderFlannery[]; +extern const u8 gTrainerPalette_LeaderNorman[]; +extern const u8 gTrainerPalette_LeaderWinona[]; +extern const u8 gTrainerPalette_LeaderTateAndLiza[]; +extern const u8 gTrainerPalette_LeaderJuan[]; +extern const u8 gTrainerPalette_SchoolKidM[]; +extern const u8 gTrainerPalette_SchoolKidF[]; +extern const u8 gTrainerPalette_SrAndJr[]; +extern const u8 gTrainerPalette_WinstrateM[]; +extern const u8 gTrainerPalette_WinstrateF[]; +extern const u8 gTrainerPalette_Youngster[]; +extern const u8 gTrainerPalette_ChampionWallace[]; +extern const u8 gTrainerPalette_Fisherman[]; +extern const u8 gTrainerPalette_CyclingTriathleteM[]; +extern const u8 gTrainerPalette_CyclingTriathleteF[]; +extern const u8 gTrainerPalette_RunningTriathleteM[]; +extern const u8 gTrainerPalette_RunningTriathleteF[]; +extern const u8 gTrainerPalette_SwimmingTriathleteM[]; +extern const u8 gTrainerPalette_SwimmingTriathleteF[]; +extern const u8 gTrainerPalette_DragonTamer[]; +extern const u8 gTrainerPalette_NinjaBoy[]; +extern const u8 gTrainerPalette_BattleGirl[]; +extern const u8 gTrainerPalette_ParasolLady[]; +extern const u8 gTrainerPalette_SwimmerF[]; +extern const u8 gTrainerPalette_Twins[]; +extern const u8 gTrainerPalette_Sailor[]; +extern const u8 gTrainerPalette_MagmaAdmin[]; +extern const u8 gTrainerPalette_Wally[]; +extern const u8 gTrainerPalette_Brendan[]; +extern const u8 gTrainerPalette_May[]; +extern const u8 gTrainerPalette_BugCatcher[]; +extern const u8 gTrainerPalette_PokemonRangerM[]; +extern const u8 gTrainerPalette_PokemonRangerF[]; +extern const u8 gTrainerPalette_MagmaLeaderMaxie[]; +extern const u8 gTrainerPalette_Lass[]; +extern const u8 gTrainerPalette_YoungCouple[]; +extern const u8 gTrainerPalette_OldCouple[]; +extern const u8 gTrainerPalette_SisAndBro[]; +extern const u8 gTrainerPalette_Steven[]; +extern const u8 gTrainerPalette_SalonMaidenAnabel[]; +extern const u8 gTrainerPalette_DomeAceTucker[]; +extern const u8 gTrainerPalette_PalaceMavenSpenser[]; +extern const u8 gTrainerPalette_ArenaTycoonGreta[]; +extern const u8 gTrainerPalette_FactoryHeadNoland[]; +extern const u8 gTrainerPalette_PikeQueenLucy[]; +extern const u8 gTrainerPalette_PyramidKingBrandon[]; +extern const u8 gTrainerPalette_Red[]; +extern const u8 gTrainerPalette_Leaf[]; +extern const u8 gTrainerPalette_RubySapphireBrendan[]; +extern const u8 gTrainerPalette_RubySapphireMay[]; + +extern const u8 gTrainerBackPic_Brendan[]; +extern const u8 gTrainerBackPic_May[]; +extern const u8 gTrainerBackPic_Red[]; +extern const u8 gTrainerBackPic_Leaf[]; +extern const u8 gTrainerBackPic_RubySapphireBrendan[]; +extern const u8 gTrainerBackPic_RubySapphireMay[]; +extern const u8 gTrainerBackPic_Wally[]; +extern const u8 gTrainerBackPic_Steven[]; + +extern const u8 gTrainerBackPicPalette_Red[]; +extern const u8 gTrainerBackPicPalette_Leaf[]; + // pokeblock extern const u8 gMenuPokeblock_Gfx[]; extern const u8 gMenuPokeblock_Pal[]; diff --git a/ld_script.txt b/ld_script.txt index 62074be92b..a4ef0bb17d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -379,6 +379,7 @@ SECTIONS { src/main_menu.o(.rodata); src/rom_8034C54.o(.rodata); data/data2b.o(.rodata); + src/data2b.o(.rodata); src/battle_data.o(.rodata); data/data2c.o(.rodata); src/battle_main.o(.rodata); diff --git a/src/data2b.c b/src/data2b.c new file mode 100644 index 0000000000..8a78a9d904 --- /dev/null +++ b/src/data2b.c @@ -0,0 +1,127 @@ +#include "global.h" +#include "graphics.h" + +extern const union AnimCmd gAnimCmd_General_Frame0[]; +extern const union AnimCmd AnimCmd_82FF540[]; + +//#include "data/trainer_graphics/front_pic_tables.h" + +#include "data/trainer_graphics/back_pic_tables.h" + +#include "data/pokemon_graphics/enemy_mon_elevation.h" +#include "data/pokemon_graphics/front_anims.h" +#include "data/pokemon_graphics/front_pic_table.h" + +const u32 gUnknown830AF4C[] = // Potentially part of battle_data.c +{ + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000088, 0x00000888, 0x00000888, 0x00000886, + 0x00000888, 0x00000886, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000886, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000886, 0x00000886, + 0x00000888, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000888, 0x00000886, 0x00000888, + 0x00000888, 0x00000888, 0x00000886, 0x00000886, + 0x00000888, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000886, 0x00000886, 0x00000088, + 0x00000886, 0x00000886, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000886, 0x00000888, 0x00000088, 0x00000088, + 0x00000888, 0x00000888, 0x00000888, 0x00000886, + 0x00000888, 0x00000888, 0x00000888, 0x00000886, + 0x00000886, 0x00000886, 0x00000886, 0x00000886, + 0x00000886, 0x00000886, 0x00000888, 0x00000888, + 0x00000886, 0x00000886, 0x00000886, 0x00000886, + 0x00000886, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000886, 0x00000886, 0x00000888, + 0x00000886, 0x00000886, 0x00000888, 0x00000888, + 0x00000088, 0x00000088, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000886, 0x00000886, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000088, 0x00000886, + 0x00000888, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000888, 0x00000886, 0x00000888, + 0x00000088, 0x00000088, 0x00000886, 0x00000886, + 0x00000088, 0x00000088, 0x00000888, 0x00000886, + 0x00000886, 0x00000888, 0x00000888, 0x00000088, + 0x00000888, 0x00000886, 0x00000886, 0x00000888, + 0x00000886, 0x00000888, 0x00000888, 0x00000886, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000088, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000088, 0x00000888, 0x00000888, 0x00000886, + 0x00000886, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000886, + 0x00000888, 0x00000886, 0x00000088, 0x00000088, + 0x00000088, 0x00000888, 0x00000088, 0x00000888, + 0x00000888, 0x00000088, 0x00000088, 0x00000888, + 0x00000886, 0x00000888, 0x00000886, 0x00000886, + 0x00000886, 0x00000888, 0x00000888, 0x00000888, + 0x00000088, 0x00000888, 0x00000888, 0x00000888, + 0x00000088, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000088, 0x00000088, + 0x00000886, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000088, 0x00000888, + 0x00000886, 0x00000888, 0x00000088, 0x00000088, + 0x00000888, 0x00000888, 0x00000088, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000088, + 0x00000888, 0x00000888, 0x00000088, 0x00000088, + 0x00000088, 0x00000888, 0x00000088, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000886, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000886, 0x00000886, 0x00000886, + 0x00000088, 0x00000088, 0x00000088, 0x00000886, + 0x00000088, 0x00000886, 0x00000886, 0x00000886, + 0x00000088, 0x00000886, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000886, + 0x00000886, 0x00000886, 0x00000888, 0x00000888, + 0x00000886, 0x00000886, 0x00000886, 0x00000886, + 0x00000088, 0x00000088, 0x00000886, 0x00000886, + 0x00001882, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000886, 0x00000886, 0x00000886, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000886, 0x00000088, 0x00000886, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000886, 0x00000886, + 0x00000088, 0x00000088, 0x00000088, 0x00000886, + 0x00000886, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000886, 0x00000088, + 0x00000088, 0x00000886, 0x00000886, 0x00000886, + 0x00000886, 0x00000886, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000886, + 0x00000886, 0x00000886, 0x00000886, 0x00000088, + 0x00000886, 0x00000088, 0x00000886, 0x00000886, + 0x00000886, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000886, 0x00000886, + 0x00000886, 0x00000888, 0x00000886, 0x00000886, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000886, 0x00000886, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, +}; From 4db5ef3ae64896f27ccb91536d7d426541fbcd5a Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Wed, 22 Aug 2018 21:41:34 +0100 Subject: [PATCH 126/174] Convert more data --- data/data2b.s | 50 -------------- .../data/trainer_graphics/back_pic_anims.h | 67 +++++++++++++++++++ src/data2b.c | 2 +- 3 files changed, 68 insertions(+), 51 deletions(-) create mode 100644 include/data/trainer_graphics/back_pic_anims.h diff --git a/data/data2b.s b/data/data2b.s index 31020a852c..c135bc4391 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -4449,53 +4449,3 @@ gUnknown_08305CB4:: @ 8305CB4 .2byte 0x0000, 0x0018, 0x0001, 0x0009, 0x0002, 0x0018, 0x0000, 0x0009 .2byte 0x0003, 0x0032, 0xffff, 0x0000 - .align 2 -gUnknown_08305CCC:: @ 8305CCC - .4byte AnimCmd_82FF540 - .4byte gUnknown_08305C24 - - .align 2 -gUnknown_08305CD4:: @ 8305CD4 - .4byte AnimCmd_82FF540 - .4byte gUnknown_08305C3C - - .align 2 -gUnknown_08305CDC:: @ 8305CDC - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_08305C6C - - .align 2 -gUnknown_08305CE4:: @ 8305CE4 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_08305C84 - - .align 2 -gUnknown_08305CEC:: @ 8305CEC - .4byte AnimCmd_82FF540 - .4byte gUnknown_08305C9C - - .align 2 -gUnknown_08305CF4:: @ 8305CF4 - .4byte AnimCmd_82FF540 - .4byte gUnknown_08305CB4 - - .align 2 -gUnknown_08305CFC:: @ 8305CFC - .4byte AnimCmd_82FF540 - .4byte gUnknown_08305C54 - - .align 2 -gUnknown_08305D04:: @ 8305D04 - .4byte AnimCmd_82FF540 - .4byte gUnknown_08305C3C - - .align 2 -gUnknown_08305D0C:: @ 8305D0C - .4byte gUnknown_08305CCC - .4byte gUnknown_08305CD4 - .4byte gUnknown_08305CDC - .4byte gUnknown_08305CE4 - .4byte gUnknown_08305CEC - .4byte gUnknown_08305CF4 - .4byte gUnknown_08305CFC - .4byte gUnknown_08305D04 diff --git a/include/data/trainer_graphics/back_pic_anims.h b/include/data/trainer_graphics/back_pic_anims.h new file mode 100644 index 0000000000..67078401e0 --- /dev/null +++ b/include/data/trainer_graphics/back_pic_anims.h @@ -0,0 +1,67 @@ +extern const union AnimCmd gUnknown_08305C24[]; +extern const union AnimCmd gUnknown_08305C3C[]; +extern const union AnimCmd gUnknown_08305C6C[]; +extern const union AnimCmd gUnknown_08305C84[]; +extern const union AnimCmd gUnknown_08305C9C[]; +extern const union AnimCmd gUnknown_08305CB4[]; +extern const union AnimCmd gUnknown_08305C54[]; + +const union AnimCmd *const gUnknown_08305CCC[] = +{ + AnimCmd_82FF540, + gUnknown_08305C24, +}; + +const union AnimCmd *const gUnknown_08305CD4[] = +{ + AnimCmd_82FF540, + gUnknown_08305C3C, +}; + +const union AnimCmd *const gUnknown_08305CDC[] = +{ + gAnimCmd_General_Frame0, + gUnknown_08305C6C, +}; + +const union AnimCmd *const gUnknown_08305CE4[] = +{ + gAnimCmd_General_Frame0, + gUnknown_08305C84, +}; + +const union AnimCmd *const gUnknown_08305CEC[] = +{ + AnimCmd_82FF540, + gUnknown_08305C9C, +}; + +const union AnimCmd *const gUnknown_08305CF4[] = +{ + AnimCmd_82FF540, + gUnknown_08305CB4, +}; + +const union AnimCmd *const gUnknown_08305CFC[] = +{ + AnimCmd_82FF540, + gUnknown_08305C54, +}; + +const union AnimCmd *const gUnknown_08305D04[] = +{ + AnimCmd_82FF540, + gUnknown_08305C3C, +}; + +const union AnimCmd *const *const gUnknown_08305D0C[] = +{ + gUnknown_08305CCC, + gUnknown_08305CD4, + gUnknown_08305CDC, + gUnknown_08305CE4, + gUnknown_08305CEC, + gUnknown_08305CF4, + gUnknown_08305CFC, + gUnknown_08305D04, +}; diff --git a/src/data2b.c b/src/data2b.c index 8a78a9d904..78e671a7ac 100644 --- a/src/data2b.c +++ b/src/data2b.c @@ -5,7 +5,7 @@ extern const union AnimCmd gAnimCmd_General_Frame0[]; extern const union AnimCmd AnimCmd_82FF540[]; //#include "data/trainer_graphics/front_pic_tables.h" - +#include "data/trainer_graphics/back_pic_anims.h" #include "data/trainer_graphics/back_pic_tables.h" #include "data/pokemon_graphics/enemy_mon_elevation.h" From ed24233274a1aa134fb3c52e92f402c7fc3598c3 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Wed, 22 Aug 2018 23:03:44 +0100 Subject: [PATCH 127/174] Convert more of data2b.s to C --- data/data2b.s | 520 ------------------ data/graphics/pokemon/back_pic_table.inc | 442 --------------- data/graphics/pokemon/palette_table.inc | 442 --------------- data/graphics/pokemon/shiny_palette_table.inc | 442 --------------- data/graphics/trainers/front_pic_coords.inc | 95 ---- .../trainers/front_pic_palette_table.inc | 95 ---- data/graphics/trainers/front_pic_table.inc | 95 ---- .../data/pokemon_graphics/back_pic_table.h | 443 +++++++++++++++ include/data/pokemon_graphics/palette_table.h | 443 +++++++++++++++ .../pokemon_graphics/shiny_palette_table.h | 443 +++++++++++++++ .../data/trainer_graphics/back_pic_anims.h | 76 ++- .../data/trainer_graphics/front_pic_anims.h | 190 +++++++ .../data/trainer_graphics/front_pic_tables.h | 2 +- include/graphics.h | 7 + src/data2b.c | 7 +- 15 files changed, 1602 insertions(+), 2140 deletions(-) delete mode 100644 data/graphics/pokemon/back_pic_table.inc delete mode 100644 data/graphics/pokemon/palette_table.inc delete mode 100644 data/graphics/pokemon/shiny_palette_table.inc delete mode 100644 data/graphics/trainers/front_pic_coords.inc delete mode 100644 data/graphics/trainers/front_pic_palette_table.inc delete mode 100644 data/graphics/trainers/front_pic_table.inc create mode 100644 include/data/pokemon_graphics/back_pic_table.h create mode 100644 include/data/pokemon_graphics/palette_table.h create mode 100644 include/data/pokemon_graphics/shiny_palette_table.h create mode 100644 include/data/trainer_graphics/front_pic_anims.h diff --git a/data/data2b.s b/data/data2b.s index c135bc4391..8d20be90fe 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -3929,523 +3929,3 @@ gUnknown_083021D8:: @ 83021D8 .byte 0x46, 0x0a, 0x00, 0x00 .byte 0x37, 0x06, 0x00, 0x00 .byte 0x47, 0x06, 0x00, 0x00 - -@ 83028B8 - .include "data/graphics/pokemon/back_pic_table.inc" - -@ 8303678 - .include "data/graphics/pokemon/palette_table.inc" - -@ 8304438 - .include "data/graphics/pokemon/shiny_palette_table.inc" - -gUnknown_083051F8:: @ 83051F8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083051FC:: @ 83051FC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305200:: @ 8305200 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305204:: @ 8305204 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305208:: @ 8305208 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830520C:: @ 830520C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305210:: @ 8305210 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305214:: @ 8305214 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305218:: @ 8305218 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830521C:: @ 830521C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305220:: @ 8305220 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305224:: @ 8305224 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305228:: @ 8305228 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830522C:: @ 830522C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305230:: @ 8305230 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305234:: @ 8305234 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305238:: @ 8305238 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830523C:: @ 830523C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305240:: @ 8305240 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305244:: @ 8305244 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305248:: @ 8305248 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830524C:: @ 830524C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305250:: @ 8305250 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305254:: @ 8305254 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305258:: @ 8305258 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830525C:: @ 830525C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305260:: @ 8305260 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305264:: @ 8305264 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305268:: @ 8305268 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830526C:: @ 830526C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305270:: @ 8305270 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305274:: @ 8305274 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305278:: @ 8305278 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830527C:: @ 830527C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305280:: @ 8305280 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305284:: @ 8305284 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305288:: @ 8305288 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830528C:: @ 830528C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305290:: @ 8305290 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305294:: @ 8305294 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305298:: @ 8305298 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830529C:: @ 830529C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052A0:: @ 83052A0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052A4:: @ 83052A4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052A8:: @ 83052A8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052AC:: @ 83052AC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052B0:: @ 83052B0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052B4:: @ 83052B4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052B8:: @ 83052B8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052BC:: @ 83052BC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052C0:: @ 83052C0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052C4:: @ 83052C4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052C8:: @ 83052C8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052CC:: @ 83052CC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052D0:: @ 83052D0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052D4:: @ 83052D4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052D8:: @ 83052D8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052DC:: @ 83052DC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052E0:: @ 83052E0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052E4:: @ 83052E4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052E8:: @ 83052E8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052EC:: @ 83052EC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052F0:: @ 83052F0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052F4:: @ 83052F4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052F8:: @ 83052F8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083052FC:: @ 83052FC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305300:: @ 8305300 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305304:: @ 8305304 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305308:: @ 8305308 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830530C:: @ 830530C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305310:: @ 8305310 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305314:: @ 8305314 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305318:: @ 8305318 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830531C:: @ 830531C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305320:: @ 8305320 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305324:: @ 8305324 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305328:: @ 8305328 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830532C:: @ 830532C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305330:: @ 8305330 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305334:: @ 8305334 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305338:: @ 8305338 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830533C:: @ 830533C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305340:: @ 8305340 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305344:: @ 8305344 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305348:: @ 8305348 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830534C:: @ 830534C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305350:: @ 8305350 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305354:: @ 8305354 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305358:: @ 8305358 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830535C:: @ 830535C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305360:: @ 8305360 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305364:: @ 8305364 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08305368:: @ 8305368 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830536C:: @ 830536C - .4byte gUnknown_083051F8 - .4byte gUnknown_083051FC - .4byte gUnknown_08305200 - .4byte gUnknown_08305204 - .4byte gUnknown_08305208 - .4byte gUnknown_0830520C - .4byte gUnknown_08305210 - .4byte gUnknown_08305214 - .4byte gUnknown_08305218 - .4byte gUnknown_0830521C - .4byte gUnknown_08305220 - .4byte gUnknown_08305224 - .4byte gUnknown_08305228 - .4byte gUnknown_0830522C - .4byte gUnknown_08305230 - .4byte gUnknown_08305234 - .4byte gUnknown_08305238 - .4byte gUnknown_0830523C - .4byte gUnknown_08305240 - .4byte gUnknown_08305244 - .4byte gUnknown_08305248 - .4byte gUnknown_0830524C - .4byte gUnknown_08305250 - .4byte gUnknown_08305254 - .4byte gUnknown_08305258 - .4byte gUnknown_0830525C - .4byte gUnknown_08305260 - .4byte gUnknown_08305264 - .4byte gUnknown_08305268 - .4byte gUnknown_0830526C - .4byte gUnknown_08305270 - .4byte gUnknown_08305274 - .4byte gUnknown_08305278 - .4byte gUnknown_0830527C - .4byte gUnknown_08305280 - .4byte gUnknown_08305284 - .4byte gUnknown_08305288 - .4byte gUnknown_0830528C - .4byte gUnknown_08305290 - .4byte gUnknown_08305294 - .4byte gUnknown_08305298 - .4byte gUnknown_0830529C - .4byte gUnknown_083052A0 - .4byte gUnknown_083052A4 - .4byte gUnknown_083052A8 - .4byte gUnknown_083052AC - .4byte gUnknown_083052B0 - .4byte gUnknown_083052B4 - .4byte gUnknown_083052B8 - .4byte gUnknown_083052BC - .4byte gUnknown_083052C0 - .4byte gUnknown_083052C4 - .4byte gUnknown_083052C8 - .4byte gUnknown_083052CC - .4byte gUnknown_083052D0 - .4byte gUnknown_083052D4 - .4byte gUnknown_083052D8 - .4byte gUnknown_083052DC - .4byte gUnknown_083052E0 - .4byte gUnknown_083052E4 - .4byte gUnknown_083052E8 - .4byte gUnknown_083052EC - .4byte gUnknown_083052F0 - .4byte gUnknown_083052F4 - .4byte gUnknown_083052F8 - .4byte gUnknown_083052FC - .4byte gUnknown_08305300 - .4byte gUnknown_08305304 - .4byte gUnknown_08305308 - .4byte gUnknown_0830530C - .4byte gUnknown_08305310 - .4byte gUnknown_08305314 - .4byte gUnknown_08305318 - .4byte gUnknown_0830531C - .4byte gUnknown_08305320 - .4byte gUnknown_08305324 - .4byte gUnknown_08305328 - .4byte gUnknown_0830532C - .4byte gUnknown_08305330 - .4byte gUnknown_08305334 - .4byte gUnknown_08305338 - .4byte gUnknown_0830533C - .4byte gUnknown_08305340 - .4byte gUnknown_08305344 - .4byte gUnknown_08305348 - .4byte gUnknown_0830534C - .4byte gUnknown_08305350 - .4byte gUnknown_08305354 - .4byte gUnknown_08305358 - .4byte gUnknown_0830535C - .4byte gUnknown_08305360 - .4byte gUnknown_08305364 - .4byte gUnknown_08305368 - -@ 83054E0 - .include "data/graphics/trainers/front_pic_coords.inc" - -@ 8305654 - .include "data/graphics/trainers/front_pic_table.inc" - -@ 830593C - .include "data/graphics/trainers/front_pic_palette_table.inc" - -gUnknown_08305C24:: @ 8305C24 - .2byte 0x0000, 0x0018, 0x0001, 0x0009, 0x0002, 0x0018, 0x0000, 0x0009 - .2byte 0x0003, 0x0032, 0xffff, 0x0000 - - .align 2 -gUnknown_08305C3C:: @ 8305C3C - .2byte 0x0000, 0x0018, 0x0001, 0x0009, 0x0002, 0x0018, 0x0000, 0x0009 - .2byte 0x0003, 0x0032, 0xffff, 0x0000 - - .align 2 -gUnknown_08305C54:: @ 8305C54 - .2byte 0x0000, 0x0018, 0x0001, 0x0009, 0x0002, 0x0018, 0x0000, 0x0009 - .2byte 0x0003, 0x0032, 0xffff, 0x0000 - - .align 2 -gUnknown_08305C6C:: @ 8305C6C - .2byte 0x0001, 0x0014, 0x0002, 0x0006, 0x0003, 0x0006, 0x0004, 0x0018 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_08305C84:: @ 8305C84 - .2byte 0x0001, 0x0014, 0x0002, 0x0006, 0x0003, 0x0006, 0x0004, 0x0018 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_08305C9C:: @ 8305C9C - .2byte 0x0000, 0x0018, 0x0001, 0x0009, 0x0002, 0x0018, 0x0000, 0x0009 - .2byte 0x0003, 0x0032, 0xffff, 0x0000 - - .align 2 -gUnknown_08305CB4:: @ 8305CB4 - .2byte 0x0000, 0x0018, 0x0001, 0x0009, 0x0002, 0x0018, 0x0000, 0x0009 - .2byte 0x0003, 0x0032, 0xffff, 0x0000 - diff --git a/data/graphics/pokemon/back_pic_table.inc b/data/graphics/pokemon/back_pic_table.inc deleted file mode 100644 index b1b477f30f..0000000000 --- a/data/graphics/pokemon/back_pic_table.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonBackPicTable:: @ 83028B8 - obj_tiles gMonBackPic_CircledQuestionMark, 0x800, 0 - obj_tiles gMonBackPic_Bulbasaur, 0x800, 1 - obj_tiles gMonBackPic_Ivysaur, 0x800, 2 - obj_tiles gMonBackPic_Venusaur, 0x800, 3 - obj_tiles gMonBackPic_Charmander, 0x800, 4 - obj_tiles gMonBackPic_Charmeleon, 0x800, 5 - obj_tiles gMonBackPic_Charizard, 0x800, 6 - obj_tiles gMonBackPic_Squirtle, 0x800, 7 - obj_tiles gMonBackPic_Wartortle, 0x800, 8 - obj_tiles gMonBackPic_Blastoise, 0x800, 9 - obj_tiles gMonBackPic_Caterpie, 0x800, 10 - obj_tiles gMonBackPic_Metapod, 0x800, 11 - obj_tiles gMonBackPic_Butterfree, 0x800, 12 - obj_tiles gMonBackPic_Weedle, 0x800, 13 - obj_tiles gMonBackPic_Kakuna, 0x800, 14 - obj_tiles gMonBackPic_Beedrill, 0x800, 15 - obj_tiles gMonBackPic_Pidgey, 0x800, 16 - obj_tiles gMonBackPic_Pidgeotto, 0x800, 17 - obj_tiles gMonBackPic_Pidgeot, 0x800, 18 - obj_tiles gMonBackPic_Rattata, 0x800, 19 - obj_tiles gMonBackPic_Raticate, 0x800, 20 - obj_tiles gMonBackPic_Spearow, 0x800, 21 - obj_tiles gMonBackPic_Fearow, 0x800, 22 - obj_tiles gMonBackPic_Ekans, 0x800, 23 - obj_tiles gMonBackPic_Arbok, 0x800, 24 - obj_tiles gMonBackPic_Pikachu, 0x800, 25 - obj_tiles gMonBackPic_Raichu, 0x800, 26 - obj_tiles gMonBackPic_Sandshrew, 0x800, 27 - obj_tiles gMonBackPic_Sandslash, 0x800, 28 - obj_tiles gMonBackPic_NidoranF, 0x800, 29 - obj_tiles gMonBackPic_Nidorina, 0x800, 30 - obj_tiles gMonBackPic_Nidoqueen, 0x800, 31 - obj_tiles gMonBackPic_NidoranM, 0x800, 32 - obj_tiles gMonBackPic_Nidorino, 0x800, 33 - obj_tiles gMonBackPic_Nidoking, 0x800, 34 - obj_tiles gMonBackPic_Clefairy, 0x800, 35 - obj_tiles gMonBackPic_Clefable, 0x800, 36 - obj_tiles gMonBackPic_Vulpix, 0x800, 37 - obj_tiles gMonBackPic_Ninetales, 0x800, 38 - obj_tiles gMonBackPic_Jigglypuff, 0x800, 39 - obj_tiles gMonBackPic_Wigglytuff, 0x800, 40 - obj_tiles gMonBackPic_Zubat, 0x800, 41 - obj_tiles gMonBackPic_Golbat, 0x800, 42 - obj_tiles gMonBackPic_Oddish, 0x800, 43 - obj_tiles gMonBackPic_Gloom, 0x800, 44 - obj_tiles gMonBackPic_Vileplume, 0x800, 45 - obj_tiles gMonBackPic_Paras, 0x800, 46 - obj_tiles gMonBackPic_Parasect, 0x800, 47 - obj_tiles gMonBackPic_Venonat, 0x800, 48 - obj_tiles gMonBackPic_Venomoth, 0x800, 49 - obj_tiles gMonBackPic_Diglett, 0x800, 50 - obj_tiles gMonBackPic_Dugtrio, 0x800, 51 - obj_tiles gMonBackPic_Meowth, 0x800, 52 - obj_tiles gMonBackPic_Persian, 0x800, 53 - obj_tiles gMonBackPic_Psyduck, 0x800, 54 - obj_tiles gMonBackPic_Golduck, 0x800, 55 - obj_tiles gMonBackPic_Mankey, 0x800, 56 - obj_tiles gMonBackPic_Primeape, 0x800, 57 - obj_tiles gMonBackPic_Growlithe, 0x800, 58 - obj_tiles gMonBackPic_Arcanine, 0x800, 59 - obj_tiles gMonBackPic_Poliwag, 0x800, 60 - obj_tiles gMonBackPic_Poliwhirl, 0x800, 61 - obj_tiles gMonBackPic_Poliwrath, 0x800, 62 - obj_tiles gMonBackPic_Abra, 0x800, 63 - obj_tiles gMonBackPic_Kadabra, 0x800, 64 - obj_tiles gMonBackPic_Alakazam, 0x800, 65 - obj_tiles gMonBackPic_Machop, 0x800, 66 - obj_tiles gMonBackPic_Machoke, 0x800, 67 - obj_tiles gMonBackPic_Machamp, 0x800, 68 - obj_tiles gMonBackPic_Bellsprout, 0x800, 69 - obj_tiles gMonBackPic_Weepinbell, 0x800, 70 - obj_tiles gMonBackPic_Victreebel, 0x800, 71 - obj_tiles gMonBackPic_Tentacool, 0x800, 72 - obj_tiles gMonBackPic_Tentacruel, 0x800, 73 - obj_tiles gMonBackPic_Geodude, 0x800, 74 - obj_tiles gMonBackPic_Graveler, 0x800, 75 - obj_tiles gMonBackPic_Golem, 0x800, 76 - obj_tiles gMonBackPic_Ponyta, 0x800, 77 - obj_tiles gMonBackPic_Rapidash, 0x800, 78 - obj_tiles gMonBackPic_Slowpoke, 0x800, 79 - obj_tiles gMonBackPic_Slowbro, 0x800, 80 - obj_tiles gMonBackPic_Magnemite, 0x800, 81 - obj_tiles gMonBackPic_Magneton, 0x800, 82 - obj_tiles gMonBackPic_Farfetchd, 0x800, 83 - obj_tiles gMonBackPic_Doduo, 0x800, 84 - obj_tiles gMonBackPic_Dodrio, 0x800, 85 - obj_tiles gMonBackPic_Seel, 0x800, 86 - obj_tiles gMonBackPic_Dewgong, 0x800, 87 - obj_tiles gMonBackPic_Grimer, 0x800, 88 - obj_tiles gMonBackPic_Muk, 0x800, 89 - obj_tiles gMonBackPic_Shellder, 0x800, 90 - obj_tiles gMonBackPic_Cloyster, 0x800, 91 - obj_tiles gMonBackPic_Gastly, 0x800, 92 - obj_tiles gMonBackPic_Haunter, 0x800, 93 - obj_tiles gMonBackPic_Gengar, 0x800, 94 - obj_tiles gMonBackPic_Onix, 0x800, 95 - obj_tiles gMonBackPic_Drowzee, 0x800, 96 - obj_tiles gMonBackPic_Hypno, 0x800, 97 - obj_tiles gMonBackPic_Krabby, 0x800, 98 - obj_tiles gMonBackPic_Kingler, 0x800, 99 - obj_tiles gMonBackPic_Voltorb, 0x800, 100 - obj_tiles gMonBackPic_Electrode, 0x800, 101 - obj_tiles gMonBackPic_Exeggcute, 0x800, 102 - obj_tiles gMonBackPic_Exeggutor, 0x800, 103 - obj_tiles gMonBackPic_Cubone, 0x800, 104 - obj_tiles gMonBackPic_Marowak, 0x800, 105 - obj_tiles gMonBackPic_Hitmonlee, 0x800, 106 - obj_tiles gMonBackPic_Hitmonchan, 0x800, 107 - obj_tiles gMonBackPic_Lickitung, 0x800, 108 - obj_tiles gMonBackPic_Koffing, 0x800, 109 - obj_tiles gMonBackPic_Weezing, 0x800, 110 - obj_tiles gMonBackPic_Rhyhorn, 0x800, 111 - obj_tiles gMonBackPic_Rhydon, 0x800, 112 - obj_tiles gMonBackPic_Chansey, 0x800, 113 - obj_tiles gMonBackPic_Tangela, 0x800, 114 - obj_tiles gMonBackPic_Kangaskhan, 0x800, 115 - obj_tiles gMonBackPic_Horsea, 0x800, 116 - obj_tiles gMonBackPic_Seadra, 0x800, 117 - obj_tiles gMonBackPic_Goldeen, 0x800, 118 - obj_tiles gMonBackPic_Seaking, 0x800, 119 - obj_tiles gMonBackPic_Staryu, 0x800, 120 - obj_tiles gMonBackPic_Starmie, 0x800, 121 - obj_tiles gMonBackPic_Mrmime, 0x800, 122 - obj_tiles gMonBackPic_Scyther, 0x800, 123 - obj_tiles gMonBackPic_Jynx, 0x800, 124 - obj_tiles gMonBackPic_Electabuzz, 0x800, 125 - obj_tiles gMonBackPic_Magmar, 0x800, 126 - obj_tiles gMonBackPic_Pinsir, 0x800, 127 - obj_tiles gMonBackPic_Tauros, 0x800, 128 - obj_tiles gMonBackPic_Magikarp, 0x800, 129 - obj_tiles gMonBackPic_Gyarados, 0x800, 130 - obj_tiles gMonBackPic_Lapras, 0x800, 131 - obj_tiles gMonBackPic_Ditto, 0x800, 132 - obj_tiles gMonBackPic_Eevee, 0x800, 133 - obj_tiles gMonBackPic_Vaporeon, 0x800, 134 - obj_tiles gMonBackPic_Jolteon, 0x800, 135 - obj_tiles gMonBackPic_Flareon, 0x800, 136 - obj_tiles gMonBackPic_Porygon, 0x800, 137 - obj_tiles gMonBackPic_Omanyte, 0x800, 138 - obj_tiles gMonBackPic_Omastar, 0x800, 139 - obj_tiles gMonBackPic_Kabuto, 0x800, 140 - obj_tiles gMonBackPic_Kabutops, 0x800, 141 - obj_tiles gMonBackPic_Aerodactyl, 0x800, 142 - obj_tiles gMonBackPic_Snorlax, 0x800, 143 - obj_tiles gMonBackPic_Articuno, 0x800, 144 - obj_tiles gMonBackPic_Zapdos, 0x800, 145 - obj_tiles gMonBackPic_Moltres, 0x800, 146 - obj_tiles gMonBackPic_Dratini, 0x800, 147 - obj_tiles gMonBackPic_Dragonair, 0x800, 148 - obj_tiles gMonBackPic_Dragonite, 0x800, 149 - obj_tiles gMonBackPic_Mewtwo, 0x800, 150 - obj_tiles gMonBackPic_Mew, 0x800, 151 - obj_tiles gMonBackPic_Chikorita, 0x800, 152 - obj_tiles gMonBackPic_Bayleef, 0x800, 153 - obj_tiles gMonBackPic_Meganium, 0x800, 154 - obj_tiles gMonBackPic_Cyndaquil, 0x800, 155 - obj_tiles gMonBackPic_Quilava, 0x800, 156 - obj_tiles gMonBackPic_Typhlosion, 0x800, 157 - obj_tiles gMonBackPic_Totodile, 0x800, 158 - obj_tiles gMonBackPic_Croconaw, 0x800, 159 - obj_tiles gMonBackPic_Feraligatr, 0x800, 160 - obj_tiles gMonBackPic_Sentret, 0x800, 161 - obj_tiles gMonBackPic_Furret, 0x800, 162 - obj_tiles gMonBackPic_Hoothoot, 0x800, 163 - obj_tiles gMonBackPic_Noctowl, 0x800, 164 - obj_tiles gMonBackPic_Ledyba, 0x800, 165 - obj_tiles gMonBackPic_Ledian, 0x800, 166 - obj_tiles gMonBackPic_Spinarak, 0x800, 167 - obj_tiles gMonBackPic_Ariados, 0x800, 168 - obj_tiles gMonBackPic_Crobat, 0x800, 169 - obj_tiles gMonBackPic_Chinchou, 0x800, 170 - obj_tiles gMonBackPic_Lanturn, 0x800, 171 - obj_tiles gMonBackPic_Pichu, 0x800, 172 - obj_tiles gMonBackPic_Cleffa, 0x800, 173 - obj_tiles gMonBackPic_Igglybuff, 0x800, 174 - obj_tiles gMonBackPic_Togepi, 0x800, 175 - obj_tiles gMonBackPic_Togetic, 0x800, 176 - obj_tiles gMonBackPic_Natu, 0x800, 177 - obj_tiles gMonBackPic_Xatu, 0x800, 178 - obj_tiles gMonBackPic_Mareep, 0x800, 179 - obj_tiles gMonBackPic_Flaaffy, 0x800, 180 - obj_tiles gMonBackPic_Ampharos, 0x800, 181 - obj_tiles gMonBackPic_Bellossom, 0x800, 182 - obj_tiles gMonBackPic_Marill, 0x800, 183 - obj_tiles gMonBackPic_Azumarill, 0x800, 184 - obj_tiles gMonBackPic_Sudowoodo, 0x800, 185 - obj_tiles gMonBackPic_Politoed, 0x800, 186 - obj_tiles gMonBackPic_Hoppip, 0x800, 187 - obj_tiles gMonBackPic_Skiploom, 0x800, 188 - obj_tiles gMonBackPic_Jumpluff, 0x800, 189 - obj_tiles gMonBackPic_Aipom, 0x800, 190 - obj_tiles gMonBackPic_Sunkern, 0x800, 191 - obj_tiles gMonBackPic_Sunflora, 0x800, 192 - obj_tiles gMonBackPic_Yanma, 0x800, 193 - obj_tiles gMonBackPic_Wooper, 0x800, 194 - obj_tiles gMonBackPic_Quagsire, 0x800, 195 - obj_tiles gMonBackPic_Espeon, 0x800, 196 - obj_tiles gMonBackPic_Umbreon, 0x800, 197 - obj_tiles gMonBackPic_Murkrow, 0x800, 198 - obj_tiles gMonBackPic_Slowking, 0x800, 199 - obj_tiles gMonBackPic_Misdreavus, 0x800, 200 - obj_tiles gMonBackPic_UnownA, 0x800, 201 - obj_tiles gMonBackPic_Wobbuffet, 0x800, 202 - obj_tiles gMonBackPic_Girafarig, 0x800, 203 - obj_tiles gMonBackPic_Pineco, 0x800, 204 - obj_tiles gMonBackPic_Forretress, 0x800, 205 - obj_tiles gMonBackPic_Dunsparce, 0x800, 206 - obj_tiles gMonBackPic_Gligar, 0x800, 207 - obj_tiles gMonBackPic_Steelix, 0x800, 208 - obj_tiles gMonBackPic_Snubbull, 0x800, 209 - obj_tiles gMonBackPic_Granbull, 0x800, 210 - obj_tiles gMonBackPic_Qwilfish, 0x800, 211 - obj_tiles gMonBackPic_Scizor, 0x800, 212 - obj_tiles gMonBackPic_Shuckle, 0x800, 213 - obj_tiles gMonBackPic_Heracross, 0x800, 214 - obj_tiles gMonBackPic_Sneasel, 0x800, 215 - obj_tiles gMonBackPic_Teddiursa, 0x800, 216 - obj_tiles gMonBackPic_Ursaring, 0x800, 217 - obj_tiles gMonBackPic_Slugma, 0x800, 218 - obj_tiles gMonBackPic_Magcargo, 0x800, 219 - obj_tiles gMonBackPic_Swinub, 0x800, 220 - obj_tiles gMonBackPic_Piloswine, 0x800, 221 - obj_tiles gMonBackPic_Corsola, 0x800, 222 - obj_tiles gMonBackPic_Remoraid, 0x800, 223 - obj_tiles gMonBackPic_Octillery, 0x800, 224 - obj_tiles gMonBackPic_Delibird, 0x800, 225 - obj_tiles gMonBackPic_Mantine, 0x800, 226 - obj_tiles gMonBackPic_Skarmory, 0x800, 227 - obj_tiles gMonBackPic_Houndour, 0x800, 228 - obj_tiles gMonBackPic_Houndoom, 0x800, 229 - obj_tiles gMonBackPic_Kingdra, 0x800, 230 - obj_tiles gMonBackPic_Phanpy, 0x800, 231 - obj_tiles gMonBackPic_Donphan, 0x800, 232 - obj_tiles gMonBackPic_Porygon2, 0x800, 233 - obj_tiles gMonBackPic_Stantler, 0x800, 234 - obj_tiles gMonBackPic_Smeargle, 0x800, 235 - obj_tiles gMonBackPic_Tyrogue, 0x800, 236 - obj_tiles gMonBackPic_Hitmontop, 0x800, 237 - obj_tiles gMonBackPic_Smoochum, 0x800, 238 - obj_tiles gMonBackPic_Elekid, 0x800, 239 - obj_tiles gMonBackPic_Magby, 0x800, 240 - obj_tiles gMonBackPic_Miltank, 0x800, 241 - obj_tiles gMonBackPic_Blissey, 0x800, 242 - obj_tiles gMonBackPic_Raikou, 0x800, 243 - obj_tiles gMonBackPic_Entei, 0x800, 244 - obj_tiles gMonBackPic_Suicune, 0x800, 245 - obj_tiles gMonBackPic_Larvitar, 0x800, 246 - obj_tiles gMonBackPic_Pupitar, 0x800, 247 - obj_tiles gMonBackPic_Tyranitar, 0x800, 248 - obj_tiles gMonBackPic_Lugia, 0x800, 249 - obj_tiles gMonBackPic_HoOh, 0x800, 250 - obj_tiles gMonBackPic_Celebi, 0x800, 251 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 252 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 253 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 254 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 255 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 256 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 257 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 258 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 259 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 260 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 261 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 262 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 263 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 264 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 265 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 266 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 267 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 268 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 269 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 270 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 271 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 272 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 273 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 274 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 275 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 276 - obj_tiles gMonBackPic_Treecko, 0x800, 277 - obj_tiles gMonBackPic_Grovyle, 0x800, 278 - obj_tiles gMonBackPic_Sceptile, 0x800, 279 - obj_tiles gMonBackPic_Torchic, 0x800, 280 - obj_tiles gMonBackPic_Combusken, 0x800, 281 - obj_tiles gMonBackPic_Blaziken, 0x800, 282 - obj_tiles gMonBackPic_Mudkip, 0x800, 283 - obj_tiles gMonBackPic_Marshtomp, 0x800, 284 - obj_tiles gMonBackPic_Swampert, 0x800, 285 - obj_tiles gMonBackPic_Poochyena, 0x800, 286 - obj_tiles gMonBackPic_Mightyena, 0x800, 287 - obj_tiles gMonBackPic_Zigzagoon, 0x800, 288 - obj_tiles gMonBackPic_Linoone, 0x800, 289 - obj_tiles gMonBackPic_Wurmple, 0x800, 290 - obj_tiles gMonBackPic_Silcoon, 0x800, 291 - obj_tiles gMonBackPic_Beautifly, 0x800, 292 - obj_tiles gMonBackPic_Cascoon, 0x800, 293 - obj_tiles gMonBackPic_Dustox, 0x800, 294 - obj_tiles gMonBackPic_Lotad, 0x800, 295 - obj_tiles gMonBackPic_Lombre, 0x800, 296 - obj_tiles gMonBackPic_Ludicolo, 0x800, 297 - obj_tiles gMonBackPic_Seedot, 0x800, 298 - obj_tiles gMonBackPic_Nuzleaf, 0x800, 299 - obj_tiles gMonBackPic_Shiftry, 0x800, 300 - obj_tiles gMonBackPic_Nincada, 0x800, 301 - obj_tiles gMonBackPic_Ninjask, 0x800, 302 - obj_tiles gMonBackPic_Shedinja, 0x800, 303 - obj_tiles gMonBackPic_Taillow, 0x800, 304 - obj_tiles gMonBackPic_Swellow, 0x800, 305 - obj_tiles gMonBackPic_Shroomish, 0x800, 306 - obj_tiles gMonBackPic_Breloom, 0x800, 307 - obj_tiles gMonBackPic_Spinda, 0x800, 308 - obj_tiles gMonBackPic_Wingull, 0x800, 309 - obj_tiles gMonBackPic_Pelipper, 0x800, 310 - obj_tiles gMonBackPic_Surskit, 0x800, 311 - obj_tiles gMonBackPic_Masquerain, 0x800, 312 - obj_tiles gMonBackPic_Wailmer, 0x800, 313 - obj_tiles gMonBackPic_Wailord, 0x800, 314 - obj_tiles gMonBackPic_Skitty, 0x800, 315 - obj_tiles gMonBackPic_Delcatty, 0x800, 316 - obj_tiles gMonBackPic_Kecleon, 0x800, 317 - obj_tiles gMonBackPic_Baltoy, 0x800, 318 - obj_tiles gMonBackPic_Claydol, 0x800, 319 - obj_tiles gMonBackPic_Nosepass, 0x800, 320 - obj_tiles gMonBackPic_Torkoal, 0x800, 321 - obj_tiles gMonBackPic_Sableye, 0x800, 322 - obj_tiles gMonBackPic_Barboach, 0x800, 323 - obj_tiles gMonBackPic_Whiscash, 0x800, 324 - obj_tiles gMonBackPic_Luvdisc, 0x800, 325 - obj_tiles gMonBackPic_Corphish, 0x800, 326 - obj_tiles gMonBackPic_Crawdaunt, 0x800, 327 - obj_tiles gMonBackPic_Feebas, 0x800, 328 - obj_tiles gMonBackPic_Milotic, 0x800, 329 - obj_tiles gMonBackPic_Carvanha, 0x800, 330 - obj_tiles gMonBackPic_Sharpedo, 0x800, 331 - obj_tiles gMonBackPic_Trapinch, 0x800, 332 - obj_tiles gMonBackPic_Vibrava, 0x800, 333 - obj_tiles gMonBackPic_Flygon, 0x800, 334 - obj_tiles gMonBackPic_Makuhita, 0x800, 335 - obj_tiles gMonBackPic_Hariyama, 0x800, 336 - obj_tiles gMonBackPic_Electrike, 0x800, 337 - obj_tiles gMonBackPic_Manectric, 0x800, 338 - obj_tiles gMonBackPic_Numel, 0x800, 339 - obj_tiles gMonBackPic_Camerupt, 0x800, 340 - obj_tiles gMonBackPic_Spheal, 0x800, 341 - obj_tiles gMonBackPic_Sealeo, 0x800, 342 - obj_tiles gMonBackPic_Walrein, 0x800, 343 - obj_tiles gMonBackPic_Cacnea, 0x800, 344 - obj_tiles gMonBackPic_Cacturne, 0x800, 345 - obj_tiles gMonBackPic_Snorunt, 0x800, 346 - obj_tiles gMonBackPic_Glalie, 0x800, 347 - obj_tiles gMonBackPic_Lunatone, 0x800, 348 - obj_tiles gMonBackPic_Solrock, 0x800, 349 - obj_tiles gMonBackPic_Azurill, 0x800, 350 - obj_tiles gMonBackPic_Spoink, 0x800, 351 - obj_tiles gMonBackPic_Grumpig, 0x800, 352 - obj_tiles gMonBackPic_Plusle, 0x800, 353 - obj_tiles gMonBackPic_Minun, 0x800, 354 - obj_tiles gMonBackPic_Mawile, 0x800, 355 - obj_tiles gMonBackPic_Meditite, 0x800, 356 - obj_tiles gMonBackPic_Medicham, 0x800, 357 - obj_tiles gMonBackPic_Swablu, 0x800, 358 - obj_tiles gMonBackPic_Altaria, 0x800, 359 - obj_tiles gMonBackPic_Wynaut, 0x800, 360 - obj_tiles gMonBackPic_Duskull, 0x800, 361 - obj_tiles gMonBackPic_Dusclops, 0x800, 362 - obj_tiles gMonBackPic_Roselia, 0x800, 363 - obj_tiles gMonBackPic_Slakoth, 0x800, 364 - obj_tiles gMonBackPic_Vigoroth, 0x800, 365 - obj_tiles gMonBackPic_Slaking, 0x800, 366 - obj_tiles gMonBackPic_Gulpin, 0x800, 367 - obj_tiles gMonBackPic_Swalot, 0x800, 368 - obj_tiles gMonBackPic_Tropius, 0x800, 369 - obj_tiles gMonBackPic_Whismur, 0x800, 370 - obj_tiles gMonBackPic_Loudred, 0x800, 371 - obj_tiles gMonBackPic_Exploud, 0x800, 372 - obj_tiles gMonBackPic_Clamperl, 0x800, 373 - obj_tiles gMonBackPic_Huntail, 0x800, 374 - obj_tiles gMonBackPic_Gorebyss, 0x800, 375 - obj_tiles gMonBackPic_Absol, 0x800, 376 - obj_tiles gMonBackPic_Shuppet, 0x800, 377 - obj_tiles gMonBackPic_Banette, 0x800, 378 - obj_tiles gMonBackPic_Seviper, 0x800, 379 - obj_tiles gMonBackPic_Zangoose, 0x800, 380 - obj_tiles gMonBackPic_Relicanth, 0x800, 381 - obj_tiles gMonBackPic_Aron, 0x800, 382 - obj_tiles gMonBackPic_Lairon, 0x800, 383 - obj_tiles gMonBackPic_Aggron, 0x800, 384 - obj_tiles gMonBackPic_Castform, 0x800, 385 - obj_tiles gMonBackPic_Volbeat, 0x800, 386 - obj_tiles gMonBackPic_Illumise, 0x800, 387 - obj_tiles gMonBackPic_Lileep, 0x800, 388 - obj_tiles gMonBackPic_Cradily, 0x800, 389 - obj_tiles gMonBackPic_Anorith, 0x800, 390 - obj_tiles gMonBackPic_Armaldo, 0x800, 391 - obj_tiles gMonBackPic_Ralts, 0x800, 392 - obj_tiles gMonBackPic_Kirlia, 0x800, 393 - obj_tiles gMonBackPic_Gardevoir, 0x800, 394 - obj_tiles gMonBackPic_Bagon, 0x800, 395 - obj_tiles gMonBackPic_Shelgon, 0x800, 396 - obj_tiles gMonBackPic_Salamence, 0x800, 397 - obj_tiles gMonBackPic_Beldum, 0x800, 398 - obj_tiles gMonBackPic_Metang, 0x800, 399 - obj_tiles gMonBackPic_Metagross, 0x800, 400 - obj_tiles gMonBackPic_Regirock, 0x800, 401 - obj_tiles gMonBackPic_Regice, 0x800, 402 - obj_tiles gMonBackPic_Registeel, 0x800, 403 - obj_tiles gMonBackPic_Kyogre, 0x800, 404 - obj_tiles gMonBackPic_Groudon, 0x800, 405 - obj_tiles gMonBackPic_Rayquaza, 0x800, 406 - obj_tiles gMonBackPic_Latias, 0x800, 407 - obj_tiles gMonBackPic_Latios, 0x800, 408 - obj_tiles gMonBackPic_Jirachi, 0x800, 409 - obj_tiles gMonBackPic_Deoxys, 0x800, 410 - obj_tiles gMonBackPic_Chimecho, 0x800, 411 - obj_tiles gMonStillFrontPic_Egg, 0x800, 412 - obj_tiles gMonBackPic_UnownB, 0x800, 413 - obj_tiles gMonBackPic_UnownC, 0x800, 414 - obj_tiles gMonBackPic_UnownD, 0x800, 415 - obj_tiles gMonBackPic_UnownE, 0x800, 416 - obj_tiles gMonBackPic_UnownF, 0x800, 417 - obj_tiles gMonBackPic_UnownG, 0x800, 418 - obj_tiles gMonBackPic_UnownH, 0x800, 419 - obj_tiles gMonBackPic_UnownI, 0x800, 420 - obj_tiles gMonBackPic_UnownJ, 0x800, 421 - obj_tiles gMonBackPic_UnownK, 0x800, 422 - obj_tiles gMonBackPic_UnownL, 0x800, 423 - obj_tiles gMonBackPic_UnownM, 0x800, 424 - obj_tiles gMonBackPic_UnownN, 0x800, 425 - obj_tiles gMonBackPic_UnownO, 0x800, 426 - obj_tiles gMonBackPic_UnownP, 0x800, 427 - obj_tiles gMonBackPic_UnownQ, 0x800, 428 - obj_tiles gMonBackPic_UnownR, 0x800, 429 - obj_tiles gMonBackPic_UnownS, 0x800, 430 - obj_tiles gMonBackPic_UnownT, 0x800, 431 - obj_tiles gMonBackPic_UnownU, 0x800, 432 - obj_tiles gMonBackPic_UnownV, 0x800, 433 - obj_tiles gMonBackPic_UnownW, 0x800, 434 - obj_tiles gMonBackPic_UnownX, 0x800, 435 - obj_tiles gMonBackPic_UnownY, 0x800, 436 - obj_tiles gMonBackPic_UnownZ, 0x800, 437 - obj_tiles gMonBackPic_UnownExclamationMark, 0x800, 438 - obj_tiles gMonBackPic_UnownQuestionMark, 0x800, 439 diff --git a/data/graphics/pokemon/palette_table.inc b/data/graphics/pokemon/palette_table.inc deleted file mode 100644 index d636d13ec1..0000000000 --- a/data/graphics/pokemon/palette_table.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonPaletteTable:: @ 8303678 - obj_pal gMonPalette_CircledQuestionMark, 0 - obj_pal gMonPalette_Bulbasaur, 1 - obj_pal gMonPalette_Ivysaur, 2 - obj_pal gMonPalette_Venusaur, 3 - obj_pal gMonPalette_Charmander, 4 - obj_pal gMonPalette_Charmeleon, 5 - obj_pal gMonPalette_Charizard, 6 - obj_pal gMonPalette_Squirtle, 7 - obj_pal gMonPalette_Wartortle, 8 - obj_pal gMonPalette_Blastoise, 9 - obj_pal gMonPalette_Caterpie, 10 - obj_pal gMonPalette_Metapod, 11 - obj_pal gMonPalette_Butterfree, 12 - obj_pal gMonPalette_Weedle, 13 - obj_pal gMonPalette_Kakuna, 14 - obj_pal gMonPalette_Beedrill, 15 - obj_pal gMonPalette_Pidgey, 16 - obj_pal gMonPalette_Pidgeotto, 17 - obj_pal gMonPalette_Pidgeot, 18 - obj_pal gMonPalette_Rattata, 19 - obj_pal gMonPalette_Raticate, 20 - obj_pal gMonPalette_Spearow, 21 - obj_pal gMonPalette_Fearow, 22 - obj_pal gMonPalette_Ekans, 23 - obj_pal gMonPalette_Arbok, 24 - obj_pal gMonPalette_Pikachu, 25 - obj_pal gMonPalette_Raichu, 26 - obj_pal gMonPalette_Sandshrew, 27 - obj_pal gMonPalette_Sandslash, 28 - obj_pal gMonPalette_NidoranF, 29 - obj_pal gMonPalette_Nidorina, 30 - obj_pal gMonPalette_Nidoqueen, 31 - obj_pal gMonPalette_NidoranM, 32 - obj_pal gMonPalette_Nidorino, 33 - obj_pal gMonPalette_Nidoking, 34 - obj_pal gMonPalette_Clefairy, 35 - obj_pal gMonPalette_Clefable, 36 - obj_pal gMonPalette_Vulpix, 37 - obj_pal gMonPalette_Ninetales, 38 - obj_pal gMonPalette_Jigglypuff, 39 - obj_pal gMonPalette_Wigglytuff, 40 - obj_pal gMonPalette_Zubat, 41 - obj_pal gMonPalette_Golbat, 42 - obj_pal gMonPalette_Oddish, 43 - obj_pal gMonPalette_Gloom, 44 - obj_pal gMonPalette_Vileplume, 45 - obj_pal gMonPalette_Paras, 46 - obj_pal gMonPalette_Parasect, 47 - obj_pal gMonPalette_Venonat, 48 - obj_pal gMonPalette_Venomoth, 49 - obj_pal gMonPalette_Diglett, 50 - obj_pal gMonPalette_Dugtrio, 51 - obj_pal gMonPalette_Meowth, 52 - obj_pal gMonPalette_Persian, 53 - obj_pal gMonPalette_Psyduck, 54 - obj_pal gMonPalette_Golduck, 55 - obj_pal gMonPalette_Mankey, 56 - obj_pal gMonPalette_Primeape, 57 - obj_pal gMonPalette_Growlithe, 58 - obj_pal gMonPalette_Arcanine, 59 - obj_pal gMonPalette_Poliwag, 60 - obj_pal gMonPalette_Poliwhirl, 61 - obj_pal gMonPalette_Poliwrath, 62 - obj_pal gMonPalette_Abra, 63 - obj_pal gMonPalette_Kadabra, 64 - obj_pal gMonPalette_Alakazam, 65 - obj_pal gMonPalette_Machop, 66 - obj_pal gMonPalette_Machoke, 67 - obj_pal gMonPalette_Machamp, 68 - obj_pal gMonPalette_Bellsprout, 69 - obj_pal gMonPalette_Weepinbell, 70 - obj_pal gMonPalette_Victreebel, 71 - obj_pal gMonPalette_Tentacool, 72 - obj_pal gMonPalette_Tentacruel, 73 - obj_pal gMonPalette_Geodude, 74 - obj_pal gMonPalette_Graveler, 75 - obj_pal gMonPalette_Golem, 76 - obj_pal gMonPalette_Ponyta, 77 - obj_pal gMonPalette_Rapidash, 78 - obj_pal gMonPalette_Slowpoke, 79 - obj_pal gMonPalette_Slowbro, 80 - obj_pal gMonPalette_Magnemite, 81 - obj_pal gMonPalette_Magneton, 82 - obj_pal gMonPalette_Farfetchd, 83 - obj_pal gMonPalette_Doduo, 84 - obj_pal gMonPalette_Dodrio, 85 - obj_pal gMonPalette_Seel, 86 - obj_pal gMonPalette_Dewgong, 87 - obj_pal gMonPalette_Grimer, 88 - obj_pal gMonPalette_Muk, 89 - obj_pal gMonPalette_Shellder, 90 - obj_pal gMonPalette_Cloyster, 91 - obj_pal gMonPalette_Gastly, 92 - obj_pal gMonPalette_Haunter, 93 - obj_pal gMonPalette_Gengar, 94 - obj_pal gMonPalette_Onix, 95 - obj_pal gMonPalette_Drowzee, 96 - obj_pal gMonPalette_Hypno, 97 - obj_pal gMonPalette_Krabby, 98 - obj_pal gMonPalette_Kingler, 99 - obj_pal gMonPalette_Voltorb, 100 - obj_pal gMonPalette_Electrode, 101 - obj_pal gMonPalette_Exeggcute, 102 - obj_pal gMonPalette_Exeggutor, 103 - obj_pal gMonPalette_Cubone, 104 - obj_pal gMonPalette_Marowak, 105 - obj_pal gMonPalette_Hitmonlee, 106 - obj_pal gMonPalette_Hitmonchan, 107 - obj_pal gMonPalette_Lickitung, 108 - obj_pal gMonPalette_Koffing, 109 - obj_pal gMonPalette_Weezing, 110 - obj_pal gMonPalette_Rhyhorn, 111 - obj_pal gMonPalette_Rhydon, 112 - obj_pal gMonPalette_Chansey, 113 - obj_pal gMonPalette_Tangela, 114 - obj_pal gMonPalette_Kangaskhan, 115 - obj_pal gMonPalette_Horsea, 116 - obj_pal gMonPalette_Seadra, 117 - obj_pal gMonPalette_Goldeen, 118 - obj_pal gMonPalette_Seaking, 119 - obj_pal gMonPalette_Staryu, 120 - obj_pal gMonPalette_Starmie, 121 - obj_pal gMonPalette_Mrmime, 122 - obj_pal gMonPalette_Scyther, 123 - obj_pal gMonPalette_Jynx, 124 - obj_pal gMonPalette_Electabuzz, 125 - obj_pal gMonPalette_Magmar, 126 - obj_pal gMonPalette_Pinsir, 127 - obj_pal gMonPalette_Tauros, 128 - obj_pal gMonPalette_Magikarp, 129 - obj_pal gMonPalette_Gyarados, 130 - obj_pal gMonPalette_Lapras, 131 - obj_pal gMonPalette_Ditto, 132 - obj_pal gMonPalette_Eevee, 133 - obj_pal gMonPalette_Vaporeon, 134 - obj_pal gMonPalette_Jolteon, 135 - obj_pal gMonPalette_Flareon, 136 - obj_pal gMonPalette_Porygon, 137 - obj_pal gMonPalette_Omanyte, 138 - obj_pal gMonPalette_Omastar, 139 - obj_pal gMonPalette_Kabuto, 140 - obj_pal gMonPalette_Kabutops, 141 - obj_pal gMonPalette_Aerodactyl, 142 - obj_pal gMonPalette_Snorlax, 143 - obj_pal gMonPalette_Articuno, 144 - obj_pal gMonPalette_Zapdos, 145 - obj_pal gMonPalette_Moltres, 146 - obj_pal gMonPalette_Dratini, 147 - obj_pal gMonPalette_Dragonair, 148 - obj_pal gMonPalette_Dragonite, 149 - obj_pal gMonPalette_Mewtwo, 150 - obj_pal gMonPalette_Mew, 151 - obj_pal gMonPalette_Chikorita, 152 - obj_pal gMonPalette_Bayleef, 153 - obj_pal gMonPalette_Meganium, 154 - obj_pal gMonPalette_Cyndaquil, 155 - obj_pal gMonPalette_Quilava, 156 - obj_pal gMonPalette_Typhlosion, 157 - obj_pal gMonPalette_Totodile, 158 - obj_pal gMonPalette_Croconaw, 159 - obj_pal gMonPalette_Feraligatr, 160 - obj_pal gMonPalette_Sentret, 161 - obj_pal gMonPalette_Furret, 162 - obj_pal gMonPalette_Hoothoot, 163 - obj_pal gMonPalette_Noctowl, 164 - obj_pal gMonPalette_Ledyba, 165 - obj_pal gMonPalette_Ledian, 166 - obj_pal gMonPalette_Spinarak, 167 - obj_pal gMonPalette_Ariados, 168 - obj_pal gMonPalette_Crobat, 169 - obj_pal gMonPalette_Chinchou, 170 - obj_pal gMonPalette_Lanturn, 171 - obj_pal gMonPalette_Pichu, 172 - obj_pal gMonPalette_Cleffa, 173 - obj_pal gMonPalette_Igglybuff, 174 - obj_pal gMonPalette_Togepi, 175 - obj_pal gMonPalette_Togetic, 176 - obj_pal gMonPalette_Natu, 177 - obj_pal gMonPalette_Xatu, 178 - obj_pal gMonPalette_Mareep, 179 - obj_pal gMonPalette_Flaaffy, 180 - obj_pal gMonPalette_Ampharos, 181 - obj_pal gMonPalette_Bellossom, 182 - obj_pal gMonPalette_Marill, 183 - obj_pal gMonPalette_Azumarill, 184 - obj_pal gMonPalette_Sudowoodo, 185 - obj_pal gMonPalette_Politoed, 186 - obj_pal gMonPalette_Hoppip, 187 - obj_pal gMonPalette_Skiploom, 188 - obj_pal gMonPalette_Jumpluff, 189 - obj_pal gMonPalette_Aipom, 190 - obj_pal gMonPalette_Sunkern, 191 - obj_pal gMonPalette_Sunflora, 192 - obj_pal gMonPalette_Yanma, 193 - obj_pal gMonPalette_Wooper, 194 - obj_pal gMonPalette_Quagsire, 195 - obj_pal gMonPalette_Espeon, 196 - obj_pal gMonPalette_Umbreon, 197 - obj_pal gMonPalette_Murkrow, 198 - obj_pal gMonPalette_Slowking, 199 - obj_pal gMonPalette_Misdreavus, 200 - obj_pal gMonPalette_Unown, 201 - obj_pal gMonPalette_Wobbuffet, 202 - obj_pal gMonPalette_Girafarig, 203 - obj_pal gMonPalette_Pineco, 204 - obj_pal gMonPalette_Forretress, 205 - obj_pal gMonPalette_Dunsparce, 206 - obj_pal gMonPalette_Gligar, 207 - obj_pal gMonPalette_Steelix, 208 - obj_pal gMonPalette_Snubbull, 209 - obj_pal gMonPalette_Granbull, 210 - obj_pal gMonPalette_Qwilfish, 211 - obj_pal gMonPalette_Scizor, 212 - obj_pal gMonPalette_Shuckle, 213 - obj_pal gMonPalette_Heracross, 214 - obj_pal gMonPalette_Sneasel, 215 - obj_pal gMonPalette_Teddiursa, 216 - obj_pal gMonPalette_Ursaring, 217 - obj_pal gMonPalette_Slugma, 218 - obj_pal gMonPalette_Magcargo, 219 - obj_pal gMonPalette_Swinub, 220 - obj_pal gMonPalette_Piloswine, 221 - obj_pal gMonPalette_Corsola, 222 - obj_pal gMonPalette_Remoraid, 223 - obj_pal gMonPalette_Octillery, 224 - obj_pal gMonPalette_Delibird, 225 - obj_pal gMonPalette_Mantine, 226 - obj_pal gMonPalette_Skarmory, 227 - obj_pal gMonPalette_Houndour, 228 - obj_pal gMonPalette_Houndoom, 229 - obj_pal gMonPalette_Kingdra, 230 - obj_pal gMonPalette_Phanpy, 231 - obj_pal gMonPalette_Donphan, 232 - obj_pal gMonPalette_Porygon2, 233 - obj_pal gMonPalette_Stantler, 234 - obj_pal gMonPalette_Smeargle, 235 - obj_pal gMonPalette_Tyrogue, 236 - obj_pal gMonPalette_Hitmontop, 237 - obj_pal gMonPalette_Smoochum, 238 - obj_pal gMonPalette_Elekid, 239 - obj_pal gMonPalette_Magby, 240 - obj_pal gMonPalette_Miltank, 241 - obj_pal gMonPalette_Blissey, 242 - obj_pal gMonPalette_Raikou, 243 - obj_pal gMonPalette_Entei, 244 - obj_pal gMonPalette_Suicune, 245 - obj_pal gMonPalette_Larvitar, 246 - obj_pal gMonPalette_Pupitar, 247 - obj_pal gMonPalette_Tyranitar, 248 - obj_pal gMonPalette_Lugia, 249 - obj_pal gMonPalette_HoOh, 250 - obj_pal gMonPalette_Celebi, 251 - obj_pal gMonPalette_DoubleQuestionMark, 252 - obj_pal gMonPalette_DoubleQuestionMark, 253 - obj_pal gMonPalette_DoubleQuestionMark, 254 - obj_pal gMonPalette_DoubleQuestionMark, 255 - obj_pal gMonPalette_DoubleQuestionMark, 256 - obj_pal gMonPalette_DoubleQuestionMark, 257 - obj_pal gMonPalette_DoubleQuestionMark, 258 - obj_pal gMonPalette_DoubleQuestionMark, 259 - obj_pal gMonPalette_DoubleQuestionMark, 260 - obj_pal gMonPalette_DoubleQuestionMark, 261 - obj_pal gMonPalette_DoubleQuestionMark, 262 - obj_pal gMonPalette_DoubleQuestionMark, 263 - obj_pal gMonPalette_DoubleQuestionMark, 264 - obj_pal gMonPalette_DoubleQuestionMark, 265 - obj_pal gMonPalette_DoubleQuestionMark, 266 - obj_pal gMonPalette_DoubleQuestionMark, 267 - obj_pal gMonPalette_DoubleQuestionMark, 268 - obj_pal gMonPalette_DoubleQuestionMark, 269 - obj_pal gMonPalette_DoubleQuestionMark, 270 - obj_pal gMonPalette_DoubleQuestionMark, 271 - obj_pal gMonPalette_DoubleQuestionMark, 272 - obj_pal gMonPalette_DoubleQuestionMark, 273 - obj_pal gMonPalette_DoubleQuestionMark, 274 - obj_pal gMonPalette_DoubleQuestionMark, 275 - obj_pal gMonPalette_DoubleQuestionMark, 276 - obj_pal gMonPalette_Treecko, 277 - obj_pal gMonPalette_Grovyle, 278 - obj_pal gMonPalette_Sceptile, 279 - obj_pal gMonPalette_Torchic, 280 - obj_pal gMonPalette_Combusken, 281 - obj_pal gMonPalette_Blaziken, 282 - obj_pal gMonPalette_Mudkip, 283 - obj_pal gMonPalette_Marshtomp, 284 - obj_pal gMonPalette_Swampert, 285 - obj_pal gMonPalette_Poochyena, 286 - obj_pal gMonPalette_Mightyena, 287 - obj_pal gMonPalette_Zigzagoon, 288 - obj_pal gMonPalette_Linoone, 289 - obj_pal gMonPalette_Wurmple, 290 - obj_pal gMonPalette_Silcoon, 291 - obj_pal gMonPalette_Beautifly, 292 - obj_pal gMonPalette_Cascoon, 293 - obj_pal gMonPalette_Dustox, 294 - obj_pal gMonPalette_Lotad, 295 - obj_pal gMonPalette_Lombre, 296 - obj_pal gMonPalette_Ludicolo, 297 - obj_pal gMonPalette_Seedot, 298 - obj_pal gMonPalette_Nuzleaf, 299 - obj_pal gMonPalette_Shiftry, 300 - obj_pal gMonPalette_Nincada, 301 - obj_pal gMonPalette_Ninjask, 302 - obj_pal gMonPalette_Shedinja, 303 - obj_pal gMonPalette_Taillow, 304 - obj_pal gMonPalette_Swellow, 305 - obj_pal gMonPalette_Shroomish, 306 - obj_pal gMonPalette_Breloom, 307 - obj_pal gMonPalette_Spinda, 308 - obj_pal gMonPalette_Wingull, 309 - obj_pal gMonPalette_Pelipper, 310 - obj_pal gMonPalette_Surskit, 311 - obj_pal gMonPalette_Masquerain, 312 - obj_pal gMonPalette_Wailmer, 313 - obj_pal gMonPalette_Wailord, 314 - obj_pal gMonPalette_Skitty, 315 - obj_pal gMonPalette_Delcatty, 316 - obj_pal gMonPalette_Kecleon, 317 - obj_pal gMonPalette_Baltoy, 318 - obj_pal gMonPalette_Claydol, 319 - obj_pal gMonPalette_Nosepass, 320 - obj_pal gMonPalette_Torkoal, 321 - obj_pal gMonPalette_Sableye, 322 - obj_pal gMonPalette_Barboach, 323 - obj_pal gMonPalette_Whiscash, 324 - obj_pal gMonPalette_Luvdisc, 325 - obj_pal gMonPalette_Corphish, 326 - obj_pal gMonPalette_Crawdaunt, 327 - obj_pal gMonPalette_Feebas, 328 - obj_pal gMonPalette_Milotic, 329 - obj_pal gMonPalette_Carvanha, 330 - obj_pal gMonPalette_Sharpedo, 331 - obj_pal gMonPalette_Trapinch, 332 - obj_pal gMonPalette_Vibrava, 333 - obj_pal gMonPalette_Flygon, 334 - obj_pal gMonPalette_Makuhita, 335 - obj_pal gMonPalette_Hariyama, 336 - obj_pal gMonPalette_Electrike, 337 - obj_pal gMonPalette_Manectric, 338 - obj_pal gMonPalette_Numel, 339 - obj_pal gMonPalette_Camerupt, 340 - obj_pal gMonPalette_Spheal, 341 - obj_pal gMonPalette_Sealeo, 342 - obj_pal gMonPalette_Walrein, 343 - obj_pal gMonPalette_Cacnea, 344 - obj_pal gMonPalette_Cacturne, 345 - obj_pal gMonPalette_Snorunt, 346 - obj_pal gMonPalette_Glalie, 347 - obj_pal gMonPalette_Lunatone, 348 - obj_pal gMonPalette_Solrock, 349 - obj_pal gMonPalette_Azurill, 350 - obj_pal gMonPalette_Spoink, 351 - obj_pal gMonPalette_Grumpig, 352 - obj_pal gMonPalette_Plusle, 353 - obj_pal gMonPalette_Minun, 354 - obj_pal gMonPalette_Mawile, 355 - obj_pal gMonPalette_Meditite, 356 - obj_pal gMonPalette_Medicham, 357 - obj_pal gMonPalette_Swablu, 358 - obj_pal gMonPalette_Altaria, 359 - obj_pal gMonPalette_Wynaut, 360 - obj_pal gMonPalette_Duskull, 361 - obj_pal gMonPalette_Dusclops, 362 - obj_pal gMonPalette_Roselia, 363 - obj_pal gMonPalette_Slakoth, 364 - obj_pal gMonPalette_Vigoroth, 365 - obj_pal gMonPalette_Slaking, 366 - obj_pal gMonPalette_Gulpin, 367 - obj_pal gMonPalette_Swalot, 368 - obj_pal gMonPalette_Tropius, 369 - obj_pal gMonPalette_Whismur, 370 - obj_pal gMonPalette_Loudred, 371 - obj_pal gMonPalette_Exploud, 372 - obj_pal gMonPalette_Clamperl, 373 - obj_pal gMonPalette_Huntail, 374 - obj_pal gMonPalette_Gorebyss, 375 - obj_pal gMonPalette_Absol, 376 - obj_pal gMonPalette_Shuppet, 377 - obj_pal gMonPalette_Banette, 378 - obj_pal gMonPalette_Seviper, 379 - obj_pal gMonPalette_Zangoose, 380 - obj_pal gMonPalette_Relicanth, 381 - obj_pal gMonPalette_Aron, 382 - obj_pal gMonPalette_Lairon, 383 - obj_pal gMonPalette_Aggron, 384 - obj_pal gMonPalette_Castform, 385 - obj_pal gMonPalette_Volbeat, 386 - obj_pal gMonPalette_Illumise, 387 - obj_pal gMonPalette_Lileep, 388 - obj_pal gMonPalette_Cradily, 389 - obj_pal gMonPalette_Anorith, 390 - obj_pal gMonPalette_Armaldo, 391 - obj_pal gMonPalette_Ralts, 392 - obj_pal gMonPalette_Kirlia, 393 - obj_pal gMonPalette_Gardevoir, 394 - obj_pal gMonPalette_Bagon, 395 - obj_pal gMonPalette_Shelgon, 396 - obj_pal gMonPalette_Salamence, 397 - obj_pal gMonPalette_Beldum, 398 - obj_pal gMonPalette_Metang, 399 - obj_pal gMonPalette_Metagross, 400 - obj_pal gMonPalette_Regirock, 401 - obj_pal gMonPalette_Regice, 402 - obj_pal gMonPalette_Registeel, 403 - obj_pal gMonPalette_Kyogre, 404 - obj_pal gMonPalette_Groudon, 405 - obj_pal gMonPalette_Rayquaza, 406 - obj_pal gMonPalette_Latias, 407 - obj_pal gMonPalette_Latios, 408 - obj_pal gMonPalette_Jirachi, 409 - obj_pal gMonPalette_Deoxys, 410 - obj_pal gMonPalette_Chimecho, 411 - obj_pal gMonPalette_Egg, 412 - obj_pal gMonPalette_Unown, 413 - obj_pal gMonPalette_Unown, 414 - obj_pal gMonPalette_Unown, 415 - obj_pal gMonPalette_Unown, 416 - obj_pal gMonPalette_Unown, 417 - obj_pal gMonPalette_Unown, 418 - obj_pal gMonPalette_Unown, 419 - obj_pal gMonPalette_Unown, 420 - obj_pal gMonPalette_Unown, 421 - obj_pal gMonPalette_Unown, 422 - obj_pal gMonPalette_Unown, 423 - obj_pal gMonPalette_Unown, 424 - obj_pal gMonPalette_Unown, 425 - obj_pal gMonPalette_Unown, 426 - obj_pal gMonPalette_Unown, 427 - obj_pal gMonPalette_Unown, 428 - obj_pal gMonPalette_Unown, 429 - obj_pal gMonPalette_Unown, 430 - obj_pal gMonPalette_Unown, 431 - obj_pal gMonPalette_Unown, 432 - obj_pal gMonPalette_Unown, 433 - obj_pal gMonPalette_Unown, 434 - obj_pal gMonPalette_Unown, 435 - obj_pal gMonPalette_Unown, 436 - obj_pal gMonPalette_Unown, 437 - obj_pal gMonPalette_Unown, 438 - obj_pal gMonPalette_Unown, 439 diff --git a/data/graphics/pokemon/shiny_palette_table.inc b/data/graphics/pokemon/shiny_palette_table.inc deleted file mode 100644 index 7248202213..0000000000 --- a/data/graphics/pokemon/shiny_palette_table.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonShinyPaletteTable:: @ 8304438 - obj_pal gMonShinyPalette_CircledQuestionMark, 500 - obj_pal gMonShinyPalette_Bulbasaur, 501 - obj_pal gMonShinyPalette_Ivysaur, 502 - obj_pal gMonShinyPalette_Venusaur, 503 - obj_pal gMonShinyPalette_Charmander, 504 - obj_pal gMonShinyPalette_Charmeleon, 505 - obj_pal gMonShinyPalette_Charizard, 506 - obj_pal gMonShinyPalette_Squirtle, 507 - obj_pal gMonShinyPalette_Wartortle, 508 - obj_pal gMonShinyPalette_Blastoise, 509 - obj_pal gMonShinyPalette_Caterpie, 510 - obj_pal gMonShinyPalette_Metapod, 511 - obj_pal gMonShinyPalette_Butterfree, 512 - obj_pal gMonShinyPalette_Weedle, 513 - obj_pal gMonShinyPalette_Kakuna, 514 - obj_pal gMonShinyPalette_Beedrill, 515 - obj_pal gMonShinyPalette_Pidgey, 516 - obj_pal gMonShinyPalette_Pidgeotto, 517 - obj_pal gMonShinyPalette_Pidgeot, 518 - obj_pal gMonShinyPalette_Rattata, 519 - obj_pal gMonShinyPalette_Raticate, 520 - obj_pal gMonShinyPalette_Spearow, 521 - obj_pal gMonShinyPalette_Fearow, 522 - obj_pal gMonShinyPalette_Ekans, 523 - obj_pal gMonShinyPalette_Arbok, 524 - obj_pal gMonShinyPalette_Pikachu, 525 - obj_pal gMonShinyPalette_Raichu, 526 - obj_pal gMonShinyPalette_Sandshrew, 527 - obj_pal gMonShinyPalette_Sandslash, 528 - obj_pal gMonShinyPalette_NidoranF, 529 - obj_pal gMonShinyPalette_Nidorina, 530 - obj_pal gMonShinyPalette_Nidoqueen, 531 - obj_pal gMonShinyPalette_NidoranM, 532 - obj_pal gMonShinyPalette_Nidorino, 533 - obj_pal gMonShinyPalette_Nidoking, 534 - obj_pal gMonShinyPalette_Clefairy, 535 - obj_pal gMonShinyPalette_Clefable, 536 - obj_pal gMonShinyPalette_Vulpix, 537 - obj_pal gMonShinyPalette_Ninetales, 538 - obj_pal gMonShinyPalette_Jigglypuff, 539 - obj_pal gMonShinyPalette_Wigglytuff, 540 - obj_pal gMonShinyPalette_Zubat, 541 - obj_pal gMonShinyPalette_Golbat, 542 - obj_pal gMonShinyPalette_Oddish, 543 - obj_pal gMonShinyPalette_Gloom, 544 - obj_pal gMonShinyPalette_Vileplume, 545 - obj_pal gMonShinyPalette_Paras, 546 - obj_pal gMonShinyPalette_Parasect, 547 - obj_pal gMonShinyPalette_Venonat, 548 - obj_pal gMonShinyPalette_Venomoth, 549 - obj_pal gMonShinyPalette_Diglett, 550 - obj_pal gMonShinyPalette_Dugtrio, 551 - obj_pal gMonShinyPalette_Meowth, 552 - obj_pal gMonShinyPalette_Persian, 553 - obj_pal gMonShinyPalette_Psyduck, 554 - obj_pal gMonShinyPalette_Golduck, 555 - obj_pal gMonShinyPalette_Mankey, 556 - obj_pal gMonShinyPalette_Primeape, 557 - obj_pal gMonShinyPalette_Growlithe, 558 - obj_pal gMonShinyPalette_Arcanine, 559 - obj_pal gMonShinyPalette_Poliwag, 560 - obj_pal gMonShinyPalette_Poliwhirl, 561 - obj_pal gMonShinyPalette_Poliwrath, 562 - obj_pal gMonShinyPalette_Abra, 563 - obj_pal gMonShinyPalette_Kadabra, 564 - obj_pal gMonShinyPalette_Alakazam, 565 - obj_pal gMonShinyPalette_Machop, 566 - obj_pal gMonShinyPalette_Machoke, 567 - obj_pal gMonShinyPalette_Machamp, 568 - obj_pal gMonShinyPalette_Bellsprout, 569 - obj_pal gMonShinyPalette_Weepinbell, 570 - obj_pal gMonShinyPalette_Victreebel, 571 - obj_pal gMonShinyPalette_Tentacool, 572 - obj_pal gMonShinyPalette_Tentacruel, 573 - obj_pal gMonShinyPalette_Geodude, 574 - obj_pal gMonShinyPalette_Graveler, 575 - obj_pal gMonShinyPalette_Golem, 576 - obj_pal gMonShinyPalette_Ponyta, 577 - obj_pal gMonShinyPalette_Rapidash, 578 - obj_pal gMonShinyPalette_Slowpoke, 579 - obj_pal gMonShinyPalette_Slowbro, 580 - obj_pal gMonShinyPalette_Magnemite, 581 - obj_pal gMonShinyPalette_Magneton, 582 - obj_pal gMonShinyPalette_Farfetchd, 583 - obj_pal gMonShinyPalette_Doduo, 584 - obj_pal gMonShinyPalette_Dodrio, 585 - obj_pal gMonShinyPalette_Seel, 586 - obj_pal gMonShinyPalette_Dewgong, 587 - obj_pal gMonShinyPalette_Grimer, 588 - obj_pal gMonShinyPalette_Muk, 589 - obj_pal gMonShinyPalette_Shellder, 590 - obj_pal gMonShinyPalette_Cloyster, 591 - obj_pal gMonShinyPalette_Gastly, 592 - obj_pal gMonShinyPalette_Haunter, 593 - obj_pal gMonShinyPalette_Gengar, 594 - obj_pal gMonShinyPalette_Onix, 595 - obj_pal gMonShinyPalette_Drowzee, 596 - obj_pal gMonShinyPalette_Hypno, 597 - obj_pal gMonShinyPalette_Krabby, 598 - obj_pal gMonShinyPalette_Kingler, 599 - obj_pal gMonShinyPalette_Voltorb, 600 - obj_pal gMonShinyPalette_Electrode, 601 - obj_pal gMonShinyPalette_Exeggcute, 602 - obj_pal gMonShinyPalette_Exeggutor, 603 - obj_pal gMonShinyPalette_Cubone, 604 - obj_pal gMonShinyPalette_Marowak, 605 - obj_pal gMonShinyPalette_Hitmonlee, 606 - obj_pal gMonShinyPalette_Hitmonchan, 607 - obj_pal gMonShinyPalette_Lickitung, 608 - obj_pal gMonShinyPalette_Koffing, 609 - obj_pal gMonShinyPalette_Weezing, 610 - obj_pal gMonShinyPalette_Rhyhorn, 611 - obj_pal gMonShinyPalette_Rhydon, 612 - obj_pal gMonShinyPalette_Chansey, 613 - obj_pal gMonShinyPalette_Tangela, 614 - obj_pal gMonShinyPalette_Kangaskhan, 615 - obj_pal gMonShinyPalette_Horsea, 616 - obj_pal gMonShinyPalette_Seadra, 617 - obj_pal gMonShinyPalette_Goldeen, 618 - obj_pal gMonShinyPalette_Seaking, 619 - obj_pal gMonShinyPalette_Staryu, 620 - obj_pal gMonShinyPalette_Starmie, 621 - obj_pal gMonShinyPalette_Mrmime, 622 - obj_pal gMonShinyPalette_Scyther, 623 - obj_pal gMonShinyPalette_Jynx, 624 - obj_pal gMonShinyPalette_Electabuzz, 625 - obj_pal gMonShinyPalette_Magmar, 626 - obj_pal gMonShinyPalette_Pinsir, 627 - obj_pal gMonShinyPalette_Tauros, 628 - obj_pal gMonShinyPalette_Magikarp, 629 - obj_pal gMonShinyPalette_Gyarados, 630 - obj_pal gMonShinyPalette_Lapras, 631 - obj_pal gMonShinyPalette_Ditto, 632 - obj_pal gMonShinyPalette_Eevee, 633 - obj_pal gMonShinyPalette_Vaporeon, 634 - obj_pal gMonShinyPalette_Jolteon, 635 - obj_pal gMonShinyPalette_Flareon, 636 - obj_pal gMonShinyPalette_Porygon, 637 - obj_pal gMonShinyPalette_Omanyte, 638 - obj_pal gMonShinyPalette_Omastar, 639 - obj_pal gMonShinyPalette_Kabuto, 640 - obj_pal gMonShinyPalette_Kabutops, 641 - obj_pal gMonShinyPalette_Aerodactyl, 642 - obj_pal gMonShinyPalette_Snorlax, 643 - obj_pal gMonShinyPalette_Articuno, 644 - obj_pal gMonShinyPalette_Zapdos, 645 - obj_pal gMonShinyPalette_Moltres, 646 - obj_pal gMonShinyPalette_Dratini, 647 - obj_pal gMonShinyPalette_Dragonair, 648 - obj_pal gMonShinyPalette_Dragonite, 649 - obj_pal gMonShinyPalette_Mewtwo, 650 - obj_pal gMonShinyPalette_Mew, 651 - obj_pal gMonShinyPalette_Chikorita, 652 - obj_pal gMonShinyPalette_Bayleef, 653 - obj_pal gMonShinyPalette_Meganium, 654 - obj_pal gMonShinyPalette_Cyndaquil, 655 - obj_pal gMonShinyPalette_Quilava, 656 - obj_pal gMonShinyPalette_Typhlosion, 657 - obj_pal gMonShinyPalette_Totodile, 658 - obj_pal gMonShinyPalette_Croconaw, 659 - obj_pal gMonShinyPalette_Feraligatr, 660 - obj_pal gMonShinyPalette_Sentret, 661 - obj_pal gMonShinyPalette_Furret, 662 - obj_pal gMonShinyPalette_Hoothoot, 663 - obj_pal gMonShinyPalette_Noctowl, 664 - obj_pal gMonShinyPalette_Ledyba, 665 - obj_pal gMonShinyPalette_Ledian, 666 - obj_pal gMonShinyPalette_Spinarak, 667 - obj_pal gMonShinyPalette_Ariados, 668 - obj_pal gMonShinyPalette_Crobat, 669 - obj_pal gMonShinyPalette_Chinchou, 670 - obj_pal gMonShinyPalette_Lanturn, 671 - obj_pal gMonShinyPalette_Pichu, 672 - obj_pal gMonShinyPalette_Cleffa, 673 - obj_pal gMonShinyPalette_Igglybuff, 674 - obj_pal gMonShinyPalette_Togepi, 675 - obj_pal gMonShinyPalette_Togetic, 676 - obj_pal gMonShinyPalette_Natu, 677 - obj_pal gMonShinyPalette_Xatu, 678 - obj_pal gMonShinyPalette_Mareep, 679 - obj_pal gMonShinyPalette_Flaaffy, 680 - obj_pal gMonShinyPalette_Ampharos, 681 - obj_pal gMonShinyPalette_Bellossom, 682 - obj_pal gMonShinyPalette_Marill, 683 - obj_pal gMonShinyPalette_Azumarill, 684 - obj_pal gMonShinyPalette_Sudowoodo, 685 - obj_pal gMonShinyPalette_Politoed, 686 - obj_pal gMonShinyPalette_Hoppip, 687 - obj_pal gMonShinyPalette_Skiploom, 688 - obj_pal gMonShinyPalette_Jumpluff, 689 - obj_pal gMonShinyPalette_Aipom, 690 - obj_pal gMonShinyPalette_Sunkern, 691 - obj_pal gMonShinyPalette_Sunflora, 692 - obj_pal gMonShinyPalette_Yanma, 693 - obj_pal gMonShinyPalette_Wooper, 694 - obj_pal gMonShinyPalette_Quagsire, 695 - obj_pal gMonShinyPalette_Espeon, 696 - obj_pal gMonShinyPalette_Umbreon, 697 - obj_pal gMonShinyPalette_Murkrow, 698 - obj_pal gMonShinyPalette_Slowking, 699 - obj_pal gMonShinyPalette_Misdreavus, 700 - obj_pal gMonShinyPalette_Unown, 701 - obj_pal gMonShinyPalette_Wobbuffet, 702 - obj_pal gMonShinyPalette_Girafarig, 703 - obj_pal gMonShinyPalette_Pineco, 704 - obj_pal gMonShinyPalette_Forretress, 705 - obj_pal gMonShinyPalette_Dunsparce, 706 - obj_pal gMonShinyPalette_Gligar, 707 - obj_pal gMonShinyPalette_Steelix, 708 - obj_pal gMonShinyPalette_Snubbull, 709 - obj_pal gMonShinyPalette_Granbull, 710 - obj_pal gMonShinyPalette_Qwilfish, 711 - obj_pal gMonShinyPalette_Scizor, 712 - obj_pal gMonShinyPalette_Shuckle, 713 - obj_pal gMonShinyPalette_Heracross, 714 - obj_pal gMonShinyPalette_Sneasel, 715 - obj_pal gMonShinyPalette_Teddiursa, 716 - obj_pal gMonShinyPalette_Ursaring, 717 - obj_pal gMonShinyPalette_Slugma, 718 - obj_pal gMonShinyPalette_Magcargo, 719 - obj_pal gMonShinyPalette_Swinub, 720 - obj_pal gMonShinyPalette_Piloswine, 721 - obj_pal gMonShinyPalette_Corsola, 722 - obj_pal gMonShinyPalette_Remoraid, 723 - obj_pal gMonShinyPalette_Octillery, 724 - obj_pal gMonShinyPalette_Delibird, 725 - obj_pal gMonShinyPalette_Mantine, 726 - obj_pal gMonShinyPalette_Skarmory, 727 - obj_pal gMonShinyPalette_Houndour, 728 - obj_pal gMonShinyPalette_Houndoom, 729 - obj_pal gMonShinyPalette_Kingdra, 730 - obj_pal gMonShinyPalette_Phanpy, 731 - obj_pal gMonShinyPalette_Donphan, 732 - obj_pal gMonShinyPalette_Porygon2, 733 - obj_pal gMonShinyPalette_Stantler, 734 - obj_pal gMonShinyPalette_Smeargle, 735 - obj_pal gMonShinyPalette_Tyrogue, 736 - obj_pal gMonShinyPalette_Hitmontop, 737 - obj_pal gMonShinyPalette_Smoochum, 738 - obj_pal gMonShinyPalette_Elekid, 739 - obj_pal gMonShinyPalette_Magby, 740 - obj_pal gMonShinyPalette_Miltank, 741 - obj_pal gMonShinyPalette_Blissey, 742 - obj_pal gMonShinyPalette_Raikou, 743 - obj_pal gMonShinyPalette_Entei, 744 - obj_pal gMonShinyPalette_Suicune, 745 - obj_pal gMonShinyPalette_Larvitar, 746 - obj_pal gMonShinyPalette_Pupitar, 747 - obj_pal gMonShinyPalette_Tyranitar, 748 - obj_pal gMonShinyPalette_Lugia, 749 - obj_pal gMonShinyPalette_HoOh, 750 - obj_pal gMonShinyPalette_Celebi, 751 - obj_pal gMonShinyPalette_DoubleQuestionMark, 752 - obj_pal gMonShinyPalette_DoubleQuestionMark, 753 - obj_pal gMonShinyPalette_DoubleQuestionMark, 754 - obj_pal gMonShinyPalette_DoubleQuestionMark, 755 - obj_pal gMonShinyPalette_DoubleQuestionMark, 756 - obj_pal gMonShinyPalette_DoubleQuestionMark, 757 - obj_pal gMonShinyPalette_DoubleQuestionMark, 758 - obj_pal gMonShinyPalette_DoubleQuestionMark, 759 - obj_pal gMonShinyPalette_DoubleQuestionMark, 760 - obj_pal gMonShinyPalette_DoubleQuestionMark, 761 - obj_pal gMonShinyPalette_DoubleQuestionMark, 762 - obj_pal gMonShinyPalette_DoubleQuestionMark, 763 - obj_pal gMonShinyPalette_DoubleQuestionMark, 764 - obj_pal gMonShinyPalette_DoubleQuestionMark, 765 - obj_pal gMonShinyPalette_DoubleQuestionMark, 766 - obj_pal gMonShinyPalette_DoubleQuestionMark, 767 - obj_pal gMonShinyPalette_DoubleQuestionMark, 768 - obj_pal gMonShinyPalette_DoubleQuestionMark, 769 - obj_pal gMonShinyPalette_DoubleQuestionMark, 770 - obj_pal gMonShinyPalette_DoubleQuestionMark, 771 - obj_pal gMonShinyPalette_DoubleQuestionMark, 772 - obj_pal gMonShinyPalette_DoubleQuestionMark, 773 - obj_pal gMonShinyPalette_DoubleQuestionMark, 774 - obj_pal gMonShinyPalette_DoubleQuestionMark, 775 - obj_pal gMonShinyPalette_DoubleQuestionMark, 776 - obj_pal gMonShinyPalette_Treecko, 777 - obj_pal gMonShinyPalette_Grovyle, 778 - obj_pal gMonShinyPalette_Sceptile, 779 - obj_pal gMonShinyPalette_Torchic, 780 - obj_pal gMonShinyPalette_Combusken, 781 - obj_pal gMonShinyPalette_Blaziken, 782 - obj_pal gMonShinyPalette_Mudkip, 783 - obj_pal gMonShinyPalette_Marshtomp, 784 - obj_pal gMonShinyPalette_Swampert, 785 - obj_pal gMonShinyPalette_Poochyena, 786 - obj_pal gMonShinyPalette_Mightyena, 787 - obj_pal gMonShinyPalette_Zigzagoon, 788 - obj_pal gMonShinyPalette_Linoone, 789 - obj_pal gMonShinyPalette_Wurmple, 790 - obj_pal gMonShinyPalette_Silcoon, 791 - obj_pal gMonShinyPalette_Beautifly, 792 - obj_pal gMonShinyPalette_Cascoon, 793 - obj_pal gMonShinyPalette_Dustox, 794 - obj_pal gMonShinyPalette_Lotad, 795 - obj_pal gMonShinyPalette_Lombre, 796 - obj_pal gMonShinyPalette_Ludicolo, 797 - obj_pal gMonShinyPalette_Seedot, 798 - obj_pal gMonShinyPalette_Nuzleaf, 799 - obj_pal gMonShinyPalette_Shiftry, 800 - obj_pal gMonShinyPalette_Nincada, 801 - obj_pal gMonShinyPalette_Ninjask, 802 - obj_pal gMonShinyPalette_Shedinja, 803 - obj_pal gMonShinyPalette_Taillow, 804 - obj_pal gMonShinyPalette_Swellow, 805 - obj_pal gMonShinyPalette_Shroomish, 806 - obj_pal gMonShinyPalette_Breloom, 807 - obj_pal gMonShinyPalette_Spinda, 808 - obj_pal gMonShinyPalette_Wingull, 809 - obj_pal gMonShinyPalette_Pelipper, 810 - obj_pal gMonShinyPalette_Surskit, 811 - obj_pal gMonShinyPalette_Masquerain, 812 - obj_pal gMonShinyPalette_Wailmer, 813 - obj_pal gMonShinyPalette_Wailord, 814 - obj_pal gMonShinyPalette_Skitty, 815 - obj_pal gMonShinyPalette_Delcatty, 816 - obj_pal gMonShinyPalette_Kecleon, 817 - obj_pal gMonShinyPalette_Baltoy, 818 - obj_pal gMonShinyPalette_Claydol, 819 - obj_pal gMonShinyPalette_Nosepass, 820 - obj_pal gMonShinyPalette_Torkoal, 821 - obj_pal gMonShinyPalette_Sableye, 822 - obj_pal gMonShinyPalette_Barboach, 823 - obj_pal gMonShinyPalette_Whiscash, 824 - obj_pal gMonShinyPalette_Luvdisc, 825 - obj_pal gMonShinyPalette_Corphish, 826 - obj_pal gMonShinyPalette_Crawdaunt, 827 - obj_pal gMonShinyPalette_Feebas, 828 - obj_pal gMonShinyPalette_Milotic, 829 - obj_pal gMonShinyPalette_Carvanha, 830 - obj_pal gMonShinyPalette_Sharpedo, 831 - obj_pal gMonShinyPalette_Trapinch, 832 - obj_pal gMonShinyPalette_Vibrava, 833 - obj_pal gMonShinyPalette_Flygon, 834 - obj_pal gMonShinyPalette_Makuhita, 835 - obj_pal gMonShinyPalette_Hariyama, 836 - obj_pal gMonShinyPalette_Electrike, 837 - obj_pal gMonShinyPalette_Manectric, 838 - obj_pal gMonShinyPalette_Numel, 839 - obj_pal gMonShinyPalette_Camerupt, 840 - obj_pal gMonShinyPalette_Spheal, 841 - obj_pal gMonShinyPalette_Sealeo, 842 - obj_pal gMonShinyPalette_Walrein, 843 - obj_pal gMonShinyPalette_Cacnea, 844 - obj_pal gMonShinyPalette_Cacturne, 845 - obj_pal gMonShinyPalette_Snorunt, 846 - obj_pal gMonShinyPalette_Glalie, 847 - obj_pal gMonShinyPalette_Lunatone, 848 - obj_pal gMonShinyPalette_Solrock, 849 - obj_pal gMonShinyPalette_Azurill, 850 - obj_pal gMonShinyPalette_Spoink, 851 - obj_pal gMonShinyPalette_Grumpig, 852 - obj_pal gMonShinyPalette_Plusle, 853 - obj_pal gMonShinyPalette_Minun, 854 - obj_pal gMonShinyPalette_Mawile, 855 - obj_pal gMonShinyPalette_Meditite, 856 - obj_pal gMonShinyPalette_Medicham, 857 - obj_pal gMonShinyPalette_Swablu, 858 - obj_pal gMonShinyPalette_Altaria, 859 - obj_pal gMonShinyPalette_Wynaut, 860 - obj_pal gMonShinyPalette_Duskull, 861 - obj_pal gMonShinyPalette_Dusclops, 862 - obj_pal gMonShinyPalette_Roselia, 863 - obj_pal gMonShinyPalette_Slakoth, 864 - obj_pal gMonShinyPalette_Vigoroth, 865 - obj_pal gMonShinyPalette_Slaking, 866 - obj_pal gMonShinyPalette_Gulpin, 867 - obj_pal gMonShinyPalette_Swalot, 868 - obj_pal gMonShinyPalette_Tropius, 869 - obj_pal gMonShinyPalette_Whismur, 870 - obj_pal gMonShinyPalette_Loudred, 871 - obj_pal gMonShinyPalette_Exploud, 872 - obj_pal gMonShinyPalette_Clamperl, 873 - obj_pal gMonShinyPalette_Huntail, 874 - obj_pal gMonShinyPalette_Gorebyss, 875 - obj_pal gMonShinyPalette_Absol, 876 - obj_pal gMonShinyPalette_Shuppet, 877 - obj_pal gMonShinyPalette_Banette, 878 - obj_pal gMonShinyPalette_Seviper, 879 - obj_pal gMonShinyPalette_Zangoose, 880 - obj_pal gMonShinyPalette_Relicanth, 881 - obj_pal gMonShinyPalette_Aron, 882 - obj_pal gMonShinyPalette_Lairon, 883 - obj_pal gMonShinyPalette_Aggron, 884 - obj_pal gMonShinyPalette_Castform, 885 - obj_pal gMonShinyPalette_Volbeat, 886 - obj_pal gMonShinyPalette_Illumise, 887 - obj_pal gMonShinyPalette_Lileep, 888 - obj_pal gMonShinyPalette_Cradily, 889 - obj_pal gMonShinyPalette_Anorith, 890 - obj_pal gMonShinyPalette_Armaldo, 891 - obj_pal gMonShinyPalette_Ralts, 892 - obj_pal gMonShinyPalette_Kirlia, 893 - obj_pal gMonShinyPalette_Gardevoir, 894 - obj_pal gMonShinyPalette_Bagon, 895 - obj_pal gMonShinyPalette_Shelgon, 896 - obj_pal gMonShinyPalette_Salamence, 897 - obj_pal gMonShinyPalette_Beldum, 898 - obj_pal gMonShinyPalette_Metang, 899 - obj_pal gMonShinyPalette_Metagross, 900 - obj_pal gMonShinyPalette_Regirock, 901 - obj_pal gMonShinyPalette_Regice, 902 - obj_pal gMonShinyPalette_Registeel, 903 - obj_pal gMonShinyPalette_Kyogre, 904 - obj_pal gMonShinyPalette_Groudon, 905 - obj_pal gMonShinyPalette_Rayquaza, 906 - obj_pal gMonShinyPalette_Latias, 907 - obj_pal gMonShinyPalette_Latios, 908 - obj_pal gMonShinyPalette_Jirachi, 909 - obj_pal gMonShinyPalette_Deoxys, 910 - obj_pal gMonShinyPalette_Chimecho, 911 - obj_pal gMonPalette_Egg, 912 - obj_pal gMonShinyPalette_Unown, 913 - obj_pal gMonShinyPalette_Unown, 914 - obj_pal gMonShinyPalette_Unown, 915 - obj_pal gMonShinyPalette_Unown, 916 - obj_pal gMonShinyPalette_Unown, 917 - obj_pal gMonShinyPalette_Unown, 918 - obj_pal gMonShinyPalette_Unown, 919 - obj_pal gMonShinyPalette_Unown, 920 - obj_pal gMonShinyPalette_Unown, 921 - obj_pal gMonShinyPalette_Unown, 922 - obj_pal gMonShinyPalette_Unown, 923 - obj_pal gMonShinyPalette_Unown, 924 - obj_pal gMonShinyPalette_Unown, 925 - obj_pal gMonShinyPalette_Unown, 926 - obj_pal gMonShinyPalette_Unown, 927 - obj_pal gMonShinyPalette_Unown, 928 - obj_pal gMonShinyPalette_Unown, 929 - obj_pal gMonShinyPalette_Unown, 930 - obj_pal gMonShinyPalette_Unown, 931 - obj_pal gMonShinyPalette_Unown, 932 - obj_pal gMonShinyPalette_Unown, 933 - obj_pal gMonShinyPalette_Unown, 934 - obj_pal gMonShinyPalette_Unown, 935 - obj_pal gMonShinyPalette_Unown, 936 - obj_pal gMonShinyPalette_Unown, 937 - obj_pal gMonShinyPalette_Unown, 938 - obj_pal gMonShinyPalette_Unown, 939 diff --git a/data/graphics/trainers/front_pic_coords.inc b/data/graphics/trainers/front_pic_coords.inc deleted file mode 100644 index 8d20f0a9ee..0000000000 --- a/data/graphics/trainers/front_pic_coords.inc +++ /dev/null @@ -1,95 +0,0 @@ - .align 2 -gTrainerFrontPicCoords:: @ 83054E0 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x02, 0x00, 0x00 - .byte 0x08, 0x02, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x02, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x02, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x02, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x02, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00 diff --git a/data/graphics/trainers/front_pic_palette_table.inc b/data/graphics/trainers/front_pic_palette_table.inc deleted file mode 100644 index 44cf98dabc..0000000000 --- a/data/graphics/trainers/front_pic_palette_table.inc +++ /dev/null @@ -1,95 +0,0 @@ - .align 2 -gTrainerFrontPicPaletteTable:: @ 830593C - obj_pal gTrainerPalette_Hiker, 0 - obj_pal gTrainerPalette_AquaGruntM, 1 - obj_pal gTrainerPalette_PokemonBreederF, 2 - obj_pal gTrainerPalette_CoolTrainerM, 3 - obj_pal gTrainerPalette_BirdKeeper, 4 - obj_pal gTrainerPalette_Collector, 5 - obj_pal gTrainerPalette_AquaGruntF, 6 - obj_pal gTrainerPalette_SwimmerM, 7 - obj_pal gTrainerPalette_MagmaGruntM, 8 - obj_pal gTrainerPalette_ExpertM, 9 - obj_pal gTrainerPalette_AquaAdminM, 10 - obj_pal gTrainerPalette_BlackBelt, 11 - obj_pal gTrainerPalette_AquaAdminF, 12 - obj_pal gTrainerPalette_AquaLeaderArchie, 13 - obj_pal gTrainerPalette_HexManiac, 14 - obj_pal gTrainerPalette_AromaLady, 15 - obj_pal gTrainerPalette_RuinManiac, 16 - obj_pal gTrainerPalette_Interviewer, 17 - obj_pal gTrainerPalette_TuberF, 18 - obj_pal gTrainerPalette_TuberM, 19 - obj_pal gTrainerPalette_CoolTrainerF, 20 - obj_pal gTrainerPalette_Lady, 21 - obj_pal gTrainerPalette_Beauty, 22 - obj_pal gTrainerPalette_RichBoy, 23 - obj_pal gTrainerPalette_ExpertF, 24 - obj_pal gTrainerPalette_Pokemaniac, 25 - obj_pal gTrainerPalette_MagmaGruntF, 26 - obj_pal gTrainerPalette_Guitarist, 27 - obj_pal gTrainerPalette_Kindler, 28 - obj_pal gTrainerPalette_Camper, 29 - obj_pal gTrainerPalette_Picnicker, 30 - obj_pal gTrainerPalette_BugManiac, 31 - obj_pal gTrainerPalette_PokemonBreederM, 32 - obj_pal gTrainerPalette_PsychicM, 33 - obj_pal gTrainerPalette_PsychicF, 34 - obj_pal gTrainerPalette_Gentleman, 35 - obj_pal gTrainerPalette_EliteFourSidney, 36 - obj_pal gTrainerPalette_EliteFourPhoebe, 37 - obj_pal gTrainerPalette_EliteFourGlacia, 38 - obj_pal gTrainerPalette_EliteFourDrake, 39 - obj_pal gTrainerPalette_LeaderRoxanne, 40 - obj_pal gTrainerPalette_LeaderBrawly, 41 - obj_pal gTrainerPalette_LeaderWattson, 42 - obj_pal gTrainerPalette_LeaderFlannery, 43 - obj_pal gTrainerPalette_LeaderNorman, 44 - obj_pal gTrainerPalette_LeaderWinona, 45 - obj_pal gTrainerPalette_LeaderTateAndLiza, 46 - obj_pal gTrainerPalette_LeaderJuan, 47 - obj_pal gTrainerPalette_SchoolKidM, 48 - obj_pal gTrainerPalette_SchoolKidF, 49 - obj_pal gTrainerPalette_SrAndJr, 50 - obj_pal gTrainerPalette_WinstrateM, 51 - obj_pal gTrainerPalette_WinstrateF, 52 - obj_pal gTrainerPalette_Youngster, 53 - obj_pal gTrainerPalette_ChampionWallace, 54 - obj_pal gTrainerPalette_Fisherman, 55 - obj_pal gTrainerPalette_CyclingTriathleteM, 56 - obj_pal gTrainerPalette_CyclingTriathleteF, 57 - obj_pal gTrainerPalette_RunningTriathleteM, 58 - obj_pal gTrainerPalette_RunningTriathleteF, 59 - obj_pal gTrainerPalette_SwimmingTriathleteM, 60 - obj_pal gTrainerPalette_SwimmingTriathleteF, 61 - obj_pal gTrainerPalette_DragonTamer, 62 - obj_pal gTrainerPalette_NinjaBoy, 63 - obj_pal gTrainerPalette_BattleGirl, 64 - obj_pal gTrainerPalette_ParasolLady, 65 - obj_pal gTrainerPalette_SwimmerF, 66 - obj_pal gTrainerPalette_Twins, 67 - obj_pal gTrainerPalette_Sailor, 68 - obj_pal gTrainerPalette_MagmaAdmin, 69 - obj_pal gTrainerPalette_Wally, 70 - obj_pal gTrainerPalette_Brendan, 71 - obj_pal gTrainerPalette_May, 72 - obj_pal gTrainerPalette_BugCatcher, 73 - obj_pal gTrainerPalette_PokemonRangerM, 74 - obj_pal gTrainerPalette_PokemonRangerF, 75 - obj_pal gTrainerPalette_MagmaLeaderMaxie, 76 - obj_pal gTrainerPalette_Lass, 77 - obj_pal gTrainerPalette_YoungCouple, 78 - obj_pal gTrainerPalette_OldCouple, 79 - obj_pal gTrainerPalette_SisAndBro, 80 - obj_pal gTrainerPalette_Steven, 81 - obj_pal gTrainerPalette_SalonMaidenAnabel, 82 - obj_pal gTrainerPalette_DomeAceTucker, 83 - obj_pal gTrainerPalette_PalaceMavenSpenser, 84 - obj_pal gTrainerPalette_ArenaTycoonGreta, 85 - obj_pal gTrainerPalette_FactoryHeadNoland, 86 - obj_pal gTrainerPalette_PikeQueenLucy, 87 - obj_pal gTrainerPalette_PyramidKingBrandon, 88 - obj_pal gTrainerPalette_Red, 89 - obj_pal gTrainerPalette_Leaf, 90 - obj_pal gTrainerPalette_RubySapphireBrendan, 91 - obj_pal gTrainerPalette_RubySapphireMay, 92 diff --git a/data/graphics/trainers/front_pic_table.inc b/data/graphics/trainers/front_pic_table.inc deleted file mode 100644 index 91294d170f..0000000000 --- a/data/graphics/trainers/front_pic_table.inc +++ /dev/null @@ -1,95 +0,0 @@ - .align 2 -gTrainerFrontPicTable:: @ 8305654 - obj_tiles gTrainerFrontPic_Hiker, 0x800, 0 - obj_tiles gTrainerFrontPic_AquaGruntM, 0x800, 1 - obj_tiles gTrainerFrontPic_PokemonBreederF, 0x800, 2 - obj_tiles gTrainerFrontPic_CoolTrainerM, 0x800, 3 - obj_tiles gTrainerFrontPic_BirdKeeper, 0x800, 4 - obj_tiles gTrainerFrontPic_Collector, 0x800, 5 - obj_tiles gTrainerFrontPic_AquaGruntF, 0x800, 6 - obj_tiles gTrainerFrontPic_SwimmerM, 0x800, 7 - obj_tiles gTrainerFrontPic_MagmaGruntM, 0x800, 8 - obj_tiles gTrainerFrontPic_ExpertM, 0x800, 9 - obj_tiles gTrainerFrontPic_AquaAdminM, 0x800, 10 - obj_tiles gTrainerFrontPic_BlackBelt, 0x800, 11 - obj_tiles gTrainerFrontPic_AquaAdminF, 0x800, 12 - obj_tiles gTrainerFrontPic_AquaLeaderArchie, 0x800, 13 - obj_tiles gTrainerFrontPic_HexManiac, 0x800, 14 - obj_tiles gTrainerFrontPic_AromaLady, 0x800, 15 - obj_tiles gTrainerFrontPic_RuinManiac, 0x800, 16 - obj_tiles gTrainerFrontPic_Interviewer, 0x800, 17 - obj_tiles gTrainerFrontPic_TuberF, 0x800, 18 - obj_tiles gTrainerFrontPic_TuberM, 0x800, 19 - obj_tiles gTrainerFrontPic_CoolTrainerF, 0x800, 20 - obj_tiles gTrainerFrontPic_Lady, 0x800, 21 - obj_tiles gTrainerFrontPic_Beauty, 0x800, 22 - obj_tiles gTrainerFrontPic_RichBoy, 0x800, 23 - obj_tiles gTrainerFrontPic_ExpertF, 0x800, 24 - obj_tiles gTrainerFrontPic_Pokemaniac, 0x800, 25 - obj_tiles gTrainerFrontPic_MagmaGruntF, 0x800, 26 - obj_tiles gTrainerFrontPic_Guitarist, 0x800, 27 - obj_tiles gTrainerFrontPic_Kindler, 0x800, 28 - obj_tiles gTrainerFrontPic_Camper, 0x800, 29 - obj_tiles gTrainerFrontPic_Picnicker, 0x800, 30 - obj_tiles gTrainerFrontPic_BugManiac, 0x800, 31 - obj_tiles gTrainerFrontPic_PokemonBreederM, 0x800, 32 - obj_tiles gTrainerFrontPic_PsychicM, 0x800, 33 - obj_tiles gTrainerFrontPic_PsychicF, 0x800, 34 - obj_tiles gTrainerFrontPic_Gentleman, 0x800, 35 - obj_tiles gTrainerFrontPic_EliteFourSidney, 0x800, 36 - obj_tiles gTrainerFrontPic_EliteFourPhoebe, 0x800, 37 - obj_tiles gTrainerFrontPic_EliteFourGlacia, 0x800, 38 - obj_tiles gTrainerFrontPic_EliteFourDrake, 0x800, 39 - obj_tiles gTrainerFrontPic_LeaderRoxanne, 0x800, 40 - obj_tiles gTrainerFrontPic_LeaderBrawly, 0x800, 41 - obj_tiles gTrainerFrontPic_LeaderWattson, 0x800, 42 - obj_tiles gTrainerFrontPic_LeaderFlannery, 0x800, 43 - obj_tiles gTrainerFrontPic_LeaderNorman, 0x800, 44 - obj_tiles gTrainerFrontPic_LeaderWinona, 0x800, 45 - obj_tiles gTrainerFrontPic_LeaderTateAndLiza, 0x800, 46 - obj_tiles gTrainerFrontPic_LeaderJuan, 0x800, 47 - obj_tiles gTrainerFrontPic_SchoolKidM, 0x800, 48 - obj_tiles gTrainerFrontPic_SchoolKidF, 0x800, 49 - obj_tiles gTrainerFrontPic_SrAndJr, 0x1000, 50 - obj_tiles gTrainerFrontPic_WinstrateM, 0x1000, 51 - obj_tiles gTrainerFrontPic_WinstrateF, 0x800, 52 - obj_tiles gTrainerFrontPic_Youngster, 0x800, 53 - obj_tiles gTrainerFrontPic_ChampionWallace, 0x1000, 54 - obj_tiles gTrainerFrontPic_Fisherman, 0x800, 55 - obj_tiles gTrainerFrontPic_CyclingTriathleteM, 0x1000, 56 - obj_tiles gTrainerFrontPic_CyclingTriathleteF, 0x800, 57 - obj_tiles gTrainerFrontPic_RunningTriathleteM, 0x800, 58 - obj_tiles gTrainerFrontPic_RunningTriathleteF, 0x800, 59 - obj_tiles gTrainerFrontPic_SwimmingTriathleteM, 0x800, 60 - obj_tiles gTrainerFrontPic_SwimmingTriathleteF, 0x800, 61 - obj_tiles gTrainerFrontPic_DragonTamer, 0x800, 62 - obj_tiles gTrainerFrontPic_NinjaBoy, 0x800, 63 - obj_tiles gTrainerFrontPic_BattleGirl, 0x1000, 64 - obj_tiles gTrainerFrontPic_ParasolLady, 0x800, 65 - obj_tiles gTrainerFrontPic_SwimmerF, 0x800, 66 - obj_tiles gTrainerFrontPic_Twins, 0x800, 67 - obj_tiles gTrainerFrontPic_Sailor, 0x800, 68 - obj_tiles gTrainerFrontPic_MagmaAdmin, 0x800, 69 - obj_tiles gTrainerFrontPic_Wally, 0x800, 70 - obj_tiles gTrainerFrontPic_Brendan, 0x800, 71 - obj_tiles gTrainerFrontPic_May, 0x800, 72 - obj_tiles gTrainerFrontPic_BugCatcher, 0x800, 73 - obj_tiles gTrainerFrontPic_PokemonRangerM, 0x800, 74 - obj_tiles gTrainerFrontPic_PokemonRangerF, 0x800, 75 - obj_tiles gTrainerFrontPic_MagmaLeaderMaxie, 0x800, 76 - obj_tiles gTrainerFrontPic_Lass, 0x800, 77 - obj_tiles gTrainerFrontPic_YoungCouple, 0x800, 78 - obj_tiles gTrainerFrontPic_OldCouple, 0x800, 79 - obj_tiles gTrainerFrontPic_SisAndBro, 0x800, 80 - obj_tiles gTrainerFrontPic_Steven, 0x800, 81 - obj_tiles gTrainerFrontPic_SalonMaidenAnabel, 0x800, 82 - obj_tiles gTrainerFrontPic_DomeAceTucker, 0x800, 83 - obj_tiles gTrainerFrontPic_PalaceMavenSpenser, 0x800, 84 - obj_tiles gTrainerFrontPic_ArenaTycoonGreta, 0x1000, 85 - obj_tiles gTrainerFrontPic_FactoryHeadNoland, 0x800, 86 - obj_tiles gTrainerFrontPic_PikeQueenLucy, 0x800, 87 - obj_tiles gTrainerFrontPic_PyramidKingBrandon, 0x800, 88 - obj_tiles gTrainerFrontPic_Red, 0x800, 89 - obj_tiles gTrainerFrontPic_Leaf, 0x800, 90 - obj_tiles gTrainerFrontPic_RubySapphireBrendan, 0x800, 91 - obj_tiles gTrainerFrontPic_RubySapphireMay, 0x800, 92 diff --git a/include/data/pokemon_graphics/back_pic_table.h b/include/data/pokemon_graphics/back_pic_table.h new file mode 100644 index 0000000000..7426a8dc42 --- /dev/null +++ b/include/data/pokemon_graphics/back_pic_table.h @@ -0,0 +1,443 @@ +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, +}; diff --git a/include/data/pokemon_graphics/palette_table.h b/include/data/pokemon_graphics/palette_table.h new file mode 100644 index 0000000000..99412daa5f --- /dev/null +++ b/include/data/pokemon_graphics/palette_table.h @@ -0,0 +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, +}; diff --git a/include/data/pokemon_graphics/shiny_palette_table.h b/include/data/pokemon_graphics/shiny_palette_table.h new file mode 100644 index 0000000000..91708fafa4 --- /dev/null +++ b/include/data/pokemon_graphics/shiny_palette_table.h @@ -0,0 +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, +}; diff --git a/include/data/trainer_graphics/back_pic_anims.h b/include/data/trainer_graphics/back_pic_anims.h index 67078401e0..e2419b6f66 100644 --- a/include/data/trainer_graphics/back_pic_anims.h +++ b/include/data/trainer_graphics/back_pic_anims.h @@ -1,10 +1,72 @@ -extern const union AnimCmd gUnknown_08305C24[]; -extern const union AnimCmd gUnknown_08305C3C[]; -extern const union AnimCmd gUnknown_08305C6C[]; -extern const union AnimCmd gUnknown_08305C84[]; -extern const union AnimCmd gUnknown_08305C9C[]; -extern const union AnimCmd gUnknown_08305CB4[]; -extern const union AnimCmd gUnknown_08305C54[]; +const union AnimCmd gUnknown_08305C24[] = +{ + ANIMCMD_FRAME(0, 24), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(2, 24), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(3, 50), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08305C3C[] = +{ + ANIMCMD_FRAME(0, 24), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(2, 24), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(3, 50), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08305C54[] = +{ + ANIMCMD_FRAME(0, 24), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(2, 24), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(3, 50), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08305C6C[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(2, 6), + ANIMCMD_FRAME(3, 6), + ANIMCMD_FRAME(4, 24), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08305C84[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(2, 6), + ANIMCMD_FRAME(3, 6), + ANIMCMD_FRAME(4, 24), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08305C9C[] = +{ + ANIMCMD_FRAME(0, 24), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(2, 24), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(3, 50), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08305CB4[] = +{ + ANIMCMD_FRAME(0, 24), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(2, 24), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(3, 50), + ANIMCMD_END, +}; const union AnimCmd *const gUnknown_08305CCC[] = { diff --git a/include/data/trainer_graphics/front_pic_anims.h b/include/data/trainer_graphics/front_pic_anims.h new file mode 100644 index 0000000000..423ce33b93 --- /dev/null +++ b/include/data/trainer_graphics/front_pic_anims.h @@ -0,0 +1,190 @@ +const union AnimCmd *const gUnknown_083051F8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083051FC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305200[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305204[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305208[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830520C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305210[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305214[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305218[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830521C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305220[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305224[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305228[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830522C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305230[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305234[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305238[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830523C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305240[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305244[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305248[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830524C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305250[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305254[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305258[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830525C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305260[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305264[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305268[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830526C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305270[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305274[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305278[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830527C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305280[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305284[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305288[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830528C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305290[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305294[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305298[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830529C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052A0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052A4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052A8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052AC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052B0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052B4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052B8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052BC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052C0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052C4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052C8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052CC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052D0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052D4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052D8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052DC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052E0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052E4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052E8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052EC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052F0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052F4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052F8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083052FC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305300[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305304[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305308[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830530C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305310[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305314[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305318[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830531C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305320[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305324[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305328[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830532C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305330[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305334[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305338[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830533C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305340[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305344[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305348[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830534C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305350[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305354[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305358[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830535C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305360[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305364[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08305368[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const *const gUnknown_0830536C[] = +{ + gUnknown_083051F8, + gUnknown_083051FC, + gUnknown_08305200, + gUnknown_08305204, + gUnknown_08305208, + gUnknown_0830520C, + gUnknown_08305210, + gUnknown_08305214, + gUnknown_08305218, + gUnknown_0830521C, + gUnknown_08305220, + gUnknown_08305224, + gUnknown_08305228, + gUnknown_0830522C, + gUnknown_08305230, + gUnknown_08305234, + gUnknown_08305238, + gUnknown_0830523C, + gUnknown_08305240, + gUnknown_08305244, + gUnknown_08305248, + gUnknown_0830524C, + gUnknown_08305250, + gUnknown_08305254, + gUnknown_08305258, + gUnknown_0830525C, + gUnknown_08305260, + gUnknown_08305264, + gUnknown_08305268, + gUnknown_0830526C, + gUnknown_08305270, + gUnknown_08305274, + gUnknown_08305278, + gUnknown_0830527C, + gUnknown_08305280, + gUnknown_08305284, + gUnknown_08305288, + gUnknown_0830528C, + gUnknown_08305290, + gUnknown_08305294, + gUnknown_08305298, + gUnknown_0830529C, + gUnknown_083052A0, + gUnknown_083052A4, + gUnknown_083052A8, + gUnknown_083052AC, + gUnknown_083052B0, + gUnknown_083052B4, + gUnknown_083052B8, + gUnknown_083052BC, + gUnknown_083052C0, + gUnknown_083052C4, + gUnknown_083052C8, + gUnknown_083052CC, + gUnknown_083052D0, + gUnknown_083052D4, + gUnknown_083052D8, + gUnknown_083052DC, + gUnknown_083052E0, + gUnknown_083052E4, + gUnknown_083052E8, + gUnknown_083052EC, + gUnknown_083052F0, + gUnknown_083052F4, + gUnknown_083052F8, + gUnknown_083052FC, + gUnknown_08305300, + gUnknown_08305304, + gUnknown_08305308, + gUnknown_0830530C, + gUnknown_08305310, + gUnknown_08305314, + gUnknown_08305318, + gUnknown_0830531C, + gUnknown_08305320, + gUnknown_08305324, + gUnknown_08305328, + gUnknown_0830532C, + gUnknown_08305330, + gUnknown_08305334, + gUnknown_08305338, + gUnknown_0830533C, + gUnknown_08305340, + gUnknown_08305344, + gUnknown_08305348, + gUnknown_0830534C, + gUnknown_08305350, + gUnknown_08305354, + gUnknown_08305358, + gUnknown_0830535C, + gUnknown_08305360, + gUnknown_08305364, + gUnknown_08305368, +}; diff --git a/include/data/trainer_graphics/front_pic_tables.h b/include/data/trainer_graphics/front_pic_tables.h index feb05f3f36..7c1e10683b 100644 --- a/include/data/trainer_graphics/front_pic_tables.h +++ b/include/data/trainer_graphics/front_pic_tables.h @@ -287,4 +287,4 @@ const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[] = gTrainerPalette_Leaf, 90, gTrainerPalette_RubySapphireBrendan, 91, gTrainerPalette_RubySapphireMay, 92, -} +}; diff --git a/include/graphics.h b/include/graphics.h index 1f2522ef98..24a7b839ad 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2438,9 +2438,16 @@ extern const u8 gMonBackPic_UnownQuestionMark[]; extern const u8 gMonIcon_UnownQuestionMark[]; extern const u8 gMonFrontPic_CircledQuestionMark[]; +extern const u8 gMonBackPic_CircledQuestionMark[]; +extern const u8 gMonPalette_CircledQuestionMark[]; +extern const u8 gMonShinyPalette_CircledQuestionMark[]; extern const u8 gMonIcon_QuestionMark[]; extern const u8 gMonFrontPic_DoubleQuestionMark[]; +extern const u8 gMonBackPic_DoubleQuestionMark[]; +extern const u8 gMonPalette_DoubleQuestionMark[]; +extern const u8 gMonShinyPalette_DoubleQuestionMark[]; extern const u8 gMonFrontPic_Egg[]; +extern const u8 gMonStillFrontPic_Egg[]; extern const u8 gMonIcon_Egg[]; extern const u16 gMonIconPalettes[][16]; diff --git a/src/data2b.c b/src/data2b.c index 78e671a7ac..e7ca473a99 100644 --- a/src/data2b.c +++ b/src/data2b.c @@ -4,7 +4,12 @@ extern const union AnimCmd gAnimCmd_General_Frame0[]; extern const union AnimCmd AnimCmd_82FF540[]; -//#include "data/trainer_graphics/front_pic_tables.h" +#include "data/pokemon_graphics/back_pic_table.h" +#include "data/pokemon_graphics/palette_table.h" +#include "data/pokemon_graphics/shiny_palette_table.h" + +#include "data/trainer_graphics/front_pic_anims.h" +#include "data/trainer_graphics/front_pic_tables.h" #include "data/trainer_graphics/back_pic_anims.h" #include "data/trainer_graphics/back_pic_tables.h" From 26ef40553c651560afb2ac9ba1f9a6c1aad4bc8d Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Thu, 23 Aug 2018 02:32:34 -0500 Subject: [PATCH 128/174] Move data from include to src --- include/data/bard_music/bard_sounds.h | 52 ------------------- {include => src}/data/bard_music/actions.h | 0 {include => src}/data/bard_music/adjectives.h | 0 src/data/bard_music/bard_sounds.h | 52 +++++++++++++++++++ {include => src}/data/bard_music/battle.h | 0 {include => src}/data/bard_music/conditions.h | 0 .../data/bard_music/default_sound.h | 0 {include => src}/data/bard_music/endings.h | 0 {include => src}/data/bard_music/events.h | 0 {include => src}/data/bard_music/feelings.h | 0 {include => src}/data/bard_music/greetings.h | 0 {include => src}/data/bard_music/hobbies.h | 0 .../data/bard_music/length_table.h | 0 {include => src}/data/bard_music/lifestyle.h | 0 {include => src}/data/bard_music/misc.h | 0 {include => src}/data/bard_music/moves.h | 0 {include => src}/data/bard_music/people.h | 0 {include => src}/data/bard_music/pokemon.h | 0 {include => src}/data/bard_music/speech.h | 0 {include => src}/data/bard_music/status.h | 0 {include => src}/data/bard_music/time.h | 0 {include => src}/data/bard_music/trainer.h | 0 .../data/bard_music/trendysaying.h | 0 {include => src}/data/bard_music/voices.h | 0 {include => src}/data/bard_music/word_pitch.h | 0 {include => src}/data/battle_moves.h | 0 .../data/decoration/description.h | 0 {include => src}/data/decoration/header.h | 0 {include => src}/data/decoration/icon.h | 0 {include => src}/data/decoration/tilemaps.h | 0 {include => src}/data/decoration/tiles.h | 0 {include => src}/data/item_icon_table.h | 0 {include => src}/data/items.h | 0 {include => src}/data/pokedex_orders.h | 0 {include => src}/data/pokemon/base_stats.h | 0 {include => src}/data/pokemon/cry_ids.h | 0 {include => src}/data/pokemon/egg_moves.h | 0 {include => src}/data/pokemon/evolution.h | 0 .../data/pokemon/experience_tables.h | 0 {include => src}/data/pokemon/item_effects.h | 0 .../data/pokemon/level_up_learnset_pointers.h | 0 .../data/pokemon/level_up_learnsets.h | 0 .../data/pokemon/tmhm_learnsets.h | 0 .../data/pokemon/trainer_class_lookups.h | 0 .../data/region_map/region_map_entries.h | 0 {include => src}/data/text/abilities.h | 0 .../data/text/item_descriptions.h | 0 47 files changed, 52 insertions(+), 52 deletions(-) delete mode 100644 include/data/bard_music/bard_sounds.h rename {include => src}/data/bard_music/actions.h (100%) rename {include => src}/data/bard_music/adjectives.h (100%) create mode 100644 src/data/bard_music/bard_sounds.h rename {include => src}/data/bard_music/battle.h (100%) rename {include => src}/data/bard_music/conditions.h (100%) rename {include => src}/data/bard_music/default_sound.h (100%) rename {include => src}/data/bard_music/endings.h (100%) rename {include => src}/data/bard_music/events.h (100%) rename {include => src}/data/bard_music/feelings.h (100%) rename {include => src}/data/bard_music/greetings.h (100%) rename {include => src}/data/bard_music/hobbies.h (100%) rename {include => src}/data/bard_music/length_table.h (100%) rename {include => src}/data/bard_music/lifestyle.h (100%) rename {include => src}/data/bard_music/misc.h (100%) rename {include => src}/data/bard_music/moves.h (100%) rename {include => src}/data/bard_music/people.h (100%) rename {include => src}/data/bard_music/pokemon.h (100%) rename {include => src}/data/bard_music/speech.h (100%) rename {include => src}/data/bard_music/status.h (100%) rename {include => src}/data/bard_music/time.h (100%) rename {include => src}/data/bard_music/trainer.h (100%) rename {include => src}/data/bard_music/trendysaying.h (100%) rename {include => src}/data/bard_music/voices.h (100%) rename {include => src}/data/bard_music/word_pitch.h (100%) rename {include => src}/data/battle_moves.h (100%) rename {include => src}/data/decoration/description.h (100%) rename {include => src}/data/decoration/header.h (100%) rename {include => src}/data/decoration/icon.h (100%) rename {include => src}/data/decoration/tilemaps.h (100%) rename {include => src}/data/decoration/tiles.h (100%) rename {include => src}/data/item_icon_table.h (100%) rename {include => src}/data/items.h (100%) rename {include => src}/data/pokedex_orders.h (100%) rename {include => src}/data/pokemon/base_stats.h (100%) rename {include => src}/data/pokemon/cry_ids.h (100%) rename {include => src}/data/pokemon/egg_moves.h (100%) rename {include => src}/data/pokemon/evolution.h (100%) rename {include => src}/data/pokemon/experience_tables.h (100%) rename {include => src}/data/pokemon/item_effects.h (100%) rename {include => src}/data/pokemon/level_up_learnset_pointers.h (100%) rename {include => src}/data/pokemon/level_up_learnsets.h (100%) rename {include => src}/data/pokemon/tmhm_learnsets.h (100%) rename {include => src}/data/pokemon/trainer_class_lookups.h (100%) rename {include => src}/data/region_map/region_map_entries.h (100%) rename {include => src}/data/text/abilities.h (100%) rename {include => src}/data/text/item_descriptions.h (100%) diff --git a/include/data/bard_music/bard_sounds.h b/include/data/bard_music/bard_sounds.h deleted file mode 100644 index 94923b0999..0000000000 --- a/include/data/bard_music/bard_sounds.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef GUARD_BARD_SOUNDS_TABLE_H -#define GUARD_BARD_SOUNDS_TABLE_H - -#define NULL_BARD_SOUND { 0xff } - -#include "data/bard_music/pokemon.h" -#include "data/bard_music/moves.h" -#include "data/bard_music/trainer.h" -#include "data/bard_music/status.h" -#include "data/bard_music/battle.h" -#include "data/bard_music/greetings.h" -#include "data/bard_music/people.h" -#include "data/bard_music/voices.h" -#include "data/bard_music/speech.h" -#include "data/bard_music/endings.h" -#include "data/bard_music/feelings.h" -#include "data/bard_music/conditions.h" -#include "data/bard_music/actions.h" -#include "data/bard_music/lifestyle.h" -#include "data/bard_music/hobbies.h" -#include "data/bard_music/time.h" -#include "data/bard_music/misc.h" -#include "data/bard_music/adjectives.h" -#include "data/bard_music/events.h" -#include "data/bard_music/trendysaying.h" - -const struct BardSound (*const gBardSoundsTable[])[6] = { - NULL, - gBardSounds_Trainer, - gBardSounds_Status, - gBardSounds_Battle, - gBardSounds_Greetings, - gBardSounds_People, - gBardSounds_Voices, - gBardSounds_Speech, - gBardSounds_Endings, - gBardSounds_Feelings, - gBardSounds_Conditions, - gBardSounds_Actions, - gBardSounds_Lifestyle, - gBardSounds_Hobbies, - gBardSounds_Time, - gBardSounds_Misc, - gBardSounds_Adjectives, - gBardSounds_Events, - NULL, - NULL, - gBardSounds_TrendySaying, - NULL -}; - -#endif //GUARD_BARD_SOUNDS_TABLE_H diff --git a/include/data/bard_music/actions.h b/src/data/bard_music/actions.h similarity index 100% rename from include/data/bard_music/actions.h rename to src/data/bard_music/actions.h diff --git a/include/data/bard_music/adjectives.h b/src/data/bard_music/adjectives.h similarity index 100% rename from include/data/bard_music/adjectives.h rename to src/data/bard_music/adjectives.h diff --git a/src/data/bard_music/bard_sounds.h b/src/data/bard_music/bard_sounds.h new file mode 100644 index 0000000000..4a09117268 --- /dev/null +++ b/src/data/bard_music/bard_sounds.h @@ -0,0 +1,52 @@ +#ifndef GUARD_BARD_SOUNDS_TABLE_H +#define GUARD_BARD_SOUNDS_TABLE_H + +#define NULL_BARD_SOUND { 0xff } + +#include "pokemon.h" +#include "moves.h" +#include "trainer.h" +#include "status.h" +#include "battle.h" +#include "greetings.h" +#include "people.h" +#include "voices.h" +#include "speech.h" +#include "endings.h" +#include "feelings.h" +#include "conditions.h" +#include "actions.h" +#include "lifestyle.h" +#include "hobbies.h" +#include "time.h" +#include "misc.h" +#include "adjectives.h" +#include "events.h" +#include "trendysaying.h" + +const struct BardSound (*const gBardSoundsTable[])[6] = { + NULL, + gBardSounds_Trainer, + gBardSounds_Status, + gBardSounds_Battle, + gBardSounds_Greetings, + gBardSounds_People, + gBardSounds_Voices, + gBardSounds_Speech, + gBardSounds_Endings, + gBardSounds_Feelings, + gBardSounds_Conditions, + gBardSounds_Actions, + gBardSounds_Lifestyle, + gBardSounds_Hobbies, + gBardSounds_Time, + gBardSounds_Misc, + gBardSounds_Adjectives, + gBardSounds_Events, + NULL, + NULL, + gBardSounds_TrendySaying, + NULL +}; + +#endif //GUARD_BARD_SOUNDS_TABLE_H diff --git a/include/data/bard_music/battle.h b/src/data/bard_music/battle.h similarity index 100% rename from include/data/bard_music/battle.h rename to src/data/bard_music/battle.h diff --git a/include/data/bard_music/conditions.h b/src/data/bard_music/conditions.h similarity index 100% rename from include/data/bard_music/conditions.h rename to src/data/bard_music/conditions.h diff --git a/include/data/bard_music/default_sound.h b/src/data/bard_music/default_sound.h similarity index 100% rename from include/data/bard_music/default_sound.h rename to src/data/bard_music/default_sound.h diff --git a/include/data/bard_music/endings.h b/src/data/bard_music/endings.h similarity index 100% rename from include/data/bard_music/endings.h rename to src/data/bard_music/endings.h diff --git a/include/data/bard_music/events.h b/src/data/bard_music/events.h similarity index 100% rename from include/data/bard_music/events.h rename to src/data/bard_music/events.h diff --git a/include/data/bard_music/feelings.h b/src/data/bard_music/feelings.h similarity index 100% rename from include/data/bard_music/feelings.h rename to src/data/bard_music/feelings.h diff --git a/include/data/bard_music/greetings.h b/src/data/bard_music/greetings.h similarity index 100% rename from include/data/bard_music/greetings.h rename to src/data/bard_music/greetings.h diff --git a/include/data/bard_music/hobbies.h b/src/data/bard_music/hobbies.h similarity index 100% rename from include/data/bard_music/hobbies.h rename to src/data/bard_music/hobbies.h diff --git a/include/data/bard_music/length_table.h b/src/data/bard_music/length_table.h similarity index 100% rename from include/data/bard_music/length_table.h rename to src/data/bard_music/length_table.h diff --git a/include/data/bard_music/lifestyle.h b/src/data/bard_music/lifestyle.h similarity index 100% rename from include/data/bard_music/lifestyle.h rename to src/data/bard_music/lifestyle.h diff --git a/include/data/bard_music/misc.h b/src/data/bard_music/misc.h similarity index 100% rename from include/data/bard_music/misc.h rename to src/data/bard_music/misc.h diff --git a/include/data/bard_music/moves.h b/src/data/bard_music/moves.h similarity index 100% rename from include/data/bard_music/moves.h rename to src/data/bard_music/moves.h diff --git a/include/data/bard_music/people.h b/src/data/bard_music/people.h similarity index 100% rename from include/data/bard_music/people.h rename to src/data/bard_music/people.h diff --git a/include/data/bard_music/pokemon.h b/src/data/bard_music/pokemon.h similarity index 100% rename from include/data/bard_music/pokemon.h rename to src/data/bard_music/pokemon.h diff --git a/include/data/bard_music/speech.h b/src/data/bard_music/speech.h similarity index 100% rename from include/data/bard_music/speech.h rename to src/data/bard_music/speech.h diff --git a/include/data/bard_music/status.h b/src/data/bard_music/status.h similarity index 100% rename from include/data/bard_music/status.h rename to src/data/bard_music/status.h diff --git a/include/data/bard_music/time.h b/src/data/bard_music/time.h similarity index 100% rename from include/data/bard_music/time.h rename to src/data/bard_music/time.h diff --git a/include/data/bard_music/trainer.h b/src/data/bard_music/trainer.h similarity index 100% rename from include/data/bard_music/trainer.h rename to src/data/bard_music/trainer.h diff --git a/include/data/bard_music/trendysaying.h b/src/data/bard_music/trendysaying.h similarity index 100% rename from include/data/bard_music/trendysaying.h rename to src/data/bard_music/trendysaying.h diff --git a/include/data/bard_music/voices.h b/src/data/bard_music/voices.h similarity index 100% rename from include/data/bard_music/voices.h rename to src/data/bard_music/voices.h diff --git a/include/data/bard_music/word_pitch.h b/src/data/bard_music/word_pitch.h similarity index 100% rename from include/data/bard_music/word_pitch.h rename to src/data/bard_music/word_pitch.h diff --git a/include/data/battle_moves.h b/src/data/battle_moves.h similarity index 100% rename from include/data/battle_moves.h rename to src/data/battle_moves.h diff --git a/include/data/decoration/description.h b/src/data/decoration/description.h similarity index 100% rename from include/data/decoration/description.h rename to src/data/decoration/description.h diff --git a/include/data/decoration/header.h b/src/data/decoration/header.h similarity index 100% rename from include/data/decoration/header.h rename to src/data/decoration/header.h diff --git a/include/data/decoration/icon.h b/src/data/decoration/icon.h similarity index 100% rename from include/data/decoration/icon.h rename to src/data/decoration/icon.h diff --git a/include/data/decoration/tilemaps.h b/src/data/decoration/tilemaps.h similarity index 100% rename from include/data/decoration/tilemaps.h rename to src/data/decoration/tilemaps.h diff --git a/include/data/decoration/tiles.h b/src/data/decoration/tiles.h similarity index 100% rename from include/data/decoration/tiles.h rename to src/data/decoration/tiles.h diff --git a/include/data/item_icon_table.h b/src/data/item_icon_table.h similarity index 100% rename from include/data/item_icon_table.h rename to src/data/item_icon_table.h diff --git a/include/data/items.h b/src/data/items.h similarity index 100% rename from include/data/items.h rename to src/data/items.h diff --git a/include/data/pokedex_orders.h b/src/data/pokedex_orders.h similarity index 100% rename from include/data/pokedex_orders.h rename to src/data/pokedex_orders.h diff --git a/include/data/pokemon/base_stats.h b/src/data/pokemon/base_stats.h similarity index 100% rename from include/data/pokemon/base_stats.h rename to src/data/pokemon/base_stats.h diff --git a/include/data/pokemon/cry_ids.h b/src/data/pokemon/cry_ids.h similarity index 100% rename from include/data/pokemon/cry_ids.h rename to src/data/pokemon/cry_ids.h diff --git a/include/data/pokemon/egg_moves.h b/src/data/pokemon/egg_moves.h similarity index 100% rename from include/data/pokemon/egg_moves.h rename to src/data/pokemon/egg_moves.h diff --git a/include/data/pokemon/evolution.h b/src/data/pokemon/evolution.h similarity index 100% rename from include/data/pokemon/evolution.h rename to src/data/pokemon/evolution.h diff --git a/include/data/pokemon/experience_tables.h b/src/data/pokemon/experience_tables.h similarity index 100% rename from include/data/pokemon/experience_tables.h rename to src/data/pokemon/experience_tables.h diff --git a/include/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h similarity index 100% rename from include/data/pokemon/item_effects.h rename to src/data/pokemon/item_effects.h diff --git a/include/data/pokemon/level_up_learnset_pointers.h b/src/data/pokemon/level_up_learnset_pointers.h similarity index 100% rename from include/data/pokemon/level_up_learnset_pointers.h rename to src/data/pokemon/level_up_learnset_pointers.h diff --git a/include/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h similarity index 100% rename from include/data/pokemon/level_up_learnsets.h rename to src/data/pokemon/level_up_learnsets.h diff --git a/include/data/pokemon/tmhm_learnsets.h b/src/data/pokemon/tmhm_learnsets.h similarity index 100% rename from include/data/pokemon/tmhm_learnsets.h rename to src/data/pokemon/tmhm_learnsets.h diff --git a/include/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h similarity index 100% rename from include/data/pokemon/trainer_class_lookups.h rename to src/data/pokemon/trainer_class_lookups.h diff --git a/include/data/region_map/region_map_entries.h b/src/data/region_map/region_map_entries.h similarity index 100% rename from include/data/region_map/region_map_entries.h rename to src/data/region_map/region_map_entries.h diff --git a/include/data/text/abilities.h b/src/data/text/abilities.h similarity index 100% rename from include/data/text/abilities.h rename to src/data/text/abilities.h diff --git a/include/data/text/item_descriptions.h b/src/data/text/item_descriptions.h similarity index 100% rename from include/data/text/item_descriptions.h rename to src/data/text/item_descriptions.h From 6b145ed77c01dd3ea8d18709ff818a85f6b3a392 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Fri, 24 Aug 2018 04:21:07 +0100 Subject: [PATCH 129/174] Move data from graphics.s to C --- data/graphics.s | 5178 --------- data/graphics/berries/berry_graphics.inc | 343 - .../decorations/decoration_graphics.inc | 252 - data/graphics/items/item_graphics.inc | 1883 ---- .../circled_question_mark_graphics.inc | 15 - data/graphics/pokemon/graphics.inc | 9619 ----------------- data/graphics/trainers/graphics.inc | 783 -- ld_script.txt | 1 + src/graphics.c | 1974 ++++ src/graphics/berries.h | 95 + src/graphics/decorations.h | 125 + src/graphics/items.h | 738 ++ src/graphics/pokemon.h | 2823 +++++ src/graphics/trainers.h | 290 + 14 files changed, 6046 insertions(+), 18073 deletions(-) delete mode 100644 data/graphics/berries/berry_graphics.inc delete mode 100644 data/graphics/decorations/decoration_graphics.inc delete mode 100644 data/graphics/items/item_graphics.inc delete mode 100644 data/graphics/pokemon/circled_question_mark_graphics.inc delete mode 100644 data/graphics/pokemon/graphics.inc delete mode 100644 data/graphics/trainers/graphics.inc create mode 100644 src/graphics.c create mode 100644 src/graphics/berries.h create mode 100644 src/graphics/decorations.h create mode 100644 src/graphics/items.h create mode 100644 src/graphics/pokemon.h create mode 100644 src/graphics/trainers.h diff --git a/data/graphics.s b/data/graphics.s index 01e8c3b2ca..2c1a98924e 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1,5183 +1,5 @@ .section gfx_data, "aw", %progbits - .align 2 -gBattleTextboxTiles:: @ 8C00000 - .incbin "graphics/interface/menu.4bpp.lz" @ menu window and arrows - - .align 2 -gBattleTextboxPalette:: @ 8C004E0 - .incbin "graphics/interface/menu.gbapal.lz" - - .align 2 -gBattleTextboxTilemap:: @ 8C00524 - .incbin "graphics/interface/menu_map.bin.lz" - -@ 8C00750 - .include "data/graphics/pokemon/circled_question_mark_graphics.inc" - -@ 8C00C10 - .incbin "graphics/unused/old_charmap.4bpp.lz" @ japanese table and bunch of stuff - .incbin "graphics/unused/old_charmap.bin.lz" - .incbin "graphics/unused/old_charmap.gbapal.lz" - - .align 2 -gSmokescreenImpactTiles:: @ 8C01644 - .incbin "graphics/battle_anims/sprites/smokescreen_impact.4bpp.lz" - - .align 2 -gSmokescreenImpactPalette:: @ 8C01724 - .incbin "graphics/battle_anims/sprites/smokescreen_impact.gbapal.lz" - - .align 2 -gInterfaceGfx_PokeBall:: - .incbin "graphics/interface/ball/poke.4bpp.lz" @ 0xBC - - .align 2 -gInterfacePal_PokeBall:: - .incbin "graphics/interface/ball/poke.gbapal.lz" - - .align 2 -gInterfaceGfx_GreatBall:: - .incbin "graphics/interface/ball/great.4bpp.lz" @ 0xBC - - .align 2 -gInterfacePal_GreatBall:: - .incbin "graphics/interface/ball/great.gbapal.lz" - - .align 2 -gInterfaceGfx_SafariBall:: - .incbin "graphics/interface/ball/safari.4bpp.lz" @ 0xBC - - .align 2 -gInterfacePal_SafariBall:: - .incbin "graphics/interface/ball/safari.gbapal.lz" - - .align 2 -gInterfaceGfx_UltraBall:: - .incbin "graphics/interface/ball/ultra.4bpp.lz" @ 0xBC - - .align 2 -gInterfacePal_UltraBall:: - .incbin "graphics/interface/ball/ultra.gbapal.lz" - - .align 2 -gInterfaceGfx_MasterBall:: - .incbin "graphics/interface/ball/master.4bpp.lz" @ 0xBC - - .align 2 -gInterfacePal_MasterBall:: - .incbin "graphics/interface/ball/master.gbapal.lz" - - .align 2 -gInterfaceGfx_NetBall:: - .incbin "graphics/interface/ball/net.4bpp.lz" @ 0xBC - - .align 2 -gInterfacePal_NetBall:: - .incbin "graphics/interface/ball/net.gbapal.lz" - - .align 2 -gInterfaceGfx_DiveBall:: - .incbin "graphics/interface/ball/dive.4bpp.lz" @ 0xBC - - .align 2 -gInterfacePal_DiveBall:: - .incbin "graphics/interface/ball/dive.gbapal.lz" - - .align 2 -gInterfaceGfx_NestBall:: - .incbin "graphics/interface/ball/nest.4bpp.lz" @ 0xBC - - .align 2 -gInterfacePal_NestBall:: - .incbin "graphics/interface/ball/nest.gbapal.lz" - - .align 2 -gInterfaceGfx_RepeatBall:: - .incbin "graphics/interface/ball/repeat.4bpp.lz" @ 0xBC - - .align 2 -gInterfacePal_RepeatBall:: - .incbin "graphics/interface/ball/repeat.gbapal.lz" - - .align 2 -gInterfaceGfx_TimerBall:: - .incbin "graphics/interface/ball/timer.4bpp.lz" @ 0xBC - - .align 2 -gInterfacePal_TimerBall:: - .incbin "graphics/interface/ball/timer.gbapal.lz" - - .align 2 -gInterfaceGfx_LuxuryBall:: - .incbin "graphics/interface/ball/luxury.4bpp.lz" @ 0xBC - - .align 2 -gInterfacePal_LuxuryBall:: - .incbin "graphics/interface/ball/luxury.gbapal.lz" - - .align 2 -gInterfaceGfx_PremierBall:: - .incbin "graphics/interface/ball/premier.4bpp.lz" @ 0xBC - - .align 2 -gInterfacePal_PremierBall:: - .incbin "graphics/interface/ball/premier.gbapal.lz" - - .align 2 -gOpenPokeballGfx:: @ 8C02300 - .incbin "graphics/interface/ball_open.4bpp.lz" - - .align 2 -gBlankGfxCompressed:: @ 8C0237C - .incbin "graphics/interface/blank.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_146:: - .incbin "graphics/battle_anims/sprites/146.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_000:: - .incbin "graphics/battle_anims/sprites/000.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_003:: - .incbin "graphics/battle_anims/sprites/003.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_004:: - .incbin "graphics/battle_anims/sprites/004.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_005:: - .incbin "graphics/battle_anims/sprites/005.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_006:: - .incbin "graphics/battle_anims/sprites/006.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_115:: - .incbin "graphics/battle_anims/sprites/115.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_000:: - .incbin "graphics/battle_anims/sprites/000.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_003:: - .incbin "graphics/battle_anims/sprites/003.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_004:: - .incbin "graphics/battle_anims/sprites/004.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_005:: - .incbin "graphics/battle_anims/sprites/005.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_006:: - .incbin "graphics/battle_anims/sprites/006.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_161:: - .incbin "graphics/battle_anims/sprites/161.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_161:: - .incbin "graphics/battle_anims/sprites/161.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_007:: - .incbin "graphics/battle_anims/sprites/007.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_007:: - .incbin "graphics/battle_anims/sprites/007.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_008:: - .incbin "graphics/battle_anims/sprites/008.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_008:: - .incbin "graphics/battle_anims/sprites/008.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_010:: - .incbin "graphics/battle_anims/sprites/010.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_010:: - .incbin "graphics/battle_anims/sprites/010.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_009:: - .incbin "graphics/battle_anims/sprites/009.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_009:: - .incbin "graphics/battle_anims/sprites/009.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_011:: - .incbin "graphics/battle_anims/sprites/011.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_011:: - .incbin "graphics/battle_anims/sprites/011.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_012:: - .incbin "graphics/battle_anims/sprites/012.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_012:: - .incbin "graphics/battle_anims/sprites/012.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_152:: - .incbin "graphics/battle_anims/sprites/152.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_152:: - .incbin "graphics/battle_anims/sprites/152.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_013:: - .incbin "graphics/battle_anims/sprites/013.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_013:: - .incbin "graphics/battle_anims/sprites/013.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_015:: - .incbin "graphics/battle_anims/sprites/015.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_015:: - .incbin "graphics/battle_anims/sprites/015.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_016:: - .incbin "graphics/battle_anims/sprites/016.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_016:: - .incbin "graphics/battle_anims/sprites/016.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_017:: - .incbin "graphics/battle_anims/sprites/017.4bpp.lz" - - .align 2 - .incbin "graphics/unknown/unknown_C035B8.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_019:: - .incbin "graphics/battle_anims/sprites/019.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_019:: - .incbin "graphics/battle_anims/sprites/019.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_020:: - .incbin "graphics/battle_anims/sprites/020.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_020:: - .incbin "graphics/battle_anims/sprites/020.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_023:: - .incbin "graphics/battle_anims/sprites/023.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_023:: - .incbin "graphics/battle_anims/sprites/023.4bpp.lz" - - .align 2 - .incbin "graphics/unused/battle_anim_023.gbapal.lz" - - .align 2 - .incbin "graphics/unused/music_notes.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_021:: - .incbin "graphics/battle_anims/sprites/021.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_021:: - .incbin "graphics/battle_anims/sprites/021.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_022:: - .incbin "graphics/battle_anims/sprites/022.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_025:: - .incbin "graphics/battle_anims/sprites/025.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_025:: - .incbin "graphics/battle_anims/sprites/025.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_024:: - .incbin "graphics/battle_anims/sprites/024.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_024:: - .incbin "graphics/battle_anims/sprites/024.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_031:: - .incbin "graphics/battle_anims/sprites/031.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_031:: - .incbin "graphics/battle_anims/sprites/031.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_032:: - .incbin "graphics/battle_anims/sprites/032.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_032:: - .incbin "graphics/battle_anims/sprites/032.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_026:: - .incbin "graphics/battle_anims/sprites/026.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_026:: - .incbin "graphics/battle_anims/sprites/026.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_027:: - .incbin "graphics/battle_anims/sprites/027.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_027:: - .incbin "graphics/battle_anims/sprites/027.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_028:: - .incbin "graphics/battle_anims/sprites/028.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_028:: - .incbin "graphics/battle_anims/sprites/028.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_029:: - .incbin "graphics/battle_anims/sprites/029.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_029:: - .incbin "graphics/battle_anims/sprites/029.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_030:: - .incbin "graphics/battle_anims/sprites/030.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_030:: - .incbin "graphics/battle_anims/sprites/030.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_033:: - .incbin "graphics/battle_anims/sprites/033.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_033:: - .incbin "graphics/battle_anims/sprites/033.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_034:: - .incbin "graphics/battle_anims/sprites/034.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_035:: - .incbin "graphics/battle_anims/sprites/035.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_036:: - .incbin "graphics/battle_anims/sprites/036.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_036:: - .incbin "graphics/battle_anims/sprites/036.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_037:: - .incbin "graphics/battle_anims/sprites/037.4bpp.lz" - - .align 2 - .incbin "graphics/unknown/unknown_C06D98.4bpp.lz" - - .align 2 - .incbin "graphics/unknown/unknown_C06D98.gbapal.lz" - - .align 2 - .incbin "graphics/unknown/unknown_C06D98_2.gbapal.lz" - -@ old battle interface data, unused - - .align 2 - .incbin "graphics/unused/obi1.4bpp.lz" - - .align 2 - .incbin "graphics/unused/obi_palpak1.gbapal.lz" @ palettes 1-3 - - .align 2 - .incbin "graphics/unused/old_pal4.gbapal.lz" @ 4 is by itself - - .align 2 - .incbin "graphics/unused/obi_palpak3.gbapal.lz" @ palettes 5-7 - - .align 2 - .incbin "graphics/unused/obi2.4bpp.lz" - - .align 2 - .incbin "graphics/unused/old_battle_interface_tilemap.bin.lz" - - .align 2 -gBattleAnimSpritePalette_038:: - .incbin "graphics/battle_anims/sprites/038.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_039:: - .incbin "graphics/battle_anims/sprites/039.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_038:: - .incbin "graphics/battle_anims/sprites/038.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_039:: - .incbin "graphics/battle_anims/sprites/039.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_040:: - .incbin "graphics/battle_anims/sprites/040.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_041:: - .incbin "graphics/battle_anims/sprites/041.4bpp.lz" - - @ why is this way up here? - - .align 2 -gPartyMenuHpBar_Gfx:: - .incbin "graphics/interface/party_menu_hpbar.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_042:: - .incbin "graphics/battle_anims/sprites/042.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_042:: - .incbin "graphics/battle_anims/sprites/042.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_043:: - .incbin "graphics/battle_anims/sprites/043.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_043:: - .incbin "graphics/battle_anims/sprites/043.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_044:: - .incbin "graphics/battle_anims/sprites/044.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_044:: - .incbin "graphics/battle_anims/sprites/044.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_045:: - .incbin "graphics/battle_anims/sprites/045.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_045:: - .incbin "graphics/battle_anims/sprites/045.4bpp.lz" - - @ two unused window frames. - - .align 2 -gUnknown_08C08F0C:: - .incbin "graphics/battle_interface/unused_window.4bpp.lz" - - .align 2 -gUnknown_08C093C8:: - .incbin "graphics/battle_interface/unused_window.gbapal.lz" - - .align 2 -gUnknown_08C093F0:: @ 8C093F0 - .incbin "graphics/interface/hp_numbers.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_046:: - .incbin "graphics/battle_anims/sprites/046.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_046:: - .incbin "graphics/battle_anims/sprites/046.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_047:: - .incbin "graphics/battle_anims/sprites/047.gbapal.lz" - - @ more unused windows - .align 2 - .incbin "graphics/battle_interface/unused_window2.4bpp.lz" - - .align 2 - .incbin "graphics/battle_interface/unused_window2bar.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_048:: - .incbin "graphics/battle_anims/sprites/048.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_048:: - .incbin "graphics/battle_anims/sprites/048.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_049:: - .incbin "graphics/battle_anims/sprites/049.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_050:: - .incbin "graphics/battle_anims/sprites/050.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_050:: - .incbin "graphics/battle_anims/sprites/050.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_051:: - .incbin "graphics/battle_anims/sprites/051.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_052:: - .incbin "graphics/battle_anims/sprites/052.4bpp.lz" - - .align 2 - .incbin "graphics/unused/line_sketch.4bpp.lz" @ unused - - .align 2 - .incbin "graphics/unused/line_sketch.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_054:: - .incbin "graphics/battle_anims/sprites/054.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_054:: - .incbin "graphics/battle_anims/sprites/054.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_056:: - .incbin "graphics/battle_anims/sprites/056.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_056:: - .incbin "graphics/battle_anims/sprites/056.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_055:: - .incbin "graphics/battle_anims/sprites/055.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_057:: - .incbin "graphics/battle_anims/sprites/057.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_057:: - .incbin "graphics/battle_anims/sprites/057.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_058:: - .incbin "graphics/battle_anims/sprites/058.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_058:: - .incbin "graphics/battle_anims/sprites/058.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_059:: - .incbin "graphics/battle_anims/sprites/059.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_059:: - .incbin "graphics/battle_anims/sprites/059.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_060:: - .incbin "graphics/battle_anims/sprites/060.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_060:: - .incbin "graphics/battle_anims/sprites/060.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_061:: - .incbin "graphics/battle_anims/sprites/061.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_061:: - .incbin "graphics/battle_anims/sprites/061.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_062:: - .incbin "graphics/battle_anims/sprites/062.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_062:: - .incbin "graphics/battle_anims/sprites/062.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_063:: - .incbin "graphics/battle_anims/sprites/063.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_063:: - .incbin "graphics/battle_anims/sprites/063.gbapal.lz" - - .align 2 - .incbin "graphics/unused/metronome_hand_small.4bpp.lz" @ unused, was for metronome at one point - - .align 2 -gBattleAnimSpritePalette_091:: - .incbin "graphics/battle_anims/sprites/091.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_065:: - .incbin "graphics/battle_anims/sprites/065.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_065:: - .incbin "graphics/battle_anims/sprites/065.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_066:: - .incbin "graphics/battle_anims/sprites/066.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_066:: - .incbin "graphics/battle_anims/sprites/066.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_070:: - .incbin "graphics/battle_anims/sprites/070.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_070:: - .incbin "graphics/battle_anims/sprites/070.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_071:: - .incbin "graphics/battle_anims/sprites/071.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_072:: - .incbin "graphics/battle_anims/sprites/072.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_072:: - .incbin "graphics/battle_anims/sprites/072.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_073:: - .incbin "graphics/battle_anims/sprites/073.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_073:: - .incbin "graphics/battle_anims/sprites/073.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_075:: - .incbin "graphics/battle_anims/sprites/075.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_075:: - .incbin "graphics/battle_anims/sprites/075.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_078:: - .incbin "graphics/battle_anims/sprites/078.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_078:: - .incbin "graphics/battle_anims/sprites/078.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_079:: - .incbin "graphics/battle_anims/sprites/079.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_080:: - .incbin "graphics/battle_anims/sprites/080.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_080:: - .incbin "graphics/battle_anims/sprites/080.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_081:: - .incbin "graphics/battle_anims/sprites/081.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_081:: - .incbin "graphics/battle_anims/sprites/081.gbapal.lz" - - .align 2 - .incbin "graphics/unknown/unknown_C0CA1C.bin" - - .align 2 - .incbin "graphics/unknown/unknown_C0CA40.bin" - - .align 2 - .incbin "graphics/unknown/unknown_C0CA64.bin" - - .align 2 - .incbin "graphics/unused/line_sketch_2.8bpp.lz" - - .align 2 - .incbin "graphics/unknown/unknown_C0CAE0.bin" - - .align 2 - .incbin "graphics/unused/line_sketch_2.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_082:: - .incbin "graphics/battle_anims/sprites/082.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_082:: - .incbin "graphics/battle_anims/sprites/082.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_083:: - .incbin "graphics/battle_anims/sprites/083.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_084:: - .incbin "graphics/battle_anims/sprites/084.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_085:: - .incbin "graphics/battle_anims/sprites/085.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_086:: - .incbin "graphics/battle_anims/sprites/086.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_088:: - .incbin "graphics/battle_anims/sprites/088.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_089:: - .incbin "graphics/battle_anims/sprites/089.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_090:: - .incbin "graphics/battle_anims/sprites/090.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_092:: - .incbin "graphics/battle_anims/sprites/092.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_093:: - .incbin "graphics/battle_anims/sprites/093.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_094:: - .incbin "graphics/battle_anims/sprites/094.gbapal.lz" - - .align 2 - .incbin "graphics/unknown/unknown_D0D2B4.bin.lz" - - .align 2 -gBattleAnimSpritePalette_095:: - .incbin "graphics/battle_anims/sprites/095.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_096:: - .incbin "graphics/battle_anims/sprites/096.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_097:: - .incbin "graphics/battle_anims/sprites/097.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_100:: - .incbin "graphics/battle_anims/sprites/100.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_101:: - .incbin "graphics/battle_anims/sprites/101.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_103:: - .incbin "graphics/battle_anims/sprites/103.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_083:: - .incbin "graphics/battle_anims/sprites/083.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_084:: - .incbin "graphics/battle_anims/sprites/084.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_085:: - .incbin "graphics/battle_anims/sprites/085.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_086:: - .incbin "graphics/battle_anims/sprites/086.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_088:: - .incbin "graphics/battle_anims/sprites/088.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_089:: - .incbin "graphics/battle_anims/sprites/089.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_090:: - .incbin "graphics/battle_anims/sprites/090.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_091:: - .incbin "graphics/battle_anims/sprites/091.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_092:: - .incbin "graphics/battle_anims/sprites/092.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_093:: - .incbin "graphics/battle_anims/sprites/093.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_094:: - .incbin "graphics/battle_anims/sprites/094.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_095:: - .incbin "graphics/battle_anims/sprites/095.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_096:: - .incbin "graphics/battle_anims/sprites/096.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_097:: - .incbin "graphics/battle_anims/sprites/097.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_098:: - .incbin "graphics/battle_anims/sprites/098.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_100:: - .incbin "graphics/battle_anims/sprites/100.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_101:: - .incbin "graphics/battle_anims/sprites/101.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_102:: - .incbin "graphics/battle_anims/sprites/102.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_103:: - .incbin "graphics/battle_anims/sprites/103.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_104:: - .incbin "graphics/battle_anims/sprites/104.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_104:: - .incbin "graphics/battle_anims/sprites/104.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_105:: - .incbin "graphics/battle_anims/sprites/105.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_105:: - .incbin "graphics/battle_anims/sprites/105.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_106:: - .incbin "graphics/battle_anims/sprites/106.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_107:: - .incbin "graphics/battle_anims/sprites/107.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_107:: - .incbin "graphics/battle_anims/sprites/107.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_108:: - .incbin "graphics/battle_anims/sprites/108.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_109:: - .incbin "graphics/battle_anims/sprites/109.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_109:: - .incbin "graphics/battle_anims/sprites/109.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_110:: - .incbin "graphics/battle_anims/sprites/110.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_111:: - .incbin "graphics/battle_anims/sprites/111.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_111:: - .incbin "graphics/battle_anims/sprites/111.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_112:: - .incbin "graphics/battle_anims/sprites/112.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_112:: - .incbin "graphics/battle_anims/sprites/112.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_113:: - .incbin "graphics/battle_anims/sprites/113.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_113:: - .incbin "graphics/battle_anims/sprites/113.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_114:: - .incbin "graphics/battle_anims/sprites/114.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_114:: - .incbin "graphics/battle_anims/sprites/114.gbapal.lz" - - .align 2 - .incbin "graphics/unused/blue_frame.bin.lz" @ P1, P2, P3 and P4 tilemaps? - - .align 2 - .incbin "graphics/unused/redyellowgreen_frame.bin.lz" - - .align 2 - .incbin "graphics/unused/color_frames.4bpp.lz" - - .align 2 - .incbin "graphics/unused/color_frames.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_115:: - .incbin "graphics/battle_anims/sprites/115.4bpp.lz" - - .align 2 - .incbin "graphics/unused/water_splash.8bpp.lz" - - .align 2 - .incbin "graphics/unused/water_splash.bin.lz" - - .align 2 - .incbin "graphics/unused/water_splash.gbapal.lz" - - .align 2 - .incbin "graphics/unused/basic_frame.4bpp.lz" - - .align 2 - .incbin "graphics/unused/basic_frame.gbapal.lz" - - .align 2 - .incbin "graphics/unused/basic_frame.bin.lz" - - .align 2 -gBattleInterface_BallStatusBarPal:: @ 8C11B9C - .incbin "graphics/battle_interface/ball_status_bar.gbapal" - - .align 2 -gBattleInterface_BallDisplayPal:: @ 8C11BBC - .incbin "graphics/battle_interface/ball_display.gbapal" - - .align 2 -gHealthboxElementsGfxTable:: @ 8C11BDC - .incbin "graphics/battle_interface/hpbar.4bpp" - .incbin "graphics/battle_interface/expbar.4bpp" - .incbin "graphics/battle_interface/status_psn.4bpp" - .incbin "graphics/battle_interface/status_par.4bpp" - .incbin "graphics/battle_interface/status_slp.4bpp" - .incbin "graphics/battle_interface/status_frz.4bpp" - .incbin "graphics/battle_interface/status_brn.4bpp" - .incbin "graphics/battle_interface/misc.4bpp" - .incbin "graphics/battle_interface/hpbar_anim.4bpp" - .incbin "graphics/battle_interface/misc_frameend.4bpp" - - .align 2 -gBattleInterface_BallDisplayGfx:: @ 8C1241C - .incbin "graphics/battle_interface/ball_display.4bpp" - - .align 2 -gUnknown_08C1249C:: @ 8C1249C - .incbin "graphics/battle_interface/ball_display_unused_extra.4bpp" - .incbin "graphics/battle_interface/status2.4bpp" @ these three duplicate sets of graphics are for the opponent pokemon and are also for use in double battles. they use dynamic palettes so coloring them is an extreme headache and wont be done for now. - .incbin "graphics/battle_interface/status3.4bpp" - .incbin "graphics/battle_interface/status4.4bpp" - .incbin "graphics/unknown/unknown_D12FEC.4bpp" - .incbin "graphics/unknown/unknown_D1300C.4bpp" - - @ even more seemingly unused windows. lovely. - .incbin "graphics/battle_interface/unused_window3.4bpp.lz" - .incbin "graphics/battle_interface/unused_window4.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_116:: - .incbin "graphics/battle_anims/sprites/116.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_116:: - .incbin "graphics/battle_anims/sprites/116.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_117:: - .incbin "graphics/battle_anims/sprites/117.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_117:: - .incbin "graphics/battle_anims/sprites/117.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_118:: - .incbin "graphics/battle_anims/sprites/118.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_118:: - .incbin "graphics/battle_anims/sprites/118.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_119:: - .incbin "graphics/battle_anims/sprites/119.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_119:: - .incbin "graphics/battle_anims/sprites/119.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_120:: - .incbin "graphics/battle_anims/sprites/120.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_120:: - .incbin "graphics/battle_anims/sprites/120.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_121:: - .incbin "graphics/battle_anims/sprites/121.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_121:: - .incbin "graphics/battle_anims/sprites/121.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_122:: - .incbin "graphics/battle_anims/sprites/122.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_122:: - .incbin "graphics/battle_anims/sprites/122.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_123:: - .incbin "graphics/battle_anims/sprites/123.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_124:: - .incbin "graphics/battle_anims/sprites/124.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_124:: - .incbin "graphics/battle_anims/sprites/124.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_125:: - .incbin "graphics/battle_anims/sprites/125.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_125:: - .incbin "graphics/battle_anims/sprites/125.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_126:: - .incbin "graphics/battle_anims/sprites/126.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_126:: - .incbin "graphics/battle_anims/sprites/126.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_127:: - .incbin "graphics/battle_anims/sprites/127.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_127:: - .incbin "graphics/battle_anims/sprites/127.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_128:: - .incbin "graphics/battle_anims/sprites/128.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_128:: - .incbin "graphics/battle_anims/sprites/128.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_129:: - .incbin "graphics/battle_anims/sprites/129.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_130:: - .incbin "graphics/battle_anims/sprites/130.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_130:: - .incbin "graphics/battle_anims/sprites/130.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_131:: - .incbin "graphics/battle_anims/sprites/131.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_132:: - .incbin "graphics/battle_anims/sprites/132.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_132:: - .incbin "graphics/battle_anims/sprites/132.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_133:: - .incbin "graphics/battle_anims/sprites/133.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_133:: - .incbin "graphics/battle_anims/sprites/133.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_134:: - .incbin "graphics/battle_anims/sprites/134.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_076:: - .incbin "graphics/battle_anims/sprites/076.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_076:: - .incbin "graphics/battle_anims/sprites/076.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_077:: - .incbin "graphics/battle_anims/sprites/077.4bpp.lz" - - .align 2 - .incbin "graphics/unused/old_contest.4bpp.lz" - - .align 2 - .incbin "graphics/unused/old_contest.gbapal.lz" - - .align 2 - .incbin "graphics/unused/old_contest.bin.lz" - - .align 2 - .incbin "graphics/unknown/unknown_C15BC0.bin.lz" - - .align 2 - .incbin "graphics/unused/old_contest_2.4bpp.lz" - - .align 2 -gUnknown_08C16E90:: @ 8C16E90 - .incbin "graphics/unused/old_contest_2.gbapal.lz" - - .align 2 -gUnknown_08C16FA8:: @ 8C16FA8 - .incbin "graphics/unused/old_contest_2.bin.lz" - - .align 2 -gUnknown_08C17170:: @ 8C17170 - .incbin "graphics/unknown/unknown_C17170.bin.lz" - - .align 2 - .incbin "graphics/unknown/unknown_C17410.bin.lz" - - .align 2 - .incbin "graphics/unknown/unknown_C1751C.bin.lz" - - .align 2 -gUnknown_08C17980:: @ 8C17980 - .incbin "graphics/unknown/unknown_C17980.bin.lz" - - .align 2 -gContestMiscGfx:: @ 8C17AB0 - .incbin "graphics/contest/misc.4bpp.lz" - - .align 2 -gContestAudienceGfx:: @ 8C1850C - .incbin "graphics/contest/audience.4bpp.lz" - - .align 2 -gUnknown_08C19168:: - .incbin "graphics/contest/faces.4bpp.lz" - - .align 2 -gContestJudgeSymbolsGfx:: - .incbin "graphics/contest/judge_symbols.4bpp.lz" - - .align 2 -gContest3Pal:: - .incbin "graphics/contest/judge_symbols.gbapal.lz" - - .align 2 -gTiles_8C19450:: - .incbin "graphics/contest/heart.4bpp" - - .align 2 - .incbin "graphics/unknown/unknown_C19470.4bpp.lz" - - .align 2 - .incbin "graphics/unknown/unknown_C19470.gbapal.lz" - - .align 2 -gUnknown_08C19588:: @ 8C19588 - .incbin "graphics/contest/misc_2.4bpp.lz" - - .align 2 -gUnknown_08C19EEC:: @ 8C19EEC - .incbin "graphics/contest/misc_2_tilemap_1.bin.lz" - - .align 2 -gUnknown_08C1A000:: @ 8C1A000 - .incbin "graphics/contest/misc_2_tilemap_2.bin.lz" - - .align 2 -gUnknown_08C1A12C:: @ 8C1A12C - .incbin "graphics/contest/misc_2_tilemap_3.bin.lz" - - .align 2 -gUnknown_08C1A2B4:: @ 8C1A2B4 - .incbin "graphics/contest/misc_2.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_135:: - .incbin "graphics/battle_anims/sprites/135.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_135:: - .incbin "graphics/battle_anims/sprites/135.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_Particles:: - .incbin "graphics/battle_anims/sprites/particles.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_136:: - .incbin "graphics/battle_anims/sprites/136.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_136:: - .incbin "graphics/battle_anims/sprites/136.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_137:: - .incbin "graphics/battle_anims/sprites/137.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_139:: - .incbin "graphics/battle_anims/sprites/139.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_139:: - .incbin "graphics/battle_anims/sprites/139.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_145:: - .incbin "graphics/battle_anims/sprites/145.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_138:: - .incbin "graphics/battle_anims/sprites/138.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_140:: - .incbin "graphics/battle_anims/sprites/140.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_140:: - .incbin "graphics/battle_anims/sprites/140.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_141:: - .incbin "graphics/battle_anims/sprites/141.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_141:: - .incbin "graphics/battle_anims/sprites/141.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_142:: - .incbin "graphics/battle_anims/sprites/142.4bpp.lz" - - .align 2 - .incbin "graphics/unused/old_beatup.4bpp.lz" - - .align 2 - .incbin "graphics/unused/old_beatup.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_147:: - .incbin "graphics/battle_anims/sprites/147.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_147:: - .incbin "graphics/battle_anims/sprites/147.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_149:: - .incbin "graphics/battle_anims/sprites/149.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_148:: - .incbin "graphics/battle_anims/sprites/148.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_148:: - .incbin "graphics/battle_anims/sprites/148.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_259:: - .incbin "graphics/battle_anims/sprites/259.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_074:: - .incbin "graphics/battle_anims/sprites/074.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_074:: - .incbin "graphics/battle_anims/sprites/074.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_150:: - .incbin "graphics/battle_anims/sprites/150.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_150:: - .incbin "graphics/battle_anims/sprites/150.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_151:: - .incbin "graphics/battle_anims/sprites/151.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_153:: - .incbin "graphics/battle_anims/sprites/153.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_153:: - .incbin "graphics/battle_anims/sprites/153.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_154:: - .incbin "graphics/battle_anims/sprites/154.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_154:: - .incbin "graphics/battle_anims/sprites/154.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_155:: - .incbin "graphics/battle_anims/sprites/155.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_155:: - .incbin "graphics/battle_anims/sprites/155.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_156:: - .incbin "graphics/battle_anims/sprites/156.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_156:: - .incbin "graphics/battle_anims/sprites/156.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_157:: - .incbin "graphics/battle_anims/sprites/157.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_157:: - .incbin "graphics/battle_anims/sprites/157.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_158:: - .incbin "graphics/battle_anims/sprites/158.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_158:: - .incbin "graphics/battle_anims/sprites/158.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_159:: - .incbin "graphics/battle_anims/sprites/159.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_159:: - .incbin "graphics/battle_anims/sprites/159.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_160:: - .incbin "graphics/battle_anims/sprites/160.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_160:: - .incbin "graphics/battle_anims/sprites/160.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_144:: - .incbin "graphics/battle_anims/sprites/144.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_144:: - .incbin "graphics/battle_anims/sprites/144.gbapal.lz" - - .align 2 - .incbin "graphics/unknown/unknown_D1C060.4bpp.lz" - - .align 2 - .incbin "graphics/unknown/unknown_D1C060.gbapal.lz" - - .align 2 - .incbin "graphics/unknown/unknown_D1C060.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_162:: - .incbin "graphics/battle_anims/sprites/162.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_162:: - .incbin "graphics/battle_anims/sprites/162.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_163:: - .incbin "graphics/battle_anims/sprites/163.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_163:: - .incbin "graphics/battle_anims/sprites/163.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_288:: - .incbin "graphics/battle_anims/sprites/288.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_164:: - .incbin "graphics/battle_anims/sprites/164.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_165:: - .incbin "graphics/battle_anims/sprites/165.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_166:: - .incbin "graphics/battle_anims/sprites/166.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_166:: - .incbin "graphics/battle_anims/sprites/166.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_167:: - .incbin "graphics/battle_anims/sprites/167.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_168:: - .incbin "graphics/battle_anims/sprites/168.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_169:: - .incbin "graphics/battle_anims/sprites/169.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_170:: - .incbin "graphics/battle_anims/sprites/170.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_171:: - .incbin "graphics/battle_anims/sprites/171.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_171:: - .incbin "graphics/battle_anims/sprites/171.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_172:: - .incbin "graphics/battle_anims/sprites/172.gbapal.lz" - - .align 2 -gContestJudgeGfx:: - .incbin "graphics/contest/judge.4bpp.lz" - - .align 2 -gContest2Pal:: @ 8C1C6B8 - .incbin "graphics/contest/judge.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_001:: - .incbin "graphics/battle_anims/sprites/001.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_001:: - .incbin "graphics/battle_anims/sprites/001.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_173:: - .incbin "graphics/battle_anims/sprites/173.4bpp.lz" - - .align 2 -gBattleAnimBackgroundImage_00:: - .incbin "graphics/battle_anims/backgrounds/00.4bpp.lz" - - .align 2 -gBattleAnimBackgroundPalette_00:: - .incbin "graphics/battle_anims/backgrounds/00.gbapal.lz" - - .align 2 -gBattleAnimBackgroundTilemap_00:: - .incbin "graphics/battle_anims/backgrounds/00.bin.lz" - - .align 2 -gUnknown_08C1D0AC:: @ 8C1D0AC - .incbin "graphics/battle_anims/masks/metal_shine.4bpp.lz" - - .align 2 -gUnknown_08C1D1E8:: @ 8C1D1E8 - .incbin "graphics/battle_anims/masks/metal_shine.gbapal.lz" - - .align 2 -gUnknown_08C1D210:: @ 8C1D210 - .incbin "graphics/battle_anims/masks/metal_shine.bin.lz" - - .align 2 - .incbin "graphics/unused/goosuto.4bpp.lz" @ ghost - - .align 2 - .incbin "graphics/unused/goosuto.gbapal.lz" - - .align 2 - .incbin "graphics/unused/goosuto.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_174:: - .incbin "graphics/battle_anims/sprites/174.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_174:: - .incbin "graphics/battle_anims/sprites/174.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_175:: - .incbin "graphics/battle_anims/sprites/175.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_175:: - .incbin "graphics/battle_anims/sprites/175.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_176:: - .incbin "graphics/battle_anims/sprites/176.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_176:: - .incbin "graphics/battle_anims/sprites/176.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_177:: - .incbin "graphics/battle_anims/sprites/177.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_177:: - .incbin "graphics/battle_anims/sprites/177.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_178:: - .incbin "graphics/battle_anims/sprites/178.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_178:: - .incbin "graphics/battle_anims/sprites/178.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_179:: - .incbin "graphics/battle_anims/sprites/179.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_179:: - .incbin "graphics/battle_anims/sprites/179.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_180:: - .incbin "graphics/battle_anims/sprites/180.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_181:: - .incbin "graphics/battle_anims/sprites/181.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_182:: - .incbin "graphics/battle_anims/sprites/182.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_182:: - .incbin "graphics/battle_anims/sprites/182.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_183:: - .incbin "graphics/battle_anims/sprites/183.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_183:: - .incbin "graphics/battle_anims/sprites/183.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_184:: - .incbin "graphics/battle_anims/sprites/184.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_184:: - .incbin "graphics/battle_anims/sprites/184.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_185:: - .incbin "graphics/battle_anims/sprites/185.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_185:: - .incbin "graphics/battle_anims/sprites/185.gbapal.lz" - - .align 2 -gBattleAnimBackgroundImage_03:: - .incbin "graphics/battle_anims/backgrounds/03.4bpp.lz" - - .align 2 -gBattleAnimBackgroundPalette_03:: - .incbin "graphics/battle_anims/backgrounds/03.gbapal.lz" - - .align 2 -gBattleAnimBackgroundTilemap_03:: - .incbin "graphics/battle_anims/backgrounds/03.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_187:: - .incbin "graphics/battle_anims/sprites/187.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_187:: - .incbin "graphics/battle_anims/sprites/187.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_186:: - .incbin "graphics/battle_anims/sprites/186.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_186:: - .incbin "graphics/battle_anims/sprites/186.gbapal.lz" - - .align 2 -gUnknown_08C1F1C8:: @ 8C1F1C8 - .incbin "graphics/battle_interface/window.4bpp.lz" - - .align 2 -gUnknown_08C1F46C:: @ 8C1F46C - .incbin "graphics/battle_interface/window2.4bpp.lz" - - .align 2 -gUnknown_08C1F5E8:: @ 8C1F5E8 - .incbin "graphics/battle_interface/window3.4bpp.lz" - - .align 2 -gUnknown_08C1F76C:: @ 8C1F76C - .incbin "graphics/battle_interface/window4.4bpp.lz" - - .align 2 -gUnknown_08C1F8E8:: @ 8C1F8E8 - .incbin "graphics/battle_interface/window5.4bpp.lz" - - .align 2 - .incbin "graphics/unused/shadow.4bpp.lz" - - .align 2 - .incbin "graphics/unused/shadow.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_014:: - .incbin "graphics/battle_anims/sprites/014.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_014:: - .incbin "graphics/battle_anims/sprites/014.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_190:: - .incbin "graphics/battle_anims/sprites/190.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_190:: - .incbin "graphics/battle_anims/sprites/190.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_191:: - .incbin "graphics/battle_anims/sprites/191.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_191:: - .incbin "graphics/battle_anims/sprites/191.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_189:: - .incbin "graphics/battle_anims/sprites/189.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_189:: - .incbin "graphics/battle_anims/sprites/189.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_192:: - .incbin "graphics/battle_anims/sprites/192.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_192:: - .incbin "graphics/battle_anims/sprites/192.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_193:: - .incbin "graphics/battle_anims/sprites/193.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_193:: - .incbin "graphics/battle_anims/sprites/193.gbapal.lz" - - .align 2 -gUnknown_08C20668:: @ 8C20668 - .incbin "graphics/battle_anims/masks/curse.4bpp.lz" - - .align 2 -gUnknown_08C20684:: @ 8C20684 - .incbin "graphics/battle_anims/masks/curse.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_002:: @ 8D20B30 - .incbin "graphics/battle_anims/sprites/002.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_002:: @ 8D20C14 - .incbin "graphics/battle_anims/sprites/002.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_196:: @ 8D20C3C - .incbin "graphics/battle_anims/sprites/196.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_196:: @ 8D20FE0 - .incbin "graphics/battle_anims/sprites/196.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_194:: @ 8D20FF8 - .incbin "graphics/battle_anims/sprites/194.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_194:: @ 8D21330 - .incbin "graphics/battle_anims/sprites/194.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_195:: @ 8D21358 - .incbin "graphics/battle_anims/sprites/195.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_195:: @ 8D21410 - .incbin "graphics/battle_anims/sprites/195.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_197:: @ 8D21430 - .incbin "graphics/battle_anims/sprites/197.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_197:: @ 8D215A0 - .incbin "graphics/battle_anims/sprites/197.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_198:: @ 8D215C8 - .incbin "graphics/battle_anims/sprites/198.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_198:: @ 8D219B8 - .incbin "graphics/battle_anims/sprites/198.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_199:: @ 8D219E0 - .incbin "graphics/battle_anims/sprites/199.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_199:: @ 8D21AA8 - .incbin "graphics/battle_anims/sprites/199.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_200:: @ 8D21AC4 - .incbin "graphics/battle_anims/sprites/200.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_200:: @ 8D21C04 - .incbin "graphics/battle_anims/sprites/200.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_201:: @ 8D21C20 - .incbin "graphics/battle_anims/sprites/201.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_201:: @ 8D22290 - .incbin "graphics/battle_anims/sprites/201.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_204:: @ 8D222B8 - .incbin "graphics/battle_anims/sprites/204.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_204:: @ 8D2242C - .incbin "graphics/battle_anims/sprites/204.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_202:: @ 8D22454 - .incbin "graphics/battle_anims/sprites/202.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_202:: @ 8D225BC - .incbin "graphics/battle_anims/sprites/202.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_203:: @ 8D225E0 - .incbin "graphics/battle_anims/sprites/203.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_203:: @ 8D2278C - .incbin "graphics/battle_anims/sprites/203.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_206:: @ 8D227B0 - .incbin "graphics/battle_anims/sprites/206.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_206:: @ 8D229BC - .incbin "graphics/battle_anims/sprites/206.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_205:: @ 8D22A50 - .incbin "graphics/battle_anims/sprites/205.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_205:: @ 8D22C84 - .incbin "graphics/battle_anims/sprites/205.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_207:: @ 8D22CA8 - .incbin "graphics/battle_anims/sprites/207.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_207:: @ 8D22D74 - .incbin "graphics/battle_anims/sprites/207.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_208:: @ 8D22D98 - .incbin "graphics/battle_anims/sprites/208.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_209:: @ 8D23188 - .incbin "graphics/battle_anims/sprites/209.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_209:: @ 8D23490 - .incbin "graphics/battle_anims/sprites/209.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_064:: @ 8D234B0 - .incbin "graphics/battle_anims/sprites/064.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_064:: @ 8D235A0 - .incbin "graphics/battle_anims/sprites/064.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_210:: @ 8D235C4 - .incbin "graphics/battle_anims/sprites/210.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_219:: @ 8D2362C - .incbin "graphics/battle_anims/sprites/219.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_210:: @ 8D2364C - .incbin "graphics/battle_anims/sprites/210.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_216:: @ 8D2366C - .incbin "graphics/battle_anims/sprites/216.gbapal.lz" - - .align 2 -gUnknown_08C232E0:: @ 8C232E0 - .incbin "graphics/battle_anims/backgrounds/attract.4bpp.lz" - - .align 2 -gUnknown_08C23D50:: @ 8C23D50 - .incbin "graphics/battle_anims/backgrounds/attract.gbapal.lz" - - .align 2 -gUnknown_08C23D78:: @ 8C23D78 - .incbin "graphics/battle_anims/backgrounds/attract.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_217:: @ 8D243A0 - .incbin "graphics/battle_anims/sprites/217.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_217:: @ 8D24408 - .incbin "graphics/battle_anims/sprites/217.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_212:: @ 8D24428 - .incbin "graphics/battle_anims/sprites/212.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_211:: @ 8D2465C - .incbin "graphics/battle_anims/sprites/211.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_213:: @ 8D246AC - .incbin "graphics/battle_anims/sprites/213.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_211:: @ 8D24918 - .incbin "graphics/battle_anims/sprites/211.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_214:: @ 8D2493C - .incbin "graphics/battle_anims/sprites/214.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_215:: @ 8D24BCC - .incbin "graphics/battle_anims/sprites/215.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_215:: @ 8D24D58 - .incbin "graphics/battle_anims/sprites/215.gbapal.lz" - - .align 2 -gUnknown_08C249D0:: @ 8C249D0 - .incbin "graphics/battle_anims/backgrounds/scary_face.gbapal.lz" - - .align 2 -gUnknown_08C249F8:: @ 8C249F8 - .incbin "graphics/battle_anims/backgrounds/scary_face.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_218:: @ 8D24FD4 - .incbin "graphics/battle_anims/sprites/218.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_218:: @ 8D24FFC - .incbin "graphics/battle_anims/sprites/218.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_087:: @ 8D250A8 - .incbin "graphics/battle_anims/sprites/087.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_087:: @ 8D25100 - .incbin "graphics/battle_anims/sprites/087.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_018:: @ 8D25128 - .incbin "graphics/battle_anims/sprites/018.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_018:: @ 8D25164 - .incbin "graphics/battle_anims/sprites/018.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_220:: @ 8D25180 - .incbin "graphics/battle_anims/sprites/220.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_220:: @ 8D251A8 - .incbin "graphics/battle_anims/sprites/220.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_221:: @ 8D252D4 - .incbin "graphics/battle_anims/sprites/221.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_221:: @ 8D252F4 - .incbin "graphics/battle_anims/sprites/221.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_222:: @ 8D25558 - .incbin "graphics/battle_anims/sprites/222.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_222:: @ 8D25844 - .incbin "graphics/battle_anims/sprites/222.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_223:: @ 8D2586C - .incbin "graphics/battle_anims/sprites/223.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_223:: @ 8D2588C - .incbin "graphics/battle_anims/sprites/223.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_224:: @ 8D25B20 - .incbin "graphics/battle_anims/sprites/224.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_224:: @ 8D25B40 - .incbin "graphics/battle_anims/sprites/224.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_230:: @ 8D25C3C - .incbin "graphics/battle_anims/sprites/230.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_230:: @ 8D25C64 - .incbin "graphics/battle_anims/sprites/230.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_228:: @ 8D25EA8 - .incbin "graphics/battle_anims/sprites/228.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_228:: @ 8D25EC8 - .incbin "graphics/battle_anims/sprites/228.4bpp.lz" - - .align 2 -gBattleAnimBackgroundPalette_04:: @ 8D25F70 - .incbin "graphics/battle_anims/backgrounds/04.gbapal.lz" - - .align 2 -gBattleAnimBackgroundImage_04:: @ 8D25F98 - .incbin "graphics/battle_anims/backgrounds/04.4bpp.lz" - - .align 2 -gBattleAnimBackgroundTilemap_04:: @ 8D26D04 - .incbin "graphics/battle_anims/backgrounds/04.bin.lz" - - .align 2 -gBattleAnimBackgroundTilemap_05:: @ 8D27200 - .incbin "graphics/battle_anims/backgrounds/05.bin.lz" - - .align 2 -gBattleAnimBackgroundTilemap_06:: @ 8D276D0 - .incbin "graphics/battle_anims/backgrounds/06.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_225:: @ 8D27B10 - .incbin "graphics/battle_anims/sprites/225.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_225:: @ 8D27C94 - .incbin "graphics/battle_anims/sprites/225.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_227:: @ 8D27CBC - .incbin "graphics/battle_anims/sprites/227.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_226:: @ 8D27E04 - .incbin "graphics/battle_anims/sprites/226.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_226:: @ 8D27E90 - .incbin "graphics/battle_anims/sprites/226.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_229:: @ 8D27EB4 - .incbin "graphics/battle_anims/sprites/229.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_229:: @ 8D28070 - .incbin "graphics/battle_anims/sprites/229.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_099:: @ 8D28098 - .incbin "graphics/battle_anims/sprites/099.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_099:: @ 8D281B8 - .incbin "graphics/battle_anims/sprites/099.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_232:: @ 8D281E0 - .incbin "graphics/battle_anims/sprites/232.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_231:: @ 8D28718 - .incbin "graphics/battle_anims/sprites/231.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_231:: @ 8D28740 - .incbin "graphics/battle_anims/sprites/231.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_233:: @ 8D28910 - .incbin "graphics/battle_anims/sprites/233.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_233:: @ 8D28994 - .incbin "graphics/battle_anims/sprites/233.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_234:: @ 8D289BC - .incbin "graphics/battle_anims/sprites/234.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_234:: @ 8D28B7C - .incbin "graphics/battle_anims/sprites/234.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_238:: @ 8D28BA0 - .incbin "graphics/battle_anims/sprites/238.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_238:: @ 8D28C08 - .incbin "graphics/battle_anims/sprites/238.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_235:: @ 8D28C2C - .incbin "graphics/battle_anims/sprites/235.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_235:: @ 8D28C7C - .incbin "graphics/battle_anims/sprites/235.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_236:: @ 8D28C98 - .incbin "graphics/battle_anims/sprites/236.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_237:: @ 8D28CB4 - .incbin "graphics/battle_anims/sprites/237.gbapal.lz" - - .align 2 -gBattleAnimBackgroundImage_07:: @ 8D28CD0 - .incbin "graphics/battle_anims/backgrounds/07.4bpp.lz" - - .align 2 -gBattleAnimBackgroundPalette_07:: @ 8D28E78 - .incbin "graphics/battle_anims/backgrounds/07.gbapal.lz" - - .align 2 -gBattleAnimBackgroundPalette_18:: @ 8D28EA0 - .incbin "graphics/battle_anims/backgrounds/18.gbapal.lz" - - .align 2 -gBattleAnimBackgroundTilemap_07:: @ 8D28EC8 - .incbin "graphics/battle_anims/backgrounds/07.bin.lz" - - .align 2 -gBattleAnimBackgroundTilemap_08:: @ 8D29058 - .incbin "graphics/battle_anims/backgrounds/08.bin.lz" - - .align 2 -gBattleAnimBackgroundImage_20:: @ 8D291E4 - .incbin "graphics/battle_anims/backgrounds/20.4bpp.lz" - - .align 2 -gBattleAnimBackgroundPalette_20:: @ 8D29C0C - .incbin "graphics/battle_anims/backgrounds/20.gbapal.lz" - - .align 2 -gBattleAnimBackgroundTilemap_20:: @ 8D29C2C - .incbin "graphics/battle_anims/backgrounds/20.bin.lz" - - .align 2 -gBattleAnimBackgroundTilemap_09:: @ 8D29E30 - .incbin "graphics/battle_anims/backgrounds/09.bin.lz" - - .align 2 -gBattleAnimBackgroundPalette_09:: @ 8D2A128 - .incbin "graphics/battle_anims/backgrounds/09.gbapal.lz" - - .align 2 -gBattleAnimBackgroundPalette_22:: @ 8D2A148 - .incbin "graphics/battle_anims/backgrounds/22.gbapal.lz" - - .align 2 -gBattleAnimBackgroundImage_09:: @ 8D2A168 - .incbin "graphics/battle_anims/backgrounds/09.4bpp.lz" - - .align 2 -gBattleAnimBackgroundTilemap_10:: @ 8D2A6E8 - .incbin "graphics/battle_anims/backgrounds/10.bin.lz" - - .align 2 -gUnknown_08C2A634:: @ 8C2A634 - .incbin "graphics/battle_anims/masks/morning_sun.4bpp.lz" - - .align 2 -gUnknown_08C2A6D4:: @ 8C2A6D4 - .incbin "graphics/battle_anims/masks/morning_sun.gbapal.lz" - - .align 2 -gUnknown_08C2A6EC:: @ 8C2A6EC - .incbin "graphics/battle_anims/masks/morning_sun.bin.lz" - - .align 2 -gBattleAnimBackgroundTilemap_12:: @ 8D2ABB4 - .incbin "graphics/battle_anims/backgrounds/12.bin.lz" - - .align 2 -gBattleAnimBackgroundTilemap_13:: @ 8D2AE7C - .incbin "graphics/battle_anims/backgrounds/13.bin.lz" - - .align 2 -gBattleAnimBackgroundTilemap_14:: @ 8D2B178 - .incbin "graphics/battle_anims/backgrounds/14.bin.lz" - - .align 2 -gBattleAnimBackgroundImage_12:: @ 8D2B408 - .incbin "graphics/battle_anims/backgrounds/12.4bpp.lz" - - .align 2 -gBattleAnimBackgroundPalette_12:: @ 8D2C170 - .incbin "graphics/battle_anims/backgrounds/12.gbapal.lz" - - .align 2 -gBattleAnimBackgroundImage_11:: @ 8D2C190 - .incbin "graphics/battle_anims/backgrounds/11.4bpp.lz" - - .align 2 -gBattleAnimBackgroundPalette_11:: @ 8D2CB2C - .incbin "graphics/battle_anims/backgrounds/11.gbapal.lz" - - .align 2 -gBattleAnimBackgroundTilemap_11:: @ 8D2CB54 - .incbin "graphics/battle_anims/backgrounds/11.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_239:: @ 8D2CE4C - .incbin "graphics/battle_anims/sprites/239.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_239:: @ 8D2CF30 - .incbin "graphics/battle_anims/sprites/239.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_143:: @ 8D2CF58 - .incbin "graphics/battle_anims/sprites/143.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_143:: @ 8D2D188 - .incbin "graphics/battle_anims/sprites/143.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_240:: @ 8D2D1A0 - .incbin "graphics/battle_anims/sprites/240.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_240:: @ 8D2D240 - .incbin "graphics/battle_anims/sprites/240.gbapal.lz" - - .align 2 -gSubstituteDollPal:: @ 8C2CEBC - .incbin "graphics/battle_anims/sprites/substitute.gbapal.lz" - - .align 2 -gSubstituteDollGfx:: @ 8C2CEE0 - .incbin "graphics/battle_anims/sprites/substitute.4bpp.lz" - - .align 2 -gSubstituteDollTilemap:: @ 8C2D120 - .incbin "graphics/battle_anims/sprites/substitute.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_241:: @ 8C2D348 - .incbin "graphics/battle_anims/sprites/241.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_241:: @ 8C2D40C - .incbin "graphics/battle_anims/sprites/241.gbapal.lz" - - .align 2 -gContestConfetti_Gfx:: @ 8C2D428 - .incbin "graphics/misc/confetti.4bpp.lz" - - .align 2 -gContestConfetti_Pal:: @ 8C2D548 - .incbin "graphics/misc/confetti.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_242:: @ 8C2D570 - .incbin "graphics/battle_anims/sprites/242.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_242:: @ 8C2D6AC - .incbin "graphics/battle_anims/sprites/242.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_243:: @ 8C2D6D0 - .incbin "graphics/battle_anims/sprites/243.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_243:: @ 8C2D6F8 - .incbin "graphics/battle_anims/sprites/243.gbapal.lz" - - .align 2 -gUnknown_08C2D720:: @ 8C2D720 - .incbin "graphics/battle_anims/masks/stat.4bpp.lz" - - .align 2 -gUnknown_08C2D930:: @ 8C2D930 - .incbin "graphics/battle_anims/masks/stat_tilemap_1.bin.lz" - - .align 2 -gUnknown_08C2DA4C:: @ 8C2DA4C - .incbin "graphics/battle_anims/masks/stat_tilemap_2.bin.lz" - - .align 2 -gUnknown_08C2DB68:: @ 8C2DB68 - .incbin "graphics/battle_anims/masks/stat1.gbapal.lz" - - .align 2 -gUnknown_08C2DB88:: @ 8C2DB88 - .incbin "graphics/battle_anims/masks/stat2.gbapal.lz" - - .align 2 -gUnknown_08C2DBA8:: @ 8C2DBA8 - .incbin "graphics/battle_anims/masks/stat3.gbapal.lz" - - .align 2 -gUnknown_08C2DBC8:: @ 8C2DBC8 - .incbin "graphics/battle_anims/masks/stat4.gbapal.lz" - - .align 2 -gUnknown_08C2DBE8:: @ 8C2DBE8 - .incbin "graphics/battle_anims/masks/stat5.gbapal.lz" - - .align 2 -gUnknown_08C2DC08:: @ 8C2DC08 - .incbin "graphics/battle_anims/masks/stat6.gbapal.lz" - - .align 2 -gUnknown_08C2DC28:: @ 8C2DC28 - .incbin "graphics/battle_anims/masks/stat7.gbapal.lz" - - .align 2 -gUnknown_08C2DC48:: @ 8C2DC48 - .incbin "graphics/battle_anims/masks/stat8.gbapal.lz" - - .align 2 -gUnknown_08C2DC68:: @ 8C2DC68 - .incbin "graphics/battle_anims/masks/cure_bubbles.4bpp.lz" - - .align 2 -gUnknown_08C2DDA4:: @ 8C2DDA4 - .incbin "graphics/battle_anims/masks/cure_bubbles.gbapal.lz" - - .align 2 -gUnknown_08C2DDC4:: @ 8C2DDC4 - .incbin "graphics/battle_anims/masks/cure_bubbles.bin.lz" - - .align 2 -gBattleAnimSpritePalette_245:: @ 8D2E28C - .incbin "graphics/battle_anims/sprites/245.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_245:: @ 8D2E2B4 - .incbin "graphics/battle_anims/sprites/245.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_246:: @ 8D2E458 - .incbin "graphics/battle_anims/sprites/246.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_244:: @ 8D2E900 - .incbin "graphics/battle_anims/sprites/244.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_244:: @ 8D2E9DC - .incbin "graphics/battle_anims/sprites/244.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_247:: @ 8D2E9F8 - .incbin "graphics/battle_anims/sprites/247.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_053:: @ 8D2EBDC - .incbin "graphics/battle_anims/sprites/053.4bpp.lz" - - .align 2 -gUnknown_08C2EA50:: @ 8C2EA50 - .incbin "graphics/battle_anims/masks/unknown_C2EA50.4bpp.lz" - - .align 2 -gUnknown_08C2EA9C:: @ 8C2EA9C - .incbin "graphics/battle_anims/masks/unknown_C2EA50.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_248:: @ 8D2EF50 - .incbin "graphics/battle_anims/sprites/248.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_248:: @ 8D2EF68 - .incbin "graphics/battle_anims/sprites/248.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_249:: @ 8D2EF80 - .incbin "graphics/battle_anims/sprites/249.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_249:: @ 8D2EFD0 - .incbin "graphics/battle_anims/sprites/249.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_250:: @ 8D2EFF0 - .incbin "graphics/battle_anims/sprites/250.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_251:: @ 8D2F1E4 - .incbin "graphics/battle_anims/sprites/251.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_251:: @ 8D2F248 - .incbin "graphics/battle_anims/sprites/251.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_252:: @ 8D2F260 - .incbin "graphics/battle_anims/sprites/252.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_252:: @ 8D2F378 - .incbin "graphics/battle_anims/sprites/252.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_253:: @ 8D2F39C - .incbin "graphics/battle_anims/sprites/253.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_253:: @ 8D2F578 - .incbin "graphics/battle_anims/sprites/253.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_254:: @ 8D2F5A0 - .incbin "graphics/battle_anims/sprites/254.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_254:: @ 8D2F6D8 - .incbin "graphics/battle_anims/sprites/254.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_255:: @ 8D2F700 - .incbin "graphics/battle_anims/sprites/255.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_255:: @ 8D2F778 - .incbin "graphics/battle_anims/sprites/255.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_258:: @ 8D2F78C - .incbin "graphics/battle_anims/sprites/258.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_258:: @ 8D2F874 - .incbin "graphics/battle_anims/sprites/258.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_256:: @ 8D2F89C - .incbin "graphics/battle_anims/sprites/256.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_256:: @ 8D2FC28 - .incbin "graphics/battle_anims/sprites/256.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_257:: @ 8D2FC50 - .incbin "graphics/battle_anims/sprites/257.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_257:: @ 8D2FD6C - .incbin "graphics/battle_anims/sprites/257.gbapal.lz" - - .incbin "graphics/unknown/unknown_C2F9E0.gbapal.lz" @ likely a palette - -@ 8C2FA08 - .include "data/graphics/pokemon/graphics.inc" - -@ 8D51DC8 - .include "data/graphics/trainers/graphics.inc" - - .align 2 -gMonIcon_QuestionMark:: @ 8D774D0 - .incbin "graphics/pokemon/icons/question_mark_icon.4bpp" - - .align 2 -gMonFootprint_QuestionMark:: @ 8D778D0 - .incbin "graphics/pokemon/footprints/question_mark_footprint.1bpp" - - .align 2 -gUnknown_08D778F0:: @ 8D778F0 - .incbin "graphics/battle_transitions/vs_frame.4bpp.lz" - - .align 2 -gUnknown_08D779D8:: @ 8D779D8 - .incbin "graphics/battle_transitions/vs_frame.bin.lz" - - .align 2 -gUnknown_08D77AE4:: @ 8D77AE4 - .incbin "graphics/battle_transitions/vs_frame.gbapal.lz" - - .align 2 -gUnknown_08D77B0C:: @ 8D77B0C - .incbin "graphics/battle_transitions/vs.4bpp.lz" - - .align 2 -gBattleTerrainTiles_TallGrass:: @ 8D77D68 - .incbin "graphics/battle_terrain/tall_grass/tiles.4bpp.lz" - - .align 2 -gBattleTerrainPalette_TallGrass:: @ 8D78318 - .incbin "graphics/battle_terrain/tall_grass/palette.gbapal.lz" - - .align 2 -gBattleTerrainTilemap_TallGrass:: @ 8D78350 - .incbin "graphics/battle_terrain/tall_grass/map.bin.lz" - - .align 2 -gBattleTerrainTiles_LongGrass:: @ 8D78600 - .incbin "graphics/battle_terrain/long_grass/tiles.4bpp.lz" - - .align 2 -gBattleTerrainPalette_LongGrass:: @ 8D78C78 - .incbin "graphics/battle_terrain/long_grass/palette.gbapal.lz" - - .align 2 -gBattleTerrainTilemap_LongGrass:: @ 8D78CB8 - .incbin "graphics/battle_terrain/long_grass/map.bin.lz" - - .align 2 -gBattleTerrainTiles_Sand:: @ 8D78F68 - .incbin "graphics/battle_terrain/sand/tiles.4bpp.lz" - - .align 2 -gBattleTerrainPalette_Sand:: @ 8D79560 - .incbin "graphics/battle_terrain/sand/palette.gbapal.lz" - - .align 2 -gBattleTerrainTilemap_Sand:: @ 8D795A8 - .incbin "graphics/battle_terrain/sand/map.bin.lz" - - .align 2 -gBattleTerrainTiles_Underwater:: @ 8D79858 - .incbin "graphics/battle_terrain/underwater/tiles.4bpp.lz" - - .align 2 -gBattleTerrainPalette_Underwater:: @ 8D79E10 - .incbin "graphics/battle_terrain/underwater/palette.gbapal.lz" - - .align 2 -gBattleTerrainTilemap_Underwater:: @ 8D79E58 - .incbin "graphics/battle_terrain/underwater/map.bin.lz" - - .align 2 -gBattleTerrainTiles_Water:: @ 8D7A108 - .incbin "graphics/battle_terrain/water/tiles.4bpp.lz" - - .align 2 -gBattleTerrainPalette_Water:: @ 8D7A6DC - .incbin "graphics/battle_terrain/water/palette.gbapal.lz" - - .align 2 -gBattleTerrainTilemap_Water:: @ 8D7A720 - .incbin "graphics/battle_terrain/water/map.bin.lz" - - .align 2 -gBattleTerrainTiles_PondWater:: @ 8D7A9D0 - .incbin "graphics/battle_terrain/pond_water/tiles.4bpp.lz" - - .align 2 -gBattleTerrainPalette_PondWater:: @ 8D7AF78 - .incbin "graphics/battle_terrain/pond_water/palette.gbapal.lz" - - .align 2 -gBattleTerrainTilemap_PondWater:: @ 8D7AFB8 - .incbin "graphics/battle_terrain/pond_water/map.bin.lz" - - .align 2 -gBattleTerrainTiles_Rock:: @ 8D7B268 - .incbin "graphics/battle_terrain/rock/tiles.4bpp.lz" - - .align 2 -gBattleTerrainPalette_Rock:: @ 8D7B828 - .incbin "graphics/battle_terrain/rock/palette.gbapal.lz" - - .align 2 -gBattleTerrainTilemap_Rock:: @ 8D7B864 - .incbin "graphics/battle_terrain/rock/map.bin.lz" - - .align 2 -gBattleTerrainTiles_Cave:: @ 8D7BB14 - .incbin "graphics/battle_terrain/cave/tiles.4bpp.lz" - - .align 2 -gBattleTerrainPalette_Cave:: @ 8D7C10C - .incbin "graphics/battle_terrain/cave/palette.gbapal.lz" - - .align 2 -gBattleTerrainTilemap_Cave:: @ 8D7C154 - .incbin "graphics/battle_terrain/cave/map.bin.lz" - - .align 2 -gBattleTerrainPalette_Plain:: @ 8D7C404 - .incbin "graphics/battle_terrain/plain/palette.gbapal.lz" - - .align 2 -gBattleTerrainTiles_Building:: @ 8D7C440 - .incbin "graphics/battle_terrain/building/tiles.4bpp.lz" - - .align 2 -gBattleTerrainPalette_Frontier:: @ 8D7C9EC - .incbin "graphics/battle_terrain/stadium/battle_frontier.gbapal.lz" @ this is also used for link battles - - .align 2 -gBattleTerrainTilemap_Building:: @ 8D7CA28 - .incbin "graphics/battle_terrain/building/map.bin.lz" - - .align 2 -gBattleTerrainTiles_Stadium:: @ 8D7CCD8 - .incbin "graphics/battle_terrain/stadium/tiles.4bpp.lz" - - .align 2 -gBattleTerrainTilemap_Stadium:: @ 8D7D2E0 - .incbin "graphics/battle_terrain/stadium/map.bin.lz" - - .align 2 -gBattleTerrainTiles_Rayquaza:: @ 8D7D590 - .incbin "graphics/battle_terrain/sky/tiles.4bpp.lz" - - .align 2 -gBattleTerrainTilemap_Rayquaza:: @ 8D7DC04 - .incbin "graphics/battle_terrain/sky/map.bin.lz" - - .align 2 -gBattleTerrainPalette_Building:: @ 8D7DEB4 - .incbin "graphics/battle_terrain/building/palette.gbapal.lz" - - .align 2 -gBattleTerrainPalette_Kyogre:: @ 8D7DEF4 - .incbin "graphics/battle_terrain/water/kyogre.gbapal.lz" - - .align 2 -gBattleTerrainPalette_Groudon:: @ 8D7DF30 - .incbin "graphics/battle_terrain/cave/groudon.gbapal.lz" - - .align 2 -gBattleTerrainPalette_BuildingGym:: @ 8D7DF88 - .incbin "graphics/battle_terrain/building/palette2.gbapal.lz" - - .align 2 -gBattleTerrainPalette_BuildingLeader:: @ 8D7DFC4 - .incbin "graphics/battle_terrain/building/palette3.gbapal.lz" - - .align 2 -gBattleTerrainPalette_StadiumAqua:: @ 8D7E000 - .incbin "graphics/battle_terrain/stadium/palette1.gbapal.lz" - - .align 2 -gBattleTerrainPalette_StadiumMagma:: @ 8D7E060 - .incbin "graphics/battle_terrain/stadium/palette2.gbapal.lz" - - .align 2 -gBattleTerrainPalette_StadiumSidney:: @ 8D7E0CC - .incbin "graphics/battle_terrain/stadium/palette3.gbapal.lz" - - .align 2 -gBattleTerrainPalette_StadiumPhoebe:: @ 8D7E11C - .incbin "graphics/battle_terrain/stadium/palette4.gbapal.lz" - - .align 2 -gBattleTerrainPalette_StadiumGlacia:: @ 8D7E164 - .incbin "graphics/battle_terrain/stadium/palette5.gbapal.lz" - - .align 2 -gBattleTerrainPalette_StadiumDrake:: @ 8D7E1A8 - .incbin "graphics/battle_terrain/stadium/palette6.gbapal.lz" - - .align 2 -gBattleTerrainPalette_StadiumWallace:: @ 8D7E1F8 - .incbin "graphics/battle_terrain/stadium/palette7.gbapal.lz" - - .align 2 -gBattleTerrainPalette_Rayquaza:: @ 8D7E234 - .incbin "graphics/battle_terrain/sky/palette.gbapal.lz" - - .align 2 -gBattleTerrainAnimTiles_TallGrass:: @ 8D7E280 - .incbin "graphics/battle_terrain/tall_grass/anim_tiles.4bpp.lz" - - .align 2 -gBattleTerrainAnimTilemap_TallGrass:: @ 8D7E808 - .incbin "graphics/battle_terrain/tall_grass/anim_map.bin.lz" - - .align 2 -gBattleTerrainAnimTiles_LongGrass:: @ 8D7E9C4 - .incbin "graphics/battle_terrain/long_grass/anim_tiles.4bpp.lz" - - .align 2 -gBattleTerrainAnimTilemap_LongGrass:: @ 8D7F0D4 - .incbin "graphics/battle_terrain/long_grass/anim_map.bin.lz" - - .align 2 -gBattleTerrainAnimTiles_Sand:: @ 8D7F30C - .incbin "graphics/battle_terrain/sand/anim_tiles.4bpp.lz" - - .align 2 -gBattleTerrainAnimTilemap_Sand:: @ 8D7F850 - .incbin "graphics/battle_terrain/sand/anim_map.bin.lz" - - .align 2 -gBattleTerrainAnimTiles_Underwater:: @ 8D7F9F8 - .incbin "graphics/battle_terrain/underwater/anim_tiles.4bpp.lz" - - .align 2 -gBattleTerrainAnimTilemap_Underwater:: @ 8D7FEC4 - .incbin "graphics/battle_terrain/underwater/anim_map.bin.lz" - - .align 2 -gBattleTerrainAnimTiles_Water:: @ 8D80054 - .incbin "graphics/battle_terrain/water/anim_tiles.4bpp.lz" - - .align 2 -gBattleTerrainAnimTilemap_Water:: @ 8D80660 - .incbin "graphics/battle_terrain/water/anim_map.bin.lz" - - .align 2 -gBattleTerrainAnimTiles_PondWater:: @ 8D80804 - .incbin "graphics/battle_terrain/pond_water/anim_tiles.4bpp.lz" - - .align 2 -gBattleTerrainAnimTilemap_PondWater:: @ 8D80D50 - .incbin "graphics/battle_terrain/pond_water/anim_map.bin.lz" - - .align 2 -gBattleTerrainAnimTiles_Rock:: @ 8D80E9C - .incbin "graphics/battle_terrain/rock/anim_tiles.4bpp.lz" - - .align 2 -gBattleTerrainAnimTilemap_Rock:: @ 8D8147C - .incbin "graphics/battle_terrain/rock/anim_map.bin.lz" - - .align 2 -gBattleTerrainAnimTiles_Cave:: @ 8D81610 - .incbin "graphics/battle_terrain/cave/anim_tiles.4bpp.lz" - - .align 2 -gBattleTerrainAnimTilemap_Cave:: @ 8D81E2C - .incbin "graphics/battle_terrain/cave/anim_map.bin.lz" - - .align 2 -gBattleTerrainAnimTiles_Building:: @ 8D820D4 - .incbin "graphics/battle_terrain/building/anim_tiles.4bpp.lz" - - .align 2 -gBattleTerrainAnimTilemap_Building:: @ 8D824E4 - .incbin "graphics/battle_terrain/building/anim_map.bin.lz" - - .align 2 -gBattleTerrainAnimTiles_Rayquaza:: @ 8D82608 - .incbin "graphics/battle_terrain/sky/anim_tiles.4bpp.lz" - - .align 2 -gBattleTerrainAnimTilemap_Rayquaza:: @ 8D82C70 - .incbin "graphics/battle_terrain/sky/anim_map.bin.lz" - - .align 2 -gUnknown_08D82F10:: @ 8D82F10 - .incbin "graphics/battle_frontier/tourney_bg.4bpp.lz" - - .align 2 -gUnknown_08D834FC:: @ 8D834FC - .incbin "graphics/battle_frontier/tourney_line.4bpp.lz" @ the red glow mask for the tourney advancement lines - - .align 2 -gUnknown_08D83900:: @ 8D83900 - .incbin "graphics/unknown/unknown_D83900.bin.lz" @ tilemaps likely - - .align 2 -gUnknown_08D83B2C:: @ 8D83B2C - .incbin "graphics/unknown/unknown_D83B2C.bin.lz" - - .align 2 -gUnknown_08D83C3C:: @ 8D83C3C - .incbin "graphics/unknown/unknown_D83C3C.bin.lz" - - .align 2 -gUnknown_08D83D50:: @ 8D83D50 - .incbin "graphics/battle_frontier/misc1.4bpp.lz" - - .align 2 -gUnknown_08D84970:: @ 8D84970 - .incbin "graphics/unknown/unknown_D84970.bin.lz" - - .align 2 -gUnknown_08D84F00:: @ 8D84F00 - .incbin "graphics/unknown/unknown_D84F00.bin.lz" - - .align 2 -gBattleFrontierGfx_DomeOptions:: @ 8D85058 - .incbin "graphics/battle_frontier/options.4bpp.lz" - - .align 2 -gUnknown_08D85358:: @ 8D85358 - .incbin "graphics/battle_frontier/options_pal1.gbapal.lz" - - .align 2 -gUnknown_08D85444:: @ 8D85444 - .incbin "graphics/battle_frontier/options_pal2.gbapal.lz" @ pokeball pal - - .align 2 -gUnknown_08D854C8:: @ 8D854C8 - .incbin "graphics/battle_frontier/options_pal3.gbapal.lz" @ arrow pal - - .align 2 -gUnknown_08D854E8:: @ 8D854E8 - .incbin "graphics/battle_frontier/symbols.4bpp.lz" - - .align 2 -gUnknown_08D855E8:: @ 8D855E8 - .incbin "graphics/battle_frontier/symbols.gbapal.lz" - - .align 2 -gUnknown_08D85600:: @ 8D85600 - .incbin "graphics/battle_frontier/text.gbapal.lz" @ text palette for frontier text. - - .align 2 -gUnknown_08D85620:: @ 8D85620 - .incbin "graphics/battle_frontier/text_pp.gbapal" @ text palette for PP text - - @ dome anim pals - - .align 2 -gTilesetAnims_BattleDomePals0_0:: @ 8D85640 - .incbin "graphics/battle_frontier/dome_anim1.gbapal" - - .align 2 -gTilesetAnims_BattleDomePals0_1:: @ 8D85660 - .incbin "graphics/battle_frontier/dome_anim2.gbapal" - - .align 2 -gTilesetAnims_BattleDomePals0_2:: @ 8D85680 - .incbin "graphics/battle_frontier/dome_anim3.gbapal" - - .align 2 -gTilesetAnims_BattleDomePals0_3:: @ 8D856A0 - .incbin "graphics/battle_frontier/dome_anim4.gbapal" - - @ 8D856C0 - .2byte 0x013F, 0x0119, 0x0113, 0x010E @ unused? - - .align 2 -gUnknown_08D856C8:: @ 8D856C8 - .incbin "graphics/battle_frontier/pyramid_light.gbapal" @ unfaded pal for the player light in battle pyramid - - .align 2 -gUnknown_08D857A8:: @ 8D857A8 - .incbin "graphics/battle_frontier/battle_tilemap1.bin.lz" - - .align 2 -gUnknown_08D85A1C:: @ 8D85A1C - .incbin "graphics/battle_frontier/battle_tilemap2.bin.lz" - - .align 2 -gIntro1GameFreakTextFadePal:: @ 8D85C50 - .incbin "graphics/intro/intro1_text.gbapal" @ game freak text blue fade - - .align 2 -gIntro2BrendanNoTurnPal:: @ 8D85CB0 - .incbin "graphics/intro/intro2_brendan_noturn.gbapal" - - .align 2 -gIntro3BgPal:: @ 8D85CD0 - .incbin "graphics/intro/intro3.gbapal" - - .align 2 -gIntro2VolbeatPal:: @ 8D85ED0 - .incbin "graphics/intro/intro2_volbeat.gbapal" - - .align 2 -gIntro2TorchicPal:: @ 8D85EF0 - .incbin "graphics/intro/intro2_torchic.gbapal" - - .align 2 -gIntro2ManectricPal:: @ 8D85ED0 - .incbin "graphics/intro/intro2_manectric.gbapal" - - .align 2 -gIntro2FlygonPal:: @ 8D85F30 - .incbin "graphics/intro/intro2_flygon.gbapal" - - .align 2 -gIntro2VolbeatGfx:: @ 8D85F50 - .incbin "graphics/intro/intro2_volbeat.4bpp.lz" - - .align 2 -gIntro2TorchicGfx:: @ 8D86130 - .incbin "graphics/intro/intro2_torchic.4bpp.lz" - - .align 2 -gIntro2ManectricGfx:: @ 8D86550 - .incbin "graphics/intro/intro2_manectric.4bpp.lz" - - .align 2 -gIntro2FlygonGfx:: @ 8D8702C - .incbin "graphics/intro/intro2_flygon.4bpp.lz" - - .align 2 -gIntro2BrendanNoTurnGfx:: @ 8D87568 - .incbin "graphics/intro/intro2_brendan_noturn.4bpp.lz" - - .align 2 -gIntro2MayNoTurnGfx:: @ 8D87CA4 - .incbin "graphics/intro/intro2_may_noturn.4bpp.lz" - - .align 2 -gIntro3GroudonGfx:: @ 8D88494 - .incbin "graphics/intro/intro3_groudon.8bpp.lz" - - .align 2 -gIntro3GroudonTilemap:: @ 8D88D40 - .incbin "graphics/intro/intro3_groudon.bin.lz" - - .align 2 -gIntro3KyogreGfx:: @ 8D89224 - .incbin "graphics/intro/intro3_kyogre.8bpp.lz" - - .align 2 -gIntro3KyogreTilemap:: @ 8D89ABC - .incbin "graphics/intro/intro3_kyogre.bin.lz" - - .align 2 -gIntro3LegendBgGfx:: @ 8D89F7C - .incbin "graphics/intro/legend_bg.4bpp.lz" @ groudon/kyogre/bg - - .align 2 -gIntro3GroudonBgTilemap:: @ 8D8A818 - .incbin "graphics/intro/legend_bg1.bin.lz" - - .align 2 -gIntro3KyogreBgTilemap:: @ 8D8A934 - .incbin "graphics/intro/legend_bg2.bin.lz" - - .align 2 -gIntro3CloudsGfx:: @ 8D8AA54 - .incbin "graphics/intro/intro3_clouds.4bpp.lz" - - .align 2 -gIntro3Clouds1Tilemap:: @ 8D8B180 - .incbin "graphics/intro/intro3_clouds1.bin.lz" - - .align 2 -gIntro3Clouds2Tilemap:: @ 8D8B440 - .incbin "graphics/intro/intro3_clouds2.bin.lz" - - .align 2 -gIntro3Clouds3Tilemap:: @ 8D8B6E8 - .incbin "graphics/intro/intro3_clouds3.bin.lz" - - .align 2 -gIntro3LightningGfx:: @ 8D8B80C - .incbin "graphics/intro/intro3_lightning.4bpp.lz" - - .align 2 -gIntro3LightningPal:: @ 8D8BA54 - .incbin "graphics/intro/intro3_lightning.gbapal" - - .align 2 -gIntro3RayquazaGfx:: @ 8D8BA74 - .incbin "graphics/intro/intro3_rayquaza.4bpp.lz" - - .align 2 -gIntro3RayquazaTilemap:: @ 8D8C16C - .incbin "graphics/intro/intro3_rayquaza.bin.lz" - - @ seems to be 2 unused tilemaps - .align 2 - .incbin "graphics/unknown/unknown_D8C374.bin.lz" - - .align 2 - .incbin "graphics/unknown/unknown_D8C5C4.bin.lz" - - .align 2 -gIntro3Clouds2Gfx:: @ 8D8C838 - .incbin "graphics/intro/intro3_clouds2.4bpp.lz" @ clouds 2, during the rayquaza flash - - .align 2 -gIntro3Clouds4Tilemap:: @ 8D8CCC8 - .incbin "graphics/intro/intro3_clouds4.bin.lz" @ this is the tilemap for clouds 2, but clouds - - .align 2 -gIntro2BubblesGfx:: @ 8D8CF44 - .incbin "graphics/intro/intro2_bubbles.4bpp.lz" - - .align 2 -gIntro2BubblesPal:: @ 8D8D110 - .incbin "graphics/intro/intro2_bubbles.gbapal" - - .align 2 -gIntro1FlygonGfx:: @ 8D8D130 - .incbin "graphics/intro/intro1_flygon.4bpp.lz" - - .align 2 -gIntro1SparkleGfx:: @ 8D8D208 - .incbin "graphics/intro/intro1_sparkle.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_261:: - .incbin "graphics/battle_anims/sprites/261.4bpp.lz" - - .align 2 -gUnknown_08D8D410:: @ 8D8D410 - .incbin "graphics/battle_anims/backgrounds/sandstorm_brew.bin.lz" - - .align 2 -gUnknown_08D8D58C:: @ 8D8D58C - .incbin "graphics/battle_anims/backgrounds/sandstorm_brew.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_261:: @ 8E68580 - .incbin "graphics/battle_anims/sprites/261.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_260:: @ 8E685A8 - .incbin "graphics/battle_anims/sprites/260.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_260:: @ 8E68764 - .incbin "graphics/battle_anims/sprites/260.gbapal.lz" - - .align 2 -gBattleAnimBackgroundImage_15:: @ 8E6877C - .incbin "graphics/battle_anims/backgrounds/15.4bpp.lz" - - .align 2 -gBattleAnimBackgroundPalette_15:: @ 8E690EC - .incbin "graphics/battle_anims/backgrounds/15.gbapal.lz" - - .align 2 -gBattleAnimBackgroundTilemap_15:: @ 8E69110 - .incbin "graphics/battle_anims/backgrounds/15.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_262:: @ 8E69308 - .incbin "graphics/battle_anims/sprites/262.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_262:: @ 8E693DC - .incbin "graphics/battle_anims/sprites/262.gbapal.lz" - - .align 2 -gContestNextTurnGfx:: - .incbin "graphics/contest/nextturn.4bpp.lz" - - .align 2 -gUnknown_08D8E9B4:: @ 8D8E9B4 - .incbin "graphics/contest/nextturn_numbers.4bpp" - - .align 2 -gUnknown_08D8EA34:: @ 8D8EA34 - .incbin "graphics/contest/nextturn_random.4bpp" - - .align 2 -gBattleAnimSpriteSheet_264:: @ 8E695B8 - .incbin "graphics/battle_anims/sprites/264.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_264:: @ 8E695D8 - .incbin "graphics/battle_anims/sprites/264.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_265:: @ 8E695F0 - .incbin "graphics/battle_anims/sprites/265.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_067:: @ 8E69608 - .incbin "graphics/battle_anims/sprites/067.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_068:: @ 8E69628 - .incbin "graphics/battle_anims/sprites/068.gbapal.lz" - - .align 2 -gContestApplauseGfx:: @ 8D8EAE4 - .incbin "graphics/contest/applause.4bpp.lz" - - .align 2 -gContestApplauseMeterGfx:: @ 8D8EC24 - .incbin "graphics/contest/applause_meter.4bpp" - - .align 2 -gContestPal:: @ 8D8ECA4 - .incbin "graphics/contest/nextturn.gbapal" - - .align 2 -gBattleAnimSpriteSheet_272:: @ 8E6982C - .incbin "graphics/battle_anims/sprites/272.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_272:: @ 8E69A48 - .incbin "graphics/battle_anims/sprites/272.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_273:: @ 8E69A6C - .incbin "graphics/battle_anims/sprites/273.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_269:: @ 8E69A94 - .incbin "graphics/battle_anims/sprites/269.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_269:: @ 8E69AE8 - .incbin "graphics/battle_anims/sprites/269.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_274:: @ 8E69B00 - .incbin "graphics/battle_anims/sprites/274.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_275:: @ 8E69C80 - .incbin "graphics/battle_anims/sprites/275.4bpp.lz" - - .align 2 -gBattleAnimSpriteSheet_276:: @ 8E69DEC - .incbin "graphics/battle_anims/sprites/276.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_274:: @ 8E69F54 - .incbin "graphics/battle_anims/sprites/274.gbapal.lz" - - .align 2 -gBattleAnimBackgroundImage_17:: @ 8E69F7C - .incbin "graphics/battle_anims/backgrounds/17.4bpp.lz" - - .align 2 -gBattleAnimBackgroundPalette_17:: @ 8E6A0D8 - .incbin "graphics/battle_anims/backgrounds/17.gbapal.lz" - - .align 2 -gBattleAnimBackgroundTilemap_17:: @ 8E6A100 - .incbin "graphics/battle_anims/backgrounds/17.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_280:: @ 8E6A2E8 - .incbin "graphics/battle_anims/sprites/280.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_280:: @ 8E6A6E4 - .incbin "graphics/battle_anims/sprites/280.gbapal.lz" - - .align 2 -gBattleAnimBackgroundImageMuddyWater_Pal:: @ 8D8FB9C - .incbin "graphics/battle_anims/backgrounds/water_muddy.gbapal.lz" - - .align 2 -gEnemyMonShadow_Gfx:: @ 8D8FBC0 - .incbin "graphics/battle_interface/enemy_mon_shadow.4bpp.lz" - - .align 2 -gBattleInterface_BallStatusBarGfx:: @ 8D8FBF0 - .incbin "graphics/battle_interface/ball_status_bar.4bpp.lz" - - .align 2 -gMonIcon_Egg:: @ 8D8FC74 - .incbin "graphics/pokemon/icons/egg_icon.4bpp" - - .align 2 -gBattleAnimBackgroundImage_02:: @ 8E6ABDC - .incbin "graphics/battle_anims/backgrounds/02.4bpp.lz" - - .align 2 -gBattleAnimBackgroundPalette_02:: @ 8E6B8A4 - .incbin "graphics/battle_anims/backgrounds/02.gbapal.lz" - - .align 2 -gBattleAnimBackgroundTilemap_02:: @ 8E6B8C0 - .incbin "graphics/battle_anims/backgrounds/02.bin.lz" - - .align 2 -gBattleAnimSpritePalette_287:: @ 8E6BBB4 - .incbin "graphics/battle_anims/sprites/287.gbapal.lz" - - .align 2 -gBattleAnimBackgroundPalette_24:: @ 8E6BBDC - .incbin "graphics/battle_anims/backgrounds/24.gbapal.lz" - - .align 2 - .incbin "graphics/unknown/unknown_E6BC04.bin.lz" @ TODO: rename - - .align 2 -sBlenderCenterGfx:: @ 8D91598 - .incbin "graphics/berry_blender/center.8bpp.lz" - - .align 2 -gUnknown_08D91DB8:: @ 8D91DB8 - .incbin "graphics/berry_blender/outer.4bpp.lz" - - .align 2 -gUnknown_08D927EC:: @ 8D927EC - .incbin "graphics/berry_blender/outer_map.bin.lz" - - .align 2 -gBattleAnimBackgroundPalette_16:: @ 8E6D668 - .incbin "graphics/battle_anims/backgrounds/16.gbapal.lz" - - .align 2 -gBattleAnimBackgroundImage_16:: @ 8E6D690 - .incbin "graphics/battle_anims/backgrounds/16.4bpp.lz" - - .align 2 -gBattleAnimBackgroundTilemap_16:: @ 8E6D8F0 - .incbin "graphics/battle_anims/backgrounds/16.bin.lz" - - .align 2 -gBattleAnimSpritePalette_277:: @ 8E6DA2C - .incbin "graphics/battle_anims/sprites/277.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_277:: @ 8E6DA54 - .incbin "graphics/battle_anims/sprites/277.4bpp.lz" - - .align 2 -gBattleAnimFogTilemap:: @ 8E6DE48 - .incbin "graphics/battle_anims/backgrounds/fog.bin.lz" - - .align 2 -gBattleAnimSpritePalette_283:: @ 8E6DFC0 - .incbin "graphics/battle_anims/sprites/283.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_283:: @ 8E6DFDC - .incbin "graphics/battle_anims/sprites/283.4bpp.lz" - - .align 2 -gBattleAnimBackgroundTilemap_ScaryFacePlayer:: @ 8D93598 - .incbin "graphics/battle_anims/backgrounds/scary_face_player.bin.lz" - - .align 2 -gBattleAnimBackgroundTilemap_ScaryFaceOpponent:: @ 8D9377C - .incbin "graphics/battle_anims/backgrounds/scary_face_opponent.bin.lz" - - .align 2 -gBattleAnimBackgroundTilemap_ScaryFaceContest:: @ 8D93960 - .incbin "graphics/battle_anims/backgrounds/scary_face_contest.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_263:: @ 8E6E6AC - .incbin "graphics/battle_anims/sprites/263.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_263:: @ 8E6E6EC - .incbin "graphics/battle_anims/sprites/263.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_266:: @ 8E6E704 - .incbin "graphics/battle_anims/sprites/266.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_266:: @ 8E6E744 - .incbin "graphics/battle_anims/sprites/266.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_267:: @ 8E6E75C - .incbin "graphics/battle_anims/sprites/267.gbapal.lz" - - .align 2 -gBattleAnimSpritePalette_268:: @ 8E6E774 - .incbin "graphics/battle_anims/sprites/268.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_278:: @ 8E6E78C - .incbin "graphics/battle_anims/sprites/278.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_278:: @ 8E6E998 - .incbin "graphics/battle_anims/sprites/278.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_279:: @ 8E6E9B4 - .incbin "graphics/battle_anims/sprites/279.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_279:: @ 8E6EA00 - .incbin "graphics/battle_anims/sprites/279.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_281:: @ 8E6EA1C - .incbin "graphics/battle_anims/sprites/281.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_281:: @ 8E6EBA4 - .incbin "graphics/battle_anims/sprites/281.gbapal.lz" - - .align 2 -gBattleAnimBackgroundImage_21:: @ 8E6EBC4 - .incbin "graphics/battle_anims/backgrounds/21.4bpp.lz" - - .align 2 -gBattleAnimBackgroundPalette_21:: @ 8E6EEB8 - .incbin "graphics/battle_anims/backgrounds/21.gbapal.lz" - - .align 2 -gBattleAnimBackgroundTilemap_21:: @ 8E6EED4 - .incbin "graphics/battle_anims/backgrounds/21.bin.lz" - - .align 2 -gBattleAnimSpriteSheet_284:: @ 8E6F1C0 - .incbin "graphics/battle_anims/sprites/284.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_284:: @ 8E6F53C - .incbin "graphics/battle_anims/sprites/284.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_285:: @ 8E6F558 - .incbin "graphics/battle_anims/sprites/285.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_285:: @ 8E6F5F8 - .incbin "graphics/battle_anims/sprites/285.gbapal.lz" - - .align 2 -gBattleAnimBackgroundImage_Surf:: @ 8D94AB8 - .incbin "graphics/battle_anims/backgrounds/water.4bpp.lz" - - .align 2 -gBattleAnimBackgroundPalette_Surf:: @ 8D95DD8 - .incbin "graphics/battle_anims/backgrounds/water.gbapal.lz" - - .align 2 -gUnknown_08D95E00:: @ 8D95E00 - .incbin "graphics/unknown/unknown_D95E00.bin.lz" - - .align 2 -gUnknown_08D960D0:: @ 8D960D0 - .incbin "graphics/unknown/unknown_D960D0.bin.lz" - - .align 2 -gUnknown_08D963A4:: @ 8D963A4 - .incbin "graphics/unknown/unknown_D963A4.bin.lz" - - .align 2 -gBattleAnimSpritePalette_286:: @ 8E71200 - .incbin "graphics/battle_anims/sprites/286.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_188:: @ 8E71228 - .incbin "graphics/battle_anims/sprites/188.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_188:: @ 8E7133C - .incbin "graphics/battle_anims/sprites/188.gbapal.lz" - - .align 2 -gPartyMenuMisc_Gfx:: @ 8D967EC - .incbin "graphics/interface/party_menu_misc.4bpp.lz" - - .align 2 -gPartyMenuMisc_Pal:: @ 8D96AB4 - .incbin "graphics/interface/party_menu_misc.gbapal.lz" - - .align 2 -gPartyMenuMisc_Tilemap:: @ 8D96BA0 - .incbin "graphics/interface/party_menu_misc.bin.lz" - - .align 2 -gPartyMenuPokeball_Gfx:: @ 8D96CD8 - .incbin "graphics/interface/party_menu_pokeball.4bpp.lz" - - .align 2 -gPartyMenuPokeballSmall_Gfx:: @ 8D96E58 - .incbin "graphics/interface/party_menu_pokeball_small.4bpp.lz" @ unused - - .align 2 -gPartyMenuPokeball_Pal:: @ 8D96F6C - .incbin "graphics/interface/party_menu_pokeball.gbapal.lz" - - .align 2 -gStatusGfx_Icons:: @ 8D96F90 - .incbin "graphics/interface/status_icons.4bpp.lz" - - .align 2 -gStatusPal_Icons:: @ 8D97188 - .incbin "graphics/interface/status_icons.gbapal.lz" - - .align 2 -gMoveTypes_Gfx:: @ 8D971B0 - .incbin "graphics/types/move_types.4bpp.lz" - - .align 2 -gMoveTypes_Pal:: @ 8D97B84 - .incbin "graphics/types/move_types.gbapal.lz" - - .align 2 -gUnknown_08D97BEC:: @ 8D97BEC - .incbin "graphics/interface/summary_frames.4bpp.lz" - - .align 2 -gUnknown_08D97CF4:: @ 8D97CF4 - .incbin "graphics/interface/summary_frames.gbapal.lz" - - .align 2 -gUnknown_08D97D0C:: @ 8D97D0C - .incbin "graphics/interface/status_screen.4bpp.lz" - - .align 2 -gUnknown_08D9853C:: @ 8D9853C - .incbin "graphics/interface/status_screen.gbapal.lz" - - .align 2 -gUnknown_08D9862C:: @ 8D9862C - .incbin "graphics/interface/status_screen.bin.lz" - - .align 2 -gUnknown_08D987FC:: @ 8D987FC - .incbin "graphics/interface/status_tilemap1.bin.lz" - - .align 2 -gUnknown_08D9898C:: @ 8D9898C - .incbin "graphics/interface/status_tilemap2.bin.lz" - - .align 2 -gUnknown_08D98B28:: @ 8D98B28 - .incbin "graphics/interface/status_tilemap3.bin.lz" - - .align 2 -gUnknown_08D98CC8:: @ 8D98CC8 - .incbin "graphics/interface/status_tilemap0.bin.lz" - - .align 2 -gBagMaleTiles:: @ 8E75024 - .incbin "graphics/misc/bag_male.4bpp.lz" - - .align 2 -gBagFemaleTiles:: @ 8E75BA0 - .incbin "graphics/misc/bag_female.4bpp.lz" - - .align 2 -gBagPalette:: @ 8E76700 - .incbin "graphics/misc/bag.gbapal.lz" - - .align 2 -gBagScreenMale_Pal:: @ 8D9A588 - .incbin "graphics/interface/bag_screen_male.gbapal.lz" - - .align 2 -gBagScreenFemale_Pal:: @ 8D9A5D4 - .incbin "graphics/interface/bag_screen_female.gbapal.lz" - - .align 2 -gBagScreen_Gfx:: @ 8D9A620 - .incbin "graphics/interface/bag_screen.4bpp.lz" - - .align 2 -gUnknown_08D9A88C:: @ 8D9A88C - .incbin "graphics/unknown/unknown_D9A88C.bin.lz" - - .align 2 -gBattleFrontierGfx_PyramidBag:: @ 8D9A9EC - .incbin "graphics/interface/bag_pyramid.4bpp.lz" - - .align 2 -gUnknown_08D9ADD0:: @ 8D9ADD0 - .incbin "graphics/interface/bag_pyramid.gbapal.lz" @ female palette is first and male is second. - - .align 2 -gUnknown_08D9AE04:: @ 8D9AE04 - .incbin "graphics/unknown/unknown_D9AE04.bin.lz" @ tilemap? - - .align 2 -gUnknown_08D9AF44:: @ 8D9AF44 - .incbin "graphics/unknown/unknown_D9AF44.gbapal.lz" - - .align 2 -gBagSwapLineGfx:: @ 8D9AF6C - .incbin "graphics/interface/bag_swap.4bpp.lz" - - .align 2 -gBagSwapLinePal:: @ 8D9AFAC - .incbin "graphics/interface/bag_swap.gbapal.lz" - - .align 2 -gBuyMenuFrame_Gfx:: @ 8D9AFBC - .incbin "graphics/interface/mart_frame.4bpp.lz" - - .align 2 -gMenuMoneyPal:: @ 8D9B0C8 - .incbin "graphics/interface/mart_frame.gbapal.lz" - - .align 2 -gBuyMenuFrame_Tilemap:: @ 8D9B0F0 - .incbin "graphics/interface/mart_frame.bin.lz" - - .align 2 -gMenuMoneyGfx:: @ 8D9B230 - .incbin "graphics/interface/money.4bpp.lz" - - .align 2 -gMenuPokeblock_Gfx:: @ 8D9B2B4 - .incbin "graphics/interface/pokeblock_case_frame.4bpp.lz" - - .align 2 -gMenuPokeblock_Pal:: @ 8D9B470 - .incbin "graphics/interface/pokeblock_case_frame.gbapal.lz" - - .align 2 -gMenuPokeblockDevice_Gfx:: @ 8D9B4E0 - .incbin "graphics/interface/pokeblock_device.4bpp.lz" - - .align 2 -gMenuPokeblockDevice_Pal:: @ 8D9B7A0 - .incbin "graphics/interface/pokeblock_device.gbapal.lz" - - .align 2 -gMenuPokeblock_Tilemap:: @ 8D9B7C8 - .incbin "graphics/interface/pokeblock.bin.lz" - - .align 2 -gPokeblock_Gfx:: - .incbin "graphics/pokeblock/pokeblock.4bpp.lz" - - .align 2 -gPokeblockRed_Pal:: - .incbin "graphics/pokeblock/red.gbapal.lz" - - .align 2 -gPokeblockBlue_Pal:: - .incbin "graphics/pokeblock/blue.gbapal.lz" - - .align 2 -gPokeblockPink_Pal:: - .incbin "graphics/pokeblock/pink.gbapal.lz" - - .align 2 -gPokeblockGreen_Pal:: - .incbin "graphics/pokeblock/green.gbapal.lz" - - .align 2 -gPokeblockYellow_Pal:: - .incbin "graphics/pokeblock/yellow.gbapal.lz" - - .align 2 -gPokeblockPurple_Pal:: - .incbin "graphics/pokeblock/purple.gbapal.lz" - - .align 2 -gPokeblockIndigo_Pal:: - .incbin "graphics/pokeblock/indigo.gbapal.lz" - - .align 2 -gPokeblockBrown_Pal:: - .incbin "graphics/pokeblock/brown.gbapal.lz" - - .align 2 -gPokeblockLiteBlue_Pal:: - .incbin "graphics/pokeblock/liteblue.gbapal.lz" - - .align 2 -gPokeblockOlive_Pal:: - .incbin "graphics/pokeblock/olive.gbapal.lz" - - .align 2 -gPokeblockGray_Pal:: - .incbin "graphics/pokeblock/gray.gbapal.lz" - - .align 2 -gPokeblockBlack_Pal:: - .incbin "graphics/pokeblock/black.gbapal.lz" - - .align 2 -gPokeblockWhite_Pal:: - .incbin "graphics/pokeblock/white.gbapal.lz" - - .align 2 -gPokeblockGold_Pal:: - .incbin "graphics/pokeblock/gold.gbapal.lz" - - .align 2 -gUnknown_08D9BA44:: @ 8D9BA44 - .incbin "graphics/interface/pokeblock_feeding_bg_map.bin.lz" - - .align 2 -gUnknown_08D9BB44:: @ 8D9BB44 - .incbin "graphics/interface/check_berry.4bpp.lz" - - .align 2 -gUnknown_08D9BEF0:: @ 8D9BEF0 - .incbin "graphics/interface/check_berry.gbapal.lz" - - .align 2 -gUnknown_08D9BF98:: @ 8D9BF98 - .incbin "graphics/interface/berry_tag.bin.lz" - - .align 2 -gUnknown_08D9C13C:: @ 8D9C13C - .incbin "graphics/interface/berry_tag_title.bin.lz" - - .align 2 -gBerryCheckCircle_Gfx:: @ 8D9C24C - .incbin "graphics/interface/check_berry_circle.4bpp.lz" - -@ 8D9C3A8 - .include "data/graphics/berries/berry_graphics.inc" - - .align 2 -gRaySceneGroudon_Gfx:: @ 8DA1E78 - .incbin "graphics/rayquaza_scene/groudon.4bpp.lz" - - .align 2 -gRaySceneGroudon2_Gfx:: @ 8DA2A5C - .incbin "graphics/rayquaza_scene/groudon_shoulder.4bpp.lz" - - .align 2 -gRaySceneGroudon3_Gfx:: @ 8DA2B28 - .incbin "graphics/rayquaza_scene/groudon_claw.4bpp.lz" - - .align 2 -gRaySceneKyogre_Gfx:: @ 8DA2D1C - .incbin "graphics/rayquaza_scene/kyogre.4bpp.lz" - - .align 2 -gRaySceneKyogre2_Gfx:: @ 8DA3250 - .incbin "graphics/rayquaza_scene/kyogre_shoulder.4bpp.lz" - - .align 2 -gRaySceneKyogre3_Gfx:: @ 8DA32A4 - .incbin "graphics/rayquaza_scene/kyogre_fin.4bpp.lz" - - .align 2 -gRaySceneGroudon_Pal:: @ 8DA3370 - .incbin "graphics/rayquaza_scene/groudon.gbapal.lz" - - .align 2 -gRaySceneKyogre_Pal:: @ 8DA3398 - .incbin "graphics/rayquaza_scene/kyogre.gbapal.lz" - - .align 2 -gRaySceneClouds_Gfx:: @ 8DA33C0 - .incbin "graphics/rayquaza_scene/clouds.4bpp.lz" - - .align 2 -gRaySceneClouds_Pal:: @ 8DA37E8 - .incbin "graphics/rayquaza_scene/clouds.gbapal.lz" @ pal 1 clouds, pal 2 rain - - .align 2 -gRaySceneClouds1_Tilemap:: @ 8DA3824 - .incbin "graphics/rayquaza_scene/clouds1.bin.lz" - - .align 2 -gRaySceneClouds2_Tilemap:: @ 8DA3988 - .incbin "graphics/rayquaza_scene/clouds2.bin.lz" - - .align 2 -gRaySceneClouds3_Tilemap:: @ 8DA3A88 - .incbin "graphics/rayquaza_scene/clouds3.bin.lz" - - .align 2 -gRaySceneSmoke_Gfx:: @ 8DA3BC0 - .incbin "graphics/rayquaza_scene/smoke.4bpp.lz" - - .align 2 -gRaySceneSmoke_Pal:: @ 8DA3C7C - .incbin "graphics/rayquaza_scene/smoke.gbapal.lz" - - .align 2 -gRaySceneRayquaza_Gfx:: @ 8DA3C94 - .incbin "graphics/rayquaza_scene/rayquaza.8bpp.lz" - - .align 2 -gRaySceneRayquaza_Pal:: @ 8DA4DA8 - .incbin "graphics/rayquaza_scene/rayquaza.gbapal.lz" - - .align 2 -gRaySceneRayquaza_Tilemap:: @ 8DA4DEC - .incbin "graphics/rayquaza_scene/rayquaza.bin.lz" - - .align 2 -gRaySceneOvercast_Gfx:: @ 8DA4F70 - .incbin "graphics/rayquaza_scene/overcast.4bpp.lz" @ uses pal 2 of gRaySceneRayquaza_Pal - - .align 2 -gRaySceneOvercast_Tilemap:: @ 8DA60B8 - .incbin "graphics/rayquaza_scene/overcast.bin.lz" - - .align 2 -gRaySceneRayquazaFly1_Gfx:: @ 8DA6440 - .incbin "graphics/rayquaza_scene/rayquaza_fly1.4bpp.lz" - - .align 2 -gRaySceneRayquazaTail_Gfx:: @ 8DA68AC - .incbin "graphics/rayquaza_scene/rayquaza_tail_fix.4bpp.lz" @ for some reason there are an extra 0xC bytes at the end of the original 4bpp, so in order to produce the correct lz, we have to cat the bytes at the end with a make rule. not sure why those bytes are there, it may have been a bug in Game Freak's software. - - .align 2 -gRaySceneOvercast2_Gfx:: @ 8DA69BC - .incbin "graphics/rayquaza_scene/overcast2.4bpp.lz" - - .align 2 -gRaySceneRayquazaLight_Gfx:: @ 8DA7528 - .incbin "graphics/rayquaza_scene/rayquaza_light.4bpp.lz" @ uses pal 2 of gRaySceneOvercast2_Pal - - .align 2 -gRaySceneOvercast2_Pal:: @ 8DA7744 - .incbin "graphics/rayquaza_scene/overcast2.gbapal.lz" - - .align 2 -gRaySceneOvercast2_Tilemap:: @ 8DA7784 - .incbin "graphics/rayquaza_scene/overcast2.bin.lz" - - .align 2 -gRaySceneRayquazaLight_Tilemap:: @ 8DA7AAC - .incbin "graphics/rayquaza_scene/rayquaza_light.bin.lz" - - .align 2 -gRaySceneChaseBg_Gfx:: @ 8DA7C30 - .incbin "graphics/rayquaza_scene/chase_bg.4bpp.lz" - - .align 2 -gRaySceneChaseBg_Tilemap:: @ 8DA7D6C - .incbin "graphics/rayquaza_scene/chase_bg.bin.lz" - - .align 2 -gRaySceneChaseStreaks_Gfx:: @ 8DA7EAC - .incbin "graphics/rayquaza_scene/chase_streaks.4bpp.lz" - - .align 2 -gRaySceneChaseStreaks_Tilemap:: @ 8DA7FB4 - .incbin "graphics/rayquaza_scene/chase_streaks.bin.lz" - - .align 2 -gRaySceneRayquazaChase_Gfx:: @ 8DA80BC - .incbin "graphics/rayquaza_scene/rayquaza_chase.4bpp.lz" - - .align 2 -gRayChaseRayquazaChase_Tilemap:: @ 8DA8B40 - .incbin "graphics/rayquaza_scene/rayquaza_chase.bin.lz" - - .align 2 -gRayChaseRayquazaChase2_Tilemap:: @ 8DA8D6C - .incbin "graphics/rayquaza_scene/rayquaza_chase2.bin.lz" - - .align 2 -gRaySceneChase_Pal:: @ 8DA8E84 - .incbin "graphics/rayquaza_scene/chase.gbapal.lz" - - .align 2 -gRaySceneGroudonLeft_Gfx:: @ 8DA8ED8 - .incbin "graphics/rayquaza_scene/groudon_left.4bpp.lz" - - .align 2 -gRaySceneGroudonTail_Gfx:: @ 8DA9670 - .incbin "graphics/rayquaza_scene/groudon_tail.4bpp.lz" - - .align 2 -gRaySceneKyogreRight_Gfx:: @ 8DA96B4 - .incbin "graphics/rayquaza_scene/kyogre_right.4bpp.lz" - - .align 2 -gRaySceneRayquazaHover_Gfx:: @ 8DA98FC - .incbin "graphics/rayquaza_scene/rayquaza_hover.4bpp.lz" - - .align 2 -gRaySceneRayquazaFlyIn_Gfx:: @ 8DAA5A4 - .incbin "graphics/rayquaza_scene/rayquaza_flyin.4bpp.lz" - - .align 2 -gRaySceneSplash_Gfx:: @ 8DAA794 - .incbin "graphics/rayquaza_scene/splash.4bpp.lz" - - .align 2 -gRaySceneGroudonLeft_Pal:: @ 8DAA82C - .incbin "graphics/rayquaza_scene/groudon_left.gbapal.lz" - - .align 2 -gRaySceneKyogreRight_Pal:: @ 8DAA854 - .incbin "graphics/rayquaza_scene/kyogre_right.gbapal.lz" - - .align 2 -gRaySceneRayquazaHover_Pal:: @ 8DAA87C - .incbin "graphics/rayquaza_scene/rayquaza_hover.gbapal.lz" - - .align 2 -gRaySceneSplash_Pal:: @ 8DAA8A4 - .incbin "graphics/rayquaza_scene/splash.gbapal.lz" - - .align 2 -gRaySceneHushBg_Gfx:: @ 8DAA8B4 - .incbin "graphics/rayquaza_scene/hush_bg.4bpp.lz" - - .align 2 -gRaySceneHushRing_Gfx:: @ 8DAAB24 - .incbin "graphics/rayquaza_scene/hush_ring.8bpp.lz" - - .align 2 -gRaySceneHushBg_Tilemap:: @ 8DAAC1C - .incbin "graphics/rayquaza_scene/hush_bg.bin.lz" - - .align 2 -gRaySceneHushRing_Tilemap:: @ 8DAAE54 - .incbin "graphics/rayquaza_scene/hush_ring.bin.lz" - - .align 2 -gRaySceneHushRing_Map:: @ 8DAAF98 - .incbin "graphics/rayquaza_scene/hush_ring_map.bin.lz" - - .align 2 -gRaySceneHushBg_Pal:: @ 8DAAFEC - .incbin "graphics/rayquaza_scene/hush_bg.gbapal.lz" - -@ 8DAB058 - .include "data/graphics/items/item_graphics.inc" - -@ 8DB7AA0 - .include "data/graphics/decorations/decoration_graphics.inc" - - .align 2 -gBattleAnimSpritePalette_282:: @ 8E7E7D0 - .incbin "graphics/battle_anims/sprites/282.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_282:: @ 8E7E7F8 - .incbin "graphics/battle_anims/sprites/282.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_270:: @ 8E7E9E0 - .incbin "graphics/battle_anims/sprites/270.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_270:: @ 8E7E9FC - .incbin "graphics/battle_anims/sprites/270.4bpp.lz" - - .align 2 -gBattleAnimSpritePalette_271:: @ 8E7EB24 - .incbin "graphics/battle_anims/sprites/271.gbapal.lz" - - .align 2 -gBattleAnimSpriteSheet_271:: @ 8E7EB3C - .incbin "graphics/battle_anims/sprites/271.4bpp.lz" - - .align 2 -gUnknown_08DBA518:: @ 8DBA518 - .incbin "graphics/misc/cable_car_bg.gbapal" - - .align 2 -gCableCar_Pal:: @ 8DBA598 - .incbin "graphics/misc/cable_car.gbapal" - - .align 2 -gUnknown_08DBA5B8:: @ 8DBA5B8 - .incbin "graphics/misc/cable_car_bg.4bpp.lz" - - .align 2 -gCableCar_Gfx:: @ 8DBBF90 - .incbin "graphics/misc/cable_car.4bpp.lz" - - .align 2 -gCableCarDoor_Gfx:: @ 8DBC290 - .incbin "graphics/misc/cable_car_door.4bpp.lz" - - .align 2 -gCableCarCord_Gfx:: @ 8DBC2C0 - .incbin "graphics/misc/cable_car_cord.4bpp.lz" - - .align 2 -gRouletteMenuTiles:: @ 8DBC2E8 - .incbin "graphics/roulette/window.4bpp.lz" - - .align 2 -gRouletteWheelTiles:: - .incbin "graphics/roulette/wheel.8bpp.lz" - - .align 2 -gRouletteCenter_Gfx:: - .incbin "graphics/roulette/center.4bpp.lz" - - .align 2 -gRouletteHeadersTiles:: @ 8E824BC - .incbin "graphics/roulette/headers.4bpp.lz" - - .align 2 -gRouletteCreditTiles:: @ 8E82AE0 - .incbin "graphics/roulette/credit.4bpp.lz" - - .align 2 -gRouletteNumbersTiles:: @ 8E82C30 - .incbin "graphics/roulette/numbers.4bpp.lz" - - .align 2 -gRouletteMultiplierTiles:: @ 8E82D14 - .incbin "graphics/roulette/multiplier.4bpp.lz" - - .align 2 -gMailPalette_Orange:: @ 0x08DBE818 - .incbin "graphics/mail/orange/palette.gbapal" - - .align 2 -gMailPalette_Harbor:: @ 0x08DBE838 - .incbin "graphics/mail/harbor/palette.gbapal" - - .align 2 -gMailPalette_Glitter:: @ 0x08DBE858 - .incbin "graphics/mail/glitter/palette.gbapal" - - .align 2 -gMailPalette_Mech:: @ 0x08DBE878 - .incbin "graphics/mail/mech/palette.gbapal" - - .align 2 -gMailPalette_Wood:: @ 0x08DBE898 - .incbin "graphics/mail/wood/palette.gbapal" - - .align 2 -gMailPalette_Wave:: @ 0x08DBE8B8 - .incbin "graphics/mail/wave/palette.gbapal" - - .align 2 -gMailPalette_Bead:: @ 0x08DBE8D8 - .incbin "graphics/mail/bead/palette.gbapal" - - .align 2 -gMailPalette_Shadow:: @ 0x08DBE8F8 - .incbin "graphics/mail/shadow/palette.gbapal" - - .align 2 -gMailPalette_Tropic:: @ 0x08DBE918 - .incbin "graphics/mail/tropic/palette.gbapal" - - .align 2 -gMailPalette_Dream:: @ 0x08DBE938 - .incbin "graphics/mail/dream/palette.gbapal" - - .align 2 -gMailPalette_Fab:: @ 0x08DBE958 - .incbin "graphics/mail/fab/palette.gbapal" - - .align 2 -gMailPalette_Retro:: @ 0x08DBE978 - .incbin "graphics/mail/retro/palette.gbapal" - - .align 2 -gMailTiles_Orange:: @ 0x08DBE998 - .incbin "graphics/mail/orange/tiles.4bpp.lz" - - .align 2 -gMailTiles_Harbor:: @ 0x08DBEB38 - .incbin "graphics/mail/harbor/tiles.4bpp.lz" - - .align 2 -gMailTiles_Glitter:: @ 0x08DBEC74 - .incbin "graphics/mail/glitter/tiles.4bpp.lz" - - .align 2 -gMailTiles_Mech:: @ 0x08DBEE84 - .incbin "graphics/mail/mech/tiles.4bpp.lz" - - .align 2 -gMailTiles_Wood:: @ 0x08DBEF5C - .incbin "graphics/mail/wood/tiles.4bpp.lz" - - .align 2 -gMailTiles_Wave:: @ 0x08DBF154 - .incbin "graphics/mail/wave/tiles.4bpp.lz" - - .align 2 -gMailTiles_Bead:: @ 0x08DBF2D4 - .incbin "graphics/mail/bead/tiles.4bpp.lz" - - .align 2 -gMailTiles_Shadow:: @ 0x08DBF37C - .incbin "graphics/mail/shadow/tiles.4bpp.lz" - - .align 2 -gMailTiles_Tropic:: @ 0x08DBF50C - .incbin "graphics/mail/tropic/tiles.4bpp.lz" - - .align 2 -gMailTiles_Dream:: @ 0x08DBF64C - .incbin "graphics/mail/dream/tiles.4bpp.lz" - - .align 2 -gMailTiles_Fab:: @ 0x08DBF7B4 - .incbin "graphics/mail/fab/tiles.4bpp.lz" - - .align 2 -gMailTiles_Retro:: @ 0x08DBF904 - .incbin "graphics/mail/retro/tiles.4bpp.lz" - - .align 2 -gMailTilemap_Orange:: @ 0x08DBFBA4 - .incbin "graphics/mail/orange/map.bin.lz" - - .align 2 -gMailTilemap_Harbor:: @ 0x08DBFC7C - .incbin "graphics/mail/harbor/map.bin.lz" - - .align 2 -gMailTilemap_Glitter:: @ 0x08DBFD5C - .incbin "graphics/mail/glitter/map.bin.lz" - - .align 2 -gMailTilemap_Mech:: @ 0x08DBFE68 - .incbin "graphics/mail/mech/map.bin.lz" - - .align 2 -gMailTilemap_Wood:: @ 0x08DBFF44 - .incbin "graphics/mail/wood/map.bin.lz" - - .align 2 -gMailTilemap_Wave:: @ 0x08DC0034 - .incbin "graphics/mail/wave/map.bin.lz" - - .align 2 -gMailTilemap_Bead:: @ 0x08DC0114 - .incbin "graphics/mail/bead/map.bin.lz" - - .align 2 -gMailTilemap_Shadow:: @ 0x08DC01F4 - .incbin "graphics/mail/shadow/map.bin.lz" - - .align 2 -gMailTilemap_Tropic:: @ 0x08DC0300 - .incbin "graphics/mail/tropic/map.bin.lz" - - .align 2 -gMailTilemap_Dream:: @ 0x08DC03F0 - .incbin "graphics/mail/dream/map.bin.lz" - - .align 2 -gMailTilemap_Fab:: @ 0x08DC04E8 - .incbin "graphics/mail/fab/map.bin.lz" - - .align 2 -gMailTilemap_Retro:: @ 0x08DC0600 - .incbin "graphics/mail/retro/map.bin.lz" - - .align 2 -gFrontierFactorySelectMenu_Pal:: @ 8DC0714 - .incbin "graphics/battle_frontier/factory_menu1.gbapal" - .incbin "graphics/battle_frontier/factory_menu2.gbapal" - - .align 2 -gFrontierFactorySelectMenu_Gfx:: @ 8DC0754 - .incbin "graphics/battle_frontier/factory_menu1.4bpp" - .incbin "graphics/battle_frontier/factory_menu2.4bpp" - - .align 2 -gFrontierFactorySelectMenu_Tilemap:: @ 8DC0B94 - .incbin "graphics/battle_frontier/factory_menu.bin" - - .align 2 -gFrontierPassMedals_Gfx:: @ 8DC1394 - .incbin "graphics/frontier_pass/medals.4bpp.lz" @ battle frontier medals - - .align 2 -gFrontierPassCursor_Pal:: @ 8DC1674 - .incbin "graphics/frontier_pass/cursor.gbapal" @ frontier pass cursor pal - - .align 2 -gFrontierPassMapCursor_Pal:: @ 8DC1694 - .incbin "graphics/frontier_pass/map_cursor.gbapal" @ frontier pass map cursor pal - - .align 2 -gFrontierPassMedalsSilver_Pal:: @ 8DC16B4 - .incbin "graphics/frontier_pass/silver.gbapal" - - .align 2 -gFrontierPassMedalsGold_Pal:: @ 8DC16D4 - .incbin "graphics/frontier_pass/gold.gbapal" - - .align 2 -gPokedexText_Pal:: @ 8DC16F4 - .incbin "graphics/pokedex/text.gbapal" - - .align 2 -gPokedexCaughtScreenFade_Pal:: @ 8DC1756 - .incbin "graphics/pokedex/fade.gbapal" - - .align 2 -gPokedexHoennBg_Pal:: @ 8DC17B6 - .incbin "graphics/pokedex/hoenn_bg.gbapal" - - .align 2 -gPokedexNationalBg_Pal:: @ 8DC1876 - .incbin "graphics/pokedex/national_bg.gbapal" - - .align 2 -gPokedexMenu_Gfx:: @ 8DC1934 - .incbin "graphics/pokedex/menu.4bpp.lz" - - .align 2 -gPokedexMenu2_Gfx:: @ 8DC234C - .incbin "graphics/pokedex/menu2.4bpp.lz" - - .align 2 - .incbin "graphics/pokedex/noball_unused.4bpp.lz" @ unused - - @ these are a series of 9 tilemaps used for something pokedex related. - - .align 2 -gUnknown_08DC2A08:: @ 8DC2A08 - .incbin "graphics/pokedex/tilemap1.bin.lz" - - .align 2 -gUnknown_08DC2B1C:: @ 8DC2B1C - .incbin "graphics/pokedex/tilemap2.bin.lz" - - .align 2 -gUnknown_08DC2C5C:: @ 8DC2C5C - .incbin "graphics/pokedex/tilemap3.bin.lz" - - .align 2 -gUnknown_08DC2DAC:: @ 8DC2DAC - .incbin "graphics/pokedex/tilemap4.bin.lz" - - .align 2 -gUnknown_08DC2E6C:: @ 8DC2E6C - .incbin "graphics/pokedex/tilemap5.bin.lz" - - .align 2 -gUnknown_08DC2F5C:: @ 8DC2F5C - .incbin "graphics/pokedex/tilemap6.bin.lz" - - .align 2 -gUnknown_08DC2FEC:: @ 8DC2FEC - .incbin "graphics/pokedex/tilemap7.bin.lz" - - .align 2 -gUnknown_08DC3080:: @ 8DC3080 - .incbin "graphics/pokedex/tilemap8.bin.lz" - - .align 2 -gUnknown_08DC3198:: @ 8DC3198 - .incbin "graphics/pokedex/tilemap9.bin.lz" @ all tilemaps - - .align 2 -gPokedexSearchMenu_Pal:: @ 8DC3284 - .incbin "graphics/pokedex/search_menu.gbapal" - - .align 2 -gPokedexSearchMenu_Gfx:: @ 8DC3304 - .incbin "graphics/pokedex/search_menu.4bpp.lz" - - .align 2 -gPokedexSearch1_Tilemap:: @ 8DC3870 - .incbin "graphics/pokedex/search1.bin.lz" - - .align 2 -gPokedexSearch2_Tilemap:: @ 8DC3A0C - .incbin "graphics/pokedex/search2.bin.lz" - - .align 2 -gSummaryScreenPowAcc_Tilemap:: @ 8DC3B94 - .incbin "graphics/interface/powacc_tilemap.bin" @ pow/acc tilemap - - .align 2 -gUnknown_08DC3C34:: @ 8DC3C34 - .incbin "graphics/interface/unk_tilemap.bin" @ probably trade summary screen related? cant check - - .align 2 -gSummaryScreenWindow_Tilemap:: @ 8DC3CD4 - .incbin "graphics/interface/summary.bin" - - .align 2 -gIntroCopyright_Pal:: @ 8DC3D54 - .incbin "graphics/intro/copyright.gbapal" - - .align 2 -gIntroCopyright_Gfx:: @ 8DC3D74 - .incbin "graphics/intro/copyright.4bpp.lz" - - .align 2 -gIntroCopyright_Tilemap:: @ 8DC3FD4 - .incbin "graphics/intro/copyright.bin.lz" - - .align 2 -gPokedexAreaScreenAreaUnknown_Pal:: @ 8DC4120 - .incbin "graphics/pokedex/area_unknown.gbapal" - - .align 2 -gPokedexAreaScreenAreaUnknown_Gfx:: @ 8DC4140 - .incbin "graphics/pokedex/area_unknown.4bpp.lz" - - @ seems to be fire red leftovers, but the menu elements is reused in the item menu for TM descriptions. - - .align 2 -gFireRedMenuElements1_Pal:: @ 8DC4318 - .incbin "graphics/interface_fr/menu1.gbapal" - - .align 2 -gFireRedMenuElements2_Pal:: @ 8DC4338 - .incbin "graphics/interface_fr/menu2.gbapal" - - .align 2 -gFireRedMenuElements3_Pal:: @ 8DC4358 - .incbin "graphics/interface_fr/menu3.gbapal" - - .align 2 -gFireRedMenuElements_Gfx:: @ 8DC4378 - .incbin "graphics/interface_fr/menu.4bpp" @ the types are reused for item menu - - .align 2 -gBagMenuHMIcon_Gfx:: @ 8DC6378 - .incbin "graphics/interface/hm.4bpp" - - @ contest link stuff, appears to be a set of tilemaps - - .align 2 -gUnknown_08DC63F8:: @ 8DC63F8 - .incbin "graphics/contest/clink_tilemap1.bin" - - .align 2 -gUnknown_08DC6420:: @ 8DC6420 - .incbin "graphics/contest/clink_tilemap2.bin" - - .align 2 -gUnknown_08DC6448:: @ 8DC6448 - .incbin "graphics/contest/clink_tilemap3.bin" - - .align 2 -gUnknown_08DC6470:: @ 8DC6470 - .incbin "graphics/contest/clink_tilemap4.bin" - - .align 2 -gUnknown_08DC6498:: @ 8DC6498 - .incbin "graphics/contest/clink_tilemap5.bin" - - .align 2 -gUnknown_08DC64AC:: @ 8DC64AC - .incbin "graphics/contest/clink_tilemap6.bin" - - .align 2 -gUnknown_08DC64C0:: @ 8DC64C0 - .incbin "graphics/contest/clink_tilemap7.bin" - - .align 2 -gUnknown_08DC64D4:: @ 8DC64D4 - .incbin "graphics/contest/clink_tilemap8.bin" - - .align 2 -gUnknown_08DC64E8:: @ 8DC64E8 - .incbin "graphics/contest/clink_tilemap9.bin" - - .align 2 -gUnknown_08DC64FC:: @ 8DC64FC - .incbin "graphics/contest/clink_tilemap10.bin" - - .align 2 -gUnknown_08DC6510:: @ 8DC6510 - .incbin "graphics/contest/clink_tilemap11.bin" - - @ pokenav - - .align 2 -gPokenavCondition_Pal:: @ 8DC6528 - .incbin "graphics/pokenav/condition.gbapal" - - .align 2 -gPokenavCondition_Gfx:: @ 8DC6548 - .incbin "graphics/pokenav/condition.4bpp.lz" - - .align 2 -gPokenavCondition_Tilemap:: @ 8DC6DFC - .incbin "graphics/pokenav/condition.bin.lz" - - .align 2 -gPokenavOptions_Tilemap:: @ 8DC7070 - .incbin "graphics/pokenav/options/options.bin" - - .align 2 -gPokenavOptions_Gfx:: - .incbin "graphics/pokenav/options/options.4bpp.lz" - - .align 2 -gPokenavOptions_Pal:: - .incbin "graphics/pokenav/options/options.gbapal" - - .align 2 -gPokenavHeader_Pal:: @ 8DC7B60 - .incbin "graphics/pokenav/header.gbapal" - - .align 2 -gPokenavHeader_Gfx:: @ 8DC7B80 - .incbin "graphics/pokenav/header.4bpp.lz" @ TODO: use width 9 and makefile rule for cleanliness, make wasnt behaving, didnt want to apply num_tiles to this - - .align 2 -gPokenavHeader_Tilemap:: @ 8DC7D84 - .incbin "graphics/pokenav/header.bin.lz" - - .align 2 -gPokenavLeftHeader_Pal:: @ 8DC7F00 - .incbin "graphics/pokenav/left_headers/palette.gbapal" - - .align 2 -gPokenavLeftHeaderBeauty_Gfx:: @ 8DC7FA0 - .incbin "graphics/pokenav/left_headers/beauty.4bpp.lz" - - .align 2 -gPokenavLeftHeaderSmart_Gfx:: @ 8DC80DC - .incbin "graphics/pokenav/left_headers/smart.4bpp.lz" - - .align 2 -gPokenavLeftHeaderCondition_Gfx:: @ 8DC8208 - .incbin "graphics/pokenav/left_headers/condition.4bpp.lz" - - .align 2 -gPokenavLeftHeaderCute_Gfx:: @ 8DC838C - .incbin "graphics/pokenav/left_headers/cute.4bpp.lz" - - .align 2 -gPokenavLeftHeaderMatchCall_Gfx:: @ 8DC84AC - .incbin "graphics/pokenav/left_headers/match_call.4bpp.lz" - - .align 2 -gPokenavLeftHeaderMainMenu_Gfx:: @ 8DC864C - .incbin "graphics/pokenav/left_headers/main_menu.4bpp.lz" - - .align 2 -gPokenavLeftHeaderHoennMap_Gfx:: @ 8DC87F8 - .incbin "graphics/pokenav/left_headers/hoenn_map.4bpp.lz" - - .align 2 -gPokenavLeftHeaderRibbons_Gfx:: @ 8DC8AA4 - .incbin "graphics/pokenav/left_headers/ribbons.4bpp.lz" - - .align 2 -gPokenavLeftHeaderSearch_Gfx:: @ 8DC8C14 - .incbin "graphics/pokenav/left_headers/search.4bpp.lz" - - .align 2 -gPokenavLeftHeaderTough_Gfx:: @ 8DC8D50 - .incbin "graphics/pokenav/left_headers/tough.4bpp.lz" - - .align 2 -gPokenavLeftHeaderCool_Gfx:: @ 8DC8E64 - .incbin "graphics/pokenav/left_headers/cool.4bpp.lz" - - .align 2 -gPokenavLeftHeaderParty_Gfx:: @ 8DC8F64 - .incbin "graphics/pokenav/left_headers/party.4bpp.lz" - - .align 2 -gPokenavMessageBox_Pal:: @ 8DC90C0 - .incbin "graphics/pokenav/message.gbapal" - - .align 2 -gPokenavMessageBox_Gfx:: @ 8DC90E0 - .incbin "graphics/pokenav/message.4bpp.lz" - - .align 2 -gPokenavMessageBox_Tilemap:: @ 8DC9130 - .incbin "graphics/pokenav/message.bin.lz" - - .align 2 -gHoennMapZoomIcons_Pal:: @ 8DC91E8 - .incbin "graphics/pokenav/zoom.gbapal" - - .align 2 -gHoennMapZoomIcons_Gfx:: @ 8DC9208 - .incbin "graphics/pokenav/zoom.4bpp.lz" - - .align 2 -gPokenavConditionCancel_Pal:: - .incbin "graphics/pokenav/cancel.gbapal" - - .align 2 -gPokenavConditionCancel_Gfx:: - .incbin "graphics/pokenav/cancel.4bpp" - - .align 2 -gPokenavConditionMarker_Pal:: @ 8DC9608 - .incbin "graphics/pokenav/marker.gbapal" - - .align 2 -gPokenavConditionMarker_Gfx:: @ 8DC9628 - .incbin "graphics/pokenav/marker.4bpp" - - .align 2 -gBerryBlenderMiscPalette:: @ 8DCAB88 - .incbin "graphics/berry_blender/misc.gbapal" - - .align 2 -gBerryBlenderArrowPalette:: @ 8DC9948 - .incbin "graphics/berry_blender/arrow.gbapal" - - .align 2 -gBerryBlenderBetaArrow_Gfx:: @ 8DC9988 - .incbin "graphics/berry_blender/arrow_old.4bpp" @ unused - - .align 2 -gBerryBlenderMarubatsuTiles:: @ 8DC9B88 - .incbin "graphics/berry_blender/marubatsu.4bpp" - - .align 2 -gBerryBlenderParticlesTiles:: @ 8E90818 - .incbin "graphics/berry_blender/particles.4bpp" - - .space 0x120 - - .align 2 -gBerryBlenderCountdownNumbersTiles:: @ 8DC9F88 - .incbin "graphics/berry_blender/countdown_numbers.4bpp" - - .align 2 -gBerryBlenderStartTiles:: @ 8DCA588 - .incbin "graphics/berry_blender/start.4bpp" - - .space 0x200 - - .align 2 -gBerryBlenderArrowTiles:: @ 8DCAB88 - .incbin "graphics/berry_blender/arrow.4bpp" - - .space 0x2C0 - - .align 2 -gEasyChatCursor_Pal:: @ 8DCB648 - .incbin "graphics/easy_chat/cursor.gbapal" - - .align 2 -gEasyChatCursor_Gfx:: @ 8DCB668 - .incbin "graphics/easy_chat/cursor.4bpp.lz" - - .align 2 -gEasyChatRightWindow_Pal:: @ 8DCB86C - .incbin "graphics/easy_chat/rwindow.gbapal" - - .align 2 -gEasyChatRightWindow_Gfx:: @ 8DCB88C - .incbin "graphics/easy_chat/rwindow.4bpp.lz" - - .align 2 -gEasyChatMode_Gfx:: @ 8DCBAB0 - .incbin "graphics/easy_chat/mode.4bpp.lz" - - .align 2 -gEasyChatMode_Pal:: @ 8DCBDB0 - .incbin "graphics/easy_chat/mode.gbapal" - - .align 2 -gEasyChatWindow_Gfx:: @ 8DCBDD0 - .incbin "graphics/easy_chat/window.4bpp.lz" @ uses mode pal - - .align 2 -gEasyChatWindow_Tilemap:: @ 8DCBF10 - .incbin "graphics/easy_chat/window.bin.lz" - - .align 2 -gWallclockMale_Pal:: @ 8DCC01C - .incbin "graphics/interface/wallclock_male.gbapal" - - .align 2 -gWallclockFemale_Pal:: @ 8DCC03C - .incbin "graphics/interface/wallclock_female.gbapal" - - .align 2 -gWallclock_Gfx:: @ 8DCC05C - .incbin "graphics/interface/wallclock.4bpp.lz" - - .align 2 -gUnknown_08DCC648:: @ 8DCC648 - .incbin "graphics/interface/wallclock1.bin.lz" - - .align 2 -gUnknown_08DCC908:: @ 8DCC908 - .incbin "graphics/interface/wallclock2.bin.lz" - - .align 2 -gUsePokeblockCondition_Pal:: @ 8DCCB98 - .incbin "graphics/pokeblock/use_screen/condition.gbapal" - - .align 2 -gUsePokeblockCondition_Gfx:: @ 8DCCBB8 - .incbin "graphics/pokeblock/use_screen/condition.4bpp.lz" - - .align 2 -gUsePokeblockUpDown_Pal:: @ 8DCCD3C - .incbin "graphics/pokeblock/use_screen/updown.gbapal" - - .align 2 -gUsePokeblockUpDown_Gfx:: @ 8DCCD5C - .incbin "graphics/pokeblock/use_screen/updown.4bpp" - - .align 2 -gUsePokeblockGraph_Pal:: @ 8DCCF5C - .incbin "graphics/pokeblock/use_screen/graph.gbapal" - - .align 2 -gUsePokeblockGraph_Gfx:: @ 8DCCF7C - .incbin "graphics/pokeblock/use_screen/graph.4bpp.lz" - - .align 2 -gUsePokeblockGraph_Tilemap:: @ 8DCD81C - .incbin "graphics/pokeblock/use_screen/graph.bin.lz" - - .align 2 -gUsePokeblockNatureWin_Pal:: @ 8DCDA30 - .incbin "graphics/pokeblock/use_screen/nature.gbapal" - - @ slot machine - - .align 2 -gSlotMachineMenu_Pal:: @ 8DCDA90 - .incbin "graphics/slot_machine/menu.gbapal" - - .align 2 -gSlotMachineMenu_Gfx:: @ 8DCDB30 - .incbin "graphics/slot_machine/menu.4bpp.lz" - - .align 2 -gSlotMachineMenu_Tilemap:: @ 8DCE770 - .incbin "graphics/slot_machine/menu.bin" - - .align 2 -gUnknown_08DCEC70:: @ 8DCEC70 - .incbin "graphics/slot_machine/slots_layout.bin" - - .align 2 -gUnknown_08DCF170:: - .incbin "graphics/slot_machine/reel_symbols/1.gbapal" - - .align 2 -gUnknown_08DCF190:: - .incbin "graphics/slot_machine/reel_pikachu.gbapal" - - .align 2 -gUnknown_08DCF1B0:: - .incbin "graphics/slot_machine/shadow.gbapal" - - .align 2 -gSlotMachineReelTime_Pal:: - .incbin "graphics/slot_machine/reel_time.gbapal" - - .align 2 -gUnknown_08DCF1F0:: - .incbin "graphics/slot_machine/smoke.gbapal" @ also duck and pika aura - - .align 2 -gUnknown_08DCF210:: - .incbin "graphics/slot_machine/reel_time_explosion/0.gbapal" - - .align 2 -gUnknown_08DCF230:: - .incbin "graphics/slot_machine/spr6.gbapal" @ huh? - - .align 2 -gSlotMachineReelSymbol1Tiles:: @ 8DCF250 - .incbin "graphics/slot_machine/reel_symbols/1.4bpp" - - .align 2 -gSlotMachineReelSymbol2Tiles:: - .incbin "graphics/slot_machine/reel_symbols/2.4bpp" - - .align 2 -gSlotMachineReelSymbol3Tiles:: - .incbin "graphics/slot_machine/reel_symbols/3.4bpp" - - .align 2 -gSlotMachineReelSymbol4Tiles:: - .incbin "graphics/slot_machine/reel_symbols/4.4bpp" - - .align 2 -gSlotMachineReelSymbol5Tiles:: - .incbin "graphics/slot_machine/reel_symbols/5.4bpp" - - .align 2 -gSlotMachineReelSymbol6Tiles:: - .incbin "graphics/slot_machine/reel_symbols/6.4bpp" - - .align 2 -gSlotMachineReelSymbol7Tiles:: - .incbin "graphics/slot_machine/reel_symbols/7.4bpp" - - .align 2 -gSlotMachineReelTime_Gfx:: @ 8DD0050 - .incbin "graphics/slot_machine/reel_time.4bpp.lz" - - .align 2 -gSlotMachineNumber0Tiles:: - .incbin "graphics/slot_machine/numbers/0.4bpp" - - .align 2 -gSlotMachineNumber1Tiles:: - .incbin "graphics/slot_machine/numbers/1.4bpp" - - .align 2 -gSlotMachineNumber2Tiles:: - .incbin "graphics/slot_machine/numbers/2.4bpp" - - .align 2 -gSlotMachineNumber3Tiles:: - .incbin "graphics/slot_machine/numbers/3.4bpp" - - .align 2 -gSlotMachineNumber4Tiles:: - .incbin "graphics/slot_machine/numbers/4.4bpp" - - .align 2 -gSlotMachineNumber5Tiles:: - .incbin "graphics/slot_machine/numbers/5.4bpp" - - .align 2 -gSlotMachineNumber6Tiles:: - .incbin "graphics/slot_machine/numbers/6.4bpp" - - .align 2 -gSlotMachineNumber7Tiles:: - .incbin "graphics/slot_machine/numbers/7.4bpp" - - .align 2 -gSlotMachineNumber8Tiles:: - .incbin "graphics/slot_machine/numbers/8.4bpp" - - .align 2 -gSlotMachineNumber9Tiles:: - .incbin "graphics/slot_machine/numbers/9.4bpp" - - .align 2 -gSlotMachineReelTimeBolt:: - .incbin "graphics/slot_machine/bolt.4bpp" - - .align 2 -gSlotMachineReelTimeDuck:: - .incbin "graphics/slot_machine/duck.4bpp" - - .align 2 -gSlotMachineReelTimeSmoke:: - .incbin "graphics/slot_machine/smoke.4bpp" - - .align 2 -gSlotMachineReelTimeNumber0:: - .incbin "graphics/slot_machine/reel_time_numbers/0.4bpp" - - .align 2 -gSlotMachineReelTimeNumber1:: - .incbin "graphics/slot_machine/reel_time_numbers/1.4bpp" - - .align 2 -gSlotMachineReelTimeNumber2:: - .incbin "graphics/slot_machine/reel_time_numbers/2.4bpp" - - .align 2 -gSlotMachineReelTimeNumber3:: - .incbin "graphics/slot_machine/reel_time_numbers/3.4bpp" - - .align 2 -gSlotMachineReelTimeNumber4:: - .incbin "graphics/slot_machine/reel_time_numbers/4.4bpp" - - .align 2 -gSlotMachineReelTimeNumber5:: - .incbin "graphics/slot_machine/reel_time_numbers/5.4bpp" - - .align 2 -gSlotMachineReelTimeLargeBolt0:: - .incbin "graphics/slot_machine/large_bolt/0.4bpp" - - .align 2 -gSlotMachineReelTimeLargeBolt1:: - .incbin "graphics/slot_machine/large_bolt/1.4bpp" - - .align 2 -gSlotMachineReelTimeExplosion0:: - .incbin "graphics/slot_machine/reel_time_explosion/0.4bpp" - - .align 2 -gSlotMachineReelTimeExplosion1:: - .incbin "graphics/slot_machine/reel_time_explosion/1.4bpp" - - .align 2 -gSlotMachineReelTimeShadow:: - .incbin "graphics/slot_machine/shadow.4bpp" - - .align 2 -gSlotMachineReelTimePikaAura:: - .incbin "graphics/slot_machine/pika_aura.4bpp" - - .align 2 -gUnknown_08DD19F8:: - .incbin "graphics/unknown/unknown_DD19F8.bin" @ might be a palette? - - .align 2 -gUnknown_08DD1A18:: - .incbin "graphics/unknown/unknown_DD1A18.4bpp" - - @ trainer card - - .align 2 -gEmeraldTrainerCard0Star_Pal:: @ 8DD1A58 - .incbin "graphics/trainer_card/0star.gbapal" - - .align 2 -gEmeraldTrainerCard_Gfx:: @ 8DD1AB8 - .incbin "graphics/trainer_card/card.4bpp.lz" - - @ what are these? lz compressed files used for something, cant tell if tilemaps - - .align 2 -gUnknown_08DD1F78:: @ 8DD1F78 - .incbin "graphics/unknown/unknown_DD1F78.bin.lz" - - .align 2 -gUnknown_08DD2010:: @ 8DD2010 - .incbin "graphics/unknown/unknown_DD2010.bin.lz" - - .align 2 -gUnknown_08DD21B0:: @ 8DD21B0 - .incbin "graphics/unknown/unknown_DD21B0.bin.lz" - - .align 2 -gUnknown_08DD228C:: @ 8DD228C - .incbin "graphics/unknown/unknown_DD228C.bin.lz" - - .align 2 -gFireRedTrainerCard0Star_Pal:: @ 8DD240C - .incbin "graphics/trainer_card/0star_fr.gbapal" - - .align 2 -gFireRedTrainerCard_Gfx:: @ 8DD246C - .incbin "graphics/trainer_card/card_fr.4bpp.lz" - - @ more of these weird compressed files, probably for the FR trainer card - - .align 2 -gUnknown_08DD2AE0:: @ 8DD2AE0 - .incbin "graphics/unknown/unknown_DD2AE0.bin.lz" - - .align 2 -gUnknown_08DD2B78:: @ 8DD2B78 - .incbin "graphics/unknown/unknown_DD2B78.bin.lz" - - .align 2 -gUnknown_08DD2D30:: @ 8DD2D30 - .incbin "graphics/unknown/unknown_DD2D30.bin.lz" - - .align 2 -gUnknown_08DD2E5C:: @ 8DD2E5C - .incbin "graphics/unknown/unknown_DD2E5C.bin.lz" - - @ pokemon storage system - - .align 2 -gPSSMenu_Gfx:: @ 8DD2FE8 - .incbin "graphics/pokemon_storage/menu.4bpp.lz" - - .align 2 -gPSSMenu_Pal:: @ 8DD36A8 - .incbin "graphics/pokemon_storage/menu.gbapal" @ pal for the options in the gfx - - .align 2 -gUnknown_08DD36C8:: @ 8DD36C8 - .incbin "graphics/unknown/unknown_DD36C8.bin.lz" - - @ naming screen - - .align 2 -gNamingScreenMenu_Pal:: @ 8DD3778 - .incbin "graphics/naming_screen/menu.gbapal" - - .align 2 -gNamingScreenMenu_Gfx:: @ 8DD3838 - .incbin "graphics/naming_screen/menu.4bpp.lz" - - .align 2 -gNamingScreenRWindow_Gfx:: @ 8DD3A04 - .incbin "graphics/naming_screen/rwindow.4bpp" - - .align 2 -gNamingScreenROptions_Gfx:: @ 8DD4044 - .incbin "graphics/naming_screen/roptions.4bpp" - - .align 2 -gNamingScreenCursor_Gfx:: @ 8DD4224 - .incbin "graphics/naming_screen/cursor.4bpp" - - .align 2 -gNamingScreenKeyboardButton_Gfx:: @ 8DD43E4 - .incbin "graphics/naming_screen/keyboard_button.4bpp" - - .align 2 -gNamingScreenRightPointingTriangleTiles:: @ 8DD4504 - .incbin "graphics/naming_screen/right_pointing_triangle.4bpp" - - .align 2 -gNamingScreenUnderscoreTiles:: @ 8DD4524 - .incbin "graphics/naming_screen/underscore.4bpp" - - .align 2 -gUnknown_08DD4544:: @ 8DD4544 - .incbin "graphics/unknown/unknown_DD4544.bin.lz" - - .align 2 -gUnknown_08DD4620:: @ 8DD4620 - .incbin "graphics/unknown/unknown_DD4620.bin.lz" - - .align 2 -gUnknown_08DD46E0:: @ 8DD46E0 - .incbin "graphics/unknown/unknown_DD46E0.bin.lz" - - .align 2 -gUnknown_08DD47A0:: @ 8DD47A0 - .incbin "graphics/unknown/unknown_DD47A0.bin.lz" - - @ link - - .align 2 -gLinkMiscMenu_Pal:: @ 8DD4860 - .incbin "graphics/link/misc.gbapal" - - .align 2 -gLinkMiscMenu_Gfx:: @ 8DD4880 - .incbin "graphics/link/misc.4bpp.lz" @ dont know where this is used - - .align 2 -gLinkMiscMenu_Tilemap:: @ 8DD4AB8 - .incbin "graphics/link/misc.bin.lz" - - .align 2 -gUnknown_08DD4BB0:: @ 8DD4BB0 - .incbin "graphics/link/link1.gbapal" - - .align 2 -gUnknown_08DD4BD0:: @ 8DD4BD0 - .incbin "graphics/link/link2.gbapal" - - .align 2 -gUnknown_08DD4BF0:: @ 8DD4BF0 - .incbin "graphics/link/link_winedge.4bpp.lz" - - .align 2 -gUnknown_08DD4C4C:: @ 8DD4C4C - .incbin "graphics/link/link_winedge.bin.lz" - - .align 2 -gUnknown_08DD4CF8:: @ 8DD4CF8 - .incbin "graphics/interface/unk_change_case.4bpp.lz" - - .align 2 -gTilesetPalettes_General:: @ 8DD4E10 - .incbin "data/tilesets/primary/general/palettes/00.gbapal" - .incbin "data/tilesets/primary/general/palettes/01.gbapal" - .incbin "data/tilesets/primary/general/palettes/02.gbapal" - .incbin "data/tilesets/primary/general/palettes/03.gbapal" - .incbin "data/tilesets/primary/general/palettes/04.gbapal" - .incbin "data/tilesets/primary/general/palettes/05.gbapal" - .incbin "data/tilesets/primary/general/palettes/06.gbapal" - .incbin "data/tilesets/primary/general/palettes/07.gbapal" - .incbin "data/tilesets/primary/general/palettes/08.gbapal" - .incbin "data/tilesets/primary/general/palettes/09.gbapal" - .incbin "data/tilesets/primary/general/palettes/10.gbapal" - .incbin "data/tilesets/primary/general/palettes/11.gbapal" - .incbin "data/tilesets/primary/general/palettes/12.gbapal" - .incbin "data/tilesets/primary/general/palettes/13.gbapal" - .incbin "data/tilesets/primary/general/palettes/14.gbapal" - .incbin "data/tilesets/primary/general/palettes/15.gbapal" - - .align 2 -gTilesetTiles_General:: @ 8DD5010 - .incbin "data/tilesets/primary/general/tiles.4bpp.lz" - - @ trade/egg hatch - - .align 2 -gTradeGba_Pal:: @ 8DD72E0 - .incbin "graphics/link/gba.gbapal" - - .align 2 -gTradeGba2_Pal:: @ 8DD7300 - .incbin "graphics/link/gba_pal2.gbapal" @ used for in-game trade GBA? - - .align 2 -gTradeGba_Gfx:: @ 8DD7360 - .incbin "graphics/link/gba.4bpp" - - @ 8DD8760 - .space 0x20 @ blank palette?? - - @ berry fix program - - .align 2 -gBerryFixGameboy_Pal:: @ 8DD8780 - .incbin "graphics/berry_fix/gba_small.gbapal" - - .align 2 -gBerryFixGameboy_Gfx:: @ 8DD87C0 - .incbin "graphics/berry_fix/gba_small.4bpp.lz" - - .align 2 -gBerryFixGameboy_Tilemap:: @ 8DD8EE0 - .incbin "graphics/berry_fix/gba_small.bin.lz" - - .align 2 -gBerryFixGameboyLogo_Pal:: @ 8DD9080 - .incbin "graphics/berry_fix/logo.gbapal" - - .align 2 -gBerryFixGameboyLogo_Gfx:: @ 8DD90E0 - .incbin "graphics/berry_fix/logo.4bpp.lz" - - .align 2 -gBerryFixGameboyLogo_Tilemap:: @ 8DD9718 - .incbin "graphics/berry_fix/logo.bin.lz" - - .align 2 -gBerryFixGbaTransfer_Pal:: @ 8DD9874 - .incbin "graphics/berry_fix/gba_transfer.gbapal" - - .align 2 -gBerryFixGbaTransfer_Gfx:: @ 8DD98B4 - .incbin "graphics/berry_fix/gba_transfer.4bpp.lz" - - .align 2 -gBerryFixGbaTransfer_Tilemap:: @ 8DD9E58 - .incbin "graphics/berry_fix/gba_transfer.bin.lz" - - .align 2 -gBerryFixGbaTransferHighlight_Pal:: @ 8DD9FEC - .incbin "graphics/berry_fix/gba_transfer_highlight.gbapal" - - .align 2 -gBerryFixGbaTransferHighlight_Gfx:: @ 8DDA02C - .incbin "graphics/berry_fix/gba_transfer_highlight.4bpp.lz" - - .align 2 -gBerryFixGbaTransferHighlight_Tilemap:: @ 8DDA63C - .incbin "graphics/berry_fix/gba_transfer_highlight.bin.lz" - - .align 2 -gBerryFixGbaTransferError_Pal:: @ 8DDA800 - .incbin "graphics/berry_fix/gba_transfer_error.gbapal" - - .align 2 -gBerryFixGbaTransferError_Gfx:: @ 8DDA840 - .incbin "graphics/berry_fix/gba_transfer_error.4bpp.lz" - - .align 2 -gBerryFixGbaTransferError_Tilemap:: @ 8DDAE40 - .incbin "graphics/berry_fix/gba_transfer_error.bin.lz" - - .align 2 -gBerryFixWindow_Pal:: @ 8DDAFE0 - .incbin "graphics/berry_fix/window.gbapal" - - .align 2 -gBerryFixWindow_Gfx:: @ 8DDB020 - .incbin "graphics/berry_fix/window.4bpp.lz" @ why the absurd length? - - .align 2 -gBerryFixWindow_Tilemap:: @ 8DDB2C4 - .incbin "graphics/berry_fix/window.bin.lz" - - @ more trade stuff? - - .align 2 -gUnknown_08DDB3E4:: @ 8DDB3E4 - .incbin "graphics/trade/menu.gbapal" - - .align 2 -gUnknown_08DDB444:: @ 8DDB444 - .incbin "graphics/unknown/unknown_DDB444.gbapal" - - .align 2 -gUnknown_08DDB464:: @ 8DDB464 - .incbin "graphics/trade/menu.4bpp" - - .align 2 -gUnknown_08DDC6E4:: @ 8DDC6E4 - .incbin "graphics/trade/buttons.4bpp" - - .align 2 - .incbin "graphics/unused/unused_DDCEE4.bin" @ unused - - .align 2 -gUnknown_08DDCF04:: @ 8DDCF04 - .incbin "graphics/unknown/unknown_DDCF04.bin" @ tilemap - - .align 2 -gUnknown_08DDD704:: @ 8DDD704 - .incbin "graphics/unknown/unknown_DDD704.bin" @ textbox tilemap?? - - .align 2 -gMessageBox_Pal:: @ 8DDD728 - .incbin "graphics/text_window/message_box.gbapal" - - .align 2 -gMessageBox_Gfx:: @ 8DDD748 - .incbin "graphics/text_window/message_box.4bpp" - - .align 2 -gWallpaperIcon_Cross:: - .incbin "graphics/pokemon_storage/cross_icon.4bpp.lz" - - .align 2 -gWallpaperIcon_Bolt:: - .incbin "graphics/pokemon_storage/bolt_icon.4bpp.lz" - - .align 2 -gWallpaperIcon_Plusle:: - .incbin "graphics/pokemon_storage/plusle_icon.4bpp.lz" - - .align 2 -gWallpaperPalettes_Horizontal:: @ 8DDD950 - .incbin "graphics/pokemon_storage/friends_frame2.gbapal" - .incbin "graphics/pokemon_storage/horizontal_bg.gbapal" - - .align 2 -gWallpaperTiles_Horizontal:: @ 8DDD990 - .incbin "graphics/pokemon_storage/horizontal.4bpp.lz" - - .align 2 -gWallpaperTilemap_Horizontal:: @ 8DDDB80 - .incbin "graphics/pokemon_storage/horizontal.bin.lz" - - .align 2 -gWallpaperPalettes_Ribbon:: @ 8DDDC8C - .incbin "graphics/pokemon_storage/ribbon_frame.gbapal" - .incbin "graphics/pokemon_storage/ribbon_bg.gbapal" - - .align 2 -gWallpaperTiles_Ribbon:: @ 8DDDCCC - .incbin "graphics/pokemon_storage/ribbon.4bpp.lz" - - .align 2 -gWallpaperTilemap_Ribbon:: @ 8DDDEDC - .incbin "graphics/pokemon_storage/ribbon.bin.lz" - - @ pokenav - - .align 2 -gUnknown_08DDE010:: @ 8DDE010 - .incbin "graphics/pokenav/ribbons.gbapal" - - .align 2 -gUnknown_08DDE030:: @ 8DDE030 - .incbin "graphics/pokenav/ribbons.4bpp.lz" - - .align 2 -gUnknown_08DDE12C:: @ 8DDE12C - .incbin "graphics/pokenav/ribbons.bin.lz" - - .align 2 -gMonIconPalettes:: @ 8DDE1F8 - .incbin "graphics/pokemon/icon_palettes/icon_palette_0.gbapal" - .incbin "graphics/pokemon/icon_palettes/icon_palette_1.gbapal" - .incbin "graphics/pokemon/icon_palettes/icon_palette_2.gbapal" - - .align 2 -gTitleScreenBgPalettes:: @ 8DDE258 - .incbin "graphics/title_screen/pokemon_logo.gbapal" - .incbin "graphics/title_screen/rayquaza_and_clouds.gbapal" - - .align 2 -gTitleScreenEmeraldVersionPal:: @ 8DDE438 - .incbin "graphics/title_screen/emerald_version.gbapal" - - .align 2 -gUnknown_08DDE458:: @ 8DDE458 - .incbin "graphics/title_screen/title_screen1.bin.lz" - -gTitleScreenPokemonLogoGfx:: @ 8DDE690 - .incbin "graphics/title_screen/pokemon_logo.8bpp.lz" - - .align 2 -gTitleScreenEmeraldVersionGfx:: @ 8DDFD94 - .incbin "graphics/title_screen/emerald_version.8bpp.lz" - - .align 2 -gTitleScreenPressStartPal:: @ 8DE03C8 - .incbin "graphics/title_screen/press_start.gbapal" - - .align 2 -gTitleScreenPressStartGfx:: @ 8DE03E8 - .incbin "graphics/title_screen/press_start.4bpp.lz" - - .align 2 -gUnknown_08DE0644:: @ 8DE0644 - .incbin "graphics/title_screen/title_screen2.bin.lz" - - @ more trainer card stuff - - .align 2 -gUnknown_08DE07C8:: @ 8DE07C8 - .incbin "graphics/frontier_pass/tiles.gbapal" @ size in LoadPalette calls is reported as 0xD0 << 1, which is 0x1A0, but palette is only 0x100 bytes long so it loads garbage as well - - .align 2 -gUnknown_08DE08C8:: @ 8DE08C8 - .incbin "graphics/frontier_pass/tiles.4bpp.lz" - - .align 2 -gUnknown_08DE2084:: @ 8DE2084 - .incbin "graphics/frontier_pass/tiles2.8bpp.lz" - - .align 2 -gUnknown_08DE3060:: @ 8DE3060 - .incbin "graphics/frontier_pass/tiles.bin.lz" - - .align 2 -gUnknown_08DE3350:: @ 8DE3350 - .incbin "graphics/frontier_pass/tilemap1.bin" - - .align 2 -gUnknown_08DE3374:: @ 8DE3374 - .incbin "graphics/frontier_pass/tilemap2.bin" - - @ berry crusher - - .align 2 -gUnknown_08DE3398:: @ 8DE3398 - .incbin "graphics/berry_crusher/tiles.gbapal" - - .align 2 -gUnknown_08DE34B8:: @ 8DE34B8 - .incbin "graphics/berry_crusher/tiles.4bpp.lz" - - .align 2 -gUnknown_08DE3FD4:: @ 8DE3FD4 - .incbin "graphics/berry_crusher/tiles.bin.lz" - @ random garbage at the end. why, game freak? .space 0x54BAC .byte 0x0D, 0x00, 0x58, 0x02 @ why? diff --git a/data/graphics/berries/berry_graphics.inc b/data/graphics/berries/berry_graphics.inc deleted file mode 100644 index 358cc8fc1a..0000000000 --- a/data/graphics/berries/berry_graphics.inc +++ /dev/null @@ -1,343 +0,0 @@ - .align 2 -gBerryPic_Cheri:: @ 8D9C3A8 - .incbin "graphics/berries/cheri.4bpp.lz" - - .align 2 -gBerryPic_Oran:: @ 8D9C4FC - .incbin "graphics/berries/oran.4bpp.lz" - - .align 2 -gBerryPic_Pecha:: @ 8D9C670 - .incbin "graphics/berries/pecha.4bpp.lz" - - .align 2 -gBerryPic_Rawst:: @ 8D9C7E4 - .incbin "graphics/berries/rawst.4bpp.lz" - - .align 2 -gBerryPic_Aspear:: @ 8D9C97C - .incbin "graphics/berries/aspear.4bpp.lz" - - .align 2 -gBerryPic_Leppa:: @ 8D9CB24 - .incbin "graphics/berries/leppa.4bpp.lz" - - .align 2 -gBerryPic_Chesto:: @ 8D9CC94 - .incbin "graphics/berries/chesto.4bpp.lz" - - .align 2 -gBerryPic_Persim:: @ 8D9CE78 - .incbin "graphics/berries/persim.4bpp.lz" - - .align 2 -gBerryPic_Lum:: @ 8D9CFC8 - .incbin "graphics/berries/lum.4bpp.lz" - - .align 2 -gBerryPic_Sitrus:: @ 8D9D0E4 - .incbin "graphics/berries/sitrus.4bpp.lz" - - .align 2 -gBerryPic_Figy:: @ 8D9D288 - .incbin "graphics/berries/figy.4bpp.lz" - - .align 2 -gBerryPic_Wiki:: @ 8D9D434 - .incbin "graphics/berries/wiki.4bpp.lz" - - .align 2 -gBerryPic_Mago:: @ 8D9D628 - .incbin "graphics/berries/mago.4bpp.lz" - - .align 2 -gBerryPic_Aguav:: @ 8D9D7DC - .incbin "graphics/berries/aguav.4bpp.lz" - - .align 2 -gBerryPic_Iapapa:: @ 8D9D950 - .incbin "graphics/berries/iapapa.4bpp.lz" - - .align 2 -gBerryPic_Razz:: @ 8D9DC08 - .incbin "graphics/berries/razz.4bpp.lz" - - .align 2 -gBerryPic_Bluk:: @ 8D9DE38 - .incbin "graphics/berries/bluk.4bpp.lz" - - .align 2 -gBerryPic_Nanab:: @ 8D9E020 - .incbin "graphics/berries/nanab.4bpp.lz" - - .align 2 -gBerryPic_Wepear:: @ 8D9E194 - .incbin "graphics/berries/wepear.4bpp.lz" - - .align 2 -gBerryPic_Pinap:: @ 8D9E35C - .incbin "graphics/berries/pinap.4bpp.lz" - - .align 2 -gBerryPic_Pomeg:: @ 8D9E570 - .incbin "graphics/berries/pomeg.4bpp.lz" - - .align 2 -gBerryPic_Kelpsy:: @ 8D9E718 - .incbin "graphics/berries/kelpsy.4bpp.lz" - - .align 2 -gBerryPic_Qualot:: @ 8D9E8C0 - .incbin "graphics/berries/qualot.4bpp.lz" - - .align 2 -gBerryPic_Hondew:: @ 8D9EA8C - .incbin "graphics/berries/hondew.4bpp.lz" - - .align 2 -gBerryPic_Grepa:: @ 8D9ECE4 - .incbin "graphics/berries/grepa.4bpp.lz" - - .align 2 -gBerryPic_Tamato:: @ 8D9EE74 - .incbin "graphics/berries/tamato.4bpp.lz" - - .align 2 -gBerryPic_Cornn:: @ 8D9F138 - .incbin "graphics/berries/cornn.4bpp.lz" - - .align 2 -gBerryPic_Magost:: @ 8D9F33C - .incbin "graphics/berries/magost.4bpp.lz" - - .align 2 -gBerryPic_Rabuta:: @ 8D9F4E0 - .incbin "graphics/berries/rabuta.4bpp.lz" - - .align 2 -gBerryPic_Nomel:: @ 8D9F7D4 - .incbin "graphics/berries/nomel.4bpp.lz" - - .align 2 -gBerryPic_Spelon:: @ 8D9F9B0 - .incbin "graphics/berries/spelon.4bpp.lz" - - .align 2 -gBerryPic_Pamtre:: @ 8D9FBA0 - .incbin "graphics/berries/pamtre.4bpp.lz" - - .align 2 -gBerryPic_Watmel:: @ 8D9FDF0 - .incbin "graphics/berries/watmel.4bpp.lz" - - .align 2 -gBerryPic_Durin:: @ 8DA00D4 - .incbin "graphics/berries/durin.4bpp.lz" - - .align 2 -gBerryPic_Belue:: @ 8DA04A0 - .incbin "graphics/berries/belue.4bpp.lz" - - .align 2 -gBerryPic_Liechi:: @ 8DA0778 - .incbin "graphics/berries/liechi.4bpp.lz" - - .align 2 -gBerryPic_Ganlon:: @ 8DA09D0 - .incbin "graphics/berries/ganlon.4bpp.lz" - - .align 2 -gBerryPic_Salac:: @ 8DA0B68 - .incbin "graphics/berries/salac.4bpp.lz" - - .align 2 -gBerryPic_Petaya:: @ 8DA0DAC - .incbin "graphics/berries/petaya.4bpp.lz" - - .align 2 -gBerryPic_Apicot:: @ 8DA1054 - .incbin "graphics/berries/apicot.4bpp.lz" - - .align 2 -gBerryPic_Lansat:: @ 8DA11E4 - .incbin "graphics/berries/lansat.4bpp.lz" - - .align 2 -gBerryPic_Starf:: @ 8DA13D8 - .incbin "graphics/berries/starf.4bpp.lz" - - .align 2 -gBerryPic_Enigma:: @ 8DA15A8 - .incbin "graphics/berries/enigma.4bpp.lz" - - .align 2 -gBerryPalette_Cheri:: @ 8DA17C0 - .incbin "graphics/berries/cheri.gbapal.lz" - - .align 2 -gBerryPalette_Oran:: @ 8DA17E8 - .incbin "graphics/berries/oran.gbapal.lz" - - .align 2 -gBerryPalette_Pecha:: @ 8DA1810 - .incbin "graphics/berries/pecha.gbapal.lz" - - .align 2 -gBerryPalette_Rawst:: @ 8DA1838 - .incbin "graphics/berries/rawst.gbapal.lz" - - .align 2 -gBerryPalette_Aspear:: @ 8DA1860 - .incbin "graphics/berries/aspear.gbapal.lz" - - .align 2 -gBerryPalette_Leppa:: @ 8DA1888 - .incbin "graphics/berries/leppa.gbapal.lz" - - .align 2 -gBerryPalette_Chesto:: @ 8DA18B0 - .incbin "graphics/berries/chesto.gbapal.lz" - - .align 2 -gBerryPalette_Persim:: @ 8DA18D8 - .incbin "graphics/berries/persim.gbapal.lz" - - .align 2 -gBerryPalette_Lum:: @ 8DA1900 - .incbin "graphics/berries/lum.gbapal.lz" - - .align 2 -gBerryPalette_Sitrus:: @ 8DA1928 - .incbin "graphics/berries/sitrus.gbapal.lz" - - .align 2 -gBerryPalette_Figy:: @ 8DA1950 - .incbin "graphics/berries/figy.gbapal.lz" - - .align 2 -gBerryPalette_Wiki:: @ 8DA1978 - .incbin "graphics/berries/wiki.gbapal.lz" - - .align 2 -gBerryPalette_Mago:: @ 8DA19A0 - .incbin "graphics/berries/mago.gbapal.lz" - - .align 2 -gBerryPalette_Aguav:: @ 8DA19C8 - .incbin "graphics/berries/aguav.gbapal.lz" - - .align 2 -gBerryPalette_Iapapa:: @ 8DA19F0 - .incbin "graphics/berries/iapapa.gbapal.lz" - - .align 2 -gBerryPalette_Razz:: @ 8DA1A18 - .incbin "graphics/berries/razz.gbapal.lz" - - .align 2 -gBerryPalette_Bluk:: @ 8DA1A40 - .incbin "graphics/berries/bluk.gbapal.lz" - - .align 2 -gBerryPalette_Nanab:: @ 8DA1A68 - .incbin "graphics/berries/nanab.gbapal.lz" - - .align 2 -gBerryPalette_Wepear:: @ 8DA1A90 - .incbin "graphics/berries/wepear.gbapal.lz" - - .align 2 -gBerryPalette_Pinap:: @ 8DA1AB8 - .incbin "graphics/berries/pinap.gbapal.lz" - - .align 2 -gBerryPalette_Pomeg:: @ 8DA1AE0 - .incbin "graphics/berries/pomeg.gbapal.lz" - - .align 2 -gBerryPalette_Kelpsy:: @ 8DA1B08 - .incbin "graphics/berries/kelpsy.gbapal.lz" - - .align 2 -gBerryPalette_Qualot:: @ 8DA1B30 - .incbin "graphics/berries/qualot.gbapal.lz" - - .align 2 -gBerryPalette_Hondew:: @ 8DA1B58 - .incbin "graphics/berries/hondew.gbapal.lz" - - .align 2 -gBerryPalette_Grepa:: @ 8DA1B80 - .incbin "graphics/berries/grepa.gbapal.lz" - - .align 2 -gBerryPalette_Tamato:: @ 8DA1BA8 - .incbin "graphics/berries/tamato.gbapal.lz" - - .align 2 -gBerryPalette_Cornn:: @ 8DA1BD0 - .incbin "graphics/berries/cornn.gbapal.lz" - - .align 2 -gBerryPalette_Magost:: @ 8DA1BF8 - .incbin "graphics/berries/magost.gbapal.lz" - - .align 2 -gBerryPalette_Rabuta:: @ 8DA1C20 - .incbin "graphics/berries/rabuta.gbapal.lz" - - .align 2 -gBerryPalette_Nomel:: @ 8DA1C48 - .incbin "graphics/berries/nomel.gbapal.lz" - - .align 2 -gBerryPalette_Spelon:: @ 8DA1C70 - .incbin "graphics/berries/spelon.gbapal.lz" - - .align 2 -gBerryPalette_Pamtre:: @ 8DA1C98 - .incbin "graphics/berries/pamtre.gbapal.lz" - - .align 2 -gBerryPalette_Watmel:: @ 8DA1CC0 - .incbin "graphics/berries/watmel.gbapal.lz" - - .align 2 -gBerryPalette_Durin:: @ 8DA1CE8 - .incbin "graphics/berries/durin.gbapal.lz" - - .align 2 -gBerryPalette_Belue:: @ 8DA1D10 - .incbin "graphics/berries/belue.gbapal.lz" - - .align 2 -gBerryPalette_Liechi:: @ 8DA1D38 - .incbin "graphics/berries/liechi.gbapal.lz" - - .align 2 -gBerryPalette_Ganlon:: @ 8DA1D60 - .incbin "graphics/berries/ganlon.gbapal.lz" - - .align 2 -gBerryPalette_Salac:: @ 8DA1D88 - .incbin "graphics/berries/salac.gbapal.lz" - - .align 2 -gBerryPalette_Petaya:: @ 8DA1DB0 - .incbin "graphics/berries/petaya.gbapal.lz" - - .align 2 -gBerryPalette_Apicot:: @ 8DA1DD8 - .incbin "graphics/berries/apicot.gbapal.lz" - - .align 2 -gBerryPalette_Lansat:: @ 8DA1E00 - .incbin "graphics/berries/lansat.gbapal.lz" - - .align 2 -gBerryPalette_Starf:: @ 8DA1E28 - .incbin "graphics/berries/starf.gbapal.lz" - - .align 2 -gBerryPalette_Enigma:: @ 8DA1E50 - .incbin "graphics/berries/enigma.gbapal.lz" diff --git a/data/graphics/decorations/decoration_graphics.inc b/data/graphics/decorations/decoration_graphics.inc deleted file mode 100644 index c7ea9be70f..0000000000 --- a/data/graphics/decorations/decoration_graphics.inc +++ /dev/null @@ -1,252 +0,0 @@ -gUnknown_08DB7AA0:: - .incbin "graphics/decorations/decor_heavy_desk.4bpp.lz" - -gUnknown_08DB7B34:: - .incbin "graphics/decorations/decor_heavy_desk.gbapal.lz" - -gUnknown_08DB7B5C:: - .incbin "graphics/decorations/decor_ragged_desk.4bpp.lz" - -gUnknown_08DB7BEC:: - .incbin "graphics/decorations/decor_ragged_desk.gbapal.lz" - -gUnknown_08DB7C08:: - .incbin "graphics/decorations/decor_comfort_desk.4bpp.lz" - -gUnknown_08DB7CE8:: - .incbin "graphics/decorations/decor_comfort_desk.gbapal.lz" - -gUnknown_08DB7D08:: - .incbin "graphics/decorations/decor_pretty_desk.4bpp.lz" - -gUnknown_08DB7DCC:: - .incbin "graphics/decorations/decor_pretty_desk.gbapal.lz" - -gUnknown_08DB7DF4:: - .incbin "graphics/decorations/decor_brick_desk.4bpp.lz" - -gUnknown_08DB7EA0:: - .incbin "graphics/decorations/decor_brick_desk.gbapal.lz" - -gUnknown_08DB7EC4:: - .incbin "graphics/decorations/decor_camp_desk.4bpp.lz" - -gUnknown_08DB7F60:: - .incbin "graphics/decorations/decor_camp_desk.gbapal.lz" - -gUnknown_08DB7F7C:: - .incbin "graphics/decorations/decor_hard_desk.4bpp.lz" - -gUnknown_08DB8070:: - .incbin "graphics/decorations/decor_hard_desk.gbapal.lz" - -gUnknown_08DB808C:: - .incbin "graphics/decorations/decor_red_plant.4bpp.lz" - -gUnknown_08DB8138:: - .incbin "graphics/decorations/decor_red_plant.gbapal.lz" - -gUnknown_08DB8160:: - .incbin "graphics/decorations/decor_tropical_plant.4bpp.lz" - -gUnknown_08DB8218:: - .incbin "graphics/decorations/decor_tropical_plant.gbapal.lz" - -gUnknown_08DB823C:: - .incbin "graphics/decorations/decor_pretty_flowers.4bpp.lz" - -gUnknown_08DB8300:: - .incbin "graphics/decorations/decor_pretty_flowers.gbapal.lz" - -gUnknown_08DB8328:: - .incbin "graphics/decorations/decor_colorful_plant.4bpp.lz" - -gUnknown_08DB8430:: - .incbin "graphics/decorations/decor_colorful_plant.gbapal.lz" - -gUnknown_08DB8458:: - .incbin "graphics/decorations/decor_big_plant.4bpp.lz" - -gUnknown_08DB8528:: - .incbin "graphics/decorations/decor_big_plant.gbapal.lz" - -gUnknown_08DB854C:: - .incbin "graphics/decorations/decor_gorgeous_plant.4bpp.lz" - -gUnknown_08DB862C:: - .incbin "graphics/decorations/decor_gorgeous_plant.gbapal.lz" - -gUnknown_08DB8654:: - .incbin "graphics/decorations/decor_red_brick.4bpp.lz" - -gUnknown_08DB86C4:: - .incbin "graphics/decorations/decor_red_brick.gbapal.lz" - -gUnknown_08DB86E0:: - .incbin "graphics/decorations/decor_yellow_brick.4bpp.lz" - -gUnknown_08DB8750:: - .incbin "graphics/decorations/decor_yellow_brick.gbapal.lz" - -gUnknown_08DB876C:: - .incbin "graphics/decorations/decor_blue_brick.4bpp.lz" - -gUnknown_08DB87DC:: - .incbin "graphics/decorations/decor_blue_brick.gbapal.lz" - -gUnknown_08DB87F8:: - .incbin "graphics/decorations/decor_red_tent.4bpp.lz" - -gUnknown_08DB88D8:: - .incbin "graphics/decorations/decor_red_tent.gbapal.lz" - -gUnknown_08DB8900:: - .incbin "graphics/decorations/decor_blue_tent.4bpp.lz" - -gUnknown_08DB89E0:: - .incbin "graphics/decorations/decor_blue_tent.gbapal.lz" - -gUnknown_08DB8A08:: - .incbin "graphics/decorations/decor_solid_board.4bpp.lz" - -gUnknown_08DB8A68:: - .incbin "graphics/decorations/decor_solid_board.gbapal.lz" - -gUnknown_08DB8A84:: - .incbin "graphics/decorations/decor_slide.4bpp.lz" - -gUnknown_08DB8B40:: - .incbin "graphics/decorations/decor_slide.gbapal.lz" - -gUnknown_08DB8B68:: - .incbin "graphics/decorations/decor_tire.4bpp.lz" - -gUnknown_08DB8C40:: - .incbin "graphics/decorations/decor_tire.gbapal.lz" - -gUnknown_08DB8C5C:: - .incbin "graphics/decorations/decor_stand.4bpp.lz" - -gUnknown_08DB8CF4:: - .incbin "graphics/decorations/decor_stand.gbapal.lz" - -gUnknown_08DB8D18:: - .incbin "graphics/decorations/decor_breakable_door.4bpp.lz" - -gUnknown_08DB8DB0:: - .incbin "graphics/decorations/decor_breakable_door.gbapal.lz" - -gUnknown_08DB8DD4:: - .incbin "graphics/decorations/decor_sand_ornament.4bpp.lz" - -gUnknown_08DB8E80:: - .incbin "graphics/decorations/decor_sand_ornament.gbapal.lz" - -gUnknown_08DB8EA0:: - .incbin "graphics/decorations/decor_glass_ornament.4bpp.lz" - -gUnknown_08DB8F58:: - .incbin "graphics/decorations/decor_glass_ornament.gbapal.lz" - -gUnknown_08DB8F7C:: - .incbin "graphics/decorations/decor_surf_mat.4bpp.lz" - -gUnknown_08DB9038:: - .incbin "graphics/decorations/decor_surf_mat.gbapal.lz" - -gUnknown_08DB9058:: - .incbin "graphics/decorations/decor_thunder_mat.4bpp.lz" - -gUnknown_08DB9130:: - .incbin "graphics/decorations/decor_thunder_mat.gbapal.lz" - -gUnknown_08DB9154:: - .incbin "graphics/decorations/decor_fire_blast_mat.4bpp.lz" - -gUnknown_08DB9218:: - .incbin "graphics/decorations/decor_fire_blast_mat.gbapal.lz" - -gUnknown_08DB9234:: - .incbin "graphics/decorations/decor_powder_snow_mat.4bpp.lz" - -gUnknown_08DB92FC:: - .incbin "graphics/decorations/decor_powder_snow_mat.gbapal.lz" - -gUnknown_08DB931C:: - .incbin "graphics/decorations/decor_attract_mat.4bpp.lz" - -gUnknown_08DB93E8:: - .incbin "graphics/decorations/decor_attract_mat.gbapal.lz" - -gUnknown_08DB940C:: - .incbin "graphics/decorations/decor_fissure_mat.4bpp.lz" - -gUnknown_08DB94CC:: - .incbin "graphics/decorations/decor_fissure_mat.gbapal.lz" - -gUnknown_08DB94E8:: - .incbin "graphics/decorations/decor_spikes_mat.4bpp.lz" - -gUnknown_08DB95AC:: - .incbin "graphics/decorations/decor_spikes_mat.gbapal.lz" - -gUnknown_08DB95D0:: - .incbin "graphics/decorations/decor_snorlax_doll.4bpp.lz" - -gUnknown_08DB96C4:: - .incbin "graphics/decorations/decor_snorlax_doll.gbapal.lz" - -gUnknown_08DB96EC:: - .incbin "graphics/decorations/decor_rhydon_doll.4bpp.lz" - -gUnknown_08DB97F4:: - .incbin "graphics/decorations/decor_rhydon_doll.gbapal.lz" - -gUnknown_08DB981C:: - .incbin "graphics/decorations/decor_lapras_doll.4bpp.lz" - -gUnknown_08DB9908:: - .incbin "graphics/decorations/decor_lapras_doll.gbapal.lz" - -gUnknown_08DB9930:: - .incbin "graphics/decorations/decor_venusaur_doll.4bpp.lz" - -gUnknown_08DB9A54:: - .incbin "graphics/decorations/decor_venusaur_doll.gbapal.lz" - -gUnknown_08DB9A7C:: - .incbin "graphics/decorations/decor_charizard_doll.4bpp.lz" - -gUnknown_08DB9B7C:: - .incbin "graphics/decorations/decor_charizard_doll.gbapal.lz" - -gUnknown_08DB9BA4:: - .incbin "graphics/decorations/decor_blastoise_doll.4bpp.lz" - -gUnknown_08DB9CB0:: - .incbin "graphics/decorations/decor_blastoise_doll.gbapal.lz" - -gUnknown_08DB9CD8:: - .incbin "graphics/decorations/decor_wailmer_doll.4bpp.lz" - -gUnknown_08DB9DAC:: - .incbin "graphics/decorations/decor_wailmer_doll.gbapal.lz" - -gUnknown_08DB9DD4:: - .incbin "graphics/decorations/decor_regice_doll.4bpp.lz" - -gUnknown_08DB9EE4:: - .incbin "graphics/decorations/decor_regice_doll.gbapal.lz" - -gUnknown_08DB9F08:: - .incbin "graphics/decorations/decor_regirock_doll.4bpp.lz" - -gUnknown_08DB9FFC:: - .incbin "graphics/decorations/decor_regirock_doll.gbapal.lz" - -gUnknown_08DBA020:: - .incbin "graphics/decorations/decor_registeel_doll.4bpp.lz" - -gUnknown_08DBA12C:: - .incbin "graphics/decorations/decor_registeel_doll.gbapal.lz" - diff --git a/data/graphics/items/item_graphics.inc b/data/graphics/items/item_graphics.inc deleted file mode 100644 index 08aa00328d..0000000000 --- a/data/graphics/items/item_graphics.inc +++ /dev/null @@ -1,1883 +0,0 @@ - .align 2 -gItemIcon_QuestionMark:: @ 8DAB058 - .incbin "graphics/items/icons/question_mark.4bpp.lz" - - .align 2 -gItemIconPalette_QuestionMark:: @ 8DAB0D0 - .incbin "graphics/items/icon_palettes/question_mark.gbapal.lz" - - .align 2 -gItemIcon_ReturnToFieldArrow:: @ 8DAB0E4 - .incbin "graphics/items/icons/return_to_field_arrow.4bpp.lz" - - .align 2 -gItemIconPalette_ReturnToFieldArrow:: @ 8DAB16C - .incbin "graphics/items/icon_palettes/return_to_field_arrow.gbapal.lz" - - .align 2 -gItemIcon_MasterBall:: @ 8DAB184 - .incbin "graphics/items/icons/master_ball.4bpp.lz" - - .align 2 -gItemIconPalette_MasterBall:: @ 8DAB254 - .incbin "graphics/items/icon_palettes/master_ball.gbapal.lz" - - .align 2 -gItemIcon_UltraBall:: @ 8DAB27C - .incbin "graphics/items/icons/ultra_ball.4bpp.lz" - - .align 2 -gItemIconPalette_UltraBall:: @ 8DAB33C - .incbin "graphics/items/icon_palettes/ultra_ball.gbapal.lz" - - .align 2 -gItemIcon_GreatBall:: @ 8DAB364 - .incbin "graphics/items/icons/great_ball.4bpp.lz" - - .align 2 -gItemIconPalette_GreatBall:: @ 8DAB434 - .incbin "graphics/items/icon_palettes/great_ball.gbapal.lz" - - .align 2 -gItemIcon_PokeBall:: @ 8DAB45C - .incbin "graphics/items/icons/poke_ball.4bpp.lz" - - .align 2 -gItemIconPalette_PokeBall:: @ 8DAB50C - .incbin "graphics/items/icon_palettes/poke_ball.gbapal.lz" - - .align 2 -gItemIcon_SafariBall:: @ 8DAB530 - .incbin "graphics/items/icons/safari_ball.4bpp.lz" - - .align 2 -gItemIconPalette_SafariBall:: @ 8DAB600 - .incbin "graphics/items/icon_palettes/safari_ball.gbapal.lz" - - .align 2 -gItemIcon_NetBall:: @ 8DAB628 - .incbin "graphics/items/icons/net_ball.4bpp.lz" - - .align 2 -gItemIconPalette_NetBall:: @ 8DAB6FC - .incbin "graphics/items/icon_palettes/net_ball.gbapal.lz" - - .align 2 -gItemIcon_DiveBall:: @ 8DAB720 - .incbin "graphics/items/icons/dive_ball.4bpp.lz" - - .align 2 -gItemIconPalette_DiveBall:: @ 8DAB7E8 - .incbin "graphics/items/icon_palettes/dive_ball.gbapal.lz" - - .align 2 -gItemIcon_NestBall:: @ 8DAB80C - .incbin "graphics/items/icons/nest_ball.4bpp.lz" - - .align 2 -gItemIconPalette_NestBall:: @ 8DAB8D0 - .incbin "graphics/items/icon_palettes/nest_ball.gbapal.lz" - - .align 2 -gItemIcon_RepeatBall:: @ 8DAB8F8 - .incbin "graphics/items/icons/repeat_ball.4bpp.lz" - - .align 2 -gItemIconPalette_RepeatBall:: @ 8DAB9BC - .incbin "graphics/items/icon_palettes/repeat_ball.gbapal.lz" - - .align 2 -gItemIcon_TimerBall:: @ 8DAB9E4 - .incbin "graphics/items/icons/timer_ball.4bpp.lz" - - .align 2 -gItemIcon_LuxuryBall:: @ 8DABAAC - .incbin "graphics/items/icons/luxury_ball.4bpp.lz" - - .align 2 -gItemIconPalette_LuxuryBall:: @ 8DABB68 - .incbin "graphics/items/icon_palettes/luxury_ball.gbapal.lz" - - .align 2 -gItemIcon_PremierBall:: @ 8DABB90 - .incbin "graphics/items/icons/premier_ball.4bpp.lz" - - .align 2 -gItemIcon_Potion:: @ 8DABC34 - .incbin "graphics/items/icons/potion.4bpp.lz" - - .align 2 -gItemIconPalette_Potion:: @ 8DABCFC - .incbin "graphics/items/icon_palettes/potion.gbapal.lz" - - .align 2 -gItemIcon_Antidote:: @ 8DABD20 - .incbin "graphics/items/icons/antidote.4bpp.lz" - - .align 2 -gItemIconPalette_Antidote:: @ 8DABDD0 - .incbin "graphics/items/icon_palettes/antidote.gbapal.lz" - - .align 2 -gItemIconPalette_BurnHeal:: @ 8DABDF4 - .incbin "graphics/items/icon_palettes/burn_heal.gbapal.lz" - - .align 2 -gItemIconPalette_IceHeal:: @ 8DABE18 - .incbin "graphics/items/icon_palettes/ice_heal.gbapal.lz" - - .align 2 -gItemIcon_StatusHeal:: @ 8DABE3C - .incbin "graphics/items/icons/status_heal.4bpp.lz" - - .align 2 -gItemIconPalette_Awakening:: @ 8DABEEC - .incbin "graphics/items/icon_palettes/awakening.gbapal.lz" - - .align 2 -gItemIconPalette_ParalyzeHeal:: @ 8DABF10 - .incbin "graphics/items/icon_palettes/paralyze_heal.gbapal.lz" - - .align 2 -gItemIcon_LargePotion:: @ 8DABF34 - .incbin "graphics/items/icons/large_potion.4bpp.lz" - - .align 2 -gItemIconPalette_FullRestore:: @ 8DAC018 - .incbin "graphics/items/icon_palettes/full_restore.gbapal.lz" - - .align 2 -gItemIconPalette_MaxPotion:: @ 8DAC03C - .incbin "graphics/items/icon_palettes/max_potion.gbapal.lz" - - .align 2 -gItemIconPalette_HyperPotion:: @ 8DAC060 - .incbin "graphics/items/icon_palettes/hyper_potion.gbapal.lz" - - .align 2 -gItemIconPalette_SuperPotion:: @ 8DAC084 - .incbin "graphics/items/icon_palettes/super_potion.gbapal.lz" - - .align 2 -gItemIcon_FullHeal:: @ 8DAC0A8 - .incbin "graphics/items/icons/full_heal.4bpp.lz" - - .align 2 -gItemIconPalette_FullHeal:: @ 8DAC150 - .incbin "graphics/items/icon_palettes/full_heal.gbapal.lz" - - .align 2 -gItemIcon_Revive:: @ 8DAC178 - .incbin "graphics/items/icons/revive.4bpp.lz" - - .align 2 -gItemIcon_MaxRevive:: @ 8DAC1D4 - .incbin "graphics/items/icons/max_revive.4bpp.lz" - - .align 2 -gItemIconPalette_Revive:: @ 8DAC2A0 - .incbin "graphics/items/icon_palettes/revive.gbapal.lz" - - .align 2 -gItemIcon_FreshWater:: @ 8DAC2BC - .incbin "graphics/items/icons/fresh_water.4bpp.lz" - - .align 2 -gItemIconPalette_FreshWater:: @ 8DAC36C - .incbin "graphics/items/icon_palettes/fresh_water.gbapal.lz" - - .align 2 -gItemIcon_SodaPop:: @ 8DAC390 - .incbin "graphics/items/icons/soda_pop.4bpp.lz" - - .align 2 -gItemIconPalette_SodaPop:: @ 8DAC424 - .incbin "graphics/items/icon_palettes/soda_pop.gbapal.lz" - - .align 2 -gItemIcon_Lemonade:: @ 8DAC44C - .incbin "graphics/items/icons/lemonade.4bpp.lz" - - .align 2 -gItemIconPalette_Lemonade:: @ 8DAC50C - .incbin "graphics/items/icon_palettes/lemonade.gbapal.lz" - - .align 2 -gItemIcon_MoomooMilk:: @ 8DAC534 - .incbin "graphics/items/icons/moomoo_milk.4bpp.lz" - - .align 2 -gItemIconPalette_MoomooMilk:: @ 8DAC5E4 - .incbin "graphics/items/icon_palettes/moomoo_milk.gbapal.lz" - - .align 2 -gItemIcon_Powder:: @ 8DAC60C - .incbin "graphics/items/icons/powder.4bpp.lz" - - .align 2 -gItemIconPalette_EnergyPowder:: @ 8DAC698 - .incbin "graphics/items/icon_palettes/energy_powder.gbapal.lz" - - .align 2 -gItemIcon_EnergyRoot:: @ 8DAC6B8 - .incbin "graphics/items/icons/energy_root.4bpp.lz" - - .align 2 -gItemIconPalette_EnergyRoot:: @ 8DAC784 - .incbin "graphics/items/icon_palettes/energy_root.gbapal.lz" - - .align 2 -gItemIconPalette_HealPowder:: @ 8DAC7A0 - .incbin "graphics/items/icon_palettes/heal_powder.gbapal.lz" - - .align 2 -gItemIcon_RevivalHerb:: @ 8DAC7C0 - .incbin "graphics/items/icons/revival_herb.4bpp.lz" - - .align 2 -gItemIconPalette_RevivalHerb:: @ 8DAC890 - .incbin "graphics/items/icon_palettes/revival_herb.gbapal.lz" - - .align 2 -gItemIcon_Ether:: @ 8DAC8B0 - .incbin "graphics/items/icons/ether.4bpp.lz" - - .align 2 -gItemIconPalette_Ether:: @ 8DAC970 - .incbin "graphics/items/icon_palettes/ether.gbapal.lz" - - .align 2 -gItemIconPalette_MaxEther:: @ 8DAC994 - .incbin "graphics/items/icon_palettes/max_ether.gbapal.lz" - - .align 2 -gItemIconPalette_Elixir:: @ 8DAC9B8 - .incbin "graphics/items/icon_palettes/elixir.gbapal.lz" - - .align 2 -gItemIconPalette_MaxElixir:: @ 8DAC9DC - .incbin "graphics/items/icon_palettes/max_elixir.gbapal.lz" - - .align 2 -gItemIcon_LavaCookie:: @ 8DACA00 - .incbin "graphics/items/icons/lava_cookie.4bpp.lz" - - .align 2 -gItemIconPalette_LavaCookieAndLetter:: @ 8DACACC - .incbin "graphics/items/icon_palettes/lava_cookie_and_letter.gbapal.lz" - - .align 2 -gItemIcon_Flute:: @ 8DACAF0 - .incbin "graphics/items/icons/flute.4bpp.lz" - - .align 2 -gItemIconPalette_BlueFlute:: @ 8DACBA4 - .incbin "graphics/items/icon_palettes/blue_flute.gbapal.lz" - - .align 2 -gItemIconPalette_YellowFlute:: @ 8DACBC8 - .incbin "graphics/items/icon_palettes/yellow_flute.gbapal.lz" - - .align 2 -gItemIconPalette_RedFlute:: @ 8DACBEC - .incbin "graphics/items/icon_palettes/red_flute.gbapal.lz" - - .align 2 -gItemIconPalette_BlackFlute:: @ 8DACC10 - .incbin "graphics/items/icon_palettes/black_flute.gbapal.lz" - - .align 2 -gItemIconPalette_WhiteFlute:: @ 8DACC34 - .incbin "graphics/items/icon_palettes/white_flute.gbapal.lz" - - .align 2 -gItemIcon_BerryJuice:: @ 8DACC58 - .incbin "graphics/items/icons/berry_juice.4bpp.lz" - - .align 2 -gItemIconPalette_BerryJuice:: @ 8DACD38 - .incbin "graphics/items/icon_palettes/berry_juice.gbapal.lz" - - .align 2 -gItemIcon_SacredAsh:: @ 8DACD60 - .incbin "graphics/items/icons/sacred_ash.4bpp.lz" - - .align 2 -gItemIconPalette_SacredAsh:: @ 8DACE20 - .incbin "graphics/items/icon_palettes/sacred_ash.gbapal.lz" - - .align 2 -gItemIconPalette_ShoalSalt:: @ 8DACE44 - .incbin "graphics/items/icon_palettes/shoal_salt.gbapal.lz" - - .align 2 -gItemIcon_ShoalShell:: @ 8DACE64 - .incbin "graphics/items/icons/shoal_shell.4bpp.lz" - - .align 2 -gItemIconPalette_Shell:: @ 8DACF58 - .incbin "graphics/items/icon_palettes/shell.gbapal.lz" - - .align 2 -gItemIcon_Shard:: @ 8DACF80 - .incbin "graphics/items/icons/shard.4bpp.lz" - - .align 2 -gItemIconPalette_RedShard:: @ 8DACFDC - .incbin "graphics/items/icon_palettes/red_shard.gbapal.lz" - - .align 2 -gItemIconPalette_BlueShard:: @ 8DACFF4 - .incbin "graphics/items/icon_palettes/blue_shard.gbapal.lz" - - .align 2 -gItemIconPalette_YellowShard:: @ 8DAD00C - .incbin "graphics/items/icon_palettes/yellow_shard.gbapal.lz" - - .align 2 -gItemIconPalette_GreenShard:: @ 8DAD024 - .incbin "graphics/items/icon_palettes/green_shard.gbapal.lz" - - .align 2 -gItemIcon_HPUp:: @ 8DAD03C - .incbin "graphics/items/icons/hp_up.4bpp.lz" - - .align 2 -gItemIconPalette_HPUp:: @ 8DAD0F4 - .incbin "graphics/items/icon_palettes/hp_up.gbapal.lz" - - .align 2 -gItemIcon_Vitamin:: @ 8DAD11C - .incbin "graphics/items/icons/vitamin.4bpp.lz" - - .align 2 -gItemIconPalette_Protein:: @ 8DAD1CC - .incbin "graphics/items/icon_palettes/protein.gbapal.lz" - - .align 2 -gItemIconPalette_Iron:: @ 8DAD1F4 - .incbin "graphics/items/icon_palettes/iron.gbapal.lz" - - .align 2 -gItemIconPalette_Carbos:: @ 8DAD21C - .incbin "graphics/items/icon_palettes/carbos.gbapal.lz" - - .align 2 -gItemIconPalette_Calcium:: @ 8DAD244 - .incbin "graphics/items/icon_palettes/calcium.gbapal.lz" - - .align 2 -gItemIcon_RareCandy:: @ 8DAD26C - .incbin "graphics/items/icons/rare_candy.4bpp.lz" - - .align 2 -gItemIconPalette_RareCandy:: @ 8DAD330 - .incbin "graphics/items/icon_palettes/rare_candy.gbapal.lz" - - .align 2 -gItemIcon_PPUp:: @ 8DAD34C - .incbin "graphics/items/icons/pp_up.4bpp.lz" - - .align 2 -gItemIconPalette_PPUp:: @ 8DAD3FC - .incbin "graphics/items/icon_palettes/pp_up.gbapal.lz" - - .align 2 -gItemIconPalette_Zinc:: @ 8DAD424 - .incbin "graphics/items/icon_palettes/zinc.gbapal.lz" - - .align 2 -gItemIcon_PPMax:: @ 8DAD44C - .incbin "graphics/items/icons/pp_max.4bpp.lz" - - .align 2 -gItemIconPalette_PPMax:: @ 8DAD4F4 - .incbin "graphics/items/icon_palettes/pp_max.gbapal.lz" - - .align 2 -gItemIconPalette_GuardSpec:: @ 8DAD51C - .incbin "graphics/items/icon_palettes/guard_spec.gbapal.lz" - - .align 2 -gItemIconPalette_DireHit:: @ 8DAD540 - .incbin "graphics/items/icon_palettes/dire_hit.gbapal.lz" - - .align 2 -gItemIconPalette_XAttack:: @ 8DAD564 - .incbin "graphics/items/icon_palettes/x_attack.gbapal.lz" - - .align 2 -gItemIcon_BattleStatItem:: @ 8DAD588 - .incbin "graphics/items/icons/battle_stat_item.4bpp.lz" - - .align 2 -gItemIconPalette_XDefend:: @ 8DAD66C - .incbin "graphics/items/icon_palettes/x_defend.gbapal.lz" - - .align 2 -gItemIconPalette_XSpeed:: @ 8DAD690 - .incbin "graphics/items/icon_palettes/x_speed.gbapal.lz" - - .align 2 -gItemIconPalette_XAccuracy:: @ 8DAD6B4 - .incbin "graphics/items/icon_palettes/x_accuracy.gbapal.lz" - - .align 2 -gItemIconPalette_XSpecial:: @ 8DAD6D8 - .incbin "graphics/items/icon_palettes/x_special.gbapal.lz" - - .align 2 -gItemIcon_PokeDoll:: @ 8DAD6FC - .incbin "graphics/items/icons/poke_doll.4bpp.lz" - - .align 2 -gItemIconPalette_PokeDoll:: @ 8DAD7EC - .incbin "graphics/items/icon_palettes/poke_doll.gbapal.lz" - - .align 2 -gItemIcon_FluffyTail:: @ 8DAD808 - .incbin "graphics/items/icons/fluffy_tail.4bpp.lz" - - .align 2 -gItemIconPalette_FluffyTail:: @ 8DAD8F8 - .incbin "graphics/items/icon_palettes/fluffy_tail.gbapal.lz" - - .align 2 -gItemIcon_Repel:: @ 8DAD91C - .incbin "graphics/items/icons/repel.4bpp.lz" - - .align 2 -gItemIconPalette_SuperRepel:: @ 8DAD9BC - .incbin "graphics/items/icon_palettes/super_repel.gbapal.lz" - - .align 2 -gItemIconPalette_MaxRepel:: @ 8DAD9E4 - .incbin "graphics/items/icon_palettes/max_repel.gbapal.lz" - - .align 2 -gItemIcon_EscapeRope:: @ 8DADA0C - .incbin "graphics/items/icons/escape_rope.4bpp.lz" - - .align 2 -gItemIconPalette_EscapeRope:: @ 8DADAC0 - .incbin "graphics/items/icon_palettes/escape_rope.gbapal.lz" - - .align 2 -gItemIconPalette_Repel:: @ 8DADAE4 - .incbin "graphics/items/icon_palettes/repel.gbapal.lz" - - .align 2 -gItemIcon_SunStone:: @ 8DADB0C - .incbin "graphics/items/icons/sun_stone.4bpp.lz" - - .align 2 -gItemIconPalette_SunStone:: @ 8DADC04 - .incbin "graphics/items/icon_palettes/sun_stone.gbapal.lz" - - .align 2 -gItemIcon_MoonStone:: @ 8DADC20 - .incbin "graphics/items/icons/moon_stone.4bpp.lz" - - .align 2 -gItemIconPalette_MoonStone:: @ 8DADCF4 - .incbin "graphics/items/icon_palettes/moon_stone.gbapal.lz" - - .align 2 -gItemIcon_FireStone:: @ 8DADD14 - .incbin "graphics/items/icons/fire_stone.4bpp.lz" - - .align 2 -gItemIconPalette_FireStone:: @ 8DADE08 - .incbin "graphics/items/icon_palettes/fire_stone.gbapal.lz" - - .align 2 -gItemIcon_ThunderStone:: @ 8DADE30 - .incbin "graphics/items/icons/thunder_stone.4bpp.lz" - - .align 2 -gItemIconPalette_ThunderStone:: @ 8DADF18 - .incbin "graphics/items/icon_palettes/thunder_stone.gbapal.lz" - - .align 2 -gItemIcon_WaterStone:: @ 8DADF38 - .incbin "graphics/items/icons/water_stone.4bpp.lz" - - .align 2 -gItemIconPalette_WaterStone:: @ 8DAE018 - .incbin "graphics/items/icon_palettes/water_stone.gbapal.lz" - - .align 2 -gItemIcon_LeafStone:: @ 8DAE03C - .incbin "graphics/items/icons/leaf_stone.4bpp.lz" - - .align 2 -gItemIconPalette_LeafStone:: @ 8DAE130 - .incbin "graphics/items/icon_palettes/leaf_stone.gbapal.lz" - - .align 2 -gItemIcon_TinyMushroom:: @ 8DAE158 - .incbin "graphics/items/icons/tiny_mushroom.4bpp.lz" - - .align 2 -gItemIcon_BigMushroom:: @ 8DAE1D8 - .incbin "graphics/items/icons/big_mushroom.4bpp.lz" - - .align 2 -gItemIconPalette_Mushroom:: @ 8DAE290 - .incbin "graphics/items/icon_palettes/mushroom.gbapal.lz" - - .align 2 -gItemIcon_Pearl:: @ 8DAE2B4 - .incbin "graphics/items/icons/pearl.4bpp.lz" - - .align 2 -gItemIconPalette_Pearl:: @ 8DAE330 - .incbin "graphics/items/icon_palettes/pearl.gbapal.lz" - - .align 2 -gItemIcon_BigPearl:: @ 8DAE358 - .incbin "graphics/items/icons/big_pearl.4bpp.lz" - - .align 2 -gItemIcon_Stardust:: @ 8DAE410 - .incbin "graphics/items/icons/stardust.4bpp.lz" - - .align 2 -gItemIconPalette_Star:: @ 8DAE4D0 - .incbin "graphics/items/icon_palettes/star.gbapal.lz" - - .align 2 -gItemIcon_StarPiece:: @ 8DAE4F4 - .incbin "graphics/items/icons/star_piece.4bpp.lz" - - .align 2 -gItemIcon_Nugget:: @ 8DAE578 - .incbin "graphics/items/icons/nugget.4bpp.lz" - - .align 2 -gItemIconPalette_Nugget:: @ 8DAE604 - .incbin "graphics/items/icon_palettes/nugget.gbapal.lz" - - .align 2 -gItemIcon_HeartScale:: @ 8DAE624 - .incbin "graphics/items/icons/heart_scale.4bpp.lz" - - .align 2 -gItemIconPalette_HeartScale:: @ 8DAE6C4 - .incbin "graphics/items/icon_palettes/heart_scale.gbapal.lz" - - .align 2 -gItemIcon_OrangeMail:: @ 8DAE6E0 - .incbin "graphics/items/icons/orange_mail.4bpp.lz" - - .align 2 -gItemIconPalette_OrangeMail:: @ 8DAE7B4 - .incbin "graphics/items/icon_palettes/orange_mail.gbapal.lz" - - .align 2 -gItemIcon_HarborMail:: @ 8DAE7D4 - .incbin "graphics/items/icons/harbor_mail.4bpp.lz" - - .align 2 -gItemIconPalette_HarborMail:: @ 8DAE89C - .incbin "graphics/items/icon_palettes/harbor_mail.gbapal.lz" - - .align 2 -gItemIcon_GlitterMail:: @ 8DAE8BC - .incbin "graphics/items/icons/glitter_mail.4bpp.lz" - - .align 2 -gItemIconPalette_GlitterMail:: @ 8DAE998 - .incbin "graphics/items/icon_palettes/glitter_mail.gbapal.lz" - - .align 2 -gItemIcon_MechMail:: @ 8DAE9C0 - .incbin "graphics/items/icons/mech_mail.4bpp.lz" - - .align 2 -gItemIconPalette_MechMail:: @ 8DAEA9C - .incbin "graphics/items/icon_palettes/mech_mail.gbapal.lz" - - .align 2 -gItemIcon_WoodMail:: @ 8DAEABC - .incbin "graphics/items/icons/wood_mail.4bpp.lz" - - .align 2 -gItemIconPalette_WoodMail:: @ 8DAEB9C - .incbin "graphics/items/icon_palettes/wood_mail.gbapal.lz" - - .align 2 -gItemIcon_WaveMail:: @ 8DAEBBC - .incbin "graphics/items/icons/wave_mail.4bpp.lz" - - .align 2 -gItemIconPalette_WaveMail:: @ 8DAEC94 - .incbin "graphics/items/icon_palettes/wave_mail.gbapal.lz" - - .align 2 -gItemIcon_BeadMail:: @ 8DAECB4 - .incbin "graphics/items/icons/bead_mail.4bpp.lz" - - .align 2 -gItemIconPalette_BeadMail:: @ 8DAED74 - .incbin "graphics/items/icon_palettes/bead_mail.gbapal.lz" - - .align 2 -gItemIcon_ShadowMail:: @ 8DAED94 - .incbin "graphics/items/icons/shadow_mail.4bpp.lz" - - .align 2 -gItemIconPalette_ShadowMail:: @ 8DAEE68 - .incbin "graphics/items/icon_palettes/shadow_mail.gbapal.lz" - - .align 2 -gItemIcon_TropicMail:: @ 8DAEE8C - .incbin "graphics/items/icons/tropic_mail.4bpp.lz" - - .align 2 -gItemIconPalette_TropicMail:: @ 8DAEF70 - .incbin "graphics/items/icon_palettes/tropic_mail.gbapal.lz" - - .align 2 -gItemIcon_DreamMail:: @ 8DAEF94 - .incbin "graphics/items/icons/dream_mail.4bpp.lz" - - .align 2 -gItemIconPalette_DreamMail:: @ 8DAF074 - .incbin "graphics/items/icon_palettes/dream_mail.gbapal.lz" - - .align 2 -gItemIcon_FabMail:: @ 8DAF094 - .incbin "graphics/items/icons/fab_mail.4bpp.lz" - - .align 2 -gItemIconPalette_FabMail:: @ 8DAF15C - .incbin "graphics/items/icon_palettes/fab_mail.gbapal.lz" - - .align 2 -gItemIcon_RetroMail:: @ 8DAF178 - .incbin "graphics/items/icons/retro_mail.4bpp.lz" - - .align 2 -gItemIconPalette_RetroMail:: @ 8DAF210 - .incbin "graphics/items/icon_palettes/retro_mail.gbapal.lz" - - .align 2 -gItemIcon_CheriBerry:: @ 8DAF230 - .incbin "graphics/items/icons/cheri_berry.4bpp.lz" - - .align 2 -gItemIconPalette_CheriBerry:: @ 8DAF318 - .incbin "graphics/items/icon_palettes/cheri_berry.gbapal.lz" - - .align 2 -gItemIcon_ChestoBerry:: @ 8DAF340 - .incbin "graphics/items/icons/chesto_berry.4bpp.lz" - - .align 2 -gItemIconPalette_ChestoBerry:: @ 8DAF400 - .incbin "graphics/items/icon_palettes/chesto_berry.gbapal.lz" - - .align 2 -gItemIcon_PechaBerry:: @ 8DAF424 - .incbin "graphics/items/icons/pecha_berry.4bpp.lz" - - .align 2 -gItemIconPalette_PechaBerry:: @ 8DAF4E4 - .incbin "graphics/items/icon_palettes/pecha_berry.gbapal.lz" - - .align 2 -gItemIcon_RawstBerry:: @ 8DAF508 - .incbin "graphics/items/icons/rawst_berry.4bpp.lz" - - .align 2 -gItemIconPalette_RawstBerry:: @ 8DAF5EC - .incbin "graphics/items/icon_palettes/rawst_berry.gbapal.lz" - - .align 2 -gItemIcon_AspearBerry:: @ 8DAF610 - .incbin "graphics/items/icons/aspear_berry.4bpp.lz" - - .align 2 -gItemIconPalette_AspearBerry:: @ 8DAF6F8 - .incbin "graphics/items/icon_palettes/aspear_berry.gbapal.lz" - - .align 2 -gItemIcon_LeppaBerry:: @ 8DAF71C - .incbin "graphics/items/icons/leppa_berry.4bpp.lz" - - .align 2 -gItemIconPalette_LeppaBerry:: @ 8DAF7D4 - .incbin "graphics/items/icon_palettes/leppa_berry.gbapal.lz" - - .align 2 -gItemIcon_OranBerry:: @ 8DAF7F8 - .incbin "graphics/items/icons/oran_berry.4bpp.lz" - - .align 2 -gItemIconPalette_OranBerry:: @ 8DAF8BC - .incbin "graphics/items/icon_palettes/oran_berry.gbapal.lz" - - .align 2 -gItemIcon_PersimBerry:: @ 8DAF8E0 - .incbin "graphics/items/icons/persim_berry.4bpp.lz" - - .align 2 -gItemIconPalette_PersimBerry:: @ 8DAF9B4 - .incbin "graphics/items/icon_palettes/persim_berry.gbapal.lz" - - .align 2 -gItemIcon_LumBerry:: @ 8DAF9D8 - .incbin "graphics/items/icons/lum_berry.4bpp.lz" - - .align 2 -gItemIconPalette_LumBerry:: @ 8DAFA90 - .incbin "graphics/items/icon_palettes/lum_berry.gbapal.lz" - - .align 2 -gItemIcon_SitrusBerry:: @ 8DAFAAC - .incbin "graphics/items/icons/sitrus_berry.4bpp.lz" - - .align 2 -gItemIconPalette_SitrusBerry:: @ 8DAFB78 - .incbin "graphics/items/icon_palettes/sitrus_berry.gbapal.lz" - - .align 2 -gItemIcon_FigyBerry:: @ 8DAFB9C - .incbin "graphics/items/icons/figy_berry.4bpp.lz" - - .align 2 -gItemIconPalette_FigyBerry:: @ 8DAFC64 - .incbin "graphics/items/icon_palettes/figy_berry.gbapal.lz" - - .align 2 -gItemIcon_WikiBerry:: @ 8DAFC88 - .incbin "graphics/items/icons/wiki_berry.4bpp.lz" - - .align 2 -gItemIconPalette_WikiBerry:: @ 8DAFD6C - .incbin "graphics/items/icon_palettes/wiki_berry.gbapal.lz" - - .align 2 -gItemIcon_MagoBerry:: @ 8DAFD90 - .incbin "graphics/items/icons/mago_berry.4bpp.lz" - - .align 2 -gItemIconPalette_MagoBerry:: @ 8DAFE4C - .incbin "graphics/items/icon_palettes/mago_berry.gbapal.lz" - - .align 2 -gItemIcon_AguavBerry:: @ 8DAFE70 - .incbin "graphics/items/icons/aguav_berry.4bpp.lz" - - .align 2 -gItemIconPalette_AguavBerry:: @ 8DAFF5C - .incbin "graphics/items/icon_palettes/aguav_berry.gbapal.lz" - - .align 2 -gItemIcon_IapapaBerry:: @ 8DAFF7C - .incbin "graphics/items/icons/iapapa_berry.4bpp.lz" - - .align 2 -gItemIconPalette_IapapaBerry:: @ 8DB0064 - .incbin "graphics/items/icon_palettes/iapapa_berry.gbapal.lz" - - .align 2 -gItemIcon_RazzBerry:: @ 8DB0088 - .incbin "graphics/items/icons/razz_berry.4bpp.lz" - - .align 2 -gItemIconPalette_RazzBerry:: @ 8DB0168 - .incbin "graphics/items/icon_palettes/razz_berry.gbapal.lz" - - .align 2 -gItemIcon_BlukBerry:: @ 8DB018C - .incbin "graphics/items/icons/bluk_berry.4bpp.lz" - - .align 2 -gItemIconPalette_BlukBerry:: @ 8DB027C - .incbin "graphics/items/icon_palettes/bluk_berry.gbapal.lz" - - .align 2 -gItemIcon_NanabBerry:: @ 8DB02A0 - .incbin "graphics/items/icons/nanab_berry.4bpp.lz" - - .align 2 -gItemIconPalette_NanabBerry:: @ 8DB0384 - .incbin "graphics/items/icon_palettes/nanab_berry.gbapal.lz" - - .align 2 -gItemIcon_WepearBerry:: @ 8DB03A8 - .incbin "graphics/items/icons/wepear_berry.4bpp.lz" - - .align 2 -gItemIconPalette_WepearBerry:: @ 8DB0470 - .incbin "graphics/items/icon_palettes/wepear_berry.gbapal.lz" - - .align 2 -gItemIcon_PinapBerry:: @ 8DB048C - .incbin "graphics/items/icons/pinap_berry.4bpp.lz" - - .align 2 -gItemIconPalette_PinapBerry:: @ 8DB0580 - .incbin "graphics/items/icon_palettes/pinap_berry.gbapal.lz" - - .align 2 -gItemIcon_PomegBerry:: @ 8DB05A4 - .incbin "graphics/items/icons/pomeg_berry.4bpp.lz" - - .align 2 -gItemIconPalette_PomegBerry:: @ 8DB0658 - .incbin "graphics/items/icon_palettes/pomeg_berry.gbapal.lz" - - .align 2 -gItemIcon_KelpsyBerry:: @ 8DB067C - .incbin "graphics/items/icons/kelpsy_berry.4bpp.lz" - - .align 2 -gItemIconPalette_KelpsyBerry:: @ 8DB074C - .incbin "graphics/items/icon_palettes/kelpsy_berry.gbapal.lz" - - .align 2 -gItemIcon_QualotBerry:: @ 8DB076C - .incbin "graphics/items/icons/qualot_berry.4bpp.lz" - - .align 2 -gItemIconPalette_QualotBerry:: @ 8DB0838 - .incbin "graphics/items/icon_palettes/qualot_berry.gbapal.lz" - - .align 2 -gItemIcon_HondewBerry:: @ 8DB085C - .incbin "graphics/items/icons/hondew_berry.4bpp.lz" - - .align 2 -gItemIconPalette_HondewBerry:: @ 8DB093C - .incbin "graphics/items/icon_palettes/hondew_berry.gbapal.lz" - - .align 2 -gItemIcon_GrepaBerry:: @ 8DB0960 - .incbin "graphics/items/icons/grepa_berry.4bpp.lz" - - .align 2 -gItemIconPalette_GrepaBerry:: @ 8DB0A14 - .incbin "graphics/items/icon_palettes/grepa_berry.gbapal.lz" - - .align 2 -gItemIcon_TamatoBerry:: @ 8DB0A38 - .incbin "graphics/items/icons/tamato_berry.4bpp.lz" - - .align 2 -gItemIconPalette_TamatoBerry:: @ 8DB0B14 - .incbin "graphics/items/icon_palettes/tamato_berry.gbapal.lz" - - .align 2 -gItemIcon_CornnBerry:: @ 8DB0B38 - .incbin "graphics/items/icons/cornn_berry.4bpp.lz" - - .align 2 -gItemIconPalette_CornnBerry:: @ 8DB0C24 - .incbin "graphics/items/icon_palettes/cornn_berry.gbapal.lz" - - .align 2 -gItemIcon_MagostBerry:: @ 8DB0C4C - .incbin "graphics/items/icons/magost_berry.4bpp.lz" - - .align 2 -gItemIconPalette_MagostBerry:: @ 8DB0CF4 - .incbin "graphics/items/icon_palettes/magost_berry.gbapal.lz" - - .align 2 -gItemIcon_RabutaBerry:: @ 8DB0D18 - .incbin "graphics/items/icons/rabuta_berry.4bpp.lz" - - .align 2 -gItemIconPalette_RabutaBerry:: @ 8DB0E14 - .incbin "graphics/items/icon_palettes/rabuta_berry.gbapal.lz" - - .align 2 -gItemIcon_NomelBerry:: @ 8DB0E38 - .incbin "graphics/items/icons/nomel_berry.4bpp.lz" - - .align 2 -gItemIconPalette_NomelBerry:: @ 8DB0EDC - .incbin "graphics/items/icon_palettes/nomel_berry.gbapal.lz" - - .align 2 -gItemIcon_SpelonBerry:: @ 8DB0EF8 - .incbin "graphics/items/icons/spelon_berry.4bpp.lz" - - .align 2 -gItemIconPalette_SpelonBerry:: @ 8DB0FBC - .incbin "graphics/items/icon_palettes/spelon_berry.gbapal.lz" - - .align 2 -gItemIcon_PamtreBerry:: @ 8DB0FDC - .incbin "graphics/items/icons/pamtre_berry.4bpp.lz" - - .align 2 -gItemIconPalette_PamtreBerry:: @ 8DB10BC - .incbin "graphics/items/icon_palettes/pamtre_berry.gbapal.lz" - - .align 2 -gItemIcon_WatmelBerry:: @ 8DB10E4 - .incbin "graphics/items/icons/watmel_berry.4bpp.lz" - - .align 2 -gItemIconPalette_WatmelBerry:: @ 8DB11F4 - .incbin "graphics/items/icon_palettes/watmel_berry.gbapal.lz" - - .align 2 -gItemIcon_DurinBerry:: @ 8DB1218 - .incbin "graphics/items/icons/durin_berry.4bpp.lz" - - .align 2 -gItemIconPalette_DurinBerry:: @ 8DB131C - .incbin "graphics/items/icon_palettes/durin_berry.gbapal.lz" - - .align 2 -gItemIcon_BelueBerry:: @ 8DB1340 - .incbin "graphics/items/icons/belue_berry.4bpp.lz" - - .align 2 -gItemIconPalette_BelueBerry:: @ 8DB1424 - .incbin "graphics/items/icon_palettes/belue_berry.gbapal.lz" - - .align 2 -gItemIcon_LiechiBerry:: @ 8DB1448 - .incbin "graphics/items/icons/liechi_berry.4bpp.lz" - - .align 2 -gItemIconPalette_LiechiBerry:: @ 8DB1528 - .incbin "graphics/items/icon_palettes/liechi_berry.gbapal.lz" - - .align 2 -gItemIcon_GanlonBerry:: @ 8DB1548 - .incbin "graphics/items/icons/ganlon_berry.4bpp.lz" - - .align 2 -gItemIconPalette_GanlonBerry:: @ 8DB1628 - .incbin "graphics/items/icon_palettes/ganlon_berry.gbapal.lz" - - .align 2 -gItemIcon_SalacBerry:: @ 8DB1648 - .incbin "graphics/items/icons/salac_berry.4bpp.lz" - - .align 2 -gItemIconPalette_SalacBerry:: @ 8DB1730 - .incbin "graphics/items/icon_palettes/salac_berry.gbapal.lz" - - .align 2 -gItemIcon_PetayaBerry:: @ 8DB1750 - .incbin "graphics/items/icons/petaya_berry.4bpp.lz" - - .align 2 -gItemIconPalette_PetayaBerry:: @ 8DB1848 - .incbin "graphics/items/icon_palettes/petaya_berry.gbapal.lz" - - .align 2 -gItemIcon_ApicotBerry:: @ 8DB186C - .incbin "graphics/items/icons/apicot_berry.4bpp.lz" - - .align 2 -gItemIconPalette_ApicotBerry:: @ 8DB1924 - .incbin "graphics/items/icon_palettes/apicot_berry.gbapal.lz" - - .align 2 -gItemIcon_LansatBerry:: @ 8DB194C - .incbin "graphics/items/icons/lansat_berry.4bpp.lz" - - .align 2 -gItemIconPalette_LansatBerry:: @ 8DB1A2C - .incbin "graphics/items/icon_palettes/lansat_berry.gbapal.lz" - - .align 2 -gItemIcon_StarfBerry:: @ 8DB1A50 - .incbin "graphics/items/icons/starf_berry.4bpp.lz" - - .align 2 -gItemIconPalette_StarfBerry:: @ 8DB1B20 - .incbin "graphics/items/icon_palettes/starf_berry.gbapal.lz" - - .align 2 -gItemIcon_EnigmaBerry:: @ 8DB1B44 - .incbin "graphics/items/icons/enigma_berry.4bpp.lz" - - .align 2 -gItemIconPalette_EnigmaBerry:: @ 8DB1C10 - .incbin "graphics/items/icon_palettes/enigma_berry.gbapal.lz" - - .align 2 -gItemIcon_BrightPowder:: @ 8DB1C30 - .incbin "graphics/items/icons/bright_powder.4bpp.lz" - - .align 2 -gItemIconPalette_BrightPowder:: @ 8DB1CEC - .incbin "graphics/items/icon_palettes/bright_powder.gbapal.lz" - - .align 2 -gItemIcon_InBattleHerb:: @ 8DB1D0C - .incbin "graphics/items/icons/in_battle_herb.4bpp.lz" - - .align 2 -gItemIconPalette_WhiteHerb:: @ 8DB1DB8 - .incbin "graphics/items/icon_palettes/white_herb.gbapal.lz" - - .align 2 -gItemIcon_MachoBrace:: @ 8DB1DD8 - .incbin "graphics/items/icons/macho_brace.4bpp.lz" - - .align 2 -gItemIconPalette_MachoBrace:: @ 8DB1EC4 - .incbin "graphics/items/icon_palettes/macho_brace.gbapal.lz" - - .align 2 -gItemIcon_ExpShare:: @ 8DB1EEC - .incbin "graphics/items/icons/exp_share.4bpp.lz" - - .align 2 -gItemIconPalette_ExpShare:: @ 8DB1FD8 - .incbin "graphics/items/icon_palettes/exp_share.gbapal.lz" - - .align 2 -gItemIcon_QuickClaw:: @ 8DB2000 - .incbin "graphics/items/icons/quick_claw.4bpp.lz" - - .align 2 -gItemIconPalette_QuickClaw:: @ 8DB2098 - .incbin "graphics/items/icon_palettes/quick_claw.gbapal.lz" - - .align 2 -gItemIcon_SootheBell:: @ 8DB20B8 - .incbin "graphics/items/icons/soothe_bell.4bpp.lz" - - .align 2 -gItemIconPalette_SootheBell:: @ 8DB217C - .incbin "graphics/items/icon_palettes/soothe_bell.gbapal.lz" - - .align 2 -gItemIconPalette_MentalHerb:: @ 8DB21A0 - .incbin "graphics/items/icon_palettes/mental_herb.gbapal.lz" - - .align 2 -gItemIcon_ChoiceBand:: @ 8DB21C0 - .incbin "graphics/items/icons/choice_band.4bpp.lz" - - .align 2 -gItemIconPalette_ChoiceBand:: @ 8DB22AC - .incbin "graphics/items/icon_palettes/choice_band.gbapal.lz" - - .align 2 -gItemIcon_KingsRock:: @ 8DB22D4 - .incbin "graphics/items/icons/kings_rock.4bpp.lz" - - .align 2 -gItemIconPalette_KingsRock:: @ 8DB23C4 - .incbin "graphics/items/icon_palettes/kings_rock.gbapal.lz" - - .align 2 -gItemIcon_SilverPowder:: @ 8DB23E0 - .incbin "graphics/items/icons/silver_powder.4bpp.lz" - - .align 2 -gItemIconPalette_SilverPowder:: @ 8DB246C - .incbin "graphics/items/icon_palettes/silver_powder.gbapal.lz" - - .align 2 -gItemIcon_AmuletCoin:: @ 8DB2490 - .incbin "graphics/items/icons/amulet_coin.4bpp.lz" - - .align 2 -gItemIconPalette_AmuletCoin:: @ 8DB2528 - .incbin "graphics/items/icon_palettes/amulet_coin.gbapal.lz" - - .align 2 -gItemIcon_CleanseTag:: @ 8DB254C - .incbin "graphics/items/icons/cleanse_tag.4bpp.lz" - - .align 2 -gItemIconPalette_CleanseTag:: @ 8DB25F0 - .incbin "graphics/items/icon_palettes/cleanse_tag.gbapal.lz" - - .align 2 -gItemIcon_SoulDew:: @ 8DB2610 - .incbin "graphics/items/icons/soul_dew.4bpp.lz" - - .align 2 -gItemIconPalette_SoulDew:: @ 8DB26A4 - .incbin "graphics/items/icon_palettes/soul_dew.gbapal.lz" - - .align 2 -gItemIcon_DeepSeaTooth:: @ 8DB26C4 - .incbin "graphics/items/icons/deep_sea_tooth.4bpp.lz" - - .align 2 -gItemIconPalette_DeepSeaTooth:: @ 8DB2778 - .incbin "graphics/items/icon_palettes/deep_sea_tooth.gbapal.lz" - - .align 2 -gItemIcon_DeepSeaScale:: @ 8DB279C - .incbin "graphics/items/icons/deep_sea_scale.4bpp.lz" - - .align 2 -gItemIconPalette_DeepSeaScale:: @ 8DB2844 - .incbin "graphics/items/icon_palettes/deep_sea_scale.gbapal.lz" - - .align 2 -gItemIcon_SmokeBall:: @ 8DB2864 - .incbin "graphics/items/icons/smoke_ball.4bpp.lz" - - .align 2 -gItemIconPalette_SmokeBall:: @ 8DB291C - .incbin "graphics/items/icon_palettes/smoke_ball.gbapal.lz" - - .align 2 -gItemIcon_Everstone:: @ 8DB2940 - .incbin "graphics/items/icons/everstone.4bpp.lz" - - .align 2 -gItemIconPalette_Everstone:: @ 8DB29F4 - .incbin "graphics/items/icon_palettes/everstone.gbapal.lz" - - .align 2 -gItemIcon_FocusBand:: @ 8DB2A10 - .incbin "graphics/items/icons/focus_band.4bpp.lz" - - .align 2 -gItemIconPalette_FocusBand:: @ 8DB2B00 - .incbin "graphics/items/icon_palettes/focus_band.gbapal.lz" - - .align 2 -gItemIcon_LuckyEgg:: @ 8DB2B28 - .incbin "graphics/items/icons/lucky_egg.4bpp.lz" - - .align 2 -gItemIconPalette_LuckyEgg:: @ 8DB2BB0 - .incbin "graphics/items/icon_palettes/lucky_egg.gbapal.lz" - - .align 2 -gItemIcon_ScopeLens:: @ 8DB2BC8 - .incbin "graphics/items/icons/scope_lens.4bpp.lz" - - .align 2 -gItemIconPalette_ScopeLens:: @ 8DB2CC8 - .incbin "graphics/items/icon_palettes/scope_lens.gbapal.lz" - - .align 2 -gItemIcon_MetalCoat:: @ 8DB2CF0 - .incbin "graphics/items/icons/metal_coat.4bpp.lz" - - .align 2 -gItemIconPalette_MetalCoat:: @ 8DB2DAC - .incbin "graphics/items/icon_palettes/metal_coat.gbapal.lz" - - .align 2 -gItemIcon_Leftovers:: @ 8DB2DCC - .incbin "graphics/items/icons/leftovers.4bpp.lz" - - .align 2 -gItemIconPalette_Leftovers:: @ 8DB2E70 - .incbin "graphics/items/icon_palettes/leftovers.gbapal.lz" - - .align 2 -gItemIcon_DragonScale:: @ 8DB2E94 - .incbin "graphics/items/icons/dragon_scale.4bpp.lz" - - .align 2 -gItemIconPalette_DragonScale:: @ 8DB2F48 - .incbin "graphics/items/icon_palettes/dragon_scale.gbapal.lz" - - .align 2 -gItemIcon_LightBall:: @ 8DB2F68 - .incbin "graphics/items/icons/light_ball.4bpp.lz" - - .align 2 -gItemIconPalette_LightBall:: @ 8DB2FFC - .incbin "graphics/items/icon_palettes/light_ball.gbapal.lz" - - .align 2 -gItemIcon_SoftSand:: @ 8DB3020 - .incbin "graphics/items/icons/soft_sand.4bpp.lz" - - .align 2 -gItemIconPalette_SoftSand:: @ 8DB30DC - .incbin "graphics/items/icon_palettes/soft_sand.gbapal.lz" - - .align 2 -gItemIcon_HardStone:: @ 8DB30FC - .incbin "graphics/items/icons/hard_stone.4bpp.lz" - - .align 2 -gItemIconPalette_HardStone:: @ 8DB31B0 - .incbin "graphics/items/icon_palettes/hard_stone.gbapal.lz" - - .align 2 -gItemIcon_MiracleSeed:: @ 8DB31D4 - .incbin "graphics/items/icons/miracle_seed.4bpp.lz" - - .align 2 -gItemIconPalette_MiracleSeed:: @ 8DB3284 - .incbin "graphics/items/icon_palettes/miracle_seed.gbapal.lz" - - .align 2 -gItemIcon_BlackGlasses:: @ 8DB32A0 - .incbin "graphics/items/icons/black_glasses.4bpp.lz" - - .align 2 -gItemIconPalette_BlackTypeEnhancingItem:: @ 8DB3328 - .incbin "graphics/items/icon_palettes/black_type_enhancing_item.gbapal.lz" - - .align 2 -gItemIcon_BlackBelt:: @ 8DB3340 - .incbin "graphics/items/icons/black_belt.4bpp.lz" - - .align 2 -gItemIcon_Magnet:: @ 8DB3408 - .incbin "graphics/items/icons/magnet.4bpp.lz" - - .align 2 -gItemIconPalette_Magnet:: @ 8DB34B8 - .incbin "graphics/items/icon_palettes/magnet.gbapal.lz" - - .align 2 -gItemIcon_MysticWater:: @ 8DB34E0 - .incbin "graphics/items/icons/mystic_water.4bpp.lz" - - .align 2 -gItemIconPalette_MysticWater:: @ 8DB3578 - .incbin "graphics/items/icon_palettes/mystic_water.gbapal.lz" - - .align 2 -gItemIcon_SharpBeak:: @ 8DB3598 - .incbin "graphics/items/icons/sharp_beak.4bpp.lz" - - .align 2 -gItemIconPalette_SharpBeak:: @ 8DB3654 - .incbin "graphics/items/icon_palettes/sharp_beak.gbapal.lz" - - .align 2 -gItemIcon_PoisonBarb:: @ 8DB3674 - .incbin "graphics/items/icons/poison_barb.4bpp.lz" - - .align 2 -gItemIconPalette_PoisonBarb:: @ 8DB36FC - .incbin "graphics/items/icon_palettes/poison_barb.gbapal.lz" - - .align 2 -gItemIcon_NeverMeltIce:: @ 8DB371C - .incbin "graphics/items/icons/never_melt_ice.4bpp.lz" - - .align 2 -gItemIconPalette_NeverMeltIce:: @ 8DB37E8 - .incbin "graphics/items/icon_palettes/never_melt_ice.gbapal.lz" - - .align 2 -gItemIcon_SpellTag:: @ 8DB3804 - .incbin "graphics/items/icons/spell_tag.4bpp.lz" - - .align 2 -gItemIconPalette_SpellTag:: @ 8DB38A4 - .incbin "graphics/items/icon_palettes/spell_tag.gbapal.lz" - - .align 2 -gItemIcon_TwistedSpoon:: @ 8DB38C4 - .incbin "graphics/items/icons/twisted_spoon.4bpp.lz" - - .align 2 -gItemIconPalette_TwistedSpoon:: @ 8DB3964 - .incbin "graphics/items/icon_palettes/twisted_spoon.gbapal.lz" - - .align 2 -gItemIcon_Charcoal:: @ 8DB397C - .incbin "graphics/items/icons/charcoal.4bpp.lz" - - .align 2 -gItemIconPalette_Charcoal:: @ 8DB3A4C - .incbin "graphics/items/icon_palettes/charcoal.gbapal.lz" - - .align 2 -gItemIcon_DragonFang:: @ 8DB3A68 - .incbin "graphics/items/icons/dragon_fang.4bpp.lz" - - .align 2 -gItemIconPalette_DragonFang:: @ 8DB3B1C - .incbin "graphics/items/icon_palettes/dragon_fang.gbapal.lz" - - .align 2 -gItemIcon_SilkScarf:: @ 8DB3B3C - .incbin "graphics/items/icons/silk_scarf.4bpp.lz" - - .align 2 -gItemIconPalette_SilkScarf:: @ 8DB3C44 - .incbin "graphics/items/icon_palettes/silk_scarf.gbapal.lz" - - .align 2 -gItemIcon_UpGrade:: @ 8DB3C64 - .incbin "graphics/items/icons/up_grade.4bpp.lz" - - .align 2 -gItemIconPalette_UpGrade:: @ 8DB3D20 - .incbin "graphics/items/icon_palettes/up_grade.gbapal.lz" - - .align 2 -gItemIcon_ShellBell:: @ 8DB3D48 - .incbin "graphics/items/icons/shell_bell.4bpp.lz" - - .align 2 -gItemIcon_SeaIncense:: @ 8DB3E28 - .incbin "graphics/items/icons/sea_incense.4bpp.lz" - - .align 2 -gItemIconPalette_SeaIncense:: @ 8DB3F10 - .incbin "graphics/items/icon_palettes/sea_incense.gbapal.lz" - - .align 2 -gItemIcon_LaxIncense:: @ 8DB3F38 - .incbin "graphics/items/icons/lax_incense.4bpp.lz" - - .align 2 -gItemIconPalette_LaxIncense:: @ 8DB4020 - .incbin "graphics/items/icon_palettes/lax_incense.gbapal.lz" - - .align 2 -gItemIcon_LuckyPunch:: @ 8DB4048 - .incbin "graphics/items/icons/lucky_punch.4bpp.lz" - - .align 2 -gItemIconPalette_LuckyPunch:: @ 8DB410C - .incbin "graphics/items/icon_palettes/lucky_punch.gbapal.lz" - - .align 2 -gItemIcon_MetalPowder:: @ 8DB412C - .incbin "graphics/items/icons/metal_powder.4bpp.lz" - - .align 2 -gItemIconPalette_MetalPowder:: @ 8DB41EC - .incbin "graphics/items/icon_palettes/metal_powder.gbapal.lz" - - .align 2 -gItemIcon_ThickClub:: @ 8DB4210 - .incbin "graphics/items/icons/thick_club.4bpp.lz" - - .align 2 -gItemIconPalette_ThickClub:: @ 8DB42A4 - .incbin "graphics/items/icon_palettes/thick_club.gbapal.lz" - - .align 2 -gItemIcon_Stick:: @ 8DB42C0 - .incbin "graphics/items/icons/stick.4bpp.lz" - - .align 2 -gItemIconPalette_Stick:: @ 8DB4360 - .incbin "graphics/items/icon_palettes/stick.gbapal.lz" - - .align 2 -gItemIcon_Scarf:: @ 8DB4384 - .incbin "graphics/items/icons/scarf.4bpp.lz" - - .align 2 -gItemIconPalette_RedScarf:: @ 8DB4450 - .incbin "graphics/items/icon_palettes/red_scarf.gbapal.lz" - - .align 2 -gItemIconPalette_BlueScarf:: @ 8DB446C - .incbin "graphics/items/icon_palettes/blue_scarf.gbapal.lz" - - .align 2 -gItemIconPalette_PinkScarf:: @ 8DB4488 - .incbin "graphics/items/icon_palettes/pink_scarf.gbapal.lz" - - .align 2 -gItemIconPalette_GreenScarf:: @ 8DB44A4 - .incbin "graphics/items/icon_palettes/green_scarf.gbapal.lz" - - .align 2 -gItemIconPalette_YellowScarf:: @ 8DB44C0 - .incbin "graphics/items/icon_palettes/yellow_scarf.gbapal.lz" - - .align 2 -gItemIcon_MachBike:: @ 8DB44DC - .incbin "graphics/items/icons/mach_bike.4bpp.lz" - - .align 2 -gItemIconPalette_MachBike:: @ 8DB45E4 - .incbin "graphics/items/icon_palettes/mach_bike.gbapal.lz" - - .align 2 -gItemIcon_CoinCase:: @ 8DB4608 - .incbin "graphics/items/icons/coin_case.4bpp.lz" - - .align 2 -gItemIconPalette_CoinCase:: @ 8DB46C8 - .incbin "graphics/items/icon_palettes/coin_case.gbapal.lz" - - .align 2 -gItemIcon_Itemfinder:: @ 8DB46E8 - .incbin "graphics/items/icons/itemfinder.4bpp.lz" - - .align 2 -gItemIconPalette_Itemfinder:: @ 8DB47A4 - .incbin "graphics/items/icon_palettes/itemfinder.gbapal.lz" - - .align 2 -gItemIcon_OldRod:: @ 8DB47CC - .incbin "graphics/items/icons/old_rod.4bpp.lz" - - .align 2 -gItemIconPalette_OldRod:: @ 8DB4878 - .incbin "graphics/items/icon_palettes/old_rod.gbapal.lz" - - .align 2 -gItemIcon_GoodRod:: @ 8DB489C - .incbin "graphics/items/icons/good_rod.4bpp.lz" - - .align 2 -gItemIconPalette_GoodRod:: @ 8DB4938 - .incbin "graphics/items/icon_palettes/good_rod.gbapal.lz" - - .align 2 -gItemIcon_SuperRod:: @ 8DB4960 - .incbin "graphics/items/icons/super_rod.4bpp.lz" - - .align 2 -gItemIconPalette_SuperRod:: @ 8DB4A10 - .incbin "graphics/items/icon_palettes/super_rod.gbapal.lz" - - .align 2 -gItemIcon_SSTicket:: @ 8DB4A38 - .incbin "graphics/items/icons/ss_ticket.4bpp.lz" - - .align 2 -gItemIconPalette_SSTicket:: @ 8DB4ACC - .incbin "graphics/items/icon_palettes/ss_ticket.gbapal.lz" - - .align 2 -gItemIcon_ContestPass:: @ 8DB4AE4 - .incbin "graphics/items/icons/contest_pass.4bpp.lz" - - .align 2 -gItemIconPalette_ContestPass:: @ 8DB4B90 - .incbin "graphics/items/icon_palettes/contest_pass.gbapal.lz" - - .align 2 -gItemIcon_WailmerPail:: @ 8DB4BB8 - .incbin "graphics/items/icons/wailmer_pail.4bpp.lz" - - .align 2 -gItemIconPalette_WailmerPail:: @ 8DB4C84 - .incbin "graphics/items/icon_palettes/wailmer_pail.gbapal.lz" - - .align 2 -gItemIcon_DevonGoods:: @ 8DB4CA8 - .incbin "graphics/items/icons/devon_goods.4bpp.lz" - - .align 2 -gItemIconPalette_DevonGoods:: @ 8DB4D50 - .incbin "graphics/items/icon_palettes/devon_goods.gbapal.lz" - - .align 2 -gItemIcon_SootSack:: @ 8DB4D6C - .incbin "graphics/items/icons/soot_sack.4bpp.lz" - - .align 2 -gItemIconPalette_SootSack:: @ 8DB4E44 - .incbin "graphics/items/icon_palettes/soot_sack.gbapal.lz" - - .align 2 -gItemIcon_BasementKey:: @ 8DB4E6C - .incbin "graphics/items/icons/basement_key.4bpp.lz" - - .align 2 -gItemIconPalette_OldKey:: @ 8DB4F14 - .incbin "graphics/items/icon_palettes/old_key.gbapal.lz" - - .align 2 -gItemIcon_AcroBike:: @ 8DB4F3C - .incbin "graphics/items/icons/acro_bike.4bpp.lz" - - .align 2 -gItemIconPalette_AcroBike:: @ 8DB5038 - .incbin "graphics/items/icon_palettes/acro_bike.gbapal.lz" - - .align 2 -gItemIcon_PokeblockCase:: @ 8DB5058 - .incbin "graphics/items/icons/pokeblock_case.4bpp.lz" - - .align 2 -gItemIconPalette_PokeblockCase:: @ 8DB5140 - .incbin "graphics/items/icon_palettes/pokeblock_case.gbapal.lz" - - .align 2 -gItemIcon_Letter:: @ 8DB5168 - .incbin "graphics/items/icons/letter.4bpp.lz" - - .align 2 -gItemIcon_EonTicket:: @ 8DB51E8 - .incbin "graphics/items/icons/eon_ticket.4bpp.lz" - - .align 2 -gItemIconPalette_EonTicket:: @ 8DB5284 - .incbin "graphics/items/icon_palettes/eon_ticket.gbapal.lz" - - .align 2 -gItemIcon_Orb:: @ 8DB52A8 - .incbin "graphics/items/icons/orb.4bpp.lz" - - .align 2 -gItemIconPalette_RedOrb:: @ 8DB5360 - .incbin "graphics/items/icon_palettes/red_orb.gbapal.lz" - - .align 2 -gItemIconPalette_BlueOrb:: @ 8DB537C - .incbin "graphics/items/icon_palettes/blue_orb.gbapal.lz" - - .align 2 -gItemIcon_Scanner:: @ 8DB5398 - .incbin "graphics/items/icons/scanner.4bpp.lz" - - .align 2 -gItemIconPalette_Scanner:: @ 8DB5460 - .incbin "graphics/items/icon_palettes/scanner.gbapal.lz" - - .align 2 -gItemIcon_GoGoggles:: @ 8DB5484 - .incbin "graphics/items/icons/go_goggles.4bpp.lz" - - .align 2 -gItemIconPalette_GoGoggles:: @ 8DB5538 - .incbin "graphics/items/icon_palettes/go_goggles.gbapal.lz" - - .align 2 -gItemIcon_Meteorite:: @ 8DB5558 - .incbin "graphics/items/icons/meteorite.4bpp.lz" - - .align 2 -gItemIconPalette_Meteorite:: @ 8DB5638 - .incbin "graphics/items/icon_palettes/meteorite.gbapal.lz" - - .align 2 -gItemIcon_Room1Key:: @ 8DB5658 - .incbin "graphics/items/icons/room1_key.4bpp.lz" - - .align 2 -gItemIcon_Room2Key:: @ 8DB5710 - .incbin "graphics/items/icons/room2_key.4bpp.lz" - - .align 2 -gItemIcon_Room4Key:: @ 8DB57CC - .incbin "graphics/items/icons/room4_key.4bpp.lz" - - .align 2 -gItemIcon_Room6Key:: @ 8DB588C - .incbin "graphics/items/icons/room6_key.4bpp.lz" - - .align 2 -gItemIcon_StorageKey:: @ 8DB5948 - .incbin "graphics/items/icons/storage_key.4bpp.lz" - - .align 2 -gItemIcon_RootFossil:: @ 8DB59F0 - .incbin "graphics/items/icons/root_fossil.4bpp.lz" - - .align 2 -gItemIconPalette_HoennFossil:: @ 8DB5AFC - .incbin "graphics/items/icon_palettes/hoenn_fossil.gbapal.lz" - - .align 2 -gItemIcon_ClawFossil:: @ 8DB5B24 - .incbin "graphics/items/icons/claw_fossil.4bpp.lz" - - .align 2 -gItemIcon_DevonScope:: @ 8DB5C14 - .incbin "graphics/items/icons/devon_scope.4bpp.lz" - - .align 2 -gItemIconPalette_DevonScope:: @ 8DB5CD0 - .incbin "graphics/items/icon_palettes/devon_scope.gbapal.lz" - - .align 2 -gItemIcon_TM:: @ 8DB5CF8 - .incbin "graphics/items/icons/tm.4bpp.lz" - - .align 2 -gItemIconPalette_FightingTMHM:: @ 8DB5DF4 - .incbin "graphics/items/icon_palettes/fighting_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_DragonTMHM:: @ 8DB5E1C - .incbin "graphics/items/icon_palettes/dragon_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_WaterTMHM:: @ 8DB5E44 - .incbin "graphics/items/icon_palettes/water_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_PsychicTMHM:: @ 8DB5E6C - .incbin "graphics/items/icon_palettes/psychic_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_NormalTMHM:: @ 8DB5E94 - .incbin "graphics/items/icon_palettes/normal_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_PoisonTMHM:: @ 8DB5EBC - .incbin "graphics/items/icon_palettes/poison_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_IceTMHM:: @ 8DB5EE4 - .incbin "graphics/items/icon_palettes/ice_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_GrassTMHM:: @ 8DB5F0C - .incbin "graphics/items/icon_palettes/grass_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_FireTMHM:: @ 8DB5F34 - .incbin "graphics/items/icon_palettes/fire_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_DarkTMHM:: @ 8DB5F5C - .incbin "graphics/items/icon_palettes/dark_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_SteelTMHM:: @ 8DB5F84 - .incbin "graphics/items/icon_palettes/steel_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_ElectricTMHM:: @ 8DB5FAC - .incbin "graphics/items/icon_palettes/electric_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_GroundTMHM:: @ 8DB5FD4 - .incbin "graphics/items/icon_palettes/ground_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_GhostTMHM:: @ 8DB5FFC - .incbin "graphics/items/icon_palettes/ghost_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_RockTMHM:: @ 8DB6024 - .incbin "graphics/items/icon_palettes/rock_tm_hm.gbapal.lz" - - .align 2 -gItemIconPalette_FlyingTMHM:: @ 8DB604C - .incbin "graphics/items/icon_palettes/flying_tm_hm.gbapal.lz" - - .align 2 -gItemIcon_HM:: @ 8DB6074 - .incbin "graphics/items/icons/hm.4bpp.lz" - - .align 2 -gItemIcon_OaksParcel:: @ 8DB6174 - .incbin "graphics/items/icons/oaks_parcel.4bpp.lz" - - .align 2 -gItemIconPalette_OaksParcel:: @ 8DB622C - .incbin "graphics/items/icon_palettes/oaks_parcel.gbapal.lz" - - .align 2 -gItemIcon_PokeFlute:: @ 8DB624C - .incbin "graphics/items/icons/poke_flute.4bpp.lz" - - .align 2 -gItemIconPalette_PokeFlute:: @ 8DB6310 - .incbin "graphics/items/icon_palettes/poke_flute.gbapal.lz" - - .align 2 -gItemIcon_SecretKey:: @ 8DB6338 - .incbin "graphics/items/icons/secret_key.4bpp.lz" - - .align 2 -gItemIconPalette_SecretKey:: @ 8DB6404 - .incbin "graphics/items/icon_palettes/secret_key.gbapal.lz" - - .align 2 -gItemIcon_BikeVoucher:: @ 8DB642C - .incbin "graphics/items/icons/bike_voucher.4bpp.lz" - - .align 2 -gItemIconPalette_BikeVoucher:: @ 8DB64CC - .incbin "graphics/items/icon_palettes/bike_voucher.gbapal.lz" - - .align 2 -gItemIcon_GoldTeeth:: @ 8DB64EC - .incbin "graphics/items/icons/gold_teeth.4bpp.lz" - - .align 2 -gItemIconPalette_GoldTeeth:: @ 8DB65D8 - .incbin "graphics/items/icon_palettes/gold_teeth.gbapal.lz" - - .align 2 -gItemIcon_OldAmber:: @ 8DB65FC - .incbin "graphics/items/icons/old_amber.4bpp.lz" - - .align 2 -gItemIconPalette_OldAmber:: @ 8DB66DC - .incbin "graphics/items/icon_palettes/old_amber.gbapal.lz" - - .align 2 -gItemIcon_CardKey:: @ 8DB6700 - .incbin "graphics/items/icons/card_key.4bpp.lz" - - .align 2 -gItemIconPalette_CardKey:: @ 8DB67A8 - .incbin "graphics/items/icon_palettes/card_key.gbapal.lz" - - .align 2 -gItemIcon_LiftKey:: @ 8DB67C8 - .incbin "graphics/items/icons/lift_key.4bpp.lz" - - .align 2 -gItemIconPalette_Key:: @ 8DB6884 - .incbin "graphics/items/icon_palettes/key.gbapal.lz" - - .align 2 -gItemIcon_HelixFossil:: @ 8DB68A4 - .incbin "graphics/items/icons/helix_fossil.4bpp.lz" - - .align 2 -gItemIconPalette_KantoFossil:: @ 8DB6998 - .incbin "graphics/items/icon_palettes/kanto_fossil.gbapal.lz" - - .align 2 -gItemIcon_DomeFossil:: @ 8DB69B8 - .incbin "graphics/items/icons/dome_fossil.4bpp.lz" - - .align 2 -gItemIcon_SilphScope:: @ 8DB6AA8 - .incbin "graphics/items/icons/silph_scope.4bpp.lz" - - .align 2 -gItemIconPalette_SilphScope:: @ 8DB6B7C - .incbin "graphics/items/icon_palettes/silph_scope.gbapal.lz" - - .align 2 -gItemIcon_Bicycle:: @ 8DB6BA0 - .incbin "graphics/items/icons/bicycle.4bpp.lz" - - .align 2 -gItemIconPalette_Bicycle:: @ 8DB6CA4 - .incbin "graphics/items/icon_palettes/bicycle.gbapal.lz" - - .align 2 -gItemIcon_TownMap:: @ 8DB6CC4 - .incbin "graphics/items/icons/town_map.4bpp.lz" - - .align 2 -gItemIconPalette_TownMap:: @ 8DB6D80 - .incbin "graphics/items/icon_palettes/town_map.gbapal.lz" - - .align 2 -gItemIcon_VSSeeker:: @ 8DB6DA8 - .incbin "graphics/items/icons/vs_seeker.4bpp.lz" - - .align 2 -gItemIconPalette_VSSeeker:: @ 8DB6E70 - .incbin "graphics/items/icon_palettes/vs_seeker.gbapal.lz" - - .align 2 -gItemIcon_FameChecker:: @ 8DB6E90 - .incbin "graphics/items/icons/fame_checker.4bpp.lz" - - .align 2 -gItemIconPalette_FameChecker:: @ 8DB6F48 - .incbin "graphics/items/icon_palettes/fame_checker.gbapal.lz" - - .align 2 -gItemIcon_TMCase:: @ 8DB6F6C - .incbin "graphics/items/icons/tm_case.4bpp.lz" - - .align 2 -gItemIconPalette_TMCase:: @ 8DB7030 - .incbin "graphics/items/icon_palettes/tm_case.gbapal.lz" - - .align 2 -gItemIcon_BerryPouch:: @ 8DB7058 - .incbin "graphics/items/icons/berry_pouch.4bpp.lz" - - .align 2 -gItemIconPalette_BerryPouch:: @ 8DB7158 - .incbin "graphics/items/icon_palettes/berry_pouch.gbapal.lz" - - .align 2 -gItemIcon_TeachyTV:: @ 8DB7180 - .incbin "graphics/items/icons/teachy_tv.4bpp.lz" - - .align 2 -gItemIconPalette_TeachyTV:: @ 8DB7278 - .incbin "graphics/items/icon_palettes/teachy_tv.gbapal.lz" - - .align 2 -gItemIcon_TriPass:: @ 8DB72A0 - .incbin "graphics/items/icons/tri_pass.4bpp.lz" - - .align 2 -gItemIconPalette_TriPass:: @ 8DB7344 - .incbin "graphics/items/icon_palettes/tri_pass.gbapal.lz" - - .align 2 -gItemIcon_RainbowPass:: @ 8DB7364 - .incbin "graphics/items/icons/rainbow_pass.4bpp.lz" - - .align 2 -gItemIconPalette_RainbowPass:: @ 8DB740C - .incbin "graphics/items/icon_palettes/rainbow_pass.gbapal.lz" - - .align 2 -gItemIcon_Tea:: @ 8DB7434 - .incbin "graphics/items/icons/tea.4bpp.lz" - - .align 2 -gItemIconPalette_Tea:: @ 8DB74FC - .incbin "graphics/items/icon_palettes/tea.gbapal.lz" - - .align 2 -gItemIcon_MysticTicket:: @ 8DB7520 - .incbin "graphics/items/icons/mystic_ticket.4bpp.lz" - - .align 2 -gItemIconPalette_MysticTicket:: @ 8DB75B8 - .incbin "graphics/items/icon_palettes/mystic_ticket.gbapal.lz" - - .align 2 -gItemIcon_AuroraTicket:: @ 8DB75D8 - .incbin "graphics/items/icons/aurora_ticket.4bpp.lz" - - .align 2 -gItemIconPalette_AuroraTicket:: @ 8DB7674 - .incbin "graphics/items/icon_palettes/aurora_ticket.gbapal.lz" - - .align 2 -gItemIcon_PowderJar:: @ 8DB7698 - .incbin "graphics/items/icons/powder_jar.4bpp.lz" - - .align 2 -gItemIconPalette_PowderJar:: @ 8DB7738 - .incbin "graphics/items/icon_palettes/powder_jar.gbapal.lz" - - .align 2 -gItemIconPalette_Ruby:: @ 8DB7760 - .incbin "graphics/items/icon_palettes/ruby.gbapal.lz" - - .align 2 -gItemIcon_Gem:: @ 8DB7788 - .incbin "graphics/items/icons/gem.4bpp.lz" - - .align 2 -gItemIconPalette_Sapphire:: @ 8DB7850 - .incbin "graphics/items/icon_palettes/sapphire.gbapal.lz" - - .align 2 -gItemIcon_MagmaEmblem:: @ 8DB7878 - .incbin "graphics/items/icons/magma_emblem.4bpp.lz" - - .align 2 -gItemIconPalette_MagmaEmblem:: @ 8DB794C - .incbin "graphics/items/icon_palettes/magma_emblem.gbapal.lz" - - .align 2 -gItemIcon_OldSeaMap:: @ 8DB7974 - .incbin "graphics/items/icons/old_sea_map.4bpp.lz" - - .align 2 -gItemIconPalette_OldSeaMap:: @ 8DB7A78 - .incbin "graphics/items/icon_palettes/old_sea_map.gbapal.lz" diff --git a/data/graphics/pokemon/circled_question_mark_graphics.inc b/data/graphics/pokemon/circled_question_mark_graphics.inc deleted file mode 100644 index dea14ad8a5..0000000000 --- a/data/graphics/pokemon/circled_question_mark_graphics.inc +++ /dev/null @@ -1,15 +0,0 @@ - .align 2 -gMonStillFrontPic_CircledQuestionMark:: @ 8C00750 - .incbin "graphics/pokemon/front_pics/circled_question_mark_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_CircledQuestionMark:: @ 8C00998 - .incbin "graphics/pokemon/back_pics/circled_question_mark_back_pic.4bpp.lz" - - .align 2 -gMonPalette_CircledQuestionMark:: @ 8C00BE0 - .incbin "graphics/pokemon/palettes/circled_question_mark_palette.gbapal.lz" - - .align 2 -gMonShinyPalette_CircledQuestionMark:: @ 8C00BF8 - .incbin "graphics/pokemon/palettes/circled_question_mark_shiny_palette.gbapal.lz" diff --git a/data/graphics/pokemon/graphics.inc b/data/graphics/pokemon/graphics.inc deleted file mode 100644 index 4c4a0f57bb..0000000000 --- a/data/graphics/pokemon/graphics.inc +++ /dev/null @@ -1,9619 +0,0 @@ - .align 2 -gMonStillFrontPic_Bulbasaur:: @ 8C2FA08 - .incbin "graphics/pokemon/front_pics/bulbasaur_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Bulbasaur:: @ 8C2FCA0 - .incbin "graphics/pokemon/palettes/bulbasaur_palette.gbapal.lz" - - .align 2 -gMonBackPic_Bulbasaur:: @ 8C2FCC8 - .incbin "graphics/pokemon/back_pics/bulbasaur_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Bulbasaur:: @ 8C2FF78 - .incbin "graphics/pokemon/palettes/bulbasaur_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Bulbasaur:: @ 8C2FFA0 - .incbin "graphics/pokemon/icons/bulbasaur_icon.4bpp" - - .align 2 -gMonFootprint_Bulbasaur:: @ 8C303A0 - .incbin "graphics/pokemon/footprints/bulbasaur_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ivysaur:: @ 8C303C0 - .incbin "graphics/pokemon/front_pics/ivysaur_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ivysaur:: @ 8C30734 - .incbin "graphics/pokemon/palettes/ivysaur_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ivysaur:: @ 8C3075C - .incbin "graphics/pokemon/back_pics/ivysaur_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ivysaur:: @ 8C30AE8 - .incbin "graphics/pokemon/palettes/ivysaur_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ivysaur:: @ 8C30B10 - .incbin "graphics/pokemon/icons/ivysaur_icon.4bpp" - - .align 2 -gMonFootprint_Ivysaur:: @ 8C30F10 - .incbin "graphics/pokemon/footprints/ivysaur_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Venusaur:: @ 8C30F30 - .incbin "graphics/pokemon/front_pics/venusaur_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Venusaur:: @ 8C314BC - .incbin "graphics/pokemon/palettes/venusaur_palette.gbapal.lz" - - .align 2 -gMonBackPic_Venusaur:: @ 8C314E4 - .incbin "graphics/pokemon/back_pics/venusaur_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Venusaur:: @ 8C319B4 - .incbin "graphics/pokemon/palettes/venusaur_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Venusaur:: @ 8C319DC - .incbin "graphics/pokemon/icons/venusaur_icon.4bpp" - - .align 2 -gMonFootprint_Venusaur:: @ 8C31DDC - .incbin "graphics/pokemon/footprints/venusaur_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Charmander:: @ 8C31DFC - .incbin "graphics/pokemon/front_pics/charmander_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Charmander:: @ 8C320AC - .incbin "graphics/pokemon/palettes/charmander_palette.gbapal.lz" - - .align 2 -gMonBackPic_Charmander:: @ 8C320D4 - .incbin "graphics/pokemon/back_pics/charmander_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Charmander:: @ 8C32368 - .incbin "graphics/pokemon/palettes/charmander_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Charmander:: @ 8C32390 - .incbin "graphics/pokemon/icons/charmander_icon.4bpp" - - .align 2 -gMonFootprint_Charmander:: @ 8C32790 - .incbin "graphics/pokemon/footprints/charmander_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Charmeleon:: @ 8C327B0 - .incbin "graphics/pokemon/front_pics/charmeleon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Charmeleon:: @ 8C32B58 - .incbin "graphics/pokemon/palettes/charmeleon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Charmeleon:: @ 8C32B80 - .incbin "graphics/pokemon/back_pics/charmeleon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Charmeleon:: @ 8C32E60 - .incbin "graphics/pokemon/palettes/charmeleon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Charmeleon:: @ 8C32E88 - .incbin "graphics/pokemon/icons/charmeleon_icon.4bpp" - - .align 2 -gMonFootprint_Charmeleon:: @ 8C33288 - .incbin "graphics/pokemon/footprints/charmeleon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Charizard:: @ 8C332A8 - .incbin "graphics/pokemon/front_pics/charizard_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Charizard:: @ 8C337F8 - .incbin "graphics/pokemon/palettes/charizard_palette.gbapal.lz" - - .align 2 -gMonBackPic_Charizard:: @ 8C33820 - .incbin "graphics/pokemon/back_pics/charizard_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Charizard:: @ 8C33C3C - .incbin "graphics/pokemon/palettes/charizard_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Charizard:: @ 8C33C64 - .incbin "graphics/pokemon/icons/charizard_icon.4bpp" - - .align 2 -gMonFootprint_Charizard:: @ 8C34064 - .incbin "graphics/pokemon/footprints/charizard_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Squirtle:: @ 8C34084 - .incbin "graphics/pokemon/front_pics/squirtle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Squirtle:: @ 8C34360 - .incbin "graphics/pokemon/palettes/squirtle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Squirtle:: @ 8C34388 - .incbin "graphics/pokemon/back_pics/squirtle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Squirtle:: @ 8C34608 - .incbin "graphics/pokemon/palettes/squirtle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Squirtle:: @ 8C34630 - .incbin "graphics/pokemon/icons/squirtle_icon.4bpp" - - .align 2 -gMonFootprint_Squirtle:: @ 8C34A30 - .incbin "graphics/pokemon/footprints/squirtle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wartortle:: @ 8C34A50 - .incbin "graphics/pokemon/front_pics/wartortle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wartortle:: @ 8C34DCC - .incbin "graphics/pokemon/palettes/wartortle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wartortle:: @ 8C34DF4 - .incbin "graphics/pokemon/back_pics/wartortle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wartortle:: @ 8C35128 - .incbin "graphics/pokemon/palettes/wartortle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wartortle:: @ 8C35150 - .incbin "graphics/pokemon/icons/wartortle_icon.4bpp" - - .align 2 -gMonFootprint_Wartortle:: @ 8C35550 - .incbin "graphics/pokemon/footprints/wartortle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Blastoise:: @ 8C35570 - .incbin "graphics/pokemon/front_pics/blastoise_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Blastoise:: @ 8C35A74 - .incbin "graphics/pokemon/palettes/blastoise_palette.gbapal.lz" - - .align 2 -gMonBackPic_Blastoise:: @ 8C35A9C - .incbin "graphics/pokemon/back_pics/blastoise_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Blastoise:: @ 8C35EB8 - .incbin "graphics/pokemon/palettes/blastoise_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Blastoise:: @ 8C35EE0 - .incbin "graphics/pokemon/icons/blastoise_icon.4bpp" - - .align 2 -gMonFootprint_Blastoise:: @ 8C362E0 - .incbin "graphics/pokemon/footprints/blastoise_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Caterpie:: @ 8C36300 - .incbin "graphics/pokemon/front_pics/caterpie_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Caterpie:: @ 8C36560 - .incbin "graphics/pokemon/palettes/caterpie_palette.gbapal.lz" - - .align 2 -gMonBackPic_Caterpie:: @ 8C36588 - .incbin "graphics/pokemon/back_pics/caterpie_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Caterpie:: @ 8C36810 - .incbin "graphics/pokemon/palettes/caterpie_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Caterpie:: @ 8C36838 - .incbin "graphics/pokemon/icons/caterpie_icon.4bpp" - - .align 2 -gMonFootprint_Caterpie:: @ 8C36C38 - .incbin "graphics/pokemon/footprints/caterpie_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Metapod:: @ 8C36C58 - .incbin "graphics/pokemon/front_pics/metapod_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Metapod:: @ 8C36E70 - .incbin "graphics/pokemon/palettes/metapod_palette.gbapal.lz" - - .align 2 -gMonBackPic_Metapod:: @ 8C36E90 - .incbin "graphics/pokemon/back_pics/metapod_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Metapod:: @ 8C370D0 - .incbin "graphics/pokemon/palettes/metapod_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Metapod:: @ 8C370F0 - .incbin "graphics/pokemon/icons/metapod_icon.4bpp" - - .align 2 -gMonFootprint_Metapod:: @ 8C374F0 - .incbin "graphics/pokemon/footprints/metapod_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Butterfree:: @ 8C37510 - .incbin "graphics/pokemon/front_pics/butterfree_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Butterfree:: @ 8C37870 - .incbin "graphics/pokemon/palettes/butterfree_palette.gbapal.lz" - - .align 2 -gMonBackPic_Butterfree:: @ 8C37898 - .incbin "graphics/pokemon/back_pics/butterfree_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Butterfree:: @ 8C37CA8 - .incbin "graphics/pokemon/palettes/butterfree_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Butterfree:: @ 8C37CD0 - .incbin "graphics/pokemon/icons/butterfree_icon.4bpp" - - .align 2 -gMonFootprint_Butterfree:: @ 8C380D0 - .incbin "graphics/pokemon/footprints/butterfree_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Weedle:: @ 8C380F0 - .incbin "graphics/pokemon/front_pics/weedle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Weedle:: @ 8C38330 - .incbin "graphics/pokemon/palettes/weedle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Weedle:: @ 8C38358 - .incbin "graphics/pokemon/back_pics/weedle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Weedle:: @ 8C385C0 - .incbin "graphics/pokemon/palettes/weedle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Weedle:: @ 8C385E8 - .incbin "graphics/pokemon/icons/weedle_icon.4bpp" - - .align 2 -gMonFootprint_Weedle:: @ 8C389E8 - .incbin "graphics/pokemon/footprints/weedle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kakuna:: @ 8C38A08 - .incbin "graphics/pokemon/front_pics/kakuna_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kakuna:: @ 8C38C54 - .incbin "graphics/pokemon/palettes/kakuna_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kakuna:: @ 8C38C78 - .incbin "graphics/pokemon/back_pics/kakuna_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kakuna:: @ 8C38EFC - .incbin "graphics/pokemon/palettes/kakuna_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kakuna:: @ 8C38F20 - .incbin "graphics/pokemon/icons/kakuna_icon.4bpp" - - .align 2 -gMonFootprint_Kakuna:: @ 8C39320 - .incbin "graphics/pokemon/footprints/kakuna_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Beedrill:: @ 8C39340 - .incbin "graphics/pokemon/front_pics/beedrill_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Beedrill:: @ 8C39750 - .incbin "graphics/pokemon/palettes/beedrill_palette.gbapal.lz" - - .align 2 -gMonBackPic_Beedrill:: @ 8C39778 - .incbin "graphics/pokemon/back_pics/beedrill_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Beedrill:: @ 8C39AEC - .incbin "graphics/pokemon/palettes/beedrill_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Beedrill:: @ 8C39B14 - .incbin "graphics/pokemon/icons/beedrill_icon.4bpp" - - .align 2 -gMonFootprint_Beedrill:: @ 8C39F14 - .incbin "graphics/pokemon/footprints/beedrill_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pidgey:: @ 8C39F34 - .incbin "graphics/pokemon/front_pics/pidgey_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pidgey:: @ 8C3A220 - .incbin "graphics/pokemon/palettes/pidgey_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pidgey:: @ 8C3A248 - .incbin "graphics/pokemon/back_pics/pidgey_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pidgey:: @ 8C3A59C - .incbin "graphics/pokemon/palettes/pidgey_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pidgey:: @ 8C3A5C4 - .incbin "graphics/pokemon/icons/pidgey_icon.4bpp" - - .align 2 -gMonFootprint_Pidgey:: @ 8C3A9C4 - .incbin "graphics/pokemon/footprints/pidgey_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pidgeotto:: @ 8C3A9E4 - .incbin "graphics/pokemon/front_pics/pidgeotto_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pidgeotto:: @ 8C3AD58 - .incbin "graphics/pokemon/palettes/pidgeotto_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pidgeotto:: @ 8C3AD80 - .incbin "graphics/pokemon/back_pics/pidgeotto_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pidgeotto:: @ 8C3B0CC - .incbin "graphics/pokemon/palettes/pidgeotto_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pidgeotto:: @ 8C3B0F4 - .incbin "graphics/pokemon/icons/pidgeotto_icon.4bpp" - - .align 2 -gMonFootprint_Pidgeotto:: @ 8C3B4F4 - .incbin "graphics/pokemon/footprints/pidgeotto_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pidgeot:: @ 8C3B514 - .incbin "graphics/pokemon/front_pics/pidgeot_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pidgeot:: @ 8C3BA10 - .incbin "graphics/pokemon/palettes/pidgeot_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pidgeot:: @ 8C3BA38 - .incbin "graphics/pokemon/back_pics/pidgeot_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pidgeot:: @ 8C3BDC0 - .incbin "graphics/pokemon/palettes/pidgeot_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pidgeot:: @ 8C3BDE8 - .incbin "graphics/pokemon/icons/pidgeot_icon.4bpp" - - .align 2 -gMonFootprint_Pidgeot:: @ 8C3C1E8 - .incbin "graphics/pokemon/footprints/pidgeot_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Rattata:: @ 8C3C208 - .incbin "graphics/pokemon/front_pics/rattata_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Rattata:: @ 8C3C454 - .incbin "graphics/pokemon/palettes/rattata_palette.gbapal.lz" - - .align 2 -gMonBackPic_Rattata:: @ 8C3C47C - .incbin "graphics/pokemon/back_pics/rattata_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Rattata:: @ 8C3C758 - .incbin "graphics/pokemon/palettes/rattata_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Rattata:: @ 8C3C780 - .incbin "graphics/pokemon/icons/rattata_icon.4bpp" - - .align 2 -gMonFootprint_Rattata:: @ 8C3CB80 - .incbin "graphics/pokemon/footprints/rattata_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Raticate:: @ 8C3CBA0 - .incbin "graphics/pokemon/front_pics/raticate_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Raticate:: @ 8C3CF28 - .incbin "graphics/pokemon/palettes/raticate_palette.gbapal.lz" - - .align 2 -gMonBackPic_Raticate:: @ 8C3CF50 - .incbin "graphics/pokemon/back_pics/raticate_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Raticate:: @ 8C3D280 - .incbin "graphics/pokemon/palettes/raticate_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Raticate:: @ 8C3D2A8 - .incbin "graphics/pokemon/icons/raticate_icon.4bpp" - - .align 2 -gMonFootprint_Raticate:: @ 8C3D6A8 - .incbin "graphics/pokemon/footprints/raticate_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Spearow:: @ 8C3D6C8 - .incbin "graphics/pokemon/front_pics/spearow_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Spearow:: @ 8C3D950 - .incbin "graphics/pokemon/palettes/spearow_palette.gbapal.lz" - - .align 2 -gMonBackPic_Spearow:: @ 8C3D978 - .incbin "graphics/pokemon/back_pics/spearow_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Spearow:: @ 8C3DC54 - .incbin "graphics/pokemon/palettes/spearow_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Spearow:: @ 8C3DC7C - .incbin "graphics/pokemon/icons/spearow_icon.4bpp" - - .align 2 -gMonFootprint_Spearow:: @ 8C3E07C - .incbin "graphics/pokemon/footprints/spearow_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Fearow:: @ 8C3E09C - .incbin "graphics/pokemon/front_pics/fearow_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Fearow:: @ 8C3E530 - .incbin "graphics/pokemon/palettes/fearow_palette.gbapal.lz" - - .align 2 -gMonBackPic_Fearow:: @ 8C3E558 - .incbin "graphics/pokemon/back_pics/fearow_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Fearow:: @ 8C3E850 - .incbin "graphics/pokemon/palettes/fearow_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Fearow:: @ 8C3E878 - .incbin "graphics/pokemon/icons/fearow_icon.4bpp" - - .align 2 -gMonFootprint_Fearow:: @ 8C3EC78 - .incbin "graphics/pokemon/footprints/fearow_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ekans:: @ 8C3EC98 - .incbin "graphics/pokemon/front_pics/ekans_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ekans:: @ 8C3EF98 - .incbin "graphics/pokemon/palettes/ekans_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ekans:: @ 8C3EFC0 - .incbin "graphics/pokemon/back_pics/ekans_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ekans:: @ 8C3F2B0 - .incbin "graphics/pokemon/palettes/ekans_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ekans:: @ 8C3F2D8 - .incbin "graphics/pokemon/icons/ekans_icon.4bpp" - - .align 2 -gMonFootprint_Ekans:: @ 8C3F6D8 - .incbin "graphics/pokemon/footprints/ekans_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Arbok:: @ 8C3F6F8 - .incbin "graphics/pokemon/front_pics/arbok_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Arbok:: @ 8C3FB44 - .incbin "graphics/pokemon/palettes/arbok_palette.gbapal.lz" - - .align 2 -gMonBackPic_Arbok:: @ 8C3FB6C - .incbin "graphics/pokemon/back_pics/arbok_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Arbok:: @ 8C3FE0C - .incbin "graphics/pokemon/palettes/arbok_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Arbok:: @ 8C3FE34 - .incbin "graphics/pokemon/icons/arbok_icon.4bpp" - - .align 2 -gMonFootprint_Arbok:: @ 8C40234 - .incbin "graphics/pokemon/footprints/arbok_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pikachu:: @ 8C40254 - .incbin "graphics/pokemon/front_pics/pikachu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pikachu:: @ 8C40524 - .incbin "graphics/pokemon/palettes/pikachu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pikachu:: @ 8C4054C - .incbin "graphics/pokemon/back_pics/pikachu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pikachu:: @ 8C40824 - .incbin "graphics/pokemon/palettes/pikachu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pikachu:: @ 8C4084C - .incbin "graphics/pokemon/icons/pikachu_icon.4bpp" - - .align 2 -gMonFootprint_Pikachu:: @ 8C40C4C - .incbin "graphics/pokemon/footprints/pikachu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Raichu:: @ 8C40C6C - .incbin "graphics/pokemon/front_pics/raichu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Raichu:: @ 8C41018 - .incbin "graphics/pokemon/palettes/raichu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Raichu:: @ 8C41040 - .incbin "graphics/pokemon/back_pics/raichu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Raichu:: @ 8C41360 - .incbin "graphics/pokemon/palettes/raichu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Raichu:: @ 8C41388 - .incbin "graphics/pokemon/icons/raichu_icon.4bpp" - - .align 2 -gMonFootprint_Raichu:: @ 8C41788 - .incbin "graphics/pokemon/footprints/raichu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sandshrew:: @ 8C417A8 - .incbin "graphics/pokemon/front_pics/sandshrew_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sandshrew:: @ 8C41A68 - .incbin "graphics/pokemon/palettes/sandshrew_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sandshrew:: @ 8C41A90 - .incbin "graphics/pokemon/back_pics/sandshrew_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sandshrew:: @ 8C41DB8 - .incbin "graphics/pokemon/palettes/sandshrew_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sandshrew:: @ 8C41DE0 - .incbin "graphics/pokemon/icons/sandshrew_icon.4bpp" - - .align 2 -gMonFootprint_Sandshrew:: @ 8C421E0 - .incbin "graphics/pokemon/footprints/sandshrew_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sandslash:: @ 8C42200 - .incbin "graphics/pokemon/front_pics/sandslash_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sandslash:: @ 8C425EC - .incbin "graphics/pokemon/palettes/sandslash_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sandslash:: @ 8C42614 - .incbin "graphics/pokemon/back_pics/sandslash_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sandslash:: @ 8C42A30 - .incbin "graphics/pokemon/palettes/sandslash_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sandslash:: @ 8C42A58 - .incbin "graphics/pokemon/icons/sandslash_icon.4bpp" - - .align 2 -gMonFootprint_Sandslash:: @ 8C42E58 - .incbin "graphics/pokemon/footprints/sandslash_footprint.1bpp" - - .align 2 -gMonStillFrontPic_NidoranF:: @ 8C42E78 - .incbin "graphics/pokemon/front_pics/nidoran_f_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_NidoranF:: @ 8C430F0 - .incbin "graphics/pokemon/palettes/nidoran_f_palette.gbapal.lz" - - .align 2 -gMonBackPic_NidoranF:: @ 8C43118 - .incbin "graphics/pokemon/back_pics/nidoran_f_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_NidoranF:: @ 8C433F0 - .incbin "graphics/pokemon/palettes/nidoran_f_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_NidoranF:: @ 8C43418 - .incbin "graphics/pokemon/icons/nidoran_f_icon.4bpp" - - .align 2 -gMonFootprint_NidoranF:: @ 8C43818 - .incbin "graphics/pokemon/footprints/nidoran_f_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nidorina:: @ 8C43838 - .incbin "graphics/pokemon/front_pics/nidorina_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nidorina:: @ 8C43B64 - .incbin "graphics/pokemon/palettes/nidorina_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nidorina:: @ 8C43B8C - .incbin "graphics/pokemon/back_pics/nidorina_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nidorina:: @ 8C43F20 - .incbin "graphics/pokemon/palettes/nidorina_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nidorina:: @ 8C43F48 - .incbin "graphics/pokemon/icons/nidorina_icon.4bpp" - - .align 2 -gMonFootprint_Nidorina:: @ 8C44348 - .incbin "graphics/pokemon/footprints/nidorina_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nidoqueen:: @ 8C44368 - .incbin "graphics/pokemon/front_pics/nidoqueen_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nidoqueen:: @ 8C447F4 - .incbin "graphics/pokemon/palettes/nidoqueen_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nidoqueen:: @ 8C4481C - .incbin "graphics/pokemon/back_pics/nidoqueen_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nidoqueen:: @ 8C44BE0 - .incbin "graphics/pokemon/palettes/nidoqueen_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nidoqueen:: @ 8C44C08 - .incbin "graphics/pokemon/icons/nidoqueen_icon.4bpp" - - .align 2 -gMonFootprint_Nidoqueen:: @ 8C45008 - .incbin "graphics/pokemon/footprints/nidoqueen_footprint.1bpp" - - .align 2 -gMonStillFrontPic_NidoranM:: @ 8C45028 - .incbin "graphics/pokemon/front_pics/nidoran_m_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_NidoranM:: @ 8C452F8 - .incbin "graphics/pokemon/palettes/nidoran_m_palette.gbapal.lz" - - .align 2 -gMonBackPic_NidoranM:: @ 8C45320 - .incbin "graphics/pokemon/back_pics/nidoran_m_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_NidoranM:: @ 8C45654 - .incbin "graphics/pokemon/palettes/nidoran_m_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_NidoranM:: @ 8C4567C - .incbin "graphics/pokemon/icons/nidoran_m_icon.4bpp" - - .align 2 -gMonFootprint_NidoranM:: @ 8C45A7C - .incbin "graphics/pokemon/footprints/nidoran_m_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nidorino:: @ 8C45A9C - .incbin "graphics/pokemon/front_pics/nidorino_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nidorino:: @ 8C45E30 - .incbin "graphics/pokemon/palettes/nidorino_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nidorino:: @ 8C45E58 - .incbin "graphics/pokemon/back_pics/nidorino_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nidorino:: @ 8C46214 - .incbin "graphics/pokemon/palettes/nidorino_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nidorino:: @ 8C4623C - .incbin "graphics/pokemon/icons/nidorino_icon.4bpp" - - .align 2 -gMonFootprint_Nidorino:: @ 8C4663C - .incbin "graphics/pokemon/footprints/nidorino_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nidoking:: @ 8C4665C - .incbin "graphics/pokemon/front_pics/nidoking_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nidoking:: @ 8C46B54 - .incbin "graphics/pokemon/palettes/nidoking_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nidoking:: @ 8C46B7C - .incbin "graphics/pokemon/back_pics/nidoking_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nidoking:: @ 8C46FB8 - .incbin "graphics/pokemon/palettes/nidoking_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nidoking:: @ 8C46FE0 - .incbin "graphics/pokemon/icons/nidoking_icon.4bpp" - - .align 2 -gMonFootprint_Nidoking:: @ 8C473E0 - .incbin "graphics/pokemon/footprints/nidoking_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Clefairy:: @ 8C47400 - .incbin "graphics/pokemon/front_pics/clefairy_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Clefairy:: @ 8C47688 - .incbin "graphics/pokemon/palettes/clefairy_palette.gbapal.lz" - - .align 2 -gMonBackPic_Clefairy:: @ 8C476B0 - .incbin "graphics/pokemon/back_pics/clefairy_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Clefairy:: @ 8C47980 - .incbin "graphics/pokemon/palettes/clefairy_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Clefairy:: @ 8C479A8 - .incbin "graphics/pokemon/icons/clefairy_icon.4bpp" - - .align 2 -gMonFootprint_Clefairy:: @ 8C47DA8 - .incbin "graphics/pokemon/footprints/clefairy_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Clefable:: @ 8C47DC8 - .incbin "graphics/pokemon/front_pics/clefable_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Clefable:: @ 8C48104 - .incbin "graphics/pokemon/palettes/clefable_palette.gbapal.lz" - - .align 2 -gMonBackPic_Clefable:: @ 8C4812C - .incbin "graphics/pokemon/back_pics/clefable_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Clefable:: @ 8C48464 - .incbin "graphics/pokemon/palettes/clefable_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Clefable:: @ 8C4848C - .incbin "graphics/pokemon/icons/clefable_icon.4bpp" - - .align 2 -gMonFootprint_Clefable:: @ 8C4888C - .incbin "graphics/pokemon/footprints/clefable_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Vulpix:: @ 8C488AC - .incbin "graphics/pokemon/front_pics/vulpix_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Vulpix:: @ 8C48BE8 - .incbin "graphics/pokemon/palettes/vulpix_palette.gbapal.lz" - - .align 2 -gMonBackPic_Vulpix:: @ 8C48C10 - .incbin "graphics/pokemon/back_pics/vulpix_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Vulpix:: @ 8C48F0C - .incbin "graphics/pokemon/palettes/vulpix_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Vulpix:: @ 8C48F34 - .incbin "graphics/pokemon/icons/vulpix_icon.4bpp" - - .align 2 -gMonFootprint_Vulpix:: @ 8C49334 - .incbin "graphics/pokemon/footprints/vulpix_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ninetales:: @ 8C49354 - .incbin "graphics/pokemon/front_pics/ninetales_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ninetales:: @ 8C49790 - .incbin "graphics/pokemon/palettes/ninetales_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ninetales:: @ 8C497B0 - .incbin "graphics/pokemon/back_pics/ninetales_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ninetales:: @ 8C49B30 - .incbin "graphics/pokemon/palettes/ninetales_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ninetales:: @ 8C49B50 - .incbin "graphics/pokemon/icons/ninetales_icon.4bpp" - - .align 2 -gMonFootprint_Ninetales:: @ 8C49F50 - .incbin "graphics/pokemon/footprints/ninetales_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Jigglypuff:: @ 8C49F70 - .incbin "graphics/pokemon/front_pics/jigglypuff_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Jigglypuff:: @ 8C4A1E8 - .incbin "graphics/pokemon/palettes/jigglypuff_palette.gbapal.lz" - - .align 2 -gMonBackPic_Jigglypuff:: @ 8C4A210 - .incbin "graphics/pokemon/back_pics/jigglypuff_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Jigglypuff:: @ 8C4A46C - .incbin "graphics/pokemon/palettes/jigglypuff_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Jigglypuff:: @ 8C4A494 - .incbin "graphics/pokemon/icons/jigglypuff_icon.4bpp" - - .align 2 -gMonFootprint_Jigglypuff:: @ 8C4A894 - .incbin "graphics/pokemon/footprints/jigglypuff_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wigglytuff:: @ 8C4A8B4 - .incbin "graphics/pokemon/front_pics/wigglytuff_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wigglytuff:: @ 8C4AC08 - .incbin "graphics/pokemon/palettes/wigglytuff_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wigglytuff:: @ 8C4AC30 - .incbin "graphics/pokemon/back_pics/wigglytuff_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wigglytuff:: @ 8C4AED8 - .incbin "graphics/pokemon/palettes/wigglytuff_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wigglytuff:: @ 8C4AF00 - .incbin "graphics/pokemon/icons/wigglytuff_icon.4bpp" - - .align 2 -gMonFootprint_Wigglytuff:: @ 8C4B300 - .incbin "graphics/pokemon/footprints/wigglytuff_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Zubat:: @ 8C4B320 - .incbin "graphics/pokemon/front_pics/zubat_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Zubat:: @ 8C4B5F8 - .incbin "graphics/pokemon/palettes/zubat_palette.gbapal.lz" - - .align 2 -gMonBackPic_Zubat:: @ 8C4B620 - .incbin "graphics/pokemon/back_pics/zubat_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Zubat:: @ 8C4B8DC - .incbin "graphics/pokemon/palettes/zubat_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Zubat:: @ 8C4B904 - .incbin "graphics/pokemon/icons/zubat_icon.4bpp" - - .align 2 -gMonFootprint_Zubat:: @ 8C4BD04 - .incbin "graphics/pokemon/footprints/zubat_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Golbat:: @ 8C4BD24 - .incbin "graphics/pokemon/front_pics/golbat_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Golbat:: @ 8C4C0C0 - .incbin "graphics/pokemon/palettes/golbat_palette.gbapal.lz" - - .align 2 -gMonBackPic_Golbat:: @ 8C4C0E8 - .incbin "graphics/pokemon/back_pics/golbat_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Golbat:: @ 8C4C3A4 - .incbin "graphics/pokemon/palettes/golbat_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Golbat:: @ 8C4C3CC - .incbin "graphics/pokemon/icons/golbat_icon.4bpp" - - .align 2 -gMonFootprint_Golbat:: @ 8C4C7CC - .incbin "graphics/pokemon/footprints/golbat_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Oddish:: @ 8C4C7EC - .incbin "graphics/pokemon/front_pics/oddish_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Oddish:: @ 8C4CA20 - .incbin "graphics/pokemon/palettes/oddish_palette.gbapal.lz" - - .align 2 -gMonBackPic_Oddish:: @ 8C4CA48 - .incbin "graphics/pokemon/back_pics/oddish_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Oddish:: @ 8C4CCC0 - .incbin "graphics/pokemon/palettes/oddish_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Oddish:: @ 8C4CCE8 - .incbin "graphics/pokemon/icons/oddish_icon.4bpp" - - .align 2 -gMonFootprint_Oddish:: @ 8C4D0E8 - .incbin "graphics/pokemon/footprints/oddish_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gloom:: @ 8C4D108 - .incbin "graphics/pokemon/front_pics/gloom_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gloom:: @ 8C4D480 - .incbin "graphics/pokemon/palettes/gloom_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gloom:: @ 8C4D4A8 - .incbin "graphics/pokemon/back_pics/gloom_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gloom:: @ 8C4D810 - .incbin "graphics/pokemon/palettes/gloom_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gloom:: @ 8C4D838 - .incbin "graphics/pokemon/icons/gloom_icon.4bpp" - - .align 2 -gMonFootprint_Gloom:: @ 8C4DC38 - .incbin "graphics/pokemon/footprints/gloom_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Vileplume:: @ 8C4DC58 - .incbin "graphics/pokemon/front_pics/vileplume_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Vileplume:: @ 8C4DFD4 - .incbin "graphics/pokemon/palettes/vileplume_palette.gbapal.lz" - - .align 2 -gMonBackPic_Vileplume:: @ 8C4DFFC - .incbin "graphics/pokemon/back_pics/vileplume_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Vileplume:: @ 8C4E414 - .incbin "graphics/pokemon/palettes/vileplume_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Vileplume:: @ 8C4E43C - .incbin "graphics/pokemon/icons/vileplume_icon.4bpp" - - .align 2 -gMonFootprint_Vileplume:: @ 8C4E83C - .incbin "graphics/pokemon/footprints/vileplume_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Paras:: @ 8C4E85C - .incbin "graphics/pokemon/front_pics/paras_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Paras:: @ 8C4EAC8 - .incbin "graphics/pokemon/palettes/paras_palette.gbapal.lz" - - .align 2 -gMonBackPic_Paras:: @ 8C4EAF0 - .incbin "graphics/pokemon/back_pics/paras_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Paras:: @ 8C4ED90 - .incbin "graphics/pokemon/palettes/paras_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Paras:: @ 8C4EDB8 - .incbin "graphics/pokemon/icons/paras_icon.4bpp" - - .align 2 -gMonFootprint_Paras:: @ 8C4F1B8 - .incbin "graphics/pokemon/footprints/paras_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Parasect:: @ 8C4F1D8 - .incbin "graphics/pokemon/front_pics/parasect_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Parasect:: @ 8C4F59C - .incbin "graphics/pokemon/palettes/parasect_palette.gbapal.lz" - - .align 2 -gMonBackPic_Parasect:: @ 8C4F5C4 - .incbin "graphics/pokemon/back_pics/parasect_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Parasect:: @ 8C4F8C0 - .incbin "graphics/pokemon/palettes/parasect_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Parasect:: @ 8C4F8E8 - .incbin "graphics/pokemon/icons/parasect_icon.4bpp" - - .align 2 -gMonFootprint_Parasect:: @ 8C4FCE8 - .incbin "graphics/pokemon/footprints/parasect_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Venonat:: @ 8C4FD08 - .incbin "graphics/pokemon/front_pics/venonat_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Venonat:: @ 8C50080 - .incbin "graphics/pokemon/palettes/venonat_palette.gbapal.lz" - - .align 2 -gMonBackPic_Venonat:: @ 8C500A8 - .incbin "graphics/pokemon/back_pics/venonat_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Venonat:: @ 8C503D8 - .incbin "graphics/pokemon/palettes/venonat_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Venonat:: @ 8C50400 - .incbin "graphics/pokemon/icons/venonat_icon.4bpp" - - .align 2 -gMonFootprint_Venonat:: @ 8C50800 - .incbin "graphics/pokemon/footprints/venonat_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Venomoth:: @ 8C50820 - .incbin "graphics/pokemon/front_pics/venomoth_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Venomoth:: @ 8C50CC4 - .incbin "graphics/pokemon/palettes/venomoth_palette.gbapal.lz" - - .align 2 -gMonBackPic_Venomoth:: @ 8C50CEC - .incbin "graphics/pokemon/back_pics/venomoth_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Venomoth:: @ 8C510B0 - .incbin "graphics/pokemon/palettes/venomoth_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Venomoth:: @ 8C510D8 - .incbin "graphics/pokemon/icons/venomoth_icon.4bpp" - - .align 2 -gMonFootprint_Venomoth:: @ 8C514D8 - .incbin "graphics/pokemon/footprints/venomoth_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Diglett:: @ 8C514F8 - .incbin "graphics/pokemon/front_pics/diglett_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Diglett:: @ 8C51704 - .incbin "graphics/pokemon/palettes/diglett_palette.gbapal.lz" - - .align 2 -gMonBackPic_Diglett:: @ 8C5172C - .incbin "graphics/pokemon/back_pics/diglett_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Diglett:: @ 8C51938 - .incbin "graphics/pokemon/palettes/diglett_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Diglett:: @ 8C51960 - .incbin "graphics/pokemon/icons/diglett_icon.4bpp" - - .align 2 -gMonFootprint_Diglett:: @ 8C51D60 - .incbin "graphics/pokemon/footprints/diglett_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dugtrio:: @ 8C51D80 - .incbin "graphics/pokemon/front_pics/dugtrio_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dugtrio:: @ 8C520A4 - .incbin "graphics/pokemon/palettes/dugtrio_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dugtrio:: @ 8C520CC - .incbin "graphics/pokemon/back_pics/dugtrio_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dugtrio:: @ 8C52378 - .incbin "graphics/pokemon/palettes/dugtrio_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dugtrio:: @ 8C523A0 - .incbin "graphics/pokemon/icons/dugtrio_icon.4bpp" - - .align 2 -gMonFootprint_Dugtrio:: @ 8C527A0 - .incbin "graphics/pokemon/footprints/dugtrio_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Meowth:: @ 8C527C0 - .incbin "graphics/pokemon/front_pics/meowth_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Meowth:: @ 8C52AAC - .incbin "graphics/pokemon/palettes/meowth_palette.gbapal.lz" - - .align 2 -gMonBackPic_Meowth:: @ 8C52AD4 - .incbin "graphics/pokemon/back_pics/meowth_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Meowth:: @ 8C52DB8 - .incbin "graphics/pokemon/palettes/meowth_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Meowth:: @ 8C52DE0 - .incbin "graphics/pokemon/icons/meowth_icon.4bpp" - - .align 2 -gMonFootprint_Meowth:: @ 8C531E0 - .incbin "graphics/pokemon/footprints/meowth_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Persian:: @ 8C53200 - .incbin "graphics/pokemon/front_pics/persian_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Persian:: @ 8C535B4 - .incbin "graphics/pokemon/palettes/persian_palette.gbapal.lz" - - .align 2 -gMonBackPic_Persian:: @ 8C535DC - .incbin "graphics/pokemon/back_pics/persian_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Persian:: @ 8C53940 - .incbin "graphics/pokemon/palettes/persian_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Persian:: @ 8C53968 - .incbin "graphics/pokemon/icons/persian_icon.4bpp" - - .align 2 -gMonFootprint_Persian:: @ 8C53D68 - .incbin "graphics/pokemon/footprints/persian_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Psyduck:: @ 8C53D88 - .incbin "graphics/pokemon/front_pics/psyduck_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Psyduck:: @ 8C54060 - .incbin "graphics/pokemon/palettes/psyduck_palette.gbapal.lz" - - .align 2 -gMonBackPic_Psyduck:: @ 8C54088 - .incbin "graphics/pokemon/back_pics/psyduck_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Psyduck:: @ 8C54324 - .incbin "graphics/pokemon/palettes/psyduck_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Psyduck:: @ 8C5434C - .incbin "graphics/pokemon/icons/psyduck_icon.4bpp" - - .align 2 -gMonFootprint_Psyduck:: @ 8C5474C - .incbin "graphics/pokemon/footprints/psyduck_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Golduck:: @ 8C5476C - .incbin "graphics/pokemon/front_pics/golduck_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Golduck:: @ 8C54B44 - .incbin "graphics/pokemon/palettes/golduck_palette.gbapal.lz" - - .align 2 -gMonBackPic_Golduck:: @ 8C54B6C - .incbin "graphics/pokemon/back_pics/golduck_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Golduck:: @ 8C54E98 - .incbin "graphics/pokemon/palettes/golduck_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Golduck:: @ 8C54EC0 - .incbin "graphics/pokemon/icons/golduck_icon.4bpp" - - .align 2 -gMonFootprint_Golduck:: @ 8C552C0 - .incbin "graphics/pokemon/footprints/golduck_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mankey:: @ 8C552E0 - .incbin "graphics/pokemon/front_pics/mankey_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mankey:: @ 8C555F8 - .incbin "graphics/pokemon/palettes/mankey_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mankey:: @ 8C55620 - .incbin "graphics/pokemon/back_pics/mankey_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mankey:: @ 8C55988 - .incbin "graphics/pokemon/palettes/mankey_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mankey:: @ 8C559B0 - .incbin "graphics/pokemon/icons/mankey_icon.4bpp" - - .align 2 -gMonFootprint_Mankey:: @ 8C55DB0 - .incbin "graphics/pokemon/footprints/mankey_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Primeape:: @ 8C55DD0 - .incbin "graphics/pokemon/front_pics/primeape_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Primeape:: @ 8C56180 - .incbin "graphics/pokemon/palettes/primeape_palette.gbapal.lz" - - .align 2 -gMonBackPic_Primeape:: @ 8C561A8 - .incbin "graphics/pokemon/back_pics/primeape_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Primeape:: @ 8C56518 - .incbin "graphics/pokemon/palettes/primeape_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Primeape:: @ 8C56540 - .incbin "graphics/pokemon/icons/primeape_icon.4bpp" - - .align 2 -gMonFootprint_Primeape:: @ 8C56940 - .incbin "graphics/pokemon/footprints/primeape_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Growlithe:: @ 8C56960 - .incbin "graphics/pokemon/front_pics/growlithe_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Growlithe:: @ 8C56CB8 - .incbin "graphics/pokemon/palettes/growlithe_palette.gbapal.lz" - - .align 2 -gMonBackPic_Growlithe:: @ 8C56CE0 - .incbin "graphics/pokemon/back_pics/growlithe_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Growlithe:: @ 8C5701C - .incbin "graphics/pokemon/palettes/growlithe_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Growlithe:: @ 8C57044 - .incbin "graphics/pokemon/icons/growlithe_icon.4bpp" - - .align 2 -gMonFootprint_Growlithe:: @ 8C57444 - .incbin "graphics/pokemon/footprints/growlithe_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Arcanine:: @ 8C57464 - .incbin "graphics/pokemon/front_pics/arcanine_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Arcanine:: @ 8C57998 - .incbin "graphics/pokemon/palettes/arcanine_palette.gbapal.lz" - - .align 2 -gMonBackPic_Arcanine:: @ 8C579C0 - .incbin "graphics/pokemon/back_pics/arcanine_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Arcanine:: @ 8C57DA0 - .incbin "graphics/pokemon/palettes/arcanine_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Arcanine:: @ 8C57DC8 - .incbin "graphics/pokemon/icons/arcanine_icon.4bpp" - - .align 2 -gMonFootprint_Arcanine:: @ 8C581C8 - .incbin "graphics/pokemon/footprints/arcanine_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Poliwag:: @ 8C581E8 - .incbin "graphics/pokemon/front_pics/poliwag_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Poliwag:: @ 8C58470 - .incbin "graphics/pokemon/palettes/poliwag_palette.gbapal.lz" - - .align 2 -gMonBackPic_Poliwag:: @ 8C58498 - .incbin "graphics/pokemon/back_pics/poliwag_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Poliwag:: @ 8C58708 - .incbin "graphics/pokemon/palettes/poliwag_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Poliwag:: @ 8C58730 - .incbin "graphics/pokemon/icons/poliwag_icon.4bpp" - - .align 2 -gMonFootprint_Poliwag:: @ 8C58B30 - .incbin "graphics/pokemon/footprints/poliwag_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Poliwhirl:: @ 8C58B50 - .incbin "graphics/pokemon/front_pics/poliwhirl_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Poliwhirl:: @ 8C58F14 - .incbin "graphics/pokemon/palettes/poliwhirl_palette.gbapal.lz" - - .align 2 -gMonBackPic_Poliwhirl:: @ 8C58F3C - .incbin "graphics/pokemon/back_pics/poliwhirl_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Poliwhirl:: @ 8C591FC - .incbin "graphics/pokemon/palettes/poliwhirl_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Poliwhirl:: @ 8C59224 - .incbin "graphics/pokemon/icons/poliwhirl_icon.4bpp" - - .align 2 -gMonFootprint_Poliwhirl:: @ 8C59624 - .incbin "graphics/pokemon/footprints/poliwhirl_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Poliwrath:: @ 8C59644 - .incbin "graphics/pokemon/front_pics/poliwrath_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Poliwrath:: @ 8C59A0C - .incbin "graphics/pokemon/palettes/poliwrath_palette.gbapal.lz" - - .align 2 -gMonBackPic_Poliwrath:: @ 8C59A34 - .incbin "graphics/pokemon/back_pics/poliwrath_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Poliwrath:: @ 8C59D54 - .incbin "graphics/pokemon/palettes/poliwrath_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Poliwrath:: @ 8C59D7C - .incbin "graphics/pokemon/icons/poliwrath_icon.4bpp" - - .align 2 -gMonFootprint_Poliwrath:: @ 8C5A17C - .incbin "graphics/pokemon/footprints/poliwrath_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Abra:: @ 8C5A19C - .incbin "graphics/pokemon/front_pics/abra_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Abra:: @ 8C5A480 - .incbin "graphics/pokemon/palettes/abra_palette.gbapal.lz" - - .align 2 -gMonBackPic_Abra:: @ 8C5A4A4 - .incbin "graphics/pokemon/back_pics/abra_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Abra:: @ 8C5A7B8 - .incbin "graphics/pokemon/palettes/abra_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Abra:: @ 8C5A7DC - .incbin "graphics/pokemon/icons/abra_icon.4bpp" - - .align 2 -gMonFootprint_Abra:: @ 8C5ABDC - .incbin "graphics/pokemon/footprints/abra_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kadabra:: @ 8C5ABFC - .incbin "graphics/pokemon/front_pics/kadabra_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kadabra:: @ 8C5B060 - .incbin "graphics/pokemon/palettes/kadabra_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kadabra:: @ 8C5B088 - .incbin "graphics/pokemon/back_pics/kadabra_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kadabra:: @ 8C5B464 - .incbin "graphics/pokemon/palettes/kadabra_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kadabra:: @ 8C5B48C - .incbin "graphics/pokemon/icons/kadabra_icon.4bpp" - - .align 2 -gMonFootprint_Kadabra:: @ 8C5B88C - .incbin "graphics/pokemon/footprints/kadabra_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Alakazam:: @ 8C5B8AC - .incbin "graphics/pokemon/front_pics/alakazam_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Alakazam:: @ 8C5BCA8 - .incbin "graphics/pokemon/palettes/alakazam_palette.gbapal.lz" - - .align 2 -gMonBackPic_Alakazam:: @ 8C5BCD0 - .incbin "graphics/pokemon/back_pics/alakazam_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Alakazam:: @ 8C5C114 - .incbin "graphics/pokemon/palettes/alakazam_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Alakazam:: @ 8C5C13C - .incbin "graphics/pokemon/icons/alakazam_icon.4bpp" - - .align 2 -gMonFootprint_Alakazam:: @ 8C5C53C - .incbin "graphics/pokemon/footprints/alakazam_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Machop:: @ 8C5C55C - .incbin "graphics/pokemon/front_pics/machop_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Machop:: @ 8C5C800 - .incbin "graphics/pokemon/palettes/machop_palette.gbapal.lz" - - .align 2 -gMonBackPic_Machop:: @ 8C5C828 - .incbin "graphics/pokemon/back_pics/machop_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Machop:: @ 8C5CB08 - .incbin "graphics/pokemon/palettes/machop_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Machop:: @ 8C5CB30 - .incbin "graphics/pokemon/icons/machop_icon.4bpp" - - .align 2 -gMonFootprint_Machop:: @ 8C5CF30 - .incbin "graphics/pokemon/footprints/machop_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Machoke:: @ 8C5CF50 - .incbin "graphics/pokemon/front_pics/machoke_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Machoke:: @ 8C5D300 - .incbin "graphics/pokemon/palettes/machoke_palette.gbapal.lz" - - .align 2 -gMonBackPic_Machoke:: @ 8C5D328 - .incbin "graphics/pokemon/back_pics/machoke_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Machoke:: @ 8C5D678 - .incbin "graphics/pokemon/palettes/machoke_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Machoke:: @ 8C5D6A0 - .incbin "graphics/pokemon/icons/machoke_icon.4bpp" - - .align 2 -gMonFootprint_Machoke:: @ 8C5DAA0 - .incbin "graphics/pokemon/footprints/machoke_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Machamp:: @ 8C5DAC0 - .incbin "graphics/pokemon/front_pics/machamp_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Machamp:: @ 8C5E010 - .incbin "graphics/pokemon/palettes/machamp_palette.gbapal.lz" - - .align 2 -gMonBackPic_Machamp:: @ 8C5E038 - .incbin "graphics/pokemon/back_pics/machamp_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Machamp:: @ 8C5E494 - .incbin "graphics/pokemon/palettes/machamp_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Machamp:: @ 8C5E4BC - .incbin "graphics/pokemon/icons/machamp_icon.4bpp" - - .align 2 -gMonFootprint_Machamp:: @ 8C5E8BC - .incbin "graphics/pokemon/footprints/machamp_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Bellsprout:: @ 8C5E8DC - .incbin "graphics/pokemon/front_pics/bellsprout_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Bellsprout:: @ 8C5EB5C - .incbin "graphics/pokemon/palettes/bellsprout_palette.gbapal.lz" - - .align 2 -gMonBackPic_Bellsprout:: @ 8C5EB84 - .incbin "graphics/pokemon/back_pics/bellsprout_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Bellsprout:: @ 8C5EE20 - .incbin "graphics/pokemon/palettes/bellsprout_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Bellsprout:: @ 8C5EE48 - .incbin "graphics/pokemon/icons/bellsprout_icon.4bpp" - - .align 2 -gMonFootprint_Bellsprout:: @ 8C5F248 - .incbin "graphics/pokemon/footprints/bellsprout_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Weepinbell:: @ 8C5F268 - .incbin "graphics/pokemon/front_pics/weepinbell_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Weepinbell:: @ 8C5F58C - .incbin "graphics/pokemon/palettes/weepinbell_palette.gbapal.lz" - - .align 2 -gMonBackPic_Weepinbell:: @ 8C5F5B4 - .incbin "graphics/pokemon/back_pics/weepinbell_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Weepinbell:: @ 8C5F8B0 - .incbin "graphics/pokemon/palettes/weepinbell_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Weepinbell:: @ 8C5F8D8 - .incbin "graphics/pokemon/icons/weepinbell_icon.4bpp" - - .align 2 -gMonFootprint_Weepinbell:: @ 8C5FCD8 - .incbin "graphics/pokemon/footprints/weepinbell_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Victreebel:: @ 8C5FCF8 - .incbin "graphics/pokemon/front_pics/victreebel_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Victreebel:: @ 8C60124 - .incbin "graphics/pokemon/palettes/victreebel_palette.gbapal.lz" - - .align 2 -gMonBackPic_Victreebel:: @ 8C6014C - .incbin "graphics/pokemon/back_pics/victreebel_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Victreebel:: @ 8C604E4 - .incbin "graphics/pokemon/palettes/victreebel_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Victreebel:: @ 8C6050C - .incbin "graphics/pokemon/icons/victreebel_icon.4bpp" - - .align 2 -gMonFootprint_Victreebel:: @ 8C6090C - .incbin "graphics/pokemon/footprints/victreebel_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tentacool:: @ 8C6092C - .incbin "graphics/pokemon/front_pics/tentacool_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tentacool:: @ 8C60BCC - .incbin "graphics/pokemon/palettes/tentacool_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tentacool:: @ 8C60BF4 - .incbin "graphics/pokemon/back_pics/tentacool_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tentacool:: @ 8C60EC0 - .incbin "graphics/pokemon/palettes/tentacool_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tentacool:: @ 8C60EE8 - .incbin "graphics/pokemon/icons/tentacool_icon.4bpp" - - .align 2 -gMonFootprint_Tentacool:: @ 8C612E8 - .incbin "graphics/pokemon/footprints/tentacool_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tentacruel:: @ 8C61308 - .incbin "graphics/pokemon/front_pics/tentacruel_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tentacruel:: @ 8C617A4 - .incbin "graphics/pokemon/palettes/tentacruel_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tentacruel:: @ 8C617CC - .incbin "graphics/pokemon/back_pics/tentacruel_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tentacruel:: @ 8C61B68 - .incbin "graphics/pokemon/palettes/tentacruel_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tentacruel:: @ 8C61B90 - .incbin "graphics/pokemon/icons/tentacruel_icon.4bpp" - - .align 2 -gMonFootprint_Tentacruel:: @ 8C61F90 - .incbin "graphics/pokemon/footprints/tentacruel_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Geodude:: @ 8C61FB0 - .incbin "graphics/pokemon/front_pics/geodude_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Geodude:: @ 8C6221C - .incbin "graphics/pokemon/palettes/geodude_palette.gbapal.lz" - - .align 2 -gMonBackPic_Geodude:: @ 8C62238 - .incbin "graphics/pokemon/back_pics/geodude_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Geodude:: @ 8C624CC - .incbin "graphics/pokemon/palettes/geodude_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Geodude:: @ 8C624E8 - .incbin "graphics/pokemon/icons/geodude_icon.4bpp" - - .align 2 -gMonFootprint_Geodude:: @ 8C628E8 - .incbin "graphics/pokemon/footprints/geodude_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Graveler:: @ 8C62908 - .incbin "graphics/pokemon/front_pics/graveler_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Graveler:: @ 8C62D10 - .incbin "graphics/pokemon/palettes/graveler_palette.gbapal.lz" - - .align 2 -gMonBackPic_Graveler:: @ 8C62D30 - .incbin "graphics/pokemon/back_pics/graveler_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Graveler:: @ 8C62FAC - .incbin "graphics/pokemon/palettes/graveler_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Graveler:: @ 8C62FCC - .incbin "graphics/pokemon/icons/graveler_icon.4bpp" - - .align 2 -gMonFootprint_Graveler:: @ 8C633CC - .incbin "graphics/pokemon/footprints/graveler_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Golem:: @ 8C633EC - .incbin "graphics/pokemon/front_pics/golem_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Golem:: @ 8C63868 - .incbin "graphics/pokemon/palettes/golem_palette.gbapal.lz" - - .align 2 -gMonBackPic_Golem:: @ 8C63890 - .incbin "graphics/pokemon/back_pics/golem_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Golem:: @ 8C63B50 - .incbin "graphics/pokemon/palettes/golem_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Golem:: @ 8C63B78 - .incbin "graphics/pokemon/icons/golem_icon.4bpp" - - .align 2 -gMonFootprint_Golem:: @ 8C63F78 - .incbin "graphics/pokemon/footprints/golem_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ponyta:: @ 8C63F98 - .incbin "graphics/pokemon/front_pics/ponyta_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ponyta:: @ 8C64340 - .incbin "graphics/pokemon/palettes/ponyta_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ponyta:: @ 8C64368 - .incbin "graphics/pokemon/back_pics/ponyta_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ponyta:: @ 8C646A4 - .incbin "graphics/pokemon/palettes/ponyta_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ponyta:: @ 8C646CC - .incbin "graphics/pokemon/icons/ponyta_icon.4bpp" - - .align 2 -gMonFootprint_Ponyta:: @ 8C64ACC - .incbin "graphics/pokemon/footprints/ponyta_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Rapidash:: @ 8C64AEC - .incbin "graphics/pokemon/front_pics/rapidash_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Rapidash:: @ 8C64FBC - .incbin "graphics/pokemon/palettes/rapidash_palette.gbapal.lz" - - .align 2 -gMonBackPic_Rapidash:: @ 8C64FE4 - .incbin "graphics/pokemon/back_pics/rapidash_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Rapidash:: @ 8C653F4 - .incbin "graphics/pokemon/palettes/rapidash_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Rapidash:: @ 8C6541C - .incbin "graphics/pokemon/icons/rapidash_icon.4bpp" - - .align 2 -gMonFootprint_Rapidash:: @ 8C6581C - .incbin "graphics/pokemon/footprints/rapidash_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Slowpoke:: @ 8C6583C - .incbin "graphics/pokemon/front_pics/slowpoke_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Slowpoke:: @ 8C65B48 - .incbin "graphics/pokemon/palettes/slowpoke_palette.gbapal.lz" - - .align 2 -gMonBackPic_Slowpoke:: @ 8C65B70 - .incbin "graphics/pokemon/back_pics/slowpoke_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Slowpoke:: @ 8C65DD4 - .incbin "graphics/pokemon/palettes/slowpoke_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Slowpoke:: @ 8C65DFC - .incbin "graphics/pokemon/icons/slowpoke_icon.4bpp" - - .align 2 -gMonFootprint_Slowpoke:: @ 8C661FC - .incbin "graphics/pokemon/footprints/slowpoke_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Slowbro:: @ 8C6621C - .incbin "graphics/pokemon/front_pics/slowbro_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Slowbro:: @ 8C666DC - .incbin "graphics/pokemon/palettes/slowbro_palette.gbapal.lz" - - .align 2 -gMonBackPic_Slowbro:: @ 8C66704 - .incbin "graphics/pokemon/back_pics/slowbro_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Slowbro:: @ 8C66AA0 - .incbin "graphics/pokemon/palettes/slowbro_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Slowbro:: @ 8C66AC8 - .incbin "graphics/pokemon/icons/slowbro_icon.4bpp" - - .align 2 -gMonFootprint_Slowbro:: @ 8C66EC8 - .incbin "graphics/pokemon/footprints/slowbro_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Magnemite:: @ 8C66EE8 - .incbin "graphics/pokemon/front_pics/magnemite_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Magnemite:: @ 8C670C0 - .incbin "graphics/pokemon/palettes/magnemite_palette.gbapal.lz" - - .align 2 -gMonBackPic_Magnemite:: @ 8C670E8 - .incbin "graphics/pokemon/back_pics/magnemite_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Magnemite:: @ 8C672D0 - .incbin "graphics/pokemon/palettes/magnemite_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Magnemite:: @ 8C672F4 - .incbin "graphics/pokemon/icons/magnemite_icon.4bpp" - - .align 2 -gMonFootprint_Magnemite:: @ 8C676F4 - .incbin "graphics/pokemon/footprints/magnemite_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Magneton:: @ 8C67714 - .incbin "graphics/pokemon/front_pics/magneton_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Magneton:: @ 8C67B18 - .incbin "graphics/pokemon/palettes/magneton_palette.gbapal.lz" - - .align 2 -gMonBackPic_Magneton:: @ 8C67B40 - .incbin "graphics/pokemon/back_pics/magneton_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Magneton:: @ 8C67EC0 - .incbin "graphics/pokemon/palettes/magneton_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Magneton:: @ 8C67EE8 - .incbin "graphics/pokemon/icons/magneton_icon.4bpp" - - .align 2 -gMonFootprint_Magneton:: @ 8C682E8 - .incbin "graphics/pokemon/footprints/magneton_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Farfetchd:: @ 8C68308 - .incbin "graphics/pokemon/front_pics/farfetch_d_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Farfetchd:: @ 8C68684 - .incbin "graphics/pokemon/palettes/farfetch_d_palette.gbapal.lz" - - .align 2 -gMonBackPic_Farfetchd:: @ 8C686AC - .incbin "graphics/pokemon/back_pics/farfetch_d_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Farfetchd:: @ 8C68A18 - .incbin "graphics/pokemon/palettes/farfetch_d_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Farfetchd:: @ 8C68A40 - .incbin "graphics/pokemon/icons/farfetch_d_icon.4bpp" - - .align 2 -gMonFootprint_Farfetchd:: @ 8C68E40 - .incbin "graphics/pokemon/footprints/farfetch_d_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Doduo:: @ 8C68E60 - .incbin "graphics/pokemon/front_pics/doduo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Doduo:: @ 8C691B4 - .incbin "graphics/pokemon/palettes/doduo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Doduo:: @ 8C691D8 - .incbin "graphics/pokemon/back_pics/doduo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Doduo:: @ 8C694F0 - .incbin "graphics/pokemon/palettes/doduo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Doduo:: @ 8C69514 - .incbin "graphics/pokemon/icons/doduo_icon.4bpp" - - .align 2 -gMonFootprint_Doduo:: @ 8C69914 - .incbin "graphics/pokemon/footprints/doduo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dodrio:: @ 8C69934 - .incbin "graphics/pokemon/front_pics/dodrio_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dodrio:: @ 8C69E10 - .incbin "graphics/pokemon/palettes/dodrio_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dodrio:: @ 8C69E38 - .incbin "graphics/pokemon/back_pics/dodrio_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dodrio:: @ 8C6A29C - .incbin "graphics/pokemon/palettes/dodrio_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dodrio:: @ 8C6A2C4 - .incbin "graphics/pokemon/icons/dodrio_icon.4bpp" - - .align 2 -gMonFootprint_Dodrio:: @ 8C6A6C4 - .incbin "graphics/pokemon/footprints/dodrio_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Seel:: @ 8C6A6E4 - .incbin "graphics/pokemon/front_pics/seel_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Seel:: @ 8C6A9EC - .incbin "graphics/pokemon/palettes/seel_palette.gbapal.lz" - - .align 2 -gMonBackPic_Seel:: @ 8C6AA14 - .incbin "graphics/pokemon/back_pics/seel_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Seel:: @ 8C6AD00 - .incbin "graphics/pokemon/palettes/seel_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Seel:: @ 8C6AD28 - .incbin "graphics/pokemon/icons/seel_icon.4bpp" - - .align 2 -gMonFootprint_Seel:: @ 8C6B128 - .incbin "graphics/pokemon/footprints/seel_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dewgong:: @ 8C6B148 - .incbin "graphics/pokemon/front_pics/dewgong_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dewgong:: @ 8C6B510 - .incbin "graphics/pokemon/palettes/dewgong_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dewgong:: @ 8C6B530 - .incbin "graphics/pokemon/back_pics/dewgong_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dewgong:: @ 8C6B7C4 - .incbin "graphics/pokemon/palettes/dewgong_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dewgong:: @ 8C6B7E4 - .incbin "graphics/pokemon/icons/dewgong_icon.4bpp" - - .align 2 -gMonFootprint_Dewgong:: @ 8C6BBE4 - .incbin "graphics/pokemon/footprints/dewgong_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Grimer:: @ 8C6BC04 - .incbin "graphics/pokemon/front_pics/grimer_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Grimer:: @ 8C6BF20 - .incbin "graphics/pokemon/palettes/grimer_palette.gbapal.lz" - - .align 2 -gMonBackPic_Grimer:: @ 8C6BF44 - .incbin "graphics/pokemon/back_pics/grimer_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Grimer:: @ 8C6C228 - .incbin "graphics/pokemon/palettes/grimer_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Grimer:: @ 8C6C24C - .incbin "graphics/pokemon/icons/grimer_icon.4bpp" - - .align 2 -gMonFootprint_Grimer:: @ 8C6C64C - .incbin "graphics/pokemon/footprints/grimer_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Muk:: @ 8C6C66C - .incbin "graphics/pokemon/front_pics/muk_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Muk:: @ 8C6CAB8 - .incbin "graphics/pokemon/palettes/muk_palette.gbapal.lz" - - .align 2 -gMonBackPic_Muk:: @ 8C6CADC - .incbin "graphics/pokemon/back_pics/muk_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Muk:: @ 8C6CE34 - .incbin "graphics/pokemon/palettes/muk_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Muk:: @ 8C6CE58 - .incbin "graphics/pokemon/icons/muk_icon.4bpp" - - .align 2 -gMonFootprint_Muk:: @ 8C6D258 - .incbin "graphics/pokemon/footprints/muk_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shellder:: @ 8C6D278 - .incbin "graphics/pokemon/front_pics/shellder_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shellder:: @ 8C6D4E0 - .incbin "graphics/pokemon/palettes/shellder_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shellder:: @ 8C6D504 - .incbin "graphics/pokemon/back_pics/shellder_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shellder:: @ 8C6D818 - .incbin "graphics/pokemon/palettes/shellder_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shellder:: @ 8C6D83C - .incbin "graphics/pokemon/icons/shellder_icon.4bpp" - - .align 2 -gMonFootprint_Shellder:: @ 8C6DC3C - .incbin "graphics/pokemon/footprints/shellder_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cloyster:: @ 8C6DC5C - .incbin "graphics/pokemon/front_pics/cloyster_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cloyster:: @ 8C6E094 - .incbin "graphics/pokemon/palettes/cloyster_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cloyster:: @ 8C6E0B8 - .incbin "graphics/pokemon/back_pics/cloyster_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cloyster:: @ 8C6E4C4 - .incbin "graphics/pokemon/palettes/cloyster_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cloyster:: @ 8C6E4E8 - .incbin "graphics/pokemon/icons/cloyster_icon.4bpp" - - .align 2 -gMonFootprint_Cloyster:: @ 8C6E8E8 - .incbin "graphics/pokemon/footprints/cloyster_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gastly:: @ 8C6E908 - .incbin "graphics/pokemon/front_pics/gastly_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gastly:: @ 8C6ECC0 - .incbin "graphics/pokemon/palettes/gastly_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gastly:: @ 8C6ECE8 - .incbin "graphics/pokemon/back_pics/gastly_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gastly:: @ 8C6F00C - .incbin "graphics/pokemon/palettes/gastly_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gastly:: @ 8C6F034 - .incbin "graphics/pokemon/icons/gastly_icon.4bpp" - - .align 2 -gMonFootprint_Gastly:: @ 8C6F434 - .incbin "graphics/pokemon/footprints/gastly_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Haunter:: @ 8C6F454 - .incbin "graphics/pokemon/front_pics/haunter_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Haunter:: @ 8C6F854 - .incbin "graphics/pokemon/palettes/haunter_palette.gbapal.lz" - - .align 2 -gMonBackPic_Haunter:: @ 8C6F878 - .incbin "graphics/pokemon/back_pics/haunter_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Haunter:: @ 8C6FBA0 - .incbin "graphics/pokemon/palettes/haunter_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Haunter:: @ 8C6FBC4 - .incbin "graphics/pokemon/icons/haunter_icon.4bpp" - - .align 2 -gMonFootprint_Haunter:: @ 8C6FFC4 - .incbin "graphics/pokemon/footprints/haunter_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gengar:: @ 8C6FFE4 - .incbin "graphics/pokemon/front_pics/gengar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gengar:: @ 8C70380 - .incbin "graphics/pokemon/palettes/gengar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gengar:: @ 8C703A4 - .incbin "graphics/pokemon/back_pics/gengar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gengar:: @ 8C7068C - .incbin "graphics/pokemon/palettes/gengar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gengar:: @ 8C706B0 - .incbin "graphics/pokemon/icons/gengar_icon.4bpp" - - .align 2 -gMonFootprint_Gengar:: @ 8C70AB0 - .incbin "graphics/pokemon/footprints/gengar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Onix:: @ 8C70AD0 - .incbin "graphics/pokemon/front_pics/onix_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Onix:: @ 8C70F48 - .incbin "graphics/pokemon/palettes/onix_palette.gbapal.lz" - - .align 2 -gMonBackPic_Onix:: @ 8C70F64 - .incbin "graphics/pokemon/back_pics/onix_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Onix:: @ 8C712E0 - .incbin "graphics/pokemon/palettes/onix_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Onix:: @ 8C712FC - .incbin "graphics/pokemon/icons/onix_icon.4bpp" - - .align 2 -gMonFootprint_Onix:: @ 8C716FC - .incbin "graphics/pokemon/footprints/onix_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Drowzee:: @ 8C7171C - .incbin "graphics/pokemon/front_pics/drowzee_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Drowzee:: @ 8C71A94 - .incbin "graphics/pokemon/palettes/drowzee_palette.gbapal.lz" - - .align 2 -gMonBackPic_Drowzee:: @ 8C71AB8 - .incbin "graphics/pokemon/back_pics/drowzee_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Drowzee:: @ 8C71D14 - .incbin "graphics/pokemon/palettes/drowzee_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Drowzee:: @ 8C71D38 - .incbin "graphics/pokemon/icons/drowzee_icon.4bpp" - - .align 2 -gMonFootprint_Drowzee:: @ 8C72138 - .incbin "graphics/pokemon/footprints/drowzee_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hypno:: @ 8C72158 - .incbin "graphics/pokemon/front_pics/hypno_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hypno:: @ 8C72544 - .incbin "graphics/pokemon/palettes/hypno_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hypno:: @ 8C72568 - .incbin "graphics/pokemon/back_pics/hypno_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hypno:: @ 8C72898 - .incbin "graphics/pokemon/palettes/hypno_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hypno:: @ 8C728BC - .incbin "graphics/pokemon/icons/hypno_icon.4bpp" - - .align 2 -gMonFootprint_Hypno:: @ 8C72CBC - .incbin "graphics/pokemon/footprints/hypno_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Krabby:: @ 8C72CDC - .incbin "graphics/pokemon/front_pics/krabby_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Krabby:: @ 8C72F94 - .incbin "graphics/pokemon/palettes/krabby_palette.gbapal.lz" - - .align 2 -gMonBackPic_Krabby:: @ 8C72FBC - .incbin "graphics/pokemon/back_pics/krabby_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Krabby:: @ 8C73348 - .incbin "graphics/pokemon/palettes/krabby_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Krabby:: @ 8C73370 - .incbin "graphics/pokemon/icons/krabby_icon.4bpp" - - .align 2 -gMonFootprint_Krabby:: @ 8C73770 - .incbin "graphics/pokemon/footprints/krabby_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kingler:: @ 8C73790 - .incbin "graphics/pokemon/front_pics/kingler_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kingler:: @ 8C73CC4 - .incbin "graphics/pokemon/palettes/kingler_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kingler:: @ 8C73CE8 - .incbin "graphics/pokemon/back_pics/kingler_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kingler:: @ 8C7406C - .incbin "graphics/pokemon/palettes/kingler_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kingler:: @ 8C74090 - .incbin "graphics/pokemon/icons/kingler_icon.4bpp" - - .align 2 -gMonFootprint_Kingler:: @ 8C74490 - .incbin "graphics/pokemon/footprints/kingler_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Voltorb:: @ 8C744B0 - .incbin "graphics/pokemon/front_pics/voltorb_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Voltorb:: @ 8C746B8 - .incbin "graphics/pokemon/palettes/voltorb_palette.gbapal.lz" - - .align 2 -gMonBackPic_Voltorb:: @ 8C746DC - .incbin "graphics/pokemon/back_pics/voltorb_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Voltorb:: @ 8C74950 - .incbin "graphics/pokemon/palettes/voltorb_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Voltorb:: @ 8C74974 - .incbin "graphics/pokemon/icons/voltorb_icon.4bpp" - - .align 2 -gMonFootprint_Voltorb:: @ 8C74D74 - .incbin "graphics/pokemon/footprints/voltorb_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Electrode:: @ 8C74D94 - .incbin "graphics/pokemon/front_pics/electrode_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Electrode:: @ 8C75000 - .incbin "graphics/pokemon/palettes/electrode_palette.gbapal.lz" - - .align 2 -gMonBackPic_Electrode:: @ 8C75024 - .incbin "graphics/pokemon/back_pics/electrode_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Electrode:: @ 8C75294 - .incbin "graphics/pokemon/palettes/electrode_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Electrode:: @ 8C752B8 - .incbin "graphics/pokemon/icons/electrode_icon.4bpp" - - .align 2 -gMonFootprint_Electrode:: @ 8C756B8 - .incbin "graphics/pokemon/footprints/electrode_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Exeggcute:: @ 8C756D8 - .incbin "graphics/pokemon/front_pics/exeggcute_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Exeggcute:: @ 8C75ADC - .incbin "graphics/pokemon/palettes/exeggcute_palette.gbapal.lz" - - .align 2 -gMonBackPic_Exeggcute:: @ 8C75B00 - .incbin "graphics/pokemon/back_pics/exeggcute_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Exeggcute:: @ 8C75E08 - .incbin "graphics/pokemon/palettes/exeggcute_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Exeggcute:: @ 8C75E2C - .incbin "graphics/pokemon/icons/exeggcute_icon.4bpp" - - .align 2 -gMonFootprint_Exeggcute:: @ 8C7622C - .incbin "graphics/pokemon/footprints/exeggcute_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Exeggutor:: @ 8C7624C - .incbin "graphics/pokemon/front_pics/exeggutor_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Exeggutor:: @ 8C7674C - .incbin "graphics/pokemon/palettes/exeggutor_palette.gbapal.lz" - - .align 2 -gMonBackPic_Exeggutor:: @ 8C76774 - .incbin "graphics/pokemon/back_pics/exeggutor_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Exeggutor:: @ 8C76C14 - .incbin "graphics/pokemon/palettes/exeggutor_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Exeggutor:: @ 8C76C3C - .incbin "graphics/pokemon/icons/exeggutor_icon.4bpp" - - .align 2 -gMonFootprint_Exeggutor:: @ 8C7703C - .incbin "graphics/pokemon/footprints/exeggutor_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cubone:: @ 8C7705C - .incbin "graphics/pokemon/front_pics/cubone_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cubone:: @ 8C7732C - .incbin "graphics/pokemon/palettes/cubone_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cubone:: @ 8C77354 - .incbin "graphics/pokemon/back_pics/cubone_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cubone:: @ 8C77694 - .incbin "graphics/pokemon/palettes/cubone_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cubone:: @ 8C776BC - .incbin "graphics/pokemon/icons/cubone_icon.4bpp" - - .align 2 -gMonFootprint_Cubone:: @ 8C77ABC - .incbin "graphics/pokemon/footprints/cubone_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Marowak:: @ 8C77ADC - .incbin "graphics/pokemon/front_pics/marowak_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Marowak:: @ 8C77E64 - .incbin "graphics/pokemon/palettes/marowak_palette.gbapal.lz" - - .align 2 -gMonBackPic_Marowak:: @ 8C77E8C - .incbin "graphics/pokemon/back_pics/marowak_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Marowak:: @ 8C781D4 - .incbin "graphics/pokemon/palettes/marowak_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Marowak:: @ 8C781FC - .incbin "graphics/pokemon/icons/marowak_icon.4bpp" - - .align 2 -gMonFootprint_Marowak:: @ 8C785FC - .incbin "graphics/pokemon/footprints/marowak_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hitmonlee:: @ 8C7861C - .incbin "graphics/pokemon/front_pics/hitmonlee_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hitmonlee:: @ 8C78A1C - .incbin "graphics/pokemon/palettes/hitmonlee_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hitmonlee:: @ 8C78A44 - .incbin "graphics/pokemon/back_pics/hitmonlee_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hitmonlee:: @ 8C78CE8 - .incbin "graphics/pokemon/palettes/hitmonlee_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hitmonlee:: @ 8C78D10 - .incbin "graphics/pokemon/icons/hitmonlee_icon.4bpp" - - .align 2 -gMonFootprint_Hitmonlee:: @ 8C79110 - .incbin "graphics/pokemon/footprints/hitmonlee_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hitmonchan:: @ 8C79130 - .incbin "graphics/pokemon/front_pics/hitmonchan_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hitmonchan:: @ 8C79470 - .incbin "graphics/pokemon/palettes/hitmonchan_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hitmonchan:: @ 8C79498 - .incbin "graphics/pokemon/back_pics/hitmonchan_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hitmonchan:: @ 8C797DC - .incbin "graphics/pokemon/palettes/hitmonchan_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hitmonchan:: @ 8C79804 - .incbin "graphics/pokemon/icons/hitmonchan_icon.4bpp" - - .align 2 -gMonFootprint_Hitmonchan:: @ 8C79C04 - .incbin "graphics/pokemon/footprints/hitmonchan_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lickitung:: @ 8C79C24 - .incbin "graphics/pokemon/front_pics/lickitung_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lickitung:: @ 8C79FDC - .incbin "graphics/pokemon/palettes/lickitung_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lickitung:: @ 8C7A004 - .incbin "graphics/pokemon/back_pics/lickitung_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lickitung:: @ 8C7A2C4 - .incbin "graphics/pokemon/palettes/lickitung_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lickitung:: @ 8C7A2EC - .incbin "graphics/pokemon/icons/lickitung_icon.4bpp" - - .align 2 -gMonFootprint_Lickitung:: @ 8C7A6EC - .incbin "graphics/pokemon/footprints/lickitung_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Koffing:: @ 8C7A70C - .incbin "graphics/pokemon/front_pics/koffing_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Koffing:: @ 8C7AA68 - .incbin "graphics/pokemon/palettes/koffing_palette.gbapal.lz" - - .align 2 -gMonBackPic_Koffing:: @ 8C7AA90 - .incbin "graphics/pokemon/back_pics/koffing_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Koffing:: @ 8C7AD90 - .incbin "graphics/pokemon/palettes/koffing_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Koffing:: @ 8C7ADB8 - .incbin "graphics/pokemon/icons/koffing_icon.4bpp" - - .align 2 -gMonFootprint_Koffing:: @ 8C7B1B8 - .incbin "graphics/pokemon/footprints/koffing_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Weezing:: @ 8C7B1D8 - .incbin "graphics/pokemon/front_pics/weezing_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Weezing:: @ 8C7B660 - .incbin "graphics/pokemon/palettes/weezing_palette.gbapal.lz" - - .align 2 -gMonBackPic_Weezing:: @ 8C7B688 - .incbin "graphics/pokemon/back_pics/weezing_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Weezing:: @ 8C7B9B8 - .incbin "graphics/pokemon/palettes/weezing_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Weezing:: @ 8C7B9E0 - .incbin "graphics/pokemon/icons/weezing_icon.4bpp" - - .align 2 -gMonFootprint_Weezing:: @ 8C7BDE0 - .incbin "graphics/pokemon/footprints/weezing_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Rhyhorn:: @ 8C7BE00 - .incbin "graphics/pokemon/front_pics/rhyhorn_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Rhyhorn:: @ 8C7C204 - .incbin "graphics/pokemon/palettes/rhyhorn_palette.gbapal.lz" - - .align 2 -gMonBackPic_Rhyhorn:: @ 8C7C224 - .incbin "graphics/pokemon/back_pics/rhyhorn_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Rhyhorn:: @ 8C7C56C - .incbin "graphics/pokemon/palettes/rhyhorn_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Rhyhorn:: @ 8C7C58C - .incbin "graphics/pokemon/icons/rhyhorn_icon.4bpp" - - .align 2 -gMonFootprint_Rhyhorn:: @ 8C7C98C - .incbin "graphics/pokemon/footprints/rhyhorn_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Rhydon:: @ 8C7C9AC - .incbin "graphics/pokemon/front_pics/rhydon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Rhydon:: @ 8C7CEB4 - .incbin "graphics/pokemon/palettes/rhydon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Rhydon:: @ 8C7CEDC - .incbin "graphics/pokemon/back_pics/rhydon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Rhydon:: @ 8C7D32C - .incbin "graphics/pokemon/palettes/rhydon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Rhydon:: @ 8C7D354 - .incbin "graphics/pokemon/icons/rhydon_icon.4bpp" - - .align 2 -gMonFootprint_Rhydon:: @ 8C7D754 - .incbin "graphics/pokemon/footprints/rhydon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Chansey:: @ 8C7D774 - .incbin "graphics/pokemon/front_pics/chansey_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Chansey:: @ 8C7DAC8 - .incbin "graphics/pokemon/palettes/chansey_palette.gbapal.lz" - - .align 2 -gMonBackPic_Chansey:: @ 8C7DAEC - .incbin "graphics/pokemon/back_pics/chansey_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Chansey:: @ 8C7DDC0 - .incbin "graphics/pokemon/palettes/chansey_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Chansey:: @ 8C7DDE4 - .incbin "graphics/pokemon/icons/chansey_icon.4bpp" - - .align 2 -gMonFootprint_Chansey:: @ 8C7E1E4 - .incbin "graphics/pokemon/footprints/chansey_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tangela:: @ 8C7E204 - .incbin "graphics/pokemon/front_pics/tangela_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tangela:: @ 8C7E5D8 - .incbin "graphics/pokemon/palettes/tangela_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tangela:: @ 8C7E5FC - .incbin "graphics/pokemon/back_pics/tangela_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tangela:: @ 8C7E9A8 - .incbin "graphics/pokemon/palettes/tangela_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tangela:: @ 8C7E9CC - .incbin "graphics/pokemon/icons/tangela_icon.4bpp" - - .align 2 -gMonFootprint_Tangela:: @ 8C7EDCC - .incbin "graphics/pokemon/footprints/tangela_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kangaskhan:: @ 8C7EDEC - .incbin "graphics/pokemon/front_pics/kangaskhan_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kangaskhan:: @ 8C7F2E4 - .incbin "graphics/pokemon/palettes/kangaskhan_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kangaskhan:: @ 8C7F30C - .incbin "graphics/pokemon/back_pics/kangaskhan_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kangaskhan:: @ 8C7F73C - .incbin "graphics/pokemon/palettes/kangaskhan_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kangaskhan:: @ 8C7F764 - .incbin "graphics/pokemon/icons/kangaskhan_icon.4bpp" - - .align 2 -gMonFootprint_Kangaskhan:: @ 8C7FB64 - .incbin "graphics/pokemon/footprints/kangaskhan_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Horsea:: @ 8C7FB84 - .incbin "graphics/pokemon/front_pics/horsea_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Horsea:: @ 8C7FDFC - .incbin "graphics/pokemon/palettes/horsea_palette.gbapal.lz" - - .align 2 -gMonBackPic_Horsea:: @ 8C7FE24 - .incbin "graphics/pokemon/back_pics/horsea_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Horsea:: @ 8C80104 - .incbin "graphics/pokemon/palettes/horsea_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Horsea:: @ 8C8012C - .incbin "graphics/pokemon/icons/horsea_icon.4bpp" - - .align 2 -gMonFootprint_Horsea:: @ 8C8052C - .incbin "graphics/pokemon/footprints/horsea_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Seadra:: @ 8C8054C - .incbin "graphics/pokemon/front_pics/seadra_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Seadra:: @ 8C8090C - .incbin "graphics/pokemon/palettes/seadra_palette.gbapal.lz" - - .align 2 -gMonBackPic_Seadra:: @ 8C80934 - .incbin "graphics/pokemon/back_pics/seadra_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Seadra:: @ 8C80CD4 - .incbin "graphics/pokemon/palettes/seadra_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Seadra:: @ 8C80CFC - .incbin "graphics/pokemon/icons/seadra_icon.4bpp" - - .align 2 -gMonFootprint_Seadra:: @ 8C810FC - .incbin "graphics/pokemon/footprints/seadra_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Goldeen:: @ 8C8111C - .incbin "graphics/pokemon/front_pics/goldeen_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Goldeen:: @ 8C81484 - .incbin "graphics/pokemon/palettes/goldeen_palette.gbapal.lz" - - .align 2 -gMonBackPic_Goldeen:: @ 8C814AC - .incbin "graphics/pokemon/back_pics/goldeen_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Goldeen:: @ 8C8181C - .incbin "graphics/pokemon/palettes/goldeen_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Goldeen:: @ 8C81844 - .incbin "graphics/pokemon/icons/goldeen_icon.4bpp" - - .align 2 -gMonFootprint_Goldeen:: @ 8C81C44 - .incbin "graphics/pokemon/footprints/goldeen_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Seaking:: @ 8C81C64 - .incbin "graphics/pokemon/front_pics/seaking_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Seaking:: @ 8C820D8 - .incbin "graphics/pokemon/palettes/seaking_palette.gbapal.lz" - - .align 2 -gMonBackPic_Seaking:: @ 8C82100 - .incbin "graphics/pokemon/back_pics/seaking_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Seaking:: @ 8C82450 - .incbin "graphics/pokemon/palettes/seaking_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Seaking:: @ 8C82478 - .incbin "graphics/pokemon/icons/seaking_icon.4bpp" - - .align 2 -gMonFootprint_Seaking:: @ 8C82878 - .incbin "graphics/pokemon/footprints/seaking_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Staryu:: @ 8C82898 - .incbin "graphics/pokemon/front_pics/staryu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Staryu:: @ 8C82B7C - .incbin "graphics/pokemon/palettes/staryu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Staryu:: @ 8C82BA4 - .incbin "graphics/pokemon/back_pics/staryu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Staryu:: @ 8C82E30 - .incbin "graphics/pokemon/palettes/staryu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Staryu:: @ 8C82E58 - .incbin "graphics/pokemon/icons/staryu_icon.4bpp" - - .align 2 -gMonFootprint_Staryu:: @ 8C83258 - .incbin "graphics/pokemon/footprints/staryu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Starmie:: @ 8C83278 - .incbin "graphics/pokemon/front_pics/starmie_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Starmie:: @ 8C836A0 - .incbin "graphics/pokemon/palettes/starmie_palette.gbapal.lz" - - .align 2 -gMonBackPic_Starmie:: @ 8C836C8 - .incbin "graphics/pokemon/back_pics/starmie_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Starmie:: @ 8C8396C - .incbin "graphics/pokemon/palettes/starmie_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Starmie:: @ 8C83994 - .incbin "graphics/pokemon/icons/starmie_icon.4bpp" - - .align 2 -gMonFootprint_Starmie:: @ 8C83D94 - .incbin "graphics/pokemon/footprints/starmie_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mrmime:: @ 8C83DB4 - .incbin "graphics/pokemon/front_pics/mr_mime_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mrmime:: @ 8C84164 - .incbin "graphics/pokemon/palettes/mr_mime_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mrmime:: @ 8C8418C - .incbin "graphics/pokemon/back_pics/mr_mime_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mrmime:: @ 8C844C0 - .incbin "graphics/pokemon/palettes/mr_mime_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mrmime:: @ 8C844E8 - .incbin "graphics/pokemon/icons/mr_mime_icon.4bpp" - - .align 2 -gMonFootprint_Mrmime:: @ 8C848E8 - .incbin "graphics/pokemon/footprints/mr_mime_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Scyther:: @ 8C84908 - .incbin "graphics/pokemon/front_pics/scyther_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Scyther:: @ 8C84DB4 - .incbin "graphics/pokemon/palettes/scyther_palette.gbapal.lz" - - .align 2 -gMonBackPic_Scyther:: @ 8C84DDC - .incbin "graphics/pokemon/back_pics/scyther_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Scyther:: @ 8C85184 - .incbin "graphics/pokemon/palettes/scyther_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Scyther:: @ 8C851AC - .incbin "graphics/pokemon/icons/scyther_icon.4bpp" - - .align 2 -gMonFootprint_Scyther:: @ 8C855AC - .incbin "graphics/pokemon/footprints/scyther_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Jynx:: @ 8C855CC - .incbin "graphics/pokemon/front_pics/jynx_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Jynx:: @ 8C85A68 - .incbin "graphics/pokemon/palettes/jynx_palette.gbapal.lz" - - .align 2 -gMonBackPic_Jynx:: @ 8C85A90 - .incbin "graphics/pokemon/back_pics/jynx_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Jynx:: @ 8C85D88 - .incbin "graphics/pokemon/palettes/jynx_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Jynx:: @ 8C85DB0 - .incbin "graphics/pokemon/icons/jynx_icon.4bpp" - - .align 2 -gMonFootprint_Jynx:: @ 8C861B0 - .incbin "graphics/pokemon/footprints/jynx_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Electabuzz:: @ 8C861D0 - .incbin "graphics/pokemon/front_pics/electabuzz_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Electabuzz:: @ 8C8664C - .incbin "graphics/pokemon/palettes/electabuzz_palette.gbapal.lz" - - .align 2 -gMonBackPic_Electabuzz:: @ 8C86674 - .incbin "graphics/pokemon/back_pics/electabuzz_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Electabuzz:: @ 8C86984 - .incbin "graphics/pokemon/palettes/electabuzz_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Electabuzz:: @ 8C869AC - .incbin "graphics/pokemon/icons/electabuzz_icon.4bpp" - - .align 2 -gMonFootprint_Electabuzz:: @ 8C86DAC - .incbin "graphics/pokemon/footprints/electabuzz_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Magmar:: @ 8C86DCC - .incbin "graphics/pokemon/front_pics/magmar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Magmar:: @ 8C87274 - .incbin "graphics/pokemon/palettes/magmar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Magmar:: @ 8C8729C - .incbin "graphics/pokemon/back_pics/magmar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Magmar:: @ 8C875E4 - .incbin "graphics/pokemon/palettes/magmar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Magmar:: @ 8C8760C - .incbin "graphics/pokemon/icons/magmar_icon.4bpp" - - .align 2 -gMonFootprint_Magmar:: @ 8C87A0C - .incbin "graphics/pokemon/footprints/magmar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pinsir:: @ 8C87A2C - .incbin "graphics/pokemon/front_pics/pinsir_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pinsir:: @ 8C87E54 - .incbin "graphics/pokemon/palettes/pinsir_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pinsir:: @ 8C87E78 - .incbin "graphics/pokemon/back_pics/pinsir_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pinsir:: @ 8C881CC - .incbin "graphics/pokemon/palettes/pinsir_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pinsir:: @ 8C881F0 - .incbin "graphics/pokemon/icons/pinsir_icon.4bpp" - - .align 2 -gMonFootprint_Pinsir:: @ 8C885F0 - .incbin "graphics/pokemon/footprints/pinsir_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tauros:: @ 8C88610 - .incbin "graphics/pokemon/front_pics/tauros_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tauros:: @ 8C88AE0 - .incbin "graphics/pokemon/palettes/tauros_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tauros:: @ 8C88B08 - .incbin "graphics/pokemon/back_pics/tauros_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tauros:: @ 8C88DBC - .incbin "graphics/pokemon/palettes/tauros_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tauros:: @ 8C88DE4 - .incbin "graphics/pokemon/icons/tauros_icon.4bpp" - - .align 2 -gMonFootprint_Tauros:: @ 8C891E4 - .incbin "graphics/pokemon/footprints/tauros_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Magikarp:: @ 8C89204 - .incbin "graphics/pokemon/front_pics/magikarp_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Magikarp:: @ 8C89554 - .incbin "graphics/pokemon/palettes/magikarp_palette.gbapal.lz" - - .align 2 -gMonBackPic_Magikarp:: @ 8C8957C - .incbin "graphics/pokemon/back_pics/magikarp_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Magikarp:: @ 8C898AC - .incbin "graphics/pokemon/palettes/magikarp_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Magikarp:: @ 8C898D4 - .incbin "graphics/pokemon/icons/magikarp_icon.4bpp" - - .align 2 -gMonFootprint_Magikarp:: @ 8C89CD4 - .incbin "graphics/pokemon/footprints/magikarp_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gyarados:: @ 8C89CF4 - .incbin "graphics/pokemon/front_pics/gyarados_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gyarados:: @ 8C8A25C - .incbin "graphics/pokemon/palettes/gyarados_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gyarados:: @ 8C8A284 - .incbin "graphics/pokemon/back_pics/gyarados_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gyarados:: @ 8C8A758 - .incbin "graphics/pokemon/palettes/gyarados_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gyarados:: @ 8C8A780 - .incbin "graphics/pokemon/icons/gyarados_icon.4bpp" - - .align 2 -gMonFootprint_Gyarados:: @ 8C8AB80 - .incbin "graphics/pokemon/footprints/gyarados_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lapras:: @ 8C8ABA0 - .incbin "graphics/pokemon/front_pics/lapras_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lapras:: @ 8C8AF60 - .incbin "graphics/pokemon/palettes/lapras_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lapras:: @ 8C8AF88 - .incbin "graphics/pokemon/back_pics/lapras_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lapras:: @ 8C8B2CC - .incbin "graphics/pokemon/palettes/lapras_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lapras:: @ 8C8B2F4 - .incbin "graphics/pokemon/icons/lapras_icon.4bpp" - - .align 2 -gMonFootprint_Lapras:: @ 8C8B6F4 - .incbin "graphics/pokemon/footprints/lapras_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ditto:: @ 8C8B714 - .incbin "graphics/pokemon/front_pics/ditto_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ditto:: @ 8C8B904 - .incbin "graphics/pokemon/palettes/ditto_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ditto:: @ 8C8B924 - .incbin "graphics/pokemon/back_pics/ditto_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ditto:: @ 8C8BB24 - .incbin "graphics/pokemon/palettes/ditto_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ditto:: @ 8C8BB44 - .incbin "graphics/pokemon/icons/ditto_icon.4bpp" - - .align 2 -gMonFootprint_Ditto:: @ 8C8BF44 - .incbin "graphics/pokemon/footprints/ditto_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Eevee:: @ 8C8BF64 - .incbin "graphics/pokemon/front_pics/eevee_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Eevee:: @ 8C8C208 - .incbin "graphics/pokemon/palettes/eevee_palette.gbapal.lz" - - .align 2 -gMonBackPic_Eevee:: @ 8C8C22C - .incbin "graphics/pokemon/back_pics/eevee_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Eevee:: @ 8C8C554 - .incbin "graphics/pokemon/palettes/eevee_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Eevee:: @ 8C8C578 - .incbin "graphics/pokemon/icons/eevee_icon.4bpp" - - .align 2 -gMonFootprint_Eevee:: @ 8C8C978 - .incbin "graphics/pokemon/footprints/eevee_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Vaporeon:: @ 8C8C998 - .incbin "graphics/pokemon/front_pics/vaporeon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Vaporeon:: @ 8C8CD2C - .incbin "graphics/pokemon/palettes/vaporeon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Vaporeon:: @ 8C8CD54 - .incbin "graphics/pokemon/back_pics/vaporeon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Vaporeon:: @ 8C8D01C - .incbin "graphics/pokemon/palettes/vaporeon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Vaporeon:: @ 8C8D044 - .incbin "graphics/pokemon/icons/vaporeon_icon.4bpp" - - .align 2 -gMonFootprint_Vaporeon:: @ 8C8D444 - .incbin "graphics/pokemon/footprints/vaporeon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Jolteon:: @ 8C8D464 - .incbin "graphics/pokemon/front_pics/jolteon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Jolteon:: @ 8C8D804 - .incbin "graphics/pokemon/palettes/jolteon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Jolteon:: @ 8C8D82C - .incbin "graphics/pokemon/back_pics/jolteon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Jolteon:: @ 8C8DBBC - .incbin "graphics/pokemon/palettes/jolteon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Jolteon:: @ 8C8DBE4 - .incbin "graphics/pokemon/icons/jolteon_icon.4bpp" - - .align 2 -gMonFootprint_Jolteon:: @ 8C8DFE4 - .incbin "graphics/pokemon/footprints/jolteon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Flareon:: @ 8C8E004 - .incbin "graphics/pokemon/front_pics/flareon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Flareon:: @ 8C8E380 - .incbin "graphics/pokemon/palettes/flareon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Flareon:: @ 8C8E3A8 - .incbin "graphics/pokemon/back_pics/flareon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Flareon:: @ 8C8E738 - .incbin "graphics/pokemon/palettes/flareon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Flareon:: @ 8C8E760 - .incbin "graphics/pokemon/icons/flareon_icon.4bpp" - - .align 2 -gMonFootprint_Flareon:: @ 8C8EB60 - .incbin "graphics/pokemon/footprints/flareon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Porygon:: @ 8C8EB80 - .incbin "graphics/pokemon/front_pics/porygon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Porygon:: @ 8C8EE3C - .incbin "graphics/pokemon/palettes/porygon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Porygon:: @ 8C8EE60 - .incbin "graphics/pokemon/back_pics/porygon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Porygon:: @ 8C8F118 - .incbin "graphics/pokemon/palettes/porygon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Porygon:: @ 8C8F13C - .incbin "graphics/pokemon/icons/porygon_icon.4bpp" - - .align 2 -gMonFootprint_Porygon:: @ 8C8F53C - .incbin "graphics/pokemon/footprints/porygon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Omanyte:: @ 8C8F55C - .incbin "graphics/pokemon/front_pics/omanyte_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Omanyte:: @ 8C8F804 - .incbin "graphics/pokemon/palettes/omanyte_palette.gbapal.lz" - - .align 2 -gMonBackPic_Omanyte:: @ 8C8F82C - .incbin "graphics/pokemon/back_pics/omanyte_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Omanyte:: @ 8C8FB78 - .incbin "graphics/pokemon/palettes/omanyte_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Omanyte:: @ 8C8FBA0 - .incbin "graphics/pokemon/icons/omanyte_icon.4bpp" - - .align 2 -gMonFootprint_Omanyte:: @ 8C8FFA0 - .incbin "graphics/pokemon/footprints/omanyte_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Omastar:: @ 8C8FFC0 - .incbin "graphics/pokemon/front_pics/omastar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Omastar:: @ 8C90380 - .incbin "graphics/pokemon/palettes/omastar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Omastar:: @ 8C903A8 - .incbin "graphics/pokemon/back_pics/omastar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Omastar:: @ 8C906E8 - .incbin "graphics/pokemon/palettes/omastar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Omastar:: @ 8C90710 - .incbin "graphics/pokemon/icons/omastar_icon.4bpp" - - .align 2 -gMonFootprint_Omastar:: @ 8C90B10 - .incbin "graphics/pokemon/footprints/omastar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kabuto:: @ 8C90B30 - .incbin "graphics/pokemon/front_pics/kabuto_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kabuto:: @ 8C90DA0 - .incbin "graphics/pokemon/palettes/kabuto_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kabuto:: @ 8C90DC8 - .incbin "graphics/pokemon/back_pics/kabuto_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kabuto:: @ 8C91060 - .incbin "graphics/pokemon/palettes/kabuto_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kabuto:: @ 8C91088 - .incbin "graphics/pokemon/icons/kabuto_icon.4bpp" - - .align 2 -gMonFootprint_Kabuto:: @ 8C91488 - .incbin "graphics/pokemon/footprints/kabuto_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kabutops:: @ 8C914A8 - .incbin "graphics/pokemon/front_pics/kabutops_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kabutops:: @ 8C918A8 - .incbin "graphics/pokemon/palettes/kabutops_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kabutops:: @ 8C918CC - .incbin "graphics/pokemon/back_pics/kabutops_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kabutops:: @ 8C91C70 - .incbin "graphics/pokemon/palettes/kabutops_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kabutops:: @ 8C91C94 - .incbin "graphics/pokemon/icons/kabutops_icon.4bpp" - - .align 2 -gMonFootprint_Kabutops:: @ 8C92094 - .incbin "graphics/pokemon/footprints/kabutops_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Aerodactyl:: @ 8C920B4 - .incbin "graphics/pokemon/front_pics/aerodactyl_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Aerodactyl:: @ 8C92534 - .incbin "graphics/pokemon/palettes/aerodactyl_palette.gbapal.lz" - - .align 2 -gMonBackPic_Aerodactyl:: @ 8C9255C - .incbin "graphics/pokemon/back_pics/aerodactyl_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Aerodactyl:: @ 8C92860 - .incbin "graphics/pokemon/palettes/aerodactyl_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Aerodactyl:: @ 8C92888 - .incbin "graphics/pokemon/icons/aerodactyl_icon.4bpp" - - .align 2 -gMonFootprint_Aerodactyl:: @ 8C92C88 - .incbin "graphics/pokemon/footprints/aerodactyl_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Snorlax:: @ 8C92CA8 - .incbin "graphics/pokemon/front_pics/snorlax_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Snorlax:: @ 8C930EC - .incbin "graphics/pokemon/palettes/snorlax_palette.gbapal.lz" - - .align 2 -gMonBackPic_Snorlax:: @ 8C93114 - .incbin "graphics/pokemon/back_pics/snorlax_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Snorlax:: @ 8C93330 - .incbin "graphics/pokemon/palettes/snorlax_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Snorlax:: @ 8C93358 - .incbin "graphics/pokemon/icons/snorlax_icon.4bpp" - - .align 2 -gMonFootprint_Snorlax:: @ 8C93758 - .incbin "graphics/pokemon/footprints/snorlax_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Articuno:: @ 8C93778 - .incbin "graphics/pokemon/front_pics/articuno_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Articuno:: @ 8C93C70 - .incbin "graphics/pokemon/palettes/articuno_palette.gbapal.lz" - - .align 2 -gMonBackPic_Articuno:: @ 8C93C98 - .incbin "graphics/pokemon/back_pics/articuno_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Articuno:: @ 8C93EF4 - .incbin "graphics/pokemon/palettes/articuno_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Articuno:: @ 8C93F1C - .incbin "graphics/pokemon/icons/articuno_icon.4bpp" - - .align 2 -gMonFootprint_Articuno:: @ 8C9431C - .incbin "graphics/pokemon/footprints/articuno_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Zapdos:: @ 8C9433C - .incbin "graphics/pokemon/front_pics/zapdos_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Zapdos:: @ 8C947B0 - .incbin "graphics/pokemon/palettes/zapdos_palette.gbapal.lz" - - .align 2 -gMonBackPic_Zapdos:: @ 8C947D8 - .incbin "graphics/pokemon/back_pics/zapdos_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Zapdos:: @ 8C94B14 - .incbin "graphics/pokemon/palettes/zapdos_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Zapdos:: @ 8C94B3C - .incbin "graphics/pokemon/icons/zapdos_icon.4bpp" - - .align 2 -gMonFootprint_Zapdos:: @ 8C94F3C - .incbin "graphics/pokemon/footprints/zapdos_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Moltres:: @ 8C94F5C - .incbin "graphics/pokemon/front_pics/moltres_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Moltres:: @ 8C9550C - .incbin "graphics/pokemon/palettes/moltres_palette.gbapal.lz" - - .align 2 -gMonBackPic_Moltres:: @ 8C95534 - .incbin "graphics/pokemon/back_pics/moltres_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Moltres:: @ 8C95870 - .incbin "graphics/pokemon/palettes/moltres_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Moltres:: @ 8C95898 - .incbin "graphics/pokemon/icons/moltres_icon.4bpp" - - .align 2 -gMonFootprint_Moltres:: @ 8C95C98 - .incbin "graphics/pokemon/footprints/moltres_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dratini:: @ 8C95CB8 - .incbin "graphics/pokemon/front_pics/dratini_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dratini:: @ 8C95F70 - .incbin "graphics/pokemon/palettes/dratini_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dratini:: @ 8C95F94 - .incbin "graphics/pokemon/back_pics/dratini_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dratini:: @ 8C96224 - .incbin "graphics/pokemon/palettes/dratini_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dratini:: @ 8C96248 - .incbin "graphics/pokemon/icons/dratini_icon.4bpp" - - .align 2 -gMonFootprint_Dratini:: @ 8C96648 - .incbin "graphics/pokemon/footprints/dratini_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dragonair:: @ 8C96668 - .incbin "graphics/pokemon/front_pics/dragonair_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dragonair:: @ 8C969C8 - .incbin "graphics/pokemon/palettes/dragonair_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dragonair:: @ 8C969F0 - .incbin "graphics/pokemon/back_pics/dragonair_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dragonair:: @ 8C96D00 - .incbin "graphics/pokemon/palettes/dragonair_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dragonair:: @ 8C96D28 - .incbin "graphics/pokemon/icons/dragonair_icon.4bpp" - - .align 2 -gMonFootprint_Dragonair:: @ 8C97128 - .incbin "graphics/pokemon/footprints/dragonair_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dragonite:: @ 8C97148 - .incbin "graphics/pokemon/front_pics/dragonite_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dragonite:: @ 8C976B8 - .incbin "graphics/pokemon/palettes/dragonite_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dragonite:: @ 8C976E0 - .incbin "graphics/pokemon/back_pics/dragonite_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dragonite:: @ 8C979DC - .incbin "graphics/pokemon/palettes/dragonite_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dragonite:: @ 8C97A04 - .incbin "graphics/pokemon/icons/dragonite_icon.4bpp" - - .align 2 -gMonFootprint_Dragonite:: @ 8C97E04 - .incbin "graphics/pokemon/footprints/dragonite_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mewtwo:: @ 8C97E24 - .incbin "graphics/pokemon/front_pics/mewtwo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mewtwo:: @ 8C98260 - .incbin "graphics/pokemon/palettes/mewtwo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mewtwo:: @ 8C98284 - .incbin "graphics/pokemon/back_pics/mewtwo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mewtwo:: @ 8C98650 - .incbin "graphics/pokemon/palettes/mewtwo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mewtwo:: @ 8C98674 - .incbin "graphics/pokemon/icons/mewtwo_icon.4bpp" - - .align 2 -gMonFootprint_Mewtwo:: @ 8C98A74 - .incbin "graphics/pokemon/footprints/mewtwo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mew:: @ 8C98A94 - .incbin "graphics/pokemon/front_pics/mew_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mew:: @ 8C98D14 - .incbin "graphics/pokemon/palettes/mew_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mew:: @ 8C98D38 - .incbin "graphics/pokemon/back_pics/mew_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mew:: @ 8C99004 - .incbin "graphics/pokemon/palettes/mew_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mew:: @ 8C99028 - .incbin "graphics/pokemon/icons/mew_icon.4bpp" - - .align 2 -gMonFootprint_Mew:: @ 8C99428 - .incbin "graphics/pokemon/footprints/mew_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Chikorita:: @ 8C99448 - .incbin "graphics/pokemon/front_pics/chikorita_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Chikorita:: @ 8C996B0 - .incbin "graphics/pokemon/palettes/chikorita_palette.gbapal.lz" - - .align 2 -gMonBackPic_Chikorita:: @ 8C996D8 - .incbin "graphics/pokemon/back_pics/chikorita_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Chikorita:: @ 8C9999C - .incbin "graphics/pokemon/palettes/chikorita_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Chikorita:: @ 8C999C4 - .incbin "graphics/pokemon/icons/chikorita_icon.4bpp" - - .align 2 -gMonFootprint_Chikorita:: @ 8C99DC4 - .incbin "graphics/pokemon/footprints/chikorita_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Bayleef:: @ 8C99DE4 - .incbin "graphics/pokemon/front_pics/bayleef_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Bayleef:: @ 8C9A1B8 - .incbin "graphics/pokemon/palettes/bayleef_palette.gbapal.lz" - - .align 2 -gMonBackPic_Bayleef:: @ 8C9A1E0 - .incbin "graphics/pokemon/back_pics/bayleef_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Bayleef:: @ 8C9A570 - .incbin "graphics/pokemon/palettes/bayleef_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Bayleef:: @ 8C9A598 - .incbin "graphics/pokemon/icons/bayleef_icon.4bpp" - - .align 2 -gMonFootprint_Bayleef:: @ 8C9A998 - .incbin "graphics/pokemon/footprints/bayleef_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Meganium:: @ 8C9A9B8 - .incbin "graphics/pokemon/front_pics/meganium_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Meganium:: @ 8C9AF14 - .incbin "graphics/pokemon/palettes/meganium_palette.gbapal.lz" - - .align 2 -gMonBackPic_Meganium:: @ 8C9AF3C - .incbin "graphics/pokemon/back_pics/meganium_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Meganium:: @ 8C9B28C - .incbin "graphics/pokemon/palettes/meganium_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Meganium:: @ 8C9B2B4 - .incbin "graphics/pokemon/icons/meganium_icon.4bpp" - - .align 2 -gMonFootprint_Meganium:: @ 8C9B6B4 - .incbin "graphics/pokemon/footprints/meganium_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cyndaquil:: @ 8C9B6D4 - .incbin "graphics/pokemon/front_pics/cyndaquil_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cyndaquil:: @ 8C9B960 - .incbin "graphics/pokemon/palettes/cyndaquil_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cyndaquil:: @ 8C9B988 - .incbin "graphics/pokemon/back_pics/cyndaquil_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cyndaquil:: @ 8C9BCB4 - .incbin "graphics/pokemon/palettes/cyndaquil_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cyndaquil:: @ 8C9BCDC - .incbin "graphics/pokemon/icons/cyndaquil_icon.4bpp" - - .align 2 -gMonFootprint_Cyndaquil:: @ 8C9C0DC - .incbin "graphics/pokemon/footprints/cyndaquil_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Quilava:: @ 8C9C0FC - .incbin "graphics/pokemon/front_pics/quilava_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Quilava:: @ 8C9C418 - .incbin "graphics/pokemon/palettes/quilava_palette.gbapal.lz" - - .align 2 -gMonBackPic_Quilava:: @ 8C9C440 - .incbin "graphics/pokemon/back_pics/quilava_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Quilava:: @ 8C9C7B4 - .incbin "graphics/pokemon/palettes/quilava_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Quilava:: @ 8C9C7DC - .incbin "graphics/pokemon/icons/quilava_icon.4bpp" - - .align 2 -gMonFootprint_Quilava:: @ 8C9CBDC - .incbin "graphics/pokemon/footprints/quilava_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Typhlosion:: @ 8C9CBFC - .incbin "graphics/pokemon/front_pics/typhlosion_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Typhlosion:: @ 8C9D024 - .incbin "graphics/pokemon/palettes/typhlosion_palette.gbapal.lz" - - .align 2 -gMonBackPic_Typhlosion:: @ 8C9D04C - .incbin "graphics/pokemon/back_pics/typhlosion_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Typhlosion:: @ 8C9D450 - .incbin "graphics/pokemon/palettes/typhlosion_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Typhlosion:: @ 8C9D478 - .incbin "graphics/pokemon/icons/typhlosion_icon.4bpp" - - .align 2 -gMonFootprint_Typhlosion:: @ 8C9D878 - .incbin "graphics/pokemon/footprints/typhlosion_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Totodile:: @ 8C9D898 - .incbin "graphics/pokemon/front_pics/totodile_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Totodile:: @ 8C9DB3C - .incbin "graphics/pokemon/palettes/totodile_palette.gbapal.lz" - - .align 2 -gMonBackPic_Totodile:: @ 8C9DB64 - .incbin "graphics/pokemon/back_pics/totodile_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Totodile:: @ 8C9DE44 - .incbin "graphics/pokemon/palettes/totodile_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Totodile:: @ 8C9DE6C - .incbin "graphics/pokemon/icons/totodile_icon.4bpp" - - .align 2 -gMonFootprint_Totodile:: @ 8C9E26C - .incbin "graphics/pokemon/footprints/totodile_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Croconaw:: @ 8C9E28C - .incbin "graphics/pokemon/front_pics/croconaw_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Croconaw:: @ 8C9E5F4 - .incbin "graphics/pokemon/palettes/croconaw_palette.gbapal.lz" - - .align 2 -gMonBackPic_Croconaw:: @ 8C9E61C - .incbin "graphics/pokemon/back_pics/croconaw_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Croconaw:: @ 8C9E96C - .incbin "graphics/pokemon/palettes/croconaw_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Croconaw:: @ 8C9E994 - .incbin "graphics/pokemon/icons/croconaw_icon.4bpp" - - .align 2 -gMonFootprint_Croconaw:: @ 8C9ED94 - .incbin "graphics/pokemon/footprints/croconaw_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Feraligatr:: @ 8C9EDB4 - .incbin "graphics/pokemon/front_pics/feraligatr_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Feraligatr:: @ 8C9F320 - .incbin "graphics/pokemon/palettes/feraligatr_palette.gbapal.lz" - - .align 2 -gMonBackPic_Feraligatr:: @ 8C9F348 - .incbin "graphics/pokemon/back_pics/feraligatr_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Feraligatr:: @ 8C9F814 - .incbin "graphics/pokemon/palettes/feraligatr_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Feraligatr:: @ 8C9F83C - .incbin "graphics/pokemon/icons/feraligatr_icon.4bpp" - - .align 2 -gMonFootprint_Feraligatr:: @ 8C9FC3C - .incbin "graphics/pokemon/footprints/feraligatr_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sentret:: @ 8C9FC5C - .incbin "graphics/pokemon/front_pics/sentret_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sentret:: @ 8C9FF38 - .incbin "graphics/pokemon/palettes/sentret_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sentret:: @ 8C9FF60 - .incbin "graphics/pokemon/back_pics/sentret_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sentret:: @ 8CA0204 - .incbin "graphics/pokemon/palettes/sentret_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sentret:: @ 8CA022C - .incbin "graphics/pokemon/icons/sentret_icon.4bpp" - - .align 2 -gMonFootprint_Sentret:: @ 8CA062C - .incbin "graphics/pokemon/footprints/sentret_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Furret:: @ 8CA064C - .incbin "graphics/pokemon/front_pics/furret_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Furret:: @ 8CA0980 - .incbin "graphics/pokemon/palettes/furret_palette.gbapal.lz" - - .align 2 -gMonBackPic_Furret:: @ 8CA09A8 - .incbin "graphics/pokemon/back_pics/furret_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Furret:: @ 8CA0CD0 - .incbin "graphics/pokemon/palettes/furret_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Furret:: @ 8CA0CF8 - .incbin "graphics/pokemon/icons/furret_icon.4bpp" - - .align 2 -gMonFootprint_Furret:: @ 8CA10F8 - .incbin "graphics/pokemon/footprints/furret_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hoothoot:: @ 8CA1118 - .incbin "graphics/pokemon/front_pics/hoothoot_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hoothoot:: @ 8CA139C - .incbin "graphics/pokemon/palettes/hoothoot_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hoothoot:: @ 8CA13C4 - .incbin "graphics/pokemon/back_pics/hoothoot_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hoothoot:: @ 8CA16CC - .incbin "graphics/pokemon/palettes/hoothoot_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hoothoot:: @ 8CA16F4 - .incbin "graphics/pokemon/icons/hoothoot_icon.4bpp" - - .align 2 -gMonFootprint_Hoothoot:: @ 8CA1AF4 - .incbin "graphics/pokemon/footprints/hoothoot_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Noctowl:: @ 8CA1B14 - .incbin "graphics/pokemon/front_pics/noctowl_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Noctowl:: @ 8CA1E68 - .incbin "graphics/pokemon/palettes/noctowl_palette.gbapal.lz" - - .align 2 -gMonBackPic_Noctowl:: @ 8CA1E90 - .incbin "graphics/pokemon/back_pics/noctowl_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Noctowl:: @ 8CA21EC - .incbin "graphics/pokemon/palettes/noctowl_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Noctowl:: @ 8CA2214 - .incbin "graphics/pokemon/icons/noctowl_icon.4bpp" - - .align 2 -gMonFootprint_Noctowl:: @ 8CA2614 - .incbin "graphics/pokemon/footprints/noctowl_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ledyba:: @ 8CA2634 - .incbin "graphics/pokemon/front_pics/ledyba_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ledyba:: @ 8CA2928 - .incbin "graphics/pokemon/palettes/ledyba_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ledyba:: @ 8CA2950 - .incbin "graphics/pokemon/back_pics/ledyba_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ledyba:: @ 8CA2C80 - .incbin "graphics/pokemon/palettes/ledyba_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ledyba:: @ 8CA2CA8 - .incbin "graphics/pokemon/icons/ledyba_icon.4bpp" - - .align 2 -gMonFootprint_Ledyba:: @ 8CA30A8 - .incbin "graphics/pokemon/footprints/ledyba_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ledian:: @ 8CA30C8 - .incbin "graphics/pokemon/front_pics/ledian_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ledian:: @ 8CA3450 - .incbin "graphics/pokemon/palettes/ledian_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ledian:: @ 8CA3478 - .incbin "graphics/pokemon/back_pics/ledian_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ledian:: @ 8CA37D0 - .incbin "graphics/pokemon/palettes/ledian_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ledian:: @ 8CA37F8 - .incbin "graphics/pokemon/icons/ledian_icon.4bpp" - - .align 2 -gMonFootprint_Ledian:: @ 8CA3BF8 - .incbin "graphics/pokemon/footprints/ledian_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Spinarak:: @ 8CA3C18 - .incbin "graphics/pokemon/front_pics/spinarak_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Spinarak:: @ 8CA3E8C - .incbin "graphics/pokemon/palettes/spinarak_palette.gbapal.lz" - - .align 2 -gMonBackPic_Spinarak:: @ 8CA3EB4 - .incbin "graphics/pokemon/back_pics/spinarak_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Spinarak:: @ 8CA4118 - .incbin "graphics/pokemon/palettes/spinarak_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Spinarak:: @ 8CA4140 - .incbin "graphics/pokemon/icons/spinarak_icon.4bpp" - - .align 2 -gMonFootprint_Spinarak:: @ 8CA4540 - .incbin "graphics/pokemon/footprints/spinarak_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ariados:: @ 8CA4560 - .incbin "graphics/pokemon/front_pics/ariados_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ariados:: @ 8CA4920 - .incbin "graphics/pokemon/palettes/ariados_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ariados:: @ 8CA4948 - .incbin "graphics/pokemon/back_pics/ariados_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ariados:: @ 8CA4CC0 - .incbin "graphics/pokemon/palettes/ariados_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ariados:: @ 8CA4CE8 - .incbin "graphics/pokemon/icons/ariados_icon.4bpp" - - .align 2 -gMonFootprint_Ariados:: @ 8CA50E8 - .incbin "graphics/pokemon/footprints/ariados_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Crobat:: @ 8CA5108 - .incbin "graphics/pokemon/front_pics/crobat_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Crobat:: @ 8CA54B8 - .incbin "graphics/pokemon/palettes/crobat_palette.gbapal.lz" - - .align 2 -gMonBackPic_Crobat:: @ 8CA54E0 - .incbin "graphics/pokemon/back_pics/crobat_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Crobat:: @ 8CA57E8 - .incbin "graphics/pokemon/palettes/crobat_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Crobat:: @ 8CA5810 - .incbin "graphics/pokemon/icons/crobat_icon.4bpp" - - .align 2 -gMonFootprint_Crobat:: @ 8CA5C10 - .incbin "graphics/pokemon/footprints/crobat_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Chinchou:: @ 8CA5C30 - .incbin "graphics/pokemon/front_pics/chinchou_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Chinchou:: @ 8CA5F08 - .incbin "graphics/pokemon/palettes/chinchou_palette.gbapal.lz" - - .align 2 -gMonBackPic_Chinchou:: @ 8CA5F30 - .incbin "graphics/pokemon/back_pics/chinchou_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Chinchou:: @ 8CA6228 - .incbin "graphics/pokemon/palettes/chinchou_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Chinchou:: @ 8CA6250 - .incbin "graphics/pokemon/icons/chinchou_icon.4bpp" - - .align 2 -gMonFootprint_Chinchou:: @ 8CA6650 - .incbin "graphics/pokemon/footprints/chinchou_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lanturn:: @ 8CA6670 - .incbin "graphics/pokemon/front_pics/lanturn_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lanturn:: @ 8CA69E0 - .incbin "graphics/pokemon/palettes/lanturn_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lanturn:: @ 8CA6A08 - .incbin "graphics/pokemon/back_pics/lanturn_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lanturn:: @ 8CA6D08 - .incbin "graphics/pokemon/palettes/lanturn_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lanturn:: @ 8CA6D30 - .incbin "graphics/pokemon/icons/lanturn_icon.4bpp" - - .align 2 -gMonFootprint_Lanturn:: @ 8CA7130 - .incbin "graphics/pokemon/footprints/lanturn_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pichu:: @ 8CA7150 - .incbin "graphics/pokemon/front_pics/pichu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pichu:: @ 8CA736C - .incbin "graphics/pokemon/palettes/pichu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pichu:: @ 8CA7394 - .incbin "graphics/pokemon/back_pics/pichu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pichu:: @ 8CA75F0 - .incbin "graphics/pokemon/palettes/pichu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pichu:: @ 8CA7618 - .incbin "graphics/pokemon/icons/pichu_icon.4bpp" - - .align 2 -gMonFootprint_Pichu:: @ 8CA7A18 - .incbin "graphics/pokemon/footprints/pichu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cleffa:: @ 8CA7A38 - .incbin "graphics/pokemon/front_pics/cleffa_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cleffa:: @ 8CA7C18 - .incbin "graphics/pokemon/palettes/cleffa_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cleffa:: @ 8CA7C40 - .incbin "graphics/pokemon/back_pics/cleffa_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cleffa:: @ 8CA7E7C - .incbin "graphics/pokemon/palettes/cleffa_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cleffa:: @ 8CA7EA4 - .incbin "graphics/pokemon/icons/cleffa_icon.4bpp" - - .align 2 -gMonFootprint_Cleffa:: @ 8CA82A4 - .incbin "graphics/pokemon/footprints/cleffa_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Igglybuff:: @ 8CA82C4 - .incbin "graphics/pokemon/front_pics/igglybuff_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Igglybuff:: @ 8CA84AC - .incbin "graphics/pokemon/palettes/igglybuff_palette.gbapal.lz" - - .align 2 -gMonBackPic_Igglybuff:: @ 8CA84D4 - .incbin "graphics/pokemon/back_pics/igglybuff_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Igglybuff:: @ 8CA8710 - .incbin "graphics/pokemon/palettes/igglybuff_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Igglybuff:: @ 8CA8738 - .incbin "graphics/pokemon/icons/igglybuff_icon.4bpp" - - .align 2 -gMonFootprint_Igglybuff:: @ 8CA8B38 - .incbin "graphics/pokemon/footprints/igglybuff_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Togepi:: @ 8CA8B58 - .incbin "graphics/pokemon/front_pics/togepi_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Togepi:: @ 8CA8D2C - .incbin "graphics/pokemon/palettes/togepi_palette.gbapal.lz" - - .align 2 -gMonBackPic_Togepi:: @ 8CA8D54 - .incbin "graphics/pokemon/back_pics/togepi_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Togepi:: @ 8CA8FC8 - .incbin "graphics/pokemon/palettes/togepi_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Togepi:: @ 8CA8FF0 - .incbin "graphics/pokemon/icons/togepi_icon.4bpp" - - .align 2 -gMonFootprint_Togepi:: @ 8CA93F0 - .incbin "graphics/pokemon/footprints/togepi_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Togetic:: @ 8CA9410 - .incbin "graphics/pokemon/front_pics/togetic_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Togetic:: @ 8CA9684 - .incbin "graphics/pokemon/palettes/togetic_palette.gbapal.lz" - - .align 2 -gMonBackPic_Togetic:: @ 8CA96AC - .incbin "graphics/pokemon/back_pics/togetic_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Togetic:: @ 8CA99D8 - .incbin "graphics/pokemon/palettes/togetic_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Togetic:: @ 8CA9A00 - .incbin "graphics/pokemon/icons/togetic_icon.4bpp" - - .align 2 -gMonFootprint_Togetic:: @ 8CA9E00 - .incbin "graphics/pokemon/footprints/togetic_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Natu:: @ 8CA9E20 - .incbin "graphics/pokemon/front_pics/natu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Natu:: @ 8CA9FEC - .incbin "graphics/pokemon/palettes/natu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Natu:: @ 8CAA014 - .incbin "graphics/pokemon/back_pics/natu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Natu:: @ 8CAA228 - .incbin "graphics/pokemon/palettes/natu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Natu:: @ 8CAA250 - .incbin "graphics/pokemon/icons/natu_icon.4bpp" - - .align 2 -gMonFootprint_Natu:: @ 8CAA650 - .incbin "graphics/pokemon/footprints/natu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Xatu:: @ 8CAA670 - .incbin "graphics/pokemon/front_pics/xatu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Xatu:: @ 8CAA94C - .incbin "graphics/pokemon/palettes/xatu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Xatu:: @ 8CAA974 - .incbin "graphics/pokemon/back_pics/xatu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Xatu:: @ 8CAACEC - .incbin "graphics/pokemon/palettes/xatu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Xatu:: @ 8CAAD14 - .incbin "graphics/pokemon/icons/xatu_icon.4bpp" - - .align 2 -gMonFootprint_Xatu:: @ 8CAB114 - .incbin "graphics/pokemon/footprints/xatu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mareep:: @ 8CAB134 - .incbin "graphics/pokemon/front_pics/mareep_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mareep:: @ 8CAB3E8 - .incbin "graphics/pokemon/palettes/mareep_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mareep:: @ 8CAB410 - .incbin "graphics/pokemon/back_pics/mareep_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mareep:: @ 8CAB704 - .incbin "graphics/pokemon/palettes/mareep_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mareep:: @ 8CAB72C - .incbin "graphics/pokemon/icons/mareep_icon.4bpp" - - .align 2 -gMonFootprint_Mareep:: @ 8CABB2C - .incbin "graphics/pokemon/footprints/mareep_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Flaaffy:: @ 8CABB4C - .incbin "graphics/pokemon/front_pics/flaaffy_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Flaaffy:: @ 8CABE4C - .incbin "graphics/pokemon/palettes/flaaffy_palette.gbapal.lz" - - .align 2 -gMonBackPic_Flaaffy:: @ 8CABE74 - .incbin "graphics/pokemon/back_pics/flaaffy_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Flaaffy:: @ 8CAC190 - .incbin "graphics/pokemon/palettes/flaaffy_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Flaaffy:: @ 8CAC1B8 - .incbin "graphics/pokemon/icons/flaaffy_icon.4bpp" - - .align 2 -gMonFootprint_Flaaffy:: @ 8CAC5B8 - .incbin "graphics/pokemon/footprints/flaaffy_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ampharos:: @ 8CAC5D8 - .incbin "graphics/pokemon/front_pics/ampharos_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ampharos:: @ 8CAC934 - .incbin "graphics/pokemon/palettes/ampharos_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ampharos:: @ 8CAC95C - .incbin "graphics/pokemon/back_pics/ampharos_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ampharos:: @ 8CACCD4 - .incbin "graphics/pokemon/palettes/ampharos_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ampharos:: @ 8CACCFC - .incbin "graphics/pokemon/icons/ampharos_icon.4bpp" - - .align 2 -gMonFootprint_Ampharos:: @ 8CAD0FC - .incbin "graphics/pokemon/footprints/ampharos_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Bellossom:: @ 8CAD11C - .incbin "graphics/pokemon/front_pics/bellossom_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Bellossom:: @ 8CAD38C - .incbin "graphics/pokemon/palettes/bellossom_palette.gbapal.lz" - - .align 2 -gMonBackPic_Bellossom:: @ 8CAD3B4 - .incbin "graphics/pokemon/back_pics/bellossom_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Bellossom:: @ 8CAD6D8 - .incbin "graphics/pokemon/palettes/bellossom_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Bellossom:: @ 8CAD700 - .incbin "graphics/pokemon/icons/bellossom_icon.4bpp" - - .align 2 -gMonFootprint_Bellossom:: @ 8CADB00 - .incbin "graphics/pokemon/footprints/bellossom_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Marill:: @ 8CADB20 - .incbin "graphics/pokemon/front_pics/marill_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Marill:: @ 8CADDE4 - .incbin "graphics/pokemon/palettes/marill_palette.gbapal.lz" - - .align 2 -gMonBackPic_Marill:: @ 8CADE0C - .incbin "graphics/pokemon/back_pics/marill_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Marill:: @ 8CAE0B8 - .incbin "graphics/pokemon/palettes/marill_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Marill:: @ 8CAE0E0 - .incbin "graphics/pokemon/icons/marill_icon.4bpp" - - .align 2 -gMonFootprint_Marill:: @ 8CAE4E0 - .incbin "graphics/pokemon/footprints/marill_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Azumarill:: @ 8CAE500 - .incbin "graphics/pokemon/front_pics/azumarill_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Azumarill:: @ 8CAE800 - .incbin "graphics/pokemon/palettes/azumarill_palette.gbapal.lz" - - .align 2 -gMonBackPic_Azumarill:: @ 8CAE828 - .incbin "graphics/pokemon/back_pics/azumarill_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Azumarill:: @ 8CAEAE4 - .incbin "graphics/pokemon/palettes/azumarill_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Azumarill:: @ 8CAEB0C - .incbin "graphics/pokemon/icons/azumarill_icon.4bpp" - - .align 2 -gMonFootprint_Azumarill:: @ 8CAEF0C - .incbin "graphics/pokemon/footprints/azumarill_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sudowoodo:: @ 8CAEF2C - .incbin "graphics/pokemon/front_pics/sudowoodo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sudowoodo:: @ 8CAF244 - .incbin "graphics/pokemon/palettes/sudowoodo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sudowoodo:: @ 8CAF26C - .incbin "graphics/pokemon/back_pics/sudowoodo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sudowoodo:: @ 8CAF5C8 - .incbin "graphics/pokemon/palettes/sudowoodo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sudowoodo:: @ 8CAF5F0 - .incbin "graphics/pokemon/icons/sudowoodo_icon.4bpp" - - .align 2 -gMonFootprint_Sudowoodo:: @ 8CAF9F0 - .incbin "graphics/pokemon/footprints/sudowoodo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Politoed:: @ 8CAFA10 - .incbin "graphics/pokemon/front_pics/politoed_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Politoed:: @ 8CAFD4C - .incbin "graphics/pokemon/palettes/politoed_palette.gbapal.lz" - - .align 2 -gMonBackPic_Politoed:: @ 8CAFD74 - .incbin "graphics/pokemon/back_pics/politoed_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Politoed:: @ 8CB0030 - .incbin "graphics/pokemon/palettes/politoed_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Politoed:: @ 8CB0058 - .incbin "graphics/pokemon/icons/politoed_icon.4bpp" - - .align 2 -gMonFootprint_Politoed:: @ 8CB0458 - .incbin "graphics/pokemon/footprints/politoed_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hoppip:: @ 8CB0478 - .incbin "graphics/pokemon/front_pics/hoppip_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hoppip:: @ 8CB072C - .incbin "graphics/pokemon/palettes/hoppip_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hoppip:: @ 8CB0754 - .incbin "graphics/pokemon/back_pics/hoppip_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hoppip:: @ 8CB0A34 - .incbin "graphics/pokemon/palettes/hoppip_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hoppip:: @ 8CB0A5C - .incbin "graphics/pokemon/icons/hoppip_icon.4bpp" - - .align 2 -gMonFootprint_Hoppip:: @ 8CB0E5C - .incbin "graphics/pokemon/footprints/hoppip_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Skiploom:: @ 8CB0E7C - .incbin "graphics/pokemon/front_pics/skiploom_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Skiploom:: @ 8CB1104 - .incbin "graphics/pokemon/palettes/skiploom_palette.gbapal.lz" - - .align 2 -gMonBackPic_Skiploom:: @ 8CB112C - .incbin "graphics/pokemon/back_pics/skiploom_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Skiploom:: @ 8CB140C - .incbin "graphics/pokemon/palettes/skiploom_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Skiploom:: @ 8CB1434 - .incbin "graphics/pokemon/icons/skiploom_icon.4bpp" - - .align 2 -gMonFootprint_Skiploom:: @ 8CB1834 - .incbin "graphics/pokemon/footprints/skiploom_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Jumpluff:: @ 8CB1854 - .incbin "graphics/pokemon/front_pics/jumpluff_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Jumpluff:: @ 8CB1BC0 - .incbin "graphics/pokemon/palettes/jumpluff_palette.gbapal.lz" - - .align 2 -gMonBackPic_Jumpluff:: @ 8CB1BE8 - .incbin "graphics/pokemon/back_pics/jumpluff_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Jumpluff:: @ 8CB1FE0 - .incbin "graphics/pokemon/palettes/jumpluff_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Jumpluff:: @ 8CB2008 - .incbin "graphics/pokemon/icons/jumpluff_icon.4bpp" - - .align 2 -gMonFootprint_Jumpluff:: @ 8CB2408 - .incbin "graphics/pokemon/footprints/jumpluff_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Aipom:: @ 8CB2428 - .incbin "graphics/pokemon/front_pics/aipom_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Aipom:: @ 8CB2724 - .incbin "graphics/pokemon/palettes/aipom_palette.gbapal.lz" - - .align 2 -gMonBackPic_Aipom:: @ 8CB274C - .incbin "graphics/pokemon/back_pics/aipom_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Aipom:: @ 8CB2A40 - .incbin "graphics/pokemon/palettes/aipom_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Aipom:: @ 8CB2A68 - .incbin "graphics/pokemon/icons/aipom_icon.4bpp" - - .align 2 -gMonFootprint_Aipom:: @ 8CB2E68 - .incbin "graphics/pokemon/footprints/aipom_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sunkern:: @ 8CB2E88 - .incbin "graphics/pokemon/front_pics/sunkern_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sunkern:: @ 8CB30C0 - .incbin "graphics/pokemon/palettes/sunkern_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sunkern:: @ 8CB30E8 - .incbin "graphics/pokemon/back_pics/sunkern_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sunkern:: @ 8CB33AC - .incbin "graphics/pokemon/palettes/sunkern_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sunkern:: @ 8CB33D4 - .incbin "graphics/pokemon/icons/sunkern_icon.4bpp" - - .align 2 -gMonFootprint_Sunkern:: @ 8CB37D4 - .incbin "graphics/pokemon/footprints/sunkern_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sunflora:: @ 8CB37F4 - .incbin "graphics/pokemon/front_pics/sunflora_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sunflora:: @ 8CB3B4C - .incbin "graphics/pokemon/palettes/sunflora_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sunflora:: @ 8CB3B74 - .incbin "graphics/pokemon/back_pics/sunflora_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sunflora:: @ 8CB3F14 - .incbin "graphics/pokemon/palettes/sunflora_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sunflora:: @ 8CB3F3C - .incbin "graphics/pokemon/icons/sunflora_icon.4bpp" - - .align 2 -gMonFootprint_Sunflora:: @ 8CB433C - .incbin "graphics/pokemon/footprints/sunflora_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Yanma:: @ 8CB435C - .incbin "graphics/pokemon/front_pics/yanma_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Yanma:: @ 8CB46E0 - .incbin "graphics/pokemon/palettes/yanma_palette.gbapal.lz" - - .align 2 -gMonBackPic_Yanma:: @ 8CB4708 - .incbin "graphics/pokemon/back_pics/yanma_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Yanma:: @ 8CB4ABC - .incbin "graphics/pokemon/palettes/yanma_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Yanma:: @ 8CB4AE4 - .incbin "graphics/pokemon/icons/yanma_icon.4bpp" - - .align 2 -gMonFootprint_Yanma:: @ 8CB4EE4 - .incbin "graphics/pokemon/footprints/yanma_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wooper:: @ 8CB4F04 - .incbin "graphics/pokemon/front_pics/wooper_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wooper:: @ 8CB5144 - .incbin "graphics/pokemon/palettes/wooper_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wooper:: @ 8CB516C - .incbin "graphics/pokemon/back_pics/wooper_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wooper:: @ 8CB53F8 - .incbin "graphics/pokemon/palettes/wooper_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wooper:: @ 8CB5420 - .incbin "graphics/pokemon/icons/wooper_icon.4bpp" - - .align 2 -gMonFootprint_Wooper:: @ 8CB5820 - .incbin "graphics/pokemon/footprints/wooper_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Quagsire:: @ 8CB5840 - .incbin "graphics/pokemon/front_pics/quagsire_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Quagsire:: @ 8CB5BB4 - .incbin "graphics/pokemon/palettes/quagsire_palette.gbapal.lz" - - .align 2 -gMonBackPic_Quagsire:: @ 8CB5BDC - .incbin "graphics/pokemon/back_pics/quagsire_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Quagsire:: @ 8CB5ED8 - .incbin "graphics/pokemon/palettes/quagsire_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Quagsire:: @ 8CB5F00 - .incbin "graphics/pokemon/icons/quagsire_icon.4bpp" - - .align 2 -gMonFootprint_Quagsire:: @ 8CB6300 - .incbin "graphics/pokemon/footprints/quagsire_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Espeon:: @ 8CB6320 - .incbin "graphics/pokemon/front_pics/espeon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Espeon:: @ 8CB6660 - .incbin "graphics/pokemon/palettes/espeon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Espeon:: @ 8CB6684 - .incbin "graphics/pokemon/back_pics/espeon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Espeon:: @ 8CB6960 - .incbin "graphics/pokemon/palettes/espeon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Espeon:: @ 8CB6984 - .incbin "graphics/pokemon/icons/espeon_icon.4bpp" - - .align 2 -gMonFootprint_Espeon:: @ 8CB6D84 - .incbin "graphics/pokemon/footprints/espeon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Umbreon:: @ 8CB6DA4 - .incbin "graphics/pokemon/front_pics/umbreon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Umbreon:: @ 8CB70B8 - .incbin "graphics/pokemon/palettes/umbreon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Umbreon:: @ 8CB70E0 - .incbin "graphics/pokemon/back_pics/umbreon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Umbreon:: @ 8CB73F4 - .incbin "graphics/pokemon/palettes/umbreon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Umbreon:: @ 8CB741C - .incbin "graphics/pokemon/icons/umbreon_icon.4bpp" - - .align 2 -gMonFootprint_Umbreon:: @ 8CB781C - .incbin "graphics/pokemon/footprints/umbreon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Murkrow:: @ 8CB783C - .incbin "graphics/pokemon/front_pics/murkrow_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Murkrow:: @ 8CB7B1C - .incbin "graphics/pokemon/palettes/murkrow_palette.gbapal.lz" - - .align 2 -gMonBackPic_Murkrow:: @ 8CB7B44 - .incbin "graphics/pokemon/back_pics/murkrow_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Murkrow:: @ 8CB7E5C - .incbin "graphics/pokemon/palettes/murkrow_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Murkrow:: @ 8CB7E84 - .incbin "graphics/pokemon/icons/murkrow_icon.4bpp" - - .align 2 -gMonFootprint_Murkrow:: @ 8CB8284 - .incbin "graphics/pokemon/footprints/murkrow_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Slowking:: @ 8CB82A4 - .incbin "graphics/pokemon/front_pics/slowking_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Slowking:: @ 8CB8658 - .incbin "graphics/pokemon/palettes/slowking_palette.gbapal.lz" - - .align 2 -gMonBackPic_Slowking:: @ 8CB8680 - .incbin "graphics/pokemon/back_pics/slowking_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Slowking:: @ 8CB8A0C - .incbin "graphics/pokemon/palettes/slowking_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Slowking:: @ 8CB8A34 - .incbin "graphics/pokemon/icons/slowking_icon.4bpp" - - .align 2 -gMonFootprint_Slowking:: @ 8CB8E34 - .incbin "graphics/pokemon/footprints/slowking_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Misdreavus:: @ 8CB8E54 - .incbin "graphics/pokemon/front_pics/misdreavus_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Misdreavus:: @ 8CB9114 - .incbin "graphics/pokemon/palettes/misdreavus_palette.gbapal.lz" - - .align 2 -gMonBackPic_Misdreavus:: @ 8CB913C - .incbin "graphics/pokemon/back_pics/misdreavus_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Misdreavus:: @ 8CB9460 - .incbin "graphics/pokemon/palettes/misdreavus_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Misdreavus:: @ 8CB9488 - .incbin "graphics/pokemon/icons/misdreavus_icon.4bpp" - - .align 2 -gMonFootprint_Misdreavus:: @ 8CB9888 - .incbin "graphics/pokemon/footprints/misdreavus_footprint.1bpp" - - .align 2 -gMonStillFrontPic_UnownA:: @ 8CB98A8 - .incbin "graphics/pokemon/front_pics/unown_a_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Unown:: @ 8CB9A7C - .incbin "graphics/pokemon/palettes/unown_palette.gbapal.lz" - - .align 2 -gMonBackPic_UnownA:: @ 8CB9A9C - .incbin "graphics/pokemon/back_pics/unown_a_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Unown:: @ 8CB9C9C - .incbin "graphics/pokemon/palettes/unown_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_UnownA:: @ 8CB9CBC - .incbin "graphics/pokemon/icons/unown_a_icon.4bpp" - - .align 2 -gMonFootprint_Unown:: @ 8CBA0BC - .incbin "graphics/pokemon/footprints/unown_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wobbuffet:: @ 8CBA0DC - .incbin "graphics/pokemon/front_pics/wobbuffet_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wobbuffet:: @ 8CBA42C - .incbin "graphics/pokemon/palettes/wobbuffet_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wobbuffet:: @ 8CBA454 - .incbin "graphics/pokemon/back_pics/wobbuffet_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wobbuffet:: @ 8CBA698 - .incbin "graphics/pokemon/palettes/wobbuffet_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wobbuffet:: @ 8CBA6C0 - .incbin "graphics/pokemon/icons/wobbuffet_icon.4bpp" - - .align 2 -gMonFootprint_Wobbuffet:: @ 8CBAAC0 - .incbin "graphics/pokemon/footprints/wobbuffet_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Girafarig:: @ 8CBAAE0 - .incbin "graphics/pokemon/front_pics/girafarig_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Girafarig:: @ 8CBAEE4 - .incbin "graphics/pokemon/palettes/girafarig_palette.gbapal.lz" - - .align 2 -gMonBackPic_Girafarig:: @ 8CBAF0C - .incbin "graphics/pokemon/back_pics/girafarig_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Girafarig:: @ 8CBB2B8 - .incbin "graphics/pokemon/palettes/girafarig_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Girafarig:: @ 8CBB2E0 - .incbin "graphics/pokemon/icons/girafarig_icon.4bpp" - - .align 2 -gMonFootprint_Girafarig:: @ 8CBB6E0 - .incbin "graphics/pokemon/footprints/girafarig_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pineco:: @ 8CBB700 - .incbin "graphics/pokemon/front_pics/pineco_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pineco:: @ 8CBBA40 - .incbin "graphics/pokemon/palettes/pineco_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pineco:: @ 8CBBA64 - .incbin "graphics/pokemon/back_pics/pineco_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pineco:: @ 8CBBD3C - .incbin "graphics/pokemon/palettes/pineco_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pineco:: @ 8CBBD60 - .incbin "graphics/pokemon/icons/pineco_icon.4bpp" - - .align 2 -gMonFootprint_Pineco:: @ 8CBC160 - .incbin "graphics/pokemon/footprints/pineco_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Forretress:: @ 8CBC180 - .incbin "graphics/pokemon/front_pics/forretress_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Forretress:: @ 8CBC59C - .incbin "graphics/pokemon/palettes/forretress_palette.gbapal.lz" - - .align 2 -gMonBackPic_Forretress:: @ 8CBC5C4 - .incbin "graphics/pokemon/back_pics/forretress_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Forretress:: @ 8CBC884 - .incbin "graphics/pokemon/palettes/forretress_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Forretress:: @ 8CBC8AC - .incbin "graphics/pokemon/icons/forretress_icon.4bpp" - - .align 2 -gMonFootprint_Forretress:: @ 8CBCCAC - .incbin "graphics/pokemon/footprints/forretress_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dunsparce:: @ 8CBCCCC - .incbin "graphics/pokemon/front_pics/dunsparce_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dunsparce:: @ 8CBCFDC - .incbin "graphics/pokemon/palettes/dunsparce_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dunsparce:: @ 8CBD004 - .incbin "graphics/pokemon/back_pics/dunsparce_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dunsparce:: @ 8CBD300 - .incbin "graphics/pokemon/palettes/dunsparce_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dunsparce:: @ 8CBD328 - .incbin "graphics/pokemon/icons/dunsparce_icon.4bpp" - - .align 2 -gMonFootprint_Dunsparce:: @ 8CBD728 - .incbin "graphics/pokemon/footprints/dunsparce_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gligar:: @ 8CBD748 - .incbin "graphics/pokemon/front_pics/gligar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gligar:: @ 8CBDB70 - .incbin "graphics/pokemon/palettes/gligar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gligar:: @ 8CBDB98 - .incbin "graphics/pokemon/back_pics/gligar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gligar:: @ 8CBDF70 - .incbin "graphics/pokemon/palettes/gligar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gligar:: @ 8CBDF98 - .incbin "graphics/pokemon/icons/gligar_icon.4bpp" - - .align 2 -gMonFootprint_Gligar:: @ 8CBE398 - .incbin "graphics/pokemon/footprints/gligar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Steelix:: @ 8CBE3B8 - .incbin "graphics/pokemon/front_pics/steelix_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Steelix:: @ 8CBE880 - .incbin "graphics/pokemon/palettes/steelix_palette.gbapal.lz" - - .align 2 -gMonBackPic_Steelix:: @ 8CBE8A4 - .incbin "graphics/pokemon/back_pics/steelix_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Steelix:: @ 8CBECB0 - .incbin "graphics/pokemon/palettes/steelix_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Steelix:: @ 8CBECD4 - .incbin "graphics/pokemon/icons/steelix_icon.4bpp" - - .align 2 -gMonFootprint_Steelix:: @ 8CBF0D4 - .incbin "graphics/pokemon/footprints/steelix_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Snubbull:: @ 8CBF0F4 - .incbin "graphics/pokemon/front_pics/snubbull_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Snubbull:: @ 8CBF3C8 - .incbin "graphics/pokemon/palettes/snubbull_palette.gbapal.lz" - - .align 2 -gMonBackPic_Snubbull:: @ 8CBF3F0 - .incbin "graphics/pokemon/back_pics/snubbull_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Snubbull:: @ 8CBF718 - .incbin "graphics/pokemon/palettes/snubbull_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Snubbull:: @ 8CBF740 - .incbin "graphics/pokemon/icons/snubbull_icon.4bpp" - - .align 2 -gMonFootprint_Snubbull:: @ 8CBFB40 - .incbin "graphics/pokemon/footprints/snubbull_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Granbull:: @ 8CBFB60 - .incbin "graphics/pokemon/front_pics/granbull_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Granbull:: @ 8CBFEEC - .incbin "graphics/pokemon/palettes/granbull_palette.gbapal.lz" - - .align 2 -gMonBackPic_Granbull:: @ 8CBFF14 - .incbin "graphics/pokemon/back_pics/granbull_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Granbull:: @ 8CC0238 - .incbin "graphics/pokemon/palettes/granbull_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Granbull:: @ 8CC0260 - .incbin "graphics/pokemon/icons/granbull_icon.4bpp" - - .align 2 -gMonFootprint_Granbull:: @ 8CC0660 - .incbin "graphics/pokemon/footprints/granbull_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Qwilfish:: @ 8CC0680 - .incbin "graphics/pokemon/front_pics/qwilfish_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Qwilfish:: @ 8CC0940 - .incbin "graphics/pokemon/palettes/qwilfish_palette.gbapal.lz" - - .align 2 -gMonBackPic_Qwilfish:: @ 8CC0968 - .incbin "graphics/pokemon/back_pics/qwilfish_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Qwilfish:: @ 8CC0C48 - .incbin "graphics/pokemon/palettes/qwilfish_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Qwilfish:: @ 8CC0C70 - .incbin "graphics/pokemon/icons/qwilfish_icon.4bpp" - - .align 2 -gMonFootprint_Qwilfish:: @ 8CC1070 - .incbin "graphics/pokemon/footprints/qwilfish_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Scizor:: @ 8CC1090 - .incbin "graphics/pokemon/front_pics/scizor_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Scizor:: @ 8CC1578 - .incbin "graphics/pokemon/palettes/scizor_palette.gbapal.lz" - - .align 2 -gMonBackPic_Scizor:: @ 8CC15A0 - .incbin "graphics/pokemon/back_pics/scizor_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Scizor:: @ 8CC1920 - .incbin "graphics/pokemon/palettes/scizor_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Scizor:: @ 8CC1948 - .incbin "graphics/pokemon/icons/scizor_icon.4bpp" - - .align 2 -gMonFootprint_Scizor:: @ 8CC1D48 - .incbin "graphics/pokemon/footprints/scizor_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shuckle:: @ 8CC1D68 - .incbin "graphics/pokemon/front_pics/shuckle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shuckle:: @ 8CC2030 - .incbin "graphics/pokemon/palettes/shuckle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shuckle:: @ 8CC2058 - .incbin "graphics/pokemon/back_pics/shuckle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shuckle:: @ 8CC22B0 - .incbin "graphics/pokemon/palettes/shuckle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shuckle:: @ 8CC22D8 - .incbin "graphics/pokemon/icons/shuckle_icon.4bpp" - - .align 2 -gMonFootprint_Shuckle:: @ 8CC26D8 - .incbin "graphics/pokemon/footprints/shuckle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Heracross:: @ 8CC26F8 - .incbin "graphics/pokemon/front_pics/heracross_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Heracross:: @ 8CC2AE8 - .incbin "graphics/pokemon/palettes/heracross_palette.gbapal.lz" - - .align 2 -gMonBackPic_Heracross:: @ 8CC2B10 - .incbin "graphics/pokemon/back_pics/heracross_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Heracross:: @ 8CC2E80 - .incbin "graphics/pokemon/palettes/heracross_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Heracross:: @ 8CC2EA8 - .incbin "graphics/pokemon/icons/heracross_icon.4bpp" - - .align 2 -gMonFootprint_Heracross:: @ 8CC32A8 - .incbin "graphics/pokemon/footprints/heracross_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sneasel:: @ 8CC32C8 - .incbin "graphics/pokemon/front_pics/sneasel_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sneasel:: @ 8CC360C - .incbin "graphics/pokemon/palettes/sneasel_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sneasel:: @ 8CC3634 - .incbin "graphics/pokemon/back_pics/sneasel_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sneasel:: @ 8CC3958 - .incbin "graphics/pokemon/palettes/sneasel_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sneasel:: @ 8CC3980 - .incbin "graphics/pokemon/icons/sneasel_icon.4bpp" - - .align 2 -gMonFootprint_Sneasel:: @ 8CC3D80 - .incbin "graphics/pokemon/footprints/sneasel_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Teddiursa:: @ 8CC3DA0 - .incbin "graphics/pokemon/front_pics/teddiursa_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Teddiursa:: @ 8CC400C - .incbin "graphics/pokemon/palettes/teddiursa_palette.gbapal.lz" - - .align 2 -gMonBackPic_Teddiursa:: @ 8CC4034 - .incbin "graphics/pokemon/back_pics/teddiursa_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Teddiursa:: @ 8CC42AC - .incbin "graphics/pokemon/palettes/teddiursa_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Teddiursa:: @ 8CC42D4 - .incbin "graphics/pokemon/icons/teddiursa_icon.4bpp" - - .align 2 -gMonFootprint_Teddiursa:: @ 8CC46D4 - .incbin "graphics/pokemon/footprints/teddiursa_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ursaring:: @ 8CC46F4 - .incbin "graphics/pokemon/front_pics/ursaring_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ursaring:: @ 8CC4B2C - .incbin "graphics/pokemon/palettes/ursaring_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ursaring:: @ 8CC4B54 - .incbin "graphics/pokemon/back_pics/ursaring_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ursaring:: @ 8CC4EDC - .incbin "graphics/pokemon/palettes/ursaring_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ursaring:: @ 8CC4F04 - .incbin "graphics/pokemon/icons/ursaring_icon.4bpp" - - .align 2 -gMonFootprint_Ursaring:: @ 8CC5304 - .incbin "graphics/pokemon/footprints/ursaring_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Slugma:: @ 8CC5324 - .incbin "graphics/pokemon/front_pics/slugma_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Slugma:: @ 8CC5598 - .incbin "graphics/pokemon/palettes/slugma_palette.gbapal.lz" - - .align 2 -gMonBackPic_Slugma:: @ 8CC55BC - .incbin "graphics/pokemon/back_pics/slugma_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Slugma:: @ 8CC58A4 - .incbin "graphics/pokemon/palettes/slugma_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Slugma:: @ 8CC58C8 - .incbin "graphics/pokemon/icons/slugma_icon.4bpp" - - .align 2 -gMonFootprint_Slugma:: @ 8CC5CC8 - .incbin "graphics/pokemon/footprints/slugma_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Magcargo:: @ 8CC5CE8 - .incbin "graphics/pokemon/front_pics/magcargo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Magcargo:: @ 8CC6030 - .incbin "graphics/pokemon/palettes/magcargo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Magcargo:: @ 8CC6058 - .incbin "graphics/pokemon/back_pics/magcargo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Magcargo:: @ 8CC6470 - .incbin "graphics/pokemon/palettes/magcargo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Magcargo:: @ 8CC6498 - .incbin "graphics/pokemon/icons/magcargo_icon.4bpp" - - .align 2 -gMonFootprint_Magcargo:: @ 8CC6898 - .incbin "graphics/pokemon/footprints/magcargo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Swinub:: @ 8CC68B8 - .incbin "graphics/pokemon/front_pics/swinub_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Swinub:: @ 8CC6AB4 - .incbin "graphics/pokemon/palettes/swinub_palette.gbapal.lz" - - .align 2 -gMonBackPic_Swinub:: @ 8CC6ADC - .incbin "graphics/pokemon/back_pics/swinub_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Swinub:: @ 8CC6D18 - .incbin "graphics/pokemon/palettes/swinub_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Swinub:: @ 8CC6D40 - .incbin "graphics/pokemon/icons/swinub_icon.4bpp" - - .align 2 -gMonFootprint_Swinub:: @ 8CC7140 - .incbin "graphics/pokemon/footprints/swinub_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Piloswine:: @ 8CC7160 - .incbin "graphics/pokemon/front_pics/piloswine_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Piloswine:: @ 8CC7488 - .incbin "graphics/pokemon/palettes/piloswine_palette.gbapal.lz" - - .align 2 -gMonBackPic_Piloswine:: @ 8CC74B0 - .incbin "graphics/pokemon/back_pics/piloswine_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Piloswine:: @ 8CC76FC - .incbin "graphics/pokemon/palettes/piloswine_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Piloswine:: @ 8CC7724 - .incbin "graphics/pokemon/icons/piloswine_icon.4bpp" - - .align 2 -gMonFootprint_Piloswine:: @ 8CC7B24 - .incbin "graphics/pokemon/footprints/piloswine_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Corsola:: @ 8CC7B44 - .incbin "graphics/pokemon/front_pics/corsola_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Corsola:: @ 8CC7E2C - .incbin "graphics/pokemon/palettes/corsola_palette.gbapal.lz" - - .align 2 -gMonBackPic_Corsola:: @ 8CC7E54 - .incbin "graphics/pokemon/back_pics/corsola_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Corsola:: @ 8CC8114 - .incbin "graphics/pokemon/palettes/corsola_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Corsola:: @ 8CC813C - .incbin "graphics/pokemon/icons/corsola_icon.4bpp" - - .align 2 -gMonFootprint_Corsola:: @ 8CC853C - .incbin "graphics/pokemon/footprints/corsola_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Remoraid:: @ 8CC855C - .incbin "graphics/pokemon/front_pics/remoraid_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Remoraid:: @ 8CC87C4 - .incbin "graphics/pokemon/palettes/remoraid_palette.gbapal.lz" - - .align 2 -gMonBackPic_Remoraid:: @ 8CC87EC - .incbin "graphics/pokemon/back_pics/remoraid_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Remoraid:: @ 8CC8B00 - .incbin "graphics/pokemon/palettes/remoraid_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Remoraid:: @ 8CC8B28 - .incbin "graphics/pokemon/icons/remoraid_icon.4bpp" - - .align 2 -gMonFootprint_Remoraid:: @ 8CC8F28 - .incbin "graphics/pokemon/footprints/remoraid_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Octillery:: @ 8CC8F48 - .incbin "graphics/pokemon/front_pics/octillery_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Octillery:: @ 8CC927C - .incbin "graphics/pokemon/palettes/octillery_palette.gbapal.lz" - - .align 2 -gMonBackPic_Octillery:: @ 8CC92A4 - .incbin "graphics/pokemon/back_pics/octillery_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Octillery:: @ 8CC955C - .incbin "graphics/pokemon/palettes/octillery_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Octillery:: @ 8CC9584 - .incbin "graphics/pokemon/icons/octillery_icon.4bpp" - - .align 2 -gMonFootprint_Octillery:: @ 8CC9984 - .incbin "graphics/pokemon/footprints/octillery_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Delibird:: @ 8CC99A4 - .incbin "graphics/pokemon/front_pics/delibird_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Delibird:: @ 8CC9D14 - .incbin "graphics/pokemon/palettes/delibird_palette.gbapal.lz" - - .align 2 -gMonBackPic_Delibird:: @ 8CC9D3C - .incbin "graphics/pokemon/back_pics/delibird_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Delibird:: @ 8CCA0FC - .incbin "graphics/pokemon/palettes/delibird_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Delibird:: @ 8CCA124 - .incbin "graphics/pokemon/icons/delibird_icon.4bpp" - - .align 2 -gMonFootprint_Delibird:: @ 8CCA524 - .incbin "graphics/pokemon/footprints/delibird_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mantine:: @ 8CCA544 - .incbin "graphics/pokemon/front_pics/mantine_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mantine:: @ 8CCA9E0 - .incbin "graphics/pokemon/palettes/mantine_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mantine:: @ 8CCAA08 - .incbin "graphics/pokemon/back_pics/mantine_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mantine:: @ 8CCACA8 - .incbin "graphics/pokemon/palettes/mantine_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mantine:: @ 8CCACD0 - .incbin "graphics/pokemon/icons/mantine_icon.4bpp" - - .align 2 -gMonFootprint_Mantine:: @ 8CCB0D0 - .incbin "graphics/pokemon/footprints/mantine_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Skarmory:: @ 8CCB0F0 - .incbin "graphics/pokemon/front_pics/skarmory_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Skarmory:: @ 8CCB5D0 - .incbin "graphics/pokemon/palettes/skarmory_palette.gbapal.lz" - - .align 2 -gMonBackPic_Skarmory:: @ 8CCB5F8 - .incbin "graphics/pokemon/back_pics/skarmory_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Skarmory:: @ 8CCB8FC - .incbin "graphics/pokemon/palettes/skarmory_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Skarmory:: @ 8CCB924 - .incbin "graphics/pokemon/icons/skarmory_icon.4bpp" - - .align 2 -gMonFootprint_Skarmory:: @ 8CCBD24 - .incbin "graphics/pokemon/footprints/skarmory_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Houndour:: @ 8CCBD44 - .incbin "graphics/pokemon/front_pics/houndour_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Houndour:: @ 8CCBFFC - .incbin "graphics/pokemon/palettes/houndour_palette.gbapal.lz" - - .align 2 -gMonBackPic_Houndour:: @ 8CCC024 - .incbin "graphics/pokemon/back_pics/houndour_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Houndour:: @ 8CCC2A4 - .incbin "graphics/pokemon/palettes/houndour_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Houndour:: @ 8CCC2CC - .incbin "graphics/pokemon/icons/houndour_icon.4bpp" - - .align 2 -gMonFootprint_Houndour:: @ 8CCC6CC - .incbin "graphics/pokemon/footprints/houndour_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Houndoom:: @ 8CCC6EC - .incbin "graphics/pokemon/front_pics/houndoom_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Houndoom:: @ 8CCCAEC - .incbin "graphics/pokemon/palettes/houndoom_palette.gbapal.lz" - - .align 2 -gMonBackPic_Houndoom:: @ 8CCCB14 - .incbin "graphics/pokemon/back_pics/houndoom_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Houndoom:: @ 8CCCE38 - .incbin "graphics/pokemon/palettes/houndoom_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Houndoom:: @ 8CCCE60 - .incbin "graphics/pokemon/icons/houndoom_icon.4bpp" - - .align 2 -gMonFootprint_Houndoom:: @ 8CCD260 - .incbin "graphics/pokemon/footprints/houndoom_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kingdra:: @ 8CCD280 - .incbin "graphics/pokemon/front_pics/kingdra_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kingdra:: @ 8CCD6A0 - .incbin "graphics/pokemon/palettes/kingdra_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kingdra:: @ 8CCD6C8 - .incbin "graphics/pokemon/back_pics/kingdra_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kingdra:: @ 8CCDA7C - .incbin "graphics/pokemon/palettes/kingdra_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kingdra:: @ 8CCDAA4 - .incbin "graphics/pokemon/icons/kingdra_icon.4bpp" - - .align 2 -gMonFootprint_Kingdra:: @ 8CCDEA4 - .incbin "graphics/pokemon/footprints/kingdra_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Phanpy:: @ 8CCDEC4 - .incbin "graphics/pokemon/front_pics/phanpy_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Phanpy:: @ 8CCE120 - .incbin "graphics/pokemon/palettes/phanpy_palette.gbapal.lz" - - .align 2 -gMonBackPic_Phanpy:: @ 8CCE148 - .incbin "graphics/pokemon/back_pics/phanpy_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Phanpy:: @ 8CCE40C - .incbin "graphics/pokemon/palettes/phanpy_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Phanpy:: @ 8CCE434 - .incbin "graphics/pokemon/icons/phanpy_icon.4bpp" - - .align 2 -gMonFootprint_Phanpy:: @ 8CCE834 - .incbin "graphics/pokemon/footprints/phanpy_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Donphan:: @ 8CCE854 - .incbin "graphics/pokemon/front_pics/donphan_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Donphan:: @ 8CCECC8 - .incbin "graphics/pokemon/palettes/donphan_palette.gbapal.lz" - - .align 2 -gMonBackPic_Donphan:: @ 8CCECF0 - .incbin "graphics/pokemon/back_pics/donphan_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Donphan:: @ 8CCEFEC - .incbin "graphics/pokemon/palettes/donphan_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Donphan:: @ 8CCF014 - .incbin "graphics/pokemon/icons/donphan_icon.4bpp" - - .align 2 -gMonFootprint_Donphan:: @ 8CCF414 - .incbin "graphics/pokemon/footprints/donphan_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Porygon2:: @ 8CCF434 - .incbin "graphics/pokemon/front_pics/porygon2_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Porygon2:: @ 8CCF6BC - .incbin "graphics/pokemon/palettes/porygon2_palette.gbapal.lz" - - .align 2 -gMonBackPic_Porygon2:: @ 8CCF6E4 - .incbin "graphics/pokemon/back_pics/porygon2_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Porygon2:: @ 8CCFA00 - .incbin "graphics/pokemon/palettes/porygon2_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Porygon2:: @ 8CCFA28 - .incbin "graphics/pokemon/icons/porygon2_icon.4bpp" - - .align 2 -gMonFootprint_Porygon2:: @ 8CCFE28 - .incbin "graphics/pokemon/footprints/porygon2_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Stantler:: @ 8CCFE48 - .incbin "graphics/pokemon/front_pics/stantler_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Stantler:: @ 8CD025C - .incbin "graphics/pokemon/palettes/stantler_palette.gbapal.lz" - - .align 2 -gMonBackPic_Stantler:: @ 8CD0284 - .incbin "graphics/pokemon/back_pics/stantler_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Stantler:: @ 8CD05D0 - .incbin "graphics/pokemon/palettes/stantler_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Stantler:: @ 8CD05F8 - .incbin "graphics/pokemon/icons/stantler_icon.4bpp" - - .align 2 -gMonFootprint_Stantler:: @ 8CD09F8 - .incbin "graphics/pokemon/footprints/stantler_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Smeargle:: @ 8CD0A18 - .incbin "graphics/pokemon/front_pics/smeargle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Smeargle:: @ 8CD0DAC - .incbin "graphics/pokemon/palettes/smeargle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Smeargle:: @ 8CD0DD4 - .incbin "graphics/pokemon/back_pics/smeargle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Smeargle:: @ 8CD10F8 - .incbin "graphics/pokemon/palettes/smeargle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Smeargle:: @ 8CD1120 - .incbin "graphics/pokemon/icons/smeargle_icon.4bpp" - - .align 2 -gMonFootprint_Smeargle:: @ 8CD1520 - .incbin "graphics/pokemon/footprints/smeargle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tyrogue:: @ 8CD1540 - .incbin "graphics/pokemon/front_pics/tyrogue_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tyrogue:: @ 8CD17CC - .incbin "graphics/pokemon/palettes/tyrogue_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tyrogue:: @ 8CD17F4 - .incbin "graphics/pokemon/back_pics/tyrogue_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tyrogue:: @ 8CD1B10 - .incbin "graphics/pokemon/palettes/tyrogue_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tyrogue:: @ 8CD1B38 - .incbin "graphics/pokemon/icons/tyrogue_icon.4bpp" - - .align 2 -gMonFootprint_Tyrogue:: @ 8CD1F38 - .incbin "graphics/pokemon/footprints/tyrogue_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hitmontop:: @ 8CD1F58 - .incbin "graphics/pokemon/front_pics/hitmontop_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hitmontop:: @ 8CD22E4 - .incbin "graphics/pokemon/palettes/hitmontop_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hitmontop:: @ 8CD230C - .incbin "graphics/pokemon/back_pics/hitmontop_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hitmontop:: @ 8CD2734 - .incbin "graphics/pokemon/palettes/hitmontop_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hitmontop:: @ 8CD275C - .incbin "graphics/pokemon/icons/hitmontop_icon.4bpp" - - .align 2 -gMonFootprint_Hitmontop:: @ 8CD2B5C - .incbin "graphics/pokemon/footprints/hitmontop_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Smoochum:: @ 8CD2B7C - .incbin "graphics/pokemon/front_pics/smoochum_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Smoochum:: @ 8CD2DD4 - .incbin "graphics/pokemon/palettes/smoochum_palette.gbapal.lz" - - .align 2 -gMonBackPic_Smoochum:: @ 8CD2DFC - .incbin "graphics/pokemon/back_pics/smoochum_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Smoochum:: @ 8CD3074 - .incbin "graphics/pokemon/palettes/smoochum_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Smoochum:: @ 8CD309C - .incbin "graphics/pokemon/icons/smoochum_icon.4bpp" - - .align 2 -gMonFootprint_Smoochum:: @ 8CD349C - .incbin "graphics/pokemon/footprints/smoochum_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Elekid:: @ 8CD34BC - .incbin "graphics/pokemon/front_pics/elekid_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Elekid:: @ 8CD37C4 - .incbin "graphics/pokemon/palettes/elekid_palette.gbapal.lz" - - .align 2 -gMonBackPic_Elekid:: @ 8CD37EC - .incbin "graphics/pokemon/back_pics/elekid_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Elekid:: @ 8CD3B44 - .incbin "graphics/pokemon/palettes/elekid_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Elekid:: @ 8CD3B6C - .incbin "graphics/pokemon/icons/elekid_icon.4bpp" - - .align 2 -gMonFootprint_Elekid:: @ 8CD3F6C - .incbin "graphics/pokemon/footprints/elekid_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Magby:: @ 8CD3F8C - .incbin "graphics/pokemon/front_pics/magby_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Magby:: @ 8CD4210 - .incbin "graphics/pokemon/palettes/magby_palette.gbapal.lz" - - .align 2 -gMonBackPic_Magby:: @ 8CD4238 - .incbin "graphics/pokemon/back_pics/magby_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Magby:: @ 8CD44E4 - .incbin "graphics/pokemon/palettes/magby_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Magby:: @ 8CD450C - .incbin "graphics/pokemon/icons/magby_icon.4bpp" - - .align 2 -gMonFootprint_Magby:: @ 8CD490C - .incbin "graphics/pokemon/footprints/magby_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Miltank:: @ 8CD492C - .incbin "graphics/pokemon/front_pics/miltank_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Miltank:: @ 8CD4CDC - .incbin "graphics/pokemon/palettes/miltank_palette.gbapal.lz" - - .align 2 -gMonBackPic_Miltank:: @ 8CD4D04 - .incbin "graphics/pokemon/back_pics/miltank_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Miltank:: @ 8CD50A0 - .incbin "graphics/pokemon/palettes/miltank_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Miltank:: @ 8CD50C8 - .incbin "graphics/pokemon/icons/miltank_icon.4bpp" - - .align 2 -gMonFootprint_Miltank:: @ 8CD54C8 - .incbin "graphics/pokemon/footprints/miltank_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Blissey:: @ 8CD54E8 - .incbin "graphics/pokemon/front_pics/blissey_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Blissey:: @ 8CD58D0 - .incbin "graphics/pokemon/palettes/blissey_palette.gbapal.lz" - - .align 2 -gMonBackPic_Blissey:: @ 8CD58F8 - .incbin "graphics/pokemon/back_pics/blissey_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Blissey:: @ 8CD5BC4 - .incbin "graphics/pokemon/palettes/blissey_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Blissey:: @ 8CD5BEC - .incbin "graphics/pokemon/icons/blissey_icon.4bpp" - - .align 2 -gMonFootprint_Blissey:: @ 8CD5FEC - .incbin "graphics/pokemon/footprints/blissey_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Raikou:: @ 8CD600C - .incbin "graphics/pokemon/front_pics/raikou_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Raikou:: @ 8CD6588 - .incbin "graphics/pokemon/palettes/raikou_palette.gbapal.lz" - - .align 2 -gMonBackPic_Raikou:: @ 8CD65B0 - .incbin "graphics/pokemon/back_pics/raikou_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Raikou:: @ 8CD6958 - .incbin "graphics/pokemon/palettes/raikou_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Raikou:: @ 8CD6980 - .incbin "graphics/pokemon/icons/raikou_icon.4bpp" - - .align 2 -gMonFootprint_Raikou:: @ 8CD6D80 - .incbin "graphics/pokemon/footprints/raikou_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Entei:: @ 8CD6DA0 - .incbin "graphics/pokemon/front_pics/entei_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Entei:: @ 8CD739C - .incbin "graphics/pokemon/palettes/entei_palette.gbapal.lz" - - .align 2 -gMonBackPic_Entei:: @ 8CD73C4 - .incbin "graphics/pokemon/back_pics/entei_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Entei:: @ 8CD77E8 - .incbin "graphics/pokemon/palettes/entei_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Entei:: @ 8CD7810 - .incbin "graphics/pokemon/icons/entei_icon.4bpp" - - .align 2 -gMonFootprint_Entei:: @ 8CD7C10 - .incbin "graphics/pokemon/footprints/entei_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Suicune:: @ 8CD7C30 - .incbin "graphics/pokemon/front_pics/suicune_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Suicune:: @ 8CD81B4 - .incbin "graphics/pokemon/palettes/suicune_palette.gbapal.lz" - - .align 2 -gMonBackPic_Suicune:: @ 8CD81DC - .incbin "graphics/pokemon/back_pics/suicune_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Suicune:: @ 8CD86B8 - .incbin "graphics/pokemon/palettes/suicune_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Suicune:: @ 8CD86E0 - .incbin "graphics/pokemon/icons/suicune_icon.4bpp" - - .align 2 -gMonFootprint_Suicune:: @ 8CD8AE0 - .incbin "graphics/pokemon/footprints/suicune_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Larvitar:: @ 8CD8B00 - .incbin "graphics/pokemon/front_pics/larvitar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Larvitar:: @ 8CD8D5C - .incbin "graphics/pokemon/palettes/larvitar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Larvitar:: @ 8CD8D84 - .incbin "graphics/pokemon/back_pics/larvitar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Larvitar:: @ 8CD9030 - .incbin "graphics/pokemon/palettes/larvitar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Larvitar:: @ 8CD9058 - .incbin "graphics/pokemon/icons/larvitar_icon.4bpp" - - .align 2 -gMonFootprint_Larvitar:: @ 8CD9458 - .incbin "graphics/pokemon/footprints/larvitar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pupitar:: @ 8CD9478 - .incbin "graphics/pokemon/front_pics/pupitar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pupitar:: @ 8CD9768 - .incbin "graphics/pokemon/palettes/pupitar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pupitar:: @ 8CD9790 - .incbin "graphics/pokemon/back_pics/pupitar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pupitar:: @ 8CD9AC8 - .incbin "graphics/pokemon/palettes/pupitar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pupitar:: @ 8CD9AF0 - .incbin "graphics/pokemon/icons/pupitar_icon.4bpp" - - .align 2 -gMonFootprint_Pupitar:: @ 8CD9EF0 - .incbin "graphics/pokemon/footprints/pupitar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tyranitar:: @ 8CD9F10 - .incbin "graphics/pokemon/front_pics/tyranitar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tyranitar:: @ 8CDA44C - .incbin "graphics/pokemon/palettes/tyranitar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tyranitar:: @ 8CDA474 - .incbin "graphics/pokemon/back_pics/tyranitar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tyranitar:: @ 8CDA860 - .incbin "graphics/pokemon/palettes/tyranitar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tyranitar:: @ 8CDA888 - .incbin "graphics/pokemon/icons/tyranitar_icon.4bpp" - - .align 2 -gMonFootprint_Tyranitar:: @ 8CDAC88 - .incbin "graphics/pokemon/footprints/tyranitar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lugia:: @ 8CDACA8 - .incbin "graphics/pokemon/front_pics/lugia_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lugia:: @ 8CDB16C - .incbin "graphics/pokemon/palettes/lugia_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lugia:: @ 8CDB194 - .incbin "graphics/pokemon/back_pics/lugia_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lugia:: @ 8CDB568 - .incbin "graphics/pokemon/palettes/lugia_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lugia:: @ 8CDB590 - .incbin "graphics/pokemon/icons/lugia_icon.4bpp" - - .align 2 -gMonFootprint_Lugia:: @ 8CDB990 - .incbin "graphics/pokemon/footprints/lugia_footprint.1bpp" - - .align 2 -gMonStillFrontPic_HoOh:: @ 8CDB9B0 - .incbin "graphics/pokemon/front_pics/ho_oh_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_HoOh:: @ 8CDC004 - .incbin "graphics/pokemon/palettes/ho_oh_palette.gbapal.lz" - - .align 2 -gMonBackPic_HoOh:: @ 8CDC02C - .incbin "graphics/pokemon/back_pics/ho_oh_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_HoOh:: @ 8CDC43C - .incbin "graphics/pokemon/palettes/ho_oh_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_HoOh:: @ 8CDC464 - .incbin "graphics/pokemon/icons/ho_oh_icon.4bpp" - - .align 2 -gMonFootprint_HoOh:: @ 8CDC864 - .incbin "graphics/pokemon/footprints/ho_oh_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Celebi:: @ 8CDC884 - .incbin "graphics/pokemon/front_pics/celebi_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Celebi:: @ 8CDCAFC - .incbin "graphics/pokemon/palettes/celebi_palette.gbapal.lz" - - .align 2 -gMonBackPic_Celebi:: @ 8CDCB24 - .incbin "graphics/pokemon/back_pics/celebi_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Celebi:: @ 8CDCED0 - .incbin "graphics/pokemon/palettes/celebi_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Celebi:: @ 8CDCEF8 - .incbin "graphics/pokemon/icons/celebi_icon.4bpp" - - .align 2 -gMonFootprint_Celebi:: @ 8CDD2F8 - .incbin "graphics/pokemon/footprints/celebi_footprint.1bpp" - - .align 2 -gMonStillFrontPic_DoubleQuestionMark:: @ 8CDD318 - .incbin "graphics/pokemon/front_pics/double_question_mark_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_DoubleQuestionMark:: @ 8CDD498 - .incbin "graphics/pokemon/palettes/double_question_mark_palette.gbapal.lz" - - .align 2 -gMonBackPic_DoubleQuestionMark:: @ 8CDD4AC - .incbin "graphics/pokemon/back_pics/double_question_mark_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_DoubleQuestionMark:: @ 8CDD630 - .incbin "graphics/pokemon/palettes/double_question_mark_shiny_palette.gbapal.lz" - - .align 2 -gMonStillFrontPic_Treecko:: @ 8CDD644 - .incbin "graphics/pokemon/front_pics/treecko_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Treecko:: @ 8CDD94C - .incbin "graphics/pokemon/palettes/treecko_palette.gbapal.lz" - - .align 2 -gMonBackPic_Treecko:: @ 8CDD974 - .incbin "graphics/pokemon/back_pics/treecko_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Treecko:: @ 8CDDC74 - .incbin "graphics/pokemon/palettes/treecko_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Treecko:: @ 8CDDC9C - .incbin "graphics/pokemon/icons/treecko_icon.4bpp" - - .align 2 -gMonFootprint_Treecko:: @ 8CDE09C - .incbin "graphics/pokemon/footprints/treecko_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Grovyle:: @ 8CDE0BC - .incbin "graphics/pokemon/front_pics/grovyle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Grovyle:: @ 8CDE548 - .incbin "graphics/pokemon/palettes/grovyle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Grovyle:: @ 8CDE570 - .incbin "graphics/pokemon/back_pics/grovyle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Grovyle:: @ 8CDE8AC - .incbin "graphics/pokemon/palettes/grovyle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Grovyle:: @ 8CDE8D4 - .incbin "graphics/pokemon/icons/grovyle_icon.4bpp" - - .align 2 -gMonFootprint_Grovyle:: @ 8CDECD4 - .incbin "graphics/pokemon/footprints/grovyle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sceptile:: @ 8CDECF4 - .incbin "graphics/pokemon/front_pics/sceptile_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sceptile:: @ 8CDF1F8 - .incbin "graphics/pokemon/palettes/sceptile_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sceptile:: @ 8CDF220 - .incbin "graphics/pokemon/back_pics/sceptile_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sceptile:: @ 8CDF61C - .incbin "graphics/pokemon/palettes/sceptile_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sceptile:: @ 8CDF644 - .incbin "graphics/pokemon/icons/sceptile_icon.4bpp" - - .align 2 -gMonFootprint_Sceptile:: @ 8CDFA44 - .incbin "graphics/pokemon/footprints/sceptile_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Torchic:: @ 8CDFA64 - .incbin "graphics/pokemon/front_pics/torchic_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Torchic:: @ 8CDFD00 - .incbin "graphics/pokemon/palettes/torchic_palette.gbapal.lz" - - .align 2 -gMonBackPic_Torchic:: @ 8CDFD28 - .incbin "graphics/pokemon/back_pics/torchic_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Torchic:: @ 8CE0000 - .incbin "graphics/pokemon/palettes/torchic_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Torchic:: @ 8CE0028 - .incbin "graphics/pokemon/icons/torchic_icon.4bpp" - - .align 2 -gMonFootprint_Torchic:: @ 8CE0428 - .incbin "graphics/pokemon/footprints/torchic_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Combusken:: @ 8CE0448 - .incbin "graphics/pokemon/front_pics/combusken_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Combusken:: @ 8CE0834 - .incbin "graphics/pokemon/palettes/combusken_palette.gbapal.lz" - - .align 2 -gMonBackPic_Combusken:: @ 8CE085C - .incbin "graphics/pokemon/back_pics/combusken_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Combusken:: @ 8CE0C2C - .incbin "graphics/pokemon/palettes/combusken_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Combusken:: @ 8CE0C54 - .incbin "graphics/pokemon/icons/combusken_icon.4bpp" - - .align 2 -gMonFootprint_Combusken:: @ 8CE1054 - .incbin "graphics/pokemon/footprints/combusken_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Blaziken:: @ 8CE1074 - .incbin "graphics/pokemon/front_pics/blaziken_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Blaziken:: @ 8CE17C4 - .incbin "graphics/pokemon/palettes/blaziken_palette.gbapal.lz" - - .align 2 -gMonBackPic_Blaziken:: @ 8CE17EC - .incbin "graphics/pokemon/back_pics/blaziken_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Blaziken:: @ 8CE1BC8 - .incbin "graphics/pokemon/palettes/blaziken_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Blaziken:: @ 8CE1BF0 - .incbin "graphics/pokemon/icons/blaziken_icon.4bpp" - - .align 2 -gMonFootprint_Blaziken:: @ 8CE1FF0 - .incbin "graphics/pokemon/footprints/blaziken_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mudkip:: @ 8CE2010 - .incbin "graphics/pokemon/front_pics/mudkip_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mudkip:: @ 8CE22C8 - .incbin "graphics/pokemon/palettes/mudkip_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mudkip:: @ 8CE22F0 - .incbin "graphics/pokemon/back_pics/mudkip_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mudkip:: @ 8CE25D0 - .incbin "graphics/pokemon/palettes/mudkip_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mudkip:: @ 8CE25F8 - .incbin "graphics/pokemon/icons/mudkip_icon.4bpp" - - .align 2 -gMonFootprint_Mudkip:: @ 8CE29F8 - .incbin "graphics/pokemon/footprints/mudkip_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Marshtomp:: @ 8CE2A18 - .incbin "graphics/pokemon/front_pics/marshtomp_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Marshtomp:: @ 8CE3078 - .incbin "graphics/pokemon/palettes/marshtomp_palette.gbapal.lz" - - .align 2 -gMonBackPic_Marshtomp:: @ 8CE30A0 - .incbin "graphics/pokemon/back_pics/marshtomp_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Marshtomp:: @ 8CE3450 - .incbin "graphics/pokemon/palettes/marshtomp_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Marshtomp:: @ 8CE3478 - .incbin "graphics/pokemon/icons/marshtomp_icon.4bpp" - - .align 2 -gMonFootprint_Marshtomp:: @ 8CE3878 - .incbin "graphics/pokemon/footprints/marshtomp_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Swampert:: @ 8CE3898 - .incbin "graphics/pokemon/front_pics/swampert_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Swampert:: @ 8CE3E14 - .incbin "graphics/pokemon/palettes/swampert_palette.gbapal.lz" - - .align 2 -gMonBackPic_Swampert:: @ 8CE3E3C - .incbin "graphics/pokemon/back_pics/swampert_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Swampert:: @ 8CE41F0 - .incbin "graphics/pokemon/palettes/swampert_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Swampert:: @ 8CE4218 - .incbin "graphics/pokemon/icons/swampert_icon.4bpp" - - .align 2 -gMonFootprint_Swampert:: @ 8CE4618 - .incbin "graphics/pokemon/footprints/swampert_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Poochyena:: @ 8CE4638 - .incbin "graphics/pokemon/front_pics/poochyena_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Poochyena:: @ 8CE4BDC - .incbin "graphics/pokemon/palettes/poochyena_palette.gbapal.lz" - - .align 2 -gMonBackPic_Poochyena:: @ 8CE4C04 - .incbin "graphics/pokemon/back_pics/poochyena_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Poochyena:: @ 8CE4F30 - .incbin "graphics/pokemon/palettes/poochyena_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Poochyena:: @ 8CE4F58 - .incbin "graphics/pokemon/icons/poochyena_icon.4bpp" - - .align 2 -gMonFootprint_Poochyena:: @ 8CE5358 - .incbin "graphics/pokemon/footprints/poochyena_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mightyena:: @ 8CE5378 - .incbin "graphics/pokemon/front_pics/mightyena_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mightyena:: @ 8CE57B0 - .incbin "graphics/pokemon/palettes/mightyena_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mightyena:: @ 8CE57D8 - .incbin "graphics/pokemon/back_pics/mightyena_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mightyena:: @ 8CE5B50 - .incbin "graphics/pokemon/palettes/mightyena_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mightyena:: @ 8CE5B78 - .incbin "graphics/pokemon/icons/mightyena_icon.4bpp" - - .align 2 -gMonFootprint_Mightyena:: @ 8CE5F78 - .incbin "graphics/pokemon/footprints/mightyena_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Zigzagoon:: @ 8CE5F98 - .incbin "graphics/pokemon/front_pics/zigzagoon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Zigzagoon:: @ 8CE6368 - .incbin "graphics/pokemon/palettes/zigzagoon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Zigzagoon:: @ 8CE6390 - .incbin "graphics/pokemon/back_pics/zigzagoon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Zigzagoon:: @ 8CE66D0 - .incbin "graphics/pokemon/palettes/zigzagoon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Zigzagoon:: @ 8CE66F8 - .incbin "graphics/pokemon/icons/zigzagoon_icon.4bpp" - - .align 2 -gMonFootprint_Zigzagoon:: @ 8CE6AF8 - .incbin "graphics/pokemon/footprints/zigzagoon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Linoone:: @ 8CE6B18 - .incbin "graphics/pokemon/front_pics/linoone_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Linoone:: @ 8CE6E88 - .incbin "graphics/pokemon/palettes/linoone_palette.gbapal.lz" - - .align 2 -gMonBackPic_Linoone:: @ 8CE6EB0 - .incbin "graphics/pokemon/back_pics/linoone_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Linoone:: @ 8CE7184 - .incbin "graphics/pokemon/palettes/linoone_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Linoone:: @ 8CE71AC - .incbin "graphics/pokemon/icons/linoone_icon.4bpp" - - .align 2 -gMonFootprint_Linoone:: @ 8CE75AC - .incbin "graphics/pokemon/footprints/linoone_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wurmple:: @ 8CE75CC - .incbin "graphics/pokemon/front_pics/wurmple_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wurmple:: @ 8CE7854 - .incbin "graphics/pokemon/palettes/wurmple_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wurmple:: @ 8CE787C - .incbin "graphics/pokemon/back_pics/wurmple_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wurmple:: @ 8CE7AC8 - .incbin "graphics/pokemon/palettes/wurmple_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wurmple:: @ 8CE7AF0 - .incbin "graphics/pokemon/icons/wurmple_icon.4bpp" - - .align 2 -gMonFootprint_Wurmple:: @ 8CE7EF0 - .incbin "graphics/pokemon/footprints/wurmple_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Silcoon:: @ 8CE7F10 - .incbin "graphics/pokemon/front_pics/silcoon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Silcoon:: @ 8CE8190 - .incbin "graphics/pokemon/palettes/silcoon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Silcoon:: @ 8CE81B8 - .incbin "graphics/pokemon/back_pics/silcoon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Silcoon:: @ 8CE83D4 - .incbin "graphics/pokemon/palettes/silcoon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Silcoon:: @ 8CE83FC - .incbin "graphics/pokemon/icons/silcoon_icon.4bpp" - - .align 2 -gMonFootprint_Silcoon:: @ 8CE87FC - .incbin "graphics/pokemon/footprints/silcoon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Beautifly:: @ 8CE881C - .incbin "graphics/pokemon/front_pics/beautifly_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Beautifly:: @ 8CE8B74 - .incbin "graphics/pokemon/palettes/beautifly_palette.gbapal.lz" - - .align 2 -gMonBackPic_Beautifly:: @ 8CE8B9C - .incbin "graphics/pokemon/back_pics/beautifly_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Beautifly:: @ 8CE8F4C - .incbin "graphics/pokemon/palettes/beautifly_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Beautifly:: @ 8CE8F74 - .incbin "graphics/pokemon/icons/beautifly_icon.4bpp" - - .align 2 -gMonFootprint_Beautifly:: @ 8CE9374 - .incbin "graphics/pokemon/footprints/beautifly_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cascoon:: @ 8CE9394 - .incbin "graphics/pokemon/front_pics/cascoon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cascoon:: @ 8CE9600 - .incbin "graphics/pokemon/palettes/cascoon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cascoon:: @ 8CE9628 - .incbin "graphics/pokemon/back_pics/cascoon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cascoon:: @ 8CE9838 - .incbin "graphics/pokemon/palettes/cascoon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cascoon:: @ 8CE9860 - .incbin "graphics/pokemon/icons/cascoon_icon.4bpp" - - .align 2 -gMonFootprint_Cascoon:: @ 8CE9C60 - .incbin "graphics/pokemon/footprints/cascoon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dustox:: @ 8CE9C80 - .incbin "graphics/pokemon/front_pics/dustox_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dustox:: @ 8CE9FE8 - .incbin "graphics/pokemon/palettes/dustox_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dustox:: @ 8CEA010 - .incbin "graphics/pokemon/back_pics/dustox_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dustox:: @ 8CEA268 - .incbin "graphics/pokemon/palettes/dustox_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dustox:: @ 8CEA290 - .incbin "graphics/pokemon/icons/dustox_icon.4bpp" - - .align 2 -gMonFootprint_Dustox:: @ 8CEA690 - .incbin "graphics/pokemon/footprints/dustox_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lotad:: @ 8CEA6B0 - .incbin "graphics/pokemon/front_pics/lotad_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lotad:: @ 8CEA910 - .incbin "graphics/pokemon/palettes/lotad_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lotad:: @ 8CEA938 - .incbin "graphics/pokemon/back_pics/lotad_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lotad:: @ 8CEAC20 - .incbin "graphics/pokemon/palettes/lotad_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lotad:: @ 8CEAC48 - .incbin "graphics/pokemon/icons/lotad_icon.4bpp" - - .align 2 -gMonFootprint_Lotad:: @ 8CEB048 - .incbin "graphics/pokemon/footprints/lotad_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lombre:: @ 8CEB068 - .incbin "graphics/pokemon/front_pics/lombre_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lombre:: @ 8CEB380 - .incbin "graphics/pokemon/palettes/lombre_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lombre:: @ 8CEB3A8 - .incbin "graphics/pokemon/back_pics/lombre_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lombre:: @ 8CEB6A4 - .incbin "graphics/pokemon/palettes/lombre_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lombre:: @ 8CEB6CC - .incbin "graphics/pokemon/icons/lombre_icon.4bpp" - - .align 2 -gMonFootprint_Lombre:: @ 8CEBACC - .incbin "graphics/pokemon/footprints/lombre_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ludicolo:: @ 8CEBAEC - .incbin "graphics/pokemon/front_pics/ludicolo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ludicolo:: @ 8CEBFD0 - .incbin "graphics/pokemon/palettes/ludicolo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ludicolo:: @ 8CEBFF8 - .incbin "graphics/pokemon/back_pics/ludicolo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ludicolo:: @ 8CEC2F4 - .incbin "graphics/pokemon/palettes/ludicolo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ludicolo:: @ 8CEC31C - .incbin "graphics/pokemon/icons/ludicolo_icon.4bpp" - - .align 2 -gMonFootprint_Ludicolo:: @ 8CEC71C - .incbin "graphics/pokemon/footprints/ludicolo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Seedot:: @ 8CEC73C - .incbin "graphics/pokemon/front_pics/seedot_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Seedot:: @ 8CEC9D0 - .incbin "graphics/pokemon/palettes/seedot_palette.gbapal.lz" - - .align 2 -gMonBackPic_Seedot:: @ 8CEC9F8 - .incbin "graphics/pokemon/back_pics/seedot_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Seedot:: @ 8CECCD8 - .incbin "graphics/pokemon/palettes/seedot_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Seedot:: @ 8CECD00 - .incbin "graphics/pokemon/icons/seedot_icon.4bpp" - - .align 2 -gMonFootprint_Seedot:: @ 8CED100 - .incbin "graphics/pokemon/footprints/seedot_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nuzleaf:: @ 8CED120 - .incbin "graphics/pokemon/front_pics/nuzleaf_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nuzleaf:: @ 8CED40C - .incbin "graphics/pokemon/palettes/nuzleaf_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nuzleaf:: @ 8CED434 - .incbin "graphics/pokemon/back_pics/nuzleaf_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nuzleaf:: @ 8CED6FC - .incbin "graphics/pokemon/palettes/nuzleaf_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nuzleaf:: @ 8CED724 - .incbin "graphics/pokemon/icons/nuzleaf_icon.4bpp" - - .align 2 -gMonFootprint_Nuzleaf:: @ 8CEDB24 - .incbin "graphics/pokemon/footprints/nuzleaf_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shiftry:: @ 8CEDB44 - .incbin "graphics/pokemon/front_pics/shiftry_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shiftry:: @ 8CEE000 - .incbin "graphics/pokemon/palettes/shiftry_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shiftry:: @ 8CEE028 - .incbin "graphics/pokemon/back_pics/shiftry_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shiftry:: @ 8CEE2EC - .incbin "graphics/pokemon/palettes/shiftry_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shiftry:: @ 8CEE314 - .incbin "graphics/pokemon/icons/shiftry_icon.4bpp" - - .align 2 -gMonFootprint_Shiftry:: @ 8CEE714 - .incbin "graphics/pokemon/footprints/shiftry_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nincada:: @ 8CEE734 - .incbin "graphics/pokemon/front_pics/nincada_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nincada:: @ 8CEE9D4 - .incbin "graphics/pokemon/palettes/nincada_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nincada:: @ 8CEE9FC - .incbin "graphics/pokemon/back_pics/nincada_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nincada:: @ 8CEECB4 - .incbin "graphics/pokemon/palettes/nincada_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nincada:: @ 8CEECDC - .incbin "graphics/pokemon/icons/nincada_icon.4bpp" - - .align 2 -gMonFootprint_Nincada:: @ 8CEF0DC - .incbin "graphics/pokemon/footprints/nincada_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ninjask:: @ 8CEF0FC - .incbin "graphics/pokemon/front_pics/ninjask_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ninjask:: @ 8CEF46C - .incbin "graphics/pokemon/palettes/ninjask_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ninjask:: @ 8CEF494 - .incbin "graphics/pokemon/back_pics/ninjask_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ninjask:: @ 8CEF860 - .incbin "graphics/pokemon/palettes/ninjask_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ninjask:: @ 8CEF888 - .incbin "graphics/pokemon/icons/ninjask_icon.4bpp" - - .align 2 -gMonFootprint_Ninjask:: @ 8CEFC88 - .incbin "graphics/pokemon/footprints/ninjask_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shedinja:: @ 8CEFCA8 - .incbin "graphics/pokemon/front_pics/shedinja_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shedinja:: @ 8CEFFC8 - .incbin "graphics/pokemon/palettes/shedinja_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shedinja:: @ 8CEFFF0 - .incbin "graphics/pokemon/back_pics/shedinja_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shedinja:: @ 8CF0390 - .incbin "graphics/pokemon/palettes/shedinja_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shedinja:: @ 8CF03B8 - .incbin "graphics/pokemon/icons/shedinja_icon.4bpp" - - .align 2 -gMonFootprint_Shedinja:: @ 8CF07B8 - .incbin "graphics/pokemon/footprints/shedinja_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Taillow:: @ 8CF07D8 - .incbin "graphics/pokemon/front_pics/taillow_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Taillow:: @ 8CF0A30 - .incbin "graphics/pokemon/palettes/taillow_palette.gbapal.lz" - - .align 2 -gMonBackPic_Taillow:: @ 8CF0A58 - .incbin "graphics/pokemon/back_pics/taillow_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Taillow:: @ 8CF0C78 - .incbin "graphics/pokemon/palettes/taillow_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Taillow:: @ 8CF0CA0 - .incbin "graphics/pokemon/icons/taillow_icon.4bpp" - - .align 2 -gMonFootprint_Taillow:: @ 8CF10A0 - .incbin "graphics/pokemon/footprints/taillow_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Swellow:: @ 8CF10C0 - .incbin "graphics/pokemon/front_pics/swellow_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Swellow:: @ 8CF1484 - .incbin "graphics/pokemon/palettes/swellow_palette.gbapal.lz" - - .align 2 -gMonBackPic_Swellow:: @ 8CF14AC - .incbin "graphics/pokemon/back_pics/swellow_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Swellow:: @ 8CF17E4 - .incbin "graphics/pokemon/palettes/swellow_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Swellow:: @ 8CF180C - .incbin "graphics/pokemon/icons/swellow_icon.4bpp" - - .align 2 -gMonFootprint_Swellow:: @ 8CF1C0C - .incbin "graphics/pokemon/footprints/swellow_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shroomish:: @ 8CF1C2C - .incbin "graphics/pokemon/front_pics/shroomish_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shroomish:: @ 8CF1E94 - .incbin "graphics/pokemon/palettes/shroomish_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shroomish:: @ 8CF1EBC - .incbin "graphics/pokemon/back_pics/shroomish_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shroomish:: @ 8CF219C - .incbin "graphics/pokemon/palettes/shroomish_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shroomish:: @ 8CF21C4 - .incbin "graphics/pokemon/icons/shroomish_icon.4bpp" - - .align 2 -gMonFootprint_Shroomish:: @ 8CF25C4 - .incbin "graphics/pokemon/footprints/shroomish_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Breloom:: @ 8CF25E4 - .incbin "graphics/pokemon/front_pics/breloom_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Breloom:: @ 8CF29CC - .incbin "graphics/pokemon/palettes/breloom_palette.gbapal.lz" - - .align 2 -gMonBackPic_Breloom:: @ 8CF29F4 - .incbin "graphics/pokemon/back_pics/breloom_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Breloom:: @ 8CF2DD4 - .incbin "graphics/pokemon/palettes/breloom_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Breloom:: @ 8CF2DFC - .incbin "graphics/pokemon/icons/breloom_icon.4bpp" - - .align 2 -gMonFootprint_Breloom:: @ 8CF31FC - .incbin "graphics/pokemon/footprints/breloom_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Spinda:: @ 8CF321C - .incbin "graphics/pokemon/front_pics/spinda_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Spinda:: @ 8CF3510 - .incbin "graphics/pokemon/palettes/spinda_palette.gbapal.lz" - - .align 2 -gMonBackPic_Spinda:: @ 8CF3538 - .incbin "graphics/pokemon/back_pics/spinda_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Spinda:: @ 8CF3874 - .incbin "graphics/pokemon/palettes/spinda_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Spinda:: @ 8CF389C - .incbin "graphics/pokemon/icons/spinda_icon.4bpp" - - .align 2 -gMonFootprint_Spinda:: @ 8CF3C9C - .incbin "graphics/pokemon/footprints/spinda_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wingull:: @ 8CF3CBC - .incbin "graphics/pokemon/front_pics/wingull_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wingull:: @ 8CF3EF8 - .incbin "graphics/pokemon/palettes/wingull_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wingull:: @ 8CF3F20 - .incbin "graphics/pokemon/back_pics/wingull_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wingull:: @ 8CF4270 - .incbin "graphics/pokemon/palettes/wingull_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wingull:: @ 8CF4298 - .incbin "graphics/pokemon/icons/wingull_icon.4bpp" - - .align 2 -gMonFootprint_Wingull:: @ 8CF4698 - .incbin "graphics/pokemon/footprints/wingull_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pelipper:: @ 8CF46B8 - .incbin "graphics/pokemon/front_pics/pelipper_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pelipper:: @ 8CF4A50 - .incbin "graphics/pokemon/palettes/pelipper_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pelipper:: @ 8CF4A78 - .incbin "graphics/pokemon/back_pics/pelipper_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pelipper:: @ 8CF4DF8 - .incbin "graphics/pokemon/palettes/pelipper_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pelipper:: @ 8CF4E20 - .incbin "graphics/pokemon/icons/pelipper_icon.4bpp" - - .align 2 -gMonFootprint_Pelipper:: @ 8CF5220 - .incbin "graphics/pokemon/footprints/pelipper_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Surskit:: @ 8CF5240 - .incbin "graphics/pokemon/front_pics/surskit_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Surskit:: @ 8CF544C - .incbin "graphics/pokemon/palettes/surskit_palette.gbapal.lz" - - .align 2 -gMonBackPic_Surskit:: @ 8CF5474 - .incbin "graphics/pokemon/back_pics/surskit_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Surskit:: @ 8CF56AC - .incbin "graphics/pokemon/palettes/surskit_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Surskit:: @ 8CF56D4 - .incbin "graphics/pokemon/icons/surskit_icon.4bpp" - - .align 2 -gMonFootprint_Surskit:: @ 8CF5AD4 - .incbin "graphics/pokemon/footprints/surskit_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Masquerain:: @ 8CF5AF4 - .incbin "graphics/pokemon/front_pics/masquerain_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Masquerain:: @ 8CF5E90 - .incbin "graphics/pokemon/palettes/masquerain_palette.gbapal.lz" - - .align 2 -gMonBackPic_Masquerain:: @ 8CF5EB8 - .incbin "graphics/pokemon/back_pics/masquerain_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Masquerain:: @ 8CF6210 - .incbin "graphics/pokemon/palettes/masquerain_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Masquerain:: @ 8CF6238 - .incbin "graphics/pokemon/icons/masquerain_icon.4bpp" - - .align 2 -gMonFootprint_Masquerain:: @ 8CF6638 - .incbin "graphics/pokemon/footprints/masquerain_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wailmer:: @ 8CF6658 - .incbin "graphics/pokemon/front_pics/wailmer_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wailmer:: @ 8CF6938 - .incbin "graphics/pokemon/palettes/wailmer_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wailmer:: @ 8CF6960 - .incbin "graphics/pokemon/back_pics/wailmer_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wailmer:: @ 8CF6B44 - .incbin "graphics/pokemon/palettes/wailmer_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wailmer:: @ 8CF6B6C - .incbin "graphics/pokemon/icons/wailmer_icon.4bpp" - - .align 2 -gMonFootprint_Wailmer:: @ 8CF6F6C - .incbin "graphics/pokemon/footprints/wailmer_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wailord:: @ 8CF6F8C - .incbin "graphics/pokemon/front_pics/wailord_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wailord:: @ 8CF7350 - .incbin "graphics/pokemon/palettes/wailord_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wailord:: @ 8CF7378 - .incbin "graphics/pokemon/back_pics/wailord_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wailord:: @ 8CF7590 - .incbin "graphics/pokemon/palettes/wailord_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wailord:: @ 8CF75B8 - .incbin "graphics/pokemon/icons/wailord_icon.4bpp" - - .align 2 -gMonFootprint_Wailord:: @ 8CF79B8 - .incbin "graphics/pokemon/footprints/wailord_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Skitty:: @ 8CF79D8 - .incbin "graphics/pokemon/front_pics/skitty_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Skitty:: @ 8CF7CD8 - .incbin "graphics/pokemon/palettes/skitty_palette.gbapal.lz" - - .align 2 -gMonBackPic_Skitty:: @ 8CF7D00 - .incbin "graphics/pokemon/back_pics/skitty_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Skitty:: @ 8CF8048 - .incbin "graphics/pokemon/palettes/skitty_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Skitty:: @ 8CF8070 - .incbin "graphics/pokemon/icons/skitty_icon.4bpp" - - .align 2 -gMonFootprint_Skitty:: @ 8CF8470 - .incbin "graphics/pokemon/footprints/skitty_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Delcatty:: @ 8CF8490 - .incbin "graphics/pokemon/front_pics/delcatty_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Delcatty:: @ 8CF881C - .incbin "graphics/pokemon/palettes/delcatty_palette.gbapal.lz" - - .align 2 -gMonBackPic_Delcatty:: @ 8CF8844 - .incbin "graphics/pokemon/back_pics/delcatty_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Delcatty:: @ 8CF8BE0 - .incbin "graphics/pokemon/palettes/delcatty_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Delcatty:: @ 8CF8C08 - .incbin "graphics/pokemon/icons/delcatty_icon.4bpp" - - .align 2 -gMonFootprint_Delcatty:: @ 8CF9008 - .incbin "graphics/pokemon/footprints/delcatty_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kecleon:: @ 8CF9028 - .incbin "graphics/pokemon/front_pics/kecleon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kecleon:: @ 8CF93A8 - .incbin "graphics/pokemon/palettes/kecleon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kecleon:: @ 8CF93D0 - .incbin "graphics/pokemon/back_pics/kecleon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kecleon:: @ 8CF97A8 - .incbin "graphics/pokemon/palettes/kecleon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kecleon:: @ 8CF97D0 - .incbin "graphics/pokemon/icons/kecleon_icon.4bpp" - - .align 2 -gMonFootprint_Kecleon:: @ 8CF9BD0 - .incbin "graphics/pokemon/footprints/kecleon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Baltoy:: @ 8CF9BF0 - .incbin "graphics/pokemon/front_pics/baltoy_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Baltoy:: @ 8CF9E14 - .incbin "graphics/pokemon/palettes/baltoy_palette.gbapal.lz" - - .align 2 -gMonBackPic_Baltoy:: @ 8CF9E34 - .incbin "graphics/pokemon/back_pics/baltoy_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Baltoy:: @ 8CFA0DC - .incbin "graphics/pokemon/palettes/baltoy_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Baltoy:: @ 8CFA0FC - .incbin "graphics/pokemon/icons/baltoy_icon.4bpp" - - .align 2 -gMonFootprint_Baltoy:: @ 8CFA4FC - .incbin "graphics/pokemon/footprints/baltoy_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Claydol:: @ 8CFA51C - .incbin "graphics/pokemon/front_pics/claydol_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Claydol:: @ 8CFA8D4 - .incbin "graphics/pokemon/palettes/claydol_palette.gbapal.lz" - - .align 2 -gMonBackPic_Claydol:: @ 8CFA8FC - .incbin "graphics/pokemon/back_pics/claydol_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Claydol:: @ 8CFACD0 - .incbin "graphics/pokemon/palettes/claydol_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Claydol:: @ 8CFACF8 - .incbin "graphics/pokemon/icons/claydol_icon.4bpp" - - .align 2 -gMonFootprint_Claydol:: @ 8CFB0F8 - .incbin "graphics/pokemon/footprints/claydol_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nosepass:: @ 8CFB118 - .incbin "graphics/pokemon/front_pics/nosepass_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nosepass:: @ 8CFB3E4 - .incbin "graphics/pokemon/palettes/nosepass_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nosepass:: @ 8CFB40C - .incbin "graphics/pokemon/back_pics/nosepass_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nosepass:: @ 8CFB6AC - .incbin "graphics/pokemon/palettes/nosepass_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nosepass:: @ 8CFB6D4 - .incbin "graphics/pokemon/icons/nosepass_icon.4bpp" - - .align 2 -gMonFootprint_Nosepass:: @ 8CFBAD4 - .incbin "graphics/pokemon/footprints/nosepass_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Torkoal:: @ 8CFBAF4 - .incbin "graphics/pokemon/front_pics/torkoal_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Torkoal:: @ 8CFBFA0 - .incbin "graphics/pokemon/palettes/torkoal_palette.gbapal.lz" - - .align 2 -gMonBackPic_Torkoal:: @ 8CFBFC8 - .incbin "graphics/pokemon/back_pics/torkoal_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Torkoal:: @ 8CFC290 - .incbin "graphics/pokemon/palettes/torkoal_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Torkoal:: @ 8CFC2B8 - .incbin "graphics/pokemon/icons/torkoal_icon.4bpp" - - .align 2 -gMonFootprint_Torkoal:: @ 8CFC6B8 - .incbin "graphics/pokemon/footprints/torkoal_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sableye:: @ 8CFC6D8 - .incbin "graphics/pokemon/front_pics/sableye_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sableye:: @ 8CFC9AC - .incbin "graphics/pokemon/palettes/sableye_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sableye:: @ 8CFC9D4 - .incbin "graphics/pokemon/back_pics/sableye_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sableye:: @ 8CFCCFC - .incbin "graphics/pokemon/palettes/sableye_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sableye:: @ 8CFCD24 - .incbin "graphics/pokemon/icons/sableye_icon.4bpp" - - .align 2 -gMonFootprint_Sableye:: @ 8CFD124 - .incbin "graphics/pokemon/footprints/sableye_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Barboach:: @ 8CFD144 - .incbin "graphics/pokemon/front_pics/barboach_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Barboach:: @ 8CFD3D4 - .incbin "graphics/pokemon/palettes/barboach_palette.gbapal.lz" - - .align 2 -gMonBackPic_Barboach:: @ 8CFD3FC - .incbin "graphics/pokemon/back_pics/barboach_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Barboach:: @ 8CFD68C - .incbin "graphics/pokemon/palettes/barboach_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Barboach:: @ 8CFD6B4 - .incbin "graphics/pokemon/icons/barboach_icon.4bpp" - - .align 2 -gMonFootprint_Barboach:: @ 8CFDAB4 - .incbin "graphics/pokemon/footprints/barboach_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Whiscash:: @ 8CFDAD4 - .incbin "graphics/pokemon/front_pics/whiscash_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Whiscash:: @ 8CFDE4C - .incbin "graphics/pokemon/palettes/whiscash_palette.gbapal.lz" - - .align 2 -gMonBackPic_Whiscash:: @ 8CFDE74 - .incbin "graphics/pokemon/back_pics/whiscash_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Whiscash:: @ 8CFE1C0 - .incbin "graphics/pokemon/palettes/whiscash_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Whiscash:: @ 8CFE1E8 - .incbin "graphics/pokemon/icons/whiscash_icon.4bpp" - - .align 2 -gMonFootprint_Whiscash:: @ 8CFE5E8 - .incbin "graphics/pokemon/footprints/whiscash_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Luvdisc:: @ 8CFE608 - .incbin "graphics/pokemon/front_pics/luvdisc_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Luvdisc:: @ 8CFE7C8 - .incbin "graphics/pokemon/palettes/luvdisc_palette.gbapal.lz" - - .align 2 -gMonBackPic_Luvdisc:: @ 8CFE7EC - .incbin "graphics/pokemon/back_pics/luvdisc_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Luvdisc:: @ 8CFE9C0 - .incbin "graphics/pokemon/palettes/luvdisc_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Luvdisc:: @ 8CFE9E4 - .incbin "graphics/pokemon/icons/luvdisc_icon.4bpp" - - .align 2 -gMonFootprint_Luvdisc:: @ 8CFEDE4 - .incbin "graphics/pokemon/footprints/luvdisc_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Corphish:: @ 8CFEE04 - .incbin "graphics/pokemon/front_pics/corphish_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Corphish:: @ 8CFF160 - .incbin "graphics/pokemon/palettes/corphish_palette.gbapal.lz" - - .align 2 -gMonBackPic_Corphish:: @ 8CFF188 - .incbin "graphics/pokemon/back_pics/corphish_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Corphish:: @ 8CFF4A4 - .incbin "graphics/pokemon/palettes/corphish_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Corphish:: @ 8CFF4CC - .incbin "graphics/pokemon/icons/corphish_icon.4bpp" - - .align 2 -gMonFootprint_Corphish:: @ 8CFF8CC - .incbin "graphics/pokemon/footprints/corphish_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Crawdaunt:: @ 8CFF8EC - .incbin "graphics/pokemon/front_pics/crawdaunt_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Crawdaunt:: @ 8CFFD7C - .incbin "graphics/pokemon/palettes/crawdaunt_palette.gbapal.lz" - - .align 2 -gMonBackPic_Crawdaunt:: @ 8CFFDA4 - .incbin "graphics/pokemon/back_pics/crawdaunt_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Crawdaunt:: @ 8D00188 - .incbin "graphics/pokemon/palettes/crawdaunt_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Crawdaunt:: @ 8D001B0 - .incbin "graphics/pokemon/icons/crawdaunt_icon.4bpp" - - .align 2 -gMonFootprint_Crawdaunt:: @ 8D005B0 - .incbin "graphics/pokemon/footprints/crawdaunt_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Feebas:: @ 8D005D0 - .incbin "graphics/pokemon/front_pics/feebas_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Feebas:: @ 8D0085C - .incbin "graphics/pokemon/palettes/feebas_palette.gbapal.lz" - - .align 2 -gMonBackPic_Feebas:: @ 8D00884 - .incbin "graphics/pokemon/back_pics/feebas_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Feebas:: @ 8D00BBC - .incbin "graphics/pokemon/palettes/feebas_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Feebas:: @ 8D00BE4 - .incbin "graphics/pokemon/icons/feebas_icon.4bpp" - - .align 2 -gMonFootprint_Feebas:: @ 8D00FE4 - .incbin "graphics/pokemon/footprints/feebas_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Milotic:: @ 8D01004 - .incbin "graphics/pokemon/front_pics/milotic_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Milotic:: @ 8D01494 - .incbin "graphics/pokemon/palettes/milotic_palette.gbapal.lz" - - .align 2 -gMonBackPic_Milotic:: @ 8D014BC - .incbin "graphics/pokemon/back_pics/milotic_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Milotic:: @ 8D017B0 - .incbin "graphics/pokemon/palettes/milotic_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Milotic:: @ 8D017D8 - .incbin "graphics/pokemon/icons/milotic_icon.4bpp" - - .align 2 -gMonFootprint_Milotic:: @ 8D01BD8 - .incbin "graphics/pokemon/footprints/milotic_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Carvanha:: @ 8D01BF8 - .incbin "graphics/pokemon/front_pics/carvanha_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Carvanha:: @ 8D01F24 - .incbin "graphics/pokemon/palettes/carvanha_palette.gbapal.lz" - - .align 2 -gMonBackPic_Carvanha:: @ 8D01F4C - .incbin "graphics/pokemon/back_pics/carvanha_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Carvanha:: @ 8D0225C - .incbin "graphics/pokemon/palettes/carvanha_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Carvanha:: @ 8D02284 - .incbin "graphics/pokemon/icons/carvanha_icon.4bpp" - - .align 2 -gMonFootprint_Carvanha:: @ 8D02684 - .incbin "graphics/pokemon/footprints/carvanha_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sharpedo:: @ 8D026A4 - .incbin "graphics/pokemon/front_pics/sharpedo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sharpedo:: @ 8D02A34 - .incbin "graphics/pokemon/palettes/sharpedo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sharpedo:: @ 8D02A5C - .incbin "graphics/pokemon/back_pics/sharpedo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sharpedo:: @ 8D02DB4 - .incbin "graphics/pokemon/palettes/sharpedo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sharpedo:: @ 8D02DDC - .incbin "graphics/pokemon/icons/sharpedo_icon.4bpp" - - .align 2 -gMonFootprint_Sharpedo:: @ 8D031DC - .incbin "graphics/pokemon/footprints/sharpedo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Trapinch:: @ 8D031FC - .incbin "graphics/pokemon/front_pics/trapinch_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Trapinch:: @ 8D03418 - .incbin "graphics/pokemon/palettes/trapinch_palette.gbapal.lz" - - .align 2 -gMonBackPic_Trapinch:: @ 8D03440 - .incbin "graphics/pokemon/back_pics/trapinch_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Trapinch:: @ 8D03660 - .incbin "graphics/pokemon/palettes/trapinch_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Trapinch:: @ 8D03688 - .incbin "graphics/pokemon/icons/trapinch_icon.4bpp" - - .align 2 -gMonFootprint_Trapinch:: @ 8D03A88 - .incbin "graphics/pokemon/footprints/trapinch_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Vibrava:: @ 8D03AA8 - .incbin "graphics/pokemon/front_pics/vibrava_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Vibrava:: @ 8D03E18 - .incbin "graphics/pokemon/palettes/vibrava_palette.gbapal.lz" - - .align 2 -gMonBackPic_Vibrava:: @ 8D03E40 - .incbin "graphics/pokemon/back_pics/vibrava_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Vibrava:: @ 8D040B8 - .incbin "graphics/pokemon/palettes/vibrava_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Vibrava:: @ 8D040E0 - .incbin "graphics/pokemon/icons/vibrava_icon.4bpp" - - .align 2 -gMonFootprint_Vibrava:: @ 8D044E0 - .incbin "graphics/pokemon/footprints/vibrava_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Flygon:: @ 8D04500 - .incbin "graphics/pokemon/front_pics/flygon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Flygon:: @ 8D049F0 - .incbin "graphics/pokemon/palettes/flygon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Flygon:: @ 8D04A18 - .incbin "graphics/pokemon/back_pics/flygon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Flygon:: @ 8D04E54 - .incbin "graphics/pokemon/palettes/flygon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Flygon:: @ 8D04E7C - .incbin "graphics/pokemon/icons/flygon_icon.4bpp" - - .align 2 -gMonFootprint_Flygon:: @ 8D0527C - .incbin "graphics/pokemon/footprints/flygon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Makuhita:: @ 8D0529C - .incbin "graphics/pokemon/front_pics/makuhita_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Makuhita:: @ 8D055B4 - .incbin "graphics/pokemon/palettes/makuhita_palette.gbapal.lz" - - .align 2 -gMonBackPic_Makuhita:: @ 8D055DC - .incbin "graphics/pokemon/back_pics/makuhita_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Makuhita:: @ 8D058CC - .incbin "graphics/pokemon/palettes/makuhita_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Makuhita:: @ 8D058F0 - .incbin "graphics/pokemon/icons/makuhita_icon.4bpp" - - .align 2 -gMonFootprint_Makuhita:: @ 8D05CF0 - .incbin "graphics/pokemon/footprints/makuhita_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hariyama:: @ 8D05D10 - .incbin "graphics/pokemon/front_pics/hariyama_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hariyama:: @ 8D061C0 - .incbin "graphics/pokemon/palettes/hariyama_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hariyama:: @ 8D061E8 - .incbin "graphics/pokemon/back_pics/hariyama_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hariyama:: @ 8D065C8 - .incbin "graphics/pokemon/palettes/hariyama_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hariyama:: @ 8D065F0 - .incbin "graphics/pokemon/icons/hariyama_icon.4bpp" - - .align 2 -gMonFootprint_Hariyama:: @ 8D069F0 - .incbin "graphics/pokemon/footprints/hariyama_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Electrike:: @ 8D06A10 - .incbin "graphics/pokemon/front_pics/electrike_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Electrike:: @ 8D06CA0 - .incbin "graphics/pokemon/palettes/electrike_palette.gbapal.lz" - - .align 2 -gMonBackPic_Electrike:: @ 8D06CC8 - .incbin "graphics/pokemon/back_pics/electrike_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Electrike:: @ 8D06F54 - .incbin "graphics/pokemon/palettes/electrike_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Electrike:: @ 8D06F7C - .incbin "graphics/pokemon/icons/electrike_icon.4bpp" - - .align 2 -gMonFootprint_Electrike:: @ 8D0737C - .incbin "graphics/pokemon/footprints/electrike_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Manectric:: @ 8D0739C - .incbin "graphics/pokemon/front_pics/manectric_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Manectric:: @ 8D076CC - .incbin "graphics/pokemon/palettes/manectric_palette.gbapal.lz" - - .align 2 -gMonBackPic_Manectric:: @ 8D076F4 - .incbin "graphics/pokemon/back_pics/manectric_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Manectric:: @ 8D07920 - .incbin "graphics/pokemon/palettes/manectric_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Manectric:: @ 8D07948 - .incbin "graphics/pokemon/icons/manectric_icon.4bpp" - - .align 2 -gMonFootprint_Manectric:: @ 8D07D48 - .incbin "graphics/pokemon/footprints/manectric_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Numel:: @ 8D07D68 - .incbin "graphics/pokemon/front_pics/numel_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Numel:: @ 8D08038 - .incbin "graphics/pokemon/palettes/numel_palette.gbapal.lz" - - .align 2 -gMonBackPic_Numel:: @ 8D08060 - .incbin "graphics/pokemon/back_pics/numel_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Numel:: @ 8D0831C - .incbin "graphics/pokemon/palettes/numel_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Numel:: @ 8D08344 - .incbin "graphics/pokemon/icons/numel_icon.4bpp" - - .align 2 -gMonFootprint_Numel:: @ 8D08744 - .incbin "graphics/pokemon/footprints/numel_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Camerupt:: @ 8D08764 - .incbin "graphics/pokemon/front_pics/camerupt_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Camerupt:: @ 8D08B7C - .incbin "graphics/pokemon/palettes/camerupt_palette.gbapal.lz" - - .align 2 -gMonBackPic_Camerupt:: @ 8D08BA4 - .incbin "graphics/pokemon/back_pics/camerupt_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Camerupt:: @ 8D08E68 - .incbin "graphics/pokemon/palettes/camerupt_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Camerupt:: @ 8D08E90 - .incbin "graphics/pokemon/icons/camerupt_icon.4bpp" - - .align 2 -gMonFootprint_Camerupt:: @ 8D09290 - .incbin "graphics/pokemon/footprints/camerupt_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Spheal:: @ 8D092B0 - .incbin "graphics/pokemon/front_pics/spheal_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Spheal:: @ 8D09524 - .incbin "graphics/pokemon/palettes/spheal_palette.gbapal.lz" - - .align 2 -gMonBackPic_Spheal:: @ 8D0954C - .incbin "graphics/pokemon/back_pics/spheal_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Spheal:: @ 8D09748 - .incbin "graphics/pokemon/palettes/spheal_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Spheal:: @ 8D09770 - .incbin "graphics/pokemon/icons/spheal_icon.4bpp" - - .align 2 -gMonFootprint_Spheal:: @ 8D09B70 - .incbin "graphics/pokemon/footprints/spheal_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sealeo:: @ 8D09B90 - .incbin "graphics/pokemon/front_pics/sealeo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sealeo:: @ 8D09F10 - .incbin "graphics/pokemon/palettes/sealeo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sealeo:: @ 8D09F38 - .incbin "graphics/pokemon/back_pics/sealeo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sealeo:: @ 8D0A1B4 - .incbin "graphics/pokemon/palettes/sealeo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sealeo:: @ 8D0A1DC - .incbin "graphics/pokemon/icons/sealeo_icon.4bpp" - - .align 2 -gMonFootprint_Sealeo:: @ 8D0A5DC - .incbin "graphics/pokemon/footprints/sealeo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Walrein:: @ 8D0A5FC - .incbin "graphics/pokemon/front_pics/walrein_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Walrein:: @ 8D0AD70 - .incbin "graphics/pokemon/palettes/walrein_palette.gbapal.lz" - - .align 2 -gMonBackPic_Walrein:: @ 8D0AD98 - .incbin "graphics/pokemon/back_pics/walrein_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Walrein:: @ 8D0B120 - .incbin "graphics/pokemon/palettes/walrein_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Walrein:: @ 8D0B148 - .incbin "graphics/pokemon/icons/walrein_icon.4bpp" - - .align 2 -gMonFootprint_Walrein:: @ 8D0B548 - .incbin "graphics/pokemon/footprints/walrein_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cacnea:: @ 8D0B568 - .incbin "graphics/pokemon/front_pics/cacnea_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cacnea:: @ 8D0B878 - .incbin "graphics/pokemon/palettes/cacnea_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cacnea:: @ 8D0B8A0 - .incbin "graphics/pokemon/back_pics/cacnea_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cacnea:: @ 8D0BC00 - .incbin "graphics/pokemon/palettes/cacnea_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cacnea:: @ 8D0BC28 - .incbin "graphics/pokemon/icons/cacnea_icon.4bpp" - - .align 2 -gMonFootprint_Cacnea:: @ 8D0C028 - .incbin "graphics/pokemon/footprints/cacnea_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cacturne:: @ 8D0C048 - .incbin "graphics/pokemon/front_pics/cacturne_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cacturne:: @ 8D0C480 - .incbin "graphics/pokemon/palettes/cacturne_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cacturne:: @ 8D0C4A8 - .incbin "graphics/pokemon/back_pics/cacturne_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cacturne:: @ 8D0C7A8 - .incbin "graphics/pokemon/palettes/cacturne_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cacturne:: @ 8D0C7D0 - .incbin "graphics/pokemon/icons/cacturne_icon.4bpp" - - .align 2 -gMonFootprint_Cacturne:: @ 8D0CBD0 - .incbin "graphics/pokemon/footprints/cacturne_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Snorunt:: @ 8D0CBF0 - .incbin "graphics/pokemon/front_pics/snorunt_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Snorunt:: @ 8D0CEB4 - .incbin "graphics/pokemon/palettes/snorunt_palette.gbapal.lz" - - .align 2 -gMonBackPic_Snorunt:: @ 8D0CEDC - .incbin "graphics/pokemon/back_pics/snorunt_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Snorunt:: @ 8D0D1C0 - .incbin "graphics/pokemon/palettes/snorunt_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Snorunt:: @ 8D0D1E8 - .incbin "graphics/pokemon/icons/snorunt_icon.4bpp" - - .align 2 -gMonFootprint_Snorunt:: @ 8D0D5E8 - .incbin "graphics/pokemon/footprints/snorunt_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Glalie:: @ 8D0D608 - .incbin "graphics/pokemon/front_pics/glalie_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Glalie:: @ 8D0D9D0 - .incbin "graphics/pokemon/palettes/glalie_palette.gbapal.lz" - - .align 2 -gMonBackPic_Glalie:: @ 8D0D9F8 - .incbin "graphics/pokemon/back_pics/glalie_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Glalie:: @ 8D0DDA8 - .incbin "graphics/pokemon/palettes/glalie_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Glalie:: @ 8D0DDD0 - .incbin "graphics/pokemon/icons/glalie_icon.4bpp" - - .align 2 -gMonFootprint_Glalie:: @ 8D0E1D0 - .incbin "graphics/pokemon/footprints/glalie_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lunatone:: @ 8D0E1F0 - .incbin "graphics/pokemon/front_pics/lunatone_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lunatone:: @ 8D0E518 - .incbin "graphics/pokemon/palettes/lunatone_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lunatone:: @ 8D0E540 - .incbin "graphics/pokemon/back_pics/lunatone_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lunatone:: @ 8D0E898 - .incbin "graphics/pokemon/palettes/lunatone_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lunatone:: @ 8D0E8C0 - .incbin "graphics/pokemon/icons/lunatone_icon.4bpp" - - .align 2 -gMonFootprint_Lunatone:: @ 8D0ECC0 - .incbin "graphics/pokemon/footprints/lunatone_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Solrock:: @ 8D0ECE0 - .incbin "graphics/pokemon/front_pics/solrock_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Solrock:: @ 8D0F12C - .incbin "graphics/pokemon/palettes/solrock_palette.gbapal.lz" - - .align 2 -gMonBackPic_Solrock:: @ 8D0F154 - .incbin "graphics/pokemon/back_pics/solrock_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Solrock:: @ 8D0F540 - .incbin "graphics/pokemon/palettes/solrock_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Solrock:: @ 8D0F568 - .incbin "graphics/pokemon/icons/solrock_icon.4bpp" - - .align 2 -gMonFootprint_Solrock:: @ 8D0F968 - .incbin "graphics/pokemon/footprints/solrock_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Azurill:: @ 8D0F988 - .incbin "graphics/pokemon/front_pics/azurill_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Azurill:: @ 8D0FC50 - .incbin "graphics/pokemon/palettes/azurill_palette.gbapal.lz" - - .align 2 -gMonBackPic_Azurill:: @ 8D0FC78 - .incbin "graphics/pokemon/back_pics/azurill_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Azurill:: @ 8D0FF90 - .incbin "graphics/pokemon/palettes/azurill_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Azurill:: @ 8D0FFB8 - .incbin "graphics/pokemon/icons/azurill_icon.4bpp" - - .align 2 -gMonFootprint_Azurill:: @ 8D103B8 - .incbin "graphics/pokemon/footprints/azurill_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Spoink:: @ 8D103D8 - .incbin "graphics/pokemon/front_pics/spoink_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Spoink:: @ 8D10644 - .incbin "graphics/pokemon/palettes/spoink_palette.gbapal.lz" - - .align 2 -gMonBackPic_Spoink:: @ 8D1066C - .incbin "graphics/pokemon/back_pics/spoink_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Spoink:: @ 8D108AC - .incbin "graphics/pokemon/palettes/spoink_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Spoink:: @ 8D108D4 - .incbin "graphics/pokemon/icons/spoink_icon.4bpp" - - .align 2 -gMonFootprint_Spoink:: @ 8D10CD4 - .incbin "graphics/pokemon/footprints/spoink_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Grumpig:: @ 8D10CF4 - .incbin "graphics/pokemon/front_pics/grumpig_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Grumpig:: @ 8D110B0 - .incbin "graphics/pokemon/palettes/grumpig_palette.gbapal.lz" - - .align 2 -gMonBackPic_Grumpig:: @ 8D110D8 - .incbin "graphics/pokemon/back_pics/grumpig_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Grumpig:: @ 8D11438 - .incbin "graphics/pokemon/palettes/grumpig_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Grumpig:: @ 8D11460 - .incbin "graphics/pokemon/icons/grumpig_icon.4bpp" - - .align 2 -gMonFootprint_Grumpig:: @ 8D11860 - .incbin "graphics/pokemon/footprints/grumpig_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Plusle:: @ 8D11880 - .incbin "graphics/pokemon/front_pics/plusle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Plusle:: @ 8D11B0C - .incbin "graphics/pokemon/palettes/plusle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Plusle:: @ 8D11B34 - .incbin "graphics/pokemon/back_pics/plusle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Plusle:: @ 8D11DEC - .incbin "graphics/pokemon/palettes/plusle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Plusle:: @ 8D11E14 - .incbin "graphics/pokemon/icons/plusle_icon.4bpp" - - .align 2 -gMonFootprint_Plusle:: @ 8D12214 - .incbin "graphics/pokemon/footprints/plusle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Minun:: @ 8D12234 - .incbin "graphics/pokemon/front_pics/minun_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Minun:: @ 8D1249C - .incbin "graphics/pokemon/palettes/minun_palette.gbapal.lz" - - .align 2 -gMonBackPic_Minun:: @ 8D124C4 - .incbin "graphics/pokemon/back_pics/minun_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Minun:: @ 8D1278C - .incbin "graphics/pokemon/palettes/minun_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Minun:: @ 8D127B4 - .incbin "graphics/pokemon/icons/minun_icon.4bpp" - - .align 2 -gMonFootprint_Minun:: @ 8D12BB4 - .incbin "graphics/pokemon/footprints/minun_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mawile:: @ 8D12BD4 - .incbin "graphics/pokemon/front_pics/mawile_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mawile:: @ 8D12F90 - .incbin "graphics/pokemon/palettes/mawile_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mawile:: @ 8D12FB8 - .incbin "graphics/pokemon/back_pics/mawile_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mawile:: @ 8D133B8 - .incbin "graphics/pokemon/palettes/mawile_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mawile:: @ 8D133E0 - .incbin "graphics/pokemon/icons/mawile_icon.4bpp" - - .align 2 -gMonFootprint_Mawile:: @ 8D137E0 - .incbin "graphics/pokemon/footprints/mawile_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Meditite:: @ 8D13800 - .incbin "graphics/pokemon/front_pics/meditite_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Meditite:: @ 8D13AB8 - .incbin "graphics/pokemon/palettes/meditite_palette.gbapal.lz" - - .align 2 -gMonBackPic_Meditite:: @ 8D13AE0 - .incbin "graphics/pokemon/back_pics/meditite_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Meditite:: @ 8D13DA8 - .incbin "graphics/pokemon/palettes/meditite_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Meditite:: @ 8D13DCC - .incbin "graphics/pokemon/icons/meditite_icon.4bpp" - - .align 2 -gMonFootprint_Meditite:: @ 8D141CC - .incbin "graphics/pokemon/footprints/meditite_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Medicham:: @ 8D141EC - .incbin "graphics/pokemon/front_pics/medicham_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Medicham:: @ 8D1451C - .incbin "graphics/pokemon/palettes/medicham_palette.gbapal.lz" - - .align 2 -gMonBackPic_Medicham:: @ 8D14544 - .incbin "graphics/pokemon/back_pics/medicham_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Medicham:: @ 8D1487C - .incbin "graphics/pokemon/palettes/medicham_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Medicham:: @ 8D148A4 - .incbin "graphics/pokemon/icons/medicham_icon.4bpp" - - .align 2 -gMonFootprint_Medicham:: @ 8D14CA4 - .incbin "graphics/pokemon/footprints/medicham_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Swablu:: @ 8D14CC4 - .incbin "graphics/pokemon/front_pics/swablu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Swablu:: @ 8D15274 - .incbin "graphics/pokemon/palettes/swablu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Swablu:: @ 8D1529C - .incbin "graphics/pokemon/back_pics/swablu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Swablu:: @ 8D15654 - .incbin "graphics/pokemon/palettes/swablu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Swablu:: @ 8D1567C - .incbin "graphics/pokemon/icons/swablu_icon.4bpp" - - .align 2 -gMonFootprint_Swablu:: @ 8D15A7C - .incbin "graphics/pokemon/footprints/swablu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Altaria:: @ 8D15A9C - .incbin "graphics/pokemon/front_pics/altaria_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Altaria:: @ 8D15E78 - .incbin "graphics/pokemon/palettes/altaria_palette.gbapal.lz" - - .align 2 -gMonBackPic_Altaria:: @ 8D15EA0 - .incbin "graphics/pokemon/back_pics/altaria_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Altaria:: @ 8D16218 - .incbin "graphics/pokemon/palettes/altaria_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Altaria:: @ 8D16240 - .incbin "graphics/pokemon/icons/altaria_icon.4bpp" - - .align 2 -gMonFootprint_Altaria:: @ 8D16640 - .incbin "graphics/pokemon/footprints/altaria_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wynaut:: @ 8D16660 - .incbin "graphics/pokemon/front_pics/wynaut_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wynaut:: @ 8D168F8 - .incbin "graphics/pokemon/palettes/wynaut_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wynaut:: @ 8D16920 - .incbin "graphics/pokemon/back_pics/wynaut_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wynaut:: @ 8D16BB0 - .incbin "graphics/pokemon/palettes/wynaut_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wynaut:: @ 8D16BD8 - .incbin "graphics/pokemon/icons/wynaut_icon.4bpp" - - .align 2 -gMonFootprint_Wynaut:: @ 8D16FD8 - .incbin "graphics/pokemon/footprints/wynaut_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Duskull:: @ 8D16FF8 - .incbin "graphics/pokemon/front_pics/duskull_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Duskull:: @ 8D172E8 - .incbin "graphics/pokemon/palettes/duskull_palette.gbapal.lz" - - .align 2 -gMonBackPic_Duskull:: @ 8D17310 - .incbin "graphics/pokemon/back_pics/duskull_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Duskull:: @ 8D175C0 - .incbin "graphics/pokemon/palettes/duskull_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Duskull:: @ 8D175E8 - .incbin "graphics/pokemon/icons/duskull_icon.4bpp" - - .align 2 -gMonFootprint_Duskull:: @ 8D179E8 - .incbin "graphics/pokemon/footprints/duskull_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dusclops:: @ 8D17A08 - .incbin "graphics/pokemon/front_pics/dusclops_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dusclops:: @ 8D17DA8 - .incbin "graphics/pokemon/palettes/dusclops_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dusclops:: @ 8D17DD0 - .incbin "graphics/pokemon/back_pics/dusclops_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dusclops:: @ 8D180BC - .incbin "graphics/pokemon/palettes/dusclops_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dusclops:: @ 8D180E4 - .incbin "graphics/pokemon/icons/dusclops_icon.4bpp" - - .align 2 -gMonFootprint_Dusclops:: @ 8D184E4 - .incbin "graphics/pokemon/footprints/dusclops_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Roselia:: @ 8D18504 - .incbin "graphics/pokemon/front_pics/roselia_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Roselia:: @ 8D18870 - .incbin "graphics/pokemon/palettes/roselia_palette.gbapal.lz" - - .align 2 -gMonBackPic_Roselia:: @ 8D18898 - .incbin "graphics/pokemon/back_pics/roselia_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Roselia:: @ 8D18C60 - .incbin "graphics/pokemon/palettes/roselia_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Roselia:: @ 8D18C88 - .incbin "graphics/pokemon/icons/roselia_icon.4bpp" - - .align 2 -gMonFootprint_Roselia:: @ 8D19088 - .incbin "graphics/pokemon/footprints/roselia_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Slakoth:: @ 8D190A8 - .incbin "graphics/pokemon/front_pics/slakoth_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Slakoth:: @ 8D19390 - .incbin "graphics/pokemon/palettes/slakoth_palette.gbapal.lz" - - .align 2 -gMonBackPic_Slakoth:: @ 8D193B8 - .incbin "graphics/pokemon/back_pics/slakoth_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Slakoth:: @ 8D196A0 - .incbin "graphics/pokemon/palettes/slakoth_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Slakoth:: @ 8D196C8 - .incbin "graphics/pokemon/icons/slakoth_icon.4bpp" - - .align 2 -gMonFootprint_Slakoth:: @ 8D19AC8 - .incbin "graphics/pokemon/footprints/slakoth_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Vigoroth:: @ 8D19AE8 - .incbin "graphics/pokemon/front_pics/vigoroth_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Vigoroth:: @ 8D19EE4 - .incbin "graphics/pokemon/palettes/vigoroth_palette.gbapal.lz" - - .align 2 -gMonBackPic_Vigoroth:: @ 8D19F0C - .incbin "graphics/pokemon/back_pics/vigoroth_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Vigoroth:: @ 8D1A1D4 - .incbin "graphics/pokemon/palettes/vigoroth_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Vigoroth:: @ 8D1A1FC - .incbin "graphics/pokemon/icons/vigoroth_icon.4bpp" - - .align 2 -gMonFootprint_Vigoroth:: @ 8D1A5FC - .incbin "graphics/pokemon/footprints/vigoroth_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Slaking:: @ 8D1A61C - .incbin "graphics/pokemon/front_pics/slaking_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Slaking:: @ 8D1AAF0 - .incbin "graphics/pokemon/palettes/slaking_palette.gbapal.lz" - - .align 2 -gMonBackPic_Slaking:: @ 8D1AB18 - .incbin "graphics/pokemon/back_pics/slaking_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Slaking:: @ 8D1AEDC - .incbin "graphics/pokemon/palettes/slaking_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Slaking:: @ 8D1AF04 - .incbin "graphics/pokemon/icons/slaking_icon.4bpp" - - .align 2 -gMonFootprint_Slaking:: @ 8D1B304 - .incbin "graphics/pokemon/footprints/slaking_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gulpin:: @ 8D1B324 - .incbin "graphics/pokemon/front_pics/gulpin_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gulpin:: @ 8D1B53C - .incbin "graphics/pokemon/palettes/gulpin_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gulpin:: @ 8D1B564 - .incbin "graphics/pokemon/back_pics/gulpin_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gulpin:: @ 8D1B7E8 - .incbin "graphics/pokemon/palettes/gulpin_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gulpin:: @ 8D1B810 - .incbin "graphics/pokemon/icons/gulpin_icon.4bpp" - - .align 2 -gMonFootprint_Gulpin:: @ 8D1BC10 - .incbin "graphics/pokemon/footprints/gulpin_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Swalot:: @ 8D1BC30 - .incbin "graphics/pokemon/front_pics/swalot_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Swalot:: @ 8D1BF74 - .incbin "graphics/pokemon/palettes/swalot_palette.gbapal.lz" - - .align 2 -gMonBackPic_Swalot:: @ 8D1BF9C - .incbin "graphics/pokemon/back_pics/swalot_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Swalot:: @ 8D1C2E4 - .incbin "graphics/pokemon/palettes/swalot_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Swalot:: @ 8D1C30C - .incbin "graphics/pokemon/icons/swalot_icon.4bpp" - - .align 2 -gMonFootprint_Swalot:: @ 8D1C70C - .incbin "graphics/pokemon/footprints/swalot_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tropius:: @ 8D1C72C - .incbin "graphics/pokemon/front_pics/tropius_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tropius:: @ 8D1CCA4 - .incbin "graphics/pokemon/palettes/tropius_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tropius:: @ 8D1CCCC - .incbin "graphics/pokemon/back_pics/tropius_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tropius:: @ 8D1CFF0 - .incbin "graphics/pokemon/palettes/tropius_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tropius:: @ 8D1D018 - .incbin "graphics/pokemon/icons/tropius_icon.4bpp" - - .align 2 -gMonFootprint_Tropius:: @ 8D1D418 - .incbin "graphics/pokemon/footprints/tropius_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Whismur:: @ 8D1D438 - .incbin "graphics/pokemon/front_pics/whismur_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Whismur:: @ 8D1D6CC - .incbin "graphics/pokemon/palettes/whismur_palette.gbapal.lz" - - .align 2 -gMonBackPic_Whismur:: @ 8D1D6F4 - .incbin "graphics/pokemon/back_pics/whismur_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Whismur:: @ 8D1D964 - .incbin "graphics/pokemon/palettes/whismur_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Whismur:: @ 8D1D98C - .incbin "graphics/pokemon/icons/whismur_icon.4bpp" - - .align 2 -gMonFootprint_Whismur:: @ 8D1DD8C - .incbin "graphics/pokemon/footprints/whismur_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Loudred:: @ 8D1DDAC - .incbin "graphics/pokemon/front_pics/loudred_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Loudred:: @ 8D1E224 - .incbin "graphics/pokemon/palettes/loudred_palette.gbapal.lz" - - .align 2 -gMonBackPic_Loudred:: @ 8D1E24C - .incbin "graphics/pokemon/back_pics/loudred_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Loudred:: @ 8D1E5BC - .incbin "graphics/pokemon/palettes/loudred_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Loudred:: @ 8D1E5E4 - .incbin "graphics/pokemon/icons/loudred_icon.4bpp" - - .align 2 -gMonFootprint_Loudred:: @ 8D1E9E4 - .incbin "graphics/pokemon/footprints/loudred_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Exploud:: @ 8D1EA04 - .incbin "graphics/pokemon/front_pics/exploud_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Exploud:: @ 8D1EF6C - .incbin "graphics/pokemon/palettes/exploud_palette.gbapal.lz" - - .align 2 -gMonBackPic_Exploud:: @ 8D1EF94 - .incbin "graphics/pokemon/back_pics/exploud_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Exploud:: @ 8D1F3A0 - .incbin "graphics/pokemon/palettes/exploud_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Exploud:: @ 8D1F3C8 - .incbin "graphics/pokemon/icons/exploud_icon.4bpp" - - .align 2 -gMonFootprint_Exploud:: @ 8D1F7C8 - .incbin "graphics/pokemon/footprints/exploud_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Clamperl:: @ 8D1F7E8 - .incbin "graphics/pokemon/front_pics/clamperl_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Clamperl:: @ 8D1FAC0 - .incbin "graphics/pokemon/palettes/clamperl_palette.gbapal.lz" - - .align 2 -gMonBackPic_Clamperl:: @ 8D1FAE8 - .incbin "graphics/pokemon/back_pics/clamperl_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Clamperl:: @ 8D1FD7C - .incbin "graphics/pokemon/palettes/clamperl_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Clamperl:: @ 8D1FDA4 - .incbin "graphics/pokemon/icons/clamperl_icon.4bpp" - - .align 2 -gMonFootprint_Clamperl:: @ 8D201A4 - .incbin "graphics/pokemon/footprints/clamperl_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Huntail:: @ 8D201C4 - .incbin "graphics/pokemon/front_pics/huntail_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Huntail:: @ 8D20590 - .incbin "graphics/pokemon/palettes/huntail_palette.gbapal.lz" - - .align 2 -gMonBackPic_Huntail:: @ 8D205B8 - .incbin "graphics/pokemon/back_pics/huntail_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Huntail:: @ 8D2090C - .incbin "graphics/pokemon/palettes/huntail_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Huntail:: @ 8D20934 - .incbin "graphics/pokemon/icons/huntail_icon.4bpp" - - .align 2 -gMonFootprint_Huntail:: @ 8D20D34 - .incbin "graphics/pokemon/footprints/huntail_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gorebyss:: @ 8D20D54 - .incbin "graphics/pokemon/front_pics/gorebyss_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gorebyss:: @ 8D21064 - .incbin "graphics/pokemon/palettes/gorebyss_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gorebyss:: @ 8D2108C - .incbin "graphics/pokemon/back_pics/gorebyss_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gorebyss:: @ 8D21374 - .incbin "graphics/pokemon/palettes/gorebyss_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gorebyss:: @ 8D2139C - .incbin "graphics/pokemon/icons/gorebyss_icon.4bpp" - - .align 2 -gMonFootprint_Gorebyss:: @ 8D2179C - .incbin "graphics/pokemon/footprints/gorebyss_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Absol:: @ 8D217BC - .incbin "graphics/pokemon/front_pics/absol_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Absol:: @ 8D21BEC - .incbin "graphics/pokemon/palettes/absol_palette.gbapal.lz" - - .align 2 -gMonBackPic_Absol:: @ 8D21C14 - .incbin "graphics/pokemon/back_pics/absol_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Absol:: @ 8D21F74 - .incbin "graphics/pokemon/palettes/absol_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Absol:: @ 8D21F9C - .incbin "graphics/pokemon/icons/absol_icon.4bpp" - - .align 2 -gMonFootprint_Absol:: @ 8D2239C - .incbin "graphics/pokemon/footprints/absol_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shuppet:: @ 8D223BC - .incbin "graphics/pokemon/front_pics/shuppet_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shuppet:: @ 8D225F4 - .incbin "graphics/pokemon/palettes/shuppet_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shuppet:: @ 8D2261C - .incbin "graphics/pokemon/back_pics/shuppet_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shuppet:: @ 8D228B4 - .incbin "graphics/pokemon/palettes/shuppet_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shuppet:: @ 8D228DC - .incbin "graphics/pokemon/icons/shuppet_icon.4bpp" - - .align 2 -gMonFootprint_Shuppet:: @ 8D22CDC - .incbin "graphics/pokemon/footprints/shuppet_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Banette:: @ 8D22CFC - .incbin "graphics/pokemon/front_pics/banette_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Banette:: @ 8D22FB0 - .incbin "graphics/pokemon/palettes/banette_palette.gbapal.lz" - - .align 2 -gMonBackPic_Banette:: @ 8D22FD8 - .incbin "graphics/pokemon/back_pics/banette_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Banette:: @ 8D23254 - .incbin "graphics/pokemon/palettes/banette_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Banette:: @ 8D2327C - .incbin "graphics/pokemon/icons/banette_icon.4bpp" - - .align 2 -gMonFootprint_Banette:: @ 8D2367C - .incbin "graphics/pokemon/footprints/banette_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Seviper:: @ 8D2369C - .incbin "graphics/pokemon/front_pics/seviper_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Seviper:: @ 8D23ABC - .incbin "graphics/pokemon/palettes/seviper_palette.gbapal.lz" - - .align 2 -gMonBackPic_Seviper:: @ 8D23AE4 - .incbin "graphics/pokemon/back_pics/seviper_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Seviper:: @ 8D23F70 - .incbin "graphics/pokemon/palettes/seviper_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Seviper:: @ 8D23F98 - .incbin "graphics/pokemon/icons/seviper_icon.4bpp" - - .align 2 -gMonFootprint_Seviper:: @ 8D24398 - .incbin "graphics/pokemon/footprints/seviper_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Zangoose:: @ 8D243B8 - .incbin "graphics/pokemon/front_pics/zangoose_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Zangoose:: @ 8D24784 - .incbin "graphics/pokemon/palettes/zangoose_palette.gbapal.lz" - - .align 2 -gMonBackPic_Zangoose:: @ 8D247AC - .incbin "graphics/pokemon/back_pics/zangoose_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Zangoose:: @ 8D24B20 - .incbin "graphics/pokemon/palettes/zangoose_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Zangoose:: @ 8D24B48 - .incbin "graphics/pokemon/icons/zangoose_icon.4bpp" - - .align 2 -gMonFootprint_Zangoose:: @ 8D24F48 - .incbin "graphics/pokemon/footprints/zangoose_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Relicanth:: @ 8D24F68 - .incbin "graphics/pokemon/front_pics/relicanth_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Relicanth:: @ 8D252FC - .incbin "graphics/pokemon/palettes/relicanth_palette.gbapal.lz" - - .align 2 -gMonBackPic_Relicanth:: @ 8D25324 - .incbin "graphics/pokemon/back_pics/relicanth_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Relicanth:: @ 8D2567C - .incbin "graphics/pokemon/palettes/relicanth_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Relicanth:: @ 8D256A4 - .incbin "graphics/pokemon/icons/relicanth_icon.4bpp" - - .align 2 -gMonFootprint_Relicanth:: @ 8D25AA4 - .incbin "graphics/pokemon/footprints/relicanth_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Aron:: @ 8D25AC4 - .incbin "graphics/pokemon/front_pics/aron_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Aron:: @ 8D25CAC - .incbin "graphics/pokemon/palettes/aron_palette.gbapal.lz" - - .align 2 -gMonBackPic_Aron:: @ 8D25CD4 - .incbin "graphics/pokemon/back_pics/aron_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Aron:: @ 8D25EFC - .incbin "graphics/pokemon/palettes/aron_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Aron:: @ 8D25F24 - .incbin "graphics/pokemon/icons/aron_icon.4bpp" - - .align 2 -gMonFootprint_Aron:: @ 8D26324 - .incbin "graphics/pokemon/footprints/aron_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lairon:: @ 8D26344 - .incbin "graphics/pokemon/front_pics/lairon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lairon:: @ 8D26710 - .incbin "graphics/pokemon/palettes/lairon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lairon:: @ 8D26738 - .incbin "graphics/pokemon/back_pics/lairon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lairon:: @ 8D26A24 - .incbin "graphics/pokemon/palettes/lairon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lairon:: @ 8D26A4C - .incbin "graphics/pokemon/icons/lairon_icon.4bpp" - - .align 2 -gMonFootprint_Lairon:: @ 8D26E4C - .incbin "graphics/pokemon/footprints/lairon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Aggron:: @ 8D26E6C - .incbin "graphics/pokemon/front_pics/aggron_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Aggron:: @ 8D273E8 - .incbin "graphics/pokemon/palettes/aggron_palette.gbapal.lz" - - .align 2 -gMonBackPic_Aggron:: @ 8D27410 - .incbin "graphics/pokemon/back_pics/aggron_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Aggron:: @ 8D27838 - .incbin "graphics/pokemon/palettes/aggron_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Aggron:: @ 8D27860 - .incbin "graphics/pokemon/icons/aggron_icon.4bpp" - - .align 2 -gMonFootprint_Aggron:: @ 8D27C60 - .incbin "graphics/pokemon/footprints/aggron_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Castform:: @ 8D27C80 - .incbin "graphics/pokemon/front_pics/castform_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Castform:: @ 8D28708 - .incbin "graphics/pokemon/palettes/castform_palette.gbapal.lz" - - .align 2 -gMonBackPic_Castform:: @ 8D28788 - .incbin "graphics/pokemon/back_pics/castform_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Castform:: @ 8D29144 - .incbin "graphics/pokemon/palettes/castform_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Castform:: @ 8D291C0 - .incbin "graphics/pokemon/icons/castform_icon.4bpp" - - .align 2 -gMonFootprint_Castform:: @ 8D295C0 - .incbin "graphics/pokemon/footprints/castform_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Volbeat:: @ 8D295E0 - .incbin "graphics/pokemon/front_pics/volbeat_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Volbeat:: @ 8D29970 - .incbin "graphics/pokemon/palettes/volbeat_palette.gbapal.lz" - - .align 2 -gMonBackPic_Volbeat:: @ 8D29998 - .incbin "graphics/pokemon/back_pics/volbeat_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Volbeat:: @ 8D29CF8 - .incbin "graphics/pokemon/palettes/volbeat_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Volbeat:: @ 8D29D20 - .incbin "graphics/pokemon/icons/volbeat_icon.4bpp" - - .align 2 -gMonFootprint_Volbeat:: @ 8D2A120 - .incbin "graphics/pokemon/footprints/volbeat_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Illumise:: @ 8D2A140 - .incbin "graphics/pokemon/front_pics/illumise_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Illumise:: @ 8D2A4B4 - .incbin "graphics/pokemon/palettes/illumise_palette.gbapal.lz" - - .align 2 -gMonBackPic_Illumise:: @ 8D2A4DC - .incbin "graphics/pokemon/back_pics/illumise_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Illumise:: @ 8D2A7F8 - .incbin "graphics/pokemon/palettes/illumise_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Illumise:: @ 8D2A820 - .incbin "graphics/pokemon/icons/illumise_icon.4bpp" - - .align 2 -gMonFootprint_Illumise:: @ 8D2AC20 - .incbin "graphics/pokemon/footprints/illumise_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lileep:: @ 8D2AC40 - .incbin "graphics/pokemon/front_pics/lileep_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lileep:: @ 8D2AF84 - .incbin "graphics/pokemon/palettes/lileep_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lileep:: @ 8D2AFAC - .incbin "graphics/pokemon/back_pics/lileep_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lileep:: @ 8D2B2F0 - .incbin "graphics/pokemon/palettes/lileep_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lileep:: @ 8D2B318 - .incbin "graphics/pokemon/icons/lileep_icon.4bpp" - - .align 2 -gMonFootprint_Lileep:: @ 8D2B718 - .incbin "graphics/pokemon/footprints/lileep_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cradily:: @ 8D2B738 - .incbin "graphics/pokemon/front_pics/cradily_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cradily:: @ 8D2BB54 - .incbin "graphics/pokemon/palettes/cradily_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cradily:: @ 8D2BB7C - .incbin "graphics/pokemon/back_pics/cradily_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cradily:: @ 8D2BF78 - .incbin "graphics/pokemon/palettes/cradily_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cradily:: @ 8D2BFA0 - .incbin "graphics/pokemon/icons/cradily_icon.4bpp" - - .align 2 -gMonFootprint_Cradily:: @ 8D2C3A0 - .incbin "graphics/pokemon/footprints/cradily_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Anorith:: @ 8D2C3C0 - .incbin "graphics/pokemon/front_pics/anorith_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Anorith:: @ 8D2C6E4 - .incbin "graphics/pokemon/palettes/anorith_palette.gbapal.lz" - - .align 2 -gMonBackPic_Anorith:: @ 8D2C70C - .incbin "graphics/pokemon/back_pics/anorith_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Anorith:: @ 8D2C954 - .incbin "graphics/pokemon/palettes/anorith_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Anorith:: @ 8D2C97C - .incbin "graphics/pokemon/icons/anorith_icon.4bpp" - - .align 2 -gMonFootprint_Anorith:: @ 8D2CD7C - .incbin "graphics/pokemon/footprints/anorith_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Armaldo:: @ 8D2CD9C - .incbin "graphics/pokemon/front_pics/armaldo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Armaldo:: @ 8D2D31C - .incbin "graphics/pokemon/palettes/armaldo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Armaldo:: @ 8D2D344 - .incbin "graphics/pokemon/back_pics/armaldo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Armaldo:: @ 8D2D77C - .incbin "graphics/pokemon/palettes/armaldo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Armaldo:: @ 8D2D7A4 - .incbin "graphics/pokemon/icons/armaldo_icon.4bpp" - - .align 2 -gMonFootprint_Armaldo:: @ 8D2DBA4 - .incbin "graphics/pokemon/footprints/armaldo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ralts:: @ 8D2DBC4 - .incbin "graphics/pokemon/front_pics/ralts_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ralts:: @ 8D2DDF4 - .incbin "graphics/pokemon/palettes/ralts_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ralts:: @ 8D2DE1C - .incbin "graphics/pokemon/back_pics/ralts_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ralts:: @ 8D2E058 - .incbin "graphics/pokemon/palettes/ralts_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ralts:: @ 8D2E080 - .incbin "graphics/pokemon/icons/ralts_icon.4bpp" - - .align 2 -gMonFootprint_Ralts:: @ 8D2E480 - .incbin "graphics/pokemon/footprints/ralts_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kirlia:: @ 8D2E4A0 - .incbin "graphics/pokemon/front_pics/kirlia_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kirlia:: @ 8D2E79C - .incbin "graphics/pokemon/palettes/kirlia_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kirlia:: @ 8D2E7C4 - .incbin "graphics/pokemon/back_pics/kirlia_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kirlia:: @ 8D2EB38 - .incbin "graphics/pokemon/palettes/kirlia_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kirlia:: @ 8D2EB60 - .incbin "graphics/pokemon/icons/kirlia_icon.4bpp" - - .align 2 -gMonFootprint_Kirlia:: @ 8D2EF60 - .incbin "graphics/pokemon/footprints/kirlia_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gardevoir:: @ 8D2EF80 - .incbin "graphics/pokemon/front_pics/gardevoir_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gardevoir:: @ 8D2F2FC - .incbin "graphics/pokemon/palettes/gardevoir_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gardevoir:: @ 8D2F324 - .incbin "graphics/pokemon/back_pics/gardevoir_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gardevoir:: @ 8D2F658 - .incbin "graphics/pokemon/palettes/gardevoir_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gardevoir:: @ 8D2F680 - .incbin "graphics/pokemon/icons/gardevoir_icon.4bpp" - - .align 2 -gMonFootprint_Gardevoir:: @ 8D2FA80 - .incbin "graphics/pokemon/footprints/gardevoir_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Bagon:: @ 8D2FAA0 - .incbin "graphics/pokemon/front_pics/bagon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Bagon:: @ 8D2FD18 - .incbin "graphics/pokemon/palettes/bagon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Bagon:: @ 8D2FD40 - .incbin "graphics/pokemon/back_pics/bagon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Bagon:: @ 8D30028 - .incbin "graphics/pokemon/palettes/bagon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Bagon:: @ 8D30050 - .incbin "graphics/pokemon/icons/bagon_icon.4bpp" - - .align 2 -gMonFootprint_Bagon:: @ 8D30450 - .incbin "graphics/pokemon/footprints/bagon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shelgon:: @ 8D30470 - .incbin "graphics/pokemon/front_pics/shelgon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shelgon:: @ 8D30774 - .incbin "graphics/pokemon/palettes/shelgon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shelgon:: @ 8D3079C - .incbin "graphics/pokemon/back_pics/shelgon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shelgon:: @ 8D30A84 - .incbin "graphics/pokemon/palettes/shelgon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shelgon:: @ 8D30AAC - .incbin "graphics/pokemon/icons/shelgon_icon.4bpp" - - .align 2 -gMonFootprint_Shelgon:: @ 8D30EAC - .incbin "graphics/pokemon/footprints/shelgon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Salamence:: @ 8D30ECC - .incbin "graphics/pokemon/front_pics/salamence_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Salamence:: @ 8D31330 - .incbin "graphics/pokemon/palettes/salamence_palette.gbapal.lz" - - .align 2 -gMonBackPic_Salamence:: @ 8D31358 - .incbin "graphics/pokemon/back_pics/salamence_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Salamence:: @ 8D3163C - .incbin "graphics/pokemon/palettes/salamence_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Salamence:: @ 8D31664 - .incbin "graphics/pokemon/icons/salamence_icon.4bpp" - - .align 2 -gMonFootprint_Salamence:: @ 8D31A64 - .incbin "graphics/pokemon/footprints/salamence_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Beldum:: @ 8D31A84 - .incbin "graphics/pokemon/front_pics/beldum_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Beldum:: @ 8D31CF4 - .incbin "graphics/pokemon/palettes/beldum_palette.gbapal.lz" - - .align 2 -gMonBackPic_Beldum:: @ 8D31D1C - .incbin "graphics/pokemon/back_pics/beldum_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Beldum:: @ 8D3200C - .incbin "graphics/pokemon/palettes/beldum_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Beldum:: @ 8D32034 - .incbin "graphics/pokemon/icons/beldum_icon.4bpp" - - .align 2 -gMonFootprint_Beldum:: @ 8D32434 - .incbin "graphics/pokemon/footprints/beldum_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Metang:: @ 8D32454 - .incbin "graphics/pokemon/front_pics/metang_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Metang:: @ 8D328B0 - .incbin "graphics/pokemon/palettes/metang_palette.gbapal.lz" - - .align 2 -gMonBackPic_Metang:: @ 8D328D8 - .incbin "graphics/pokemon/back_pics/metang_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Metang:: @ 8D32BFC - .incbin "graphics/pokemon/palettes/metang_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Metang:: @ 8D32C24 - .incbin "graphics/pokemon/icons/metang_icon.4bpp" - - .align 2 -gMonFootprint_Metang:: @ 8D33024 - .incbin "graphics/pokemon/footprints/metang_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Metagross:: @ 8D33044 - .incbin "graphics/pokemon/front_pics/metagross_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Metagross:: @ 8D334A8 - .incbin "graphics/pokemon/palettes/metagross_palette.gbapal.lz" - - .align 2 -gMonBackPic_Metagross:: @ 8D334D0 - .incbin "graphics/pokemon/back_pics/metagross_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Metagross:: @ 8D3379C - .incbin "graphics/pokemon/palettes/metagross_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Metagross:: @ 8D337C4 - .incbin "graphics/pokemon/icons/metagross_icon.4bpp" - - .align 2 -gMonFootprint_Metagross:: @ 8D33BC4 - .incbin "graphics/pokemon/footprints/metagross_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Regirock:: @ 8D33BE4 - .incbin "graphics/pokemon/front_pics/regirock_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Regirock:: @ 8D340A0 - .incbin "graphics/pokemon/palettes/regirock_palette.gbapal.lz" - - .align 2 -gMonBackPic_Regirock:: @ 8D340C8 - .incbin "graphics/pokemon/back_pics/regirock_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Regirock:: @ 8D34514 - .incbin "graphics/pokemon/palettes/regirock_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Regirock:: @ 8D3453C - .incbin "graphics/pokemon/icons/regirock_icon.4bpp" - - .align 2 -gMonFootprint_Regirock:: @ 8D3493C - .incbin "graphics/pokemon/footprints/regirock_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Regice:: @ 8D3495C - .incbin "graphics/pokemon/front_pics/regice_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Regice:: @ 8D34DA4 - .incbin "graphics/pokemon/palettes/regice_palette.gbapal.lz" - - .align 2 -gMonBackPic_Regice:: @ 8D34DCC - .incbin "graphics/pokemon/back_pics/regice_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Regice:: @ 8D350BC - .incbin "graphics/pokemon/palettes/regice_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Regice:: @ 8D350E4 - .incbin "graphics/pokemon/icons/regice_icon.4bpp" - - .align 2 -gMonFootprint_Regice:: @ 8D354E4 - .incbin "graphics/pokemon/footprints/regice_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Registeel:: @ 8D35504 - .incbin "graphics/pokemon/front_pics/registeel_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Registeel:: @ 8D3598C - .incbin "graphics/pokemon/palettes/registeel_palette.gbapal.lz" - - .align 2 -gMonBackPic_Registeel:: @ 8D359B4 - .incbin "graphics/pokemon/back_pics/registeel_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Registeel:: @ 8D35CEC - .incbin "graphics/pokemon/palettes/registeel_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Registeel:: @ 8D35D14 - .incbin "graphics/pokemon/icons/registeel_icon.4bpp" - - .align 2 -gMonFootprint_Registeel:: @ 8D36114 - .incbin "graphics/pokemon/footprints/registeel_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kyogre:: @ 8D36134 - .incbin "graphics/pokemon/front_pics/kyogre_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kyogre:: @ 8D365A4 - .incbin "graphics/pokemon/palettes/kyogre_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kyogre:: @ 8D365CC - .incbin "graphics/pokemon/back_pics/kyogre_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kyogre:: @ 8D36844 - .incbin "graphics/pokemon/palettes/kyogre_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kyogre:: @ 8D3686C - .incbin "graphics/pokemon/icons/kyogre_icon.4bpp" - - .align 2 -gMonFootprint_Kyogre:: @ 8D36C6C - .incbin "graphics/pokemon/footprints/kyogre_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Groudon:: @ 8D36C8C - .incbin "graphics/pokemon/front_pics/groudon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Groudon:: @ 8D37220 - .incbin "graphics/pokemon/palettes/groudon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Groudon:: @ 8D37248 - .incbin "graphics/pokemon/back_pics/groudon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Groudon:: @ 8D376B0 - .incbin "graphics/pokemon/palettes/groudon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Groudon:: @ 8D376D8 - .incbin "graphics/pokemon/icons/groudon_icon.4bpp" - - .align 2 -gMonFootprint_Groudon:: @ 8D37AD8 - .incbin "graphics/pokemon/footprints/groudon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Rayquaza:: @ 8D37AF8 - .incbin "graphics/pokemon/front_pics/rayquaza_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Rayquaza:: @ 8D382E4 - .incbin "graphics/pokemon/palettes/rayquaza_palette.gbapal.lz" - - .align 2 -gMonBackPic_Rayquaza:: @ 8D3830C - .incbin "graphics/pokemon/back_pics/rayquaza_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Rayquaza:: @ 8D38644 - .incbin "graphics/pokemon/palettes/rayquaza_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Rayquaza:: @ 8D3866C - .incbin "graphics/pokemon/icons/rayquaza_icon.4bpp" - - .align 2 -gMonFootprint_Rayquaza:: @ 8D38A6C - .incbin "graphics/pokemon/footprints/rayquaza_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Latias:: @ 8D38A8C - .incbin "graphics/pokemon/front_pics/latias_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Latias:: @ 8D38EB0 - .incbin "graphics/pokemon/palettes/latias_palette.gbapal.lz" - - .align 2 -gMonBackPic_Latias:: @ 8D38ED8 - .incbin "graphics/pokemon/back_pics/latias_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Latias:: @ 8D391D4 - .incbin "graphics/pokemon/palettes/latias_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Latias:: @ 8D391FC - .incbin "graphics/pokemon/icons/latias_icon.4bpp" - - .align 2 -gMonFootprint_Latias:: @ 8D395FC - .incbin "graphics/pokemon/footprints/latias_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Latios:: @ 8D3961C - .incbin "graphics/pokemon/front_pics/latios_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Latios:: @ 8D39A70 - .incbin "graphics/pokemon/palettes/latios_palette.gbapal.lz" - - .align 2 -gMonBackPic_Latios:: @ 8D39A98 - .incbin "graphics/pokemon/back_pics/latios_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Latios:: @ 8D39DF8 - .incbin "graphics/pokemon/palettes/latios_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Latios:: @ 8D39E20 - .incbin "graphics/pokemon/icons/latios_icon.4bpp" - - .align 2 -gMonFootprint_Latios:: @ 8D3A220 - .incbin "graphics/pokemon/footprints/latios_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Jirachi:: @ 8D3A240 - .incbin "graphics/pokemon/front_pics/jirachi_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Jirachi:: @ 8D3A54C - .incbin "graphics/pokemon/palettes/jirachi_palette.gbapal.lz" - - .align 2 -gMonBackPic_Jirachi:: @ 8D3A574 - .incbin "graphics/pokemon/back_pics/jirachi_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Jirachi:: @ 8D3A914 - .incbin "graphics/pokemon/palettes/jirachi_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Jirachi:: @ 8D3A93C - .incbin "graphics/pokemon/icons/jirachi_icon.4bpp" - - .align 2 -gMonFootprint_Jirachi:: @ 8D3AD3C - .incbin "graphics/pokemon/footprints/jirachi_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Deoxys:: @ 8D3AD5C - .incbin "graphics/pokemon/front_pics/deoxys_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Deoxys:: @ 8D3B138 - .incbin "graphics/pokemon/palettes/deoxys_palette.gbapal.lz" - - .align 2 -gMonBackPic_Deoxys:: @ 8D3B160 - .incbin "graphics/pokemon/back_pics/deoxys_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Deoxys:: @ 8D3B7D0 - .incbin "graphics/pokemon/palettes/deoxys_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Deoxys:: @ 8D3B7F8 - .incbin "graphics/pokemon/icons/deoxys_icon.4bpp" - - .incbin "graphics/pokemon/icons/deoxys_speed_icon.4bpp" - - .incbin "graphics/unused/deoxys_speed_icon_wide.4bpp" - - .space 0x6800 - - .incbin "graphics/unknown/unknown_D437F8.bin" - - .align 2 -gMonFootprint_Deoxys:: @ 8D43BF8 - .incbin "graphics/pokemon/footprints/deoxys_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Chimecho:: @ 8D43C18 - .incbin "graphics/pokemon/front_pics/chimecho_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Chimecho:: @ 8D43E64 - .incbin "graphics/pokemon/palettes/chimecho_palette.gbapal.lz" - - .align 2 -gMonBackPic_Chimecho:: @ 8D43E8C - .incbin "graphics/pokemon/back_pics/chimecho_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Chimecho:: @ 8D44100 - .incbin "graphics/pokemon/palettes/chimecho_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Chimecho:: @ 8D44128 - .incbin "graphics/pokemon/icons/chimecho_icon.4bpp" - - .align 2 -gMonFootprint_Chimecho:: @ 8D44528 - .incbin "graphics/pokemon/footprints/chimecho_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Egg:: @ 8D44548 - .incbin "graphics/pokemon/front_pics/egg_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Egg:: @ 8D446FC - .incbin "graphics/pokemon/palettes/egg_palette.gbapal.lz" - - .align 2 -gMonStillFrontPic_UnownB:: @ 8D4471C - .incbin "graphics/pokemon/front_pics/unown_b_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownB:: @ 8D448F4 - .incbin "graphics/pokemon/back_pics/unown_b_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownB:: @ 8D44AF8 - .incbin "graphics/pokemon/icons/unown_B_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownC:: @ 8D44EF8 - .incbin "graphics/pokemon/front_pics/unown_c_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownC:: @ 8D4510C - .incbin "graphics/pokemon/back_pics/unown_c_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownC:: @ 8D453B8 - .incbin "graphics/pokemon/icons/unown_C_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownD:: @ 8D457B8 - .incbin "graphics/pokemon/front_pics/unown_d_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownD:: @ 8D459B0 - .incbin "graphics/pokemon/back_pics/unown_d_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownD:: @ 8D45C08 - .incbin "graphics/pokemon/icons/unown_D_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownE:: @ 8D46008 - .incbin "graphics/pokemon/front_pics/unown_e_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownE:: @ 8D461C0 - .incbin "graphics/pokemon/back_pics/unown_e_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownE:: @ 8D463C0 - .incbin "graphics/pokemon/icons/unown_E_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownF:: @ 8D467C0 - .incbin "graphics/pokemon/front_pics/unown_f_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownF:: @ 8D469B4 - .incbin "graphics/pokemon/back_pics/unown_f_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownF:: @ 8D46BD0 - .incbin "graphics/pokemon/icons/unown_F_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownG:: @ 8D46FD0 - .incbin "graphics/pokemon/front_pics/unown_g_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownG:: @ 8D471AC - .incbin "graphics/pokemon/back_pics/unown_g_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownG:: @ 8D473F8 - .incbin "graphics/pokemon/icons/unown_G_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownH:: @ 8D477F8 - .incbin "graphics/pokemon/front_pics/unown_h_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownH:: @ 8D47A3C - .incbin "graphics/pokemon/back_pics/unown_h_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownH:: @ 8D47D00 - .incbin "graphics/pokemon/icons/unown_H_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownI:: @ 8D48100 - .incbin "graphics/pokemon/front_pics/unown_i_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownI:: @ 8D48298 - .incbin "graphics/pokemon/back_pics/unown_i_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownI:: @ 8D48440 - .incbin "graphics/pokemon/icons/unown_I_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownJ:: @ 8D48840 - .incbin "graphics/pokemon/front_pics/unown_j_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownJ:: @ 8D48A04 - .incbin "graphics/pokemon/back_pics/unown_j_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownJ:: @ 8D48BEC - .incbin "graphics/pokemon/icons/unown_J_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownK:: @ 8D48FEC - .incbin "graphics/pokemon/front_pics/unown_k_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownK:: @ 8D491BC - .incbin "graphics/pokemon/back_pics/unown_k_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownK:: @ 8D493B4 - .incbin "graphics/pokemon/icons/unown_K_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownL:: @ 8D497B4 - .incbin "graphics/pokemon/front_pics/unown_l_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownL:: @ 8D49964 - .incbin "graphics/pokemon/back_pics/unown_l_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownL:: @ 8D49B38 - .incbin "graphics/pokemon/icons/unown_L_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownM:: @ 8D49F38 - .incbin "graphics/pokemon/front_pics/unown_m_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownM:: @ 8D4A15C - .incbin "graphics/pokemon/back_pics/unown_m_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownM:: @ 8D4A404 - .incbin "graphics/pokemon/icons/unown_M_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownN:: @ 8D4A804 - .incbin "graphics/pokemon/front_pics/unown_n_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownN:: @ 8D4A9FC - .incbin "graphics/pokemon/back_pics/unown_n_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownN:: @ 8D4AC68 - .incbin "graphics/pokemon/icons/unown_N_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownO:: @ 8D4B068 - .incbin "graphics/pokemon/front_pics/unown_o_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownO:: @ 8D4B2A0 - .incbin "graphics/pokemon/back_pics/unown_o_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownO:: @ 8D4B560 - .incbin "graphics/pokemon/icons/unown_O_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownP:: @ 8D4B960 - .incbin "graphics/pokemon/front_pics/unown_p_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownP:: @ 8D4BB00 - .incbin "graphics/pokemon/back_pics/unown_p_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownP:: @ 8D4BCC4 - .incbin "graphics/pokemon/icons/unown_P_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownQ:: @ 8D4C0C4 - .incbin "graphics/pokemon/front_pics/unown_q_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownQ:: @ 8D4C278 - .incbin "graphics/pokemon/back_pics/unown_q_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownQ:: @ 8D4C444 - .incbin "graphics/pokemon/icons/unown_Q_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownR:: @ 8D4C844 - .incbin "graphics/pokemon/front_pics/unown_r_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownR:: @ 8D4C9E8 - .incbin "graphics/pokemon/back_pics/unown_r_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownR:: @ 8D4CBB0 - .incbin "graphics/pokemon/icons/unown_R_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownS:: @ 8D4CFB0 - .incbin "graphics/pokemon/front_pics/unown_s_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownS:: @ 8D4D198 - .incbin "graphics/pokemon/back_pics/unown_s_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownS:: @ 8D4D3EC - .incbin "graphics/pokemon/icons/unown_S_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownT:: @ 8D4D7EC - .incbin "graphics/pokemon/front_pics/unown_t_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownT:: @ 8D4D99C - .incbin "graphics/pokemon/back_pics/unown_t_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownT:: @ 8D4DB50 - .incbin "graphics/pokemon/icons/unown_T_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownU:: @ 8D4DF50 - .incbin "graphics/pokemon/front_pics/unown_u_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownU:: @ 8D4E168 - .incbin "graphics/pokemon/back_pics/unown_u_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownU:: @ 8D4E3BC - .incbin "graphics/pokemon/icons/unown_U_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownV:: @ 8D4E7BC - .incbin "graphics/pokemon/front_pics/unown_v_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownV:: @ 8D4E9A0 - .incbin "graphics/pokemon/back_pics/unown_v_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownV:: @ 8D4EBD0 - .incbin "graphics/pokemon/icons/unown_V_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownW:: @ 8D4EFD0 - .incbin "graphics/pokemon/front_pics/unown_w_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownW:: @ 8D4F1A4 - .incbin "graphics/pokemon/back_pics/unown_w_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownW:: @ 8D4F3A8 - .incbin "graphics/pokemon/icons/unown_W_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownX:: @ 8D4F7A8 - .incbin "graphics/pokemon/front_pics/unown_x_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownX:: @ 8D4F96C - .incbin "graphics/pokemon/back_pics/unown_x_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownX:: @ 8D4FB5C - .incbin "graphics/pokemon/icons/unown_X_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownY:: @ 8D4FF5C - .incbin "graphics/pokemon/front_pics/unown_y_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownY:: @ 8D50134 - .incbin "graphics/pokemon/back_pics/unown_y_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownY:: @ 8D50328 - .incbin "graphics/pokemon/icons/unown_Y_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownZ:: @ 8D50728 - .incbin "graphics/pokemon/front_pics/unown_z_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownZ:: @ 8D508D8 - .incbin "graphics/pokemon/back_pics/unown_z_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownZ:: @ 8D50AB4 - .incbin "graphics/pokemon/icons/unown_Z_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownExclamationMark:: @ 8D50EB4 - .incbin "graphics/pokemon/front_pics/unown_exclamation_mark_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownExclamationMark:: @ 8D51044 - .incbin "graphics/pokemon/back_pics/unown_exclamation_mark_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownExclamationMark:: @ 8D5120C - .incbin "graphics/pokemon/icons/unown_exclamation_mark_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownQuestionMark:: @ 8D5160C - .incbin "graphics/pokemon/front_pics/unown_question_mark_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownQuestionMark:: @ 8D517C8 - .incbin "graphics/pokemon/back_pics/unown_question_mark_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownQuestionMark:: @ 8D519C8 - .incbin "graphics/pokemon/icons/unown_question_mark_icon.4bpp" diff --git a/data/graphics/trainers/graphics.inc b/data/graphics/trainers/graphics.inc deleted file mode 100644 index 897cb9ffb6..0000000000 --- a/data/graphics/trainers/graphics.inc +++ /dev/null @@ -1,783 +0,0 @@ - .align 2 -gTrainerFrontPic_Hiker:: @ 8D51DC8 - .incbin "graphics/trainers/front_pics/hiker_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Hiker:: @ 8D52248 - .incbin "graphics/trainers/palettes/hiker.gbapal.lz" - - .align 2 -gTrainerFrontPic_AquaGruntM:: @ 8D52270 - .incbin "graphics/trainers/front_pics/aqua_grunt_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_AquaGruntM:: @ 8D525D0 - .incbin "graphics/trainers/palettes/aqua_grunt_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_PokemonBreederF:: @ 8D525F8 - .incbin "graphics/trainers/front_pics/pokemon_breeder_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PokemonBreederF:: @ 8D5292C - .incbin "graphics/trainers/palettes/pokemon_breeder_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_CoolTrainerM:: @ 8D52954 - .incbin "graphics/trainers/front_pics/cool_trainer_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_CoolTrainerM:: @ 8D52C3C - .incbin "graphics/trainers/palettes/cool_trainer_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_BirdKeeper:: @ 8D52C64 - .incbin "graphics/trainers/front_pics/bird_keeper_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_BirdKeeper:: @ 8D52F9C - .incbin "graphics/trainers/palettes/bird_keeper.gbapal.lz" - - .align 2 -gTrainerFrontPic_Collector:: @ 8D52FC4 - .incbin "graphics/trainers/front_pics/collector_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Collector:: @ 8D533C8 - .incbin "graphics/trainers/palettes/collector.gbapal.lz" - - .align 2 -gTrainerFrontPic_AquaGruntF:: @ 8D533F0 - .incbin "graphics/trainers/front_pics/aqua_grunt_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_AquaGruntF:: @ 8D5372C - .incbin "graphics/trainers/palettes/aqua_grunt_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_SwimmerM:: @ 8D53754 - .incbin "graphics/trainers/front_pics/swimmer_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SwimmerM:: @ 8D53A14 - .incbin "graphics/trainers/palettes/swimmer_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_MagmaGruntM:: @ 8D53A3C - .incbin "graphics/trainers/front_pics/magma_grunt_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_MagmaGruntM:: @ 8D53DBC - .incbin "graphics/trainers/palettes/magma_grunt_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_ExpertM:: @ 8D53DE4 - .incbin "graphics/trainers/front_pics/expert_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_ExpertM:: @ 8D54124 - .incbin "graphics/trainers/palettes/expert_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_AquaAdminM:: @ 8D5414C - .incbin "graphics/trainers/front_pics/aqua_admin_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_AquaAdminM:: @ 8D54500 - .incbin "graphics/trainers/palettes/aqua_admin_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_BlackBelt:: @ 8D54528 - .incbin "graphics/trainers/front_pics/black_belt_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_BlackBelt:: @ 8D5488C - .incbin "graphics/trainers/palettes/black_belt.gbapal.lz" - - .align 2 -gTrainerFrontPic_AquaAdminF:: @ 8D548B4 - .incbin "graphics/trainers/front_pics/aqua_admin_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_AquaAdminF:: @ 8D54C78 - .incbin "graphics/trainers/palettes/aqua_admin_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_AquaLeaderArchie:: @ 8D54CA0 - .incbin "graphics/trainers/front_pics/aqua_leader_archie_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_AquaLeaderArchie:: @ 8D54FDC - .incbin "graphics/trainers/palettes/aqua_leader_archie.gbapal.lz" - - .align 2 -gTrainerFrontPic_HexManiac:: @ 8D55004 - .incbin "graphics/trainers/front_pics/hex_maniac_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_HexManiac:: @ 8D55370 - .incbin "graphics/trainers/palettes/hex_maniac.gbapal.lz" - - .align 2 -gTrainerFrontPic_AromaLady:: @ 8D55398 - .incbin "graphics/trainers/front_pics/aroma_lady_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_AromaLady:: @ 8D5565C - .incbin "graphics/trainers/palettes/aroma_lady.gbapal.lz" - - .align 2 -gTrainerFrontPic_RuinManiac:: @ 8D55684 - .incbin "graphics/trainers/front_pics/ruin_maniac_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_RuinManiac:: @ 8D55A20 - .incbin "graphics/trainers/palettes/ruin_maniac.gbapal.lz" - - .align 2 -gTrainerFrontPic_Interviewer:: @ 8D55A48 - .incbin "graphics/trainers/front_pics/interviewer_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Interviewer:: @ 8D55EEC - .incbin "graphics/trainers/palettes/interviewer.gbapal.lz" - - .align 2 -gTrainerFrontPic_TuberF:: @ 8D55F14 - .incbin "graphics/trainers/front_pics/tuber_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_TuberF:: @ 8D561B8 - .incbin "graphics/trainers/palettes/tuber_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_TuberM:: @ 8D561E0 - .incbin "graphics/trainers/front_pics/tuber_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_TuberM:: @ 8D5646C - .incbin "graphics/trainers/palettes/tuber_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_CoolTrainerF:: @ 8D56494 - .incbin "graphics/trainers/front_pics/cool_trainer_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_CoolTrainerF:: @ 8D567A8 - .incbin "graphics/trainers/palettes/cool_trainer_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_Lady:: @ 8D567D0 - .incbin "graphics/trainers/front_pics/lady_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Lady:: @ 8D56B84 - .incbin "graphics/trainers/palettes/lady.gbapal.lz" - - .align 2 -gTrainerFrontPic_Beauty:: @ 8D56BAC - .incbin "graphics/trainers/front_pics/beauty_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Beauty:: @ 8D56E94 - .incbin "graphics/trainers/palettes/beauty.gbapal.lz" - - .align 2 -gTrainerFrontPic_RichBoy:: @ 8D56EBC - .incbin "graphics/trainers/front_pics/rich_boy_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_RichBoy:: @ 8D57170 - .incbin "graphics/trainers/palettes/rich_boy.gbapal.lz" - - .align 2 -gTrainerFrontPic_ExpertF:: @ 8D57198 - .incbin "graphics/trainers/front_pics/expert_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_ExpertF:: @ 8D574B4 - .incbin "graphics/trainers/palettes/expert_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_Pokemaniac:: @ 8D574DC - .incbin "graphics/trainers/front_pics/pokemaniac_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Pokemaniac:: @ 8D5784C - .incbin "graphics/trainers/palettes/pokemaniac.gbapal.lz" - - .align 2 -gTrainerFrontPic_MagmaGruntF:: @ 8D57874 - .incbin "graphics/trainers/front_pics/magma_grunt_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_MagmaGruntF:: @ 8D57C00 - .incbin "graphics/trainers/palettes/magma_grunt_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_Guitarist:: @ 8D57C28 - .incbin "graphics/trainers/front_pics/guitarist_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Guitarist:: @ 8D57FAC - .incbin "graphics/trainers/palettes/guitarist.gbapal.lz" - - .align 2 -gTrainerFrontPic_Kindler:: @ 8D57FD4 - .incbin "graphics/trainers/front_pics/kindler_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Kindler:: @ 8D58340 - .incbin "graphics/trainers/palettes/kindler.gbapal.lz" - - .align 2 -gTrainerFrontPic_Camper:: @ 8D58368 - .incbin "graphics/trainers/front_pics/camper_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Camper:: @ 8D58650 - .incbin "graphics/trainers/palettes/camper.gbapal.lz" - - .align 2 -gTrainerFrontPic_Picnicker:: @ 8D58678 - .incbin "graphics/trainers/front_pics/picnicker_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Picnicker:: @ 8D58958 - .incbin "graphics/trainers/palettes/picnicker.gbapal.lz" - - .align 2 -gTrainerFrontPic_BugManiac:: @ 8D58980 - .incbin "graphics/trainers/front_pics/bug_maniac_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_BugManiac:: @ 8D58DD0 - .incbin "graphics/trainers/palettes/bug_maniac.gbapal.lz" - - .align 2 -gTrainerFrontPic_PokemonBreederM:: @ 8D58DF8 - .incbin "graphics/trainers/front_pics/pokemon_breeder_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PokemonBreederM:: @ 8D59128 - .incbin "graphics/trainers/palettes/pokemon_breeder_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_PsychicM:: @ 8D59150 - .incbin "graphics/trainers/front_pics/psychic_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PsychicM:: @ 8D5947C - .incbin "graphics/trainers/palettes/psychic_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_PsychicF:: @ 8D594A4 - .incbin "graphics/trainers/front_pics/psychic_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PsychicF:: @ 8D597CC - .incbin "graphics/trainers/palettes/psychic_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_Gentleman:: @ 8D597F4 - .incbin "graphics/trainers/front_pics/gentleman_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Gentleman:: @ 8D59AF4 - .incbin "graphics/trainers/palettes/gentleman.gbapal.lz" - - .align 2 -gTrainerFrontPic_EliteFourSidney:: @ 8D59B1C - .incbin "graphics/trainers/front_pics/elite_four_sidney_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_EliteFourSidney:: @ 8D59E50 - .incbin "graphics/trainers/palettes/elite_four_sidney.gbapal.lz" - - .align 2 -gTrainerFrontPic_EliteFourPhoebe:: @ 8D59E78 - .incbin "graphics/trainers/front_pics/elite_four_phoebe_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_EliteFourPhoebe:: @ 8D5A178 - .incbin "graphics/trainers/palettes/elite_four_phoebe.gbapal.lz" - - .align 2 -gTrainerFrontPic_EliteFourGlacia:: @ 8D5A1A0 - .incbin "graphics/trainers/front_pics/elite_four_glacia_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_EliteFourGlacia:: @ 8D5A524 - .incbin "graphics/trainers/palettes/elite_four_glacia.gbapal.lz" - - .align 2 -gTrainerFrontPic_EliteFourDrake:: @ 8D5A54C - .incbin "graphics/trainers/front_pics/elite_four_drake_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_EliteFourDrake:: @ 8D5A8F4 - .incbin "graphics/trainers/palettes/elite_four_drake.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderRoxanne:: @ 8D5A91C - .incbin "graphics/trainers/front_pics/leader_roxanne_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderRoxanne:: @ 8D5AC08 - .incbin "graphics/trainers/palettes/leader_roxanne.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderBrawly:: @ 8D5AC30 - .incbin "graphics/trainers/front_pics/leader_brawly_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderBrawly:: @ 8D5AFC4 - .incbin "graphics/trainers/palettes/leader_brawly.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderWattson:: @ 8D5AFEC - .incbin "graphics/trainers/front_pics/leader_wattson_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderWattson:: @ 8D5B334 - .incbin "graphics/trainers/palettes/leader_wattson.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderFlannery:: @ 8D5B35C - .incbin "graphics/trainers/front_pics/leader_flannery_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderFlannery:: @ 8D5B6DC - .incbin "graphics/trainers/palettes/leader_flannery.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderNorman:: @ 8D5B704 - .incbin "graphics/trainers/front_pics/leader_norman_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderNorman:: @ 8D5BA40 - .incbin "graphics/trainers/palettes/leader_norman.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderWinona:: @ 8D5BA68 - .incbin "graphics/trainers/front_pics/leader_winona_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderWinona:: @ 8D5BDE8 - .incbin "graphics/trainers/palettes/leader_winona.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderTateAndLiza:: @ 8D5BE10 - .incbin "graphics/trainers/front_pics/leader_tate_and_liza_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderTateAndLiza:: @ 8D5C254 - .incbin "graphics/trainers/palettes/leader_tate_and_liza.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderJuan:: @ 8D5C27C - .incbin "graphics/trainers/front_pics/leader_juan_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderJuan:: @ 8D5C624 - .incbin "graphics/trainers/palettes/leader_juan.gbapal.lz" - - .align 2 -gTrainerFrontPic_SchoolKidM:: @ 8D5C64C - .incbin "graphics/trainers/front_pics/school_kid_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SchoolKidM:: @ 8D5C90C - .incbin "graphics/trainers/palettes/school_kid_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_SchoolKidF:: @ 8D5C934 - .incbin "graphics/trainers/front_pics/school_kid_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SchoolKidF:: @ 8D5CBD0 - .incbin "graphics/trainers/palettes/school_kid_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_SrAndJr:: @ 8D5CBF8 - .incbin "graphics/trainers/front_pics/sr_and_jr_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SrAndJr:: @ 8D5D068 - .incbin "graphics/trainers/palettes/sr_and_jr.gbapal.lz" - - .align 2 -gTrainerFrontPic_WinstrateM:: @ 8D5D090 - .incbin "graphics/trainers/front_pics/winstrate_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_WinstrateM:: @ 8D5D44C - .incbin "graphics/trainers/palettes/winstrate_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_WinstrateF:: @ 8D5D474 - .incbin "graphics/trainers/front_pics/winstrate_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_WinstrateF:: @ 8D5D840 - .incbin "graphics/trainers/palettes/winstrate_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_Youngster:: @ 8D5D868 - .incbin "graphics/trainers/front_pics/youngster_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Youngster:: @ 8D5DB10 - .incbin "graphics/trainers/palettes/youngster.gbapal.lz" - - .align 2 -gTrainerFrontPic_ChampionWallace:: @ 8D5DB38 - .incbin "graphics/trainers/front_pics/champion_wallace_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_ChampionWallace:: @ 8D5DF8C - .incbin "graphics/trainers/palettes/champion_wallace.gbapal.lz" - - .align 2 -gTrainerFrontPic_Fisherman:: @ 8D5DFB4 - .incbin "graphics/trainers/front_pics/fisherman_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Fisherman:: @ 8D5E398 - .incbin "graphics/trainers/palettes/fisherman.gbapal.lz" - - .align 2 -gTrainerFrontPic_CyclingTriathleteM:: @ 8D5E3C0 - .incbin "graphics/trainers/front_pics/cycling_triathlete_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_CyclingTriathleteM:: @ 8D5E7D0 - .incbin "graphics/trainers/palettes/cycling_triathlete_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_CyclingTriathleteF:: @ 8D5E7F8 - .incbin "graphics/trainers/front_pics/cycling_triathlete_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_CyclingTriathleteF:: @ 8D5EC04 - .incbin "graphics/trainers/palettes/cycling_triathlete_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_RunningTriathleteM:: @ 8D5EC2C - .incbin "graphics/trainers/front_pics/running_triathlete_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_RunningTriathleteM:: @ 8D5EEE4 - .incbin "graphics/trainers/palettes/running_triathlete_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_RunningTriathleteF:: @ 8D5EF0C - .incbin "graphics/trainers/front_pics/running_triathlete_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_RunningTriathleteF:: @ 8D5F1B0 - .incbin "graphics/trainers/palettes/running_triathlete_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_SwimmingTriathleteM:: @ 8D5F1D8 - .incbin "graphics/trainers/front_pics/swimming_triathlete_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SwimmingTriathleteM:: @ 8D5F504 - .incbin "graphics/trainers/palettes/swimming_triathlete_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_SwimmingTriathleteF:: @ 8D5F52C - .incbin "graphics/trainers/front_pics/swimming_triathlete_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SwimmingTriathleteF:: @ 8D5F808 - .incbin "graphics/trainers/palettes/swimming_triathlete_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_DragonTamer:: @ 8D5F830 - .incbin "graphics/trainers/front_pics/dragon_tamer_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_DragonTamer:: @ 8D5FB84 - .incbin "graphics/trainers/palettes/dragon_tamer.gbapal.lz" - - .align 2 -gTrainerFrontPic_NinjaBoy:: @ 8D5FBAC - .incbin "graphics/trainers/front_pics/ninja_boy_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_NinjaBoy:: @ 8D5FE88 - .incbin "graphics/trainers/palettes/ninja_boy.gbapal.lz" - - .align 2 -gTrainerFrontPic_BattleGirl:: @ 8D5FEB0 - .incbin "graphics/trainers/front_pics/battle_girl_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_BattleGirl:: @ 8D601D0 - .incbin "graphics/trainers/palettes/battle_girl.gbapal.lz" - - .align 2 -gTrainerFrontPic_ParasolLady:: @ 8D601F8 - .incbin "graphics/trainers/front_pics/parasol_lady_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_ParasolLady:: @ 8D60530 - .incbin "graphics/trainers/palettes/parasol_lady.gbapal.lz" - - .align 2 -gTrainerFrontPic_SwimmerF:: @ 8D60558 - .incbin "graphics/trainers/front_pics/swimmer_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SwimmerF:: @ 8D60828 - .incbin "graphics/trainers/palettes/swimmer_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_Twins:: @ 8D60850 - .incbin "graphics/trainers/front_pics/twins_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Twins:: @ 8D60C14 - .incbin "graphics/trainers/palettes/twins.gbapal.lz" - - .align 2 -gTrainerFrontPic_Sailor:: @ 8D60C3C - .incbin "graphics/trainers/front_pics/sailor_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Sailor:: @ 8D60FEC - .incbin "graphics/trainers/palettes/sailor.gbapal.lz" - - .align 2 -gTrainerFrontPic_MagmaAdmin:: @ 8D61014 - .incbin "graphics/trainers/front_pics/magma_admin_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_MagmaAdmin:: @ 8D613EC - .incbin "graphics/trainers/palettes/magma_admin.gbapal.lz" - - .align 2 -gTrainerFrontPic_Wally:: @ 8D61414 - .incbin "graphics/trainers/front_pics/wally_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Wally:: @ 8D616E4 - .incbin "graphics/trainers/palettes/wally.gbapal.lz" - - .align 2 -gTrainerFrontPic_Brendan:: @ 8D6170C - .incbin "graphics/trainers/front_pics/brendan_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Brendan:: @ 8D61A30 - .incbin "graphics/trainers/palettes/brendan.gbapal.lz" - - .align 2 -gTrainerFrontPic_May:: @ 8D61A58 - .incbin "graphics/trainers/front_pics/may_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_May:: @ 8D61D58 - .incbin "graphics/trainers/palettes/may.gbapal.lz" - - .align 2 -gTrainerFrontPic_BugCatcher:: @ 8D61D80 - .incbin "graphics/trainers/front_pics/bug_catcher_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_BugCatcher:: @ 8D620AC - .incbin "graphics/trainers/palettes/bug_catcher.gbapal.lz" - - .align 2 -gTrainerFrontPic_PokemonRangerM:: @ 8D620D4 - .incbin "graphics/trainers/front_pics/pokemon_ranger_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PokemonRangerM:: @ 8D6241C - .incbin "graphics/trainers/palettes/pokemon_ranger_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_PokemonRangerF:: @ 8D62444 - .incbin "graphics/trainers/front_pics/pokemon_ranger_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PokemonRangerF:: @ 8D62778 - .incbin "graphics/trainers/palettes/pokemon_ranger_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_MagmaLeaderMaxie:: @ 8D627A0 - .incbin "graphics/trainers/front_pics/magma_leader_maxie_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_MagmaLeaderMaxie:: @ 8D62A94 - .incbin "graphics/trainers/palettes/magma_leader_maxie.gbapal.lz" - - .align 2 -gTrainerFrontPic_Lass:: @ 8D62ABC - .incbin "graphics/trainers/front_pics/lass_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Lass:: @ 8D62D94 - .incbin "graphics/trainers/palettes/lass.gbapal.lz" - - .align 2 -gTrainerFrontPic_YoungCouple:: @ 8D62DBC - .incbin "graphics/trainers/front_pics/young_couple_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_YoungCouple:: @ 8D6317C - .incbin "graphics/trainers/palettes/young_couple.gbapal.lz" - - .align 2 -gTrainerFrontPic_OldCouple:: @ 8D631A4 - .incbin "graphics/trainers/front_pics/old_couple_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_OldCouple:: @ 8D636B4 - .incbin "graphics/trainers/palettes/old_couple.gbapal.lz" - - .align 2 -gTrainerFrontPic_SisAndBro:: @ 8D636DC - .incbin "graphics/trainers/front_pics/sis_and_bro_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SisAndBro:: @ 8D63B28 - .incbin "graphics/trainers/palettes/sis_and_bro.gbapal.lz" - - .align 2 -gTrainerFrontPic_Steven:: @ 8D63B50 - .incbin "graphics/trainers/front_pics/steven_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Steven:: @ 8D63E88 - .incbin "graphics/trainers/palettes/steven.gbapal.lz" - - .align 2 -gTrainerFrontPic_SalonMaidenAnabel:: @ 8D63EB0 - .incbin "graphics/trainers/front_pics/salon_maiden_anabel_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SalonMaidenAnabel:: @ 8D641B8 - .incbin "graphics/trainers/palettes/salon_maiden_anabel.gbapal.lz" - - .align 2 -gTrainerFrontPic_DomeAceTucker:: @ 8D641E0 - .incbin "graphics/trainers/front_pics/dome_ace_tucker_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_DomeAceTucker:: @ 8D645E4 - .incbin "graphics/trainers/palettes/dome_ace_tucker.gbapal.lz" - - .align 2 -gTrainerFrontPic_PalaceMavenSpenser:: @ 8D6460C - .incbin "graphics/trainers/front_pics/palace_maven_spenser_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PalaceMavenSpenser:: @ 8D649B0 - .incbin "graphics/trainers/palettes/palace_maven_spenser.gbapal.lz" - - .align 2 -gTrainerFrontPic_ArenaTycoonGreta:: @ 8D649D8 - .incbin "graphics/trainers/front_pics/arena_tycoon_greta_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_ArenaTycoonGreta:: @ 8D64D08 - .incbin "graphics/trainers/palettes/arena_tycoon_greta.gbapal.lz" - - .align 2 -gTrainerFrontPic_FactoryHeadNoland:: @ 8D64D30 - .incbin "graphics/trainers/front_pics/factory_head_noland_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_FactoryHeadNoland:: @ 8D650AC - .incbin "graphics/trainers/palettes/factory_head_noland.gbapal.lz" - - .align 2 -gTrainerFrontPic_PikeQueenLucy:: @ 8D650D4 - .incbin "graphics/trainers/front_pics/pike_queen_lucy_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PikeQueenLucy:: @ 8D653C8 - .incbin "graphics/trainers/palettes/pike_queen_lucy.gbapal.lz" - - .align 2 -gTrainerFrontPic_PyramidKingBrandon:: @ 8D653F0 - .incbin "graphics/trainers/front_pics/pyramid_king_brandon_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PyramidKingBrandon:: @ 8D6575C - .incbin "graphics/trainers/palettes/pyramid_king_brandon.gbapal.lz" - - .align 2 -gTrainerFrontPic_Red:: @ 8D65784 - .incbin "graphics/trainers/front_pics/red_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Red:: @ 8D65A90 - .incbin "graphics/trainers/palettes/red.gbapal.lz" - - .align 2 -gTrainerFrontPic_Leaf:: @ 8D65AB8 - .incbin "graphics/trainers/front_pics/leaf_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Leaf:: @ 8D65DF4 - .incbin "graphics/trainers/palettes/leaf.gbapal.lz" - - .align 2 -gTrainerFrontPic_RubySapphireBrendan:: @ 8D65E1C - .incbin "graphics/trainers/front_pics/ruby_sapphire_brendan_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_RubySapphireBrendan:: @ 8D66130 - .incbin "graphics/trainers/palettes/ruby_sapphire_brendan.gbapal.lz" - - .align 2 -gTrainerFrontPic_RubySapphireMay:: @ 8D66158 - .incbin "graphics/trainers/front_pics/ruby_sapphire_may_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_RubySapphireMay:: @ 8D66458 - .incbin "graphics/trainers/palettes/ruby_sapphire_may.gbapal.lz" - - .align 2 -gTrainerBackPic_Brendan:: @ 8D66480 - .incbin "graphics/trainers/back_pics/brendan_back_pic.4bpp" - - .align 2 -gTrainerBackPic_May:: @ 8D68480 - .incbin "graphics/trainers/back_pics/may_back_pic.4bpp" - - .align 2 -gTrainerBackPic_Red:: @ 8D6A480 - .incbin "graphics/trainers/back_pics/red_back_pic.4bpp" - - .align 2 -gTrainerBackPic_Leaf:: @ 8D6CC80 - .incbin "graphics/trainers/back_pics/leaf_back_pic.4bpp" - - .align 2 -gTrainerBackPic_RubySapphireBrendan:: @ 8D6F480 - .incbin "graphics/trainers/back_pics/ruby_sapphire_brendan_back_pic.4bpp" - - .align 2 -gTrainerBackPic_RubySapphireMay:: @ 8D71480 - .incbin "graphics/trainers/back_pics/ruby_sapphire_may_back_pic.4bpp" - - .align 2 -gTrainerBackPic_Wally:: @ 8D73480 - .incbin "graphics/trainers/back_pics/wally_back_pic.4bpp" - - .align 2 -gTrainerBackPic_Steven:: @ 8D75480 - .incbin "graphics/trainers/back_pics/steven_back_pic.4bpp" - - .align 2 -gTrainerBackPicPalette_Red:: @ 8D77480 - .incbin "graphics/trainers/palettes/red_back_pic.gbapal.lz" - - .align 2 -gTrainerBackPicPalette_Leaf:: @ 8D774A8 - .incbin "graphics/trainers/palettes/leaf_back_pic.gbapal.lz" diff --git a/ld_script.txt b/ld_script.txt index a4ef0bb17d..0a6a222908 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -1141,6 +1141,7 @@ SECTIONS { gfx_data : ALIGN(4) { + src/graphics.o(.rodata); data/graphics.o(gfx_data); } =0 diff --git a/src/graphics.c b/src/graphics.c new file mode 100644 index 0000000000..8a4c98bb32 --- /dev/null +++ b/src/graphics.c @@ -0,0 +1,1974 @@ +#include "global.h" + +const u8 gBattleTextboxTiles[] = INCBIN_U8("graphics/interface/menu.4bpp.lz"); // menu window and arrows +const u8 gBattleTextboxPalette[] = INCBIN_U8("graphics/interface/menu.gbapal.lz"); +const u16 gBattleTextboxTilemap[] = INCBIN_U16("graphics/interface/menu_map.bin.lz"); + +const u8 gMonStillFrontPic_CircledQuestionMark[] = INCBIN_U8("graphics/pokemon/front_pics/circled_question_mark_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_CircledQuestionMark[] = INCBIN_U8("graphics/pokemon/back_pics/circled_question_mark_back_pic.4bpp.lz"); +const u8 gMonPalette_CircledQuestionMark[] = INCBIN_U8("graphics/pokemon/palettes/circled_question_mark_palette.gbapal.lz"); +const u8 gMonShinyPalette_CircledQuestionMark[] = INCBIN_U8("graphics/pokemon/palettes/circled_question_mark_shiny_palette.gbapal.lz"); + +const u8 gUnusedGfx_OldCharmap[] = INCBIN_U8("graphics/unused/old_charmap.4bpp.lz"); // japanese table and bunch of stuff +const u16 gUnusedTimemap_OldCharmap[] = INCBIN_U16("graphics/unused/old_charmap.bin.lz"); +const u8 gUnusedPal_OldCharmap[] = INCBIN_U8("graphics/unused/old_charmap.gbapal.lz"); + +const u8 gSmokescreenImpactTiles[] = INCBIN_U8("graphics/battle_anims/sprites/smokescreen_impact.4bpp.lz"); +const u8 gSmokescreenImpactPalette[] = INCBIN_U8("graphics/battle_anims/sprites/smokescreen_impact.gbapal.lz"); + +const u8 gInterfaceGfx_PokeBall[] = INCBIN_U8("graphics/interface/ball/poke.4bpp.lz"); // 0xBC +const u8 gInterfacePal_PokeBall[] = INCBIN_U8("graphics/interface/ball/poke.gbapal.lz"); + +const u8 gInterfaceGfx_GreatBall[] = INCBIN_U8("graphics/interface/ball/great.4bpp.lz"); // 0xBC +const u8 gInterfacePal_GreatBall[] = INCBIN_U8("graphics/interface/ball/great.gbapal.lz"); + +const u8 gInterfaceGfx_SafariBall[] = INCBIN_U8("graphics/interface/ball/safari.4bpp.lz"); // 0xBC +const u8 gInterfacePal_SafariBall[] = INCBIN_U8("graphics/interface/ball/safari.gbapal.lz"); + +const u8 gInterfaceGfx_UltraBall[] = INCBIN_U8("graphics/interface/ball/ultra.4bpp.lz"); // 0xBC +const u8 gInterfacePal_UltraBall[] = INCBIN_U8("graphics/interface/ball/ultra.gbapal.lz"); + +const u8 gInterfaceGfx_MasterBall[] = INCBIN_U8("graphics/interface/ball/master.4bpp.lz"); // 0xBC +const u8 gInterfacePal_MasterBall[] = INCBIN_U8("graphics/interface/ball/master.gbapal.lz"); + +const u8 gInterfaceGfx_NetBall[] = INCBIN_U8("graphics/interface/ball/net.4bpp.lz"); // 0xBC +const u8 gInterfacePal_NetBall[] = INCBIN_U8("graphics/interface/ball/net.gbapal.lz"); + +const u8 gInterfaceGfx_DiveBall[] = INCBIN_U8("graphics/interface/ball/dive.4bpp.lz"); // 0xBC +const u8 gInterfacePal_DiveBall[] = INCBIN_U8("graphics/interface/ball/dive.gbapal.lz"); + +const u8 gInterfaceGfx_NestBall[] = INCBIN_U8("graphics/interface/ball/nest.4bpp.lz"); // 0xBC +const u8 gInterfacePal_NestBall[] = INCBIN_U8("graphics/interface/ball/nest.gbapal.lz"); + +const u8 gInterfaceGfx_RepeatBall[] = INCBIN_U8("graphics/interface/ball/repeat.4bpp.lz"); // 0xBC +const u8 gInterfacePal_RepeatBall[] = INCBIN_U8("graphics/interface/ball/repeat.gbapal.lz"); + +const u8 gInterfaceGfx_TimerBall[] = INCBIN_U8("graphics/interface/ball/timer.4bpp.lz"); // 0xBC +const u8 gInterfacePal_TimerBall[] = INCBIN_U8("graphics/interface/ball/timer.gbapal.lz"); + +const u8 gInterfaceGfx_LuxuryBall[] = INCBIN_U8("graphics/interface/ball/luxury.4bpp.lz"); // 0xBC +const u8 gInterfacePal_LuxuryBall[] = INCBIN_U8("graphics/interface/ball/luxury.gbapal.lz"); + +const u8 gInterfaceGfx_PremierBall[] = INCBIN_U8("graphics/interface/ball/premier.4bpp.lz"); // 0xBC +const u8 gInterfacePal_PremierBall[] = INCBIN_U8("graphics/interface/ball/premier.gbapal.lz"); + +const u8 gOpenPokeballGfx[] = INCBIN_U8("graphics/interface/ball_open.4bpp.lz"); + +const u8 gBlankGfxCompressed[] = INCBIN_U8("graphics/interface/blank.4bpp.lz"); + +// Battle anims +const u8 gBattleAnimSpriteSheet_146[] = INCBIN_U8("graphics/battle_anims/sprites/146.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_000[] = INCBIN_U8("graphics/battle_anims/sprites/000.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_003[] = INCBIN_U8("graphics/battle_anims/sprites/003.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_004[] = INCBIN_U8("graphics/battle_anims/sprites/004.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_005[] = INCBIN_U8("graphics/battle_anims/sprites/005.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_006[] = INCBIN_U8("graphics/battle_anims/sprites/006.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_115[] = INCBIN_U8("graphics/battle_anims/sprites/115.gbapal.lz"); +const u8 gBattleAnimSpritePalette_000[] = INCBIN_U8("graphics/battle_anims/sprites/000.gbapal.lz"); +const u8 gBattleAnimSpritePalette_003[] = INCBIN_U8("graphics/battle_anims/sprites/003.gbapal.lz"); +const u8 gBattleAnimSpritePalette_004[] = INCBIN_U8("graphics/battle_anims/sprites/004.gbapal.lz"); +const u8 gBattleAnimSpritePalette_005[] = INCBIN_U8("graphics/battle_anims/sprites/005.gbapal.lz"); +const u8 gBattleAnimSpritePalette_006[] = INCBIN_U8("graphics/battle_anims/sprites/006.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_161[] = INCBIN_U8("graphics/battle_anims/sprites/161.4bpp.lz"); +const u8 gBattleAnimSpritePalette_161[] = INCBIN_U8("graphics/battle_anims/sprites/161.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_007[] = INCBIN_U8("graphics/battle_anims/sprites/007.4bpp.lz"); +const u8 gBattleAnimSpritePalette_007[] = INCBIN_U8("graphics/battle_anims/sprites/007.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_008[] = INCBIN_U8("graphics/battle_anims/sprites/008.4bpp.lz"); +const u8 gBattleAnimSpritePalette_008[] = INCBIN_U8("graphics/battle_anims/sprites/008.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_010[] = INCBIN_U8("graphics/battle_anims/sprites/010.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_010[] = INCBIN_U8("graphics/battle_anims/sprites/010.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_009[] = INCBIN_U8("graphics/battle_anims/sprites/009.4bpp.lz"); +const u8 gBattleAnimSpritePalette_009[] = INCBIN_U8("graphics/battle_anims/sprites/009.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_011[] = INCBIN_U8("graphics/battle_anims/sprites/011.4bpp.lz"); +const u8 gBattleAnimSpritePalette_011[] = INCBIN_U8("graphics/battle_anims/sprites/011.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_012[] = INCBIN_U8("graphics/battle_anims/sprites/012.4bpp.lz"); +const u8 gBattleAnimSpritePalette_012[] = INCBIN_U8("graphics/battle_anims/sprites/012.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_152[] = INCBIN_U8("graphics/battle_anims/sprites/152.4bpp.lz"); +const u8 gBattleAnimSpritePalette_152[] = INCBIN_U8("graphics/battle_anims/sprites/152.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_013[] = INCBIN_U8("graphics/battle_anims/sprites/013.4bpp.lz"); +const u8 gBattleAnimSpritePalette_013[] = INCBIN_U8("graphics/battle_anims/sprites/013.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_015[] = INCBIN_U8("graphics/battle_anims/sprites/015.4bpp.lz"); +const u8 gBattleAnimSpritePalette_015[] = INCBIN_U8("graphics/battle_anims/sprites/015.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_016[] = INCBIN_U8("graphics/battle_anims/sprites/016.4bpp.lz"); +const u8 gBattleAnimSpritePalette_016[] = INCBIN_U8("graphics/battle_anims/sprites/016.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_017[] = INCBIN_U8("graphics/battle_anims/sprites/017.4bpp.lz"); + +const u8 gUnknownGfx_C035B8[] = INCBIN_U8("graphics/unknown/unknown_C035B8.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_019[] = INCBIN_U8("graphics/battle_anims/sprites/019.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_019[] = INCBIN_U8("graphics/battle_anims/sprites/019.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_020[] = INCBIN_U8("graphics/battle_anims/sprites/020.4bpp.lz"); +const u8 gBattleAnimSpritePalette_020[] = INCBIN_U8("graphics/battle_anims/sprites/020.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_023[] = INCBIN_U8("graphics/battle_anims/sprites/023.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_023[] = INCBIN_U8("graphics/battle_anims/sprites/023.4bpp.lz"); + +const u8 gUnused_BattleSpritePalette_023[] = INCBIN_U8("graphics/unused/battle_anim_023.gbapal.lz"); + +const u8 gUnusedGfx_MusicNotes[] = INCBIN_U8("graphics/unused/music_notes.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_021[] = INCBIN_U8("graphics/battle_anims/sprites/021.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_021[] = INCBIN_U8("graphics/battle_anims/sprites/021.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_022[] = INCBIN_U8("graphics/battle_anims/sprites/022.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_025[] = INCBIN_U8("graphics/battle_anims/sprites/025.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_025[] = INCBIN_U8("graphics/battle_anims/sprites/025.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_024[] = INCBIN_U8("graphics/battle_anims/sprites/024.4bpp.lz"); +const u8 gBattleAnimSpritePalette_024[] = INCBIN_U8("graphics/battle_anims/sprites/024.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_031[] = INCBIN_U8("graphics/battle_anims/sprites/031.4bpp.lz"); +const u8 gBattleAnimSpritePalette_031[] = INCBIN_U8("graphics/battle_anims/sprites/031.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_032[] = INCBIN_U8("graphics/battle_anims/sprites/032.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_032[] = INCBIN_U8("graphics/battle_anims/sprites/032.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_026[] = INCBIN_U8("graphics/battle_anims/sprites/026.4bpp.lz"); +const u8 gBattleAnimSpritePalette_026[] = INCBIN_U8("graphics/battle_anims/sprites/026.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_027[] = INCBIN_U8("graphics/battle_anims/sprites/027.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_027[] = INCBIN_U8("graphics/battle_anims/sprites/027.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_028[] = INCBIN_U8("graphics/battle_anims/sprites/028.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_028[] = INCBIN_U8("graphics/battle_anims/sprites/028.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_029[] = INCBIN_U8("graphics/battle_anims/sprites/029.4bpp.lz"); +const u8 gBattleAnimSpritePalette_029[] = INCBIN_U8("graphics/battle_anims/sprites/029.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_030[] = INCBIN_U8("graphics/battle_anims/sprites/030.4bpp.lz"); +const u8 gBattleAnimSpritePalette_030[] = INCBIN_U8("graphics/battle_anims/sprites/030.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_033[] = INCBIN_U8("graphics/battle_anims/sprites/033.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_033[] = INCBIN_U8("graphics/battle_anims/sprites/033.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_034[] = INCBIN_U8("graphics/battle_anims/sprites/034.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_035[] = INCBIN_U8("graphics/battle_anims/sprites/035.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_036[] = INCBIN_U8("graphics/battle_anims/sprites/036.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_036[] = INCBIN_U8("graphics/battle_anims/sprites/036.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_037[] = INCBIN_U8("graphics/battle_anims/sprites/037.4bpp.lz"); + +const u8 gUnknownGfx_C06D98[] = INCBIN_U8("graphics/unknown/unknown_C06D98.4bpp.lz"); +const u8 gUnknownPal_C06D98[] = INCBIN_U8("graphics/unknown/unknown_C06D98.gbapal.lz"); +const u8 gUnknownPal_C06D98_2[] = INCBIN_U8("graphics/unknown/unknown_C06D98_2.gbapal.lz"); + +// old battle interface data, unused + +const u8 gOldBattleInterfaceGfx[] = INCBIN_U8("graphics/unused/obi1.4bpp.lz"); +const u8 gOldBattleInterfacePal_1_2_3[] = INCBIN_U8("graphics/unused/obi_palpak1.gbapal.lz"); // palettes 1-3 +const u8 gOldBattleInterfacePal4[] = INCBIN_U8("graphics/unused/old_pal4.gbapal.lz"); // 4 is by itself +const u8 gOldBattleInterfacePal_5_6_7[] = INCBIN_U8("graphics/unused/obi_palpak3.gbapal.lz"); // palettes 5-7 +const u8 gOldBattleInterfaceGfx2[] = INCBIN_U8("graphics/unused/obi2.4bpp.lz"); +const u16 gOldBattleInterfaceTilemap[] = INCBIN_U16("graphics/unused/old_battle_interface_tilemap.bin.lz"); + +const u8 gBattleAnimSpritePalette_038[] = INCBIN_U8("graphics/battle_anims/sprites/038.gbapal.lz"); +const u8 gBattleAnimSpritePalette_039[] = INCBIN_U8("graphics/battle_anims/sprites/039.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_038[] = INCBIN_U8("graphics/battle_anims/sprites/038.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_039[] = INCBIN_U8("graphics/battle_anims/sprites/039.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_040[] = INCBIN_U8("graphics/battle_anims/sprites/040.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_041[] = INCBIN_U8("graphics/battle_anims/sprites/041.4bpp.lz"); + +const u8 gPartyMenuHpBar_Gfx[] = INCBIN_U8("graphics/interface/party_menu_hpbar.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_042[] = INCBIN_U8("graphics/battle_anims/sprites/042.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_042[] = INCBIN_U8("graphics/battle_anims/sprites/042.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_043[] = INCBIN_U8("graphics/battle_anims/sprites/043.4bpp.lz"); +const u8 gBattleAnimSpritePalette_043[] = INCBIN_U8("graphics/battle_anims/sprites/043.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_044[] = INCBIN_U8("graphics/battle_anims/sprites/044.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_044[] = INCBIN_U8("graphics/battle_anims/sprites/044.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_045[] = INCBIN_U8("graphics/battle_anims/sprites/045.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_045[] = INCBIN_U8("graphics/battle_anims/sprites/045.4bpp.lz"); + +// two unused window frames. + +const u8 gUnknown_08C08F0C[] = INCBIN_U8("graphics/battle_interface/unused_window.4bpp.lz"); +const u8 gUnknown_08C093C8[] = INCBIN_U8("graphics/battle_interface/unused_window.gbapal.lz"); + +const u8 gUnknown_08C093F0[] = INCBIN_U8("graphics/interface/hp_numbers.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_046[] = INCBIN_U8("graphics/battle_anims/sprites/046.4bpp.lz"); +const u8 gBattleAnimSpritePalette_046[] = INCBIN_U8("graphics/battle_anims/sprites/046.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_047[] = INCBIN_U8("graphics/battle_anims/sprites/047.gbapal.lz"); + +const u8 gUnusedGfx_Window2[] = INCBIN_U8("graphics/battle_interface/unused_window2.4bpp.lz"); +const u8 gUnusedGfx_Window2Bar[] = INCBIN_U8("graphics/battle_interface/unused_window2bar.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_048[] = INCBIN_U8("graphics/battle_anims/sprites/048.4bpp.lz"); +const u8 gBattleAnimSpritePalette_048[] = INCBIN_U8("graphics/battle_anims/sprites/048.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_049[] = INCBIN_U8("graphics/battle_anims/sprites/049.gbapal.lz"); +const u8 gBattleAnimSpritePalette_050[] = INCBIN_U8("graphics/battle_anims/sprites/050.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_050[] = INCBIN_U8("graphics/battle_anims/sprites/050.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_051[] = INCBIN_U8("graphics/battle_anims/sprites/051.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_052[] = INCBIN_U8("graphics/battle_anims/sprites/052.4bpp.lz"); + +const u8 gUnusedGfx_LineSketch[] = INCBIN_U8("graphics/unused/line_sketch.4bpp.lz"); +const u8 gUnusedPal_LineSketch[] = INCBIN_U8("graphics/unused/line_sketch.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_054[] = INCBIN_U8("graphics/battle_anims/sprites/054.4bpp.lz"); +const u8 gBattleAnimSpritePalette_054[] = INCBIN_U8("graphics/battle_anims/sprites/054.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_056[] = INCBIN_U8("graphics/battle_anims/sprites/056.4bpp.lz"); +const u8 gBattleAnimSpritePalette_056[] = INCBIN_U8("graphics/battle_anims/sprites/056.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_055[] = INCBIN_U8("graphics/battle_anims/sprites/055.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_057[] = INCBIN_U8("graphics/battle_anims/sprites/057.4bpp.lz"); +const u8 gBattleAnimSpritePalette_057[] = INCBIN_U8("graphics/battle_anims/sprites/057.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_058[] = INCBIN_U8("graphics/battle_anims/sprites/058.4bpp.lz"); +const u8 gBattleAnimSpritePalette_058[] = INCBIN_U8("graphics/battle_anims/sprites/058.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_059[] = INCBIN_U8("graphics/battle_anims/sprites/059.4bpp.lz"); +const u8 gBattleAnimSpritePalette_059[] = INCBIN_U8("graphics/battle_anims/sprites/059.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_060[] = INCBIN_U8("graphics/battle_anims/sprites/060.4bpp.lz"); +const u8 gBattleAnimSpritePalette_060[] = INCBIN_U8("graphics/battle_anims/sprites/060.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_061[] = INCBIN_U8("graphics/battle_anims/sprites/061.4bpp.lz"); +const u8 gBattleAnimSpritePalette_061[] = INCBIN_U8("graphics/battle_anims/sprites/061.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_062[] = INCBIN_U8("graphics/battle_anims/sprites/062.4bpp.lz"); +const u8 gBattleAnimSpritePalette_062[] = INCBIN_U8("graphics/battle_anims/sprites/062.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_063[] = INCBIN_U8("graphics/battle_anims/sprites/063.4bpp.lz"); +const u8 gBattleAnimSpritePalette_063[] = INCBIN_U8("graphics/battle_anims/sprites/063.gbapal.lz"); + +const u8 gUnusedGfx_Metronome[] = INCBIN_U8("graphics/unused/metronome_hand_small.4bpp.lz"); // unused, was for metronome at one point + +const u8 gBattleAnimSpritePalette_091[] = INCBIN_U8("graphics/battle_anims/sprites/091.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_065[] = INCBIN_U8("graphics/battle_anims/sprites/065.4bpp.lz"); +const u8 gBattleAnimSpritePalette_065[] = INCBIN_U8("graphics/battle_anims/sprites/065.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_066[] = INCBIN_U8("graphics/battle_anims/sprites/066.4bpp.lz"); +const u8 gBattleAnimSpritePalette_066[] = INCBIN_U8("graphics/battle_anims/sprites/066.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_070[] = INCBIN_U8("graphics/battle_anims/sprites/070.4bpp.lz"); +const u8 gBattleAnimSpritePalette_070[] = INCBIN_U8("graphics/battle_anims/sprites/070.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_071[] = INCBIN_U8("graphics/battle_anims/sprites/071.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_072[] = INCBIN_U8("graphics/battle_anims/sprites/072.4bpp.lz"); +const u8 gBattleAnimSpritePalette_072[] = INCBIN_U8("graphics/battle_anims/sprites/072.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_073[] = INCBIN_U8("graphics/battle_anims/sprites/073.4bpp.lz"); +const u8 gBattleAnimSpritePalette_073[] = INCBIN_U8("graphics/battle_anims/sprites/073.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_075[] = INCBIN_U8("graphics/battle_anims/sprites/075.4bpp.lz"); +const u8 gBattleAnimSpritePalette_075[] = INCBIN_U8("graphics/battle_anims/sprites/075.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_078[] = INCBIN_U8("graphics/battle_anims/sprites/078.4bpp.lz"); +const u8 gBattleAnimSpritePalette_078[] = INCBIN_U8("graphics/battle_anims/sprites/078.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_079[] = INCBIN_U8("graphics/battle_anims/sprites/079.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_080[] = INCBIN_U8("graphics/battle_anims/sprites/080.4bpp.lz"); +const u8 gBattleAnimSpritePalette_080[] = INCBIN_U8("graphics/battle_anims/sprites/080.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_081[] = INCBIN_U8("graphics/battle_anims/sprites/081.4bpp.lz"); +const u8 gBattleAnimSpritePalette_081[] = INCBIN_U8("graphics/battle_anims/sprites/081.gbapal.lz"); + +const u16 gUnknown_C0CA1C[] = INCBIN_U16("graphics/unknown/unknown_C0CA1C.bin"); +const u16 gUnknown_C0CA40[] = INCBIN_U16("graphics/unknown/unknown_C0CA40.bin"); +const u16 gUnknown_C0CA64[] = INCBIN_U16("graphics/unknown/unknown_C0CA64.bin"); +const u16 gUnusedGfx8bpp_LineSketch2[] = INCBIN_U16("graphics/unused/line_sketch_2.8bpp.lz"); +const u16 gUnknown_C0CAE0[] = INCBIN_U16("graphics/unknown/unknown_C0CAE0.bin"); +const u16 gUnusedTilemap_LineSketch2[] = INCBIN_U16("graphics/unused/line_sketch_2.bin.lz"); + +const u8 gBattleAnimSpriteSheet_082[] = INCBIN_U8("graphics/battle_anims/sprites/082.4bpp.lz"); +const u8 gBattleAnimSpritePalette_082[] = INCBIN_U8("graphics/battle_anims/sprites/082.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_083[] = INCBIN_U8("graphics/battle_anims/sprites/083.gbapal.lz"); +const u8 gBattleAnimSpritePalette_084[] = INCBIN_U8("graphics/battle_anims/sprites/084.gbapal.lz"); +const u8 gBattleAnimSpritePalette_085[] = INCBIN_U8("graphics/battle_anims/sprites/085.gbapal.lz"); +const u8 gBattleAnimSpritePalette_086[] = INCBIN_U8("graphics/battle_anims/sprites/086.gbapal.lz"); +const u8 gBattleAnimSpritePalette_088[] = INCBIN_U8("graphics/battle_anims/sprites/088.gbapal.lz"); +const u8 gBattleAnimSpritePalette_089[] = INCBIN_U8("graphics/battle_anims/sprites/089.gbapal.lz"); +const u8 gBattleAnimSpritePalette_090[] = INCBIN_U8("graphics/battle_anims/sprites/090.gbapal.lz"); +const u8 gBattleAnimSpritePalette_092[] = INCBIN_U8("graphics/battle_anims/sprites/092.gbapal.lz"); +const u8 gBattleAnimSpritePalette_093[] = INCBIN_U8("graphics/battle_anims/sprites/093.gbapal.lz"); +const u8 gBattleAnimSpritePalette_094[] = INCBIN_U8("graphics/battle_anims/sprites/094.gbapal.lz"); + +const u16 gUnknown_D0D2B4[] = INCBIN_U16("graphics/unknown/unknown_D0D2B4.bin.lz"); + +const u8 gBattleAnimSpritePalette_095[] = INCBIN_U8("graphics/battle_anims/sprites/095.gbapal.lz"); +const u8 gBattleAnimSpritePalette_096[] = INCBIN_U8("graphics/battle_anims/sprites/096.gbapal.lz"); +const u8 gBattleAnimSpritePalette_097[] = INCBIN_U8("graphics/battle_anims/sprites/097.gbapal.lz"); +const u8 gBattleAnimSpritePalette_100[] = INCBIN_U8("graphics/battle_anims/sprites/100.gbapal.lz"); +const u8 gBattleAnimSpritePalette_101[] = INCBIN_U8("graphics/battle_anims/sprites/101.gbapal.lz"); +const u8 gBattleAnimSpritePalette_103[] = INCBIN_U8("graphics/battle_anims/sprites/103.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_083[] = INCBIN_U8("graphics/battle_anims/sprites/083.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_084[] = INCBIN_U8("graphics/battle_anims/sprites/084.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_085[] = INCBIN_U8("graphics/battle_anims/sprites/085.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_086[] = INCBIN_U8("graphics/battle_anims/sprites/086.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_088[] = INCBIN_U8("graphics/battle_anims/sprites/088.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_089[] = INCBIN_U8("graphics/battle_anims/sprites/089.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_090[] = INCBIN_U8("graphics/battle_anims/sprites/090.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_091[] = INCBIN_U8("graphics/battle_anims/sprites/091.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_092[] = INCBIN_U8("graphics/battle_anims/sprites/092.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_093[] = INCBIN_U8("graphics/battle_anims/sprites/093.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_094[] = INCBIN_U8("graphics/battle_anims/sprites/094.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_095[] = INCBIN_U8("graphics/battle_anims/sprites/095.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_096[] = INCBIN_U8("graphics/battle_anims/sprites/096.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_097[] = INCBIN_U8("graphics/battle_anims/sprites/097.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_098[] = INCBIN_U8("graphics/battle_anims/sprites/098.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_100[] = INCBIN_U8("graphics/battle_anims/sprites/100.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_101[] = INCBIN_U8("graphics/battle_anims/sprites/101.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_102[] = INCBIN_U8("graphics/battle_anims/sprites/102.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_103[] = INCBIN_U8("graphics/battle_anims/sprites/103.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_104[] = INCBIN_U8("graphics/battle_anims/sprites/104.4bpp.lz"); +const u8 gBattleAnimSpritePalette_104[] = INCBIN_U8("graphics/battle_anims/sprites/104.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_105[] = INCBIN_U8("graphics/battle_anims/sprites/105.4bpp.lz"); +const u8 gBattleAnimSpritePalette_105[] = INCBIN_U8("graphics/battle_anims/sprites/105.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_106[] = INCBIN_U8("graphics/battle_anims/sprites/106.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_107[] = INCBIN_U8("graphics/battle_anims/sprites/107.4bpp.lz"); +const u8 gBattleAnimSpritePalette_107[] = INCBIN_U8("graphics/battle_anims/sprites/107.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_108[] = INCBIN_U8("graphics/battle_anims/sprites/108.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_109[] = INCBIN_U8("graphics/battle_anims/sprites/109.4bpp.lz"); +const u8 gBattleAnimSpritePalette_109[] = INCBIN_U8("graphics/battle_anims/sprites/109.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_110[] = INCBIN_U8("graphics/battle_anims/sprites/110.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_111[] = INCBIN_U8("graphics/battle_anims/sprites/111.4bpp.lz"); +const u8 gBattleAnimSpritePalette_111[] = INCBIN_U8("graphics/battle_anims/sprites/111.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_112[] = INCBIN_U8("graphics/battle_anims/sprites/112.4bpp.lz"); +const u8 gBattleAnimSpritePalette_112[] = INCBIN_U8("graphics/battle_anims/sprites/112.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_113[] = INCBIN_U8("graphics/battle_anims/sprites/113.4bpp.lz"); +const u8 gBattleAnimSpritePalette_113[] = INCBIN_U8("graphics/battle_anims/sprites/113.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_114[] = INCBIN_U8("graphics/battle_anims/sprites/114.4bpp.lz"); +const u8 gBattleAnimSpritePalette_114[] = INCBIN_U8("graphics/battle_anims/sprites/114.gbapal.lz"); + +const u16 gUnusedTilemap_BlueFrame[] = INCBIN_U16("graphics/unused/blue_frame.bin.lz"); // P1, P2, P3 and P4 tilemaps? +const u16 gUnusedTilemap_RedYellowGreenFrame[] = INCBIN_U16("graphics/unused/redyellowgreen_frame.bin.lz"); +const u8 gUnusedGfx_ColorFrames[] = INCBIN_U8("graphics/unused/color_frames.4bpp.lz"); +const u16 gUnusedPal_ColorFrames[] = INCBIN_U16("graphics/unused/color_frames.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_115[] = INCBIN_U8("graphics/battle_anims/sprites/115.4bpp.lz"); + +const u16 gUnusedGfx8bpp_WaterSplash [] = INCBIN_U16("graphics/unused/water_splash.8bpp.lz"); +const u16 gUnusedTilemap_WaterSplash[] = INCBIN_U16("graphics/unused/water_splash.bin.lz"); +const u8 gUnusedPalette_WaterSplash[] = INCBIN_U8("graphics/unused/water_splash.gbapal.lz"); + +const u8 gUnusedGfx_BasicFrame[] = INCBIN_U8("graphics/unused/basic_frame.4bpp.lz"); +const u8 gUnusedPal_BasicFrame[] = INCBIN_U8("graphics/unused/basic_frame.gbapal.lz"); +const u16 gUnusedTilemap_BasicFrame[] = INCBIN_U16("graphics/unused/basic_frame.bin.lz"); + +// Battle Interface + +const u16 gBattleInterface_BallStatusBarPal[] = INCBIN_U16("graphics/battle_interface/ball_status_bar.gbapal"); + +const u16 gBattleInterface_BallDisplayPal[] = INCBIN_U16("graphics/battle_interface/ball_display.gbapal"); + +//Originally an array? +const u8 gHealthboxElementsGfxTable[] = INCBIN_U8("graphics/battle_interface/hpbar.4bpp"); +const u8 gHealthboxElementsGfxTable_ExpBar[] = INCBIN_U8("graphics/battle_interface/expbar.4bpp"); +const u8 gHealthboxElementsGfxTable_StatusPsn[] = INCBIN_U8("graphics/battle_interface/status_psn.4bpp"); +const u8 gHealthboxElementsGfxTable_StatusPar[] = INCBIN_U8("graphics/battle_interface/status_par.4bpp"); +const u8 gHealthboxElementsGfxTable_StatusSlp[] = INCBIN_U8("graphics/battle_interface/status_slp.4bpp"); +const u8 gHealthboxElementsGfxTable_StatusFrz[] = INCBIN_U8("graphics/battle_interface/status_frz.4bpp"); +const u8 gHealthboxElementsGfxTable_StatusBrn[] = INCBIN_U8("graphics/battle_interface/status_brn.4bpp"); +const u8 gHealthboxElementsGfxTable_Misc[] = INCBIN_U8("graphics/battle_interface/misc.4bpp"); +const u8 gHealthboxElementsGfxTable_HpBarAnim[] = INCBIN_U8("graphics/battle_interface/hpbar_anim.4bpp"); +const u8 gHealthboxElementsGfxTable_MiscFrameEnd[] = INCBIN_U8("graphics/battle_interface/misc_frameend.4bpp"); + +const u8 gBattleInterface_BallDisplayGfx[] = INCBIN_U8("graphics/battle_interface/ball_display.4bpp"); + +//Originally an array? +const u8 gUnknown_08C1249C[] = INCBIN_U8("graphics/battle_interface/ball_display_unused_extra.4bpp"); +const u8 gBattleInterfaceGfx_Status2[] = INCBIN_U8("graphics/battle_interface/status2.4bpp"); // these three duplicate sets of graphics are for the opponent pokemon +const u8 gBattleInterfaceGfx_Status3[] = INCBIN_U8("graphics/battle_interface/status3.4bpp"); // and are also for use in double battles. they use dynamic palettes so +const u8 gBattleInterfaceGfx_Status4[] = INCBIN_U8("graphics/battle_interface/status4.4bpp"); // coloring them is an extreme headache and wont be done for now +const u8 gUnknown_D12FEC[] = INCBIN_U8("graphics/unknown/unknown_D12FEC.4bpp"); +const u8 gUnknown_D1300C[] = INCBIN_U8("graphics/unknown/unknown_D1300C.4bpp"); +const u8 gBattleInterfaceGfx_UnusedWindow3[] = INCBIN_U8("graphics/battle_interface/unused_window3.4bpp.lz"); +const u8 gBattleInterfaceGfx_UnusedWindow4[] = INCBIN_U8("graphics/battle_interface/unused_window4.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_116[] = INCBIN_U8("graphics/battle_anims/sprites/116.4bpp.lz"); +const u8 gBattleAnimSpritePalette_116[] = INCBIN_U8("graphics/battle_anims/sprites/116.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_117[] = INCBIN_U8("graphics/battle_anims/sprites/117.4bpp.lz"); +const u8 gBattleAnimSpritePalette_117[] = INCBIN_U8("graphics/battle_anims/sprites/117.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_118[] = INCBIN_U8("graphics/battle_anims/sprites/118.4bpp.lz"); +const u8 gBattleAnimSpritePalette_118[] = INCBIN_U8("graphics/battle_anims/sprites/118.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_119[] = INCBIN_U8("graphics/battle_anims/sprites/119.4bpp.lz"); +const u8 gBattleAnimSpritePalette_119[] = INCBIN_U8("graphics/battle_anims/sprites/119.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_120[] = INCBIN_U8("graphics/battle_anims/sprites/120.4bpp.lz"); +const u8 gBattleAnimSpritePalette_120[] = INCBIN_U8("graphics/battle_anims/sprites/120.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_121[] = INCBIN_U8("graphics/battle_anims/sprites/121.4bpp.lz"); +const u8 gBattleAnimSpritePalette_121[] = INCBIN_U8("graphics/battle_anims/sprites/121.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_122[] = INCBIN_U8("graphics/battle_anims/sprites/122.4bpp.lz"); +const u8 gBattleAnimSpritePalette_122[] = INCBIN_U8("graphics/battle_anims/sprites/122.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_123[] = INCBIN_U8("graphics/battle_anims/sprites/123.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_124[] = INCBIN_U8("graphics/battle_anims/sprites/124.4bpp.lz"); +const u8 gBattleAnimSpritePalette_124[] = INCBIN_U8("graphics/battle_anims/sprites/124.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_125[] = INCBIN_U8("graphics/battle_anims/sprites/125.4bpp.lz"); +const u8 gBattleAnimSpritePalette_125[] = INCBIN_U8("graphics/battle_anims/sprites/125.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_126[] = INCBIN_U8("graphics/battle_anims/sprites/126.4bpp.lz"); +const u8 gBattleAnimSpritePalette_126[] = INCBIN_U8("graphics/battle_anims/sprites/126.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_127[] = INCBIN_U8("graphics/battle_anims/sprites/127.4bpp.lz"); +const u8 gBattleAnimSpritePalette_127[] = INCBIN_U8("graphics/battle_anims/sprites/127.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_128[] = INCBIN_U8("graphics/battle_anims/sprites/128.4bpp.lz"); +const u8 gBattleAnimSpritePalette_128[] = INCBIN_U8("graphics/battle_anims/sprites/128.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_129[] = INCBIN_U8("graphics/battle_anims/sprites/129.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_130[] = INCBIN_U8("graphics/battle_anims/sprites/130.4bpp.lz"); +const u8 gBattleAnimSpritePalette_130[] = INCBIN_U8("graphics/battle_anims/sprites/130.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_131[] = INCBIN_U8("graphics/battle_anims/sprites/131.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_132[] = INCBIN_U8("graphics/battle_anims/sprites/132.4bpp.lz"); +const u8 gBattleAnimSpritePalette_132[] = INCBIN_U8("graphics/battle_anims/sprites/132.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_133[] = INCBIN_U8("graphics/battle_anims/sprites/133.4bpp.lz"); +const u8 gBattleAnimSpritePalette_133[] = INCBIN_U8("graphics/battle_anims/sprites/133.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_134[] = INCBIN_U8("graphics/battle_anims/sprites/134.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_076[] = INCBIN_U8("graphics/battle_anims/sprites/076.4bpp.lz"); +const u8 gBattleAnimSpritePalette_076[] = INCBIN_U8("graphics/battle_anims/sprites/076.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_077[] = INCBIN_U8("graphics/battle_anims/sprites/077.4bpp.lz"); + +// Contest + +const u8 gUnusedGfx_OldContest[] = INCBIN_U8("graphics/unused/old_contest.4bpp.lz"); +const u8 gUnusedPal_OldContest[] = INCBIN_U8("graphics/unused/old_contest.gbapal.lz"); +const u16 gUnusedTilemap_OldContest[] = INCBIN_U16("graphics/unused/old_contest.bin.lz"); + +const u16 gUnknownTilemap_C15BC0[] = INCBIN_U16("graphics/unknown/unknown_C15BC0.bin.lz"); + +const u8 gUnusedGfx_OldContest2[] = INCBIN_U8("graphics/unused/old_contest_2.4bpp.lz"); +const u8 gUnknown_08C16E90[] = INCBIN_U8("graphics/unused/old_contest_2.gbapal.lz"); +const u16 gUnknown_08C16FA8[] = INCBIN_U16("graphics/unused/old_contest_2.bin.lz"); + +const u16 gUnknown_08C17170[] = INCBIN_U16("graphics/unknown/unknown_C17170.bin.lz"); + +const u16 gUnknown_08C17410[] = INCBIN_U16("graphics/unknown/unknown_C17410.bin.lz"); + +const u16 gUnknown_08C1751C[] = INCBIN_U16("graphics/unknown/unknown_C1751C.bin.lz"); + +const u16 gUnknown_08C17980[] = INCBIN_U16("graphics/unknown/unknown_C17980.bin.lz"); + +const u8 gContestMiscGfx[] = INCBIN_U8("graphics/contest/misc.4bpp.lz"); + +const u8 gContestAudienceGfx[] = INCBIN_U8("graphics/contest/audience.4bpp.lz"); + +const u8 gUnknown_08C19168[] = INCBIN_U8("graphics/contest/faces.4bpp.lz"); + +const u8 gContestJudgeSymbolsGfx[] = INCBIN_U8("graphics/contest/judge_symbols.4bpp.lz"); +const u8 gContest3Pal[] = INCBIN_U8("graphics/contest/judge_symbols.gbapal.lz"); + +const u8 gTiles_8C19450[] = INCBIN_U8("graphics/contest/heart.4bpp"); + +const u8 gUnknownGfx_C19470[] = INCBIN_U8("graphics/unknown/unknown_C19470.4bpp.lz"); +const u8 gUnknownPal_C19470[] = INCBIN_U8("graphics/unknown/unknown_C19470.gbapal.lz"); + +const u8 gUnknown_08C19588[] = INCBIN_U8("graphics/contest/misc_2.4bpp.lz"); + +const u16 gUnknown_08C19EEC[] = INCBIN_U16("graphics/contest/misc_2_tilemap_1.bin.lz"); +const u16 gUnknown_08C1A000[] = INCBIN_U16("graphics/contest/misc_2_tilemap_2.bin.lz"); +const u16 gUnknown_08C1A12C[] = INCBIN_U16("graphics/contest/misc_2_tilemap_3.bin.lz"); + +const u8 gUnknown_08C1A2B4[] = INCBIN_U8("graphics/contest/misc_2.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_135[] = INCBIN_U8("graphics/battle_anims/sprites/135.4bpp.lz"); +const u8 gBattleAnimSpritePalette_135[] = INCBIN_U8("graphics/battle_anims/sprites/135.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_Particles[] = INCBIN_U8("graphics/battle_anims/sprites/particles.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_136[] = INCBIN_U8("graphics/battle_anims/sprites/136.4bpp.lz"); +const u8 gBattleAnimSpritePalette_136[] = INCBIN_U8("graphics/battle_anims/sprites/136.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_137[] = INCBIN_U8("graphics/battle_anims/sprites/137.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_139[] = INCBIN_U8("graphics/battle_anims/sprites/139.4bpp.lz"); +const u8 gBattleAnimSpritePalette_139[] = INCBIN_U8("graphics/battle_anims/sprites/139.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_145[] = INCBIN_U8("graphics/battle_anims/sprites/145.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_138[] = INCBIN_U8("graphics/battle_anims/sprites/138.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_140[] = INCBIN_U8("graphics/battle_anims/sprites/140.4bpp.lz"); +const u8 gBattleAnimSpritePalette_140[] = INCBIN_U8("graphics/battle_anims/sprites/140.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_141[] = INCBIN_U8("graphics/battle_anims/sprites/141.4bpp.lz"); +const u8 gBattleAnimSpritePalette_141[] = INCBIN_U8("graphics/battle_anims/sprites/141.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_142[] = INCBIN_U8("graphics/battle_anims/sprites/142.4bpp.lz"); + +const u8 gUnusedGfx_OldBeatUp[] = INCBIN_U8("graphics/unused/old_beatup.4bpp.lz"); +const u8 gUnusedPal_OldBeatUp[] = INCBIN_U8("graphics/unused/old_beatup.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_147[] = INCBIN_U8("graphics/battle_anims/sprites/147.4bpp.lz"); +const u8 gBattleAnimSpritePalette_147[] = INCBIN_U8("graphics/battle_anims/sprites/147.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_149[] = INCBIN_U8("graphics/battle_anims/sprites/149.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_148[] = INCBIN_U8("graphics/battle_anims/sprites/148.4bpp.lz"); +const u8 gBattleAnimSpritePalette_148[] = INCBIN_U8("graphics/battle_anims/sprites/148.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_259[] = INCBIN_U8("graphics/battle_anims/sprites/259.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_074[] = INCBIN_U8("graphics/battle_anims/sprites/074.4bpp.lz"); +const u8 gBattleAnimSpritePalette_074[] = INCBIN_U8("graphics/battle_anims/sprites/074.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_150[] = INCBIN_U8("graphics/battle_anims/sprites/150.4bpp.lz"); +const u8 gBattleAnimSpritePalette_150[] = INCBIN_U8("graphics/battle_anims/sprites/150.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_151[] = INCBIN_U8("graphics/battle_anims/sprites/151.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_153[] = INCBIN_U8("graphics/battle_anims/sprites/153.4bpp.lz"); +const u8 gBattleAnimSpritePalette_153[] = INCBIN_U8("graphics/battle_anims/sprites/153.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_154[] = INCBIN_U8("graphics/battle_anims/sprites/154.4bpp.lz"); +const u8 gBattleAnimSpritePalette_154[] = INCBIN_U8("graphics/battle_anims/sprites/154.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_155[] = INCBIN_U8("graphics/battle_anims/sprites/155.4bpp.lz"); +const u8 gBattleAnimSpritePalette_155[] = INCBIN_U8("graphics/battle_anims/sprites/155.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_156[] = INCBIN_U8("graphics/battle_anims/sprites/156.4bpp.lz"); +const u8 gBattleAnimSpritePalette_156[] = INCBIN_U8("graphics/battle_anims/sprites/156.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_157[] = INCBIN_U8("graphics/battle_anims/sprites/157.4bpp.lz"); +const u8 gBattleAnimSpritePalette_157[] = INCBIN_U8("graphics/battle_anims/sprites/157.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_158[] = INCBIN_U8("graphics/battle_anims/sprites/158.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_158[] = INCBIN_U8("graphics/battle_anims/sprites/158.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_159[] = INCBIN_U8("graphics/battle_anims/sprites/159.4bpp.lz"); +const u8 gBattleAnimSpritePalette_159[] = INCBIN_U8("graphics/battle_anims/sprites/159.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_160[] = INCBIN_U8("graphics/battle_anims/sprites/160.4bpp.lz"); +const u8 gBattleAnimSpritePalette_160[] = INCBIN_U8("graphics/battle_anims/sprites/160.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_144[] = INCBIN_U8("graphics/battle_anims/sprites/144.4bpp.lz"); +const u8 gBattleAnimSpritePalette_144[] = INCBIN_U8("graphics/battle_anims/sprites/144.gbapal.lz"); + +const u8 gUnknownGfx_D1C060[] = INCBIN_U8("graphics/unknown/unknown_D1C060.4bpp.lz"); +const u8 gUnknownPal_D1C060[] = INCBIN_U8("graphics/unknown/unknown_D1C060.gbapal.lz"); +const u16 gUnknownTilemap_D1C060[] = INCBIN_U16("graphics/unknown/unknown_D1C060.bin.lz"); + +const u8 gBattleAnimSpriteSheet_162[] = INCBIN_U8("graphics/battle_anims/sprites/162.4bpp.lz"); +const u8 gBattleAnimSpritePalette_162[] = INCBIN_U8("graphics/battle_anims/sprites/162.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_163[] = INCBIN_U8("graphics/battle_anims/sprites/163.4bpp.lz"); +const u8 gBattleAnimSpritePalette_163[] = INCBIN_U8("graphics/battle_anims/sprites/163.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_288[] = INCBIN_U8("graphics/battle_anims/sprites/288.gbapal.lz"); +const u8 gBattleAnimSpritePalette_164[] = INCBIN_U8("graphics/battle_anims/sprites/164.gbapal.lz"); +const u8 gBattleAnimSpritePalette_165[] = INCBIN_U8("graphics/battle_anims/sprites/165.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_166[] = INCBIN_U8("graphics/battle_anims/sprites/166.4bpp.lz"); +const u8 gBattleAnimSpritePalette_166[] = INCBIN_U8("graphics/battle_anims/sprites/166.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_167[] = INCBIN_U8("graphics/battle_anims/sprites/167.gbapal.lz"); +const u8 gBattleAnimSpritePalette_168[] = INCBIN_U8("graphics/battle_anims/sprites/168.gbapal.lz"); +const u8 gBattleAnimSpritePalette_169[] = INCBIN_U8("graphics/battle_anims/sprites/169.gbapal.lz"); +const u8 gBattleAnimSpritePalette_170[] = INCBIN_U8("graphics/battle_anims/sprites/170.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_171[] = INCBIN_U8("graphics/battle_anims/sprites/171.4bpp.lz"); +const u8 gBattleAnimSpritePalette_171[] = INCBIN_U8("graphics/battle_anims/sprites/171.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_172[] = INCBIN_U8("graphics/battle_anims/sprites/172.gbapal.lz"); + +const u8 gContestJudgeGfx[] = INCBIN_U8("graphics/contest/judge.4bpp.lz"); +const u8 gContest2Pal[] = INCBIN_U8("graphics/contest/judge.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_001[] = INCBIN_U8("graphics/battle_anims/sprites/001.4bpp.lz"); +const u8 gBattleAnimSpritePalette_001[] = INCBIN_U8("graphics/battle_anims/sprites/001.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_173[] = INCBIN_U8("graphics/battle_anims/sprites/173.4bpp.lz"); + +const u8 gBattleAnimBackgroundImage_00[] = INCBIN_U8("graphics/battle_anims/backgrounds/00.4bpp.lz"); +const u8 gBattleAnimBackgroundPalette_00[] = INCBIN_U8("graphics/battle_anims/backgrounds/00.gbapal.lz"); +const u16 gBattleAnimBackgroundTilemap_00[] = INCBIN_U16("graphics/battle_anims/backgrounds/00.bin.lz"); + +const u8 gUnknown_08C1D0AC[] = INCBIN_U8("graphics/battle_anims/masks/metal_shine.4bpp.lz"); +const u8 gUnknown_08C1D1E8[] = INCBIN_U8("graphics/battle_anims/masks/metal_shine.gbapal.lz"); +const u16 gUnknown_08C1D210[] = INCBIN_U16("graphics/battle_anims/masks/metal_shine.bin.lz"); + +const u8 gUnusedGfx_Goosuto[] = INCBIN_U8("graphics/unused/goosuto.4bpp.lz"); // ghost +const u8 gUnusedPal_Goosuto[] = INCBIN_U8("graphics/unused/goosuto.gbapal.lz"); +const u16 gUnusedTilemap_Goosuto[] = INCBIN_U16("graphics/unused/goosuto.bin.lz"); + +const u8 gBattleAnimSpriteSheet_174[] = INCBIN_U8("graphics/battle_anims/sprites/174.4bpp.lz"); +const u8 gBattleAnimSpritePalette_174[] = INCBIN_U8("graphics/battle_anims/sprites/174.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_175[] = INCBIN_U8("graphics/battle_anims/sprites/175.4bpp.lz"); +const u8 gBattleAnimSpritePalette_175[] = INCBIN_U8("graphics/battle_anims/sprites/175.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_176[] = INCBIN_U8("graphics/battle_anims/sprites/176.4bpp.lz"); +const u8 gBattleAnimSpritePalette_176[] = INCBIN_U8("graphics/battle_anims/sprites/176.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_177[] = INCBIN_U8("graphics/battle_anims/sprites/177.4bpp.lz"); +const u8 gBattleAnimSpritePalette_177[] = INCBIN_U8("graphics/battle_anims/sprites/177.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_178[] = INCBIN_U8("graphics/battle_anims/sprites/178.4bpp.lz"); +const u8 gBattleAnimSpritePalette_178[] = INCBIN_U8("graphics/battle_anims/sprites/178.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_179[] = INCBIN_U8("graphics/battle_anims/sprites/179.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_179[] = INCBIN_U8("graphics/battle_anims/sprites/179.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_180[] = INCBIN_U8("graphics/battle_anims/sprites/180.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_181[] = INCBIN_U8("graphics/battle_anims/sprites/181.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_182[] = INCBIN_U8("graphics/battle_anims/sprites/182.4bpp.lz"); +const u8 gBattleAnimSpritePalette_182[] = INCBIN_U8("graphics/battle_anims/sprites/182.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_183[] = INCBIN_U8("graphics/battle_anims/sprites/183.4bpp.lz"); +const u8 gBattleAnimSpritePalette_183[] = INCBIN_U8("graphics/battle_anims/sprites/183.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_184[] = INCBIN_U8("graphics/battle_anims/sprites/184.4bpp.lz"); +const u8 gBattleAnimSpritePalette_184[] = INCBIN_U8("graphics/battle_anims/sprites/184.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_185[] = INCBIN_U8("graphics/battle_anims/sprites/185.4bpp.lz"); +const u8 gBattleAnimSpritePalette_185[] = INCBIN_U8("graphics/battle_anims/sprites/185.gbapal.lz"); + +const u8 gBattleAnimBackgroundImage_03[] = INCBIN_U8("graphics/battle_anims/backgrounds/03.4bpp.lz"); +const u8 gBattleAnimBackgroundPalette_03[] = INCBIN_U8("graphics/battle_anims/backgrounds/03.gbapal.lz"); +const u16 gBattleAnimBackgroundTilemap_03[] = INCBIN_U16("graphics/battle_anims/backgrounds/03.bin.lz"); + +const u8 gBattleAnimSpriteSheet_187[] = INCBIN_U8("graphics/battle_anims/sprites/187.4bpp.lz"); +const u8 gBattleAnimSpritePalette_187[] = INCBIN_U8("graphics/battle_anims/sprites/187.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_186[] = INCBIN_U8("graphics/battle_anims/sprites/186.4bpp.lz"); +const u8 gBattleAnimSpritePalette_186[] = INCBIN_U8("graphics/battle_anims/sprites/186.gbapal.lz"); + +const u8 gUnknown_08C1F1C8[] = INCBIN_U8("graphics/battle_interface/window.4bpp.lz"); +const u8 gUnknown_08C1F46C[] = INCBIN_U8("graphics/battle_interface/window2.4bpp.lz"); +const u8 gUnknown_08C1F5E8[] = INCBIN_U8( "graphics/battle_interface/window3.4bpp.lz"); +const u8 gUnknown_08C1F76C[] = INCBIN_U8("graphics/battle_interface/window4.4bpp.lz"); +const u8 gUnknown_08C1F8E8[] = INCBIN_U8("graphics/battle_interface/window5.4bpp.lz"); + +const u8 gUnusedGfx_Shadow[] = INCBIN_U8("graphics/unused/shadow.4bpp.lz"); +const u8 gUnusedPal_Shadow[] = INCBIN_U8("graphics/unused/shadow.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_014[] = INCBIN_U8("graphics/battle_anims/sprites/014.4bpp.lz"); +const u8 gBattleAnimSpritePalette_014[] = INCBIN_U8("graphics/battle_anims/sprites/014.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_190[] = INCBIN_U8("graphics/battle_anims/sprites/190.4bpp.lz"); +const u8 gBattleAnimSpritePalette_190[] = INCBIN_U8("graphics/battle_anims/sprites/190.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_191[] = INCBIN_U8("graphics/battle_anims/sprites/191.4bpp.lz"); +const u8 gBattleAnimSpritePalette_191[] = INCBIN_U8("graphics/battle_anims/sprites/191.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_189[] = INCBIN_U8("graphics/battle_anims/sprites/189.4bpp.lz"); +const u8 gBattleAnimSpritePalette_189[] = INCBIN_U8("graphics/battle_anims/sprites/189.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_192[] = INCBIN_U8("graphics/battle_anims/sprites/192.4bpp.lz"); +const u8 gBattleAnimSpritePalette_192[] = INCBIN_U8("graphics/battle_anims/sprites/192.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_193[] = INCBIN_U8("graphics/battle_anims/sprites/193.4bpp.lz"); +const u8 gBattleAnimSpritePalette_193[] = INCBIN_U8("graphics/battle_anims/sprites/193.gbapal.lz"); + +const u8 gUnknown_08C20668[] = INCBIN_U8("graphics/battle_anims/masks/curse.4bpp.lz"); +const u16 gUnknown_08C20684[] = INCBIN_U16("graphics/battle_anims/masks/curse.bin.lz"); + +const u8 gBattleAnimSpriteSheet_002[] = INCBIN_U8("graphics/battle_anims/sprites/002.4bpp.lz"); +const u8 gBattleAnimSpritePalette_002[] = INCBIN_U8("graphics/battle_anims/sprites/002.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_196[] = INCBIN_U8("graphics/battle_anims/sprites/196.4bpp.lz"); +const u8 gBattleAnimSpritePalette_196[] = INCBIN_U8("graphics/battle_anims/sprites/196.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_194[] = INCBIN_U8("graphics/battle_anims/sprites/194.4bpp.lz"); +const u8 gBattleAnimSpritePalette_194[] = INCBIN_U8("graphics/battle_anims/sprites/194.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_195[] = INCBIN_U8("graphics/battle_anims/sprites/195.4bpp.lz"); +const u8 gBattleAnimSpritePalette_195[] = INCBIN_U8("graphics/battle_anims/sprites/195.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_197[] = INCBIN_U8("graphics/battle_anims/sprites/197.4bpp.lz"); +const u8 gBattleAnimSpritePalette_197[] = INCBIN_U8("graphics/battle_anims/sprites/197.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_198[] = INCBIN_U8("graphics/battle_anims/sprites/198.4bpp.lz"); +const u8 gBattleAnimSpritePalette_198[] = INCBIN_U8("graphics/battle_anims/sprites/198.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_199[] = INCBIN_U8("graphics/battle_anims/sprites/199.4bpp.lz"); +const u8 gBattleAnimSpritePalette_199[] = INCBIN_U8("graphics/battle_anims/sprites/199.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_200[] = INCBIN_U8("graphics/battle_anims/sprites/200.4bpp.lz"); +const u8 gBattleAnimSpritePalette_200[] = INCBIN_U8("graphics/battle_anims/sprites/200.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_201[] = INCBIN_U8("graphics/battle_anims/sprites/201.4bpp.lz"); +const u8 gBattleAnimSpritePalette_201[] = INCBIN_U8("graphics/battle_anims/sprites/201.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_204[] = INCBIN_U8("graphics/battle_anims/sprites/204.4bpp.lz"); +const u8 gBattleAnimSpritePalette_204[] = INCBIN_U8("graphics/battle_anims/sprites/204.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_202[] = INCBIN_U8("graphics/battle_anims/sprites/202.4bpp.lz"); +const u8 gBattleAnimSpritePalette_202[] = INCBIN_U8("graphics/battle_anims/sprites/202.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_203[] = INCBIN_U8("graphics/battle_anims/sprites/203.4bpp.lz"); +const u8 gBattleAnimSpritePalette_203[] = INCBIN_U8("graphics/battle_anims/sprites/203.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_206[] = INCBIN_U8("graphics/battle_anims/sprites/206.4bpp.lz"); +const u8 gBattleAnimSpritePalette_206[] = INCBIN_U8("graphics/battle_anims/sprites/206.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_205[] = INCBIN_U8("graphics/battle_anims/sprites/205.4bpp.lz"); +const u8 gBattleAnimSpritePalette_205[] = INCBIN_U8("graphics/battle_anims/sprites/205.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_207[] = INCBIN_U8("graphics/battle_anims/sprites/207.4bpp.lz"); +const u8 gBattleAnimSpritePalette_207[] = INCBIN_U8("graphics/battle_anims/sprites/207.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_208[] = INCBIN_U8("graphics/battle_anims/sprites/208.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_209[] = INCBIN_U8("graphics/battle_anims/sprites/209.4bpp.lz"); +const u8 gBattleAnimSpritePalette_209[] = INCBIN_U8("graphics/battle_anims/sprites/209.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_064[] = INCBIN_U8("graphics/battle_anims/sprites/064.4bpp.lz"); +const u8 gBattleAnimSpritePalette_064[] = INCBIN_U8("graphics/battle_anims/sprites/064.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_210[] = INCBIN_U8("graphics/battle_anims/sprites/210.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_219[] = INCBIN_U8("graphics/battle_anims/sprites/219.gbapal.lz"); +const u8 gBattleAnimSpritePalette_210[] = INCBIN_U8("graphics/battle_anims/sprites/210.gbapal.lz"); +const u8 gBattleAnimSpritePalette_216[] = INCBIN_U8("graphics/battle_anims/sprites/216.gbapal.lz"); + +const u8 gUnknown_08C232E0[] = INCBIN_U8("graphics/battle_anims/backgrounds/attract.4bpp.lz"); +const u8 gUnknown_08C23D50[] = INCBIN_U8("graphics/battle_anims/backgrounds/attract.gbapal.lz"); +const u16 gUnknown_08C23D78[] = INCBIN_U16("graphics/battle_anims/backgrounds/attract.bin.lz"); + +const u8 gBattleAnimSpriteSheet_217[] = INCBIN_U8("graphics/battle_anims/sprites/217.4bpp.lz"); +const u8 gBattleAnimSpritePalette_217[] = INCBIN_U8("graphics/battle_anims/sprites/217.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_212[] = INCBIN_U8("graphics/battle_anims/sprites/212.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_211[] = INCBIN_U8("graphics/battle_anims/sprites/211.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_213[] = INCBIN_U8("graphics/battle_anims/sprites/213.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_211[] = INCBIN_U8("graphics/battle_anims/sprites/211.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_214[] = INCBIN_U8("graphics/battle_anims/sprites/214.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_215[] = INCBIN_U8("graphics/battle_anims/sprites/215.4bpp.lz"); +const u8 gBattleAnimSpritePalette_215[] = INCBIN_U8("graphics/battle_anims/sprites/215.gbapal.lz"); + +const u8 gUnknown_08C249D0[] = INCBIN_U8("graphics/battle_anims/backgrounds/scary_face.gbapal.lz"); +const u8 gUnknown_08C249F8[] = INCBIN_U8("graphics/battle_anims/backgrounds/scary_face.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_218[] = INCBIN_U8("graphics/battle_anims/sprites/218.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_218[] = INCBIN_U8("graphics/battle_anims/sprites/218.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_087[] = INCBIN_U8("graphics/battle_anims/sprites/087.4bpp.lz"); +const u8 gBattleAnimSpritePalette_087[] = INCBIN_U8("graphics/battle_anims/sprites/087.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_018[] = INCBIN_U8("graphics/battle_anims/sprites/018.4bpp.lz"); +const u8 gBattleAnimSpritePalette_018[] = INCBIN_U8("graphics/battle_anims/sprites/018.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_220[] = INCBIN_U8("graphics/battle_anims/sprites/220.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_220[] = INCBIN_U8("graphics/battle_anims/sprites/220.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_221[] = INCBIN_U8("graphics/battle_anims/sprites/221.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_221[] = INCBIN_U8("graphics/battle_anims/sprites/221.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_222[] = INCBIN_U8("graphics/battle_anims/sprites/222.4bpp.lz"); +const u8 gBattleAnimSpritePalette_222[] = INCBIN_U8("graphics/battle_anims/sprites/222.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_223[] = INCBIN_U8("graphics/battle_anims/sprites/223.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_223[] = INCBIN_U8("graphics/battle_anims/sprites/223.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_224[] = INCBIN_U8("graphics/battle_anims/sprites/224.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_224[] = INCBIN_U8("graphics/battle_anims/sprites/224.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_230[] = INCBIN_U8("graphics/battle_anims/sprites/230.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_230[] = INCBIN_U8("graphics/battle_anims/sprites/230.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_228[] = INCBIN_U8("graphics/battle_anims/sprites/228.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_228[] = INCBIN_U8("graphics/battle_anims/sprites/228.4bpp.lz"); + +const u8 gBattleAnimBackgroundPalette_04[] = INCBIN_U8("graphics/battle_anims/backgrounds/04.gbapal.lz"); +const u8 gBattleAnimBackgroundImage_04[] = INCBIN_U8("graphics/battle_anims/backgrounds/04.4bpp.lz"); +const u16 gBattleAnimBackgroundTilemap_04[] = INCBIN_U16("graphics/battle_anims/backgrounds/04.bin.lz"); + +const u16 gBattleAnimBackgroundTilemap_05[] = INCBIN_U16("graphics/battle_anims/backgrounds/05.bin.lz"); +const u16 gBattleAnimBackgroundTilemap_06[] = INCBIN_U16("graphics/battle_anims/backgrounds/06.bin.lz"); + +const u8 gBattleAnimSpriteSheet_225[] = INCBIN_U8("graphics/battle_anims/sprites/225.4bpp.lz"); +const u8 gBattleAnimSpritePalette_225[] = INCBIN_U8("graphics/battle_anims/sprites/225.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_227[] = INCBIN_U8("graphics/battle_anims/sprites/227.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_226[] = INCBIN_U8("graphics/battle_anims/sprites/226.4bpp.lz"); +const u8 gBattleAnimSpritePalette_226[] = INCBIN_U8("graphics/battle_anims/sprites/226.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_229[] = INCBIN_U8("graphics/battle_anims/sprites/229.4bpp.lz"); +const u8 gBattleAnimSpritePalette_229[] = INCBIN_U8("graphics/battle_anims/sprites/229.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_099[] = INCBIN_U8("graphics/battle_anims/sprites/099.4bpp.lz"); +const u8 gBattleAnimSpritePalette_099[] = INCBIN_U8("graphics/battle_anims/sprites/099.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_232[] = INCBIN_U8("graphics/battle_anims/sprites/232.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_231[] = INCBIN_U8("graphics/battle_anims/sprites/231.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_231[] = INCBIN_U8("graphics/battle_anims/sprites/231.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_233[] = INCBIN_U8("graphics/battle_anims/sprites/233.4bpp.lz"); +const u8 gBattleAnimSpritePalette_233[] = INCBIN_U8("graphics/battle_anims/sprites/233.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_234[] = INCBIN_U8("graphics/battle_anims/sprites/234.4bpp.lz"); +const u8 gBattleAnimSpritePalette_234[] = INCBIN_U8("graphics/battle_anims/sprites/234.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_238[] = INCBIN_U8("graphics/battle_anims/sprites/238.4bpp.lz"); +const u8 gBattleAnimSpritePalette_238[] = INCBIN_U8("graphics/battle_anims/sprites/238.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_235[] = INCBIN_U8("graphics/battle_anims/sprites/235.4bpp.lz"); +const u8 gBattleAnimSpritePalette_235[] = INCBIN_U8("graphics/battle_anims/sprites/235.gbapal.lz"); + +const u8 gBattleAnimSpritePalette_236[] = INCBIN_U8("graphics/battle_anims/sprites/236.gbapal.lz"); +const u8 gBattleAnimSpritePalette_237[] = INCBIN_U8("graphics/battle_anims/sprites/237.gbapal.lz"); + +const u8 gBattleAnimBackgroundImage_07[] = INCBIN_U8("graphics/battle_anims/backgrounds/07.4bpp.lz"); +const u8 gBattleAnimBackgroundPalette_07[] = INCBIN_U8("graphics/battle_anims/backgrounds/07.gbapal.lz"); + +const u8 gBattleAnimBackgroundPalette_18[] = INCBIN_U8("graphics/battle_anims/backgrounds/18.gbapal.lz"); + +const u16 gBattleAnimBackgroundTilemap_07[] = INCBIN_U16("graphics/battle_anims/backgrounds/07.bin.lz"); +const u16 gBattleAnimBackgroundTilemap_08[] = INCBIN_U16("graphics/battle_anims/backgrounds/08.bin.lz"); + +const u8 gBattleAnimBackgroundImage_20[] = INCBIN_U8("graphics/battle_anims/backgrounds/20.4bpp.lz"); +const u8 gBattleAnimBackgroundPalette_20[] = INCBIN_U8("graphics/battle_anims/backgrounds/20.gbapal.lz"); +const u16 gBattleAnimBackgroundTilemap_20[] = INCBIN_U16("graphics/battle_anims/backgrounds/20.bin.lz"); + +const u16 gBattleAnimBackgroundTilemap_09[] = INCBIN_U16("graphics/battle_anims/backgrounds/09.bin.lz"); +const u8 gBattleAnimBackgroundPalette_09[] = INCBIN_U8("graphics/battle_anims/backgrounds/09.gbapal.lz"); + +const u8 gBattleAnimBackgroundPalette_22[] = INCBIN_U8("graphics/battle_anims/backgrounds/22.gbapal.lz"); + +const u8 gBattleAnimBackgroundImage_09[] = INCBIN_U8("graphics/battle_anims/backgrounds/09.4bpp.lz"); +const u16 gBattleAnimBackgroundTilemap_10[] = INCBIN_U16("graphics/battle_anims/backgrounds/10.bin.lz"); + +const u8 gUnknown_08C2A634[] = INCBIN_U8("graphics/battle_anims/masks/morning_sun.4bpp.lz"); +const u8 gUnknown_08C2A6D4[] = INCBIN_U8("graphics/battle_anims/masks/morning_sun.gbapal.lz"); +const u16 gUnknown_08C2A6EC[] = INCBIN_U16("graphics/battle_anims/masks/morning_sun.bin.lz"); + +const u16 gBattleAnimBackgroundTilemap_12[] = INCBIN_U16("graphics/battle_anims/backgrounds/12.bin.lz"); +const u16 gBattleAnimBackgroundTilemap_13[] = INCBIN_U16("graphics/battle_anims/backgrounds/13.bin.lz"); +const u16 gBattleAnimBackgroundTilemap_14[] = INCBIN_U16("graphics/battle_anims/backgrounds/14.bin.lz"); + +const u8 gBattleAnimBackgroundImage_12[] = INCBIN_U8("graphics/battle_anims/backgrounds/12.4bpp.lz"); +const u8 gBattleAnimBackgroundPalette_12[] = INCBIN_U8("graphics/battle_anims/backgrounds/12.gbapal.lz"); + +const u8 gBattleAnimBackgroundImage_11[] = INCBIN_U8("graphics/battle_anims/backgrounds/11.4bpp.lz"); +const u8 gBattleAnimBackgroundPalette_11[] = INCBIN_U8("graphics/battle_anims/backgrounds/11.gbapal.lz"); +const u16 gBattleAnimBackgroundTilemap_11[] = INCBIN_U16("graphics/battle_anims/backgrounds/11.bin.lz"); + +const u8 gBattleAnimSpriteSheet_239[] = INCBIN_U8("graphics/battle_anims/sprites/239.4bpp.lz"); +const u8 gBattleAnimSpritePalette_239[] = INCBIN_U8("graphics/battle_anims/sprites/239.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_143[] = INCBIN_U8("graphics/battle_anims/sprites/143.4bpp.lz"); +const u8 gBattleAnimSpritePalette_143[] = INCBIN_U8("graphics/battle_anims/sprites/143.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_240[] = INCBIN_U8("graphics/battle_anims/sprites/240.4bpp.lz"); +const u8 gBattleAnimSpritePalette_240[] = INCBIN_U8("graphics/battle_anims/sprites/240.gbapal.lz"); + +const u8 gSubstituteDollPal[] = INCBIN_U8("graphics/battle_anims/sprites/substitute.gbapal.lz"); +const u8 gSubstituteDollGfx[] = INCBIN_U8("graphics/battle_anims/sprites/substitute.4bpp.lz"); +const u16 gSubstituteDollTilemap[] = INCBIN_U16("graphics/battle_anims/sprites/substitute.bin.lz"); + +const u8 gBattleAnimSpriteSheet_241[] = INCBIN_U8("graphics/battle_anims/sprites/241.4bpp.lz"); +const u8 gBattleAnimSpritePalette_241[] = INCBIN_U8("graphics/battle_anims/sprites/241.gbapal.lz"); + +const u8 gContestConfetti_Gfx[] = INCBIN_U8("graphics/misc/confetti.4bpp.lz"); +const u8 gContestConfetti_Pal[] = INCBIN_U8("graphics/misc/confetti.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_242[] = INCBIN_U8("graphics/battle_anims/sprites/242.4bpp.lz"); +const u8 gBattleAnimSpritePalette_242[] = INCBIN_U8("graphics/battle_anims/sprites/242.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_243[] = INCBIN_U8("graphics/battle_anims/sprites/243.4bpp.lz"); +const u8 gBattleAnimSpritePalette_243[] = INCBIN_U8("graphics/battle_anims/sprites/243.gbapal.lz"); + +const u8 gUnknown_08C2D720[] = INCBIN_U8("graphics/battle_anims/masks/stat.4bpp.lz"); +const u16 gUnknown_08C2D930[] = INCBIN_U16("graphics/battle_anims/masks/stat_tilemap_1.bin.lz"); +const u16 gUnknown_08C2DA4C[] = INCBIN_U16("graphics/battle_anims/masks/stat_tilemap_2.bin.lz"); + +const u8 gUnknown_08C2DB68[] = INCBIN_U8("graphics/battle_anims/masks/stat1.gbapal.lz"); +const u8 gUnknown_08C2DB88[] = INCBIN_U8("graphics/battle_anims/masks/stat2.gbapal.lz"); +const u8 gUnknown_08C2DBA8[] = INCBIN_U8("graphics/battle_anims/masks/stat3.gbapal.lz"); +const u8 gUnknown_08C2DBC8[] = INCBIN_U8("graphics/battle_anims/masks/stat4.gbapal.lz"); +const u8 gUnknown_08C2DBE8[] = INCBIN_U8("graphics/battle_anims/masks/stat5.gbapal.lz"); +const u8 gUnknown_08C2DC08[] = INCBIN_U8("graphics/battle_anims/masks/stat6.gbapal.lz"); +const u8 gUnknown_08C2DC28[] = INCBIN_U8("graphics/battle_anims/masks/stat7.gbapal.lz"); +const u8 gUnknown_08C2DC48[] = INCBIN_U8("graphics/battle_anims/masks/stat8.gbapal.lz"); + +const u8 gUnknown_08C2DC68[] = INCBIN_U8("graphics/battle_anims/masks/cure_bubbles.4bpp.lz"); +const u8 gUnknown_08C2DDA4[] = INCBIN_U8("graphics/battle_anims/masks/cure_bubbles.gbapal.lz"); +const u16 gUnknown_08C2DDC4[] = INCBIN_U16("graphics/battle_anims/masks/cure_bubbles.bin.lz"); + +const u8 gBattleAnimSpritePalette_245[] = INCBIN_U8("graphics/battle_anims/sprites/245.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_245[] = INCBIN_U8("graphics/battle_anims/sprites/245.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_246[] = INCBIN_U8("graphics/battle_anims/sprites/246.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_244[] = INCBIN_U8("graphics/battle_anims/sprites/244.4bpp.lz"); +const u8 gBattleAnimSpritePalette_244[] = INCBIN_U8("graphics/battle_anims/sprites/244.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_247[] = INCBIN_U8("graphics/battle_anims/sprites/247.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_053[] = INCBIN_U8("graphics/battle_anims/sprites/053.4bpp.lz"); + +const u8 gUnknown_08C2EA50[] = INCBIN_U8("graphics/battle_anims/masks/unknown_C2EA50.4bpp.lz"); +const u16 gUnknown_08C2EA9C[] = INCBIN_U16("graphics/battle_anims/masks/unknown_C2EA50.bin.lz"); + +const u8 gBattleAnimSpriteSheet_248[] = INCBIN_U8("graphics/battle_anims/sprites/248.4bpp.lz"); +const u8 gBattleAnimSpritePalette_248[] = INCBIN_U8("graphics/battle_anims/sprites/248.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_249[] = INCBIN_U8("graphics/battle_anims/sprites/249.4bpp.lz"); +const u8 gBattleAnimSpritePalette_249[] = INCBIN_U8("graphics/battle_anims/sprites/249.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_250[] = INCBIN_U8("graphics/battle_anims/sprites/250.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_251[] = INCBIN_U8("graphics/battle_anims/sprites/251.4bpp.lz"); +const u8 gBattleAnimSpritePalette_251[] = INCBIN_U8("graphics/battle_anims/sprites/251.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_252[] = INCBIN_U8("graphics/battle_anims/sprites/252.4bpp.lz"); +const u8 gBattleAnimSpritePalette_252[] = INCBIN_U8("graphics/battle_anims/sprites/252.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_253[] = INCBIN_U8("graphics/battle_anims/sprites/253.4bpp.lz"); +const u8 gBattleAnimSpritePalette_253[] = INCBIN_U8("graphics/battle_anims/sprites/253.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_254[] = INCBIN_U8("graphics/battle_anims/sprites/254.4bpp.lz"); +const u8 gBattleAnimSpritePalette_254[] = INCBIN_U8("graphics/battle_anims/sprites/254.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_255[] = INCBIN_U8("graphics/battle_anims/sprites/255.4bpp.lz"); +const u8 gBattleAnimSpritePalette_255[] = INCBIN_U8("graphics/battle_anims/sprites/255.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_258[] = INCBIN_U8("graphics/battle_anims/sprites/258.4bpp.lz"); +const u8 gBattleAnimSpritePalette_258[] = INCBIN_U8("graphics/battle_anims/sprites/258.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_256[] = INCBIN_U8("graphics/battle_anims/sprites/256.4bpp.lz"); +const u8 gBattleAnimSpritePalette_256[] = INCBIN_U8("graphics/battle_anims/sprites/256.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_257[] = INCBIN_U8("graphics/battle_anims/sprites/257.4bpp.lz"); +const u8 gBattleAnimSpritePalette_257[] = INCBIN_U8("graphics/battle_anims/sprites/257.gbapal.lz"); + +const u8 gUnknownPal_C2F9E0[] = INCBIN_U8("graphics/unknown/unknown_C2F9E0.gbapal.lz"); + +#include "graphics/pokemon.h" +#include "graphics/trainers.h" + +const u8 gMonIcon_QuestionMark[] = INCBIN_U8("graphics/pokemon/icons/question_mark_icon.4bpp"); +const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/footprints/question_mark_footprint.1bpp"); + +const u8 gUnknown_08D778F0[] = INCBIN_U8("graphics/battle_transitions/vs_frame.4bpp.lz"); +const u16 gUnknown_08D779D8[] = INCBIN_U16("graphics/battle_transitions/vs_frame.bin.lz"); +const u8 gUnknown_08D77AE4[] = INCBIN_U8("graphics/battle_transitions/vs_frame.gbapal.lz"); + +const u8 gUnknown_08D77B0C[] = INCBIN_U8("graphics/battle_transitions/vs.4bpp.lz"); + +const u8 gBattleTerrainTiles_TallGrass[] = INCBIN_U8("graphics/battle_terrain/tall_grass/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_TallGrass[] = INCBIN_U8("graphics/battle_terrain/tall_grass/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_TallGrass[] = INCBIN_U16("graphics/battle_terrain/tall_grass/map.bin.lz"); + +const u8 gBattleTerrainTiles_LongGrass[] = INCBIN_U8("graphics/battle_terrain/long_grass/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_LongGrass[] = INCBIN_U8("graphics/battle_terrain/long_grass/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_LongGrass[] = INCBIN_U16("graphics/battle_terrain/long_grass/map.bin.lz"); + +const u8 gBattleTerrainTiles_Sand[] = INCBIN_U8("graphics/battle_terrain/sand/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_Sand[] = INCBIN_U8("graphics/battle_terrain/sand/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_Sand[] = INCBIN_U16("graphics/battle_terrain/sand/map.bin.lz"); + +const u8 gBattleTerrainTiles_Underwater[] = INCBIN_U8("graphics/battle_terrain/underwater/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_Underwater[] = INCBIN_U8("graphics/battle_terrain/underwater/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_Underwater[] = INCBIN_U16("graphics/battle_terrain/underwater/map.bin.lz"); + +const u8 gBattleTerrainTiles_Water[] = INCBIN_U8("graphics/battle_terrain/water/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_Water[] = INCBIN_U8("graphics/battle_terrain/water/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_Water[] = INCBIN_U16("graphics/battle_terrain/water/map.bin.lz"); + +const u8 gBattleTerrainTiles_PondWater[] = INCBIN_U8("graphics/battle_terrain/pond_water/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_PondWater[] = INCBIN_U8("graphics/battle_terrain/pond_water/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_PondWater[] = INCBIN_U16("graphics/battle_terrain/pond_water/map.bin.lz"); + +const u8 gBattleTerrainTiles_Rock[] = INCBIN_U8("graphics/battle_terrain/rock/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_Rock[] = INCBIN_U8("graphics/battle_terrain/rock/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_Rock[] = INCBIN_U16("graphics/battle_terrain/rock/map.bin.lz"); + +const u8 gBattleTerrainTiles_Cave[] = INCBIN_U8("graphics/battle_terrain/cave/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_Cave[] = INCBIN_U8("graphics/battle_terrain/cave/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_Cave[] = INCBIN_U16("graphics/battle_terrain/cave/map.bin.lz"); + +const u8 gBattleTerrainPalette_Plain[] = INCBIN_U8("graphics/battle_terrain/plain/palette.gbapal.lz"); + +const u8 gBattleTerrainTiles_Building[] = INCBIN_U8("graphics/battle_terrain/building/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_Frontier[] = INCBIN_U8("graphics/battle_terrain/stadium/battle_frontier.gbapal.lz"); // this is also used for link battles +const u16 gBattleTerrainTilemap_Building[] = INCBIN_U16("graphics/battle_terrain/building/map.bin.lz"); + +const u8 gBattleTerrainTiles_Stadium[] = INCBIN_U8("graphics/battle_terrain/stadium/tiles.4bpp.lz"); +const u16 gBattleTerrainTilemap_Stadium[] = INCBIN_U16("graphics/battle_terrain/stadium/map.bin.lz"); + +const u8 gBattleTerrainTiles_Rayquaza[] = INCBIN_U8("graphics/battle_terrain/sky/tiles.4bpp.lz"); +const u16 gBattleTerrainTilemap_Rayquaza[] = INCBIN_U16("graphics/battle_terrain/sky/map.bin.lz"); + +const u8 gBattleTerrainPalette_Building[] = INCBIN_U8("graphics/battle_terrain/building/palette.gbapal.lz"); + +const u8 gBattleTerrainPalette_Kyogre[] = INCBIN_U8("graphics/battle_terrain/water/kyogre.gbapal.lz"); +const u8 gBattleTerrainPalette_Groudon[] = INCBIN_U8("graphics/battle_terrain/cave/groudon.gbapal.lz"); +const u8 gBattleTerrainPalette_BuildingGym[] = INCBIN_U8("graphics/battle_terrain/building/palette2.gbapal.lz"); +const u8 gBattleTerrainPalette_BuildingLeader[] = INCBIN_U8("graphics/battle_terrain/building/palette3.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumAqua[] = INCBIN_U8("graphics/battle_terrain/stadium/palette1.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumMagma[] = INCBIN_U8("graphics/battle_terrain/stadium/palette2.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumSidney[] = INCBIN_U8("graphics/battle_terrain/stadium/palette3.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumPhoebe[] = INCBIN_U8("graphics/battle_terrain/stadium/palette4.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumGlacia[] = INCBIN_U8("graphics/battle_terrain/stadium/palette5.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumDrake[] = INCBIN_U8("graphics/battle_terrain/stadium/palette6.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumWallace[] = INCBIN_U8("graphics/battle_terrain/stadium/palette7.gbapal.lz"); +const u8 gBattleTerrainPalette_Rayquaza[] = INCBIN_U8("graphics/battle_terrain/sky/palette.gbapal.lz"); + +const u8 gBattleTerrainAnimTiles_TallGrass[] = INCBIN_U8("graphics/battle_terrain/tall_grass/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_TallGrass[] = INCBIN_U16("graphics/battle_terrain/tall_grass/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_LongGrass[] = INCBIN_U8("graphics/battle_terrain/long_grass/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_LongGrass[] = INCBIN_U16("graphics/battle_terrain/long_grass/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Sand[] = INCBIN_U8("graphics/battle_terrain/sand/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Sand[] = INCBIN_U16("graphics/battle_terrain/sand/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Underwater[] = INCBIN_U8("graphics/battle_terrain/underwater/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Underwater[] = INCBIN_U16("graphics/battle_terrain/underwater/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Water[] = INCBIN_U8("graphics/battle_terrain/water/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Water[] = INCBIN_U16("graphics/battle_terrain/water/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_PondWater[] = INCBIN_U8("graphics/battle_terrain/pond_water/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_PondWater[] = INCBIN_U16("graphics/battle_terrain/pond_water/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Rock[] = INCBIN_U8("graphics/battle_terrain/rock/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Rock[] = INCBIN_U16("graphics/battle_terrain/rock/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Cave[] = INCBIN_U8("graphics/battle_terrain/cave/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Cave[] = INCBIN_U16("graphics/battle_terrain/cave/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Building[] = INCBIN_U8("graphics/battle_terrain/building/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Building[] = INCBIN_U16("graphics/battle_terrain/building/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Rayquaza[] = INCBIN_U8("graphics/battle_terrain/sky/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Rayquaza[] = INCBIN_U16("graphics/battle_terrain/sky/anim_map.bin.lz"); + +const u8 gUnknown_08D82F10[] = INCBIN_U8("graphics/battle_frontier/tourney_bg.4bpp.lz"); +const u8 gUnknown_08D834FC[] = INCBIN_U8("graphics/battle_frontier/tourney_line.4bpp.lz"); // the red glow mask for the tourney advancement lines + +const u16 gUnknown_08D83900[] = INCBIN_U16("graphics/unknown/unknown_D83900.bin.lz"); // tilemaps likely + +const u16 gUnknown_08D83B2C[] = INCBIN_U16("graphics/unknown/unknown_D83B2C.bin.lz"); + +const u16 gUnknown_08D83C3C[] = INCBIN_U16("graphics/unknown/unknown_D83C3C.bin.lz"); + +const u8 gUnknown_08D83D50[] = INCBIN_U8("graphics/battle_frontier/misc1.4bpp.lz"); + +const u16 gUnknown_08D84970[] = INCBIN_U16("graphics/unknown/unknown_D84970.bin.lz"); + +const u16 gUnknown_08D84F00[] = INCBIN_U16("graphics/unknown/unknown_D84F00.bin.lz"); + +const u8 gBattleFrontierGfx_DomeOptions[] = INCBIN_U8("graphics/battle_frontier/options.4bpp.lz"); +const u8 gUnknown_08D85358[] = INCBIN_U8("graphics/battle_frontier/options_pal1.gbapal.lz"); +const u8 gUnknown_08D85444[] = INCBIN_U8("graphics/battle_frontier/options_pal2.gbapal.lz"); // pokeball pal +const u8 gUnknown_08D854C8[] = INCBIN_U8("graphics/battle_frontier/options_pal3.gbapal.lz"); // arrow pal + +const u8 gUnknown_08D854E8[] = INCBIN_U8("graphics/battle_frontier/symbols.4bpp.lz"); +const u8 gUnknown_08D855E8[] = INCBIN_U8("graphics/battle_frontier/symbols.gbapal.lz"); + +const u8 gUnknown_08D85600[] = INCBIN_U8("graphics/battle_frontier/text.gbapal.lz"); +const u16 gUnknown_08D85620[] = INCBIN_U16("graphics/battle_frontier/text_pp.gbapal"); + +const u16 gTilesetAnims_BattleDomePals0_0[] = INCBIN_U16("graphics/battle_frontier/dome_anim1.gbapal"); +const u16 gTilesetAnims_BattleDomePals0_1[] = INCBIN_U16("graphics/battle_frontier/dome_anim2.gbapal"); +const u16 gTilesetAnims_BattleDomePals0_2[] = INCBIN_U16("graphics/battle_frontier/dome_anim3.gbapal"); +const u16 gTilesetAnims_BattleDomePals0_3[] = INCBIN_U16("graphics/battle_frontier/dome_anim4.gbapal"); + +// 8D856C0 +asm(".2byte 0x013F, 0x0119, 0x0113, 0x010E"); // unused? + +const u16 gUnknown_08D856C8[] = INCBIN_U16("graphics/battle_frontier/pyramid_light.gbapal"); // unfaded pal for the player light in battle pyramid + +const u16 gUnknown_08D857A8[] = INCBIN_U16("graphics/battle_frontier/battle_tilemap1.bin.lz"); +const u16 gUnknown_08D85A1C[] = INCBIN_U16("graphics/battle_frontier/battle_tilemap2.bin.lz"); + +// Intro + +const u16 gIntro1GameFreakTextFadePal[] = INCBIN_U16("graphics/intro/intro1_text.gbapal"); // game freak text blue fade +const u16 gIntro2BrendanNoTurnPal[] = INCBIN_U16("graphics/intro/intro2_brendan_noturn.gbapal"); +const u16 gIntro3BgPal[] = INCBIN_U16("graphics/intro/intro3.gbapal"); +const u16 gIntro2VolbeatPal[] = INCBIN_U16("graphics/intro/intro2_volbeat.gbapal"); +const u16 gIntro2TorchicPal[] = INCBIN_U16("graphics/intro/intro2_torchic.gbapal"); +const u16 gIntro2ManectricPal[] = INCBIN_U16("graphics/intro/intro2_manectric.gbapal"); +const u16 gIntro2FlygonPal[] = INCBIN_U16("graphics/intro/intro2_flygon.gbapal"); + +const u8 gIntro2VolbeatGfx[] = INCBIN_U8("graphics/intro/intro2_volbeat.4bpp.lz"); +const u8 gIntro2TorchicGfx[] = INCBIN_U8("graphics/intro/intro2_torchic.4bpp.lz"); +const u8 gIntro2ManectricGfx[] = INCBIN_U8("graphics/intro/intro2_manectric.4bpp.lz"); +const u8 gIntro2FlygonGfx[] = INCBIN_U8("graphics/intro/intro2_flygon.4bpp.lz"); +const u8 gIntro2BrendanNoTurnGfx[] = INCBIN_U8("graphics/intro/intro2_brendan_noturn.4bpp.lz"); +const u8 gIntro2MayNoTurnGfx[] = INCBIN_U8("graphics/intro/intro2_may_noturn.4bpp.lz"); + +const u16 gIntro3GroudonGfx[] = INCBIN_U16("graphics/intro/intro3_groudon.8bpp.lz"); +const u16 gIntro3GroudonTilemap[] = INCBIN_U16("graphics/intro/intro3_groudon.bin.lz"); + +const u16 gIntro3KyogreGfx[] = INCBIN_U16("graphics/intro/intro3_kyogre.8bpp.lz"); +const u16 gIntro3KyogreTilemap[] = INCBIN_U16("graphics/intro/intro3_kyogre.bin.lz"); + +const u8 gIntro3LegendBgGfx[] = INCBIN_U8("graphics/intro/legend_bg.4bpp.lz"); // groudon/kyogre/bg + +const u16 gIntro3GroudonBgTilemap[] = INCBIN_U16("graphics/intro/legend_bg1.bin.lz"); +const u16 gIntro3KyogreBgTilemap[] = INCBIN_U16("graphics/intro/legend_bg2.bin.lz"); + +const u8 gIntro3CloudsGfx[] = INCBIN_U8("graphics/intro/intro3_clouds.4bpp.lz"); +const u16 gIntro3Clouds1Tilemap[] = INCBIN_U16("graphics/intro/intro3_clouds1.bin.lz"); +const u16 gIntro3Clouds2Tilemap[] = INCBIN_U16("graphics/intro/intro3_clouds2.bin.lz"); +const u16 gIntro3Clouds3Tilemap[] = INCBIN_U16("graphics/intro/intro3_clouds3.bin.lz"); + +const u8 gIntro3LightningGfx[] = INCBIN_U8("graphics/intro/intro3_lightning.4bpp.lz"); +const u16 gIntro3LightningPal[] = INCBIN_U16("graphics/intro/intro3_lightning.gbapal"); + +const u8 gIntro3RayquazaGfx[] = INCBIN_U8("graphics/intro/intro3_rayquaza.4bpp.lz"); +const u16 gIntro3RayquazaTilemap[] = INCBIN_U16("graphics/intro/intro3_rayquaza.bin.lz"); + +const u16 gUnknown_D8C374[] = INCBIN_U16("graphics/unknown/unknown_D8C374.bin.lz"); +const u16 gUnknown_D8C5C4[] = INCBIN_U16("graphics/unknown/unknown_D8C5C4.bin.lz"); + +const u8 gIntro3Clouds2Gfx[] = INCBIN_U8("graphics/intro/intro3_clouds2.4bpp.lz"); //clouds 2, during the rayquaza flash +const u16 gIntro3Clouds4Tilemap[] = INCBIN_U16("graphics/intro/intro3_clouds4.bin.lz"); + +const u8 gIntro2BubblesGfx[] = INCBIN_U8("graphics/intro/intro2_bubbles.4bpp.lz"); +const u16 gIntro2BubblesPal[] = INCBIN_U16("graphics/intro/intro2_bubbles.gbapal"); + +const u8 gIntro1FlygonGfx[] = INCBIN_U8("graphics/intro/intro1_flygon.4bpp.lz"); +const u8 gIntro1SparkleGfx[] = INCBIN_U8("graphics/intro/intro1_sparkle.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_261[] = INCBIN_U8("graphics/battle_anims/sprites/261.4bpp.lz"); + +const u16 gUnknown_08D8D410[] = INCBIN_U16("graphics/battle_anims/backgrounds/sandstorm_brew.bin.lz"); +const u8 gUnknown_08D8D58C[] = INCBIN_U8("graphics/battle_anims/backgrounds/sandstorm_brew.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_261[] = INCBIN_U8("graphics/battle_anims/sprites/261.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_260[] = INCBIN_U8("graphics/battle_anims/sprites/260.4bpp.lz"); +const u8 gBattleAnimSpritePalette_260[] = INCBIN_U8("graphics/battle_anims/sprites/260.gbapal.lz"); + +const u8 gBattleAnimBackgroundImage_15[] = INCBIN_U8("graphics/battle_anims/backgrounds/15.4bpp.lz"); +const u8 gBattleAnimBackgroundPalette_15[] = INCBIN_U8("graphics/battle_anims/backgrounds/15.gbapal.lz"); +const u16 gBattleAnimBackgroundTilemap_15[] = INCBIN_U16("graphics/battle_anims/backgrounds/15.bin.lz"); + +const u8 gBattleAnimSpriteSheet_262[] = INCBIN_U8("graphics/battle_anims/sprites/262.4bpp.lz"); +const u8 gBattleAnimSpritePalette_262[] = INCBIN_U8("graphics/battle_anims/sprites/262.gbapal.lz"); + +const u8 gContestNextTurnGfx[] = INCBIN_U8("graphics/contest/nextturn.4bpp.lz"); +const u8 gUnknown_08D8E9B4[] = INCBIN_U8("graphics/contest/nextturn_numbers.4bpp"); +const u8 gUnknown_08D8EA34[] = INCBIN_U8("graphics/contest/nextturn_random.4bpp"); + +const u8 gBattleAnimSpriteSheet_264[] = INCBIN_U8("graphics/battle_anims/sprites/264.4bpp.lz"); +const u8 gBattleAnimSpritePalette_264[] = INCBIN_U8("graphics/battle_anims/sprites/264.gbapal.lz"); +const u8 gBattleAnimSpritePalette_265[] = INCBIN_U8("graphics/battle_anims/sprites/265.gbapal.lz"); +const u8 gBattleAnimSpritePalette_067[] = INCBIN_U8("graphics/battle_anims/sprites/067.gbapal.lz"); +const u8 gBattleAnimSpritePalette_068[] = INCBIN_U8("graphics/battle_anims/sprites/068.gbapal.lz"); + +const u8 gContestApplauseGfx[] = INCBIN_U8("graphics/contest/applause.4bpp.lz"); +const u8 gContestApplauseMeterGfx[] = INCBIN_U8("graphics/contest/applause_meter.4bpp"); + +const u16 gContestPal[] = INCBIN_U16("graphics/contest/nextturn.gbapal"); + +const u8 gBattleAnimSpriteSheet_272[] = INCBIN_U8("graphics/battle_anims/sprites/272.4bpp.lz"); +const u8 gBattleAnimSpritePalette_272[] = INCBIN_U8("graphics/battle_anims/sprites/272.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_273[] = INCBIN_U8("graphics/battle_anims/sprites/273.4bpp.lz"); + +const u8 gBattleAnimSpriteSheet_269[] = INCBIN_U8("graphics/battle_anims/sprites/269.4bpp.lz"); +const u8 gBattleAnimSpritePalette_269[] = INCBIN_U8("graphics/battle_anims/sprites/269.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_274[] = INCBIN_U8("graphics/battle_anims/sprites/274.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_275[] = INCBIN_U8("graphics/battle_anims/sprites/275.4bpp.lz"); +const u8 gBattleAnimSpriteSheet_276[] = INCBIN_U8("graphics/battle_anims/sprites/276.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_274[] = INCBIN_U8("graphics/battle_anims/sprites/274.gbapal.lz"); + +const u8 gBattleAnimBackgroundImage_17[] = INCBIN_U8("graphics/battle_anims/backgrounds/17.4bpp.lz"); +const u8 gBattleAnimBackgroundPalette_17[] = INCBIN_U8("graphics/battle_anims/backgrounds/17.gbapal.lz"); +const u16 gBattleAnimBackgroundTilemap_17[] = INCBIN_U16("graphics/battle_anims/backgrounds/17.bin.lz"); + +const u8 gBattleAnimSpriteSheet_280[] = INCBIN_U8("graphics/battle_anims/sprites/280.4bpp.lz"); +const u8 gBattleAnimSpritePalette_280[] = INCBIN_U8("graphics/battle_anims/sprites/280.gbapal.lz"); + +const u8 gBattleAnimBackgroundImageMuddyWater_Pal[] = INCBIN_U8("graphics/battle_anims/backgrounds/water_muddy.gbapal.lz"); + +const u8 gEnemyMonShadow_Gfx[] = INCBIN_U8("graphics/battle_interface/enemy_mon_shadow.4bpp.lz"); + +const u8 gBattleInterface_BallStatusBarGfx[] = INCBIN_U8("graphics/battle_interface/ball_status_bar.4bpp.lz"); + +const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/icons/egg_icon.4bpp"); + +const u8 gBattleAnimBackgroundImage_02[] = INCBIN_U8("graphics/battle_anims/backgrounds/02.4bpp.lz"); +const u8 gBattleAnimBackgroundPalette_02[] = INCBIN_U8("graphics/battle_anims/backgrounds/02.gbapal.lz"); +const u16 gBattleAnimBackgroundTilemap_02[] = INCBIN_U16("graphics/battle_anims/backgrounds/02.bin.lz"); + +const u8 gBattleAnimSpritePalette_287[] = INCBIN_U8("graphics/battle_anims/sprites/287.gbapal.lz"); + +const u8 gBattleAnimBackgroundPalette_24[] = INCBIN_U8("graphics/battle_anims/backgrounds/24.gbapal.lz"); + +const u16 gUnknown_E6BC04[] = INCBIN_U16("graphics/unknown/unknown_E6BC04.bin.lz"); + +const u16 sBlenderCenterGfx[] = INCBIN_U16("graphics/berry_blender/center.8bpp.lz"); + +const u8 gUnknown_08D91DB8[] = INCBIN_U8("graphics/berry_blender/outer.4bpp.lz"); +const u16 gUnknown_08D927EC[] = INCBIN_U16("graphics/berry_blender/outer_map.bin.lz"); + +const u8 gBattleAnimBackgroundPalette_16[] = INCBIN_U8("graphics/battle_anims/backgrounds/16.gbapal.lz"); +const u8 gBattleAnimBackgroundImage_16[] = INCBIN_U8("graphics/battle_anims/backgrounds/16.4bpp.lz"); +const u16 gBattleAnimBackgroundTilemap_16[] = INCBIN_U16("graphics/battle_anims/backgrounds/16.bin.lz"); + +const u8 gBattleAnimSpritePalette_277[] = INCBIN_U8("graphics/battle_anims/sprites/277.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_277[] = INCBIN_U8("graphics/battle_anims/sprites/277.4bpp.lz"); + +const u16 gBattleAnimFogTilemap[] = INCBIN_U16("graphics/battle_anims/backgrounds/fog.bin.lz"); + +const u8 gBattleAnimSpritePalette_283[] = INCBIN_U8("graphics/battle_anims/sprites/283.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_283[] = INCBIN_U8("graphics/battle_anims/sprites/283.4bpp.lz"); + +const u16 gBattleAnimBackgroundTilemap_ScaryFacePlayer[] = INCBIN_U16("graphics/battle_anims/backgrounds/scary_face_player.bin.lz"); +const u16 gBattleAnimBackgroundTilemap_ScaryFaceOpponent[] = INCBIN_U16("graphics/battle_anims/backgrounds/scary_face_opponent.bin.lz"); +const u16 gBattleAnimBackgroundTilemap_ScaryFaceContest[] = INCBIN_U16("graphics/battle_anims/backgrounds/scary_face_contest.bin.lz"); + +const u8 gBattleAnimSpriteSheet_263[] = INCBIN_U8("graphics/battle_anims/sprites/263.4bpp.lz"); +const u8 gBattleAnimSpritePalette_263[] = INCBIN_U8("graphics/battle_anims/sprites/263.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_266[] = INCBIN_U8("graphics/battle_anims/sprites/266.4bpp.lz"); +const u8 gBattleAnimSpritePalette_266[] = INCBIN_U8("graphics/battle_anims/sprites/266.gbapal.lz"); +const u8 gBattleAnimSpritePalette_267[] = INCBIN_U8("graphics/battle_anims/sprites/267.gbapal.lz"); +const u8 gBattleAnimSpritePalette_268[] = INCBIN_U8("graphics/battle_anims/sprites/268.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_278[] = INCBIN_U8("graphics/battle_anims/sprites/278.4bpp.lz"); +const u8 gBattleAnimSpritePalette_278[] = INCBIN_U8("graphics/battle_anims/sprites/278.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_279[] = INCBIN_U8("graphics/battle_anims/sprites/279.4bpp.lz"); +const u8 gBattleAnimSpritePalette_279[] = INCBIN_U8("graphics/battle_anims/sprites/279.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_281[] = INCBIN_U8("graphics/battle_anims/sprites/281.4bpp.lz"); +const u8 gBattleAnimSpritePalette_281[] = INCBIN_U8("graphics/battle_anims/sprites/281.gbapal.lz"); + +const u8 gBattleAnimBackgroundImage_21[] = INCBIN_U8("graphics/battle_anims/backgrounds/21.4bpp.lz"); +const u8 gBattleAnimBackgroundPalette_21[] = INCBIN_U8("graphics/battle_anims/backgrounds/21.gbapal.lz"); +const u16 gBattleAnimBackgroundTilemap_21[] = INCBIN_U16("graphics/battle_anims/backgrounds/21.bin.lz"); + +const u8 gBattleAnimSpriteSheet_284[] = INCBIN_U8("graphics/battle_anims/sprites/284.4bpp.lz"); +const u8 gBattleAnimSpritePalette_284[] = INCBIN_U8("graphics/battle_anims/sprites/284.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_285[] = INCBIN_U8("graphics/battle_anims/sprites/285.4bpp.lz"); +const u8 gBattleAnimSpritePalette_285[] = INCBIN_U8("graphics/battle_anims/sprites/285.gbapal.lz"); + +const u8 gBattleAnimBackgroundImage_Surf[] = INCBIN_U8("graphics/battle_anims/backgrounds/water.4bpp.lz"); +const u8 gBattleAnimBackgroundPalette_Surf[] = INCBIN_U8("graphics/battle_anims/backgrounds/water.gbapal.lz"); + +const u16 gUnknown_08D95E00[] = INCBIN_U16("graphics/unknown/unknown_D95E00.bin.lz"); + +const u16 gUnknown_08D960D0[] = INCBIN_U16("graphics/unknown/unknown_D960D0.bin.lz"); + +const u16 gUnknown_08D963A4[] = INCBIN_U16("graphics/unknown/unknown_D963A4.bin.lz"); + +const u8 gBattleAnimSpritePalette_286[] = INCBIN_U8("graphics/battle_anims/sprites/286.gbapal.lz"); + +const u8 gBattleAnimSpriteSheet_188[] = INCBIN_U8("graphics/battle_anims/sprites/188.4bpp.lz"); +const u8 gBattleAnimSpritePalette_188[] = INCBIN_U8("graphics/battle_anims/sprites/188.gbapal.lz"); + +const u8 gPartyMenuMisc_Gfx[] = INCBIN_U8("graphics/interface/party_menu_misc.4bpp.lz"); +const u8 gPartyMenuMisc_Pal[] = INCBIN_U8("graphics/interface/party_menu_misc.gbapal.lz"); +const u16 gPartyMenuMisc_Tilemap[] = INCBIN_U16("graphics/interface/party_menu_misc.bin.lz"); + +const u8 gPartyMenuPokeball_Gfx[] = INCBIN_U8("graphics/interface/party_menu_pokeball.4bpp.lz"); +const u8 gPartyMenuPokeballSmall_Gfx[] = INCBIN_U8("graphics/interface/party_menu_pokeball_small.4bpp.lz"); //unused +const u8 gPartyMenuPokeball_Pal[] = INCBIN_U8("graphics/interface/party_menu_pokeball.gbapal.lz"); + +const u8 gStatusGfx_Icons[] = INCBIN_U8("graphics/interface/status_icons.4bpp.lz"); +const u8 gStatusPal_Icons[] = INCBIN_U8("graphics/interface/status_icons.gbapal.lz"); + +const u8 gMoveTypes_Gfx[] = INCBIN_U8("graphics/types/move_types.4bpp.lz"); +const u8 gMoveTypes_Pal[] = INCBIN_U8("graphics/types/move_types.gbapal.lz"); + +const u8 gUnknown_08D97BEC[] = INCBIN_U8("graphics/interface/summary_frames.4bpp.lz"); +const u8 gUnknown_08D97CF4[] = INCBIN_U8("graphics/interface/summary_frames.gbapal.lz"); + +const u8 gUnknown_08D97D0C[] = INCBIN_U8("graphics/interface/status_screen.4bpp.lz"); +const u8 gUnknown_08D9853C[] = INCBIN_U8("graphics/interface/status_screen.gbapal.lz"); +const u16 gUnknown_08D9862C[] = INCBIN_U16("graphics/interface/status_screen.bin.lz"); + +const u16 gUnknown_08D987FC[] = INCBIN_U16("graphics/interface/status_tilemap1.bin.lz"); +const u16 gUnknown_08D9898C[] = INCBIN_U16("graphics/interface/status_tilemap2.bin.lz"); +const u16 gUnknown_08D98B28[] = INCBIN_U16("graphics/interface/status_tilemap3.bin.lz"); +const u16 gUnknown_08D98CC8[] = INCBIN_U16("graphics/interface/status_tilemap0.bin.lz"); + +const u8 gBagMaleTiles[] = INCBIN_U8("graphics/misc/bag_male.4bpp.lz"); +const u8 gBagFemaleTiles[] = INCBIN_U8("graphics/misc/bag_female.4bpp.lz"); +const u8 gBagPalette[] = INCBIN_U8("graphics/misc/bag.gbapal.lz"); + +const u8 gBagScreenMale_Pal[] = INCBIN_U8("graphics/interface/bag_screen_male.gbapal.lz"); +const u8 gBagScreenFemale_Pal[] = INCBIN_U8("graphics/interface/bag_screen_female.gbapal.lz"); + +const u8 gBagScreen_Gfx[] = INCBIN_U8("graphics/interface/bag_screen.4bpp.lz"); + +const u16 gUnknown_08D9A88C[] = INCBIN_U16("graphics/unknown/unknown_D9A88C.bin.lz"); + +const u8 gBattleFrontierGfx_PyramidBag[] = INCBIN_U8("graphics/interface/bag_pyramid.4bpp.lz"); +const u16 gUnknown_08D9ADD0[] = INCBIN_U16("graphics/interface/bag_pyramid.gbapal.lz"); // female palette is first and male is second. + +const u16 gUnknown_08D9AE04[] = INCBIN_U16("graphics/unknown/unknown_D9AE04.bin.lz"); + +const u8 gUnknown_08D9AF44[] = INCBIN_U8("graphics/unknown/unknown_D9AF44.gbapal.lz"); + +const u8 gBagSwapLineGfx[] = INCBIN_U8("graphics/interface/bag_swap.4bpp.lz"); +const u8 gBagSwapLinePal[] = INCBIN_U8("graphics/interface/bag_swap.gbapal.lz"); + +const u8 gBuyMenuFrame_Gfx[] = INCBIN_U8("graphics/interface/mart_frame.4bpp.lz"); +const u8 gMenuMoneyPal[] = INCBIN_U8("graphics/interface/mart_frame.gbapal.lz"); +const u16 gBuyMenuFrame_Tilemap[] = INCBIN_U16("graphics/interface/mart_frame.bin.lz"); + +const u8 gMenuMoneyGfx[] = INCBIN_U8("graphics/interface/money.4bpp.lz"); + +// Pokeblock + +const u8 gMenuPokeblock_Gfx[] = INCBIN_U8("graphics/interface/pokeblock_case_frame.4bpp.lz"); +const u8 gMenuPokeblock_Pal[] = INCBIN_U8("graphics/interface/pokeblock_case_frame.gbapal.lz"); + +const u8 gMenuPokeblockDevice_Gfx[] = INCBIN_U8("graphics/interface/pokeblock_device.4bpp.lz"); +const u8 gMenuPokeblockDevice_Pal[] = INCBIN_U8("graphics/interface/pokeblock_device.gbapal.lz"); + +const u16 gMenuPokeblock_Tilemap[] = INCBIN_U16("graphics/interface/pokeblock.bin.lz"); +const u8 gPokeblock_Gfx[] = INCBIN_U8("graphics/pokeblock/pokeblock.4bpp.lz"); +const u8 gPokeblockRed_Pal[] = INCBIN_U8("graphics/pokeblock/red.gbapal.lz"); +const u8 gPokeblockBlue_Pal[] = INCBIN_U8("graphics/pokeblock/blue.gbapal.lz"); +const u8 gPokeblockPink_Pal[] = INCBIN_U8("graphics/pokeblock/pink.gbapal.lz"); +const u8 gPokeblockGreen_Pal[] = INCBIN_U8("graphics/pokeblock/green.gbapal.lz"); +const u8 gPokeblockYellow_Pal[] = INCBIN_U8("graphics/pokeblock/yellow.gbapal.lz"); +const u8 gPokeblockPurple_Pal[] = INCBIN_U8("graphics/pokeblock/purple.gbapal.lz"); +const u8 gPokeblockIndigo_Pal[] = INCBIN_U8("graphics/pokeblock/indigo.gbapal.lz"); +const u8 gPokeblockBrown_Pal[] = INCBIN_U8("graphics/pokeblock/brown.gbapal.lz"); +const u8 gPokeblockLiteBlue_Pal[] = INCBIN_U8("graphics/pokeblock/liteblue.gbapal.lz"); +const u8 gPokeblockOlive_Pal[] = INCBIN_U8("graphics/pokeblock/olive.gbapal.lz"); +const u8 gPokeblockGray_Pal[] = INCBIN_U8("graphics/pokeblock/gray.gbapal.lz"); +const u8 gPokeblockBlack_Pal[] = INCBIN_U8("graphics/pokeblock/black.gbapal.lz"); +const u8 gPokeblockWhite_Pal[] = INCBIN_U8("graphics/pokeblock/white.gbapal.lz"); +const u8 gPokeblockGold_Pal[] = INCBIN_U8("graphics/pokeblock/gold.gbapal.lz"); + +const u16 gUnknown_08D9BA44[] = INCBIN_U16("graphics/interface/pokeblock_feeding_bg_map.bin.lz"); + +#include "graphics/berries.h" + +const u8 gRaySceneGroudon_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon.4bpp.lz"); +const u8 gRaySceneGroudon2_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon_shoulder.4bpp.lz"); +const u8 gRaySceneGroudon3_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon_claw.4bpp.lz"); + +const u8 gRaySceneKyogre_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/kyogre.4bpp.lz"); +const u8 gRaySceneKyogre2_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/kyogre_shoulder.4bpp.lz"); +const u8 gRaySceneKyogre3_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/kyogre_fin.4bpp.lz"); + +const u8 gRaySceneGroudon_Pal[] = INCBIN_U8("graphics/rayquaza_scene/groudon.gbapal.lz"); +const u8 gRaySceneKyogre_Pal[] = INCBIN_U8("graphics/rayquaza_scene/kyogre.gbapal.lz"); + +const u8 gRaySceneClouds_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/clouds.4bpp.lz"); +const u8 gRaySceneClouds_Pal[] = INCBIN_U8("graphics/rayquaza_scene/clouds.gbapal.lz"); // pal 1 clouds, pal 2 rain +const u16 gRaySceneClouds1_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/clouds1.bin.lz"); +const u16 gRaySceneClouds2_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/clouds2.bin.lz"); +const u16 gRaySceneClouds3_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/clouds3.bin.lz"); + +const u8 gRaySceneSmoke_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/smoke.4bpp.lz"); +const u8 gRaySceneSmoke_Pal[] = INCBIN_U8("graphics/rayquaza_scene/smoke.gbapal.lz"); + +const u16 gRaySceneRayquaza_Gfx[] = INCBIN_U16("graphics/rayquaza_scene/rayquaza.8bpp.lz"); +const u8 gRaySceneRayquaza_Pal[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza.gbapal.lz"); +const u16 gRaySceneRayquaza_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/rayquaza.bin.lz"); + +const u8 gRaySceneOvercast_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/overcast.4bpp.lz"); // uses pal 2 of gRaySceneRayquaza_Pal +const u16 gRaySceneOvercast_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/overcast.bin.lz"); + +const u8 gRaySceneRayquazaFly1_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_fly1.4bpp.lz"); +const u8 gRaySceneRayquazaTail_Gfx[] = INCBIN_U8( "graphics/rayquaza_scene/rayquaza_tail_fix.4bpp.lz"); // for some reason there are an extra 0xC bytes at the end of the original 4bpp, so in order to produce the correct lz, we have to cat the bytes at the end with a make rule. not sure why those bytes are there, it may have been a bug in Game Freak's software. + +const u8 gRaySceneOvercast2_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/overcast2.4bpp.lz"); + +const u8 gRaySceneRayquazaLight_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_light.4bpp.lz"); // uses pal 2 of gRaySceneOvercast2_Pal + +const u8 gRaySceneOvercast2_Pal[] = INCBIN_U8("graphics/rayquaza_scene/overcast2.gbapal.lz"); +const u16 gRaySceneOvercast2_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/overcast2.bin.lz"); + +const u8 gRaySceneRayquazaLight_Tilemap[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_light.bin.lz"); + +const u8 gRaySceneChaseBg_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/chase_bg.4bpp.lz"); +const u16 gRaySceneChaseBg_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/chase_bg.bin.lz"); + +const u8 gRaySceneChaseStreaks_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/chase_streaks.4bpp.lz"); +const u16 gRaySceneChaseStreaks_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/chase_streaks.bin.lz"); + +const u8 gRaySceneRayquazaChase_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_chase.4bpp.lz"); +const u16 gRayChaseRayquazaChase_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/rayquaza_chase.bin.lz"); +const u16 gRayChaseRayquazaChase2_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/rayquaza_chase2.bin.lz"); + +const u8 gRaySceneChase_Pal[] = INCBIN_U8("graphics/rayquaza_scene/chase.gbapal.lz"); + +const u8 gRaySceneGroudonLeft_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon_left.4bpp.lz"); +const u8 gRaySceneGroudonTail_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon_tail.4bpp.lz"); + +const u8 gRaySceneKyogreRight_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/kyogre_right.4bpp.lz"); + +const u8 gRaySceneRayquazaHover_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_hover.4bpp.lz"); +const u8 gRaySceneRayquazaFlyIn_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_flyin.4bpp.lz"); + +const u8 gRaySceneSplash_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/splash.4bpp.lz"); + +const u8 gRaySceneGroudonLeft_Pal[] = INCBIN_U8("graphics/rayquaza_scene/groudon_left.gbapal.lz"); +const u8 gRaySceneKyogreRight_Pal[] = INCBIN_U8("graphics/rayquaza_scene/kyogre_right.gbapal.lz"); +const u8 gRaySceneRayquazaHover_Pal[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_hover.gbapal.lz"); + +const u8 gRaySceneSplash_Pal[] = INCBIN_U8("graphics/rayquaza_scene/splash.gbapal.lz"); + +const u8 gRaySceneHushBg_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/hush_bg.4bpp.lz"); +const u16 gRaySceneHushRing_Gfx[] = INCBIN_U16("graphics/rayquaza_scene/hush_ring.8bpp.lz"); +const u16 gRaySceneHushBg_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/hush_bg.bin.lz"); +const u16 gRaySceneHushRing_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/hush_ring.bin.lz"); +const u16 gRaySceneHushRing_Map[] = INCBIN_U16("graphics/rayquaza_scene/hush_ring_map.bin.lz"); +const u8 gRaySceneHushBg_Pal[] = INCBIN_U8("graphics/rayquaza_scene/hush_bg.gbapal.lz"); + +#include "graphics/items.h" +#include "graphics/decorations.h" + +const u8 gBattleAnimSpritePalette_282[] = INCBIN_U8("graphics/battle_anims/sprites/282.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_282[] = INCBIN_U8("graphics/battle_anims/sprites/282.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_270[] = INCBIN_U8("graphics/battle_anims/sprites/270.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_270[] = INCBIN_U8("graphics/battle_anims/sprites/270.4bpp.lz"); + +const u8 gBattleAnimSpritePalette_271[] = INCBIN_U8("graphics/battle_anims/sprites/271.gbapal.lz"); +const u8 gBattleAnimSpriteSheet_271[] = INCBIN_U8("graphics/battle_anims/sprites/271.4bpp.lz"); + +const u16 gUnknown_08DBA518[] = INCBIN_U16("graphics/misc/cable_car_bg.gbapal"); +const u16 gCableCar_Pal[] = INCBIN_U16("graphics/misc/cable_car.gbapal"); + +const u8 gUnknown_08DBA5B8[] = INCBIN_U8("graphics/misc/cable_car_bg.4bpp.lz"); +const u8 gCableCar_Gfx[] = INCBIN_U8("graphics/misc/cable_car.4bpp.lz"); +const u8 gCableCarDoor_Gfx[] = INCBIN_U8("graphics/misc/cable_car_door.4bpp.lz"); +const u8 gCableCarCord_Gfx[] = INCBIN_U8("graphics/misc/cable_car_cord.4bpp.lz"); + +const u8 gRouletteMenuTiles[] = INCBIN_U8("graphics/roulette/window.4bpp.lz"); +const u16 gRouletteWheelTiles[] = INCBIN_U16("graphics/roulette/wheel.8bpp.lz"); +const u8 gRouletteCenter_Gfx[] = INCBIN_U8("graphics/roulette/center.4bpp.lz"); +const u8 gRouletteHeadersTiles[] = INCBIN_U8("graphics/roulette/headers.4bpp.lz"); +const u8 gRouletteCreditTiles[] = INCBIN_U8("graphics/roulette/credit.4bpp.lz"); +const u8 gRouletteNumbersTiles[] = INCBIN_U8("graphics/roulette/numbers.4bpp.lz"); +const u8 gRouletteMultiplierTiles[] = INCBIN_U8("graphics/roulette/multiplier.4bpp.lz"); + +const u16 gMailPalette_Orange[] = INCBIN_U16("graphics/mail/orange/palette.gbapal"); +const u16 gMailPalette_Harbor[] = INCBIN_U16("graphics/mail/harbor/palette.gbapal"); +const u16 gMailPalette_Glitter[] = INCBIN_U16("graphics/mail/glitter/palette.gbapal"); +const u16 gMailPalette_Mech[] = INCBIN_U16("graphics/mail/mech/palette.gbapal"); +const u16 gMailPalette_Wood[] = INCBIN_U16("graphics/mail/wood/palette.gbapal"); +const u16 gMailPalette_Wave[] = INCBIN_U16("graphics/mail/wave/palette.gbapal"); +const u16 gMailPalette_Bead[] = INCBIN_U16("graphics/mail/bead/palette.gbapal"); +const u16 gMailPalette_Shadow[] = INCBIN_U16("graphics/mail/shadow/palette.gbapal"); +const u16 gMailPalette_Tropic[] = INCBIN_U16("graphics/mail/tropic/palette.gbapal"); +const u16 gMailPalette_Dream[] = INCBIN_U16("graphics/mail/dream/palette.gbapal"); +const u16 gMailPalette_Fab[] = INCBIN_U16("graphics/mail/fab/palette.gbapal"); +const u16 gMailPalette_Retro[] = INCBIN_U16("graphics/mail/retro/palette.gbapal"); + +const u8 gMailTiles_Orange[] = INCBIN_U8("graphics/mail/orange/tiles.4bpp.lz"); +const u8 gMailTiles_Harbor[] = INCBIN_U8("graphics/mail/harbor/tiles.4bpp.lz"); +const u8 gMailTiles_Glitter[] = INCBIN_U8("graphics/mail/glitter/tiles.4bpp.lz"); +const u8 gMailTiles_Mech[] = INCBIN_U8("graphics/mail/mech/tiles.4bpp.lz"); +const u8 gMailTiles_Wood[] = INCBIN_U8("graphics/mail/wood/tiles.4bpp.lz"); +const u8 gMailTiles_Wave[] = INCBIN_U8("graphics/mail/wave/tiles.4bpp.lz"); +const u8 gMailTiles_Bead[] = INCBIN_U8("graphics/mail/bead/tiles.4bpp.lz"); +const u8 gMailTiles_Shadow[] = INCBIN_U8("graphics/mail/shadow/tiles.4bpp.lz"); +const u8 gMailTiles_Tropic[] = INCBIN_U8("graphics/mail/tropic/tiles.4bpp.lz"); +const u8 gMailTiles_Dream[] = INCBIN_U8("graphics/mail/dream/tiles.4bpp.lz"); +const u8 gMailTiles_Fab[] = INCBIN_U8("graphics/mail/fab/tiles.4bpp.lz"); +const u8 gMailTiles_Retro[] = INCBIN_U8("graphics/mail/retro/tiles.4bpp.lz"); + +const u16 gMailTilemap_Orange[] = INCBIN_U16("graphics/mail/orange/map.bin.lz"); +const u16 gMailTilemap_Harbor[] = INCBIN_U16("graphics/mail/harbor/map.bin.lz"); +const u16 gMailTilemap_Glitter[] = INCBIN_U16("graphics/mail/glitter/map.bin.lz"); +const u16 gMailTilemap_Mech[] = INCBIN_U16("graphics/mail/mech/map.bin.lz"); +const u16 gMailTilemap_Wood[] = INCBIN_U16("graphics/mail/wood/map.bin.lz"); +const u16 gMailTilemap_Wave[] = INCBIN_U16("graphics/mail/wave/map.bin.lz"); +const u16 gMailTilemap_Bead[] = INCBIN_U16("graphics/mail/bead/map.bin.lz"); +const u16 gMailTilemap_Shadow[] = INCBIN_U16("graphics/mail/shadow/map.bin.lz"); +const u16 gMailTilemap_Tropic[] = INCBIN_U16("graphics/mail/tropic/map.bin.lz"); +const u16 gMailTilemap_Dream[] = INCBIN_U16("graphics/mail/dream/map.bin.lz"); +const u16 gMailTilemap_Fab[] = INCBIN_U16("graphics/mail/fab/map.bin.lz"); +const u16 gMailTilemap_Retro[] = INCBIN_U16("graphics/mail/retro/map.bin.lz"); + +// OK + +const u16 gFrontierFactorySelectMenu_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_menu1.gbapal"); +const u16 gFrontierFactorySelectMenu_Pal2[] = INCBIN_U16("graphics/battle_frontier/factory_menu2.gbapal"); + +const u8 gFrontierFactorySelectMenu_Gfx[] = INCBIN_U8("graphics/battle_frontier/factory_menu1.4bpp"); +const u8 gFrontierFactorySelectMenu_Gfx2[] = INCBIN_U8("graphics/battle_frontier/factory_menu2.4bpp"); + +const u16 gFrontierFactorySelectMenu_Tilemap[] = INCBIN_U16("graphics/battle_frontier/factory_menu.bin"); + +const u8 gFrontierPassMedals_Gfx[] = INCBIN_U8("graphics/frontier_pass/medals.4bpp.lz"); + +const u16 gFrontierPassCursor_Pal[] = INCBIN_U16("graphics/frontier_pass/cursor.gbapal"); + +const u16 gFrontierPassMapCursor_Pal[] = INCBIN_U16("graphics/frontier_pass/map_cursor.gbapal"); + +const u16 gFrontierPassMedalsSilver_Pal[] = INCBIN_U16("graphics/frontier_pass/silver.gbapal"); +const u16 gFrontierPassMedalsGold_Pal[] = INCBIN_U16("graphics/frontier_pass/gold.gbapal"); + +const u16 gPokedexText_Pal[] = INCBIN_U16("graphics/pokedex/text.gbapal"); + +const u16 gPokedexCaughtScreenFade_Pal[] = INCBIN_U16("graphics/pokedex/fade.gbapal"); + +const u16 gPokedexHoennBg_Pal[] = INCBIN_U16("graphics/pokedex/hoenn_bg.gbapal"); +const u16 gPokedexNationalBg_Pal[] = INCBIN_U16("graphics/pokedex/national_bg.gbapal"); + +const u8 gPokedexMenu_Gfx[] = INCBIN_U8("graphics/pokedex/menu.4bpp.lz"); +const u8 gPokedexMenu2_Gfx[] = INCBIN_U8("graphics/pokedex/menu2.4bpp.lz"); + +const u8 gUnused_PokedexNoBall[] = INCBIN_U8("graphics/pokedex/noball_unused.4bpp.lz"); + +const u16 gUnknown_08DC2A08[] = INCBIN_U16("graphics/pokedex/tilemap1.bin.lz"); +const u16 gUnknown_08DC2B1C[] = INCBIN_U16("graphics/pokedex/tilemap2.bin.lz"); +const u16 gUnknown_08DC2C5C[] = INCBIN_U16("graphics/pokedex/tilemap3.bin.lz"); +const u16 gUnknown_08DC2DAC[] = INCBIN_U16("graphics/pokedex/tilemap4.bin.lz"); +const u16 gUnknown_08DC2E6C[] = INCBIN_U16("graphics/pokedex/tilemap5.bin.lz"); +const u16 gUnknown_08DC2F5C[] = INCBIN_U16("graphics/pokedex/tilemap6.bin.lz"); +const u16 gUnknown_08DC2FEC[] = INCBIN_U16("graphics/pokedex/tilemap7.bin.lz"); +const u16 gUnknown_08DC3080[] = INCBIN_U16("graphics/pokedex/tilemap8.bin.lz"); +const u16 gUnknown_08DC3198[] = INCBIN_U16("graphics/pokedex/tilemap9.bin.lz"); + +const u16 gPokedexSearchMenu_Pal[] = INCBIN_U16("graphics/pokedex/search_menu.gbapal"); +const u8 gPokedexSearchMenu_Gfx[] = INCBIN_U8("graphics/pokedex/search_menu.4bpp.lz"); +const u16 gPokedexSearch1_Tilemap[] = INCBIN_U16("graphics/pokedex/search1.bin.lz"); +const u16 gPokedexSearch2_Tilemap[] = INCBIN_U16("graphics/pokedex/search2.bin.lz"); + +const u16 gSummaryScreenPowAcc_Tilemap[] = INCBIN_U16("graphics/interface/powacc_tilemap.bin"); + +const u16 gUnknown_08DC3C34[] = INCBIN_U16("graphics/interface/unk_tilemap.bin"); // probably trade summary screen related? + +const u16 gSummaryScreenWindow_Tilemap[] = INCBIN_U16("graphics/interface/summary.bin"); + +const u16 gIntroCopyright_Pal[] = INCBIN_U16("graphics/intro/copyright.gbapal"); +const u8 gIntroCopyright_Gfx[] = INCBIN_U8("graphics/intro/copyright.4bpp.lz"); +const u16 gIntroCopyright_Tilemap[] = INCBIN_U16("graphics/intro/copyright.bin.lz"); + +const u16 gPokedexAreaScreenAreaUnknown_Pal[] = INCBIN_U16("graphics/pokedex/area_unknown.gbapal"); +const u8 gPokedexAreaScreenAreaUnknown_Gfx[] = INCBIN_U8("graphics/pokedex/area_unknown.4bpp.lz"); + +// seems to be fire red leftovers, but the menu elements is reused in the item menu for TM descriptions. + +const u16 gFireRedMenuElements1_Pal[] = INCBIN_U16("graphics/interface_fr/menu1.gbapal"); +const u16 gFireRedMenuElements2_Pal[] = INCBIN_U16("graphics/interface_fr/menu2.gbapal"); +const u16 gFireRedMenuElements3_Pal[] = INCBIN_U16("graphics/interface_fr/menu3.gbapal"); +const u8 gFireRedMenuElements_Gfx[] = INCBIN_U8("graphics/interface_fr/menu.4bpp"); //the types are reused for item menu + +const u8 gBagMenuHMIcon_Gfx[] = INCBIN_U8("graphics/interface/hm.4bpp"); + +// contest link stuff, appears to be a set of tilemaps + +const u16 gUnknown_08DC63F8[] = INCBIN_U16("graphics/contest/clink_tilemap1.bin"); +const u16 gUnknown_08DC6420[] = INCBIN_U16("graphics/contest/clink_tilemap2.bin"); +const u16 gUnknown_08DC6448[] = INCBIN_U16("graphics/contest/clink_tilemap3.bin"); +const u16 gUnknown_08DC6470[] = INCBIN_U16("graphics/contest/clink_tilemap4.bin"); +const u16 gUnknown_08DC6498[] = INCBIN_U16("graphics/contest/clink_tilemap5.bin"); +const u16 gUnknown_08DC64AC[] = INCBIN_U16("graphics/contest/clink_tilemap6.bin"); +const u16 gUnknown_08DC64C0[] = INCBIN_U16("graphics/contest/clink_tilemap7.bin"); +const u16 gUnknown_08DC64D4[] = INCBIN_U16("graphics/contest/clink_tilemap8.bin"); +const u16 gUnknown_08DC64E8[] = INCBIN_U16("graphics/contest/clink_tilemap9.bin"); +const u16 gUnknown_08DC64FC[] = INCBIN_U16("graphics/contest/clink_tilemap10.bin"); +const u16 gUnknown_08DC6510[] = INCBIN_U16("graphics/contest/clink_tilemap11.bin"); + +// pokenav + +const u16 gPokenavCondition_Pal[] = INCBIN_U16("graphics/pokenav/condition.gbapal"); + +const u8 gPokenavCondition_Gfx[] = INCBIN_U8("graphics/pokenav/condition.4bpp.lz"); +const u16 gPokenavCondition_Tilemap[] = INCBIN_U16("graphics/pokenav/condition.bin.lz"); + +const u16 gPokenavOptions_Tilemap[] = INCBIN_U16("graphics/pokenav/options/options.bin"); +const u8 gPokenavOptions_Gfx[] = INCBIN_U8("graphics/pokenav/options/options.4bpp.lz"); +const u16 gPokenavOptions_Pal[] = INCBIN_U16("graphics/pokenav/options/options.gbapal"); + +const u16 gPokenavHeader_Pal[] = INCBIN_U16("graphics/pokenav/header.gbapal"); +const u8 gPokenavHeader_Gfx[] = INCBIN_U8("graphics/pokenav/header.4bpp.lz"); // TODO: use width 9 and makefile rule for cleanliness, make wasnt behaving, didnt want to apply num_tiles to this +const u16 gPokenavHeader_Tilemap[] = INCBIN_U16("graphics/pokenav/header.bin.lz"); + +const u16 gPokenavLeftHeader_Pal[] = INCBIN_U16("graphics/pokenav/left_headers/palette.gbapal"); +const u8 gPokenavLeftHeaderBeauty_Gfx[] = INCBIN_U8("graphics/pokenav/left_headers/beauty.4bpp.lz"); +const u8 gPokenavLeftHeaderSmart_Gfx[] = INCBIN_U8("graphics/pokenav/left_headers/smart.4bpp.lz"); +const u8 gPokenavLeftHeaderCondition_Gfx[] = INCBIN_U8("graphics/pokenav/left_headers/condition.4bpp.lz"); +const u8 gPokenavLeftHeaderCute_Gfx[] = INCBIN_U8("graphics/pokenav/left_headers/cute.4bpp.lz"); +const u8 gPokenavLeftHeaderMatchCall_Gfx[] = INCBIN_U8("graphics/pokenav/left_headers/match_call.4bpp.lz"); +const u8 gPokenavLeftHeaderMainMenu_Gfx[] = INCBIN_U8("graphics/pokenav/left_headers/main_menu.4bpp.lz"); +const u8 gPokenavLeftHeaderHoennMap_Gfx[] = INCBIN_U8("graphics/pokenav/left_headers/hoenn_map.4bpp.lz"); +const u8 gPokenavLeftHeaderRibbons_Gfx[] = INCBIN_U8("graphics/pokenav/left_headers/ribbons.4bpp.lz"); +const u8 gPokenavLeftHeaderSearch_Gfx[] = INCBIN_U8("graphics/pokenav/left_headers/search.4bpp.lz"); +const u8 gPokenavLeftHeaderTough_Gfx[] = INCBIN_U8("graphics/pokenav/left_headers/tough.4bpp.lz"); +const u8 gPokenavLeftHeaderCool_Gfx[] = INCBIN_U8("graphics/pokenav/left_headers/cool.4bpp.lz"); +const u8 gPokenavLeftHeaderParty_Gfx[] = INCBIN_U8("graphics/pokenav/left_headers/party.4bpp.lz"); + +const u16 gPokenavMessageBox_Pal[] = INCBIN_U16("graphics/pokenav/message.gbapal"); +const u8 gPokenavMessageBox_Gfx[] = INCBIN_U8("graphics/pokenav/message.4bpp.lz"); +const u16 gPokenavMessageBox_Tilemap[] = INCBIN_U16("graphics/pokenav/message.bin.lz"); + +const u16 gHoennMapZoomIcons_Pal[] = INCBIN_U16("graphics/pokenav/zoom.gbapal"); +const u8 gHoennMapZoomIcons_Gfx[] = INCBIN_U8("graphics/pokenav/zoom.4bpp.lz"); + +const u16 gPokenavConditionCancel_Pal[] = INCBIN_U16("graphics/pokenav/cancel.gbapal"); +const u8 gPokenavConditionCancel_Gfx[] = INCBIN_U8("graphics/pokenav/cancel.4bpp"); + +const u16 gPokenavConditionMarker_Pal[] = INCBIN_U16("graphics/pokenav/marker.gbapal"); +const u8 gPokenavConditionMarker_Gfx[] = INCBIN_U8("graphics/pokenav/marker.4bpp"); + +const u16 gBerryBlenderMiscPalette[] = INCBIN_U16("graphics/berry_blender/misc.gbapal"); + +const u16 gBerryBlenderArrowPalette[] = INCBIN_U16("graphics/berry_blender/arrow.gbapal"); + +const u8 gBerryBlenderBetaArrow_Gfx[] = INCBIN_U8("graphics/berry_blender/arrow_old.4bpp"); //unused + +const u8 gBerryBlenderMarubatsuTiles[] = INCBIN_U8("graphics/berry_blender/marubatsu.4bpp"); + +const u8 gBerryBlenderParticlesTiles[] = INCBIN_U8("graphics/berry_blender/particles.4bpp"); + +asm(".space 0x120"); + +const u8 gBerryBlenderCountdownNumbersTiles[] = INCBIN_U8("graphics/berry_blender/countdown_numbers.4bpp"); + +const u8 gBerryBlenderStartTiles[] = INCBIN_U8("graphics/berry_blender/start.4bpp"); + +asm(".space 0x200"); + +const u8 gBerryBlenderArrowTiles[] = INCBIN_U8("graphics/berry_blender/arrow.4bpp"); + +asm(".space 0x2C0"); + +const u16 gEasyChatCursor_Pal[] = INCBIN_U16("graphics/easy_chat/cursor.gbapal"); +const u8 gEasyChatCursor_Gfx[] = INCBIN_U8("graphics/easy_chat/cursor.4bpp.lz"); + +const u16 gEasyChatRightWindow_Pal[] = INCBIN_U16("graphics/easy_chat/rwindow.gbapal"); +const u8 gEasyChatRightWindow_Gfx[] = INCBIN_U8("graphics/easy_chat/rwindow.4bpp.lz"); + +const u8 gEasyChatMode_Gfx[] = INCBIN_U8("graphics/easy_chat/mode.4bpp.lz"); +const u16 gEasyChatMode_Pal[] = INCBIN_U16("graphics/easy_chat/mode.gbapal"); + +const u8 gEasyChatWindow_Gfx[] = INCBIN_U8("graphics/easy_chat/window.4bpp.lz"); // uses mode pal +const u16 gEasyChatWindow_Tilemap[] = INCBIN_U16("graphics/easy_chat/window.bin.lz"); + +const u16 gWallclockMale_Pal[] = INCBIN_U16("graphics/interface/wallclock_male.gbapal"); +const u16 gWallclockFemale_Pal[] = INCBIN_U16("graphics/interface/wallclock_female.gbapal"); +const u8 gWallclock_Gfx[] = INCBIN_U8("graphics/interface/wallclock.4bpp.lz"); +const u16 gUnknown_08DCC648[] = INCBIN_U16("graphics/interface/wallclock1.bin.lz"); +const u16 gUnknown_08DCC908[] = INCBIN_U16("graphics/interface/wallclock2.bin.lz"); + +const u16 gUsePokeblockCondition_Pal[] = INCBIN_U16("graphics/pokeblock/use_screen/condition.gbapal"); +const u8 gUsePokeblockCondition_Gfx[] = INCBIN_U8("graphics/pokeblock/use_screen/condition.4bpp.lz"); + +const u16 gUsePokeblockUpDown_Pal[] = INCBIN_U16("graphics/pokeblock/use_screen/updown.gbapal"); +const u8 gUsePokeblockUpDown_Gfx[] = INCBIN_U8("graphics/pokeblock/use_screen/updown.4bpp"); + +const u16 gUsePokeblockGraph_Pal[] = INCBIN_U16("graphics/pokeblock/use_screen/graph.gbapal"); +const u8 gUsePokeblockGraph_Gfx[] = INCBIN_U8("graphics/pokeblock/use_screen/graph.4bpp.lz"); + +const u16 gUsePokeblockGraph_Tilemap[] = INCBIN_U16("graphics/pokeblock/use_screen/graph.bin.lz"); +const u16 gUsePokeblockNatureWin_Pal[] = INCBIN_U16("graphics/pokeblock/use_screen/nature.gbapal"); + +// slot machine + +const u16 gSlotMachineMenu_Pal[] = INCBIN_U16("graphics/slot_machine/menu.gbapal"); +const u8 gSlotMachineMenu_Gfx[] = INCBIN_U8("graphics/slot_machine/menu.4bpp.lz"); +const u16 gSlotMachineMenu_Tilemap[] = INCBIN_U16("graphics/slot_machine/menu.bin"); + +const u16 gUnknown_08DCEC70[] = INCBIN_U16("graphics/slot_machine/slots_layout.bin"); + +const u16 gUnknown_08DCF170[] = INCBIN_U16("graphics/slot_machine/reel_symbols/1.gbapal"); + +const u16 gUnknown_08DCF190[] = INCBIN_U16("graphics/slot_machine/reel_pikachu.gbapal"); + +const u16 gUnknown_08DCF1B0[] = INCBIN_U16("graphics/slot_machine/shadow.gbapal"); + +const u16 gSlotMachineReelTime_Pal[] = INCBIN_U16("graphics/slot_machine/reel_time.gbapal"); + +const u16 gUnknown_08DCF1F0[] = INCBIN_U16("graphics/slot_machine/smoke.gbapal"); // also duck and pika aura + +const u16 gUnknown_08DCF210[] = INCBIN_U16("graphics/slot_machine/reel_time_explosion/0.gbapal"); + +const u16 gUnknown_08DCF230[] = INCBIN_U16("graphics/slot_machine/spr6.gbapal"); + +const u8 gSlotMachineReelSymbol1Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/1.4bpp"); +const u8 gSlotMachineReelSymbol2Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/2.4bpp"); +const u8 gSlotMachineReelSymbol3Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/3.4bpp"); +const u8 gSlotMachineReelSymbol4Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/4.4bpp"); +const u8 gSlotMachineReelSymbol5Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/5.4bpp"); +const u8 gSlotMachineReelSymbol6Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/6.4bpp"); +const u8 gSlotMachineReelSymbol7Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/7.4bpp"); + +const u8 gSlotMachineReelTime_Gfx[] = INCBIN_U8("graphics/slot_machine/reel_time.4bpp.lz"); + +const u8 gSlotMachineNumber0Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/0.4bpp"); +const u8 gSlotMachineNumber1Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/1.4bpp"); +const u8 gSlotMachineNumber2Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/2.4bpp"); +const u8 gSlotMachineNumber3Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/3.4bpp"); +const u8 gSlotMachineNumber4Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/4.4bpp"); +const u8 gSlotMachineNumber5Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/5.4bpp"); +const u8 gSlotMachineNumber6Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/6.4bpp"); +const u8 gSlotMachineNumber7Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/7.4bpp"); +const u8 gSlotMachineNumber8Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/8.4bpp"); +const u8 gSlotMachineNumber9Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/9.4bpp"); + +const u8 gSlotMachineReelTimeBolt[] = INCBIN_U8("graphics/slot_machine/bolt.4bpp"); +const u8 gSlotMachineReelTimeDuck[] = INCBIN_U8("graphics/slot_machine/duck.4bpp"); +const u8 gSlotMachineReelTimeSmoke[] = INCBIN_U8("graphics/slot_machine/smoke.4bpp"); + +const u8 gSlotMachineReelTimeNumber0[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/0.4bpp"); +const u8 gSlotMachineReelTimeNumber1[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/1.4bpp"); +const u8 gSlotMachineReelTimeNumber2[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/2.4bpp"); +const u8 gSlotMachineReelTimeNumber3[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/3.4bpp"); +const u8 gSlotMachineReelTimeNumber4[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/4.4bpp"); +const u8 gSlotMachineReelTimeNumber5[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/5.4bpp"); + +const u8 gSlotMachineReelTimeLargeBolt0[] = INCBIN_U8("graphics/slot_machine/large_bolt/0.4bpp"); +const u8 gSlotMachineReelTimeLargeBolt1[] = INCBIN_U8("graphics/slot_machine/large_bolt/1.4bpp"); + +const u8 gSlotMachineReelTimeExplosion0[] = INCBIN_U8("graphics/slot_machine/reel_time_explosion/0.4bpp"); +const u8 gSlotMachineReelTimeExplosion1[] = INCBIN_U8("graphics/slot_machine/reel_time_explosion/1.4bpp"); + +const u8 gSlotMachineReelTimeShadow[] = INCBIN_U8("graphics/slot_machine/shadow.4bpp"); +const u8 gSlotMachineReelTimePikaAura[] = INCBIN_U8("graphics/slot_machine/pika_aura.4bpp"); + +const u16 gUnknown_08DD19F8[] = INCBIN_U16("graphics/unknown/unknown_DD19F8.bin"); + +const u8 gUnknown_08DD1A18[] = INCBIN_U8("graphics/unknown/unknown_DD1A18.4bpp"); + +// trainer card + +const u16 gEmeraldTrainerCard0Star_Pal[] = INCBIN_U16("graphics/trainer_card/0star.gbapal"); +const u8 gEmeraldTrainerCard_Gfx[] = INCBIN_U8("graphics/trainer_card/card.4bpp.lz"); + +const u16 gUnknown_08DD1F78[] = INCBIN_U16("graphics/unknown/unknown_DD1F78.bin.lz"); +const u16 gUnknown_08DD2010[] = INCBIN_U16("graphics/unknown/unknown_DD2010.bin.lz"); +const u16 gUnknown_08DD21B0[] = INCBIN_U16("graphics/unknown/unknown_DD21B0.bin.lz"); +const u16 gUnknown_08DD228C[] = INCBIN_U16("graphics/unknown/unknown_DD228C.bin.lz"); + +const u16 gFireRedTrainerCard0Star_Pal[] = INCBIN_U16("graphics/trainer_card/0star_fr.gbapal"); +const u8 gFireRedTrainerCard_Gfx[] = INCBIN_U8("graphics/trainer_card/card_fr.4bpp.lz"); + +const u16 gUnknown_08DD2AE0[] = INCBIN_U16("graphics/unknown/unknown_DD2AE0.bin.lz"); +const u16 gUnknown_08DD2B78[] = INCBIN_U16("graphics/unknown/unknown_DD2B78.bin.lz"); +const u16 gUnknown_08DD2D30[] = INCBIN_U16("graphics/unknown/unknown_DD2D30.bin.lz"); +const u16 gUnknown_08DD2E5C[] = INCBIN_U16("graphics/unknown/unknown_DD2E5C.bin.lz"); + +// pokemon storage system + +const u8 gPSSMenu_Gfx[] = INCBIN_U8("graphics/pokemon_storage/menu.4bpp.lz"); +const u16 gPSSMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/menu.gbapal"); +const u16 gUnknown_08DD36C8[] = INCBIN_U16("graphics/unknown/unknown_DD36C8.bin.lz"); + +// naming screen + +const u16 gNamingScreenMenu_Pal[] = INCBIN_U16("graphics/naming_screen/menu.gbapal"); +const u8 gNamingScreenMenu_Gfx[] = INCBIN_U8("graphics/naming_screen/menu.4bpp.lz"); +const u8 gNamingScreenRWindow_Gfx[] = INCBIN_U8("graphics/naming_screen/rwindow.4bpp"); +const u8 gNamingScreenROptions_Gfx[] = INCBIN_U8("graphics/naming_screen/roptions.4bpp"); +const u8 gNamingScreenCursor_Gfx[] = INCBIN_U8("graphics/naming_screen/cursor.4bpp"); +const u8 gNamingScreenKeyboardButton_Gfx[] = INCBIN_U8("graphics/naming_screen/keyboard_button.4bpp"); + +const u8 gNamingScreenRightPointingTriangleTiles[] = INCBIN_U8("graphics/naming_screen/right_pointing_triangle.4bpp"); +const u8 gNamingScreenUnderscoreTiles[] = INCBIN_U8("graphics/naming_screen/underscore.4bpp"); + +const u16 gUnknown_08DD4544[] = INCBIN_U16("graphics/unknown/unknown_DD4544.bin.lz"); +const u16 gUnknown_08DD4620[] = INCBIN_U16("graphics/unknown/unknown_DD4620.bin.lz"); +const u16 gUnknown_08DD46E0[] = INCBIN_U16("graphics/unknown/unknown_DD46E0.bin.lz"); +const u16 gUnknown_08DD47A0[] = INCBIN_U16("graphics/unknown/unknown_DD47A0.bin.lz"); + +// link + +const u16 gLinkMiscMenu_Pal[] = INCBIN_U16("graphics/link/misc.gbapal"); +const u8 gLinkMiscMenu_Gfx[] = INCBIN_U8("graphics/link/misc.4bpp.lz"); +const u16 gLinkMiscMenu_Tilemap[] = INCBIN_U16("graphics/link/misc.bin.lz"); + +const u16 gUnknown_08DD4BB0[] = INCBIN_U16("graphics/link/link1.gbapal"); +const u16 gUnknown_08DD4BD0[] = INCBIN_U16("graphics/link/link2.gbapal"); + +const u8 gUnknown_08DD4BF0[] = INCBIN_U8("graphics/link/link_winedge.4bpp.lz"); +const u16 gUnknown_08DD4C4C[] = INCBIN_U16("graphics/link/link_winedge.bin.lz"); + +const u8 gUnknown_08DD4CF8[] = INCBIN_U8("graphics/interface/unk_change_case.4bpp.lz"); + +const u16 gTilesetPalettes_General[] = INCBIN_U16("data/tilesets/primary/general/palettes/00.gbapal"); +const u16 gTilesetPalettes_General1[] = INCBIN_U16("data/tilesets/primary/general/palettes/01.gbapal"); +const u16 gTilesetPalettes_General2[] = INCBIN_U16("data/tilesets/primary/general/palettes/02.gbapal"); +const u16 gTilesetPalettes_General3[] = INCBIN_U16("data/tilesets/primary/general/palettes/03.gbapal"); +const u16 gTilesetPalettes_General4[] = INCBIN_U16("data/tilesets/primary/general/palettes/04.gbapal"); +const u16 gTilesetPalettes_General5[] = INCBIN_U16("data/tilesets/primary/general/palettes/05.gbapal"); +const u16 gTilesetPalettes_General6[] = INCBIN_U16("data/tilesets/primary/general/palettes/06.gbapal"); +const u16 gTilesetPalettes_General7[] = INCBIN_U16("data/tilesets/primary/general/palettes/07.gbapal"); +const u16 gTilesetPalettes_General8[] = INCBIN_U16("data/tilesets/primary/general/palettes/08.gbapal"); +const u16 gTilesetPalettes_General9[] = INCBIN_U16("data/tilesets/primary/general/palettes/09.gbapal"); +const u16 gTilesetPalettes_General10[] = INCBIN_U16("data/tilesets/primary/general/palettes/10.gbapal"); +const u16 gTilesetPalettes_General11[] = INCBIN_U16("data/tilesets/primary/general/palettes/11.gbapal"); +const u16 gTilesetPalettes_General12[] = INCBIN_U16("data/tilesets/primary/general/palettes/12.gbapal"); +const u16 gTilesetPalettes_General13[] = INCBIN_U16("data/tilesets/primary/general/palettes/13.gbapal"); +const u16 gTilesetPalettes_General14[] = INCBIN_U16("data/tilesets/primary/general/palettes/14.gbapal"); +const u16 gTilesetPalettes_General15[] = INCBIN_U16("data/tilesets/primary/general/palettes/15.gbapal"); + +const u8 gTilesetTiles_General[] = INCBIN_U8("data/tilesets/primary/general/tiles.4bpp.lz"); + +// trade/egg hatch + +const u16 gTradeGba_Pal[] = INCBIN_U16("graphics/link/gba.gbapal"); +const u16 gTradeGba2_Pal[] = INCBIN_U16("graphics/link/gba_pal2.gbapal"); +const u8 gTradeGba_Gfx[] = INCBIN_U8("graphics/link/gba.4bpp"); + +// 8DD8760 +asm(".space 0x20"); //blank palette?? + +// berry fix program + +const u16 gBerryFixGameboy_Pal[] = INCBIN_U16("graphics/berry_fix/gba_small.gbapal"); +const u8 gBerryFixGameboy_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_small.4bpp.lz"); +const u16 gBerryFixGameboy_Tilemap[] = INCBIN_U16("graphics/berry_fix/gba_small.bin.lz"); + +const u16 gBerryFixGameboyLogo_Pal[] = INCBIN_U16("graphics/berry_fix/logo.gbapal"); +const u8 gBerryFixGameboyLogo_Gfx[] = INCBIN_U8("graphics/berry_fix/logo.4bpp.lz"); +const u16 gBerryFixGameboyLogo_Tilemap[] = INCBIN_U16("graphics/berry_fix/logo.bin.lz"); + +const u16 gBerryFixGbaTransfer_Pal[] = INCBIN_U16("graphics/berry_fix/gba_transfer.gbapal"); +const u8 gBerryFixGbaTransfer_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_transfer.4bpp.lz"); +const u16 gBerryFixGbaTransfer_Tilemap[] = INCBIN_U16("graphics/berry_fix/gba_transfer.bin.lz"); + +const u16 gBerryFixGbaTransferHighlight_Pal[] = INCBIN_U16("graphics/berry_fix/gba_transfer_highlight.gbapal"); +const u8 gBerryFixGbaTransferHighlight_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_transfer_highlight.4bpp.lz"); +const u16 gBerryFixGbaTransferHighlight_Tilemap[] = INCBIN_U16("graphics/berry_fix/gba_transfer_highlight.bin.lz"); + +const u16 gBerryFixGbaTransferError_Pal[] = INCBIN_U16("graphics/berry_fix/gba_transfer_error.gbapal"); +const u8 gBerryFixGbaTransferError_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_transfer_error.4bpp.lz"); +const u16 gBerryFixGbaTransferError_Tilemap[] = INCBIN_U16("graphics/berry_fix/gba_transfer_error.bin.lz"); + +const u16 gBerryFixWindow_Pal[] = INCBIN_U16("graphics/berry_fix/window.gbapal"); +const u8 gBerryFixWindow_Gfx[] = INCBIN_U8("graphics/berry_fix/window.4bpp.lz"); +const u16 gBerryFixWindow_Tilemap[] = INCBIN_U16("graphics/berry_fix/window.bin.lz"); + +// more trade stuff? + +const u16 gUnknown_08DDB3E4[] = INCBIN_U16("graphics/trade/menu.gbapal"); + +const u16 gUnknown_08DDB444[] = INCBIN_U16("graphics/unknown/unknown_DDB444.gbapal"); + +const u8 gUnknown_08DDB464[] = INCBIN_U8("graphics/trade/menu.4bpp"); + +const u8 gUnknown_08DDC6E4[] = INCBIN_U8("graphics/trade/buttons.4bpp"); + +const u16 gUnused_DDCEE4[] = INCBIN_U16("graphics/unused/unused_DDCEE4.bin"); + +const u16 gUnknown_08DDCF04[] = INCBIN_U16("graphics/unknown/unknown_DDCF04.bin"); + +const u16 gUnknown_08DDD704[] = INCBIN_U16("graphics/unknown/unknown_DDD704.bin"); // textbox tilemap?? + +const u16 gMessageBox_Pal[] = INCBIN_U16("graphics/text_window/message_box.gbapal"); +const u8 gMessageBox_Gfx[] = INCBIN_U8("graphics/text_window/message_box.4bpp"); + +const u8 gWallpaperIcon_Cross[] = INCBIN_U8("graphics/pokemon_storage/cross_icon.4bpp.lz"); +const u8 gWallpaperIcon_Bolt[] = INCBIN_U8("graphics/pokemon_storage/bolt_icon.4bpp.lz"); +const u8 gWallpaperIcon_Plusle[] = INCBIN_U8("graphics/pokemon_storage/plusle_icon.4bpp.lz"); + +const u16 gWallpaperPalettes_Horizontal[] = INCBIN_U16("graphics/pokemon_storage/friends_frame2.gbapal"); +const u16 gWallpaperPalettes_Horizontal2[] = INCBIN_U16("graphics/pokemon_storage/horizontal_bg.gbapal"); + +const u8 gWallpaperTiles_Horizontal[] = INCBIN_U8("graphics/pokemon_storage/horizontal.4bpp.lz"); +const u16 gWallpaperTilemap_Horizontal[] = INCBIN_U16("graphics/pokemon_storage/horizontal.bin.lz"); + +const u16 gWallpaperPalettes_Ribbon[] = INCBIN_U16("graphics/pokemon_storage/ribbon_frame.gbapal"); +const u16 gWallpaperPalettes_Ribbon2[] = INCBIN_U16("graphics/pokemon_storage/ribbon_bg.gbapal"); + +const u8 gWallpaperTiles_Ribbon[] = INCBIN_U8("graphics/pokemon_storage/ribbon.4bpp.lz"); +const u16 gWallpaperTilemap_Ribbon[] = INCBIN_U16("graphics/pokemon_storage/ribbon.bin.lz"); + +// pokenav + +const u16 gUnknown_08DDE010[] = INCBIN_U16("graphics/pokenav/ribbons.gbapal"); +const u8 gUnknown_08DDE030[] = INCBIN_U8("graphics/pokenav/ribbons.4bpp.lz"); +const u16 gUnknown_08DDE12C[] = INCBIN_U16("graphics/pokenav/ribbons.bin.lz"); + +const u16 gMonIconPalettes[] = INCBIN_U16("graphics/pokemon/icon_palettes/icon_palette_0.gbapal"); +const u16 gMonIconPalettes1[] = INCBIN_U16("graphics/pokemon/icon_palettes/icon_palette_1.gbapal"); +const u16 gMonIconPalettes2[] = INCBIN_U16("graphics/pokemon/icon_palettes/icon_palette_2.gbapal"); + +const u16 gTitleScreenBgPalettes[] = INCBIN_U16("graphics/title_screen/pokemon_logo.gbapal"); +const u16 gTitleScreenBgPalettes2[] = INCBIN_U16("graphics/title_screen/rayquaza_and_clouds.gbapal"); + +const u16 gTitleScreenEmeraldVersionPal[] = INCBIN_U16("graphics/title_screen/emerald_version.gbapal"); + +const u16 gUnknown_08DDE458[] = INCBIN_U16("graphics/title_screen/title_screen1.bin.lz"); + +const u16 gTitleScreenPokemonLogoGfx[] = INCBIN_U16("graphics/title_screen/pokemon_logo.8bpp.lz"); + +const u16 gTitleScreenEmeraldVersionGfx[] = INCBIN_U16("graphics/title_screen/emerald_version.8bpp.lz"); + +const u16 gTitleScreenPressStartPal[] = INCBIN_U16("graphics/title_screen/press_start.gbapal"); +const u8 gTitleScreenPressStartGfx[] = INCBIN_U8("graphics/title_screen/press_start.4bpp.lz"); + +const u16 gUnknown_08DE0644[] = INCBIN_U16("graphics/title_screen/title_screen2.bin.lz"); + +// more trainer card stuff + +const u16 gUnknown_08DE07C8[] = INCBIN_U16("graphics/frontier_pass/tiles.gbapal");// size in LoadPalette calls is reported as 0xD0 << 1, which is 0x1A0, but palette is only 0x100 bytes long so it loads garbage as well +const u8 gUnknown_08DE08C8[] = INCBIN_U8("graphics/frontier_pass/tiles.4bpp.lz"); +const u16 gUnknown_08DE2084[] = INCBIN_U16("graphics/frontier_pass/tiles2.8bpp.lz"); +const u16 gUnknown_08DE3060[] = INCBIN_U16("graphics/frontier_pass/tiles.bin.lz"); +const u16 gUnknown_08DE3350[] = INCBIN_U16("graphics/frontier_pass/tilemap1.bin"); +const u16 gUnknown_08DE3374[] = INCBIN_U16("graphics/frontier_pass/tilemap2.bin"); + +// berry crusher + +const u16 gUnknown_08DE3398[] = INCBIN_U16("graphics/berry_crusher/tiles.gbapal"); +const u8 gUnknown_08DE34B8[] = INCBIN_U8("graphics/berry_crusher/tiles.4bpp.lz"); +const u16 gUnknown_08DE3FD4[] = INCBIN_U16("graphics/berry_crusher/tiles.bin.lz"); + +/* random garbage at the end. +asm(".space 0x54BAC\ + .byte 0x0D, 0x00, 0x58, 0x02\ + .space 0x1145\ + .byte 0x02\ + .space 0x3242\ + .byte 0x40\ + .space 0x13"); +*/ \ No newline at end of file diff --git a/src/graphics/berries.h b/src/graphics/berries.h new file mode 100644 index 0000000000..d843a4f808 --- /dev/null +++ b/src/graphics/berries.h @@ -0,0 +1,95 @@ +const u8 gUnknown_08D9BB44[] = INCBIN_U8("graphics/interface/check_berry.4bpp.lz"); +const u8 gUnknown_08D9BEF0[] = INCBIN_U8("graphics/interface/check_berry.gbapal.lz"); + +const u16 gUnknown_08D9BF98[] = INCBIN_U16("graphics/interface/berry_tag.bin.lz"); +const u16 gUnknown_08D9C13C[] = INCBIN_U16("graphics/interface/berry_tag_title.bin.lz"); + +const u8 gBerryCheckCircle_Gfx[] = INCBIN_U8("graphics/interface/check_berry_circle.4bpp.lz"); + +const u8 gBerryPic_Cheri[] = INCBIN_U8("graphics/berries/cheri.4bpp.lz"); +const u8 gBerryPic_Oran[] = INCBIN_U8("graphics/berries/oran.4bpp.lz"); +const u8 gBerryPic_Pecha[] = INCBIN_U8("graphics/berries/pecha.4bpp.lz"); +const u8 gBerryPic_Rawst[] = INCBIN_U8("graphics/berries/rawst.4bpp.lz"); +const u8 gBerryPic_Aspear[] = INCBIN_U8("graphics/berries/aspear.4bpp.lz"); +const u8 gBerryPic_Leppa[] = INCBIN_U8("graphics/berries/leppa.4bpp.lz"); +const u8 gBerryPic_Chesto[] = INCBIN_U8("graphics/berries/chesto.4bpp.lz"); +const u8 gBerryPic_Persim[] = INCBIN_U8("graphics/berries/persim.4bpp.lz"); +const u8 gBerryPic_Lum[] = INCBIN_U8("graphics/berries/lum.4bpp.lz"); +const u8 gBerryPic_Sitrus[] = INCBIN_U8("graphics/berries/sitrus.4bpp.lz"); +const u8 gBerryPic_Figy[] = INCBIN_U8("graphics/berries/figy.4bpp.lz"); +const u8 gBerryPic_Wiki[] = INCBIN_U8("graphics/berries/wiki.4bpp.lz"); +const u8 gBerryPic_Mago[] = INCBIN_U8("graphics/berries/mago.4bpp.lz"); +const u8 gBerryPic_Aguav[] = INCBIN_U8("graphics/berries/aguav.4bpp.lz"); +const u8 gBerryPic_Iapapa[] = INCBIN_U8("graphics/berries/iapapa.4bpp.lz"); +const u8 gBerryPic_Razz[] = INCBIN_U8("graphics/berries/razz.4bpp.lz"); +const u8 gBerryPic_Bluk[] = INCBIN_U8("graphics/berries/bluk.4bpp.lz"); +const u8 gBerryPic_Nanab[] = INCBIN_U8("graphics/berries/nanab.4bpp.lz"); +const u8 gBerryPic_Wepear[] = INCBIN_U8("graphics/berries/wepear.4bpp.lz"); +const u8 gBerryPic_Pinap[] = INCBIN_U8("graphics/berries/pinap.4bpp.lz"); +const u8 gBerryPic_Pomeg[] = INCBIN_U8("graphics/berries/pomeg.4bpp.lz"); +const u8 gBerryPic_Kelpsy[] = INCBIN_U8("graphics/berries/kelpsy.4bpp.lz"); +const u8 gBerryPic_Qualot[] = INCBIN_U8("graphics/berries/qualot.4bpp.lz"); +const u8 gBerryPic_Hondew[] = INCBIN_U8("graphics/berries/hondew.4bpp.lz"); +const u8 gBerryPic_Grepa[] = INCBIN_U8("graphics/berries/grepa.4bpp.lz"); +const u8 gBerryPic_Tamato[] = INCBIN_U8("graphics/berries/tamato.4bpp.lz"); +const u8 gBerryPic_Cornn[] = INCBIN_U8("graphics/berries/cornn.4bpp.lz"); +const u8 gBerryPic_Magost[] = INCBIN_U8("graphics/berries/magost.4bpp.lz"); +const u8 gBerryPic_Rabuta[] = INCBIN_U8("graphics/berries/rabuta.4bpp.lz"); +const u8 gBerryPic_Nomel[] = INCBIN_U8("graphics/berries/nomel.4bpp.lz"); +const u8 gBerryPic_Spelon[] = INCBIN_U8("graphics/berries/spelon.4bpp.lz"); +const u8 gBerryPic_Pamtre[] = INCBIN_U8("graphics/berries/pamtre.4bpp.lz"); +const u8 gBerryPic_Watmel[] = INCBIN_U8("graphics/berries/watmel.4bpp.lz"); +const u8 gBerryPic_Durin[] = INCBIN_U8("graphics/berries/durin.4bpp.lz"); +const u8 gBerryPic_Belue[] = INCBIN_U8("graphics/berries/belue.4bpp.lz"); +const u8 gBerryPic_Liechi[] = INCBIN_U8("graphics/berries/liechi.4bpp.lz"); +const u8 gBerryPic_Ganlon[] = INCBIN_U8("graphics/berries/ganlon.4bpp.lz"); +const u8 gBerryPic_Salac[] = INCBIN_U8("graphics/berries/salac.4bpp.lz"); +const u8 gBerryPic_Petaya[] = INCBIN_U8("graphics/berries/petaya.4bpp.lz"); +const u8 gBerryPic_Apicot[] = INCBIN_U8("graphics/berries/apicot.4bpp.lz"); +const u8 gBerryPic_Lansat[] = INCBIN_U8("graphics/berries/lansat.4bpp.lz"); +const u8 gBerryPic_Starf[] = INCBIN_U8("graphics/berries/starf.4bpp.lz"); +const u8 gBerryPic_Enigma[] = INCBIN_U8("graphics/berries/enigma.4bpp.lz"); + +const u8 gBerryPalette_Cheri[] = INCBIN_U8("graphics/berries/cheri.gbapal.lz"); +const u8 gBerryPalette_Oran[] = INCBIN_U8("graphics/berries/oran.gbapal.lz"); +const u8 gBerryPalette_Pecha[] = INCBIN_U8("graphics/berries/pecha.gbapal.lz"); +const u8 gBerryPalette_Rawst[] = INCBIN_U8("graphics/berries/rawst.gbapal.lz"); +const u8 gBerryPalette_Aspear[] = INCBIN_U8("graphics/berries/aspear.gbapal.lz"); +const u8 gBerryPalette_Leppa[] = INCBIN_U8("graphics/berries/leppa.gbapal.lz"); +const u8 gBerryPalette_Chesto[] = INCBIN_U8("graphics/berries/chesto.gbapal.lz"); +const u8 gBerryPalette_Persim[] = INCBIN_U8("graphics/berries/persim.gbapal.lz"); +const u8 gBerryPalette_Lum[] = INCBIN_U8("graphics/berries/lum.gbapal.lz"); +const u8 gBerryPalette_Sitrus[] = INCBIN_U8("graphics/berries/sitrus.gbapal.lz"); +const u8 gBerryPalette_Figy[] = INCBIN_U8("graphics/berries/figy.gbapal.lz"); +const u8 gBerryPalette_Wiki[] = INCBIN_U8("graphics/berries/wiki.gbapal.lz"); +const u8 gBerryPalette_Mago[] = INCBIN_U8("graphics/berries/mago.gbapal.lz"); +const u8 gBerryPalette_Aguav[] = INCBIN_U8("graphics/berries/aguav.gbapal.lz"); +const u8 gBerryPalette_Iapapa[] = INCBIN_U8("graphics/berries/iapapa.gbapal.lz"); +const u8 gBerryPalette_Razz[] = INCBIN_U8("graphics/berries/razz.gbapal.lz"); +const u8 gBerryPalette_Bluk[] = INCBIN_U8("graphics/berries/bluk.gbapal.lz"); +const u8 gBerryPalette_Nanab[] = INCBIN_U8("graphics/berries/nanab.gbapal.lz"); +const u8 gBerryPalette_Wepear[] = INCBIN_U8("graphics/berries/wepear.gbapal.lz"); +const u8 gBerryPalette_Pinap[] = INCBIN_U8("graphics/berries/pinap.gbapal.lz"); +const u8 gBerryPalette_Pomeg[] = INCBIN_U8("graphics/berries/pomeg.gbapal.lz"); +const u8 gBerryPalette_Kelpsy[] = INCBIN_U8("graphics/berries/kelpsy.gbapal.lz"); +const u8 gBerryPalette_Qualot[] = INCBIN_U8("graphics/berries/qualot.gbapal.lz"); +const u8 gBerryPalette_Hondew[] = INCBIN_U8("graphics/berries/hondew.gbapal.lz"); +const u8 gBerryPalette_Grepa[] = INCBIN_U8("graphics/berries/grepa.gbapal.lz"); +const u8 gBerryPalette_Tamato[] = INCBIN_U8("graphics/berries/tamato.gbapal.lz"); +const u8 gBerryPalette_Cornn[] = INCBIN_U8("graphics/berries/cornn.gbapal.lz"); +const u8 gBerryPalette_Magost[] = INCBIN_U8("graphics/berries/magost.gbapal.lz"); +const u8 gBerryPalette_Rabuta[] = INCBIN_U8("graphics/berries/rabuta.gbapal.lz"); +const u8 gBerryPalette_Nomel[] = INCBIN_U8("graphics/berries/nomel.gbapal.lz"); +const u8 gBerryPalette_Spelon[] = INCBIN_U8("graphics/berries/spelon.gbapal.lz"); +const u8 gBerryPalette_Pamtre[] = INCBIN_U8("graphics/berries/pamtre.gbapal.lz"); +const u8 gBerryPalette_Watmel[] = INCBIN_U8("graphics/berries/watmel.gbapal.lz"); +const u8 gBerryPalette_Durin[] = INCBIN_U8("graphics/berries/durin.gbapal.lz"); +const u8 gBerryPalette_Belue[] = INCBIN_U8("graphics/berries/belue.gbapal.lz"); +const u8 gBerryPalette_Liechi[] = INCBIN_U8("graphics/berries/liechi.gbapal.lz"); +const u8 gBerryPalette_Ganlon[] = INCBIN_U8("graphics/berries/ganlon.gbapal.lz"); +const u8 gBerryPalette_Salac[] = INCBIN_U8("graphics/berries/salac.gbapal.lz"); +const u8 gBerryPalette_Petaya[] = INCBIN_U8("graphics/berries/petaya.gbapal.lz"); +const u8 gBerryPalette_Apicot[] = INCBIN_U8("graphics/berries/apicot.gbapal.lz"); +const u8 gBerryPalette_Lansat[] = INCBIN_U8("graphics/berries/lansat.gbapal.lz"); +const u8 gBerryPalette_Starf[] = INCBIN_U8("graphics/berries/starf.gbapal.lz"); +const u8 gBerryPalette_Enigma[] = INCBIN_U8("graphics/berries/enigma.gbapal.lz"); diff --git a/src/graphics/decorations.h b/src/graphics/decorations.h new file mode 100644 index 0000000000..574ee50b65 --- /dev/null +++ b/src/graphics/decorations.h @@ -0,0 +1,125 @@ +const u8 gUnknown_08DB7AA0[] = INCBIN_U8("graphics/decorations/decor_heavy_desk.4bpp.lz"); +const u8 gUnknown_08DB7B34[] = INCBIN_U8("graphics/decorations/decor_heavy_desk.gbapal.lz"); + +const u8 gUnknown_08DB7B5C[] = INCBIN_U8("graphics/decorations/decor_ragged_desk.4bpp.lz"); +const u8 gUnknown_08DB7BEC[] = INCBIN_U8("graphics/decorations/decor_ragged_desk.gbapal.lz"); + +const u8 gUnknown_08DB7C08[] = INCBIN_U8("graphics/decorations/decor_comfort_desk.4bpp.lz"); +const u8 gUnknown_08DB7CE8[] = INCBIN_U8("graphics/decorations/decor_comfort_desk.gbapal.lz"); + +const u8 gUnknown_08DB7D08[] = INCBIN_U8("graphics/decorations/decor_pretty_desk.4bpp.lz"); +const u8 gUnknown_08DB7DCC[] = INCBIN_U8("graphics/decorations/decor_pretty_desk.gbapal.lz"); + +const u8 gUnknown_08DB7DF4[] = INCBIN_U8("graphics/decorations/decor_brick_desk.4bpp.lz"); +const u8 gUnknown_08DB7EA0[] = INCBIN_U8("graphics/decorations/decor_brick_desk.gbapal.lz"); + +const u8 gUnknown_08DB7EC4[] = INCBIN_U8("graphics/decorations/decor_camp_desk.4bpp.lz"); +const u8 gUnknown_08DB7F60[] = INCBIN_U8("graphics/decorations/decor_camp_desk.gbapal.lz"); + +const u8 gUnknown_08DB7F7C[] = INCBIN_U8("graphics/decorations/decor_hard_desk.4bpp.lz"); +const u8 gUnknown_08DB8070[] = INCBIN_U8("graphics/decorations/decor_hard_desk.gbapal.lz"); + +const u8 gUnknown_08DB808C[] = INCBIN_U8("graphics/decorations/decor_red_plant.4bpp.lz"); +const u8 gUnknown_08DB8138[] = INCBIN_U8("graphics/decorations/decor_red_plant.gbapal.lz"); + +const u8 gUnknown_08DB8160[] = INCBIN_U8("graphics/decorations/decor_tropical_plant.4bpp.lz"); +const u8 gUnknown_08DB8218[] = INCBIN_U8("graphics/decorations/decor_tropical_plant.gbapal.lz"); + +const u8 gUnknown_08DB823C[] = INCBIN_U8("graphics/decorations/decor_pretty_flowers.4bpp.lz"); +const u8 gUnknown_08DB8300[] = INCBIN_U8("graphics/decorations/decor_pretty_flowers.gbapal.lz"); + +const u8 gUnknown_08DB8328[] = INCBIN_U8("graphics/decorations/decor_colorful_plant.4bpp.lz"); +const u8 gUnknown_08DB8430[] = INCBIN_U8("graphics/decorations/decor_colorful_plant.gbapal.lz"); + +const u8 gUnknown_08DB8458[] = INCBIN_U8("graphics/decorations/decor_big_plant.4bpp.lz"); +const u8 gUnknown_08DB8528[] = INCBIN_U8("graphics/decorations/decor_big_plant.gbapal.lz"); + +const u8 gUnknown_08DB854C[] = INCBIN_U8("graphics/decorations/decor_gorgeous_plant.4bpp.lz"); +const u8 gUnknown_08DB862C[] = INCBIN_U8("graphics/decorations/decor_gorgeous_plant.gbapal.lz"); + +const u8 gUnknown_08DB8654[] = INCBIN_U8("graphics/decorations/decor_red_brick.4bpp.lz"); +const u8 gUnknown_08DB86C4[] = INCBIN_U8("graphics/decorations/decor_red_brick.gbapal.lz"); + +const u8 gUnknown_08DB86E0[] = INCBIN_U8("graphics/decorations/decor_yellow_brick.4bpp.lz"); +const u8 gUnknown_08DB8750[] = INCBIN_U8("graphics/decorations/decor_yellow_brick.gbapal.lz"); + +const u8 gUnknown_08DB876C[] = INCBIN_U8("graphics/decorations/decor_blue_brick.4bpp.lz"); +const u8 gUnknown_08DB87DC[] = INCBIN_U8("graphics/decorations/decor_blue_brick.gbapal.lz"); + +const u8 gUnknown_08DB87F8[] = INCBIN_U8("graphics/decorations/decor_red_tent.4bpp.lz"); +const u8 gUnknown_08DB88D8[] = INCBIN_U8("graphics/decorations/decor_red_tent.gbapal.lz"); + +const u8 gUnknown_08DB8900[] = INCBIN_U8("graphics/decorations/decor_blue_tent.4bpp.lz"); +const u8 gUnknown_08DB89E0[] = INCBIN_U8("graphics/decorations/decor_blue_tent.gbapal.lz"); + +const u8 gUnknown_08DB8A08[] = INCBIN_U8("graphics/decorations/decor_solid_board.4bpp.lz"); +const u8 gUnknown_08DB8A68[] = INCBIN_U8("graphics/decorations/decor_solid_board.gbapal.lz"); + +const u8 gUnknown_08DB8A84[] = INCBIN_U8("graphics/decorations/decor_slide.4bpp.lz"); +const u8 gUnknown_08DB8B40[] = INCBIN_U8("graphics/decorations/decor_slide.gbapal.lz"); + +const u8 gUnknown_08DB8B68[] = INCBIN_U8("graphics/decorations/decor_tire.4bpp.lz"); +const u8 gUnknown_08DB8C40[] = INCBIN_U8("graphics/decorations/decor_tire.gbapal.lz"); + +const u8 gUnknown_08DB8C5C[] = INCBIN_U8("graphics/decorations/decor_stand.4bpp.lz"); +const u8 gUnknown_08DB8CF4[] = INCBIN_U8("graphics/decorations/decor_stand.gbapal.lz"); + +const u8 gUnknown_08DB8D18[] = INCBIN_U8("graphics/decorations/decor_breakable_door.4bpp.lz"); +const u8 gUnknown_08DB8DB0[] = INCBIN_U8("graphics/decorations/decor_breakable_door.gbapal.lz"); + +const u8 gUnknown_08DB8DD4[] = INCBIN_U8("graphics/decorations/decor_sand_ornament.4bpp.lz"); +const u8 gUnknown_08DB8E80[] = INCBIN_U8("graphics/decorations/decor_sand_ornament.gbapal.lz"); + +const u8 gUnknown_08DB8EA0[] = INCBIN_U8("graphics/decorations/decor_glass_ornament.4bpp.lz"); +const u8 gUnknown_08DB8F58[] = INCBIN_U8("graphics/decorations/decor_glass_ornament.gbapal.lz"); + +const u8 gUnknown_08DB8F7C[] = INCBIN_U8("graphics/decorations/decor_surf_mat.4bpp.lz"); +const u8 gUnknown_08DB9038[] = INCBIN_U8("graphics/decorations/decor_surf_mat.gbapal.lz"); + +const u8 gUnknown_08DB9058[] = INCBIN_U8("graphics/decorations/decor_thunder_mat.4bpp.lz"); +const u8 gUnknown_08DB9130[] = INCBIN_U8("graphics/decorations/decor_thunder_mat.gbapal.lz"); + +const u8 gUnknown_08DB9154[] = INCBIN_U8("graphics/decorations/decor_fire_blast_mat.4bpp.lz"); +const u8 gUnknown_08DB9218[] = INCBIN_U8("graphics/decorations/decor_fire_blast_mat.gbapal.lz"); + +const u8 gUnknown_08DB9234[] = INCBIN_U8("graphics/decorations/decor_powder_snow_mat.4bpp.lz"); +const u8 gUnknown_08DB92FC[] = INCBIN_U8("graphics/decorations/decor_powder_snow_mat.gbapal.lz"); + +const u8 gUnknown_08DB931C[] = INCBIN_U8("graphics/decorations/decor_attract_mat.4bpp.lz"); +const u8 gUnknown_08DB93E8[] = INCBIN_U8("graphics/decorations/decor_attract_mat.gbapal.lz"); + +const u8 gUnknown_08DB940C[] = INCBIN_U8("graphics/decorations/decor_fissure_mat.4bpp.lz"); +const u8 gUnknown_08DB94CC[] = INCBIN_U8("graphics/decorations/decor_fissure_mat.gbapal.lz"); + +const u8 gUnknown_08DB94E8[] = INCBIN_U8("graphics/decorations/decor_spikes_mat.4bpp.lz"); +const u8 gUnknown_08DB95AC[] = INCBIN_U8("graphics/decorations/decor_spikes_mat.gbapal.lz"); + +const u8 gUnknown_08DB95D0[] = INCBIN_U8("graphics/decorations/decor_snorlax_doll.4bpp.lz"); +const u8 gUnknown_08DB96C4[] = INCBIN_U8("graphics/decorations/decor_snorlax_doll.gbapal.lz"); + +const u8 gUnknown_08DB96EC[] = INCBIN_U8("graphics/decorations/decor_rhydon_doll.4bpp.lz"); +const u8 gUnknown_08DB97F4[] = INCBIN_U8("graphics/decorations/decor_rhydon_doll.gbapal.lz"); + +const u8 gUnknown_08DB981C[] = INCBIN_U8("graphics/decorations/decor_lapras_doll.4bpp.lz"); +const u8 gUnknown_08DB9908[] = INCBIN_U8("graphics/decorations/decor_lapras_doll.gbapal.lz"); + +const u8 gUnknown_08DB9930[] = INCBIN_U8("graphics/decorations/decor_venusaur_doll.4bpp.lz"); +const u8 gUnknown_08DB9A54[] = INCBIN_U8("graphics/decorations/decor_venusaur_doll.gbapal.lz"); + +const u8 gUnknown_08DB9A7C[] = INCBIN_U8("graphics/decorations/decor_charizard_doll.4bpp.lz"); +const u8 gUnknown_08DB9B7C[] = INCBIN_U8("graphics/decorations/decor_charizard_doll.gbapal.lz"); + +const u8 gUnknown_08DB9BA4[] = INCBIN_U8("graphics/decorations/decor_blastoise_doll.4bpp.lz"); +const u8 gUnknown_08DB9CB0[] = INCBIN_U8("graphics/decorations/decor_blastoise_doll.gbapal.lz"); + +const u8 gUnknown_08DB9CD8[] = INCBIN_U8("graphics/decorations/decor_wailmer_doll.4bpp.lz"); +const u8 gUnknown_08DB9DAC[] = INCBIN_U8("graphics/decorations/decor_wailmer_doll.gbapal.lz"); + +const u8 gUnknown_08DB9DD4[] = INCBIN_U8("graphics/decorations/decor_regice_doll.4bpp.lz"); +const u8 gUnknown_08DB9EE4[] = INCBIN_U8("graphics/decorations/decor_regice_doll.gbapal.lz"); + +const u8 gUnknown_08DB9F08[] = INCBIN_U8("graphics/decorations/decor_regirock_doll.4bpp.lz"); +const u8 gUnknown_08DB9FFC[] = INCBIN_U8("graphics/decorations/decor_regirock_doll.gbapal.lz"); + +const u8 gUnknown_08DBA020[] = INCBIN_U8("graphics/decorations/decor_registeel_doll.4bpp.lz"); +const u8 gUnknown_08DBA12C[] = INCBIN_U8("graphics/decorations/decor_registeel_doll.gbapal.lz"); diff --git a/src/graphics/items.h b/src/graphics/items.h new file mode 100644 index 0000000000..299e519ca2 --- /dev/null +++ b/src/graphics/items.h @@ -0,0 +1,738 @@ +const u8 gItemIcon_QuestionMark[] = INCBIN_U8("graphics/items/icons/question_mark.4bpp.lz"); +const u8 gItemIconPalette_QuestionMark[] = INCBIN_U8("graphics/items/icon_palettes/question_mark.gbapal.lz"); + +const u8 gItemIcon_ReturnToFieldArrow[] = INCBIN_U8("graphics/items/icons/return_to_field_arrow.4bpp.lz"); +const u8 gItemIconPalette_ReturnToFieldArrow[] = INCBIN_U8("graphics/items/icon_palettes/return_to_field_arrow.gbapal.lz"); + +// Pokeballs + +const u8 gItemIcon_MasterBall[] = INCBIN_U8("graphics/items/icons/master_ball.4bpp.lz"); +const u8 gItemIconPalette_MasterBall[] = INCBIN_U8("graphics/items/icon_palettes/master_ball.gbapal.lz"); + +const u8 gItemIcon_UltraBall[] = INCBIN_U8("graphics/items/icons/ultra_ball.4bpp.lz"); +const u8 gItemIconPalette_UltraBall[] = INCBIN_U8("graphics/items/icon_palettes/ultra_ball.gbapal.lz"); + +const u8 gItemIcon_GreatBall[] = INCBIN_U8("graphics/items/icons/great_ball.4bpp.lz"); +const u8 gItemIconPalette_GreatBall[] = INCBIN_U8("graphics/items/icon_palettes/great_ball.gbapal.lz"); + +const u8 gItemIcon_PokeBall[] = INCBIN_U8("graphics/items/icons/poke_ball.4bpp.lz"); +const u8 gItemIconPalette_PokeBall[] = INCBIN_U8("graphics/items/icon_palettes/poke_ball.gbapal.lz"); + +const u8 gItemIcon_SafariBall[] = INCBIN_U8("graphics/items/icons/safari_ball.4bpp.lz"); +const u8 gItemIconPalette_SafariBall[] = INCBIN_U8("graphics/items/icon_palettes/safari_ball.gbapal.lz"); + +const u8 gItemIcon_NetBall[] = INCBIN_U8("graphics/items/icons/net_ball.4bpp.lz"); +const u8 gItemIconPalette_NetBall[] = INCBIN_U8("graphics/items/icon_palettes/net_ball.gbapal.lz"); + +const u8 gItemIcon_DiveBall[] = INCBIN_U8("graphics/items/icons/dive_ball.4bpp.lz"); +const u8 gItemIconPalette_DiveBall[] = INCBIN_U8("graphics/items/icon_palettes/dive_ball.gbapal.lz"); + +const u8 gItemIcon_NestBall[] = INCBIN_U8("graphics/items/icons/nest_ball.4bpp.lz"); +const u8 gItemIconPalette_NestBall[] = INCBIN_U8("graphics/items/icon_palettes/nest_ball.gbapal.lz"); + +const u8 gItemIcon_RepeatBall[] = INCBIN_U8("graphics/items/icons/repeat_ball.4bpp.lz"); +const u8 gItemIconPalette_RepeatBall[] = INCBIN_U8("graphics/items/icon_palettes/repeat_ball.gbapal.lz"); + +const u8 gItemIcon_TimerBall[] = INCBIN_U8("graphics/items/icons/timer_ball.4bpp.lz"); + +const u8 gItemIcon_LuxuryBall[] = INCBIN_U8("graphics/items/icons/luxury_ball.4bpp.lz"); +const u8 gItemIconPalette_LuxuryBall[] = INCBIN_U8("graphics/items/icon_palettes/luxury_ball.gbapal.lz"); + +const u8 gItemIcon_PremierBall[] = INCBIN_U8("graphics/items/icons/premier_ball.4bpp.lz"); + +// Medicine + +const u8 gItemIcon_Potion[] = INCBIN_U8("graphics/items/icons/potion.4bpp.lz"); +const u8 gItemIconPalette_Potion[] = INCBIN_U8("graphics/items/icon_palettes/potion.gbapal.lz"); + +const u8 gItemIcon_Antidote[] = INCBIN_U8("graphics/items/icons/antidote.4bpp.lz"); +const u8 gItemIconPalette_Antidote[] = INCBIN_U8("graphics/items/icon_palettes/antidote.gbapal.lz"); + +const u8 gItemIconPalette_BurnHeal[] = INCBIN_U8("graphics/items/icon_palettes/burn_heal.gbapal.lz"); +const u8 gItemIconPalette_IceHeal[] = INCBIN_U8("graphics/items/icon_palettes/ice_heal.gbapal.lz"); +const u8 gItemIcon_StatusHeal[] = INCBIN_U8("graphics/items/icons/status_heal.4bpp.lz"); +const u8 gItemIconPalette_Awakening[] = INCBIN_U8("graphics/items/icon_palettes/awakening.gbapal.lz"); +const u8 gItemIconPalette_ParalyzeHeal[] = INCBIN_U8("graphics/items/icon_palettes/paralyze_heal.gbapal.lz"); + +const u8 gItemIcon_LargePotion[] = INCBIN_U8("graphics/items/icons/large_potion.4bpp.lz"); +const u8 gItemIconPalette_FullRestore[] = INCBIN_U8("graphics/items/icon_palettes/full_restore.gbapal.lz"); +const u8 gItemIconPalette_MaxPotion[] = INCBIN_U8("graphics/items/icon_palettes/max_potion.gbapal.lz"); + +const u8 gItemIconPalette_HyperPotion[] = INCBIN_U8("graphics/items/icon_palettes/hyper_potion.gbapal.lz"); + +const u8 gItemIconPalette_SuperPotion[] = INCBIN_U8("graphics/items/icon_palettes/super_potion.gbapal.lz"); + +const u8 gItemIcon_FullHeal[] = INCBIN_U8("graphics/items/icons/full_heal.4bpp.lz"); +const u8 gItemIconPalette_FullHeal[] = INCBIN_U8("graphics/items/icon_palettes/full_heal.gbapal.lz"); + +const u8 gItemIcon_Revive[] = INCBIN_U8("graphics/items/icons/revive.4bpp.lz"); + +const u8 gItemIcon_MaxRevive[] = INCBIN_U8("graphics/items/icons/max_revive.4bpp.lz"); + +const u8 gItemIconPalette_Revive[] = INCBIN_U8("graphics/items/icon_palettes/revive.gbapal.lz"); + +const u8 gItemIcon_FreshWater[] = INCBIN_U8("graphics/items/icons/fresh_water.4bpp.lz"); +const u8 gItemIconPalette_FreshWater[] = INCBIN_U8("graphics/items/icon_palettes/fresh_water.gbapal.lz"); + +const u8 gItemIcon_SodaPop[] = INCBIN_U8("graphics/items/icons/soda_pop.4bpp.lz"); +const u8 gItemIconPalette_SodaPop[] = INCBIN_U8("graphics/items/icon_palettes/soda_pop.gbapal.lz"); + +const u8 gItemIcon_Lemonade[] = INCBIN_U8("graphics/items/icons/lemonade.4bpp.lz"); +const u8 gItemIconPalette_Lemonade[] = INCBIN_U8("graphics/items/icon_palettes/lemonade.gbapal.lz"); + +const u8 gItemIcon_MoomooMilk[] = INCBIN_U8("graphics/items/icons/moomoo_milk.4bpp.lz"); +const u8 gItemIconPalette_MoomooMilk[] = INCBIN_U8("graphics/items/icon_palettes/moomoo_milk.gbapal.lz"); + +const u8 gItemIcon_Powder[] = INCBIN_U8("graphics/items/icons/powder.4bpp.lz"); +const u8 gItemIconPalette_EnergyPowder[] = INCBIN_U8("graphics/items/icon_palettes/energy_powder.gbapal.lz"); + +const u8 gItemIcon_EnergyRoot[] = INCBIN_U8("graphics/items/icons/energy_root.4bpp.lz"); +const u8 gItemIconPalette_EnergyRoot[] = INCBIN_U8("graphics/items/icon_palettes/energy_root.gbapal.lz"); + +const u8 gItemIconPalette_HealPowder[] = INCBIN_U8("graphics/items/icon_palettes/heal_powder.gbapal.lz"); + +const u8 gItemIcon_RevivalHerb[] = INCBIN_U8("graphics/items/icons/revival_herb.4bpp.lz"); +const u8 gItemIconPalette_RevivalHerb[] = INCBIN_U8("graphics/items/icon_palettes/revival_herb.gbapal.lz"); + +const u8 gItemIcon_Ether[] = INCBIN_U8("graphics/items/icons/ether.4bpp.lz"); +const u8 gItemIconPalette_Ether[] = INCBIN_U8("graphics/items/icon_palettes/ether.gbapal.lz"); +const u8 gItemIconPalette_MaxEther[] = INCBIN_U8("graphics/items/icon_palettes/max_ether.gbapal.lz"); +const u8 gItemIconPalette_Elixir[] = INCBIN_U8("graphics/items/icon_palettes/elixir.gbapal.lz"); +const u8 gItemIconPalette_MaxElixir[] = INCBIN_U8("graphics/items/icon_palettes/max_elixir.gbapal.lz"); + +const u8 gItemIcon_LavaCookie[] = INCBIN_U8("graphics/items/icons/lava_cookie.4bpp.lz"); +const u8 gItemIconPalette_LavaCookieAndLetter[] = INCBIN_U8("graphics/items/icon_palettes/lava_cookie_and_letter.gbapal.lz"); + +const u8 gItemIcon_Flute[] = INCBIN_U8("graphics/items/icons/flute.4bpp.lz"); +const u8 gItemIconPalette_BlueFlute[] = INCBIN_U8("graphics/items/icon_palettes/blue_flute.gbapal.lz"); +const u8 gItemIconPalette_YellowFlute[] = INCBIN_U8("graphics/items/icon_palettes/yellow_flute.gbapal.lz"); +const u8 gItemIconPalette_RedFlute[] = INCBIN_U8("graphics/items/icon_palettes/red_flute.gbapal.lz"); +const u8 gItemIconPalette_BlackFlute[] = INCBIN_U8("graphics/items/icon_palettes/black_flute.gbapal.lz"); +const u8 gItemIconPalette_WhiteFlute[] = INCBIN_U8("graphics/items/icon_palettes/white_flute.gbapal.lz"); + +const u8 gItemIcon_BerryJuice[] = INCBIN_U8("graphics/items/icons/berry_juice.4bpp.lz"); +const u8 gItemIconPalette_BerryJuice[] = INCBIN_U8("graphics/items/icon_palettes/berry_juice.gbapal.lz"); + +const u8 gItemIcon_SacredAsh[] = INCBIN_U8("graphics/items/icons/sacred_ash.4bpp.lz"); +const u8 gItemIconPalette_SacredAsh[] = INCBIN_U8("graphics/items/icon_palettes/sacred_ash.gbapal.lz"); + +// Collectibles + +const u8 gItemIconPalette_ShoalSalt[] = INCBIN_U8("graphics/items/icon_palettes/shoal_salt.gbapal.lz"); + +const u8 gItemIcon_ShoalShell[] = INCBIN_U8("graphics/items/icons/shoal_shell.4bpp.lz"); +const u8 gItemIconPalette_Shell[] = INCBIN_U8("graphics/items/icon_palettes/shell.gbapal.lz"); + +const u8 gItemIcon_Shard[] = INCBIN_U8("graphics/items/icons/shard.4bpp.lz"); +const u8 gItemIconPalette_RedShard[] = INCBIN_U8("graphics/items/icon_palettes/red_shard.gbapal.lz"); +const u8 gItemIconPalette_BlueShard[] = INCBIN_U8("graphics/items/icon_palettes/blue_shard.gbapal.lz"); +const u8 gItemIconPalette_YellowShard[] = INCBIN_U8("graphics/items/icon_palettes/yellow_shard.gbapal.lz"); +const u8 gItemIconPalette_GreenShard[] = INCBIN_U8("graphics/items/icon_palettes/green_shard.gbapal.lz"); + +// Vitamins + +const u8 gItemIcon_HPUp[] = INCBIN_U8("graphics/items/icons/hp_up.4bpp.lz"); +const u8 gItemIconPalette_HPUp[] = INCBIN_U8("graphics/items/icon_palettes/hp_up.gbapal.lz"); + +const u8 gItemIcon_Vitamin[] = INCBIN_U8("graphics/items/icons/vitamin.4bpp.lz"); +const u8 gItemIconPalette_Protein[] = INCBIN_U8("graphics/items/icon_palettes/protein.gbapal.lz"); +const u8 gItemIconPalette_Iron[] = INCBIN_U8("graphics/items/icon_palettes/iron.gbapal.lz"); +const u8 gItemIconPalette_Carbos[] = INCBIN_U8("graphics/items/icon_palettes/carbos.gbapal.lz"); +const u8 gItemIconPalette_Calcium[] = INCBIN_U8("graphics/items/icon_palettes/calcium.gbapal.lz"); + +const u8 gItemIcon_RareCandy[] = INCBIN_U8("graphics/items/icons/rare_candy.4bpp.lz"); +const u8 gItemIconPalette_RareCandy[] = INCBIN_U8("graphics/items/icon_palettes/rare_candy.gbapal.lz"); + +const u8 gItemIcon_PPUp[] = INCBIN_U8("graphics/items/icons/pp_up.4bpp.lz"); +const u8 gItemIconPalette_PPUp[] = INCBIN_U8("graphics/items/icon_palettes/pp_up.gbapal.lz"); + +const u8 gItemIconPalette_Zinc[] = INCBIN_U8("graphics/items/icon_palettes/zinc.gbapal.lz"); + +const u8 gItemIcon_PPMax[] = INCBIN_U8("graphics/items/icons/pp_max.4bpp.lz"); +const u8 gItemIconPalette_PPMax[] = INCBIN_U8("graphics/items/icon_palettes/pp_max.gbapal.lz"); + +// Battle items + +const u8 gItemIconPalette_GuardSpec[] = INCBIN_U8("graphics/items/icon_palettes/guard_spec.gbapal.lz"); +const u8 gItemIconPalette_DireHit[] = INCBIN_U8("graphics/items/icon_palettes/dire_hit.gbapal.lz"); +const u8 gItemIconPalette_XAttack[] = INCBIN_U8("graphics/items/icon_palettes/x_attack.gbapal.lz"); +const u8 gItemIcon_BattleStatItem[] = INCBIN_U8("graphics/items/icons/battle_stat_item.4bpp.lz"); +const u8 gItemIconPalette_XDefend[] = INCBIN_U8("graphics/items/icon_palettes/x_defend.gbapal.lz"); +const u8 gItemIconPalette_XSpeed[] = INCBIN_U8("graphics/items/icon_palettes/x_speed.gbapal.lz"); +const u8 gItemIconPalette_XAccuracy[] = INCBIN_U8("graphics/items/icon_palettes/x_accuracy.gbapal.lz"); +const u8 gItemIconPalette_XSpecial[] = INCBIN_U8("graphics/items/icon_palettes/x_special.gbapal.lz"); + +const u8 gItemIcon_PokeDoll[] = INCBIN_U8("graphics/items/icons/poke_doll.4bpp.lz"); +const u8 gItemIconPalette_PokeDoll[] = INCBIN_U8("graphics/items/icon_palettes/poke_doll.gbapal.lz"); + +const u8 gItemIcon_FluffyTail[] = INCBIN_U8("graphics/items/icons/fluffy_tail.4bpp.lz"); +const u8 gItemIconPalette_FluffyTail[] = INCBIN_U8("graphics/items/icon_palettes/fluffy_tail.gbapal.lz"); + +// Field items + +const u8 gItemIcon_Repel[] = INCBIN_U8("graphics/items/icons/repel.4bpp.lz"); +const u8 gItemIconPalette_SuperRepel[] = INCBIN_U8("graphics/items/icon_palettes/super_repel.gbapal.lz"); +const u8 gItemIconPalette_MaxRepel[] = INCBIN_U8("graphics/items/icon_palettes/max_repel.gbapal.lz"); + +const u8 gItemIcon_EscapeRope[] = INCBIN_U8("graphics/items/icons/escape_rope.4bpp.lz"); + +const u8 gItemIconPalette_EscapeRope[] = INCBIN_U8("graphics/items/icon_palettes/escape_rope.gbapal.lz"); + +const u8 gItemIconPalette_Repel[] = INCBIN_U8("graphics/items/icon_palettes/repel.gbapal.lz"); + +// Evolution stones + +const u8 gItemIcon_SunStone[] = INCBIN_U8("graphics/items/icons/sun_stone.4bpp.lz"); +const u8 gItemIconPalette_SunStone[] = INCBIN_U8("graphics/items/icon_palettes/sun_stone.gbapal.lz"); + +const u8 gItemIcon_MoonStone[] = INCBIN_U8("graphics/items/icons/moon_stone.4bpp.lz"); +const u8 gItemIconPalette_MoonStone[] = INCBIN_U8("graphics/items/icon_palettes/moon_stone.gbapal.lz"); + +const u8 gItemIcon_FireStone[] = INCBIN_U8("graphics/items/icons/fire_stone.4bpp.lz"); +const u8 gItemIconPalette_FireStone[] = INCBIN_U8("graphics/items/icon_palettes/fire_stone.gbapal.lz"); + +const u8 gItemIcon_ThunderStone[] = INCBIN_U8("graphics/items/icons/thunder_stone.4bpp.lz"); +const u8 gItemIconPalette_ThunderStone[] = INCBIN_U8("graphics/items/icon_palettes/thunder_stone.gbapal.lz"); + +const u8 gItemIcon_WaterStone[] = INCBIN_U8("graphics/items/icons/water_stone.4bpp.lz"); +const u8 gItemIconPalette_WaterStone[] = INCBIN_U8("graphics/items/icon_palettes/water_stone.gbapal.lz"); + +const u8 gItemIcon_LeafStone[] = INCBIN_U8("graphics/items/icons/leaf_stone.4bpp.lz"); +const u8 gItemIconPalette_LeafStone[] = INCBIN_U8("graphics/items/icon_palettes/leaf_stone.gbapal.lz"); + +// Valuables + +const u8 gItemIcon_TinyMushroom[] = INCBIN_U8("graphics/items/icons/tiny_mushroom.4bpp.lz"); +const u8 gItemIcon_BigMushroom[] = INCBIN_U8("graphics/items/icons/big_mushroom.4bpp.lz"); +const u8 gItemIconPalette_Mushroom[] = INCBIN_U8("graphics/items/icon_palettes/mushroom.gbapal.lz"); + +const u8 gItemIcon_Pearl[] = INCBIN_U8("graphics/items/icons/pearl.4bpp.lz"); +const u8 gItemIconPalette_Pearl[] = INCBIN_U8("graphics/items/icon_palettes/pearl.gbapal.lz"); +const u8 gItemIcon_BigPearl[] = INCBIN_U8("graphics/items/icons/big_pearl.4bpp.lz"); + +const u8 gItemIcon_Stardust[] = INCBIN_U8("graphics/items/icons/stardust.4bpp.lz"); +const u8 gItemIconPalette_Star[] = INCBIN_U8("graphics/items/icon_palettes/star.gbapal.lz"); +const u8 gItemIcon_StarPiece[] = INCBIN_U8("graphics/items/icons/star_piece.4bpp.lz"); + +const u8 gItemIcon_Nugget[] = INCBIN_U8("graphics/items/icons/nugget.4bpp.lz"); +const u8 gItemIconPalette_Nugget[] = INCBIN_U8("graphics/items/icon_palettes/nugget.gbapal.lz"); + +const u8 gItemIcon_HeartScale[] = INCBIN_U8("graphics/items/icons/heart_scale.4bpp.lz"); +const u8 gItemIconPalette_HeartScale[] = INCBIN_U8("graphics/items/icon_palettes/heart_scale.gbapal.lz"); + +// Mail + +const u8 gItemIcon_OrangeMail[] = INCBIN_U8("graphics/items/icons/orange_mail.4bpp.lz"); +const u8 gItemIconPalette_OrangeMail[] = INCBIN_U8("graphics/items/icon_palettes/orange_mail.gbapal.lz"); + +const u8 gItemIcon_HarborMail[] = INCBIN_U8("graphics/items/icons/harbor_mail.4bpp.lz"); +const u8 gItemIconPalette_HarborMail[] = INCBIN_U8("graphics/items/icon_palettes/harbor_mail.gbapal.lz"); + +const u8 gItemIcon_GlitterMail[] = INCBIN_U8("graphics/items/icons/glitter_mail.4bpp.lz"); +const u8 gItemIconPalette_GlitterMail[] = INCBIN_U8("graphics/items/icon_palettes/glitter_mail.gbapal.lz"); + +const u8 gItemIcon_MechMail[] = INCBIN_U8("graphics/items/icons/mech_mail.4bpp.lz"); +const u8 gItemIconPalette_MechMail[] = INCBIN_U8("graphics/items/icon_palettes/mech_mail.gbapal.lz"); + +const u8 gItemIcon_WoodMail[] = INCBIN_U8("graphics/items/icons/wood_mail.4bpp.lz"); +const u8 gItemIconPalette_WoodMail[] = INCBIN_U8("graphics/items/icon_palettes/wood_mail.gbapal.lz"); + +const u8 gItemIcon_WaveMail[] = INCBIN_U8("graphics/items/icons/wave_mail.4bpp.lz"); +const u8 gItemIconPalette_WaveMail[] = INCBIN_U8("graphics/items/icon_palettes/wave_mail.gbapal.lz"); + +const u8 gItemIcon_BeadMail[] = INCBIN_U8("graphics/items/icons/bead_mail.4bpp.lz"); +const u8 gItemIconPalette_BeadMail[] = INCBIN_U8("graphics/items/icon_palettes/bead_mail.gbapal.lz"); + +const u8 gItemIcon_ShadowMail[] = INCBIN_U8("graphics/items/icons/shadow_mail.4bpp.lz"); +const u8 gItemIconPalette_ShadowMail[] = INCBIN_U8("graphics/items/icon_palettes/shadow_mail.gbapal.lz"); + +const u8 gItemIcon_TropicMail[] = INCBIN_U8("graphics/items/icons/tropic_mail.4bpp.lz"); +const u8 gItemIconPalette_TropicMail[] = INCBIN_U8("graphics/items/icon_palettes/tropic_mail.gbapal.lz"); + +const u8 gItemIcon_DreamMail[] = INCBIN_U8("graphics/items/icons/dream_mail.4bpp.lz"); +const u8 gItemIconPalette_DreamMail[] = INCBIN_U8("graphics/items/icon_palettes/dream_mail.gbapal.lz"); + +const u8 gItemIcon_FabMail[] = INCBIN_U8("graphics/items/icons/fab_mail.4bpp.lz"); +const u8 gItemIconPalette_FabMail[] = INCBIN_U8("graphics/items/icon_palettes/fab_mail.gbapal.lz"); + +const u8 gItemIcon_RetroMail[] = INCBIN_U8("graphics/items/icons/retro_mail.4bpp.lz"); +const u8 gItemIconPalette_RetroMail[] = INCBIN_U8("graphics/items/icon_palettes/retro_mail.gbapal.lz"); + +// Berries + +const u8 gItemIcon_CheriBerry[] = INCBIN_U8("graphics/items/icons/cheri_berry.4bpp.lz"); +const u8 gItemIconPalette_CheriBerry[] = INCBIN_U8("graphics/items/icon_palettes/cheri_berry.gbapal.lz"); + +const u8 gItemIcon_ChestoBerry[] = INCBIN_U8("graphics/items/icons/chesto_berry.4bpp.lz"); +const u8 gItemIconPalette_ChestoBerry[] = INCBIN_U8("graphics/items/icon_palettes/chesto_berry.gbapal.lz"); + +const u8 gItemIcon_PechaBerry[] = INCBIN_U8("graphics/items/icons/pecha_berry.4bpp.lz"); +const u8 gItemIconPalette_PechaBerry[] = INCBIN_U8("graphics/items/icon_palettes/pecha_berry.gbapal.lz"); + +const u8 gItemIcon_RawstBerry[] = INCBIN_U8("graphics/items/icons/rawst_berry.4bpp.lz"); +const u8 gItemIconPalette_RawstBerry[] = INCBIN_U8("graphics/items/icon_palettes/rawst_berry.gbapal.lz"); + +const u8 gItemIcon_AspearBerry[] = INCBIN_U8("graphics/items/icons/aspear_berry.4bpp.lz"); +const u8 gItemIconPalette_AspearBerry[] = INCBIN_U8("graphics/items/icon_palettes/aspear_berry.gbapal.lz"); + +const u8 gItemIcon_LeppaBerry[] = INCBIN_U8("graphics/items/icons/leppa_berry.4bpp.lz"); +const u8 gItemIconPalette_LeppaBerry[] = INCBIN_U8("graphics/items/icon_palettes/leppa_berry.gbapal.lz"); + +const u8 gItemIcon_OranBerry[] = INCBIN_U8("graphics/items/icons/oran_berry.4bpp.lz"); +const u8 gItemIconPalette_OranBerry[] = INCBIN_U8("graphics/items/icon_palettes/oran_berry.gbapal.lz"); + +const u8 gItemIcon_PersimBerry[] = INCBIN_U8("graphics/items/icons/persim_berry.4bpp.lz"); +const u8 gItemIconPalette_PersimBerry[] = INCBIN_U8("graphics/items/icon_palettes/persim_berry.gbapal.lz"); + +const u8 gItemIcon_LumBerry[] = INCBIN_U8("graphics/items/icons/lum_berry.4bpp.lz"); +const u8 gItemIconPalette_LumBerry[] = INCBIN_U8("graphics/items/icon_palettes/lum_berry.gbapal.lz"); + +const u8 gItemIcon_SitrusBerry[] = INCBIN_U8("graphics/items/icons/sitrus_berry.4bpp.lz"); +const u8 gItemIconPalette_SitrusBerry[] = INCBIN_U8("graphics/items/icon_palettes/sitrus_berry.gbapal.lz"); + +const u8 gItemIcon_FigyBerry[] = INCBIN_U8("graphics/items/icons/figy_berry.4bpp.lz"); +const u8 gItemIconPalette_FigyBerry[] = INCBIN_U8("graphics/items/icon_palettes/figy_berry.gbapal.lz"); + +const u8 gItemIcon_WikiBerry[] = INCBIN_U8("graphics/items/icons/wiki_berry.4bpp.lz"); +const u8 gItemIconPalette_WikiBerry[] = INCBIN_U8("graphics/items/icon_palettes/wiki_berry.gbapal.lz"); + +const u8 gItemIcon_MagoBerry[] = INCBIN_U8("graphics/items/icons/mago_berry.4bpp.lz"); +const u8 gItemIconPalette_MagoBerry[] = INCBIN_U8("graphics/items/icon_palettes/mago_berry.gbapal.lz"); + +const u8 gItemIcon_AguavBerry[] = INCBIN_U8("graphics/items/icons/aguav_berry.4bpp.lz"); +const u8 gItemIconPalette_AguavBerry[] = INCBIN_U8("graphics/items/icon_palettes/aguav_berry.gbapal.lz"); + +const u8 gItemIcon_IapapaBerry[] = INCBIN_U8("graphics/items/icons/iapapa_berry.4bpp.lz"); +const u8 gItemIconPalette_IapapaBerry[] = INCBIN_U8("graphics/items/icon_palettes/iapapa_berry.gbapal.lz"); + +const u8 gItemIcon_RazzBerry[] = INCBIN_U8("graphics/items/icons/razz_berry.4bpp.lz"); +const u8 gItemIconPalette_RazzBerry[] = INCBIN_U8("graphics/items/icon_palettes/razz_berry.gbapal.lz"); + +const u8 gItemIcon_BlukBerry[] = INCBIN_U8("graphics/items/icons/bluk_berry.4bpp.lz"); +const u8 gItemIconPalette_BlukBerry[] = INCBIN_U8("graphics/items/icon_palettes/bluk_berry.gbapal.lz"); + +const u8 gItemIcon_NanabBerry[] = INCBIN_U8("graphics/items/icons/nanab_berry.4bpp.lz"); +const u8 gItemIconPalette_NanabBerry[] = INCBIN_U8("graphics/items/icon_palettes/nanab_berry.gbapal.lz"); + +const u8 gItemIcon_WepearBerry[] = INCBIN_U8("graphics/items/icons/wepear_berry.4bpp.lz"); +const u8 gItemIconPalette_WepearBerry[] = INCBIN_U8("graphics/items/icon_palettes/wepear_berry.gbapal.lz"); + +const u8 gItemIcon_PinapBerry[] = INCBIN_U8("graphics/items/icons/pinap_berry.4bpp.lz"); +const u8 gItemIconPalette_PinapBerry[] = INCBIN_U8("graphics/items/icon_palettes/pinap_berry.gbapal.lz"); + +const u8 gItemIcon_PomegBerry[] = INCBIN_U8("graphics/items/icons/pomeg_berry.4bpp.lz"); +const u8 gItemIconPalette_PomegBerry[] = INCBIN_U8("graphics/items/icon_palettes/pomeg_berry.gbapal.lz"); + +const u8 gItemIcon_KelpsyBerry[] = INCBIN_U8("graphics/items/icons/kelpsy_berry.4bpp.lz"); +const u8 gItemIconPalette_KelpsyBerry[] = INCBIN_U8("graphics/items/icon_palettes/kelpsy_berry.gbapal.lz"); + +const u8 gItemIcon_QualotBerry[] = INCBIN_U8("graphics/items/icons/qualot_berry.4bpp.lz"); +const u8 gItemIconPalette_QualotBerry[] = INCBIN_U8("graphics/items/icon_palettes/qualot_berry.gbapal.lz"); + +const u8 gItemIcon_HondewBerry[] = INCBIN_U8("graphics/items/icons/hondew_berry.4bpp.lz"); +const u8 gItemIconPalette_HondewBerry[] = INCBIN_U8("graphics/items/icon_palettes/hondew_berry.gbapal.lz"); + +const u8 gItemIcon_GrepaBerry[] = INCBIN_U8("graphics/items/icons/grepa_berry.4bpp.lz"); +const u8 gItemIconPalette_GrepaBerry[] = INCBIN_U8("graphics/items/icon_palettes/grepa_berry.gbapal.lz"); + +const u8 gItemIcon_TamatoBerry[] = INCBIN_U8("graphics/items/icons/tamato_berry.4bpp.lz"); +const u8 gItemIconPalette_TamatoBerry[] = INCBIN_U8("graphics/items/icon_palettes/tamato_berry.gbapal.lz"); + +const u8 gItemIcon_CornnBerry[] = INCBIN_U8("graphics/items/icons/cornn_berry.4bpp.lz"); +const u8 gItemIconPalette_CornnBerry[] = INCBIN_U8("graphics/items/icon_palettes/cornn_berry.gbapal.lz"); + +const u8 gItemIcon_MagostBerry[] = INCBIN_U8("graphics/items/icons/magost_berry.4bpp.lz"); +const u8 gItemIconPalette_MagostBerry[] = INCBIN_U8("graphics/items/icon_palettes/magost_berry.gbapal.lz"); + +const u8 gItemIcon_RabutaBerry[] = INCBIN_U8("graphics/items/icons/rabuta_berry.4bpp.lz"); +const u8 gItemIconPalette_RabutaBerry[] = INCBIN_U8("graphics/items/icon_palettes/rabuta_berry.gbapal.lz"); + +const u8 gItemIcon_NomelBerry[] = INCBIN_U8("graphics/items/icons/nomel_berry.4bpp.lz"); +const u8 gItemIconPalette_NomelBerry[] = INCBIN_U8("graphics/items/icon_palettes/nomel_berry.gbapal.lz"); + +const u8 gItemIcon_SpelonBerry[] = INCBIN_U8("graphics/items/icons/spelon_berry.4bpp.lz"); +const u8 gItemIconPalette_SpelonBerry[] = INCBIN_U8("graphics/items/icon_palettes/spelon_berry.gbapal.lz"); + +const u8 gItemIcon_PamtreBerry[] = INCBIN_U8("graphics/items/icons/pamtre_berry.4bpp.lz"); +const u8 gItemIconPalette_PamtreBerry[] = INCBIN_U8("graphics/items/icon_palettes/pamtre_berry.gbapal.lz"); + +const u8 gItemIcon_WatmelBerry[] = INCBIN_U8("graphics/items/icons/watmel_berry.4bpp.lz"); +const u8 gItemIconPalette_WatmelBerry[] = INCBIN_U8("graphics/items/icon_palettes/watmel_berry.gbapal.lz"); + +const u8 gItemIcon_DurinBerry[] = INCBIN_U8("graphics/items/icons/durin_berry.4bpp.lz"); +const u8 gItemIconPalette_DurinBerry[] = INCBIN_U8("graphics/items/icon_palettes/durin_berry.gbapal.lz"); + +const u8 gItemIcon_BelueBerry[] = INCBIN_U8("graphics/items/icons/belue_berry.4bpp.lz"); +const u8 gItemIconPalette_BelueBerry[] = INCBIN_U8("graphics/items/icon_palettes/belue_berry.gbapal.lz"); + +const u8 gItemIcon_LiechiBerry[] = INCBIN_U8("graphics/items/icons/liechi_berry.4bpp.lz"); +const u8 gItemIconPalette_LiechiBerry[] = INCBIN_U8("graphics/items/icon_palettes/liechi_berry.gbapal.lz"); + +const u8 gItemIcon_GanlonBerry[] = INCBIN_U8("graphics/items/icons/ganlon_berry.4bpp.lz"); +const u8 gItemIconPalette_GanlonBerry[] = INCBIN_U8("graphics/items/icon_palettes/ganlon_berry.gbapal.lz"); + +const u8 gItemIcon_SalacBerry[] = INCBIN_U8("graphics/items/icons/salac_berry.4bpp.lz"); +const u8 gItemIconPalette_SalacBerry[] = INCBIN_U8("graphics/items/icon_palettes/salac_berry.gbapal.lz"); + +const u8 gItemIcon_PetayaBerry[] = INCBIN_U8("graphics/items/icons/petaya_berry.4bpp.lz"); +const u8 gItemIconPalette_PetayaBerry[] = INCBIN_U8("graphics/items/icon_palettes/petaya_berry.gbapal.lz"); + +const u8 gItemIcon_ApicotBerry[] = INCBIN_U8("graphics/items/icons/apicot_berry.4bpp.lz"); +const u8 gItemIconPalette_ApicotBerry[] = INCBIN_U8("graphics/items/icon_palettes/apicot_berry.gbapal.lz"); + +const u8 gItemIcon_LansatBerry[] = INCBIN_U8("graphics/items/icons/lansat_berry.4bpp.lz"); +const u8 gItemIconPalette_LansatBerry[] = INCBIN_U8("graphics/items/icon_palettes/lansat_berry.gbapal.lz"); + +const u8 gItemIcon_StarfBerry[] = INCBIN_U8("graphics/items/icons/starf_berry.4bpp.lz"); +const u8 gItemIconPalette_StarfBerry[] = INCBIN_U8("graphics/items/icon_palettes/starf_berry.gbapal.lz"); + +const u8 gItemIcon_EnigmaBerry[] = INCBIN_U8("graphics/items/icons/enigma_berry.4bpp.lz"); +const u8 gItemIconPalette_EnigmaBerry[] = INCBIN_U8("graphics/items/icon_palettes/enigma_berry.gbapal.lz"); + +// Hold items + +const u8 gItemIcon_BrightPowder[] = INCBIN_U8("graphics/items/icons/bright_powder.4bpp.lz"); +const u8 gItemIconPalette_BrightPowder[] = INCBIN_U8("graphics/items/icon_palettes/bright_powder.gbapal.lz"); + +const u8 gItemIcon_InBattleHerb[] = INCBIN_U8("graphics/items/icons/in_battle_herb.4bpp.lz"); +const u8 gItemIconPalette_WhiteHerb[] = INCBIN_U8("graphics/items/icon_palettes/white_herb.gbapal.lz"); + +const u8 gItemIcon_MachoBrace[] = INCBIN_U8("graphics/items/icons/macho_brace.4bpp.lz"); +const u8 gItemIconPalette_MachoBrace[] = INCBIN_U8("graphics/items/icon_palettes/macho_brace.gbapal.lz"); + +const u8 gItemIcon_ExpShare[] = INCBIN_U8("graphics/items/icons/exp_share.4bpp.lz"); +const u8 gItemIconPalette_ExpShare[] = INCBIN_U8("graphics/items/icon_palettes/exp_share.gbapal.lz"); + +const u8 gItemIcon_QuickClaw[] = INCBIN_U8("graphics/items/icons/quick_claw.4bpp.lz"); +const u8 gItemIconPalette_QuickClaw[] = INCBIN_U8("graphics/items/icon_palettes/quick_claw.gbapal.lz"); + +const u8 gItemIcon_SootheBell[] = INCBIN_U8("graphics/items/icons/soothe_bell.4bpp.lz"); +const u8 gItemIconPalette_SootheBell[] = INCBIN_U8("graphics/items/icon_palettes/soothe_bell.gbapal.lz"); + +const u8 gItemIconPalette_MentalHerb[] = INCBIN_U8("graphics/items/icon_palettes/mental_herb.gbapal.lz"); + +const u8 gItemIcon_ChoiceBand[] = INCBIN_U8("graphics/items/icons/choice_band.4bpp.lz"); +const u8 gItemIconPalette_ChoiceBand[] = INCBIN_U8("graphics/items/icon_palettes/choice_band.gbapal.lz"); + +const u8 gItemIcon_KingsRock[] = INCBIN_U8("graphics/items/icons/kings_rock.4bpp.lz"); +const u8 gItemIconPalette_KingsRock[] = INCBIN_U8("graphics/items/icon_palettes/kings_rock.gbapal.lz"); + +const u8 gItemIcon_SilverPowder[] = INCBIN_U8("graphics/items/icons/silver_powder.4bpp.lz"); +const u8 gItemIconPalette_SilverPowder[] = INCBIN_U8("graphics/items/icon_palettes/silver_powder.gbapal.lz"); + +const u8 gItemIcon_AmuletCoin[] = INCBIN_U8("graphics/items/icons/amulet_coin.4bpp.lz"); +const u8 gItemIconPalette_AmuletCoin[] = INCBIN_U8("graphics/items/icon_palettes/amulet_coin.gbapal.lz"); + +const u8 gItemIcon_CleanseTag[] = INCBIN_U8("graphics/items/icons/cleanse_tag.4bpp.lz"); +const u8 gItemIconPalette_CleanseTag[] = INCBIN_U8("graphics/items/icon_palettes/cleanse_tag.gbapal.lz"); + +const u8 gItemIcon_SoulDew[] = INCBIN_U8("graphics/items/icons/soul_dew.4bpp.lz"); +const u8 gItemIconPalette_SoulDew[] = INCBIN_U8("graphics/items/icon_palettes/soul_dew.gbapal.lz"); + +const u8 gItemIcon_DeepSeaTooth[] = INCBIN_U8("graphics/items/icons/deep_sea_tooth.4bpp.lz"); +const u8 gItemIconPalette_DeepSeaTooth[] = INCBIN_U8("graphics/items/icon_palettes/deep_sea_tooth.gbapal.lz"); + +const u8 gItemIcon_DeepSeaScale[] = INCBIN_U8("graphics/items/icons/deep_sea_scale.4bpp.lz"); +const u8 gItemIconPalette_DeepSeaScale[] = INCBIN_U8("graphics/items/icon_palettes/deep_sea_scale.gbapal.lz"); + +const u8 gItemIcon_SmokeBall[] = INCBIN_U8("graphics/items/icons/smoke_ball.4bpp.lz"); +const u8 gItemIconPalette_SmokeBall[] = INCBIN_U8("graphics/items/icon_palettes/smoke_ball.gbapal.lz"); + +const u8 gItemIcon_Everstone[] = INCBIN_U8("graphics/items/icons/everstone.4bpp.lz"); +const u8 gItemIconPalette_Everstone[] = INCBIN_U8("graphics/items/icon_palettes/everstone.gbapal.lz"); + +const u8 gItemIcon_FocusBand[] = INCBIN_U8("graphics/items/icons/focus_band.4bpp.lz"); +const u8 gItemIconPalette_FocusBand[] = INCBIN_U8("graphics/items/icon_palettes/focus_band.gbapal.lz"); + +const u8 gItemIcon_LuckyEgg[] = INCBIN_U8("graphics/items/icons/lucky_egg.4bpp.lz"); +const u8 gItemIconPalette_LuckyEgg[] = INCBIN_U8("graphics/items/icon_palettes/lucky_egg.gbapal.lz"); + +const u8 gItemIcon_ScopeLens[] = INCBIN_U8("graphics/items/icons/scope_lens.4bpp.lz"); +const u8 gItemIconPalette_ScopeLens[] = INCBIN_U8("graphics/items/icon_palettes/scope_lens.gbapal.lz"); + +const u8 gItemIcon_MetalCoat[] = INCBIN_U8("graphics/items/icons/metal_coat.4bpp.lz"); +const u8 gItemIconPalette_MetalCoat[] = INCBIN_U8("graphics/items/icon_palettes/metal_coat.gbapal.lz"); + +const u8 gItemIcon_Leftovers[] = INCBIN_U8("graphics/items/icons/leftovers.4bpp.lz"); +const u8 gItemIconPalette_Leftovers[] = INCBIN_U8("graphics/items/icon_palettes/leftovers.gbapal.lz"); + +const u8 gItemIcon_DragonScale[] = INCBIN_U8("graphics/items/icons/dragon_scale.4bpp.lz"); +const u8 gItemIconPalette_DragonScale[] = INCBIN_U8("graphics/items/icon_palettes/dragon_scale.gbapal.lz"); + +const u8 gItemIcon_LightBall[] = INCBIN_U8("graphics/items/icons/light_ball.4bpp.lz"); +const u8 gItemIconPalette_LightBall[] = INCBIN_U8("graphics/items/icon_palettes/light_ball.gbapal.lz"); + +const u8 gItemIcon_SoftSand[] = INCBIN_U8("graphics/items/icons/soft_sand.4bpp.lz"); +const u8 gItemIconPalette_SoftSand[] = INCBIN_U8("graphics/items/icon_palettes/soft_sand.gbapal.lz"); + +const u8 gItemIcon_HardStone[] = INCBIN_U8("graphics/items/icons/hard_stone.4bpp.lz"); +const u8 gItemIconPalette_HardStone[] = INCBIN_U8("graphics/items/icon_palettes/hard_stone.gbapal.lz"); + +const u8 gItemIcon_MiracleSeed[] = INCBIN_U8("graphics/items/icons/miracle_seed.4bpp.lz"); +const u8 gItemIconPalette_MiracleSeed[] = INCBIN_U8("graphics/items/icon_palettes/miracle_seed.gbapal.lz"); + +const u8 gItemIcon_BlackGlasses[] = INCBIN_U8("graphics/items/icons/black_glasses.4bpp.lz"); +const u8 gItemIconPalette_BlackTypeEnhancingItem[] = INCBIN_U8("graphics/items/icon_palettes/black_type_enhancing_item.gbapal.lz"); + +const u8 gItemIcon_BlackBelt[] = INCBIN_U8("graphics/items/icons/black_belt.4bpp.lz"); + +const u8 gItemIcon_Magnet[] = INCBIN_U8("graphics/items/icons/magnet.4bpp.lz"); +const u8 gItemIconPalette_Magnet[] = INCBIN_U8("graphics/items/icon_palettes/magnet.gbapal.lz"); + +const u8 gItemIcon_MysticWater[] = INCBIN_U8("graphics/items/icons/mystic_water.4bpp.lz"); +const u8 gItemIconPalette_MysticWater[] = INCBIN_U8("graphics/items/icon_palettes/mystic_water.gbapal.lz"); + +const u8 gItemIcon_SharpBeak[] = INCBIN_U8("graphics/items/icons/sharp_beak.4bpp.lz"); +const u8 gItemIconPalette_SharpBeak[] = INCBIN_U8("graphics/items/icon_palettes/sharp_beak.gbapal.lz"); + +const u8 gItemIcon_PoisonBarb[] = INCBIN_U8("graphics/items/icons/poison_barb.4bpp.lz"); +const u8 gItemIconPalette_PoisonBarb[] = INCBIN_U8("graphics/items/icon_palettes/poison_barb.gbapal.lz"); + +const u8 gItemIcon_NeverMeltIce[] = INCBIN_U8("graphics/items/icons/never_melt_ice.4bpp.lz"); +const u8 gItemIconPalette_NeverMeltIce[] = INCBIN_U8("graphics/items/icon_palettes/never_melt_ice.gbapal.lz"); + +const u8 gItemIcon_SpellTag[] = INCBIN_U8("graphics/items/icons/spell_tag.4bpp.lz"); +const u8 gItemIconPalette_SpellTag[] = INCBIN_U8("graphics/items/icon_palettes/spell_tag.gbapal.lz"); + +const u8 gItemIcon_TwistedSpoon[] = INCBIN_U8("graphics/items/icons/twisted_spoon.4bpp.lz"); +const u8 gItemIconPalette_TwistedSpoon[] = INCBIN_U8("graphics/items/icon_palettes/twisted_spoon.gbapal.lz"); + +const u8 gItemIcon_Charcoal[] = INCBIN_U8("graphics/items/icons/charcoal.4bpp.lz"); +const u8 gItemIconPalette_Charcoal[] = INCBIN_U8("graphics/items/icon_palettes/charcoal.gbapal.lz"); + +const u8 gItemIcon_DragonFang[] = INCBIN_U8("graphics/items/icons/dragon_fang.4bpp.lz"); +const u8 gItemIconPalette_DragonFang[] = INCBIN_U8("graphics/items/icon_palettes/dragon_fang.gbapal.lz"); + +const u8 gItemIcon_SilkScarf[] = INCBIN_U8("graphics/items/icons/silk_scarf.4bpp.lz"); +const u8 gItemIconPalette_SilkScarf[] = INCBIN_U8("graphics/items/icon_palettes/silk_scarf.gbapal.lz"); + +const u8 gItemIcon_UpGrade[] = INCBIN_U8("graphics/items/icons/up_grade.4bpp.lz"); +const u8 gItemIconPalette_UpGrade[] = INCBIN_U8("graphics/items/icon_palettes/up_grade.gbapal.lz"); + +const u8 gItemIcon_ShellBell[] = INCBIN_U8("graphics/items/icons/shell_bell.4bpp.lz"); + +const u8 gItemIcon_SeaIncense[] = INCBIN_U8("graphics/items/icons/sea_incense.4bpp.lz"); +const u8 gItemIconPalette_SeaIncense[] = INCBIN_U8("graphics/items/icon_palettes/sea_incense.gbapal.lz"); + +const u8 gItemIcon_LaxIncense[] = INCBIN_U8("graphics/items/icons/lax_incense.4bpp.lz"); +const u8 gItemIconPalette_LaxIncense[] = INCBIN_U8("graphics/items/icon_palettes/lax_incense.gbapal.lz"); + +const u8 gItemIcon_LuckyPunch[] = INCBIN_U8("graphics/items/icons/lucky_punch.4bpp.lz"); +const u8 gItemIconPalette_LuckyPunch[] = INCBIN_U8("graphics/items/icon_palettes/lucky_punch.gbapal.lz"); + +const u8 gItemIcon_MetalPowder[] = INCBIN_U8("graphics/items/icons/metal_powder.4bpp.lz"); +const u8 gItemIconPalette_MetalPowder[] = INCBIN_U8("graphics/items/icon_palettes/metal_powder.gbapal.lz"); + +const u8 gItemIcon_ThickClub[] = INCBIN_U8("graphics/items/icons/thick_club.4bpp.lz"); +const u8 gItemIconPalette_ThickClub[] = INCBIN_U8("graphics/items/icon_palettes/thick_club.gbapal.lz"); + +const u8 gItemIcon_Stick[] = INCBIN_U8("graphics/items/icons/stick.4bpp.lz"); +const u8 gItemIconPalette_Stick[] = INCBIN_U8("graphics/items/icon_palettes/stick.gbapal.lz"); + +const u8 gItemIcon_Scarf[] = INCBIN_U8("graphics/items/icons/scarf.4bpp.lz"); +const u8 gItemIconPalette_RedScarf[] = INCBIN_U8("graphics/items/icon_palettes/red_scarf.gbapal.lz"); +const u8 gItemIconPalette_BlueScarf[] = INCBIN_U8("graphics/items/icon_palettes/blue_scarf.gbapal.lz"); +const u8 gItemIconPalette_PinkScarf[] = INCBIN_U8("graphics/items/icon_palettes/pink_scarf.gbapal.lz"); +const u8 gItemIconPalette_GreenScarf[] = INCBIN_U8("graphics/items/icon_palettes/green_scarf.gbapal.lz"); +const u8 gItemIconPalette_YellowScarf[] = INCBIN_U8("graphics/items/icon_palettes/yellow_scarf.gbapal.lz"); + +// Key items + +const u8 gItemIcon_MachBike[] = INCBIN_U8("graphics/items/icons/mach_bike.4bpp.lz"); +const u8 gItemIconPalette_MachBike[] = INCBIN_U8("graphics/items/icon_palettes/mach_bike.gbapal.lz"); + +const u8 gItemIcon_CoinCase[] = INCBIN_U8("graphics/items/icons/coin_case.4bpp.lz"); +const u8 gItemIconPalette_CoinCase[] = INCBIN_U8("graphics/items/icon_palettes/coin_case.gbapal.lz"); + +const u8 gItemIcon_Itemfinder[] = INCBIN_U8("graphics/items/icons/itemfinder.4bpp.lz"); +const u8 gItemIconPalette_Itemfinder[] = INCBIN_U8("graphics/items/icon_palettes/itemfinder.gbapal.lz"); + +const u8 gItemIcon_OldRod[] = INCBIN_U8("graphics/items/icons/old_rod.4bpp.lz"); +const u8 gItemIconPalette_OldRod[] = INCBIN_U8("graphics/items/icon_palettes/old_rod.gbapal.lz"); + +const u8 gItemIcon_GoodRod[] = INCBIN_U8("graphics/items/icons/good_rod.4bpp.lz"); +const u8 gItemIconPalette_GoodRod[] = INCBIN_U8("graphics/items/icon_palettes/good_rod.gbapal.lz"); + +const u8 gItemIcon_SuperRod[] = INCBIN_U8("graphics/items/icons/super_rod.4bpp.lz"); +const u8 gItemIconPalette_SuperRod[] = INCBIN_U8("graphics/items/icon_palettes/super_rod.gbapal.lz"); + +const u8 gItemIcon_SSTicket[] = INCBIN_U8("graphics/items/icons/ss_ticket.4bpp.lz"); +const u8 gItemIconPalette_SSTicket[] = INCBIN_U8("graphics/items/icon_palettes/ss_ticket.gbapal.lz"); + +const u8 gItemIcon_ContestPass[] = INCBIN_U8("graphics/items/icons/contest_pass.4bpp.lz"); +const u8 gItemIconPalette_ContestPass[] = INCBIN_U8("graphics/items/icon_palettes/contest_pass.gbapal.lz"); + +const u8 gItemIcon_WailmerPail[] = INCBIN_U8("graphics/items/icons/wailmer_pail.4bpp.lz"); +const u8 gItemIconPalette_WailmerPail[] = INCBIN_U8("graphics/items/icon_palettes/wailmer_pail.gbapal.lz"); + +const u8 gItemIcon_DevonGoods[] = INCBIN_U8("graphics/items/icons/devon_goods.4bpp.lz"); +const u8 gItemIconPalette_DevonGoods[] = INCBIN_U8("graphics/items/icon_palettes/devon_goods.gbapal.lz"); + +const u8 gItemIcon_SootSack[] = INCBIN_U8("graphics/items/icons/soot_sack.4bpp.lz"); +const u8 gItemIconPalette_SootSack[] = INCBIN_U8("graphics/items/icon_palettes/soot_sack.gbapal.lz"); + +const u8 gItemIcon_BasementKey[] = INCBIN_U8("graphics/items/icons/basement_key.4bpp.lz"); +const u8 gItemIconPalette_OldKey[] = INCBIN_U8("graphics/items/icon_palettes/old_key.gbapal.lz"); + +const u8 gItemIcon_AcroBike[] = INCBIN_U8("graphics/items/icons/acro_bike.4bpp.lz"); +const u8 gItemIconPalette_AcroBike[] = INCBIN_U8("graphics/items/icon_palettes/acro_bike.gbapal.lz"); + +const u8 gItemIcon_PokeblockCase[] = INCBIN_U8("graphics/items/icons/pokeblock_case.4bpp.lz"); +const u8 gItemIconPalette_PokeblockCase[] = INCBIN_U8("graphics/items/icon_palettes/pokeblock_case.gbapal.lz"); + +const u8 gItemIcon_Letter[] = INCBIN_U8("graphics/items/icons/letter.4bpp.lz"); +const u8 gItemIcon_EonTicket[] = INCBIN_U8("graphics/items/icons/eon_ticket.4bpp.lz"); + +const u8 gItemIconPalette_EonTicket[] = INCBIN_U8("graphics/items/icon_palettes/eon_ticket.gbapal.lz"); + +const u8 gItemIcon_Orb[] = INCBIN_U8("graphics/items/icons/orb.4bpp.lz"); +const u8 gItemIconPalette_RedOrb[] = INCBIN_U8("graphics/items/icon_palettes/red_orb.gbapal.lz"); +const u8 gItemIconPalette_BlueOrb[] = INCBIN_U8("graphics/items/icon_palettes/blue_orb.gbapal.lz"); + +const u8 gItemIcon_Scanner[] = INCBIN_U8("graphics/items/icons/scanner.4bpp.lz"); +const u8 gItemIconPalette_Scanner[] = INCBIN_U8("graphics/items/icon_palettes/scanner.gbapal.lz"); + +const u8 gItemIcon_GoGoggles[] = INCBIN_U8("graphics/items/icons/go_goggles.4bpp.lz"); +const u8 gItemIconPalette_GoGoggles[] = INCBIN_U8("graphics/items/icon_palettes/go_goggles.gbapal.lz"); + +const u8 gItemIcon_Meteorite[] = INCBIN_U8("graphics/items/icons/meteorite.4bpp.lz"); +const u8 gItemIconPalette_Meteorite[] = INCBIN_U8("graphics/items/icon_palettes/meteorite.gbapal.lz"); + +const u8 gItemIcon_Room1Key[] = INCBIN_U8("graphics/items/icons/room1_key.4bpp.lz"); + +const u8 gItemIcon_Room2Key[] = INCBIN_U8("graphics/items/icons/room2_key.4bpp.lz"); + +const u8 gItemIcon_Room4Key[] = INCBIN_U8("graphics/items/icons/room4_key.4bpp.lz"); + +const u8 gItemIcon_Room6Key[] = INCBIN_U8("graphics/items/icons/room6_key.4bpp.lz"); + +const u8 gItemIcon_StorageKey[] = INCBIN_U8("graphics/items/icons/storage_key.4bpp.lz"); + +const u8 gItemIcon_RootFossil[] = INCBIN_U8("graphics/items/icons/root_fossil.4bpp.lz"); +const u8 gItemIconPalette_HoennFossil[] = INCBIN_U8("graphics/items/icon_palettes/hoenn_fossil.gbapal.lz"); +const u8 gItemIcon_ClawFossil[] = INCBIN_U8("graphics/items/icons/claw_fossil.4bpp.lz"); + +const u8 gItemIcon_DevonScope[] = INCBIN_U8("graphics/items/icons/devon_scope.4bpp.lz"); +const u8 gItemIconPalette_DevonScope[] = INCBIN_U8("graphics/items/icon_palettes/devon_scope.gbapal.lz"); + +// TMs/HMs + +const u8 gItemIcon_TM[] = INCBIN_U8("graphics/items/icons/tm.4bpp.lz"); + +const u8 gItemIconPalette_FightingTMHM[] = INCBIN_U8("graphics/items/icon_palettes/fighting_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_DragonTMHM[] = INCBIN_U8("graphics/items/icon_palettes/dragon_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_WaterTMHM[] = INCBIN_U8("graphics/items/icon_palettes/water_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_PsychicTMHM[] = INCBIN_U8("graphics/items/icon_palettes/psychic_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_NormalTMHM[] = INCBIN_U8("graphics/items/icon_palettes/normal_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_PoisonTMHM[] = INCBIN_U8("graphics/items/icon_palettes/poison_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_IceTMHM[] = INCBIN_U8("graphics/items/icon_palettes/ice_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_GrassTMHM[] = INCBIN_U8("graphics/items/icon_palettes/grass_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_FireTMHM[] = INCBIN_U8("graphics/items/icon_palettes/fire_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_DarkTMHM[] = INCBIN_U8("graphics/items/icon_palettes/dark_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_SteelTMHM[] = INCBIN_U8("graphics/items/icon_palettes/steel_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_ElectricTMHM[] = INCBIN_U8("graphics/items/icon_palettes/electric_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_GroundTMHM[] = INCBIN_U8("graphics/items/icon_palettes/ground_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_GhostTMHM[] = INCBIN_U8("graphics/items/icon_palettes/ghost_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_RockTMHM[] = INCBIN_U8("graphics/items/icon_palettes/rock_tm_hm.gbapal.lz"); + +const u8 gItemIconPalette_FlyingTMHM[] = INCBIN_U8("graphics/items/icon_palettes/flying_tm_hm.gbapal.lz"); + +const u8 gItemIcon_HM[] = INCBIN_U8("graphics/items/icons/hm.4bpp.lz"); + +// FireRed/LeafGreen key items + +const u8 gItemIcon_OaksParcel[] = INCBIN_U8("graphics/items/icons/oaks_parcel.4bpp.lz"); +const u8 gItemIconPalette_OaksParcel[] = INCBIN_U8("graphics/items/icon_palettes/oaks_parcel.gbapal.lz"); + +const u8 gItemIcon_PokeFlute[] = INCBIN_U8("graphics/items/icons/poke_flute.4bpp.lz"); +const u8 gItemIconPalette_PokeFlute[] = INCBIN_U8("graphics/items/icon_palettes/poke_flute.gbapal.lz"); + +const u8 gItemIcon_SecretKey[] = INCBIN_U8("graphics/items/icons/secret_key.4bpp.lz"); +const u8 gItemIconPalette_SecretKey[] = INCBIN_U8("graphics/items/icon_palettes/secret_key.gbapal.lz"); + +const u8 gItemIcon_BikeVoucher[] = INCBIN_U8("graphics/items/icons/bike_voucher.4bpp.lz"); +const u8 gItemIconPalette_BikeVoucher[] = INCBIN_U8("graphics/items/icon_palettes/bike_voucher.gbapal.lz"); + +const u8 gItemIcon_GoldTeeth[] = INCBIN_U8("graphics/items/icons/gold_teeth.4bpp.lz"); +const u8 gItemIconPalette_GoldTeeth[] = INCBIN_U8("graphics/items/icon_palettes/gold_teeth.gbapal.lz"); + +const u8 gItemIcon_OldAmber[] = INCBIN_U8("graphics/items/icons/old_amber.4bpp.lz"); +const u8 gItemIconPalette_OldAmber[] = INCBIN_U8("graphics/items/icon_palettes/old_amber.gbapal.lz"); + +const u8 gItemIcon_CardKey[] = INCBIN_U8("graphics/items/icons/card_key.4bpp.lz"); +const u8 gItemIconPalette_CardKey[] = INCBIN_U8("graphics/items/icon_palettes/card_key.gbapal.lz"); + +const u8 gItemIcon_LiftKey[] = INCBIN_U8("graphics/items/icons/lift_key.4bpp.lz"); +const u8 gItemIconPalette_Key[] = INCBIN_U8("graphics/items/icon_palettes/key.gbapal.lz"); + +const u8 gItemIcon_HelixFossil[] = INCBIN_U8("graphics/items/icons/helix_fossil.4bpp.lz"); +const u8 gItemIconPalette_KantoFossil[] = INCBIN_U8("graphics/items/icon_palettes/kanto_fossil.gbapal.lz"); +const u8 gItemIcon_DomeFossil[] = INCBIN_U8("graphics/items/icons/dome_fossil.4bpp.lz"); + +const u8 gItemIcon_SilphScope[] = INCBIN_U8("graphics/items/icons/silph_scope.4bpp.lz"); +const u8 gItemIconPalette_SilphScope[] = INCBIN_U8("graphics/items/icon_palettes/silph_scope.gbapal.lz"); + +const u8 gItemIcon_Bicycle[] = INCBIN_U8("graphics/items/icons/bicycle.4bpp.lz"); +const u8 gItemIconPalette_Bicycle[] = INCBIN_U8("graphics/items/icon_palettes/bicycle.gbapal.lz"); + +const u8 gItemIcon_TownMap[] = INCBIN_U8("graphics/items/icons/town_map.4bpp.lz"); +const u8 gItemIconPalette_TownMap[] = INCBIN_U8("graphics/items/icon_palettes/town_map.gbapal.lz"); + +const u8 gItemIcon_VSSeeker[] = INCBIN_U8("graphics/items/icons/vs_seeker.4bpp.lz"); +const u8 gItemIconPalette_VSSeeker[] = INCBIN_U8("graphics/items/icon_palettes/vs_seeker.gbapal.lz"); + +const u8 gItemIcon_FameChecker[] = INCBIN_U8("graphics/items/icons/fame_checker.4bpp.lz"); +const u8 gItemIconPalette_FameChecker[] = INCBIN_U8("graphics/items/icon_palettes/fame_checker.gbapal.lz"); + +const u8 gItemIcon_TMCase[] = INCBIN_U8("graphics/items/icons/tm_case.4bpp.lz"); +const u8 gItemIconPalette_TMCase[] = INCBIN_U8("graphics/items/icon_palettes/tm_case.gbapal.lz"); + +const u8 gItemIcon_BerryPouch[] = INCBIN_U8("graphics/items/icons/berry_pouch.4bpp.lz"); +const u8 gItemIconPalette_BerryPouch[] = INCBIN_U8("graphics/items/icon_palettes/berry_pouch.gbapal.lz"); + +const u8 gItemIcon_TeachyTV[] = INCBIN_U8("graphics/items/icons/teachy_tv.4bpp.lz"); +const u8 gItemIconPalette_TeachyTV[] = INCBIN_U8("graphics/items/icon_palettes/teachy_tv.gbapal.lz"); + +const u8 gItemIcon_TriPass[] = INCBIN_U8("graphics/items/icons/tri_pass.4bpp.lz"); +const u8 gItemIconPalette_TriPass[] = INCBIN_U8("graphics/items/icon_palettes/tri_pass.gbapal.lz"); + +const u8 gItemIcon_RainbowPass[] = INCBIN_U8("graphics/items/icons/rainbow_pass.4bpp.lz"); +const u8 gItemIconPalette_RainbowPass[] = INCBIN_U8("graphics/items/icon_palettes/rainbow_pass.gbapal.lz"); + +const u8 gItemIcon_Tea[] = INCBIN_U8("graphics/items/icons/tea.4bpp.lz"); +const u8 gItemIconPalette_Tea[] = INCBIN_U8("graphics/items/icon_palettes/tea.gbapal.lz"); + +const u8 gItemIcon_MysticTicket[] = INCBIN_U8("graphics/items/icons/mystic_ticket.4bpp.lz"); +const u8 gItemIconPalette_MysticTicket[] = INCBIN_U8("graphics/items/icon_palettes/mystic_ticket.gbapal.lz"); + +const u8 gItemIcon_AuroraTicket[] = INCBIN_U8("graphics/items/icons/aurora_ticket.4bpp.lz"); +const u8 gItemIconPalette_AuroraTicket[] = INCBIN_U8("graphics/items/icon_palettes/aurora_ticket.gbapal.lz"); + +const u8 gItemIcon_PowderJar[] = INCBIN_U8("graphics/items/icons/powder_jar.4bpp.lz"); +const u8 gItemIconPalette_PowderJar[] = INCBIN_U8("graphics/items/icon_palettes/powder_jar.gbapal.lz"); + +const u8 gItemIconPalette_Ruby[] = INCBIN_U8("graphics/items/icon_palettes/ruby.gbapal.lz"); +const u8 gItemIcon_Gem[] = INCBIN_U8("graphics/items/icons/gem.4bpp.lz"); +const u8 gItemIconPalette_Sapphire[] = INCBIN_U8("graphics/items/icon_palettes/sapphire.gbapal.lz"); + +// Emerald-only key items + +const u8 gItemIcon_MagmaEmblem[] = INCBIN_U8("graphics/items/icons/magma_emblem.4bpp.lz"); +const u8 gItemIconPalette_MagmaEmblem[] = INCBIN_U8("graphics/items/icon_palettes/magma_emblem.gbapal.lz"); + +const u8 gItemIcon_OldSeaMap[] = INCBIN_U8("graphics/items/icons/old_sea_map.4bpp.lz"); +const u8 gItemIconPalette_OldSeaMap[] = INCBIN_U8("graphics/items/icon_palettes/old_sea_map.gbapal.lz"); diff --git a/src/graphics/pokemon.h b/src/graphics/pokemon.h new file mode 100644 index 0000000000..2c0345f591 --- /dev/null +++ b/src/graphics/pokemon.h @@ -0,0 +1,2823 @@ +const u8 gMonStillFrontPic_Bulbasaur[] = INCBIN_U8("graphics/pokemon/front_pics/bulbasaur_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Bulbasaur[] = INCBIN_U8("graphics/pokemon/palettes/bulbasaur_palette.gbapal.lz"); +const u8 gMonBackPic_Bulbasaur[] = INCBIN_U8("graphics/pokemon/back_pics/bulbasaur_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Bulbasaur[] = INCBIN_U8("graphics/pokemon/palettes/bulbasaur_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Bulbasaur[] = INCBIN_U8("graphics/pokemon/icons/bulbasaur_icon.4bpp"); +const u8 gMonFootprint_Bulbasaur[] = INCBIN_U8("graphics/pokemon/footprints/bulbasaur_footprint.1bpp"); + +const u8 gMonStillFrontPic_Ivysaur[] = INCBIN_U8("graphics/pokemon/front_pics/ivysaur_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ivysaur[] = INCBIN_U8("graphics/pokemon/palettes/ivysaur_palette.gbapal.lz"); +const u8 gMonBackPic_Ivysaur[] = INCBIN_U8("graphics/pokemon/back_pics/ivysaur_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ivysaur[] = INCBIN_U8("graphics/pokemon/palettes/ivysaur_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ivysaur[] = INCBIN_U8("graphics/pokemon/icons/ivysaur_icon.4bpp"); +const u8 gMonFootprint_Ivysaur[] = INCBIN_U8("graphics/pokemon/footprints/ivysaur_footprint.1bpp"); + +const u8 gMonStillFrontPic_Venusaur[] = INCBIN_U8("graphics/pokemon/front_pics/venusaur_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Venusaur[] = INCBIN_U8("graphics/pokemon/palettes/venusaur_palette.gbapal.lz"); +const u8 gMonBackPic_Venusaur[] = INCBIN_U8("graphics/pokemon/back_pics/venusaur_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Venusaur[] = INCBIN_U8("graphics/pokemon/palettes/venusaur_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Venusaur[] = INCBIN_U8("graphics/pokemon/icons/venusaur_icon.4bpp"); +const u8 gMonFootprint_Venusaur[] = INCBIN_U8("graphics/pokemon/footprints/venusaur_footprint.1bpp"); + +const u8 gMonStillFrontPic_Charmander[] = INCBIN_U8("graphics/pokemon/front_pics/charmander_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Charmander[] = INCBIN_U8("graphics/pokemon/palettes/charmander_palette.gbapal.lz"); +const u8 gMonBackPic_Charmander[] = INCBIN_U8("graphics/pokemon/back_pics/charmander_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Charmander[] = INCBIN_U8("graphics/pokemon/palettes/charmander_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Charmander[] = INCBIN_U8("graphics/pokemon/icons/charmander_icon.4bpp"); +const u8 gMonFootprint_Charmander[] = INCBIN_U8("graphics/pokemon/footprints/charmander_footprint.1bpp"); + +const u8 gMonStillFrontPic_Charmeleon[] = INCBIN_U8("graphics/pokemon/front_pics/charmeleon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Charmeleon[] = INCBIN_U8("graphics/pokemon/palettes/charmeleon_palette.gbapal.lz"); +const u8 gMonBackPic_Charmeleon[] = INCBIN_U8("graphics/pokemon/back_pics/charmeleon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Charmeleon[] = INCBIN_U8("graphics/pokemon/palettes/charmeleon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Charmeleon[] = INCBIN_U8("graphics/pokemon/icons/charmeleon_icon.4bpp"); +const u8 gMonFootprint_Charmeleon[] = INCBIN_U8("graphics/pokemon/footprints/charmeleon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Charizard[] = INCBIN_U8("graphics/pokemon/front_pics/charizard_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Charizard[] = INCBIN_U8("graphics/pokemon/palettes/charizard_palette.gbapal.lz"); +const u8 gMonBackPic_Charizard[] = INCBIN_U8("graphics/pokemon/back_pics/charizard_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Charizard[] = INCBIN_U8("graphics/pokemon/palettes/charizard_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Charizard[] = INCBIN_U8("graphics/pokemon/icons/charizard_icon.4bpp"); +const u8 gMonFootprint_Charizard[] = INCBIN_U8("graphics/pokemon/footprints/charizard_footprint.1bpp"); + +const u8 gMonStillFrontPic_Squirtle[] = INCBIN_U8("graphics/pokemon/front_pics/squirtle_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Squirtle[] = INCBIN_U8("graphics/pokemon/palettes/squirtle_palette.gbapal.lz"); +const u8 gMonBackPic_Squirtle[] = INCBIN_U8("graphics/pokemon/back_pics/squirtle_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Squirtle[] = INCBIN_U8("graphics/pokemon/palettes/squirtle_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Squirtle[] = INCBIN_U8("graphics/pokemon/icons/squirtle_icon.4bpp"); +const u8 gMonFootprint_Squirtle[] = INCBIN_U8("graphics/pokemon/footprints/squirtle_footprint.1bpp"); + +const u8 gMonStillFrontPic_Wartortle[] = INCBIN_U8("graphics/pokemon/front_pics/wartortle_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Wartortle[] = INCBIN_U8("graphics/pokemon/palettes/wartortle_palette.gbapal.lz"); +const u8 gMonBackPic_Wartortle[] = INCBIN_U8("graphics/pokemon/back_pics/wartortle_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Wartortle[] = INCBIN_U8("graphics/pokemon/palettes/wartortle_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Wartortle[] = INCBIN_U8("graphics/pokemon/icons/wartortle_icon.4bpp"); +const u8 gMonFootprint_Wartortle[] = INCBIN_U8("graphics/pokemon/footprints/wartortle_footprint.1bpp"); + +const u8 gMonStillFrontPic_Blastoise[] = INCBIN_U8("graphics/pokemon/front_pics/blastoise_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Blastoise[] = INCBIN_U8("graphics/pokemon/palettes/blastoise_palette.gbapal.lz"); +const u8 gMonBackPic_Blastoise[] = INCBIN_U8("graphics/pokemon/back_pics/blastoise_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Blastoise[] = INCBIN_U8("graphics/pokemon/palettes/blastoise_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Blastoise[] = INCBIN_U8("graphics/pokemon/icons/blastoise_icon.4bpp"); +const u8 gMonFootprint_Blastoise[] = INCBIN_U8("graphics/pokemon/footprints/blastoise_footprint.1bpp"); + +const u8 gMonStillFrontPic_Caterpie[] = INCBIN_U8("graphics/pokemon/front_pics/caterpie_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Caterpie[] = INCBIN_U8("graphics/pokemon/palettes/caterpie_palette.gbapal.lz"); +const u8 gMonBackPic_Caterpie[] = INCBIN_U8("graphics/pokemon/back_pics/caterpie_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Caterpie[] = INCBIN_U8("graphics/pokemon/palettes/caterpie_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Caterpie[] = INCBIN_U8("graphics/pokemon/icons/caterpie_icon.4bpp"); +const u8 gMonFootprint_Caterpie[] = INCBIN_U8("graphics/pokemon/footprints/caterpie_footprint.1bpp"); + +const u8 gMonStillFrontPic_Metapod[] = INCBIN_U8("graphics/pokemon/front_pics/metapod_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Metapod[] = INCBIN_U8("graphics/pokemon/palettes/metapod_palette.gbapal.lz"); +const u8 gMonBackPic_Metapod[] = INCBIN_U8("graphics/pokemon/back_pics/metapod_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Metapod[] = INCBIN_U8("graphics/pokemon/palettes/metapod_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Metapod[] = INCBIN_U8( "graphics/pokemon/icons/metapod_icon.4bpp"); +const u8 gMonFootprint_Metapod[] = INCBIN_U8("graphics/pokemon/footprints/metapod_footprint.1bpp"); + +const u8 gMonStillFrontPic_Butterfree[] = INCBIN_U8("graphics/pokemon/front_pics/butterfree_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Butterfree[] = INCBIN_U8("graphics/pokemon/palettes/butterfree_palette.gbapal.lz"); +const u8 gMonBackPic_Butterfree[] = INCBIN_U8("graphics/pokemon/back_pics/butterfree_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Butterfree[] = INCBIN_U8("graphics/pokemon/palettes/butterfree_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Butterfree[] = INCBIN_U8("graphics/pokemon/icons/butterfree_icon.4bpp"); +const u8 gMonFootprint_Butterfree[] = INCBIN_U8("graphics/pokemon/footprints/butterfree_footprint.1bpp"); + +const u8 gMonStillFrontPic_Weedle[] = INCBIN_U8("graphics/pokemon/front_pics/weedle_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Weedle[] = INCBIN_U8("graphics/pokemon/palettes/weedle_palette.gbapal.lz"); +const u8 gMonBackPic_Weedle[] = INCBIN_U8("graphics/pokemon/back_pics/weedle_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Weedle[] = INCBIN_U8("graphics/pokemon/palettes/weedle_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Weedle[] = INCBIN_U8("graphics/pokemon/icons/weedle_icon.4bpp"); +const u8 gMonFootprint_Weedle[] = INCBIN_U8("graphics/pokemon/footprints/weedle_footprint.1bpp"); + +const u8 gMonStillFrontPic_Kakuna[] = INCBIN_U8("graphics/pokemon/front_pics/kakuna_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Kakuna[] = INCBIN_U8("graphics/pokemon/palettes/kakuna_palette.gbapal.lz"); +const u8 gMonBackPic_Kakuna[] = INCBIN_U8("graphics/pokemon/back_pics/kakuna_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Kakuna[] = INCBIN_U8("graphics/pokemon/palettes/kakuna_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Kakuna[] = INCBIN_U8("graphics/pokemon/icons/kakuna_icon.4bpp"); +const u8 gMonFootprint_Kakuna[] = INCBIN_U8("graphics/pokemon/footprints/kakuna_footprint.1bpp"); + +const u8 gMonStillFrontPic_Beedrill[] = INCBIN_U8("graphics/pokemon/front_pics/beedrill_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Beedrill[] = INCBIN_U8("graphics/pokemon/palettes/beedrill_palette.gbapal.lz"); +const u8 gMonBackPic_Beedrill[] = INCBIN_U8("graphics/pokemon/back_pics/beedrill_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Beedrill[] = INCBIN_U8("graphics/pokemon/palettes/beedrill_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Beedrill[] = INCBIN_U8("graphics/pokemon/icons/beedrill_icon.4bpp"); +const u8 gMonFootprint_Beedrill[] = INCBIN_U8("graphics/pokemon/footprints/beedrill_footprint.1bpp"); + +const u8 gMonStillFrontPic_Pidgey[] = INCBIN_U8("graphics/pokemon/front_pics/pidgey_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Pidgey[] = INCBIN_U8("graphics/pokemon/palettes/pidgey_palette.gbapal.lz"); +const u8 gMonBackPic_Pidgey[] = INCBIN_U8("graphics/pokemon/back_pics/pidgey_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Pidgey[] = INCBIN_U8("graphics/pokemon/palettes/pidgey_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Pidgey[] = INCBIN_U8("graphics/pokemon/icons/pidgey_icon.4bpp"); +const u8 gMonFootprint_Pidgey[] = INCBIN_U8("graphics/pokemon/footprints/pidgey_footprint.1bpp"); + +const u8 gMonStillFrontPic_Pidgeotto[] = INCBIN_U8("graphics/pokemon/front_pics/pidgeotto_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Pidgeotto[] = INCBIN_U8("graphics/pokemon/palettes/pidgeotto_palette.gbapal.lz"); +const u8 gMonBackPic_Pidgeotto[] = INCBIN_U8("graphics/pokemon/back_pics/pidgeotto_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Pidgeotto[] = INCBIN_U8("graphics/pokemon/palettes/pidgeotto_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Pidgeotto[] = INCBIN_U8("graphics/pokemon/icons/pidgeotto_icon.4bpp"); +const u8 gMonFootprint_Pidgeotto[] = INCBIN_U8("graphics/pokemon/footprints/pidgeotto_footprint.1bpp"); + +const u8 gMonStillFrontPic_Pidgeot[] = INCBIN_U8("graphics/pokemon/front_pics/pidgeot_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Pidgeot[] = INCBIN_U8("graphics/pokemon/palettes/pidgeot_palette.gbapal.lz"); +const u8 gMonBackPic_Pidgeot[] = INCBIN_U8("graphics/pokemon/back_pics/pidgeot_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Pidgeot[] = INCBIN_U8("graphics/pokemon/palettes/pidgeot_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Pidgeot[] = INCBIN_U8("graphics/pokemon/icons/pidgeot_icon.4bpp"); +const u8 gMonFootprint_Pidgeot[] = INCBIN_U8("graphics/pokemon/footprints/pidgeot_footprint.1bpp"); + +const u8 gMonStillFrontPic_Rattata[] = INCBIN_U8("graphics/pokemon/front_pics/rattata_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Rattata[] = INCBIN_U8("graphics/pokemon/palettes/rattata_palette.gbapal.lz"); +const u8 gMonBackPic_Rattata[] = INCBIN_U8("graphics/pokemon/back_pics/rattata_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Rattata[] = INCBIN_U8("graphics/pokemon/palettes/rattata_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Rattata[] = INCBIN_U8("graphics/pokemon/icons/rattata_icon.4bpp"); +const u8 gMonFootprint_Rattata[] = INCBIN_U8("graphics/pokemon/footprints/rattata_footprint.1bpp"); + +const u8 gMonStillFrontPic_Raticate[] = INCBIN_U8("graphics/pokemon/front_pics/raticate_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Raticate[] = INCBIN_U8("graphics/pokemon/palettes/raticate_palette.gbapal.lz"); +const u8 gMonBackPic_Raticate[] = INCBIN_U8("graphics/pokemon/back_pics/raticate_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Raticate[] = INCBIN_U8("graphics/pokemon/palettes/raticate_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Raticate[] = INCBIN_U8("graphics/pokemon/icons/raticate_icon.4bpp"); +const u8 gMonFootprint_Raticate[] = INCBIN_U8("graphics/pokemon/footprints/raticate_footprint.1bpp"); + +const u8 gMonStillFrontPic_Spearow[] = INCBIN_U8("graphics/pokemon/front_pics/spearow_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Spearow[] = INCBIN_U8("graphics/pokemon/palettes/spearow_palette.gbapal.lz"); +const u8 gMonBackPic_Spearow[] = INCBIN_U8("graphics/pokemon/back_pics/spearow_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Spearow[] = INCBIN_U8("graphics/pokemon/palettes/spearow_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Spearow[] = INCBIN_U8("graphics/pokemon/icons/spearow_icon.4bpp"); +const u8 gMonFootprint_Spearow[] = INCBIN_U8("graphics/pokemon/footprints/spearow_footprint.1bpp"); + +const u8 gMonStillFrontPic_Fearow[] = INCBIN_U8("graphics/pokemon/front_pics/fearow_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Fearow[] = INCBIN_U8("graphics/pokemon/palettes/fearow_palette.gbapal.lz"); +const u8 gMonBackPic_Fearow[] = INCBIN_U8("graphics/pokemon/back_pics/fearow_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Fearow[] = INCBIN_U8("graphics/pokemon/palettes/fearow_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Fearow[] = INCBIN_U8("graphics/pokemon/icons/fearow_icon.4bpp"); +const u8 gMonFootprint_Fearow[] = INCBIN_U8("graphics/pokemon/footprints/fearow_footprint.1bpp"); + +const u8 gMonStillFrontPic_Ekans[] = INCBIN_U8("graphics/pokemon/front_pics/ekans_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ekans[] = INCBIN_U8("graphics/pokemon/palettes/ekans_palette.gbapal.lz"); +const u8 gMonBackPic_Ekans[] = INCBIN_U8("graphics/pokemon/back_pics/ekans_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ekans[] = INCBIN_U8("graphics/pokemon/palettes/ekans_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ekans[] = INCBIN_U8("graphics/pokemon/icons/ekans_icon.4bpp"); +const u8 gMonFootprint_Ekans[] = INCBIN_U8("graphics/pokemon/footprints/ekans_footprint.1bpp"); + +const u8 gMonStillFrontPic_Arbok[] = INCBIN_U8("graphics/pokemon/front_pics/arbok_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Arbok[] = INCBIN_U8("graphics/pokemon/palettes/arbok_palette.gbapal.lz"); +const u8 gMonBackPic_Arbok[] = INCBIN_U8("graphics/pokemon/back_pics/arbok_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Arbok[] = INCBIN_U8("graphics/pokemon/palettes/arbok_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Arbok[] = INCBIN_U8("graphics/pokemon/icons/arbok_icon.4bpp"); +const u8 gMonFootprint_Arbok[] = INCBIN_U8("graphics/pokemon/footprints/arbok_footprint.1bpp"); + +const u8 gMonStillFrontPic_Pikachu[] = INCBIN_U8("graphics/pokemon/front_pics/pikachu_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Pikachu[] = INCBIN_U8("graphics/pokemon/palettes/pikachu_palette.gbapal.lz"); +const u8 gMonBackPic_Pikachu[] = INCBIN_U8("graphics/pokemon/back_pics/pikachu_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Pikachu[] = INCBIN_U8("graphics/pokemon/palettes/pikachu_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Pikachu[] = INCBIN_U8("graphics/pokemon/icons/pikachu_icon.4bpp"); +const u8 gMonFootprint_Pikachu[] = INCBIN_U8("graphics/pokemon/footprints/pikachu_footprint.1bpp"); + +const u8 gMonStillFrontPic_Raichu[] = INCBIN_U8("graphics/pokemon/front_pics/raichu_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Raichu[] = INCBIN_U8("graphics/pokemon/palettes/raichu_palette.gbapal.lz"); +const u8 gMonBackPic_Raichu[] = INCBIN_U8("graphics/pokemon/back_pics/raichu_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Raichu[] = INCBIN_U8("graphics/pokemon/palettes/raichu_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Raichu[] = INCBIN_U8("graphics/pokemon/icons/raichu_icon.4bpp"); +const u8 gMonFootprint_Raichu[] = INCBIN_U8("graphics/pokemon/footprints/raichu_footprint.1bpp"); + +const u8 gMonStillFrontPic_Sandshrew[] = INCBIN_U8("graphics/pokemon/front_pics/sandshrew_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Sandshrew[] = INCBIN_U8("graphics/pokemon/palettes/sandshrew_palette.gbapal.lz"); +const u8 gMonBackPic_Sandshrew[] = INCBIN_U8("graphics/pokemon/back_pics/sandshrew_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Sandshrew[] = INCBIN_U8("graphics/pokemon/palettes/sandshrew_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Sandshrew[] = INCBIN_U8("graphics/pokemon/icons/sandshrew_icon.4bpp"); +const u8 gMonFootprint_Sandshrew[] = INCBIN_U8("graphics/pokemon/footprints/sandshrew_footprint.1bpp"); + +const u8 gMonStillFrontPic_Sandslash[] = INCBIN_U8("graphics/pokemon/front_pics/sandslash_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Sandslash[] = INCBIN_U8("graphics/pokemon/palettes/sandslash_palette.gbapal.lz"); +const u8 gMonBackPic_Sandslash[] = INCBIN_U8("graphics/pokemon/back_pics/sandslash_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Sandslash[] = INCBIN_U8("graphics/pokemon/palettes/sandslash_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Sandslash[] = INCBIN_U8("graphics/pokemon/icons/sandslash_icon.4bpp"); +const u8 gMonFootprint_Sandslash[] = INCBIN_U8("graphics/pokemon/footprints/sandslash_footprint.1bpp"); + +const u8 gMonStillFrontPic_NidoranF[] = INCBIN_U8("graphics/pokemon/front_pics/nidoran_f_still_front_pic.4bpp.lz"); +const u8 gMonPalette_NidoranF[] = INCBIN_U8("graphics/pokemon/palettes/nidoran_f_palette.gbapal.lz"); +const u8 gMonBackPic_NidoranF[] = INCBIN_U8("graphics/pokemon/back_pics/nidoran_f_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_NidoranF[] = INCBIN_U8("graphics/pokemon/palettes/nidoran_f_shiny_palette.gbapal.lz"); +const u8 gMonIcon_NidoranF[] = INCBIN_U8("graphics/pokemon/icons/nidoran_f_icon.4bpp"); +const u8 gMonFootprint_NidoranF[] = INCBIN_U8("graphics/pokemon/footprints/nidoran_f_footprint.1bpp"); + +const u8 gMonStillFrontPic_Nidorina[] = INCBIN_U8("graphics/pokemon/front_pics/nidorina_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Nidorina[] = INCBIN_U8("graphics/pokemon/palettes/nidorina_palette.gbapal.lz"); +const u8 gMonBackPic_Nidorina[] = INCBIN_U8("graphics/pokemon/back_pics/nidorina_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Nidorina[] = INCBIN_U8("graphics/pokemon/palettes/nidorina_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Nidorina[] = INCBIN_U8("graphics/pokemon/icons/nidorina_icon.4bpp"); +const u8 gMonFootprint_Nidorina[] = INCBIN_U8("graphics/pokemon/footprints/nidorina_footprint.1bpp"); + +const u8 gMonStillFrontPic_Nidoqueen[] = INCBIN_U8("graphics/pokemon/front_pics/nidoqueen_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Nidoqueen[] = INCBIN_U8("graphics/pokemon/palettes/nidoqueen_palette.gbapal.lz"); +const u8 gMonBackPic_Nidoqueen[] = INCBIN_U8("graphics/pokemon/back_pics/nidoqueen_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Nidoqueen[] = INCBIN_U8("graphics/pokemon/palettes/nidoqueen_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Nidoqueen[] = INCBIN_U8("graphics/pokemon/icons/nidoqueen_icon.4bpp"); +const u8 gMonFootprint_Nidoqueen[] = INCBIN_U8("graphics/pokemon/footprints/nidoqueen_footprint.1bpp"); + +const u8 gMonStillFrontPic_NidoranM[] = INCBIN_U8("graphics/pokemon/front_pics/nidoran_m_still_front_pic.4bpp.lz"); +const u8 gMonPalette_NidoranM[] = INCBIN_U8("graphics/pokemon/palettes/nidoran_m_palette.gbapal.lz"); +const u8 gMonBackPic_NidoranM[] = INCBIN_U8("graphics/pokemon/back_pics/nidoran_m_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_NidoranM[] = INCBIN_U8("graphics/pokemon/palettes/nidoran_m_shiny_palette.gbapal.lz"); +const u8 gMonIcon_NidoranM[] = INCBIN_U8("graphics/pokemon/icons/nidoran_m_icon.4bpp"); +const u8 gMonFootprint_NidoranM[] = INCBIN_U8("graphics/pokemon/footprints/nidoran_m_footprint.1bpp"); + +const u8 gMonStillFrontPic_Nidorino[] = INCBIN_U8("graphics/pokemon/front_pics/nidorino_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Nidorino[] = INCBIN_U8("graphics/pokemon/palettes/nidorino_palette.gbapal.lz"); +const u8 gMonBackPic_Nidorino[] = INCBIN_U8("graphics/pokemon/back_pics/nidorino_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Nidorino[] = INCBIN_U8("graphics/pokemon/palettes/nidorino_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Nidorino[] = INCBIN_U8("graphics/pokemon/icons/nidorino_icon.4bpp"); +const u8 gMonFootprint_Nidorino[] = INCBIN_U8("graphics/pokemon/footprints/nidorino_footprint.1bpp"); + +const u8 gMonStillFrontPic_Nidoking[] = INCBIN_U8("graphics/pokemon/front_pics/nidoking_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Nidoking[] = INCBIN_U8("graphics/pokemon/palettes/nidoking_palette.gbapal.lz"); +const u8 gMonBackPic_Nidoking[] = INCBIN_U8("graphics/pokemon/back_pics/nidoking_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Nidoking[] = INCBIN_U8("graphics/pokemon/palettes/nidoking_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Nidoking[] = INCBIN_U8("graphics/pokemon/icons/nidoking_icon.4bpp"); +const u8 gMonFootprint_Nidoking[] = INCBIN_U8("graphics/pokemon/footprints/nidoking_footprint.1bpp"); + +const u8 gMonStillFrontPic_Clefairy[] = INCBIN_U8("graphics/pokemon/front_pics/clefairy_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Clefairy[] = INCBIN_U8("graphics/pokemon/palettes/clefairy_palette.gbapal.lz"); +const u8 gMonBackPic_Clefairy[] = INCBIN_U8("graphics/pokemon/back_pics/clefairy_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Clefairy[] = INCBIN_U8("graphics/pokemon/palettes/clefairy_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Clefairy[] = INCBIN_U8("graphics/pokemon/icons/clefairy_icon.4bpp"); +const u8 gMonFootprint_Clefairy[] = INCBIN_U8("graphics/pokemon/footprints/clefairy_footprint.1bpp"); + +const u8 gMonStillFrontPic_Clefable[] = INCBIN_U8("graphics/pokemon/front_pics/clefable_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Clefable[] = INCBIN_U8("graphics/pokemon/palettes/clefable_palette.gbapal.lz"); +const u8 gMonBackPic_Clefable[] = INCBIN_U8("graphics/pokemon/back_pics/clefable_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Clefable[] = INCBIN_U8("graphics/pokemon/palettes/clefable_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Clefable[] = INCBIN_U8("graphics/pokemon/icons/clefable_icon.4bpp"); +const u8 gMonFootprint_Clefable[] = INCBIN_U8("graphics/pokemon/footprints/clefable_footprint.1bpp"); + +const u8 gMonStillFrontPic_Vulpix[] = INCBIN_U8("graphics/pokemon/front_pics/vulpix_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Vulpix[] = INCBIN_U8("graphics/pokemon/palettes/vulpix_palette.gbapal.lz"); +const u8 gMonBackPic_Vulpix[] = INCBIN_U8("graphics/pokemon/back_pics/vulpix_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Vulpix[] = INCBIN_U8("graphics/pokemon/palettes/vulpix_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Vulpix[] = INCBIN_U8("graphics/pokemon/icons/vulpix_icon.4bpp"); +const u8 gMonFootprint_Vulpix[] = INCBIN_U8("graphics/pokemon/footprints/vulpix_footprint.1bpp"); + +const u8 gMonStillFrontPic_Ninetales[] = INCBIN_U8("graphics/pokemon/front_pics/ninetales_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ninetales[] = INCBIN_U8("graphics/pokemon/palettes/ninetales_palette.gbapal.lz"); +const u8 gMonBackPic_Ninetales[] = INCBIN_U8("graphics/pokemon/back_pics/ninetales_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ninetales[] = INCBIN_U8("graphics/pokemon/palettes/ninetales_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ninetales[] = INCBIN_U8("graphics/pokemon/icons/ninetales_icon.4bpp"); +const u8 gMonFootprint_Ninetales[] = INCBIN_U8("graphics/pokemon/footprints/ninetales_footprint.1bpp"); + +const u8 gMonStillFrontPic_Jigglypuff[] = INCBIN_U8("graphics/pokemon/front_pics/jigglypuff_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Jigglypuff[] = INCBIN_U8("graphics/pokemon/palettes/jigglypuff_palette.gbapal.lz"); +const u8 gMonBackPic_Jigglypuff[] = INCBIN_U8("graphics/pokemon/back_pics/jigglypuff_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Jigglypuff[] = INCBIN_U8("graphics/pokemon/palettes/jigglypuff_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Jigglypuff[] = INCBIN_U8("graphics/pokemon/icons/jigglypuff_icon.4bpp"); +const u8 gMonFootprint_Jigglypuff[] = INCBIN_U8("graphics/pokemon/footprints/jigglypuff_footprint.1bpp"); + +const u8 gMonStillFrontPic_Wigglytuff[] = INCBIN_U8("graphics/pokemon/front_pics/wigglytuff_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Wigglytuff[] = INCBIN_U8("graphics/pokemon/palettes/wigglytuff_palette.gbapal.lz"); +const u8 gMonBackPic_Wigglytuff[] = INCBIN_U8("graphics/pokemon/back_pics/wigglytuff_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Wigglytuff[] = INCBIN_U8("graphics/pokemon/palettes/wigglytuff_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Wigglytuff[] = INCBIN_U8("graphics/pokemon/icons/wigglytuff_icon.4bpp"); +const u8 gMonFootprint_Wigglytuff[] = INCBIN_U8("graphics/pokemon/footprints/wigglytuff_footprint.1bpp"); + +const u8 gMonStillFrontPic_Zubat[] = INCBIN_U8("graphics/pokemon/front_pics/zubat_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Zubat[] = INCBIN_U8("graphics/pokemon/palettes/zubat_palette.gbapal.lz"); +const u8 gMonBackPic_Zubat[] = INCBIN_U8("graphics/pokemon/back_pics/zubat_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Zubat[] = INCBIN_U8("graphics/pokemon/palettes/zubat_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Zubat[] = INCBIN_U8("graphics/pokemon/icons/zubat_icon.4bpp"); +const u8 gMonFootprint_Zubat[] = INCBIN_U8("graphics/pokemon/footprints/zubat_footprint.1bpp"); + +const u8 gMonStillFrontPic_Golbat[] = INCBIN_U8("graphics/pokemon/front_pics/golbat_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Golbat[] = INCBIN_U8("graphics/pokemon/palettes/golbat_palette.gbapal.lz"); +const u8 gMonBackPic_Golbat[] = INCBIN_U8("graphics/pokemon/back_pics/golbat_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Golbat[] = INCBIN_U8("graphics/pokemon/palettes/golbat_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Golbat[] = INCBIN_U8("graphics/pokemon/icons/golbat_icon.4bpp"); +const u8 gMonFootprint_Golbat[] = INCBIN_U8("graphics/pokemon/footprints/golbat_footprint.1bpp"); + +const u8 gMonStillFrontPic_Oddish[] = INCBIN_U8("graphics/pokemon/front_pics/oddish_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Oddish[] = INCBIN_U8("graphics/pokemon/palettes/oddish_palette.gbapal.lz"); +const u8 gMonBackPic_Oddish[] = INCBIN_U8("graphics/pokemon/back_pics/oddish_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Oddish[] = INCBIN_U8("graphics/pokemon/palettes/oddish_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Oddish[] = INCBIN_U8("graphics/pokemon/icons/oddish_icon.4bpp"); +const u8 gMonFootprint_Oddish[] = INCBIN_U8("graphics/pokemon/footprints/oddish_footprint.1bpp"); + +const u8 gMonStillFrontPic_Gloom[] = INCBIN_U8("graphics/pokemon/front_pics/gloom_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Gloom[] = INCBIN_U8("graphics/pokemon/palettes/gloom_palette.gbapal.lz"); +const u8 gMonBackPic_Gloom[] = INCBIN_U8("graphics/pokemon/back_pics/gloom_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Gloom[] = INCBIN_U8("graphics/pokemon/palettes/gloom_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Gloom[] = INCBIN_U8("graphics/pokemon/icons/gloom_icon.4bpp"); +const u8 gMonFootprint_Gloom[] = INCBIN_U8("graphics/pokemon/footprints/gloom_footprint.1bpp"); + +const u8 gMonStillFrontPic_Vileplume[] = INCBIN_U8("graphics/pokemon/front_pics/vileplume_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Vileplume[] = INCBIN_U8("graphics/pokemon/palettes/vileplume_palette.gbapal.lz"); +const u8 gMonBackPic_Vileplume[] = INCBIN_U8("graphics/pokemon/back_pics/vileplume_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Vileplume[] = INCBIN_U8("graphics/pokemon/palettes/vileplume_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Vileplume[] = INCBIN_U8("graphics/pokemon/icons/vileplume_icon.4bpp"); +const u8 gMonFootprint_Vileplume[] = INCBIN_U8("graphics/pokemon/footprints/vileplume_footprint.1bpp"); + +const u8 gMonStillFrontPic_Paras[] = INCBIN_U8("graphics/pokemon/front_pics/paras_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Paras[] = INCBIN_U8("graphics/pokemon/palettes/paras_palette.gbapal.lz"); +const u8 gMonBackPic_Paras[] = INCBIN_U8("graphics/pokemon/back_pics/paras_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Paras[] = INCBIN_U8("graphics/pokemon/palettes/paras_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Paras[] = INCBIN_U8("graphics/pokemon/icons/paras_icon.4bpp"); +const u8 gMonFootprint_Paras[] = INCBIN_U8("graphics/pokemon/footprints/paras_footprint.1bpp"); + +const u8 gMonStillFrontPic_Parasect[] = INCBIN_U8("graphics/pokemon/front_pics/parasect_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Parasect[] = INCBIN_U8("graphics/pokemon/palettes/parasect_palette.gbapal.lz"); +const u8 gMonBackPic_Parasect[] = INCBIN_U8("graphics/pokemon/back_pics/parasect_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Parasect[] = INCBIN_U8("graphics/pokemon/palettes/parasect_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Parasect[] = INCBIN_U8("graphics/pokemon/icons/parasect_icon.4bpp"); +const u8 gMonFootprint_Parasect[] = INCBIN_U8("graphics/pokemon/footprints/parasect_footprint.1bpp"); + +const u8 gMonStillFrontPic_Venonat[] = INCBIN_U8("graphics/pokemon/front_pics/venonat_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Venonat[] = INCBIN_U8("graphics/pokemon/palettes/venonat_palette.gbapal.lz"); +const u8 gMonBackPic_Venonat[] = INCBIN_U8("graphics/pokemon/back_pics/venonat_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Venonat[] = INCBIN_U8("graphics/pokemon/palettes/venonat_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Venonat[] = INCBIN_U8("graphics/pokemon/icons/venonat_icon.4bpp"); +const u8 gMonFootprint_Venonat[] = INCBIN_U8("graphics/pokemon/footprints/venonat_footprint.1bpp"); + +const u8 gMonStillFrontPic_Venomoth[] = INCBIN_U8("graphics/pokemon/front_pics/venomoth_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Venomoth[] = INCBIN_U8("graphics/pokemon/palettes/venomoth_palette.gbapal.lz"); +const u8 gMonBackPic_Venomoth[] = INCBIN_U8("graphics/pokemon/back_pics/venomoth_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Venomoth[] = INCBIN_U8("graphics/pokemon/palettes/venomoth_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Venomoth[] = INCBIN_U8("graphics/pokemon/icons/venomoth_icon.4bpp"); +const u8 gMonFootprint_Venomoth[] = INCBIN_U8("graphics/pokemon/footprints/venomoth_footprint.1bpp"); + +const u8 gMonStillFrontPic_Diglett[] = INCBIN_U8("graphics/pokemon/front_pics/diglett_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Diglett[] = INCBIN_U8("graphics/pokemon/palettes/diglett_palette.gbapal.lz"); +const u8 gMonBackPic_Diglett[] = INCBIN_U8("graphics/pokemon/back_pics/diglett_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Diglett[] = INCBIN_U8("graphics/pokemon/palettes/diglett_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Diglett[] = INCBIN_U8("graphics/pokemon/icons/diglett_icon.4bpp"); +const u8 gMonFootprint_Diglett[] = INCBIN_U8("graphics/pokemon/footprints/diglett_footprint.1bpp"); + +const u8 gMonStillFrontPic_Dugtrio[] = INCBIN_U8("graphics/pokemon/front_pics/dugtrio_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Dugtrio[] = INCBIN_U8("graphics/pokemon/palettes/dugtrio_palette.gbapal.lz"); +const u8 gMonBackPic_Dugtrio[] = INCBIN_U8("graphics/pokemon/back_pics/dugtrio_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Dugtrio[] = INCBIN_U8("graphics/pokemon/palettes/dugtrio_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Dugtrio[] = INCBIN_U8("graphics/pokemon/icons/dugtrio_icon.4bpp"); +const u8 gMonFootprint_Dugtrio[] = INCBIN_U8("graphics/pokemon/footprints/dugtrio_footprint.1bpp"); + +const u8 gMonStillFrontPic_Meowth[] = INCBIN_U8("graphics/pokemon/front_pics/meowth_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Meowth[] = INCBIN_U8("graphics/pokemon/palettes/meowth_palette.gbapal.lz"); +const u8 gMonBackPic_Meowth[] = INCBIN_U8("graphics/pokemon/back_pics/meowth_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Meowth[] = INCBIN_U8("graphics/pokemon/palettes/meowth_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Meowth[] = INCBIN_U8("graphics/pokemon/icons/meowth_icon.4bpp"); +const u8 gMonFootprint_Meowth[] = INCBIN_U8("graphics/pokemon/footprints/meowth_footprint.1bpp"); + +const u8 gMonStillFrontPic_Persian[] = INCBIN_U8("graphics/pokemon/front_pics/persian_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Persian[] = INCBIN_U8("graphics/pokemon/palettes/persian_palette.gbapal.lz"); +const u8 gMonBackPic_Persian[] = INCBIN_U8("graphics/pokemon/back_pics/persian_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Persian[] = INCBIN_U8("graphics/pokemon/palettes/persian_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Persian[] = INCBIN_U8("graphics/pokemon/icons/persian_icon.4bpp"); +const u8 gMonFootprint_Persian[] = INCBIN_U8("graphics/pokemon/footprints/persian_footprint.1bpp"); + +const u8 gMonStillFrontPic_Psyduck[] = INCBIN_U8("graphics/pokemon/front_pics/psyduck_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Psyduck[] = INCBIN_U8("graphics/pokemon/palettes/psyduck_palette.gbapal.lz"); +const u8 gMonBackPic_Psyduck[] = INCBIN_U8("graphics/pokemon/back_pics/psyduck_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Psyduck[] = INCBIN_U8("graphics/pokemon/palettes/psyduck_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Psyduck[] = INCBIN_U8("graphics/pokemon/icons/psyduck_icon.4bpp"); +const u8 gMonFootprint_Psyduck[] = INCBIN_U8("graphics/pokemon/footprints/psyduck_footprint.1bpp"); + +const u8 gMonStillFrontPic_Golduck[] = INCBIN_U8("graphics/pokemon/front_pics/golduck_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Golduck[] = INCBIN_U8("graphics/pokemon/palettes/golduck_palette.gbapal.lz"); +const u8 gMonBackPic_Golduck[] = INCBIN_U8("graphics/pokemon/back_pics/golduck_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Golduck[] = INCBIN_U8("graphics/pokemon/palettes/golduck_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Golduck[] = INCBIN_U8("graphics/pokemon/icons/golduck_icon.4bpp"); +const u8 gMonFootprint_Golduck[] = INCBIN_U8("graphics/pokemon/footprints/golduck_footprint.1bpp"); + +const u8 gMonStillFrontPic_Mankey[] = INCBIN_U8("graphics/pokemon/front_pics/mankey_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Mankey[] = INCBIN_U8("graphics/pokemon/palettes/mankey_palette.gbapal.lz"); +const u8 gMonBackPic_Mankey[] = INCBIN_U8("graphics/pokemon/back_pics/mankey_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Mankey[] = INCBIN_U8("graphics/pokemon/palettes/mankey_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Mankey[] = INCBIN_U8("graphics/pokemon/icons/mankey_icon.4bpp"); +const u8 gMonFootprint_Mankey[] = INCBIN_U8("graphics/pokemon/footprints/mankey_footprint.1bpp"); + +const u8 gMonStillFrontPic_Primeape[] = INCBIN_U8("graphics/pokemon/front_pics/primeape_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Primeape[] = INCBIN_U8("graphics/pokemon/palettes/primeape_palette.gbapal.lz"); +const u8 gMonBackPic_Primeape[] = INCBIN_U8("graphics/pokemon/back_pics/primeape_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Primeape[] = INCBIN_U8("graphics/pokemon/palettes/primeape_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Primeape[] = INCBIN_U8("graphics/pokemon/icons/primeape_icon.4bpp"); +const u8 gMonFootprint_Primeape[] = INCBIN_U8("graphics/pokemon/footprints/primeape_footprint.1bpp"); + +const u8 gMonStillFrontPic_Growlithe[] = INCBIN_U8("graphics/pokemon/front_pics/growlithe_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Growlithe[] = INCBIN_U8("graphics/pokemon/palettes/growlithe_palette.gbapal.lz"); +const u8 gMonBackPic_Growlithe[] = INCBIN_U8("graphics/pokemon/back_pics/growlithe_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Growlithe[] = INCBIN_U8("graphics/pokemon/palettes/growlithe_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Growlithe[] = INCBIN_U8("graphics/pokemon/icons/growlithe_icon.4bpp"); +const u8 gMonFootprint_Growlithe[] = INCBIN_U8("graphics/pokemon/footprints/growlithe_footprint.1bpp"); + +const u8 gMonStillFrontPic_Arcanine[] = INCBIN_U8("graphics/pokemon/front_pics/arcanine_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Arcanine[] = INCBIN_U8("graphics/pokemon/palettes/arcanine_palette.gbapal.lz"); +const u8 gMonBackPic_Arcanine[] = INCBIN_U8("graphics/pokemon/back_pics/arcanine_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Arcanine[] = INCBIN_U8("graphics/pokemon/palettes/arcanine_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Arcanine[] = INCBIN_U8("graphics/pokemon/icons/arcanine_icon.4bpp"); +const u8 gMonFootprint_Arcanine[] = INCBIN_U8("graphics/pokemon/footprints/arcanine_footprint.1bpp"); + +const u8 gMonStillFrontPic_Poliwag[] = INCBIN_U8("graphics/pokemon/front_pics/poliwag_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Poliwag[] = INCBIN_U8("graphics/pokemon/palettes/poliwag_palette.gbapal.lz"); +const u8 gMonBackPic_Poliwag[] = INCBIN_U8("graphics/pokemon/back_pics/poliwag_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Poliwag[] = INCBIN_U8("graphics/pokemon/palettes/poliwag_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Poliwag[] = INCBIN_U8("graphics/pokemon/icons/poliwag_icon.4bpp"); +const u8 gMonFootprint_Poliwag[] = INCBIN_U8("graphics/pokemon/footprints/poliwag_footprint.1bpp"); + +const u8 gMonStillFrontPic_Poliwhirl[] = INCBIN_U8("graphics/pokemon/front_pics/poliwhirl_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Poliwhirl[] = INCBIN_U8("graphics/pokemon/palettes/poliwhirl_palette.gbapal.lz"); +const u8 gMonBackPic_Poliwhirl[] = INCBIN_U8("graphics/pokemon/back_pics/poliwhirl_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Poliwhirl[] = INCBIN_U8("graphics/pokemon/palettes/poliwhirl_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Poliwhirl[] = INCBIN_U8("graphics/pokemon/icons/poliwhirl_icon.4bpp"); +const u8 gMonFootprint_Poliwhirl[] = INCBIN_U8("graphics/pokemon/footprints/poliwhirl_footprint.1bpp"); + +const u8 gMonStillFrontPic_Poliwrath[] = INCBIN_U8("graphics/pokemon/front_pics/poliwrath_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Poliwrath[] = INCBIN_U8("graphics/pokemon/palettes/poliwrath_palette.gbapal.lz"); +const u8 gMonBackPic_Poliwrath[] = INCBIN_U8("graphics/pokemon/back_pics/poliwrath_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Poliwrath[] = INCBIN_U8("graphics/pokemon/palettes/poliwrath_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Poliwrath[] = INCBIN_U8("graphics/pokemon/icons/poliwrath_icon.4bpp"); +const u8 gMonFootprint_Poliwrath[] = INCBIN_U8("graphics/pokemon/footprints/poliwrath_footprint.1bpp"); + +const u8 gMonStillFrontPic_Abra[] = INCBIN_U8("graphics/pokemon/front_pics/abra_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Abra[] = INCBIN_U8("graphics/pokemon/palettes/abra_palette.gbapal.lz"); +const u8 gMonBackPic_Abra[] = INCBIN_U8("graphics/pokemon/back_pics/abra_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Abra[] = INCBIN_U8("graphics/pokemon/palettes/abra_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Abra[] = INCBIN_U8("graphics/pokemon/icons/abra_icon.4bpp"); +const u8 gMonFootprint_Abra[] = INCBIN_U8("graphics/pokemon/footprints/abra_footprint.1bpp"); + +const u8 gMonStillFrontPic_Kadabra[] = INCBIN_U8("graphics/pokemon/front_pics/kadabra_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Kadabra[] = INCBIN_U8("graphics/pokemon/palettes/kadabra_palette.gbapal.lz"); +const u8 gMonBackPic_Kadabra[] = INCBIN_U8("graphics/pokemon/back_pics/kadabra_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Kadabra[] = INCBIN_U8("graphics/pokemon/palettes/kadabra_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Kadabra[] = INCBIN_U8("graphics/pokemon/icons/kadabra_icon.4bpp"); +const u8 gMonFootprint_Kadabra[] = INCBIN_U8("graphics/pokemon/footprints/kadabra_footprint.1bpp"); + +const u8 gMonStillFrontPic_Alakazam[] = INCBIN_U8("graphics/pokemon/front_pics/alakazam_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Alakazam[] = INCBIN_U8("graphics/pokemon/palettes/alakazam_palette.gbapal.lz"); +const u8 gMonBackPic_Alakazam[] = INCBIN_U8("graphics/pokemon/back_pics/alakazam_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Alakazam[] = INCBIN_U8("graphics/pokemon/palettes/alakazam_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Alakazam[] = INCBIN_U8("graphics/pokemon/icons/alakazam_icon.4bpp"); +const u8 gMonFootprint_Alakazam[] = INCBIN_U8("graphics/pokemon/footprints/alakazam_footprint.1bpp"); + +const u8 gMonStillFrontPic_Machop[] = INCBIN_U8("graphics/pokemon/front_pics/machop_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Machop[] = INCBIN_U8("graphics/pokemon/palettes/machop_palette.gbapal.lz"); +const u8 gMonBackPic_Machop[] = INCBIN_U8("graphics/pokemon/back_pics/machop_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Machop[] = INCBIN_U8("graphics/pokemon/palettes/machop_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Machop[] = INCBIN_U8("graphics/pokemon/icons/machop_icon.4bpp"); +const u8 gMonFootprint_Machop[] = INCBIN_U8("graphics/pokemon/footprints/machop_footprint.1bpp"); + +const u8 gMonStillFrontPic_Machoke[] = INCBIN_U8("graphics/pokemon/front_pics/machoke_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Machoke[] = INCBIN_U8("graphics/pokemon/palettes/machoke_palette.gbapal.lz"); +const u8 gMonBackPic_Machoke[] = INCBIN_U8("graphics/pokemon/back_pics/machoke_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Machoke[] = INCBIN_U8("graphics/pokemon/palettes/machoke_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Machoke[] = INCBIN_U8("graphics/pokemon/icons/machoke_icon.4bpp"); +const u8 gMonFootprint_Machoke[] = INCBIN_U8("graphics/pokemon/footprints/machoke_footprint.1bpp"); + +const u8 gMonStillFrontPic_Machamp[] = INCBIN_U8("graphics/pokemon/front_pics/machamp_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Machamp[] = INCBIN_U8("graphics/pokemon/palettes/machamp_palette.gbapal.lz"); +const u8 gMonBackPic_Machamp[] = INCBIN_U8("graphics/pokemon/back_pics/machamp_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Machamp[] = INCBIN_U8("graphics/pokemon/palettes/machamp_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Machamp[] = INCBIN_U8("graphics/pokemon/icons/machamp_icon.4bpp"); +const u8 gMonFootprint_Machamp[] = INCBIN_U8("graphics/pokemon/footprints/machamp_footprint.1bpp"); + +const u8 gMonStillFrontPic_Bellsprout[] = INCBIN_U8("graphics/pokemon/front_pics/bellsprout_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Bellsprout[] = INCBIN_U8("graphics/pokemon/palettes/bellsprout_palette.gbapal.lz"); +const u8 gMonBackPic_Bellsprout[] = INCBIN_U8("graphics/pokemon/back_pics/bellsprout_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Bellsprout[] = INCBIN_U8("graphics/pokemon/palettes/bellsprout_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Bellsprout[] = INCBIN_U8("graphics/pokemon/icons/bellsprout_icon.4bpp"); +const u8 gMonFootprint_Bellsprout[] = INCBIN_U8("graphics/pokemon/footprints/bellsprout_footprint.1bpp"); + +const u8 gMonStillFrontPic_Weepinbell[] = INCBIN_U8("graphics/pokemon/front_pics/weepinbell_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Weepinbell[] = INCBIN_U8("graphics/pokemon/palettes/weepinbell_palette.gbapal.lz"); +const u8 gMonBackPic_Weepinbell[] = INCBIN_U8("graphics/pokemon/back_pics/weepinbell_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Weepinbell[] = INCBIN_U8("graphics/pokemon/palettes/weepinbell_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Weepinbell[] = INCBIN_U8("graphics/pokemon/icons/weepinbell_icon.4bpp"); +const u8 gMonFootprint_Weepinbell[] = INCBIN_U8("graphics/pokemon/footprints/weepinbell_footprint.1bpp"); + +const u8 gMonStillFrontPic_Victreebel[] = INCBIN_U8("graphics/pokemon/front_pics/victreebel_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Victreebel[] = INCBIN_U8("graphics/pokemon/palettes/victreebel_palette.gbapal.lz"); +const u8 gMonBackPic_Victreebel[] = INCBIN_U8("graphics/pokemon/back_pics/victreebel_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Victreebel[] = INCBIN_U8("graphics/pokemon/palettes/victreebel_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Victreebel[] = INCBIN_U8("graphics/pokemon/icons/victreebel_icon.4bpp"); +const u8 gMonFootprint_Victreebel[] = INCBIN_U8("graphics/pokemon/footprints/victreebel_footprint.1bpp"); + +const u8 gMonStillFrontPic_Tentacool[] = INCBIN_U8("graphics/pokemon/front_pics/tentacool_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Tentacool[] = INCBIN_U8("graphics/pokemon/palettes/tentacool_palette.gbapal.lz"); +const u8 gMonBackPic_Tentacool[] = INCBIN_U8("graphics/pokemon/back_pics/tentacool_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Tentacool[] = INCBIN_U8("graphics/pokemon/palettes/tentacool_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Tentacool[] = INCBIN_U8("graphics/pokemon/icons/tentacool_icon.4bpp"); +const u8 gMonFootprint_Tentacool[] = INCBIN_U8("graphics/pokemon/footprints/tentacool_footprint.1bpp"); + +const u8 gMonStillFrontPic_Tentacruel[] = INCBIN_U8("graphics/pokemon/front_pics/tentacruel_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Tentacruel[] = INCBIN_U8("graphics/pokemon/palettes/tentacruel_palette.gbapal.lz"); +const u8 gMonBackPic_Tentacruel[] = INCBIN_U8("graphics/pokemon/back_pics/tentacruel_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Tentacruel[] = INCBIN_U8("graphics/pokemon/palettes/tentacruel_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Tentacruel[] = INCBIN_U8("graphics/pokemon/icons/tentacruel_icon.4bpp"); +const u8 gMonFootprint_Tentacruel[] = INCBIN_U8("graphics/pokemon/footprints/tentacruel_footprint.1bpp"); + +const u8 gMonStillFrontPic_Geodude[] = INCBIN_U8("graphics/pokemon/front_pics/geodude_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Geodude[] = INCBIN_U8("graphics/pokemon/palettes/geodude_palette.gbapal.lz"); +const u8 gMonBackPic_Geodude[] = INCBIN_U8("graphics/pokemon/back_pics/geodude_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Geodude[] = INCBIN_U8("graphics/pokemon/palettes/geodude_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Geodude[] = INCBIN_U8("graphics/pokemon/icons/geodude_icon.4bpp"); +const u8 gMonFootprint_Geodude[] = INCBIN_U8("graphics/pokemon/footprints/geodude_footprint.1bpp"); + +const u8 gMonStillFrontPic_Graveler[] = INCBIN_U8("graphics/pokemon/front_pics/graveler_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Graveler[] = INCBIN_U8("graphics/pokemon/palettes/graveler_palette.gbapal.lz"); +const u8 gMonBackPic_Graveler[] = INCBIN_U8("graphics/pokemon/back_pics/graveler_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Graveler[] = INCBIN_U8("graphics/pokemon/palettes/graveler_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Graveler[] = INCBIN_U8("graphics/pokemon/icons/graveler_icon.4bpp"); +const u8 gMonFootprint_Graveler[] = INCBIN_U8("graphics/pokemon/footprints/graveler_footprint.1bpp"); + +const u8 gMonStillFrontPic_Golem[] = INCBIN_U8("graphics/pokemon/front_pics/golem_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Golem[] = INCBIN_U8("graphics/pokemon/palettes/golem_palette.gbapal.lz"); +const u8 gMonBackPic_Golem[] = INCBIN_U8("graphics/pokemon/back_pics/golem_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Golem[] = INCBIN_U8("graphics/pokemon/palettes/golem_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Golem[] = INCBIN_U8("graphics/pokemon/icons/golem_icon.4bpp"); +const u8 gMonFootprint_Golem[] = INCBIN_U8("graphics/pokemon/footprints/golem_footprint.1bpp"); + +const u8 gMonStillFrontPic_Ponyta[] = INCBIN_U8("graphics/pokemon/front_pics/ponyta_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ponyta[] = INCBIN_U8("graphics/pokemon/palettes/ponyta_palette.gbapal.lz"); +const u8 gMonBackPic_Ponyta[] = INCBIN_U8("graphics/pokemon/back_pics/ponyta_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ponyta[] = INCBIN_U8("graphics/pokemon/palettes/ponyta_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ponyta[] = INCBIN_U8("graphics/pokemon/icons/ponyta_icon.4bpp"); +const u8 gMonFootprint_Ponyta[] = INCBIN_U8("graphics/pokemon/footprints/ponyta_footprint.1bpp"); + +const u8 gMonStillFrontPic_Rapidash[] = INCBIN_U8("graphics/pokemon/front_pics/rapidash_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Rapidash[] = INCBIN_U8("graphics/pokemon/palettes/rapidash_palette.gbapal.lz"); +const u8 gMonBackPic_Rapidash[] = INCBIN_U8("graphics/pokemon/back_pics/rapidash_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Rapidash[] = INCBIN_U8("graphics/pokemon/palettes/rapidash_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Rapidash[] = INCBIN_U8("graphics/pokemon/icons/rapidash_icon.4bpp"); +const u8 gMonFootprint_Rapidash[] = INCBIN_U8("graphics/pokemon/footprints/rapidash_footprint.1bpp"); + +const u8 gMonStillFrontPic_Slowpoke[] = INCBIN_U8("graphics/pokemon/front_pics/slowpoke_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Slowpoke[] = INCBIN_U8("graphics/pokemon/palettes/slowpoke_palette.gbapal.lz"); +const u8 gMonBackPic_Slowpoke[] = INCBIN_U8("graphics/pokemon/back_pics/slowpoke_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Slowpoke[] = INCBIN_U8("graphics/pokemon/palettes/slowpoke_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Slowpoke[] = INCBIN_U8("graphics/pokemon/icons/slowpoke_icon.4bpp"); +const u8 gMonFootprint_Slowpoke[] = INCBIN_U8("graphics/pokemon/footprints/slowpoke_footprint.1bpp"); + +const u8 gMonStillFrontPic_Slowbro[] = INCBIN_U8("graphics/pokemon/front_pics/slowbro_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Slowbro[] = INCBIN_U8("graphics/pokemon/palettes/slowbro_palette.gbapal.lz"); +const u8 gMonBackPic_Slowbro[] = INCBIN_U8("graphics/pokemon/back_pics/slowbro_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Slowbro[] = INCBIN_U8("graphics/pokemon/palettes/slowbro_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Slowbro[] = INCBIN_U8("graphics/pokemon/icons/slowbro_icon.4bpp"); +const u8 gMonFootprint_Slowbro[] = INCBIN_U8("graphics/pokemon/footprints/slowbro_footprint.1bpp"); + +const u8 gMonStillFrontPic_Magnemite[] = INCBIN_U8("graphics/pokemon/front_pics/magnemite_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Magnemite[] = INCBIN_U8("graphics/pokemon/palettes/magnemite_palette.gbapal.lz"); +const u8 gMonBackPic_Magnemite[] = INCBIN_U8("graphics/pokemon/back_pics/magnemite_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Magnemite[] = INCBIN_U8("graphics/pokemon/palettes/magnemite_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Magnemite[] = INCBIN_U8("graphics/pokemon/icons/magnemite_icon.4bpp"); +const u8 gMonFootprint_Magnemite[] = INCBIN_U8("graphics/pokemon/footprints/magnemite_footprint.1bpp"); + +const u8 gMonStillFrontPic_Magneton[] = INCBIN_U8("graphics/pokemon/front_pics/magneton_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Magneton[] = INCBIN_U8("graphics/pokemon/palettes/magneton_palette.gbapal.lz"); +const u8 gMonBackPic_Magneton[] = INCBIN_U8("graphics/pokemon/back_pics/magneton_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Magneton[] = INCBIN_U8("graphics/pokemon/palettes/magneton_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Magneton[] = INCBIN_U8("graphics/pokemon/icons/magneton_icon.4bpp"); +const u8 gMonFootprint_Magneton[] = INCBIN_U8("graphics/pokemon/footprints/magneton_footprint.1bpp"); + +const u8 gMonStillFrontPic_Farfetchd[] = INCBIN_U8("graphics/pokemon/front_pics/farfetch_d_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Farfetchd[] = INCBIN_U8("graphics/pokemon/palettes/farfetch_d_palette.gbapal.lz"); +const u8 gMonBackPic_Farfetchd[] = INCBIN_U8("graphics/pokemon/back_pics/farfetch_d_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Farfetchd[] = INCBIN_U8("graphics/pokemon/palettes/farfetch_d_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/icons/farfetch_d_icon.4bpp"); +const u8 gMonFootprint_Farfetchd[] = INCBIN_U8("graphics/pokemon/footprints/farfetch_d_footprint.1bpp"); + +const u8 gMonStillFrontPic_Doduo[] = INCBIN_U8("graphics/pokemon/front_pics/doduo_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Doduo[] = INCBIN_U8("graphics/pokemon/palettes/doduo_palette.gbapal.lz"); +const u8 gMonBackPic_Doduo[] = INCBIN_U8("graphics/pokemon/back_pics/doduo_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Doduo[] = INCBIN_U8("graphics/pokemon/palettes/doduo_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Doduo[] = INCBIN_U8("graphics/pokemon/icons/doduo_icon.4bpp"); +const u8 gMonFootprint_Doduo[] = INCBIN_U8("graphics/pokemon/footprints/doduo_footprint.1bpp"); + +const u8 gMonStillFrontPic_Dodrio[] = INCBIN_U8("graphics/pokemon/front_pics/dodrio_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Dodrio[] = INCBIN_U8("graphics/pokemon/palettes/dodrio_palette.gbapal.lz"); +const u8 gMonBackPic_Dodrio[] = INCBIN_U8("graphics/pokemon/back_pics/dodrio_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Dodrio[] = INCBIN_U8("graphics/pokemon/palettes/dodrio_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Dodrio[] = INCBIN_U8("graphics/pokemon/icons/dodrio_icon.4bpp"); +const u8 gMonFootprint_Dodrio[] = INCBIN_U8("graphics/pokemon/footprints/dodrio_footprint.1bpp"); + +const u8 gMonStillFrontPic_Seel[] = INCBIN_U8("graphics/pokemon/front_pics/seel_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Seel[] = INCBIN_U8("graphics/pokemon/palettes/seel_palette.gbapal.lz"); +const u8 gMonBackPic_Seel[] = INCBIN_U8("graphics/pokemon/back_pics/seel_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Seel[] = INCBIN_U8("graphics/pokemon/palettes/seel_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Seel[] = INCBIN_U8("graphics/pokemon/icons/seel_icon.4bpp"); +const u8 gMonFootprint_Seel[] = INCBIN_U8("graphics/pokemon/footprints/seel_footprint.1bpp"); + +const u8 gMonStillFrontPic_Dewgong[] = INCBIN_U8("graphics/pokemon/front_pics/dewgong_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Dewgong[] = INCBIN_U8("graphics/pokemon/palettes/dewgong_palette.gbapal.lz"); +const u8 gMonBackPic_Dewgong[] = INCBIN_U8("graphics/pokemon/back_pics/dewgong_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Dewgong[] = INCBIN_U8("graphics/pokemon/palettes/dewgong_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Dewgong[] = INCBIN_U8("graphics/pokemon/icons/dewgong_icon.4bpp"); +const u8 gMonFootprint_Dewgong[] = INCBIN_U8("graphics/pokemon/footprints/dewgong_footprint.1bpp"); + +const u8 gMonStillFrontPic_Grimer[] = INCBIN_U8("graphics/pokemon/front_pics/grimer_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Grimer[] = INCBIN_U8("graphics/pokemon/palettes/grimer_palette.gbapal.lz"); +const u8 gMonBackPic_Grimer[] = INCBIN_U8("graphics/pokemon/back_pics/grimer_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Grimer[] = INCBIN_U8("graphics/pokemon/palettes/grimer_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Grimer[] = INCBIN_U8("graphics/pokemon/icons/grimer_icon.4bpp"); +const u8 gMonFootprint_Grimer[] = INCBIN_U8("graphics/pokemon/footprints/grimer_footprint.1bpp"); + +const u8 gMonStillFrontPic_Muk[] = INCBIN_U8("graphics/pokemon/front_pics/muk_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Muk[] = INCBIN_U8("graphics/pokemon/palettes/muk_palette.gbapal.lz"); +const u8 gMonBackPic_Muk[] = INCBIN_U8("graphics/pokemon/back_pics/muk_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Muk[] = INCBIN_U8("graphics/pokemon/palettes/muk_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Muk[] = INCBIN_U8("graphics/pokemon/icons/muk_icon.4bpp"); +const u8 gMonFootprint_Muk[] = INCBIN_U8("graphics/pokemon/footprints/muk_footprint.1bpp"); + +const u8 gMonStillFrontPic_Shellder[] = INCBIN_U8("graphics/pokemon/front_pics/shellder_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Shellder[] = INCBIN_U8("graphics/pokemon/palettes/shellder_palette.gbapal.lz"); +const u8 gMonBackPic_Shellder[] = INCBIN_U8("graphics/pokemon/back_pics/shellder_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Shellder[] = INCBIN_U8("graphics/pokemon/palettes/shellder_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Shellder[] = INCBIN_U8("graphics/pokemon/icons/shellder_icon.4bpp"); +const u8 gMonFootprint_Shellder[] = INCBIN_U8("graphics/pokemon/footprints/shellder_footprint.1bpp"); + +const u8 gMonStillFrontPic_Cloyster[] = INCBIN_U8("graphics/pokemon/front_pics/cloyster_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Cloyster[] = INCBIN_U8("graphics/pokemon/palettes/cloyster_palette.gbapal.lz"); +const u8 gMonBackPic_Cloyster[] = INCBIN_U8("graphics/pokemon/back_pics/cloyster_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Cloyster[] = INCBIN_U8("graphics/pokemon/palettes/cloyster_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Cloyster[] = INCBIN_U8("graphics/pokemon/icons/cloyster_icon.4bpp"); +const u8 gMonFootprint_Cloyster[] = INCBIN_U8("graphics/pokemon/footprints/cloyster_footprint.1bpp"); + +const u8 gMonStillFrontPic_Gastly[] = INCBIN_U8("graphics/pokemon/front_pics/gastly_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Gastly[] = INCBIN_U8("graphics/pokemon/palettes/gastly_palette.gbapal.lz"); +const u8 gMonBackPic_Gastly[] = INCBIN_U8("graphics/pokemon/back_pics/gastly_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Gastly[] = INCBIN_U8("graphics/pokemon/palettes/gastly_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Gastly[] = INCBIN_U8("graphics/pokemon/icons/gastly_icon.4bpp"); +const u8 gMonFootprint_Gastly[] = INCBIN_U8("graphics/pokemon/footprints/gastly_footprint.1bpp"); + +const u8 gMonStillFrontPic_Haunter[] = INCBIN_U8("graphics/pokemon/front_pics/haunter_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Haunter[] = INCBIN_U8("graphics/pokemon/palettes/haunter_palette.gbapal.lz"); +const u8 gMonBackPic_Haunter[] = INCBIN_U8("graphics/pokemon/back_pics/haunter_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Haunter[] = INCBIN_U8("graphics/pokemon/palettes/haunter_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Haunter[] = INCBIN_U8("graphics/pokemon/icons/haunter_icon.4bpp"); +const u8 gMonFootprint_Haunter[] = INCBIN_U8("graphics/pokemon/footprints/haunter_footprint.1bpp"); + +const u8 gMonStillFrontPic_Gengar[] = INCBIN_U8("graphics/pokemon/front_pics/gengar_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Gengar[] = INCBIN_U8("graphics/pokemon/palettes/gengar_palette.gbapal.lz"); +const u8 gMonBackPic_Gengar[] = INCBIN_U8("graphics/pokemon/back_pics/gengar_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Gengar[] = INCBIN_U8("graphics/pokemon/palettes/gengar_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Gengar[] = INCBIN_U8("graphics/pokemon/icons/gengar_icon.4bpp"); +const u8 gMonFootprint_Gengar[] = INCBIN_U8("graphics/pokemon/footprints/gengar_footprint.1bpp"); + +const u8 gMonStillFrontPic_Onix[] = INCBIN_U8("graphics/pokemon/front_pics/onix_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Onix[] = INCBIN_U8("graphics/pokemon/palettes/onix_palette.gbapal.lz"); +const u8 gMonBackPic_Onix[] = INCBIN_U8("graphics/pokemon/back_pics/onix_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Onix[] = INCBIN_U8("graphics/pokemon/palettes/onix_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Onix[] = INCBIN_U8("graphics/pokemon/icons/onix_icon.4bpp"); +const u8 gMonFootprint_Onix[] = INCBIN_U8("graphics/pokemon/footprints/onix_footprint.1bpp"); + +const u8 gMonStillFrontPic_Drowzee[] = INCBIN_U8("graphics/pokemon/front_pics/drowzee_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Drowzee[] = INCBIN_U8("graphics/pokemon/palettes/drowzee_palette.gbapal.lz"); +const u8 gMonBackPic_Drowzee[] = INCBIN_U8("graphics/pokemon/back_pics/drowzee_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Drowzee[] = INCBIN_U8("graphics/pokemon/palettes/drowzee_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Drowzee[] = INCBIN_U8("graphics/pokemon/icons/drowzee_icon.4bpp"); +const u8 gMonFootprint_Drowzee[] = INCBIN_U8("graphics/pokemon/footprints/drowzee_footprint.1bpp"); + +const u8 gMonStillFrontPic_Hypno[] = INCBIN_U8("graphics/pokemon/front_pics/hypno_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Hypno[] = INCBIN_U8("graphics/pokemon/palettes/hypno_palette.gbapal.lz"); +const u8 gMonBackPic_Hypno[] = INCBIN_U8("graphics/pokemon/back_pics/hypno_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Hypno[] = INCBIN_U8("graphics/pokemon/palettes/hypno_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Hypno[] = INCBIN_U8("graphics/pokemon/icons/hypno_icon.4bpp"); +const u8 gMonFootprint_Hypno[] = INCBIN_U8("graphics/pokemon/footprints/hypno_footprint.1bpp"); + +const u8 gMonStillFrontPic_Krabby[] = INCBIN_U8("graphics/pokemon/front_pics/krabby_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Krabby[] = INCBIN_U8("graphics/pokemon/palettes/krabby_palette.gbapal.lz"); +const u8 gMonBackPic_Krabby[] = INCBIN_U8("graphics/pokemon/back_pics/krabby_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Krabby[] = INCBIN_U8("graphics/pokemon/palettes/krabby_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Krabby[] = INCBIN_U8("graphics/pokemon/icons/krabby_icon.4bpp"); +const u8 gMonFootprint_Krabby[] = INCBIN_U8("graphics/pokemon/footprints/krabby_footprint.1bpp"); + +const u8 gMonStillFrontPic_Kingler[] = INCBIN_U8("graphics/pokemon/front_pics/kingler_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Kingler[] = INCBIN_U8("graphics/pokemon/palettes/kingler_palette.gbapal.lz"); +const u8 gMonBackPic_Kingler[] = INCBIN_U8("graphics/pokemon/back_pics/kingler_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Kingler[] = INCBIN_U8("graphics/pokemon/palettes/kingler_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Kingler[] = INCBIN_U8("graphics/pokemon/icons/kingler_icon.4bpp"); +const u8 gMonFootprint_Kingler[] = INCBIN_U8("graphics/pokemon/footprints/kingler_footprint.1bpp"); + +const u8 gMonStillFrontPic_Voltorb[] = INCBIN_U8("graphics/pokemon/front_pics/voltorb_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Voltorb[] = INCBIN_U8("graphics/pokemon/palettes/voltorb_palette.gbapal.lz"); +const u8 gMonBackPic_Voltorb[] = INCBIN_U8("graphics/pokemon/back_pics/voltorb_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Voltorb[] = INCBIN_U8("graphics/pokemon/palettes/voltorb_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Voltorb[] = INCBIN_U8("graphics/pokemon/icons/voltorb_icon.4bpp"); +const u8 gMonFootprint_Voltorb[] = INCBIN_U8("graphics/pokemon/footprints/voltorb_footprint.1bpp"); + +const u8 gMonStillFrontPic_Electrode[] = INCBIN_U8("graphics/pokemon/front_pics/electrode_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Electrode[] = INCBIN_U8("graphics/pokemon/palettes/electrode_palette.gbapal.lz"); +const u8 gMonBackPic_Electrode[] = INCBIN_U8("graphics/pokemon/back_pics/electrode_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Electrode[] = INCBIN_U8("graphics/pokemon/palettes/electrode_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Electrode[] = INCBIN_U8("graphics/pokemon/icons/electrode_icon.4bpp"); +const u8 gMonFootprint_Electrode[] = INCBIN_U8("graphics/pokemon/footprints/electrode_footprint.1bpp"); + +const u8 gMonStillFrontPic_Exeggcute[] = INCBIN_U8("graphics/pokemon/front_pics/exeggcute_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Exeggcute[] = INCBIN_U8("graphics/pokemon/palettes/exeggcute_palette.gbapal.lz"); +const u8 gMonBackPic_Exeggcute[] = INCBIN_U8("graphics/pokemon/back_pics/exeggcute_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Exeggcute[] = INCBIN_U8("graphics/pokemon/palettes/exeggcute_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Exeggcute[] = INCBIN_U8("graphics/pokemon/icons/exeggcute_icon.4bpp"); +const u8 gMonFootprint_Exeggcute[] = INCBIN_U8("graphics/pokemon/footprints/exeggcute_footprint.1bpp"); + +const u8 gMonStillFrontPic_Exeggutor[] = INCBIN_U8("graphics/pokemon/front_pics/exeggutor_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Exeggutor[] = INCBIN_U8("graphics/pokemon/palettes/exeggutor_palette.gbapal.lz"); +const u8 gMonBackPic_Exeggutor[] = INCBIN_U8("graphics/pokemon/back_pics/exeggutor_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Exeggutor[] = INCBIN_U8("graphics/pokemon/palettes/exeggutor_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Exeggutor[] = INCBIN_U8("graphics/pokemon/icons/exeggutor_icon.4bpp"); +const u8 gMonFootprint_Exeggutor[] = INCBIN_U8("graphics/pokemon/footprints/exeggutor_footprint.1bpp"); + +const u8 gMonStillFrontPic_Cubone[] = INCBIN_U8("graphics/pokemon/front_pics/cubone_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Cubone[] = INCBIN_U8("graphics/pokemon/palettes/cubone_palette.gbapal.lz"); +const u8 gMonBackPic_Cubone[] = INCBIN_U8("graphics/pokemon/back_pics/cubone_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Cubone[] = INCBIN_U8("graphics/pokemon/palettes/cubone_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Cubone[] = INCBIN_U8("graphics/pokemon/icons/cubone_icon.4bpp"); +const u8 gMonFootprint_Cubone[] = INCBIN_U8("graphics/pokemon/footprints/cubone_footprint.1bpp"); + +const u8 gMonStillFrontPic_Marowak[] = INCBIN_U8("graphics/pokemon/front_pics/marowak_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Marowak[] = INCBIN_U8("graphics/pokemon/palettes/marowak_palette.gbapal.lz"); +const u8 gMonBackPic_Marowak[] = INCBIN_U8("graphics/pokemon/back_pics/marowak_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Marowak[] = INCBIN_U8("graphics/pokemon/palettes/marowak_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Marowak[] = INCBIN_U8("graphics/pokemon/icons/marowak_icon.4bpp"); +const u8 gMonFootprint_Marowak[] = INCBIN_U8("graphics/pokemon/footprints/marowak_footprint.1bpp"); + +const u8 gMonStillFrontPic_Hitmonlee[] = INCBIN_U8("graphics/pokemon/front_pics/hitmonlee_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Hitmonlee[] = INCBIN_U8("graphics/pokemon/palettes/hitmonlee_palette.gbapal.lz"); +const u8 gMonBackPic_Hitmonlee[] = INCBIN_U8("graphics/pokemon/back_pics/hitmonlee_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Hitmonlee[] = INCBIN_U8("graphics/pokemon/palettes/hitmonlee_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Hitmonlee[] = INCBIN_U8("graphics/pokemon/icons/hitmonlee_icon.4bpp"); +const u8 gMonFootprint_Hitmonlee[] = INCBIN_U8("graphics/pokemon/footprints/hitmonlee_footprint.1bpp"); + +const u8 gMonStillFrontPic_Hitmonchan[] = INCBIN_U8("graphics/pokemon/front_pics/hitmonchan_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Hitmonchan[] = INCBIN_U8("graphics/pokemon/palettes/hitmonchan_palette.gbapal.lz"); +const u8 gMonBackPic_Hitmonchan[] = INCBIN_U8("graphics/pokemon/back_pics/hitmonchan_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Hitmonchan[] = INCBIN_U8("graphics/pokemon/palettes/hitmonchan_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Hitmonchan[] = INCBIN_U8("graphics/pokemon/icons/hitmonchan_icon.4bpp"); +const u8 gMonFootprint_Hitmonchan[] = INCBIN_U8("graphics/pokemon/footprints/hitmonchan_footprint.1bpp"); + +const u8 gMonStillFrontPic_Lickitung[] = INCBIN_U8("graphics/pokemon/front_pics/lickitung_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Lickitung[] = INCBIN_U8("graphics/pokemon/palettes/lickitung_palette.gbapal.lz"); +const u8 gMonBackPic_Lickitung[] = INCBIN_U8("graphics/pokemon/back_pics/lickitung_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Lickitung[] = INCBIN_U8("graphics/pokemon/palettes/lickitung_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Lickitung[] = INCBIN_U8("graphics/pokemon/icons/lickitung_icon.4bpp"); +const u8 gMonFootprint_Lickitung[] = INCBIN_U8("graphics/pokemon/footprints/lickitung_footprint.1bpp"); + +const u8 gMonStillFrontPic_Koffing[] = INCBIN_U8("graphics/pokemon/front_pics/koffing_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Koffing[] = INCBIN_U8("graphics/pokemon/palettes/koffing_palette.gbapal.lz"); +const u8 gMonBackPic_Koffing[] = INCBIN_U8("graphics/pokemon/back_pics/koffing_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Koffing[] = INCBIN_U8("graphics/pokemon/palettes/koffing_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Koffing[] = INCBIN_U8("graphics/pokemon/icons/koffing_icon.4bpp"); +const u8 gMonFootprint_Koffing[] = INCBIN_U8("graphics/pokemon/footprints/koffing_footprint.1bpp"); + +const u8 gMonStillFrontPic_Weezing[] = INCBIN_U8("graphics/pokemon/front_pics/weezing_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Weezing[] = INCBIN_U8("graphics/pokemon/palettes/weezing_palette.gbapal.lz"); +const u8 gMonBackPic_Weezing[] = INCBIN_U8("graphics/pokemon/back_pics/weezing_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Weezing[] = INCBIN_U8("graphics/pokemon/palettes/weezing_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Weezing[] = INCBIN_U8("graphics/pokemon/icons/weezing_icon.4bpp"); +const u8 gMonFootprint_Weezing[] = INCBIN_U8("graphics/pokemon/footprints/weezing_footprint.1bpp"); + +const u8 gMonStillFrontPic_Rhyhorn[] = INCBIN_U8("graphics/pokemon/front_pics/rhyhorn_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Rhyhorn[] = INCBIN_U8("graphics/pokemon/palettes/rhyhorn_palette.gbapal.lz"); +const u8 gMonBackPic_Rhyhorn[] = INCBIN_U8("graphics/pokemon/back_pics/rhyhorn_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Rhyhorn[] = INCBIN_U8("graphics/pokemon/palettes/rhyhorn_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Rhyhorn[] = INCBIN_U8("graphics/pokemon/icons/rhyhorn_icon.4bpp"); +const u8 gMonFootprint_Rhyhorn[] = INCBIN_U8("graphics/pokemon/footprints/rhyhorn_footprint.1bpp"); + +const u8 gMonStillFrontPic_Rhydon[] = INCBIN_U8("graphics/pokemon/front_pics/rhydon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Rhydon[] = INCBIN_U8("graphics/pokemon/palettes/rhydon_palette.gbapal.lz"); +const u8 gMonBackPic_Rhydon[] = INCBIN_U8("graphics/pokemon/back_pics/rhydon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Rhydon[] = INCBIN_U8("graphics/pokemon/palettes/rhydon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Rhydon[] = INCBIN_U8("graphics/pokemon/icons/rhydon_icon.4bpp"); +const u8 gMonFootprint_Rhydon[] = INCBIN_U8("graphics/pokemon/footprints/rhydon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Chansey[] = INCBIN_U8("graphics/pokemon/front_pics/chansey_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Chansey[] = INCBIN_U8("graphics/pokemon/palettes/chansey_palette.gbapal.lz"); +const u8 gMonBackPic_Chansey[] = INCBIN_U8("graphics/pokemon/back_pics/chansey_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Chansey[] = INCBIN_U8("graphics/pokemon/palettes/chansey_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Chansey[] = INCBIN_U8("graphics/pokemon/icons/chansey_icon.4bpp"); +const u8 gMonFootprint_Chansey[] = INCBIN_U8("graphics/pokemon/footprints/chansey_footprint.1bpp"); + +const u8 gMonStillFrontPic_Tangela[] = INCBIN_U8("graphics/pokemon/front_pics/tangela_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Tangela[] = INCBIN_U8("graphics/pokemon/palettes/tangela_palette.gbapal.lz"); +const u8 gMonBackPic_Tangela[] = INCBIN_U8("graphics/pokemon/back_pics/tangela_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Tangela[] = INCBIN_U8("graphics/pokemon/palettes/tangela_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Tangela[] = INCBIN_U8("graphics/pokemon/icons/tangela_icon.4bpp"); +const u8 gMonFootprint_Tangela[] = INCBIN_U8("graphics/pokemon/footprints/tangela_footprint.1bpp"); + +const u8 gMonStillFrontPic_Kangaskhan[] = INCBIN_U8("graphics/pokemon/front_pics/kangaskhan_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Kangaskhan[] = INCBIN_U8("graphics/pokemon/palettes/kangaskhan_palette.gbapal.lz"); +const u8 gMonBackPic_Kangaskhan[] = INCBIN_U8("graphics/pokemon/back_pics/kangaskhan_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Kangaskhan[] = INCBIN_U8("graphics/pokemon/palettes/kangaskhan_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Kangaskhan[] = INCBIN_U8("graphics/pokemon/icons/kangaskhan_icon.4bpp"); +const u8 gMonFootprint_Kangaskhan[] = INCBIN_U8("graphics/pokemon/footprints/kangaskhan_footprint.1bpp"); + +const u8 gMonStillFrontPic_Horsea[] = INCBIN_U8("graphics/pokemon/front_pics/horsea_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Horsea[] = INCBIN_U8("graphics/pokemon/palettes/horsea_palette.gbapal.lz"); +const u8 gMonBackPic_Horsea[] = INCBIN_U8("graphics/pokemon/back_pics/horsea_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Horsea[] = INCBIN_U8("graphics/pokemon/palettes/horsea_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Horsea[] = INCBIN_U8("graphics/pokemon/icons/horsea_icon.4bpp"); +const u8 gMonFootprint_Horsea[] = INCBIN_U8("graphics/pokemon/footprints/horsea_footprint.1bpp"); + +const u8 gMonStillFrontPic_Seadra[] = INCBIN_U8("graphics/pokemon/front_pics/seadra_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Seadra[] = INCBIN_U8("graphics/pokemon/palettes/seadra_palette.gbapal.lz"); +const u8 gMonBackPic_Seadra[] = INCBIN_U8("graphics/pokemon/back_pics/seadra_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Seadra[] = INCBIN_U8("graphics/pokemon/palettes/seadra_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Seadra[] = INCBIN_U8("graphics/pokemon/icons/seadra_icon.4bpp"); +const u8 gMonFootprint_Seadra[] = INCBIN_U8("graphics/pokemon/footprints/seadra_footprint.1bpp"); + +const u8 gMonStillFrontPic_Goldeen[] = INCBIN_U8("graphics/pokemon/front_pics/goldeen_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Goldeen[] = INCBIN_U8("graphics/pokemon/palettes/goldeen_palette.gbapal.lz"); +const u8 gMonBackPic_Goldeen[] = INCBIN_U8("graphics/pokemon/back_pics/goldeen_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Goldeen[] = INCBIN_U8("graphics/pokemon/palettes/goldeen_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Goldeen[] = INCBIN_U8("graphics/pokemon/icons/goldeen_icon.4bpp"); +const u8 gMonFootprint_Goldeen[] = INCBIN_U8("graphics/pokemon/footprints/goldeen_footprint.1bpp"); + +const u8 gMonStillFrontPic_Seaking[] = INCBIN_U8("graphics/pokemon/front_pics/seaking_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Seaking[] = INCBIN_U8("graphics/pokemon/palettes/seaking_palette.gbapal.lz"); +const u8 gMonBackPic_Seaking[] = INCBIN_U8("graphics/pokemon/back_pics/seaking_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Seaking[] = INCBIN_U8("graphics/pokemon/palettes/seaking_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Seaking[] = INCBIN_U8("graphics/pokemon/icons/seaking_icon.4bpp"); +const u8 gMonFootprint_Seaking[] = INCBIN_U8("graphics/pokemon/footprints/seaking_footprint.1bpp"); + +const u8 gMonStillFrontPic_Staryu[] = INCBIN_U8("graphics/pokemon/front_pics/staryu_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Staryu[] = INCBIN_U8("graphics/pokemon/palettes/staryu_palette.gbapal.lz"); +const u8 gMonBackPic_Staryu[] = INCBIN_U8("graphics/pokemon/back_pics/staryu_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Staryu[] = INCBIN_U8("graphics/pokemon/palettes/staryu_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Staryu[] = INCBIN_U8("graphics/pokemon/icons/staryu_icon.4bpp"); +const u8 gMonFootprint_Staryu[] = INCBIN_U8("graphics/pokemon/footprints/staryu_footprint.1bpp"); + +const u8 gMonStillFrontPic_Starmie[] = INCBIN_U8("graphics/pokemon/front_pics/starmie_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Starmie[] = INCBIN_U8("graphics/pokemon/palettes/starmie_palette.gbapal.lz"); +const u8 gMonBackPic_Starmie[] = INCBIN_U8("graphics/pokemon/back_pics/starmie_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Starmie[] = INCBIN_U8("graphics/pokemon/palettes/starmie_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Starmie[] = INCBIN_U8("graphics/pokemon/icons/starmie_icon.4bpp"); +const u8 gMonFootprint_Starmie[] = INCBIN_U8("graphics/pokemon/footprints/starmie_footprint.1bpp"); + +const u8 gMonStillFrontPic_Mrmime[] = INCBIN_U8("graphics/pokemon/front_pics/mr_mime_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Mrmime[] = INCBIN_U8("graphics/pokemon/palettes/mr_mime_palette.gbapal.lz"); +const u8 gMonBackPic_Mrmime[] = INCBIN_U8("graphics/pokemon/back_pics/mr_mime_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Mrmime[] = INCBIN_U8("graphics/pokemon/palettes/mr_mime_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Mrmime[] = INCBIN_U8("graphics/pokemon/icons/mr_mime_icon.4bpp"); +const u8 gMonFootprint_Mrmime[] = INCBIN_U8("graphics/pokemon/footprints/mr_mime_footprint.1bpp"); + +const u8 gMonStillFrontPic_Scyther[] = INCBIN_U8("graphics/pokemon/front_pics/scyther_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Scyther[] = INCBIN_U8("graphics/pokemon/palettes/scyther_palette.gbapal.lz"); +const u8 gMonBackPic_Scyther[] = INCBIN_U8("graphics/pokemon/back_pics/scyther_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Scyther[] = INCBIN_U8("graphics/pokemon/palettes/scyther_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Scyther[] = INCBIN_U8("graphics/pokemon/icons/scyther_icon.4bpp"); +const u8 gMonFootprint_Scyther[] = INCBIN_U8("graphics/pokemon/footprints/scyther_footprint.1bpp"); + +const u8 gMonStillFrontPic_Jynx[] = INCBIN_U8("graphics/pokemon/front_pics/jynx_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Jynx[] = INCBIN_U8("graphics/pokemon/palettes/jynx_palette.gbapal.lz"); +const u8 gMonBackPic_Jynx[] = INCBIN_U8("graphics/pokemon/back_pics/jynx_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Jynx[] = INCBIN_U8("graphics/pokemon/palettes/jynx_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Jynx[] = INCBIN_U8("graphics/pokemon/icons/jynx_icon.4bpp"); +const u8 gMonFootprint_Jynx[] = INCBIN_U8("graphics/pokemon/footprints/jynx_footprint.1bpp"); + +const u8 gMonStillFrontPic_Electabuzz[] = INCBIN_U8("graphics/pokemon/front_pics/electabuzz_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Electabuzz[] = INCBIN_U8("graphics/pokemon/palettes/electabuzz_palette.gbapal.lz"); +const u8 gMonBackPic_Electabuzz[] = INCBIN_U8("graphics/pokemon/back_pics/electabuzz_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Electabuzz[] = INCBIN_U8("graphics/pokemon/palettes/electabuzz_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Electabuzz[] = INCBIN_U8("graphics/pokemon/icons/electabuzz_icon.4bpp"); +const u8 gMonFootprint_Electabuzz[] = INCBIN_U8("graphics/pokemon/footprints/electabuzz_footprint.1bpp"); + +const u8 gMonStillFrontPic_Magmar[] = INCBIN_U8("graphics/pokemon/front_pics/magmar_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Magmar[] = INCBIN_U8("graphics/pokemon/palettes/magmar_palette.gbapal.lz"); +const u8 gMonBackPic_Magmar[] = INCBIN_U8("graphics/pokemon/back_pics/magmar_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Magmar[] = INCBIN_U8("graphics/pokemon/palettes/magmar_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Magmar[] = INCBIN_U8("graphics/pokemon/icons/magmar_icon.4bpp"); +const u8 gMonFootprint_Magmar[] = INCBIN_U8("graphics/pokemon/footprints/magmar_footprint.1bpp"); + +const u8 gMonStillFrontPic_Pinsir[] = INCBIN_U8("graphics/pokemon/front_pics/pinsir_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Pinsir[] = INCBIN_U8("graphics/pokemon/palettes/pinsir_palette.gbapal.lz"); +const u8 gMonBackPic_Pinsir[] = INCBIN_U8("graphics/pokemon/back_pics/pinsir_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Pinsir[] = INCBIN_U8("graphics/pokemon/palettes/pinsir_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Pinsir[] = INCBIN_U8("graphics/pokemon/icons/pinsir_icon.4bpp"); +const u8 gMonFootprint_Pinsir[] = INCBIN_U8("graphics/pokemon/footprints/pinsir_footprint.1bpp"); + +const u8 gMonStillFrontPic_Tauros[] = INCBIN_U8("graphics/pokemon/front_pics/tauros_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Tauros[] = INCBIN_U8("graphics/pokemon/palettes/tauros_palette.gbapal.lz"); +const u8 gMonBackPic_Tauros[] = INCBIN_U8("graphics/pokemon/back_pics/tauros_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Tauros[] = INCBIN_U8("graphics/pokemon/palettes/tauros_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Tauros[] = INCBIN_U8("graphics/pokemon/icons/tauros_icon.4bpp"); +const u8 gMonFootprint_Tauros[] = INCBIN_U8("graphics/pokemon/footprints/tauros_footprint.1bpp"); + +const u8 gMonStillFrontPic_Magikarp[] = INCBIN_U8("graphics/pokemon/front_pics/magikarp_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Magikarp[] = INCBIN_U8("graphics/pokemon/palettes/magikarp_palette.gbapal.lz"); +const u8 gMonBackPic_Magikarp[] = INCBIN_U8("graphics/pokemon/back_pics/magikarp_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Magikarp[] = INCBIN_U8("graphics/pokemon/palettes/magikarp_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Magikarp[] = INCBIN_U8("graphics/pokemon/icons/magikarp_icon.4bpp"); +const u8 gMonFootprint_Magikarp[] = INCBIN_U8("graphics/pokemon/footprints/magikarp_footprint.1bpp"); + +const u8 gMonStillFrontPic_Gyarados[] = INCBIN_U8("graphics/pokemon/front_pics/gyarados_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Gyarados[] = INCBIN_U8("graphics/pokemon/palettes/gyarados_palette.gbapal.lz"); +const u8 gMonBackPic_Gyarados[] = INCBIN_U8("graphics/pokemon/back_pics/gyarados_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Gyarados[] = INCBIN_U8("graphics/pokemon/palettes/gyarados_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Gyarados[] = INCBIN_U8("graphics/pokemon/icons/gyarados_icon.4bpp"); +const u8 gMonFootprint_Gyarados[] = INCBIN_U8("graphics/pokemon/footprints/gyarados_footprint.1bpp"); + +const u8 gMonStillFrontPic_Lapras[] = INCBIN_U8("graphics/pokemon/front_pics/lapras_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Lapras[] = INCBIN_U8("graphics/pokemon/palettes/lapras_palette.gbapal.lz"); +const u8 gMonBackPic_Lapras[] = INCBIN_U8("graphics/pokemon/back_pics/lapras_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Lapras[] = INCBIN_U8("graphics/pokemon/palettes/lapras_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Lapras[] = INCBIN_U8("graphics/pokemon/icons/lapras_icon.4bpp"); +const u8 gMonFootprint_Lapras[] = INCBIN_U8("graphics/pokemon/footprints/lapras_footprint.1bpp"); + +const u8 gMonStillFrontPic_Ditto[] = INCBIN_U8("graphics/pokemon/front_pics/ditto_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ditto[] = INCBIN_U8("graphics/pokemon/palettes/ditto_palette.gbapal.lz"); +const u8 gMonBackPic_Ditto[] = INCBIN_U8("graphics/pokemon/back_pics/ditto_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ditto[] = INCBIN_U8("graphics/pokemon/palettes/ditto_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ditto[] = INCBIN_U8("graphics/pokemon/icons/ditto_icon.4bpp"); +const u8 gMonFootprint_Ditto[] = INCBIN_U8("graphics/pokemon/footprints/ditto_footprint.1bpp"); + +const u8 gMonStillFrontPic_Eevee[] = INCBIN_U8("graphics/pokemon/front_pics/eevee_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Eevee[] = INCBIN_U8("graphics/pokemon/palettes/eevee_palette.gbapal.lz"); +const u8 gMonBackPic_Eevee[] = INCBIN_U8("graphics/pokemon/back_pics/eevee_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Eevee[] = INCBIN_U8("graphics/pokemon/palettes/eevee_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Eevee[] = INCBIN_U8("graphics/pokemon/icons/eevee_icon.4bpp"); +const u8 gMonFootprint_Eevee[] = INCBIN_U8("graphics/pokemon/footprints/eevee_footprint.1bpp"); + +const u8 gMonStillFrontPic_Vaporeon[] = INCBIN_U8("graphics/pokemon/front_pics/vaporeon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Vaporeon[] = INCBIN_U8("graphics/pokemon/palettes/vaporeon_palette.gbapal.lz"); +const u8 gMonBackPic_Vaporeon[] = INCBIN_U8("graphics/pokemon/back_pics/vaporeon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Vaporeon[] = INCBIN_U8("graphics/pokemon/palettes/vaporeon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Vaporeon[] = INCBIN_U8("graphics/pokemon/icons/vaporeon_icon.4bpp"); +const u8 gMonFootprint_Vaporeon[] = INCBIN_U8("graphics/pokemon/footprints/vaporeon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Jolteon[] = INCBIN_U8("graphics/pokemon/front_pics/jolteon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Jolteon[] = INCBIN_U8("graphics/pokemon/palettes/jolteon_palette.gbapal.lz"); +const u8 gMonBackPic_Jolteon[] = INCBIN_U8("graphics/pokemon/back_pics/jolteon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Jolteon[] = INCBIN_U8("graphics/pokemon/palettes/jolteon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Jolteon[] = INCBIN_U8("graphics/pokemon/icons/jolteon_icon.4bpp"); +const u8 gMonFootprint_Jolteon[] = INCBIN_U8("graphics/pokemon/footprints/jolteon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Flareon[] = INCBIN_U8("graphics/pokemon/front_pics/flareon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Flareon[] = INCBIN_U8("graphics/pokemon/palettes/flareon_palette.gbapal.lz"); +const u8 gMonBackPic_Flareon[] = INCBIN_U8("graphics/pokemon/back_pics/flareon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Flareon[] = INCBIN_U8("graphics/pokemon/palettes/flareon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Flareon[] = INCBIN_U8("graphics/pokemon/icons/flareon_icon.4bpp"); +const u8 gMonFootprint_Flareon[] = INCBIN_U8("graphics/pokemon/footprints/flareon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Porygon[] = INCBIN_U8("graphics/pokemon/front_pics/porygon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Porygon[] = INCBIN_U8("graphics/pokemon/palettes/porygon_palette.gbapal.lz"); +const u8 gMonBackPic_Porygon[] = INCBIN_U8("graphics/pokemon/back_pics/porygon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Porygon[] = INCBIN_U8("graphics/pokemon/palettes/porygon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Porygon[] = INCBIN_U8("graphics/pokemon/icons/porygon_icon.4bpp"); +const u8 gMonFootprint_Porygon[] = INCBIN_U8("graphics/pokemon/footprints/porygon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Omanyte[] = INCBIN_U8("graphics/pokemon/front_pics/omanyte_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Omanyte[] = INCBIN_U8("graphics/pokemon/palettes/omanyte_palette.gbapal.lz"); +const u8 gMonBackPic_Omanyte[] = INCBIN_U8("graphics/pokemon/back_pics/omanyte_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Omanyte[] = INCBIN_U8("graphics/pokemon/palettes/omanyte_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Omanyte[] = INCBIN_U8("graphics/pokemon/icons/omanyte_icon.4bpp"); +const u8 gMonFootprint_Omanyte[] = INCBIN_U8("graphics/pokemon/footprints/omanyte_footprint.1bpp"); + +const u8 gMonStillFrontPic_Omastar[] = INCBIN_U8("graphics/pokemon/front_pics/omastar_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Omastar[] = INCBIN_U8("graphics/pokemon/palettes/omastar_palette.gbapal.lz"); +const u8 gMonBackPic_Omastar[] = INCBIN_U8("graphics/pokemon/back_pics/omastar_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Omastar[] = INCBIN_U8("graphics/pokemon/palettes/omastar_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Omastar[] = INCBIN_U8("graphics/pokemon/icons/omastar_icon.4bpp"); +const u8 gMonFootprint_Omastar[] = INCBIN_U8("graphics/pokemon/footprints/omastar_footprint.1bpp"); + +const u8 gMonStillFrontPic_Kabuto[] = INCBIN_U8("graphics/pokemon/front_pics/kabuto_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Kabuto[] = INCBIN_U8("graphics/pokemon/palettes/kabuto_palette.gbapal.lz"); +const u8 gMonBackPic_Kabuto[] = INCBIN_U8("graphics/pokemon/back_pics/kabuto_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Kabuto[] = INCBIN_U8("graphics/pokemon/palettes/kabuto_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Kabuto[] = INCBIN_U8("graphics/pokemon/icons/kabuto_icon.4bpp"); +const u8 gMonFootprint_Kabuto[] = INCBIN_U8("graphics/pokemon/footprints/kabuto_footprint.1bpp"); + +const u8 gMonStillFrontPic_Kabutops[] = INCBIN_U8("graphics/pokemon/front_pics/kabutops_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Kabutops[] = INCBIN_U8("graphics/pokemon/palettes/kabutops_palette.gbapal.lz"); +const u8 gMonBackPic_Kabutops[] = INCBIN_U8("graphics/pokemon/back_pics/kabutops_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Kabutops[] = INCBIN_U8("graphics/pokemon/palettes/kabutops_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Kabutops[] = INCBIN_U8("graphics/pokemon/icons/kabutops_icon.4bpp"); +const u8 gMonFootprint_Kabutops[] = INCBIN_U8("graphics/pokemon/footprints/kabutops_footprint.1bpp"); + +const u8 gMonStillFrontPic_Aerodactyl[] = INCBIN_U8("graphics/pokemon/front_pics/aerodactyl_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Aerodactyl[] = INCBIN_U8("graphics/pokemon/palettes/aerodactyl_palette.gbapal.lz"); +const u8 gMonBackPic_Aerodactyl[] = INCBIN_U8("graphics/pokemon/back_pics/aerodactyl_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Aerodactyl[] = INCBIN_U8("graphics/pokemon/palettes/aerodactyl_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Aerodactyl[] = INCBIN_U8("graphics/pokemon/icons/aerodactyl_icon.4bpp"); +const u8 gMonFootprint_Aerodactyl[] = INCBIN_U8("graphics/pokemon/footprints/aerodactyl_footprint.1bpp"); + +const u8 gMonStillFrontPic_Snorlax[] = INCBIN_U8("graphics/pokemon/front_pics/snorlax_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Snorlax[] = INCBIN_U8("graphics/pokemon/palettes/snorlax_palette.gbapal.lz"); +const u8 gMonBackPic_Snorlax[] = INCBIN_U8("graphics/pokemon/back_pics/snorlax_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Snorlax[] = INCBIN_U8("graphics/pokemon/palettes/snorlax_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Snorlax[] = INCBIN_U8("graphics/pokemon/icons/snorlax_icon.4bpp"); +const u8 gMonFootprint_Snorlax[] = INCBIN_U8("graphics/pokemon/footprints/snorlax_footprint.1bpp"); + +const u8 gMonStillFrontPic_Articuno[] = INCBIN_U8("graphics/pokemon/front_pics/articuno_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Articuno[] = INCBIN_U8("graphics/pokemon/palettes/articuno_palette.gbapal.lz"); +const u8 gMonBackPic_Articuno[] = INCBIN_U8("graphics/pokemon/back_pics/articuno_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Articuno[] = INCBIN_U8("graphics/pokemon/palettes/articuno_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Articuno[] = INCBIN_U8("graphics/pokemon/icons/articuno_icon.4bpp"); +const u8 gMonFootprint_Articuno[] = INCBIN_U8("graphics/pokemon/footprints/articuno_footprint.1bpp"); + +const u8 gMonStillFrontPic_Zapdos[] = INCBIN_U8("graphics/pokemon/front_pics/zapdos_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Zapdos[] = INCBIN_U8("graphics/pokemon/palettes/zapdos_palette.gbapal.lz"); +const u8 gMonBackPic_Zapdos[] = INCBIN_U8("graphics/pokemon/back_pics/zapdos_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Zapdos[] = INCBIN_U8("graphics/pokemon/palettes/zapdos_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Zapdos[] = INCBIN_U8("graphics/pokemon/icons/zapdos_icon.4bpp"); +const u8 gMonFootprint_Zapdos[] = INCBIN_U8("graphics/pokemon/footprints/zapdos_footprint.1bpp"); + +const u8 gMonStillFrontPic_Moltres[] = INCBIN_U8("graphics/pokemon/front_pics/moltres_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Moltres[] = INCBIN_U8("graphics/pokemon/palettes/moltres_palette.gbapal.lz"); +const u8 gMonBackPic_Moltres[] = INCBIN_U8("graphics/pokemon/back_pics/moltres_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Moltres[] = INCBIN_U8("graphics/pokemon/palettes/moltres_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Moltres[] = INCBIN_U8("graphics/pokemon/icons/moltres_icon.4bpp"); +const u8 gMonFootprint_Moltres[] = INCBIN_U8("graphics/pokemon/footprints/moltres_footprint.1bpp"); + +const u8 gMonStillFrontPic_Dratini[] = INCBIN_U8("graphics/pokemon/front_pics/dratini_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Dratini[] = INCBIN_U8("graphics/pokemon/palettes/dratini_palette.gbapal.lz"); +const u8 gMonBackPic_Dratini[] = INCBIN_U8("graphics/pokemon/back_pics/dratini_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Dratini[] = INCBIN_U8("graphics/pokemon/palettes/dratini_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Dratini[] = INCBIN_U8("graphics/pokemon/icons/dratini_icon.4bpp"); +const u8 gMonFootprint_Dratini[] = INCBIN_U8("graphics/pokemon/footprints/dratini_footprint.1bpp"); + +const u8 gMonStillFrontPic_Dragonair[] = INCBIN_U8("graphics/pokemon/front_pics/dragonair_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Dragonair[] = INCBIN_U8("graphics/pokemon/palettes/dragonair_palette.gbapal.lz"); +const u8 gMonBackPic_Dragonair[] = INCBIN_U8("graphics/pokemon/back_pics/dragonair_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Dragonair[] = INCBIN_U8("graphics/pokemon/palettes/dragonair_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Dragonair[] = INCBIN_U8("graphics/pokemon/icons/dragonair_icon.4bpp"); +const u8 gMonFootprint_Dragonair[] = INCBIN_U8("graphics/pokemon/footprints/dragonair_footprint.1bpp"); + +const u8 gMonStillFrontPic_Dragonite[] = INCBIN_U8("graphics/pokemon/front_pics/dragonite_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Dragonite[] = INCBIN_U8("graphics/pokemon/palettes/dragonite_palette.gbapal.lz"); +const u8 gMonBackPic_Dragonite[] = INCBIN_U8("graphics/pokemon/back_pics/dragonite_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Dragonite[] = INCBIN_U8("graphics/pokemon/palettes/dragonite_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Dragonite[] = INCBIN_U8("graphics/pokemon/icons/dragonite_icon.4bpp"); +const u8 gMonFootprint_Dragonite[] = INCBIN_U8("graphics/pokemon/footprints/dragonite_footprint.1bpp"); + +const u8 gMonStillFrontPic_Mewtwo[] = INCBIN_U8("graphics/pokemon/front_pics/mewtwo_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Mewtwo[] = INCBIN_U8("graphics/pokemon/palettes/mewtwo_palette.gbapal.lz"); +const u8 gMonBackPic_Mewtwo[] = INCBIN_U8("graphics/pokemon/back_pics/mewtwo_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Mewtwo[] = INCBIN_U8("graphics/pokemon/palettes/mewtwo_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Mewtwo[] = INCBIN_U8("graphics/pokemon/icons/mewtwo_icon.4bpp"); +const u8 gMonFootprint_Mewtwo[] = INCBIN_U8("graphics/pokemon/footprints/mewtwo_footprint.1bpp"); + +const u8 gMonStillFrontPic_Mew[] = INCBIN_U8("graphics/pokemon/front_pics/mew_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Mew[] = INCBIN_U8("graphics/pokemon/palettes/mew_palette.gbapal.lz"); +const u8 gMonBackPic_Mew[] = INCBIN_U8("graphics/pokemon/back_pics/mew_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Mew[] = INCBIN_U8("graphics/pokemon/palettes/mew_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Mew[] = INCBIN_U8("graphics/pokemon/icons/mew_icon.4bpp"); +const u8 gMonFootprint_Mew[] = INCBIN_U8("graphics/pokemon/footprints/mew_footprint.1bpp"); + +const u8 gMonStillFrontPic_Chikorita[] = INCBIN_U8("graphics/pokemon/front_pics/chikorita_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Chikorita[] = INCBIN_U8("graphics/pokemon/palettes/chikorita_palette.gbapal.lz"); +const u8 gMonBackPic_Chikorita[] = INCBIN_U8("graphics/pokemon/back_pics/chikorita_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Chikorita[] = INCBIN_U8("graphics/pokemon/palettes/chikorita_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Chikorita[] = INCBIN_U8("graphics/pokemon/icons/chikorita_icon.4bpp"); +const u8 gMonFootprint_Chikorita[] = INCBIN_U8("graphics/pokemon/footprints/chikorita_footprint.1bpp"); + +const u8 gMonStillFrontPic_Bayleef[] = INCBIN_U8("graphics/pokemon/front_pics/bayleef_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Bayleef[] = INCBIN_U8("graphics/pokemon/palettes/bayleef_palette.gbapal.lz"); +const u8 gMonBackPic_Bayleef[] = INCBIN_U8("graphics/pokemon/back_pics/bayleef_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Bayleef[] = INCBIN_U8("graphics/pokemon/palettes/bayleef_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Bayleef[] = INCBIN_U8("graphics/pokemon/icons/bayleef_icon.4bpp"); +const u8 gMonFootprint_Bayleef[] = INCBIN_U8("graphics/pokemon/footprints/bayleef_footprint.1bpp"); + +const u8 gMonStillFrontPic_Meganium[] = INCBIN_U8("graphics/pokemon/front_pics/meganium_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Meganium[] = INCBIN_U8("graphics/pokemon/palettes/meganium_palette.gbapal.lz"); +const u8 gMonBackPic_Meganium[] = INCBIN_U8("graphics/pokemon/back_pics/meganium_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Meganium[] = INCBIN_U8("graphics/pokemon/palettes/meganium_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Meganium[] = INCBIN_U8("graphics/pokemon/icons/meganium_icon.4bpp"); +const u8 gMonFootprint_Meganium[] = INCBIN_U8("graphics/pokemon/footprints/meganium_footprint.1bpp"); + +const u8 gMonStillFrontPic_Cyndaquil[] = INCBIN_U8("graphics/pokemon/front_pics/cyndaquil_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Cyndaquil[] = INCBIN_U8("graphics/pokemon/palettes/cyndaquil_palette.gbapal.lz"); +const u8 gMonBackPic_Cyndaquil[] = INCBIN_U8("graphics/pokemon/back_pics/cyndaquil_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Cyndaquil[] = INCBIN_U8("graphics/pokemon/palettes/cyndaquil_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Cyndaquil[] = INCBIN_U8("graphics/pokemon/icons/cyndaquil_icon.4bpp"); +const u8 gMonFootprint_Cyndaquil[] = INCBIN_U8("graphics/pokemon/footprints/cyndaquil_footprint.1bpp"); + +const u8 gMonStillFrontPic_Quilava[] = INCBIN_U8("graphics/pokemon/front_pics/quilava_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Quilava[] = INCBIN_U8("graphics/pokemon/palettes/quilava_palette.gbapal.lz"); +const u8 gMonBackPic_Quilava[] = INCBIN_U8("graphics/pokemon/back_pics/quilava_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Quilava[] = INCBIN_U8("graphics/pokemon/palettes/quilava_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Quilava[] = INCBIN_U8("graphics/pokemon/icons/quilava_icon.4bpp"); +const u8 gMonFootprint_Quilava[] = INCBIN_U8("graphics/pokemon/footprints/quilava_footprint.1bpp"); + +const u8 gMonStillFrontPic_Typhlosion[] = INCBIN_U8("graphics/pokemon/front_pics/typhlosion_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Typhlosion[] = INCBIN_U8("graphics/pokemon/palettes/typhlosion_palette.gbapal.lz"); +const u8 gMonBackPic_Typhlosion[] = INCBIN_U8("graphics/pokemon/back_pics/typhlosion_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Typhlosion[] = INCBIN_U8("graphics/pokemon/palettes/typhlosion_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Typhlosion[] = INCBIN_U8("graphics/pokemon/icons/typhlosion_icon.4bpp"); +const u8 gMonFootprint_Typhlosion[] = INCBIN_U8("graphics/pokemon/footprints/typhlosion_footprint.1bpp"); + +const u8 gMonStillFrontPic_Totodile[] = INCBIN_U8("graphics/pokemon/front_pics/totodile_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Totodile[] = INCBIN_U8("graphics/pokemon/palettes/totodile_palette.gbapal.lz"); +const u8 gMonBackPic_Totodile[] = INCBIN_U8("graphics/pokemon/back_pics/totodile_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Totodile[] = INCBIN_U8("graphics/pokemon/palettes/totodile_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Totodile[] = INCBIN_U8("graphics/pokemon/icons/totodile_icon.4bpp"); +const u8 gMonFootprint_Totodile[] = INCBIN_U8("graphics/pokemon/footprints/totodile_footprint.1bpp"); + +const u8 gMonStillFrontPic_Croconaw[] = INCBIN_U8("graphics/pokemon/front_pics/croconaw_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Croconaw[] = INCBIN_U8("graphics/pokemon/palettes/croconaw_palette.gbapal.lz"); +const u8 gMonBackPic_Croconaw[] = INCBIN_U8("graphics/pokemon/back_pics/croconaw_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Croconaw[] = INCBIN_U8("graphics/pokemon/palettes/croconaw_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Croconaw[] = INCBIN_U8("graphics/pokemon/icons/croconaw_icon.4bpp"); +const u8 gMonFootprint_Croconaw[] = INCBIN_U8("graphics/pokemon/footprints/croconaw_footprint.1bpp"); + +const u8 gMonStillFrontPic_Feraligatr[] = INCBIN_U8("graphics/pokemon/front_pics/feraligatr_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Feraligatr[] = INCBIN_U8("graphics/pokemon/palettes/feraligatr_palette.gbapal.lz"); +const u8 gMonBackPic_Feraligatr[] = INCBIN_U8("graphics/pokemon/back_pics/feraligatr_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Feraligatr[] = INCBIN_U8("graphics/pokemon/palettes/feraligatr_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Feraligatr[] = INCBIN_U8("graphics/pokemon/icons/feraligatr_icon.4bpp"); +const u8 gMonFootprint_Feraligatr[] = INCBIN_U8("graphics/pokemon/footprints/feraligatr_footprint.1bpp"); + +const u8 gMonStillFrontPic_Sentret[] = INCBIN_U8("graphics/pokemon/front_pics/sentret_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Sentret[] = INCBIN_U8("graphics/pokemon/palettes/sentret_palette.gbapal.lz"); +const u8 gMonBackPic_Sentret[] = INCBIN_U8("graphics/pokemon/back_pics/sentret_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Sentret[] = INCBIN_U8("graphics/pokemon/palettes/sentret_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Sentret[] = INCBIN_U8("graphics/pokemon/icons/sentret_icon.4bpp"); +const u8 gMonFootprint_Sentret[] = INCBIN_U8("graphics/pokemon/footprints/sentret_footprint.1bpp"); + +const u8 gMonStillFrontPic_Furret[] = INCBIN_U8("graphics/pokemon/front_pics/furret_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Furret[] = INCBIN_U8("graphics/pokemon/palettes/furret_palette.gbapal.lz"); +const u8 gMonBackPic_Furret[] = INCBIN_U8("graphics/pokemon/back_pics/furret_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Furret[] = INCBIN_U8("graphics/pokemon/palettes/furret_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Furret[] = INCBIN_U8("graphics/pokemon/icons/furret_icon.4bpp"); +const u8 gMonFootprint_Furret[] = INCBIN_U8("graphics/pokemon/footprints/furret_footprint.1bpp"); + +const u8 gMonStillFrontPic_Hoothoot[] = INCBIN_U8("graphics/pokemon/front_pics/hoothoot_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Hoothoot[] = INCBIN_U8("graphics/pokemon/palettes/hoothoot_palette.gbapal.lz"); +const u8 gMonBackPic_Hoothoot[] = INCBIN_U8("graphics/pokemon/back_pics/hoothoot_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Hoothoot[] = INCBIN_U8("graphics/pokemon/palettes/hoothoot_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Hoothoot[] = INCBIN_U8("graphics/pokemon/icons/hoothoot_icon.4bpp"); +const u8 gMonFootprint_Hoothoot[] = INCBIN_U8("graphics/pokemon/footprints/hoothoot_footprint.1bpp"); + +const u8 gMonStillFrontPic_Noctowl[] = INCBIN_U8("graphics/pokemon/front_pics/noctowl_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Noctowl[] = INCBIN_U8("graphics/pokemon/palettes/noctowl_palette.gbapal.lz"); +const u8 gMonBackPic_Noctowl[] = INCBIN_U8("graphics/pokemon/back_pics/noctowl_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Noctowl[] = INCBIN_U8("graphics/pokemon/palettes/noctowl_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Noctowl[] = INCBIN_U8("graphics/pokemon/icons/noctowl_icon.4bpp"); +const u8 gMonFootprint_Noctowl[] = INCBIN_U8("graphics/pokemon/footprints/noctowl_footprint.1bpp"); + +const u8 gMonStillFrontPic_Ledyba[] = INCBIN_U8("graphics/pokemon/front_pics/ledyba_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ledyba[] = INCBIN_U8("graphics/pokemon/palettes/ledyba_palette.gbapal.lz"); +const u8 gMonBackPic_Ledyba[] = INCBIN_U8("graphics/pokemon/back_pics/ledyba_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ledyba[] = INCBIN_U8("graphics/pokemon/palettes/ledyba_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ledyba[] = INCBIN_U8("graphics/pokemon/icons/ledyba_icon.4bpp"); +const u8 gMonFootprint_Ledyba[] = INCBIN_U8("graphics/pokemon/footprints/ledyba_footprint.1bpp"); + +const u8 gMonStillFrontPic_Ledian[] = INCBIN_U8("graphics/pokemon/front_pics/ledian_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ledian[] = INCBIN_U8("graphics/pokemon/palettes/ledian_palette.gbapal.lz"); +const u8 gMonBackPic_Ledian[] = INCBIN_U8("graphics/pokemon/back_pics/ledian_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ledian[] = INCBIN_U8("graphics/pokemon/palettes/ledian_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ledian[] = INCBIN_U8("graphics/pokemon/icons/ledian_icon.4bpp"); +const u8 gMonFootprint_Ledian[] = INCBIN_U8("graphics/pokemon/footprints/ledian_footprint.1bpp"); + +const u8 gMonStillFrontPic_Spinarak[] = INCBIN_U8("graphics/pokemon/front_pics/spinarak_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Spinarak[] = INCBIN_U8("graphics/pokemon/palettes/spinarak_palette.gbapal.lz"); +const u8 gMonBackPic_Spinarak[] = INCBIN_U8("graphics/pokemon/back_pics/spinarak_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Spinarak[] = INCBIN_U8("graphics/pokemon/palettes/spinarak_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Spinarak[] = INCBIN_U8("graphics/pokemon/icons/spinarak_icon.4bpp"); +const u8 gMonFootprint_Spinarak[] = INCBIN_U8("graphics/pokemon/footprints/spinarak_footprint.1bpp"); + +const u8 gMonStillFrontPic_Ariados[] = INCBIN_U8("graphics/pokemon/front_pics/ariados_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ariados[] = INCBIN_U8("graphics/pokemon/palettes/ariados_palette.gbapal.lz"); +const u8 gMonBackPic_Ariados[] = INCBIN_U8("graphics/pokemon/back_pics/ariados_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ariados[] = INCBIN_U8("graphics/pokemon/palettes/ariados_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ariados[] = INCBIN_U8("graphics/pokemon/icons/ariados_icon.4bpp"); +const u8 gMonFootprint_Ariados[] = INCBIN_U8("graphics/pokemon/footprints/ariados_footprint.1bpp"); + +const u8 gMonStillFrontPic_Crobat[] = INCBIN_U8("graphics/pokemon/front_pics/crobat_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Crobat[] = INCBIN_U8("graphics/pokemon/palettes/crobat_palette.gbapal.lz"); +const u8 gMonBackPic_Crobat[] = INCBIN_U8("graphics/pokemon/back_pics/crobat_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Crobat[] = INCBIN_U8("graphics/pokemon/palettes/crobat_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Crobat[] = INCBIN_U8("graphics/pokemon/icons/crobat_icon.4bpp"); +const u8 gMonFootprint_Crobat[] = INCBIN_U8("graphics/pokemon/footprints/crobat_footprint.1bpp"); + +const u8 gMonStillFrontPic_Chinchou[] = INCBIN_U8("graphics/pokemon/front_pics/chinchou_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Chinchou[] = INCBIN_U8("graphics/pokemon/palettes/chinchou_palette.gbapal.lz"); +const u8 gMonBackPic_Chinchou[] = INCBIN_U8("graphics/pokemon/back_pics/chinchou_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Chinchou[] = INCBIN_U8("graphics/pokemon/palettes/chinchou_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Chinchou[] = INCBIN_U8("graphics/pokemon/icons/chinchou_icon.4bpp"); +const u8 gMonFootprint_Chinchou[] = INCBIN_U8("graphics/pokemon/footprints/chinchou_footprint.1bpp"); + +const u8 gMonStillFrontPic_Lanturn[] = INCBIN_U8("graphics/pokemon/front_pics/lanturn_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Lanturn[] = INCBIN_U8("graphics/pokemon/palettes/lanturn_palette.gbapal.lz"); +const u8 gMonBackPic_Lanturn[] = INCBIN_U8("graphics/pokemon/back_pics/lanturn_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Lanturn[] = INCBIN_U8("graphics/pokemon/palettes/lanturn_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Lanturn[] = INCBIN_U8("graphics/pokemon/icons/lanturn_icon.4bpp"); +const u8 gMonFootprint_Lanturn[] = INCBIN_U8("graphics/pokemon/footprints/lanturn_footprint.1bpp"); + +const u8 gMonStillFrontPic_Pichu[] = INCBIN_U8("graphics/pokemon/front_pics/pichu_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Pichu[] = INCBIN_U8("graphics/pokemon/palettes/pichu_palette.gbapal.lz"); +const u8 gMonBackPic_Pichu[] = INCBIN_U8("graphics/pokemon/back_pics/pichu_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Pichu[] = INCBIN_U8("graphics/pokemon/palettes/pichu_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Pichu[] = INCBIN_U8("graphics/pokemon/icons/pichu_icon.4bpp"); +const u8 gMonFootprint_Pichu[] = INCBIN_U8("graphics/pokemon/footprints/pichu_footprint.1bpp"); + +const u8 gMonStillFrontPic_Cleffa[] = INCBIN_U8("graphics/pokemon/front_pics/cleffa_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Cleffa[] = INCBIN_U8("graphics/pokemon/palettes/cleffa_palette.gbapal.lz"); +const u8 gMonBackPic_Cleffa[] = INCBIN_U8("graphics/pokemon/back_pics/cleffa_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Cleffa[] = INCBIN_U8("graphics/pokemon/palettes/cleffa_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Cleffa[] = INCBIN_U8("graphics/pokemon/icons/cleffa_icon.4bpp"); +const u8 gMonFootprint_Cleffa[] = INCBIN_U8("graphics/pokemon/footprints/cleffa_footprint.1bpp"); + +const u8 gMonStillFrontPic_Igglybuff[] = INCBIN_U8("graphics/pokemon/front_pics/igglybuff_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Igglybuff[] = INCBIN_U8("graphics/pokemon/palettes/igglybuff_palette.gbapal.lz"); +const u8 gMonBackPic_Igglybuff[] = INCBIN_U8("graphics/pokemon/back_pics/igglybuff_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Igglybuff[] = INCBIN_U8("graphics/pokemon/palettes/igglybuff_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Igglybuff[] = INCBIN_U8("graphics/pokemon/icons/igglybuff_icon.4bpp"); +const u8 gMonFootprint_Igglybuff[] = INCBIN_U8("graphics/pokemon/footprints/igglybuff_footprint.1bpp"); + +const u8 gMonStillFrontPic_Togepi[] = INCBIN_U8("graphics/pokemon/front_pics/togepi_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Togepi[] = INCBIN_U8("graphics/pokemon/palettes/togepi_palette.gbapal.lz"); +const u8 gMonBackPic_Togepi[] = INCBIN_U8("graphics/pokemon/back_pics/togepi_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Togepi[] = INCBIN_U8("graphics/pokemon/palettes/togepi_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Togepi[] = INCBIN_U8("graphics/pokemon/icons/togepi_icon.4bpp"); +const u8 gMonFootprint_Togepi[] = INCBIN_U8("graphics/pokemon/footprints/togepi_footprint.1bpp"); + +const u8 gMonStillFrontPic_Togetic[] = INCBIN_U8("graphics/pokemon/front_pics/togetic_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Togetic[] = INCBIN_U8("graphics/pokemon/palettes/togetic_palette.gbapal.lz"); +const u8 gMonBackPic_Togetic[] = INCBIN_U8("graphics/pokemon/back_pics/togetic_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Togetic[] = INCBIN_U8("graphics/pokemon/palettes/togetic_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Togetic[] = INCBIN_U8("graphics/pokemon/icons/togetic_icon.4bpp"); +const u8 gMonFootprint_Togetic[] = INCBIN_U8("graphics/pokemon/footprints/togetic_footprint.1bpp"); + +const u8 gMonStillFrontPic_Natu[] = INCBIN_U8("graphics/pokemon/front_pics/natu_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Natu[] = INCBIN_U8("graphics/pokemon/palettes/natu_palette.gbapal.lz"); +const u8 gMonBackPic_Natu[] = INCBIN_U8("graphics/pokemon/back_pics/natu_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Natu[] = INCBIN_U8("graphics/pokemon/palettes/natu_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Natu[] = INCBIN_U8("graphics/pokemon/icons/natu_icon.4bpp"); +const u8 gMonFootprint_Natu[] = INCBIN_U8("graphics/pokemon/footprints/natu_footprint.1bpp"); + +const u8 gMonStillFrontPic_Xatu[] = INCBIN_U8("graphics/pokemon/front_pics/xatu_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Xatu[] = INCBIN_U8("graphics/pokemon/palettes/xatu_palette.gbapal.lz"); +const u8 gMonBackPic_Xatu[] = INCBIN_U8("graphics/pokemon/back_pics/xatu_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Xatu[] = INCBIN_U8("graphics/pokemon/palettes/xatu_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Xatu[] = INCBIN_U8("graphics/pokemon/icons/xatu_icon.4bpp"); +const u8 gMonFootprint_Xatu[] = INCBIN_U8("graphics/pokemon/footprints/xatu_footprint.1bpp"); + +const u8 gMonStillFrontPic_Mareep[] = INCBIN_U8("graphics/pokemon/front_pics/mareep_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Mareep[] = INCBIN_U8("graphics/pokemon/palettes/mareep_palette.gbapal.lz"); +const u8 gMonBackPic_Mareep[] = INCBIN_U8("graphics/pokemon/back_pics/mareep_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Mareep[] = INCBIN_U8("graphics/pokemon/palettes/mareep_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Mareep[] = INCBIN_U8("graphics/pokemon/icons/mareep_icon.4bpp"); +const u8 gMonFootprint_Mareep[] = INCBIN_U8("graphics/pokemon/footprints/mareep_footprint.1bpp"); + +const u8 gMonStillFrontPic_Flaaffy[] = INCBIN_U8("graphics/pokemon/front_pics/flaaffy_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Flaaffy[] = INCBIN_U8("graphics/pokemon/palettes/flaaffy_palette.gbapal.lz"); +const u8 gMonBackPic_Flaaffy[] = INCBIN_U8("graphics/pokemon/back_pics/flaaffy_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Flaaffy[] = INCBIN_U8("graphics/pokemon/palettes/flaaffy_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Flaaffy[] = INCBIN_U8("graphics/pokemon/icons/flaaffy_icon.4bpp"); +const u8 gMonFootprint_Flaaffy[] = INCBIN_U8("graphics/pokemon/footprints/flaaffy_footprint.1bpp"); + +const u8 gMonStillFrontPic_Ampharos[] = INCBIN_U8("graphics/pokemon/front_pics/ampharos_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ampharos[] = INCBIN_U8("graphics/pokemon/palettes/ampharos_palette.gbapal.lz"); +const u8 gMonBackPic_Ampharos[] = INCBIN_U8("graphics/pokemon/back_pics/ampharos_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ampharos[] = INCBIN_U8("graphics/pokemon/palettes/ampharos_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ampharos[] = INCBIN_U8("graphics/pokemon/icons/ampharos_icon.4bpp"); +const u8 gMonFootprint_Ampharos[] = INCBIN_U8("graphics/pokemon/footprints/ampharos_footprint.1bpp"); + +const u8 gMonStillFrontPic_Bellossom[] = INCBIN_U8("graphics/pokemon/front_pics/bellossom_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Bellossom[] = INCBIN_U8("graphics/pokemon/palettes/bellossom_palette.gbapal.lz"); +const u8 gMonBackPic_Bellossom[] = INCBIN_U8("graphics/pokemon/back_pics/bellossom_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Bellossom[] = INCBIN_U8("graphics/pokemon/palettes/bellossom_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Bellossom[] = INCBIN_U8("graphics/pokemon/icons/bellossom_icon.4bpp"); +const u8 gMonFootprint_Bellossom[] = INCBIN_U8("graphics/pokemon/footprints/bellossom_footprint.1bpp"); + +const u8 gMonStillFrontPic_Marill[] = INCBIN_U8("graphics/pokemon/front_pics/marill_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Marill[] = INCBIN_U8("graphics/pokemon/palettes/marill_palette.gbapal.lz"); +const u8 gMonBackPic_Marill[] = INCBIN_U8("graphics/pokemon/back_pics/marill_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Marill[] = INCBIN_U8("graphics/pokemon/palettes/marill_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Marill[] = INCBIN_U8("graphics/pokemon/icons/marill_icon.4bpp"); +const u8 gMonFootprint_Marill[] = INCBIN_U8("graphics/pokemon/footprints/marill_footprint.1bpp"); + +const u8 gMonStillFrontPic_Azumarill[] = INCBIN_U8("graphics/pokemon/front_pics/azumarill_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Azumarill[] = INCBIN_U8("graphics/pokemon/palettes/azumarill_palette.gbapal.lz"); +const u8 gMonBackPic_Azumarill[] = INCBIN_U8("graphics/pokemon/back_pics/azumarill_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Azumarill[] = INCBIN_U8("graphics/pokemon/palettes/azumarill_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Azumarill[] = INCBIN_U8("graphics/pokemon/icons/azumarill_icon.4bpp"); +const u8 gMonFootprint_Azumarill[] = INCBIN_U8("graphics/pokemon/footprints/azumarill_footprint.1bpp"); + +const u8 gMonStillFrontPic_Sudowoodo[] = INCBIN_U8("graphics/pokemon/front_pics/sudowoodo_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Sudowoodo[] = INCBIN_U8("graphics/pokemon/palettes/sudowoodo_palette.gbapal.lz"); +const u8 gMonBackPic_Sudowoodo[] = INCBIN_U8("graphics/pokemon/back_pics/sudowoodo_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Sudowoodo[] = INCBIN_U8("graphics/pokemon/palettes/sudowoodo_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Sudowoodo[] = INCBIN_U8("graphics/pokemon/icons/sudowoodo_icon.4bpp"); +const u8 gMonFootprint_Sudowoodo[] = INCBIN_U8("graphics/pokemon/footprints/sudowoodo_footprint.1bpp"); + +const u8 gMonStillFrontPic_Politoed[] = INCBIN_U8("graphics/pokemon/front_pics/politoed_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Politoed[] = INCBIN_U8("graphics/pokemon/palettes/politoed_palette.gbapal.lz"); +const u8 gMonBackPic_Politoed[] = INCBIN_U8("graphics/pokemon/back_pics/politoed_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Politoed[] = INCBIN_U8("graphics/pokemon/palettes/politoed_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Politoed[] = INCBIN_U8("graphics/pokemon/icons/politoed_icon.4bpp"); +const u8 gMonFootprint_Politoed[] = INCBIN_U8("graphics/pokemon/footprints/politoed_footprint.1bpp"); + +const u8 gMonStillFrontPic_Hoppip[] = INCBIN_U8("graphics/pokemon/front_pics/hoppip_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Hoppip[] = INCBIN_U8("graphics/pokemon/palettes/hoppip_palette.gbapal.lz"); +const u8 gMonBackPic_Hoppip[] = INCBIN_U8("graphics/pokemon/back_pics/hoppip_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Hoppip[] = INCBIN_U8("graphics/pokemon/palettes/hoppip_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Hoppip[] = INCBIN_U8("graphics/pokemon/icons/hoppip_icon.4bpp"); +const u8 gMonFootprint_Hoppip[] = INCBIN_U8("graphics/pokemon/footprints/hoppip_footprint.1bpp"); + +const u8 gMonStillFrontPic_Skiploom[] = INCBIN_U8("graphics/pokemon/front_pics/skiploom_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Skiploom[] = INCBIN_U8("graphics/pokemon/palettes/skiploom_palette.gbapal.lz"); +const u8 gMonBackPic_Skiploom[] = INCBIN_U8("graphics/pokemon/back_pics/skiploom_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Skiploom[] = INCBIN_U8("graphics/pokemon/palettes/skiploom_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Skiploom[] = INCBIN_U8("graphics/pokemon/icons/skiploom_icon.4bpp"); +const u8 gMonFootprint_Skiploom[] = INCBIN_U8("graphics/pokemon/footprints/skiploom_footprint.1bpp"); + +const u8 gMonStillFrontPic_Jumpluff[] = INCBIN_U8("graphics/pokemon/front_pics/jumpluff_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Jumpluff[] = INCBIN_U8("graphics/pokemon/palettes/jumpluff_palette.gbapal.lz"); +const u8 gMonBackPic_Jumpluff[] = INCBIN_U8("graphics/pokemon/back_pics/jumpluff_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Jumpluff[] = INCBIN_U8("graphics/pokemon/palettes/jumpluff_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Jumpluff[] = INCBIN_U8("graphics/pokemon/icons/jumpluff_icon.4bpp"); +const u8 gMonFootprint_Jumpluff[] = INCBIN_U8("graphics/pokemon/footprints/jumpluff_footprint.1bpp"); + +const u8 gMonStillFrontPic_Aipom[] = INCBIN_U8("graphics/pokemon/front_pics/aipom_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Aipom[] = INCBIN_U8("graphics/pokemon/palettes/aipom_palette.gbapal.lz"); +const u8 gMonBackPic_Aipom[] = INCBIN_U8("graphics/pokemon/back_pics/aipom_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Aipom[] = INCBIN_U8("graphics/pokemon/palettes/aipom_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Aipom[] = INCBIN_U8("graphics/pokemon/icons/aipom_icon.4bpp"); +const u8 gMonFootprint_Aipom[] = INCBIN_U8("graphics/pokemon/footprints/aipom_footprint.1bpp"); + +const u8 gMonStillFrontPic_Sunkern[] = INCBIN_U8("graphics/pokemon/front_pics/sunkern_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Sunkern[] = INCBIN_U8("graphics/pokemon/palettes/sunkern_palette.gbapal.lz"); +const u8 gMonBackPic_Sunkern[] = INCBIN_U8("graphics/pokemon/back_pics/sunkern_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Sunkern[] = INCBIN_U8("graphics/pokemon/palettes/sunkern_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Sunkern[] = INCBIN_U8("graphics/pokemon/icons/sunkern_icon.4bpp"); +const u8 gMonFootprint_Sunkern[] = INCBIN_U8("graphics/pokemon/footprints/sunkern_footprint.1bpp"); + +const u8 gMonStillFrontPic_Sunflora[] = INCBIN_U8("graphics/pokemon/front_pics/sunflora_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Sunflora[] = INCBIN_U8("graphics/pokemon/palettes/sunflora_palette.gbapal.lz"); +const u8 gMonBackPic_Sunflora[] = INCBIN_U8("graphics/pokemon/back_pics/sunflora_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Sunflora[] = INCBIN_U8("graphics/pokemon/palettes/sunflora_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Sunflora[] = INCBIN_U8("graphics/pokemon/icons/sunflora_icon.4bpp"); +const u8 gMonFootprint_Sunflora[] = INCBIN_U8("graphics/pokemon/footprints/sunflora_footprint.1bpp"); + +const u8 gMonStillFrontPic_Yanma[] = INCBIN_U8("graphics/pokemon/front_pics/yanma_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Yanma[] = INCBIN_U8("graphics/pokemon/palettes/yanma_palette.gbapal.lz"); +const u8 gMonBackPic_Yanma[] = INCBIN_U8("graphics/pokemon/back_pics/yanma_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Yanma[] = INCBIN_U8("graphics/pokemon/palettes/yanma_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Yanma[] = INCBIN_U8("graphics/pokemon/icons/yanma_icon.4bpp"); +const u8 gMonFootprint_Yanma[] = INCBIN_U8("graphics/pokemon/footprints/yanma_footprint.1bpp"); + +const u8 gMonStillFrontPic_Wooper[] = INCBIN_U8("graphics/pokemon/front_pics/wooper_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Wooper[] = INCBIN_U8("graphics/pokemon/palettes/wooper_palette.gbapal.lz"); +const u8 gMonBackPic_Wooper[] = INCBIN_U8("graphics/pokemon/back_pics/wooper_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Wooper[] = INCBIN_U8("graphics/pokemon/palettes/wooper_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Wooper[] = INCBIN_U8("graphics/pokemon/icons/wooper_icon.4bpp"); +const u8 gMonFootprint_Wooper[] = INCBIN_U8("graphics/pokemon/footprints/wooper_footprint.1bpp"); + +const u8 gMonStillFrontPic_Quagsire[] = INCBIN_U8("graphics/pokemon/front_pics/quagsire_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Quagsire[] = INCBIN_U8("graphics/pokemon/palettes/quagsire_palette.gbapal.lz"); +const u8 gMonBackPic_Quagsire[] = INCBIN_U8("graphics/pokemon/back_pics/quagsire_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Quagsire[] = INCBIN_U8("graphics/pokemon/palettes/quagsire_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Quagsire[] = INCBIN_U8("graphics/pokemon/icons/quagsire_icon.4bpp"); +const u8 gMonFootprint_Quagsire[] = INCBIN_U8("graphics/pokemon/footprints/quagsire_footprint.1bpp"); + +const u8 gMonStillFrontPic_Espeon[] = INCBIN_U8("graphics/pokemon/front_pics/espeon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Espeon[] = INCBIN_U8("graphics/pokemon/palettes/espeon_palette.gbapal.lz"); +const u8 gMonBackPic_Espeon[] = INCBIN_U8("graphics/pokemon/back_pics/espeon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Espeon[] = INCBIN_U8("graphics/pokemon/palettes/espeon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Espeon[] = INCBIN_U8("graphics/pokemon/icons/espeon_icon.4bpp"); +const u8 gMonFootprint_Espeon[] = INCBIN_U8("graphics/pokemon/footprints/espeon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Umbreon[] = INCBIN_U8("graphics/pokemon/front_pics/umbreon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Umbreon[] = INCBIN_U8("graphics/pokemon/palettes/umbreon_palette.gbapal.lz"); +const u8 gMonBackPic_Umbreon[] = INCBIN_U8("graphics/pokemon/back_pics/umbreon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Umbreon[] = INCBIN_U8("graphics/pokemon/palettes/umbreon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Umbreon[] = INCBIN_U8("graphics/pokemon/icons/umbreon_icon.4bpp"); +const u8 gMonFootprint_Umbreon[] = INCBIN_U8("graphics/pokemon/footprints/umbreon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Murkrow[] = INCBIN_U8("graphics/pokemon/front_pics/murkrow_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Murkrow[] = INCBIN_U8("graphics/pokemon/palettes/murkrow_palette.gbapal.lz"); +const u8 gMonBackPic_Murkrow[] = INCBIN_U8("graphics/pokemon/back_pics/murkrow_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Murkrow[] = INCBIN_U8("graphics/pokemon/palettes/murkrow_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Murkrow[] = INCBIN_U8("graphics/pokemon/icons/murkrow_icon.4bpp"); +const u8 gMonFootprint_Murkrow[] = INCBIN_U8("graphics/pokemon/footprints/murkrow_footprint.1bpp"); + +const u8 gMonStillFrontPic_Slowking[] = INCBIN_U8("graphics/pokemon/front_pics/slowking_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Slowking[] = INCBIN_U8("graphics/pokemon/palettes/slowking_palette.gbapal.lz"); +const u8 gMonBackPic_Slowking[] = INCBIN_U8("graphics/pokemon/back_pics/slowking_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Slowking[] = INCBIN_U8("graphics/pokemon/palettes/slowking_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Slowking[] = INCBIN_U8("graphics/pokemon/icons/slowking_icon.4bpp"); +const u8 gMonFootprint_Slowking[] = INCBIN_U8("graphics/pokemon/footprints/slowking_footprint.1bpp"); + +const u8 gMonStillFrontPic_Misdreavus[] = INCBIN_U8("graphics/pokemon/front_pics/misdreavus_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Misdreavus[] = INCBIN_U8("graphics/pokemon/palettes/misdreavus_palette.gbapal.lz"); +const u8 gMonBackPic_Misdreavus[] = INCBIN_U8("graphics/pokemon/back_pics/misdreavus_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Misdreavus[] = INCBIN_U8("graphics/pokemon/palettes/misdreavus_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Misdreavus[] = INCBIN_U8("graphics/pokemon/icons/misdreavus_icon.4bpp"); +const u8 gMonFootprint_Misdreavus[] = INCBIN_U8("graphics/pokemon/footprints/misdreavus_footprint.1bpp"); + +const u8 gMonStillFrontPic_UnownA[] = INCBIN_U8("graphics/pokemon/front_pics/unown_a_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Unown[] = INCBIN_U8("graphics/pokemon/palettes/unown_palette.gbapal.lz"); +const u8 gMonBackPic_UnownA[] = INCBIN_U8("graphics/pokemon/back_pics/unown_a_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Unown[] = INCBIN_U8("graphics/pokemon/palettes/unown_shiny_palette.gbapal.lz"); +const u8 gMonIcon_UnownA[] = INCBIN_U8("graphics/pokemon/icons/unown_a_icon.4bpp"); +const u8 gMonFootprint_Unown[] = INCBIN_U8("graphics/pokemon/footprints/unown_footprint.1bpp"); + +const u8 gMonStillFrontPic_Wobbuffet[] = INCBIN_U8("graphics/pokemon/front_pics/wobbuffet_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Wobbuffet[] = INCBIN_U8("graphics/pokemon/palettes/wobbuffet_palette.gbapal.lz"); +const u8 gMonBackPic_Wobbuffet[] = INCBIN_U8("graphics/pokemon/back_pics/wobbuffet_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Wobbuffet[] = INCBIN_U8("graphics/pokemon/palettes/wobbuffet_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Wobbuffet[] = INCBIN_U8("graphics/pokemon/icons/wobbuffet_icon.4bpp"); +const u8 gMonFootprint_Wobbuffet[] = INCBIN_U8("graphics/pokemon/footprints/wobbuffet_footprint.1bpp"); + +const u8 gMonStillFrontPic_Girafarig[] = INCBIN_U8("graphics/pokemon/front_pics/girafarig_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Girafarig[] = INCBIN_U8("graphics/pokemon/palettes/girafarig_palette.gbapal.lz"); +const u8 gMonBackPic_Girafarig[] = INCBIN_U8("graphics/pokemon/back_pics/girafarig_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Girafarig[] = INCBIN_U8("graphics/pokemon/palettes/girafarig_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Girafarig[] = INCBIN_U8("graphics/pokemon/icons/girafarig_icon.4bpp"); +const u8 gMonFootprint_Girafarig[] = INCBIN_U8("graphics/pokemon/footprints/girafarig_footprint.1bpp"); + +const u8 gMonStillFrontPic_Pineco[] = INCBIN_U8("graphics/pokemon/front_pics/pineco_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Pineco[] = INCBIN_U8("graphics/pokemon/palettes/pineco_palette.gbapal.lz"); +const u8 gMonBackPic_Pineco[] = INCBIN_U8("graphics/pokemon/back_pics/pineco_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Pineco[] = INCBIN_U8("graphics/pokemon/palettes/pineco_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Pineco[] = INCBIN_U8("graphics/pokemon/icons/pineco_icon.4bpp"); +const u8 gMonFootprint_Pineco[] = INCBIN_U8("graphics/pokemon/footprints/pineco_footprint.1bpp"); + +const u8 gMonStillFrontPic_Forretress[] = INCBIN_U8("graphics/pokemon/front_pics/forretress_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Forretress[] = INCBIN_U8("graphics/pokemon/palettes/forretress_palette.gbapal.lz"); +const u8 gMonBackPic_Forretress[] = INCBIN_U8("graphics/pokemon/back_pics/forretress_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Forretress[] = INCBIN_U8("graphics/pokemon/palettes/forretress_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Forretress[] = INCBIN_U8("graphics/pokemon/icons/forretress_icon.4bpp"); +const u8 gMonFootprint_Forretress[] = INCBIN_U8("graphics/pokemon/footprints/forretress_footprint.1bpp"); + +const u8 gMonStillFrontPic_Dunsparce[] = INCBIN_U8("graphics/pokemon/front_pics/dunsparce_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Dunsparce[] = INCBIN_U8("graphics/pokemon/palettes/dunsparce_palette.gbapal.lz"); +const u8 gMonBackPic_Dunsparce[] = INCBIN_U8("graphics/pokemon/back_pics/dunsparce_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Dunsparce[] = INCBIN_U8("graphics/pokemon/palettes/dunsparce_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Dunsparce[] = INCBIN_U8("graphics/pokemon/icons/dunsparce_icon.4bpp"); +const u8 gMonFootprint_Dunsparce[] = INCBIN_U8("graphics/pokemon/footprints/dunsparce_footprint.1bpp"); + +const u8 gMonStillFrontPic_Gligar[] = INCBIN_U8("graphics/pokemon/front_pics/gligar_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Gligar[] = INCBIN_U8("graphics/pokemon/palettes/gligar_palette.gbapal.lz"); +const u8 gMonBackPic_Gligar[] = INCBIN_U8("graphics/pokemon/back_pics/gligar_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Gligar[] = INCBIN_U8("graphics/pokemon/palettes/gligar_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Gligar[] = INCBIN_U8("graphics/pokemon/icons/gligar_icon.4bpp"); +const u8 gMonFootprint_Gligar[] = INCBIN_U8("graphics/pokemon/footprints/gligar_footprint.1bpp"); + +const u8 gMonStillFrontPic_Steelix[] = INCBIN_U8("graphics/pokemon/front_pics/steelix_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Steelix[] = INCBIN_U8("graphics/pokemon/palettes/steelix_palette.gbapal.lz"); +const u8 gMonBackPic_Steelix[] = INCBIN_U8("graphics/pokemon/back_pics/steelix_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Steelix[] = INCBIN_U8("graphics/pokemon/palettes/steelix_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Steelix[] = INCBIN_U8("graphics/pokemon/icons/steelix_icon.4bpp"); +const u8 gMonFootprint_Steelix[] = INCBIN_U8("graphics/pokemon/footprints/steelix_footprint.1bpp"); + +const u8 gMonStillFrontPic_Snubbull[] = INCBIN_U8("graphics/pokemon/front_pics/snubbull_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Snubbull[] = INCBIN_U8("graphics/pokemon/palettes/snubbull_palette.gbapal.lz"); +const u8 gMonBackPic_Snubbull[] = INCBIN_U8("graphics/pokemon/back_pics/snubbull_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Snubbull[] = INCBIN_U8("graphics/pokemon/palettes/snubbull_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Snubbull[] = INCBIN_U8("graphics/pokemon/icons/snubbull_icon.4bpp"); +const u8 gMonFootprint_Snubbull[] = INCBIN_U8("graphics/pokemon/footprints/snubbull_footprint.1bpp"); + +const u8 gMonStillFrontPic_Granbull[] = INCBIN_U8("graphics/pokemon/front_pics/granbull_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Granbull[] = INCBIN_U8("graphics/pokemon/palettes/granbull_palette.gbapal.lz"); +const u8 gMonBackPic_Granbull[] = INCBIN_U8("graphics/pokemon/back_pics/granbull_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Granbull[] = INCBIN_U8("graphics/pokemon/palettes/granbull_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Granbull[] = INCBIN_U8("graphics/pokemon/icons/granbull_icon.4bpp"); +const u8 gMonFootprint_Granbull[] = INCBIN_U8("graphics/pokemon/footprints/granbull_footprint.1bpp"); + +const u8 gMonStillFrontPic_Qwilfish[] = INCBIN_U8("graphics/pokemon/front_pics/qwilfish_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Qwilfish[] = INCBIN_U8("graphics/pokemon/palettes/qwilfish_palette.gbapal.lz"); +const u8 gMonBackPic_Qwilfish[] = INCBIN_U8("graphics/pokemon/back_pics/qwilfish_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Qwilfish[] = INCBIN_U8("graphics/pokemon/palettes/qwilfish_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Qwilfish[] = INCBIN_U8("graphics/pokemon/icons/qwilfish_icon.4bpp"); +const u8 gMonFootprint_Qwilfish[] = INCBIN_U8("graphics/pokemon/footprints/qwilfish_footprint.1bpp"); + +const u8 gMonStillFrontPic_Scizor[] = INCBIN_U8("graphics/pokemon/front_pics/scizor_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Scizor[] = INCBIN_U8("graphics/pokemon/palettes/scizor_palette.gbapal.lz"); +const u8 gMonBackPic_Scizor[] = INCBIN_U8("graphics/pokemon/back_pics/scizor_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Scizor[] = INCBIN_U8("graphics/pokemon/palettes/scizor_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Scizor[] = INCBIN_U8("graphics/pokemon/icons/scizor_icon.4bpp"); +const u8 gMonFootprint_Scizor[] = INCBIN_U8("graphics/pokemon/footprints/scizor_footprint.1bpp"); + +const u8 gMonStillFrontPic_Shuckle[] = INCBIN_U8("graphics/pokemon/front_pics/shuckle_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Shuckle[] = INCBIN_U8("graphics/pokemon/palettes/shuckle_palette.gbapal.lz"); +const u8 gMonBackPic_Shuckle[] = INCBIN_U8("graphics/pokemon/back_pics/shuckle_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Shuckle[] = INCBIN_U8("graphics/pokemon/palettes/shuckle_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Shuckle[] = INCBIN_U8("graphics/pokemon/icons/shuckle_icon.4bpp"); +const u8 gMonFootprint_Shuckle[] = INCBIN_U8("graphics/pokemon/footprints/shuckle_footprint.1bpp"); + +const u8 gMonStillFrontPic_Heracross[] = INCBIN_U8("graphics/pokemon/front_pics/heracross_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Heracross[] = INCBIN_U8("graphics/pokemon/palettes/heracross_palette.gbapal.lz"); +const u8 gMonBackPic_Heracross[] = INCBIN_U8("graphics/pokemon/back_pics/heracross_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Heracross[] = INCBIN_U8("graphics/pokemon/palettes/heracross_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Heracross[] = INCBIN_U8("graphics/pokemon/icons/heracross_icon.4bpp"); +const u8 gMonFootprint_Heracross[] = INCBIN_U8("graphics/pokemon/footprints/heracross_footprint.1bpp"); + +const u8 gMonStillFrontPic_Sneasel[] = INCBIN_U8("graphics/pokemon/front_pics/sneasel_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Sneasel[] = INCBIN_U8("graphics/pokemon/palettes/sneasel_palette.gbapal.lz"); +const u8 gMonBackPic_Sneasel[] = INCBIN_U8("graphics/pokemon/back_pics/sneasel_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Sneasel[] = INCBIN_U8("graphics/pokemon/palettes/sneasel_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Sneasel[] = INCBIN_U8("graphics/pokemon/icons/sneasel_icon.4bpp"); +const u8 gMonFootprint_Sneasel[] = INCBIN_U8("graphics/pokemon/footprints/sneasel_footprint.1bpp"); + +const u8 gMonStillFrontPic_Teddiursa[] = INCBIN_U8("graphics/pokemon/front_pics/teddiursa_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Teddiursa[] = INCBIN_U8("graphics/pokemon/palettes/teddiursa_palette.gbapal.lz"); +const u8 gMonBackPic_Teddiursa[] = INCBIN_U8("graphics/pokemon/back_pics/teddiursa_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Teddiursa[] = INCBIN_U8("graphics/pokemon/palettes/teddiursa_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Teddiursa[] = INCBIN_U8("graphics/pokemon/icons/teddiursa_icon.4bpp"); +const u8 gMonFootprint_Teddiursa[] = INCBIN_U8("graphics/pokemon/footprints/teddiursa_footprint.1bpp"); +const u8 gMonStillFrontPic_Ursaring[] = INCBIN_U8("graphics/pokemon/front_pics/ursaring_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ursaring[] = INCBIN_U8("graphics/pokemon/palettes/ursaring_palette.gbapal.lz"); +const u8 gMonBackPic_Ursaring[] = INCBIN_U8("graphics/pokemon/back_pics/ursaring_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ursaring[] = INCBIN_U8("graphics/pokemon/palettes/ursaring_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ursaring[] = INCBIN_U8("graphics/pokemon/icons/ursaring_icon.4bpp"); +const u8 gMonFootprint_Ursaring[] = INCBIN_U8("graphics/pokemon/footprints/ursaring_footprint.1bpp"); + +const u8 gMonStillFrontPic_Slugma[] = INCBIN_U8("graphics/pokemon/front_pics/slugma_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Slugma[] = INCBIN_U8("graphics/pokemon/palettes/slugma_palette.gbapal.lz"); +const u8 gMonBackPic_Slugma[] = INCBIN_U8("graphics/pokemon/back_pics/slugma_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Slugma[] = INCBIN_U8("graphics/pokemon/palettes/slugma_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Slugma[] = INCBIN_U8("graphics/pokemon/icons/slugma_icon.4bpp"); +const u8 gMonFootprint_Slugma[] = INCBIN_U8("graphics/pokemon/footprints/slugma_footprint.1bpp"); + +const u8 gMonStillFrontPic_Magcargo[] = INCBIN_U8("graphics/pokemon/front_pics/magcargo_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Magcargo[] = INCBIN_U8("graphics/pokemon/palettes/magcargo_palette.gbapal.lz"); +const u8 gMonBackPic_Magcargo[] = INCBIN_U8("graphics/pokemon/back_pics/magcargo_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Magcargo[] = INCBIN_U8("graphics/pokemon/palettes/magcargo_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Magcargo[] = INCBIN_U8("graphics/pokemon/icons/magcargo_icon.4bpp"); +const u8 gMonFootprint_Magcargo[] = INCBIN_U8("graphics/pokemon/footprints/magcargo_footprint.1bpp"); + +const u8 gMonStillFrontPic_Swinub[] = INCBIN_U8("graphics/pokemon/front_pics/swinub_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Swinub[] = INCBIN_U8("graphics/pokemon/palettes/swinub_palette.gbapal.lz"); +const u8 gMonBackPic_Swinub[] = INCBIN_U8("graphics/pokemon/back_pics/swinub_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Swinub[] = INCBIN_U8("graphics/pokemon/palettes/swinub_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Swinub[] = INCBIN_U8("graphics/pokemon/icons/swinub_icon.4bpp"); +const u8 gMonFootprint_Swinub[] = INCBIN_U8("graphics/pokemon/footprints/swinub_footprint.1bpp"); + +const u8 gMonStillFrontPic_Piloswine[] = INCBIN_U8("graphics/pokemon/front_pics/piloswine_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Piloswine[] = INCBIN_U8("graphics/pokemon/palettes/piloswine_palette.gbapal.lz"); +const u8 gMonBackPic_Piloswine[] = INCBIN_U8("graphics/pokemon/back_pics/piloswine_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Piloswine[] = INCBIN_U8("graphics/pokemon/palettes/piloswine_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Piloswine[] = INCBIN_U8("graphics/pokemon/icons/piloswine_icon.4bpp"); +const u8 gMonFootprint_Piloswine[] = INCBIN_U8("graphics/pokemon/footprints/piloswine_footprint.1bpp"); + +const u8 gMonStillFrontPic_Corsola[] = INCBIN_U8("graphics/pokemon/front_pics/corsola_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Corsola[] = INCBIN_U8("graphics/pokemon/palettes/corsola_palette.gbapal.lz"); +const u8 gMonBackPic_Corsola[] = INCBIN_U8("graphics/pokemon/back_pics/corsola_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Corsola[] = INCBIN_U8("graphics/pokemon/palettes/corsola_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Corsola[] = INCBIN_U8("graphics/pokemon/icons/corsola_icon.4bpp"); +const u8 gMonFootprint_Corsola[] = INCBIN_U8("graphics/pokemon/footprints/corsola_footprint.1bpp"); + +const u8 gMonStillFrontPic_Remoraid[] = INCBIN_U8("graphics/pokemon/front_pics/remoraid_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Remoraid[] = INCBIN_U8("graphics/pokemon/palettes/remoraid_palette.gbapal.lz"); +const u8 gMonBackPic_Remoraid[] = INCBIN_U8("graphics/pokemon/back_pics/remoraid_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Remoraid[] = INCBIN_U8("graphics/pokemon/palettes/remoraid_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Remoraid[] = INCBIN_U8("graphics/pokemon/icons/remoraid_icon.4bpp"); +const u8 gMonFootprint_Remoraid[] = INCBIN_U8("graphics/pokemon/footprints/remoraid_footprint.1bpp"); + +const u8 gMonStillFrontPic_Octillery[] = INCBIN_U8("graphics/pokemon/front_pics/octillery_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Octillery[] = INCBIN_U8("graphics/pokemon/palettes/octillery_palette.gbapal.lz"); +const u8 gMonBackPic_Octillery[] = INCBIN_U8("graphics/pokemon/back_pics/octillery_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Octillery[] = INCBIN_U8("graphics/pokemon/palettes/octillery_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Octillery[] = INCBIN_U8("graphics/pokemon/icons/octillery_icon.4bpp"); +const u8 gMonFootprint_Octillery[] = INCBIN_U8("graphics/pokemon/footprints/octillery_footprint.1bpp"); + +const u8 gMonStillFrontPic_Delibird[] = INCBIN_U8("graphics/pokemon/front_pics/delibird_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Delibird[] = INCBIN_U8("graphics/pokemon/palettes/delibird_palette.gbapal.lz"); +const u8 gMonBackPic_Delibird[] = INCBIN_U8("graphics/pokemon/back_pics/delibird_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Delibird[] = INCBIN_U8("graphics/pokemon/palettes/delibird_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Delibird[] = INCBIN_U8("graphics/pokemon/icons/delibird_icon.4bpp"); +const u8 gMonFootprint_Delibird[] = INCBIN_U8("graphics/pokemon/footprints/delibird_footprint.1bpp"); + +const u8 gMonStillFrontPic_Mantine[] = INCBIN_U8("graphics/pokemon/front_pics/mantine_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Mantine[] = INCBIN_U8("graphics/pokemon/palettes/mantine_palette.gbapal.lz"); +const u8 gMonBackPic_Mantine[] = INCBIN_U8("graphics/pokemon/back_pics/mantine_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Mantine[] = INCBIN_U8("graphics/pokemon/palettes/mantine_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Mantine[] = INCBIN_U8("graphics/pokemon/icons/mantine_icon.4bpp"); +const u8 gMonFootprint_Mantine[] = INCBIN_U8("graphics/pokemon/footprints/mantine_footprint.1bpp"); + +const u8 gMonStillFrontPic_Skarmory[] = INCBIN_U8("graphics/pokemon/front_pics/skarmory_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Skarmory[] = INCBIN_U8("graphics/pokemon/palettes/skarmory_palette.gbapal.lz"); +const u8 gMonBackPic_Skarmory[] = INCBIN_U8("graphics/pokemon/back_pics/skarmory_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Skarmory[] = INCBIN_U8("graphics/pokemon/palettes/skarmory_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Skarmory[] = INCBIN_U8("graphics/pokemon/icons/skarmory_icon.4bpp"); +const u8 gMonFootprint_Skarmory[] = INCBIN_U8("graphics/pokemon/footprints/skarmory_footprint.1bpp"); + +const u8 gMonStillFrontPic_Houndour[] = INCBIN_U8("graphics/pokemon/front_pics/houndour_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Houndour[] = INCBIN_U8("graphics/pokemon/palettes/houndour_palette.gbapal.lz"); +const u8 gMonBackPic_Houndour[] = INCBIN_U8("graphics/pokemon/back_pics/houndour_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Houndour[] = INCBIN_U8("graphics/pokemon/palettes/houndour_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Houndour[] = INCBIN_U8("graphics/pokemon/icons/houndour_icon.4bpp"); +const u8 gMonFootprint_Houndour[] = INCBIN_U8("graphics/pokemon/footprints/houndour_footprint.1bpp"); + +const u8 gMonStillFrontPic_Houndoom[] = INCBIN_U8("graphics/pokemon/front_pics/houndoom_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Houndoom[] = INCBIN_U8("graphics/pokemon/palettes/houndoom_palette.gbapal.lz"); +const u8 gMonBackPic_Houndoom[] = INCBIN_U8("graphics/pokemon/back_pics/houndoom_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Houndoom[] = INCBIN_U8("graphics/pokemon/palettes/houndoom_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Houndoom[] = INCBIN_U8("graphics/pokemon/icons/houndoom_icon.4bpp"); +const u8 gMonFootprint_Houndoom[] = INCBIN_U8("graphics/pokemon/footprints/houndoom_footprint.1bpp"); + +const u8 gMonStillFrontPic_Kingdra[] = INCBIN_U8("graphics/pokemon/front_pics/kingdra_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Kingdra[] = INCBIN_U8("graphics/pokemon/palettes/kingdra_palette.gbapal.lz"); +const u8 gMonBackPic_Kingdra[] = INCBIN_U8("graphics/pokemon/back_pics/kingdra_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Kingdra[] = INCBIN_U8("graphics/pokemon/palettes/kingdra_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Kingdra[] = INCBIN_U8("graphics/pokemon/icons/kingdra_icon.4bpp"); +const u8 gMonFootprint_Kingdra[] = INCBIN_U8("graphics/pokemon/footprints/kingdra_footprint.1bpp"); + +const u8 gMonStillFrontPic_Phanpy[] = INCBIN_U8("graphics/pokemon/front_pics/phanpy_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Phanpy[] = INCBIN_U8("graphics/pokemon/palettes/phanpy_palette.gbapal.lz"); +const u8 gMonBackPic_Phanpy[] = INCBIN_U8("graphics/pokemon/back_pics/phanpy_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Phanpy[] = INCBIN_U8("graphics/pokemon/palettes/phanpy_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Phanpy[] = INCBIN_U8("graphics/pokemon/icons/phanpy_icon.4bpp"); +const u8 gMonFootprint_Phanpy[] = INCBIN_U8("graphics/pokemon/footprints/phanpy_footprint.1bpp"); + +const u8 gMonStillFrontPic_Donphan[] = INCBIN_U8("graphics/pokemon/front_pics/donphan_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Donphan[] = INCBIN_U8("graphics/pokemon/palettes/donphan_palette.gbapal.lz"); +const u8 gMonBackPic_Donphan[] = INCBIN_U8("graphics/pokemon/back_pics/donphan_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Donphan[] = INCBIN_U8("graphics/pokemon/palettes/donphan_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/icons/donphan_icon.4bpp"); +const u8 gMonFootprint_Donphan[] = INCBIN_U8("graphics/pokemon/footprints/donphan_footprint.1bpp"); + +const u8 gMonStillFrontPic_Porygon2[] = INCBIN_U8("graphics/pokemon/front_pics/porygon2_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Porygon2[] = INCBIN_U8("graphics/pokemon/palettes/porygon2_palette.gbapal.lz"); +const u8 gMonBackPic_Porygon2[] = INCBIN_U8("graphics/pokemon/back_pics/porygon2_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Porygon2[] = INCBIN_U8("graphics/pokemon/palettes/porygon2_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/icons/porygon2_icon.4bpp"); +const u8 gMonFootprint_Porygon2[] = INCBIN_U8("graphics/pokemon/footprints/porygon2_footprint.1bpp"); + +const u8 gMonStillFrontPic_Stantler[] = INCBIN_U8("graphics/pokemon/front_pics/stantler_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Stantler[] = INCBIN_U8("graphics/pokemon/palettes/stantler_palette.gbapal.lz"); +const u8 gMonBackPic_Stantler[] = INCBIN_U8("graphics/pokemon/back_pics/stantler_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Stantler[] = INCBIN_U8("graphics/pokemon/palettes/stantler_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Stantler[] = INCBIN_U8("graphics/pokemon/icons/stantler_icon.4bpp"); +const u8 gMonFootprint_Stantler[] = INCBIN_U8("graphics/pokemon/footprints/stantler_footprint.1bpp"); + +const u8 gMonStillFrontPic_Smeargle[] = INCBIN_U8("graphics/pokemon/front_pics/smeargle_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Smeargle[] = INCBIN_U8("graphics/pokemon/palettes/smeargle_palette.gbapal.lz"); +const u8 gMonBackPic_Smeargle[] = INCBIN_U8("graphics/pokemon/back_pics/smeargle_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Smeargle[] = INCBIN_U8("graphics/pokemon/palettes/smeargle_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Smeargle[] = INCBIN_U8("graphics/pokemon/icons/smeargle_icon.4bpp"); +const u8 gMonFootprint_Smeargle[] = INCBIN_U8("graphics/pokemon/footprints/smeargle_footprint.1bpp"); + +const u8 gMonStillFrontPic_Tyrogue[] = INCBIN_U8("graphics/pokemon/front_pics/tyrogue_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Tyrogue[] = INCBIN_U8("graphics/pokemon/palettes/tyrogue_palette.gbapal.lz"); +const u8 gMonBackPic_Tyrogue[] = INCBIN_U8("graphics/pokemon/back_pics/tyrogue_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Tyrogue[] = INCBIN_U8("graphics/pokemon/palettes/tyrogue_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Tyrogue[] = INCBIN_U8("graphics/pokemon/icons/tyrogue_icon.4bpp"); +const u8 gMonFootprint_Tyrogue[] = INCBIN_U8("graphics/pokemon/footprints/tyrogue_footprint.1bpp"); + +const u8 gMonStillFrontPic_Hitmontop[] = INCBIN_U8("graphics/pokemon/front_pics/hitmontop_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Hitmontop[] = INCBIN_U8("graphics/pokemon/palettes/hitmontop_palette.gbapal.lz"); +const u8 gMonBackPic_Hitmontop[] = INCBIN_U8("graphics/pokemon/back_pics/hitmontop_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Hitmontop[] = INCBIN_U8("graphics/pokemon/palettes/hitmontop_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Hitmontop[] = INCBIN_U8("graphics/pokemon/icons/hitmontop_icon.4bpp"); +const u8 gMonFootprint_Hitmontop[] = INCBIN_U8("graphics/pokemon/footprints/hitmontop_footprint.1bpp"); + +const u8 gMonStillFrontPic_Smoochum[] = INCBIN_U8("graphics/pokemon/front_pics/smoochum_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Smoochum[] = INCBIN_U8("graphics/pokemon/palettes/smoochum_palette.gbapal.lz"); +const u8 gMonBackPic_Smoochum[] = INCBIN_U8("graphics/pokemon/back_pics/smoochum_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Smoochum[] = INCBIN_U8("graphics/pokemon/palettes/smoochum_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Smoochum[] = INCBIN_U8("graphics/pokemon/icons/smoochum_icon.4bpp"); +const u8 gMonFootprint_Smoochum[] = INCBIN_U8("graphics/pokemon/footprints/smoochum_footprint.1bpp"); + +const u8 gMonStillFrontPic_Elekid[] = INCBIN_U8("graphics/pokemon/front_pics/elekid_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Elekid[] = INCBIN_U8("graphics/pokemon/palettes/elekid_palette.gbapal.lz"); +const u8 gMonBackPic_Elekid[] = INCBIN_U8("graphics/pokemon/back_pics/elekid_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Elekid[] = INCBIN_U8("graphics/pokemon/palettes/elekid_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Elekid[] = INCBIN_U8("graphics/pokemon/icons/elekid_icon.4bpp"); +const u8 gMonFootprint_Elekid[] = INCBIN_U8("graphics/pokemon/footprints/elekid_footprint.1bpp"); + +const u8 gMonStillFrontPic_Magby[] = INCBIN_U8("graphics/pokemon/front_pics/magby_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Magby[] = INCBIN_U8("graphics/pokemon/palettes/magby_palette.gbapal.lz"); +const u8 gMonBackPic_Magby[] = INCBIN_U8("graphics/pokemon/back_pics/magby_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Magby[] = INCBIN_U8("graphics/pokemon/palettes/magby_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Magby[] = INCBIN_U8("graphics/pokemon/icons/magby_icon.4bpp"); +const u8 gMonFootprint_Magby[] = INCBIN_U8("graphics/pokemon/footprints/magby_footprint.1bpp"); + +const u8 gMonStillFrontPic_Miltank[] = INCBIN_U8("graphics/pokemon/front_pics/miltank_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Miltank[] = INCBIN_U8("graphics/pokemon/palettes/miltank_palette.gbapal.lz"); +const u8 gMonBackPic_Miltank[] = INCBIN_U8("graphics/pokemon/back_pics/miltank_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Miltank[] = INCBIN_U8("graphics/pokemon/palettes/miltank_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Miltank[] = INCBIN_U8("graphics/pokemon/icons/miltank_icon.4bpp"); +const u8 gMonFootprint_Miltank[] = INCBIN_U8("graphics/pokemon/footprints/miltank_footprint.1bpp"); + +const u8 gMonStillFrontPic_Blissey[] = INCBIN_U8("graphics/pokemon/front_pics/blissey_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Blissey[] = INCBIN_U8("graphics/pokemon/palettes/blissey_palette.gbapal.lz"); +const u8 gMonBackPic_Blissey[] = INCBIN_U8("graphics/pokemon/back_pics/blissey_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Blissey[] = INCBIN_U8("graphics/pokemon/palettes/blissey_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Blissey[] = INCBIN_U8("graphics/pokemon/icons/blissey_icon.4bpp"); +const u8 gMonFootprint_Blissey[] = INCBIN_U8("graphics/pokemon/footprints/blissey_footprint.1bpp"); + +const u8 gMonStillFrontPic_Raikou[] = INCBIN_U8("graphics/pokemon/front_pics/raikou_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Raikou[] = INCBIN_U8("graphics/pokemon/palettes/raikou_palette.gbapal.lz"); +const u8 gMonBackPic_Raikou[] = INCBIN_U8("graphics/pokemon/back_pics/raikou_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Raikou[] = INCBIN_U8("graphics/pokemon/palettes/raikou_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Raikou[] = INCBIN_U8("graphics/pokemon/icons/raikou_icon.4bpp"); +const u8 gMonFootprint_Raikou[] = INCBIN_U8("graphics/pokemon/footprints/raikou_footprint.1bpp"); + +const u8 gMonStillFrontPic_Entei[] = INCBIN_U8("graphics/pokemon/front_pics/entei_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Entei[] = INCBIN_U8("graphics/pokemon/palettes/entei_palette.gbapal.lz"); +const u8 gMonBackPic_Entei[] = INCBIN_U8("graphics/pokemon/back_pics/entei_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Entei[] = INCBIN_U8("graphics/pokemon/palettes/entei_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Entei[] = INCBIN_U8("graphics/pokemon/icons/entei_icon.4bpp"); +const u8 gMonFootprint_Entei[] = INCBIN_U8("graphics/pokemon/footprints/entei_footprint.1bpp"); + +const u8 gMonStillFrontPic_Suicune[] = INCBIN_U8("graphics/pokemon/front_pics/suicune_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Suicune[] = INCBIN_U8("graphics/pokemon/palettes/suicune_palette.gbapal.lz"); +const u8 gMonBackPic_Suicune[] = INCBIN_U8("graphics/pokemon/back_pics/suicune_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Suicune[] = INCBIN_U8("graphics/pokemon/palettes/suicune_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Suicune[] = INCBIN_U8("graphics/pokemon/icons/suicune_icon.4bpp"); +const u8 gMonFootprint_Suicune[] = INCBIN_U8("graphics/pokemon/footprints/suicune_footprint.1bpp"); + +const u8 gMonStillFrontPic_Larvitar[] = INCBIN_U8("graphics/pokemon/front_pics/larvitar_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Larvitar[] = INCBIN_U8("graphics/pokemon/palettes/larvitar_palette.gbapal.lz"); +const u8 gMonBackPic_Larvitar[] = INCBIN_U8("graphics/pokemon/back_pics/larvitar_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Larvitar[] = INCBIN_U8("graphics/pokemon/palettes/larvitar_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Larvitar[] = INCBIN_U8("graphics/pokemon/icons/larvitar_icon.4bpp"); +const u8 gMonFootprint_Larvitar[] = INCBIN_U8("graphics/pokemon/footprints/larvitar_footprint.1bpp"); + +const u8 gMonStillFrontPic_Pupitar[] = INCBIN_U8("graphics/pokemon/front_pics/pupitar_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Pupitar[] = INCBIN_U8("graphics/pokemon/palettes/pupitar_palette.gbapal.lz"); +const u8 gMonBackPic_Pupitar[] = INCBIN_U8("graphics/pokemon/back_pics/pupitar_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Pupitar[] = INCBIN_U8("graphics/pokemon/palettes/pupitar_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Pupitar[] = INCBIN_U8("graphics/pokemon/icons/pupitar_icon.4bpp"); +const u8 gMonFootprint_Pupitar[] = INCBIN_U8("graphics/pokemon/footprints/pupitar_footprint.1bpp"); + +const u8 gMonStillFrontPic_Tyranitar[] = INCBIN_U8("graphics/pokemon/front_pics/tyranitar_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Tyranitar[] = INCBIN_U8("graphics/pokemon/palettes/tyranitar_palette.gbapal.lz"); +const u8 gMonBackPic_Tyranitar[] = INCBIN_U8("graphics/pokemon/back_pics/tyranitar_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Tyranitar[] = INCBIN_U8("graphics/pokemon/palettes/tyranitar_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Tyranitar[] = INCBIN_U8("graphics/pokemon/icons/tyranitar_icon.4bpp"); +const u8 gMonFootprint_Tyranitar[] = INCBIN_U8("graphics/pokemon/footprints/tyranitar_footprint.1bpp"); + +const u8 gMonStillFrontPic_Lugia[] = INCBIN_U8("graphics/pokemon/front_pics/lugia_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Lugia[] = INCBIN_U8("graphics/pokemon/palettes/lugia_palette.gbapal.lz"); +const u8 gMonBackPic_Lugia[] = INCBIN_U8("graphics/pokemon/back_pics/lugia_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Lugia[] = INCBIN_U8("graphics/pokemon/palettes/lugia_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Lugia[] = INCBIN_U8("graphics/pokemon/icons/lugia_icon.4bpp"); +const u8 gMonFootprint_Lugia[] = INCBIN_U8("graphics/pokemon/footprints/lugia_footprint.1bpp"); + +const u8 gMonStillFrontPic_HoOh[] = INCBIN_U8("graphics/pokemon/front_pics/ho_oh_still_front_pic.4bpp.lz"); +const u8 gMonPalette_HoOh[] = INCBIN_U8("graphics/pokemon/palettes/ho_oh_palette.gbapal.lz"); +const u8 gMonBackPic_HoOh[] = INCBIN_U8("graphics/pokemon/back_pics/ho_oh_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_HoOh[] = INCBIN_U8("graphics/pokemon/palettes/ho_oh_shiny_palette.gbapal.lz"); +const u8 gMonIcon_HoOh[] = INCBIN_U8("graphics/pokemon/icons/ho_oh_icon.4bpp"); +const u8 gMonFootprint_HoOh[] = INCBIN_U8("graphics/pokemon/footprints/ho_oh_footprint.1bpp"); + +const u8 gMonStillFrontPic_Celebi[] = INCBIN_U8("graphics/pokemon/front_pics/celebi_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Celebi[] = INCBIN_U8("graphics/pokemon/palettes/celebi_palette.gbapal.lz"); +const u8 gMonBackPic_Celebi[] = INCBIN_U8("graphics/pokemon/back_pics/celebi_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Celebi[] = INCBIN_U8("graphics/pokemon/palettes/celebi_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Celebi[] = INCBIN_U8("graphics/pokemon/icons/celebi_icon.4bpp"); +const u8 gMonFootprint_Celebi[] = INCBIN_U8("graphics/pokemon/footprints/celebi_footprint.1bpp"); + +const u8 gMonStillFrontPic_DoubleQuestionMark[] = INCBIN_U8("graphics/pokemon/front_pics/double_question_mark_still_front_pic.4bpp.lz"); +const u8 gMonPalette_DoubleQuestionMark[] = INCBIN_U8("graphics/pokemon/palettes/double_question_mark_palette.gbapal.lz"); +const u8 gMonBackPic_DoubleQuestionMark[] = INCBIN_U8("graphics/pokemon/back_pics/double_question_mark_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_DoubleQuestionMark[] = INCBIN_U8("graphics/pokemon/palettes/double_question_mark_shiny_palette.gbapal.lz"); + +const u8 gMonStillFrontPic_Treecko[] = INCBIN_U8("graphics/pokemon/front_pics/treecko_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Treecko[] = INCBIN_U8("graphics/pokemon/palettes/treecko_palette.gbapal.lz"); +const u8 gMonBackPic_Treecko[] = INCBIN_U8("graphics/pokemon/back_pics/treecko_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Treecko[] = INCBIN_U8("graphics/pokemon/palettes/treecko_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Treecko[] = INCBIN_U8("graphics/pokemon/icons/treecko_icon.4bpp"); +const u8 gMonFootprint_Treecko[] = INCBIN_U8("graphics/pokemon/footprints/treecko_footprint.1bpp"); + +const u8 gMonStillFrontPic_Grovyle[] = INCBIN_U8("graphics/pokemon/front_pics/grovyle_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Grovyle[] = INCBIN_U8("graphics/pokemon/palettes/grovyle_palette.gbapal.lz"); +const u8 gMonBackPic_Grovyle[] = INCBIN_U8("graphics/pokemon/back_pics/grovyle_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Grovyle[] = INCBIN_U8("graphics/pokemon/palettes/grovyle_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Grovyle[] = INCBIN_U8("graphics/pokemon/icons/grovyle_icon.4bpp"); +const u8 gMonFootprint_Grovyle[] = INCBIN_U8("graphics/pokemon/footprints/grovyle_footprint.1bpp"); + +const u8 gMonStillFrontPic_Sceptile[] = INCBIN_U8("graphics/pokemon/front_pics/sceptile_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Sceptile[] = INCBIN_U8("graphics/pokemon/palettes/sceptile_palette.gbapal.lz"); +const u8 gMonBackPic_Sceptile[] = INCBIN_U8("graphics/pokemon/back_pics/sceptile_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Sceptile[] = INCBIN_U8("graphics/pokemon/palettes/sceptile_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Sceptile[] = INCBIN_U8("graphics/pokemon/icons/sceptile_icon.4bpp"); +const u8 gMonFootprint_Sceptile[] = INCBIN_U8("graphics/pokemon/footprints/sceptile_footprint.1bpp"); + +const u8 gMonStillFrontPic_Torchic[] = INCBIN_U8("graphics/pokemon/front_pics/torchic_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Torchic[] = INCBIN_U8("graphics/pokemon/palettes/torchic_palette.gbapal.lz"); +const u8 gMonBackPic_Torchic[] = INCBIN_U8("graphics/pokemon/back_pics/torchic_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Torchic[] = INCBIN_U8("graphics/pokemon/palettes/torchic_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Torchic[] = INCBIN_U8("graphics/pokemon/icons/torchic_icon.4bpp"); +const u8 gMonFootprint_Torchic[] = INCBIN_U8("graphics/pokemon/footprints/torchic_footprint.1bpp"); + +const u8 gMonStillFrontPic_Combusken[] = INCBIN_U8("graphics/pokemon/front_pics/combusken_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Combusken[] = INCBIN_U8("graphics/pokemon/palettes/combusken_palette.gbapal.lz"); +const u8 gMonBackPic_Combusken[] = INCBIN_U8("graphics/pokemon/back_pics/combusken_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Combusken[] = INCBIN_U8("graphics/pokemon/palettes/combusken_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Combusken[] = INCBIN_U8("graphics/pokemon/icons/combusken_icon.4bpp"); +const u8 gMonFootprint_Combusken[] = INCBIN_U8("graphics/pokemon/footprints/combusken_footprint.1bpp"); + +const u8 gMonStillFrontPic_Blaziken[] = INCBIN_U8("graphics/pokemon/front_pics/blaziken_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Blaziken[] = INCBIN_U8("graphics/pokemon/palettes/blaziken_palette.gbapal.lz"); +const u8 gMonBackPic_Blaziken[] = INCBIN_U8("graphics/pokemon/back_pics/blaziken_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Blaziken[] = INCBIN_U8("graphics/pokemon/palettes/blaziken_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Blaziken[] = INCBIN_U8("graphics/pokemon/icons/blaziken_icon.4bpp"); +const u8 gMonFootprint_Blaziken[] = INCBIN_U8("graphics/pokemon/footprints/blaziken_footprint.1bpp"); + +const u8 gMonStillFrontPic_Mudkip[] = INCBIN_U8("graphics/pokemon/front_pics/mudkip_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Mudkip[] = INCBIN_U8("graphics/pokemon/palettes/mudkip_palette.gbapal.lz"); +const u8 gMonBackPic_Mudkip[] = INCBIN_U8("graphics/pokemon/back_pics/mudkip_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Mudkip[] = INCBIN_U8("graphics/pokemon/palettes/mudkip_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Mudkip[] = INCBIN_U8("graphics/pokemon/icons/mudkip_icon.4bpp"); +const u8 gMonFootprint_Mudkip[] = INCBIN_U8("graphics/pokemon/footprints/mudkip_footprint.1bpp"); + +const u8 gMonStillFrontPic_Marshtomp[] = INCBIN_U8("graphics/pokemon/front_pics/marshtomp_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Marshtomp[] = INCBIN_U8("graphics/pokemon/palettes/marshtomp_palette.gbapal.lz"); +const u8 gMonBackPic_Marshtomp[] = INCBIN_U8("graphics/pokemon/back_pics/marshtomp_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Marshtomp[] = INCBIN_U8("graphics/pokemon/palettes/marshtomp_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Marshtomp[] = INCBIN_U8("graphics/pokemon/icons/marshtomp_icon.4bpp"); +const u8 gMonFootprint_Marshtomp[] = INCBIN_U8("graphics/pokemon/footprints/marshtomp_footprint.1bpp"); + +const u8 gMonStillFrontPic_Swampert[] = INCBIN_U8("graphics/pokemon/front_pics/swampert_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Swampert[] = INCBIN_U8("graphics/pokemon/palettes/swampert_palette.gbapal.lz"); +const u8 gMonBackPic_Swampert[] = INCBIN_U8("graphics/pokemon/back_pics/swampert_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Swampert[] = INCBIN_U8("graphics/pokemon/palettes/swampert_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Swampert[] = INCBIN_U8("graphics/pokemon/icons/swampert_icon.4bpp"); +const u8 gMonFootprint_Swampert[] = INCBIN_U8("graphics/pokemon/footprints/swampert_footprint.1bpp"); + +const u8 gMonStillFrontPic_Poochyena[] = INCBIN_U8("graphics/pokemon/front_pics/poochyena_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Poochyena[] = INCBIN_U8("graphics/pokemon/palettes/poochyena_palette.gbapal.lz"); +const u8 gMonBackPic_Poochyena[] = INCBIN_U8("graphics/pokemon/back_pics/poochyena_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Poochyena[] = INCBIN_U8("graphics/pokemon/palettes/poochyena_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Poochyena[] = INCBIN_U8("graphics/pokemon/icons/poochyena_icon.4bpp"); +const u8 gMonFootprint_Poochyena[] = INCBIN_U8("graphics/pokemon/footprints/poochyena_footprint.1bpp"); + +const u8 gMonStillFrontPic_Mightyena[] = INCBIN_U8("graphics/pokemon/front_pics/mightyena_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Mightyena[] = INCBIN_U8("graphics/pokemon/palettes/mightyena_palette.gbapal.lz"); +const u8 gMonBackPic_Mightyena[] = INCBIN_U8("graphics/pokemon/back_pics/mightyena_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Mightyena[] = INCBIN_U8("graphics/pokemon/palettes/mightyena_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Mightyena[] = INCBIN_U8("graphics/pokemon/icons/mightyena_icon.4bpp"); +const u8 gMonFootprint_Mightyena[] = INCBIN_U8("graphics/pokemon/footprints/mightyena_footprint.1bpp"); + +const u8 gMonStillFrontPic_Zigzagoon[] = INCBIN_U8("graphics/pokemon/front_pics/zigzagoon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Zigzagoon[] = INCBIN_U8("graphics/pokemon/palettes/zigzagoon_palette.gbapal.lz"); +const u8 gMonBackPic_Zigzagoon[] = INCBIN_U8("graphics/pokemon/back_pics/zigzagoon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Zigzagoon[] = INCBIN_U8("graphics/pokemon/palettes/zigzagoon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Zigzagoon[] = INCBIN_U8("graphics/pokemon/icons/zigzagoon_icon.4bpp"); +const u8 gMonFootprint_Zigzagoon[] = INCBIN_U8("graphics/pokemon/footprints/zigzagoon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Linoone[] = INCBIN_U8("graphics/pokemon/front_pics/linoone_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Linoone[] = INCBIN_U8("graphics/pokemon/palettes/linoone_palette.gbapal.lz"); +const u8 gMonBackPic_Linoone[] = INCBIN_U8("graphics/pokemon/back_pics/linoone_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Linoone[] = INCBIN_U8("graphics/pokemon/palettes/linoone_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Linoone[] = INCBIN_U8("graphics/pokemon/icons/linoone_icon.4bpp"); +const u8 gMonFootprint_Linoone[] = INCBIN_U8("graphics/pokemon/footprints/linoone_footprint.1bpp"); + +const u8 gMonStillFrontPic_Wurmple[] = INCBIN_U8("graphics/pokemon/front_pics/wurmple_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Wurmple[] = INCBIN_U8("graphics/pokemon/palettes/wurmple_palette.gbapal.lz"); +const u8 gMonBackPic_Wurmple[] = INCBIN_U8("graphics/pokemon/back_pics/wurmple_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Wurmple[] = INCBIN_U8("graphics/pokemon/palettes/wurmple_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Wurmple[] = INCBIN_U8("graphics/pokemon/icons/wurmple_icon.4bpp"); +const u8 gMonFootprint_Wurmple[] = INCBIN_U8("graphics/pokemon/footprints/wurmple_footprint.1bpp"); + +const u8 gMonStillFrontPic_Silcoon[] = INCBIN_U8("graphics/pokemon/front_pics/silcoon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Silcoon[] = INCBIN_U8("graphics/pokemon/palettes/silcoon_palette.gbapal.lz"); +const u8 gMonBackPic_Silcoon[] = INCBIN_U8("graphics/pokemon/back_pics/silcoon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Silcoon[] = INCBIN_U8("graphics/pokemon/palettes/silcoon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Silcoon[] = INCBIN_U8("graphics/pokemon/icons/silcoon_icon.4bpp"); +const u8 gMonFootprint_Silcoon[] = INCBIN_U8("graphics/pokemon/footprints/silcoon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Beautifly[] = INCBIN_U8("graphics/pokemon/front_pics/beautifly_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Beautifly[] = INCBIN_U8("graphics/pokemon/palettes/beautifly_palette.gbapal.lz"); +const u8 gMonBackPic_Beautifly[] = INCBIN_U8("graphics/pokemon/back_pics/beautifly_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Beautifly[] = INCBIN_U8("graphics/pokemon/palettes/beautifly_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Beautifly[] = INCBIN_U8("graphics/pokemon/icons/beautifly_icon.4bpp"); +const u8 gMonFootprint_Beautifly[] = INCBIN_U8("graphics/pokemon/footprints/beautifly_footprint.1bpp"); + +const u8 gMonStillFrontPic_Cascoon[] = INCBIN_U8("graphics/pokemon/front_pics/cascoon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Cascoon[] = INCBIN_U8("graphics/pokemon/palettes/cascoon_palette.gbapal.lz"); +const u8 gMonBackPic_Cascoon[] = INCBIN_U8("graphics/pokemon/back_pics/cascoon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Cascoon[] = INCBIN_U8("graphics/pokemon/palettes/cascoon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Cascoon[] = INCBIN_U8("graphics/pokemon/icons/cascoon_icon.4bpp"); +const u8 gMonFootprint_Cascoon[] = INCBIN_U8("graphics/pokemon/footprints/cascoon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Dustox[] = INCBIN_U8("graphics/pokemon/front_pics/dustox_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Dustox[] = INCBIN_U8("graphics/pokemon/palettes/dustox_palette.gbapal.lz"); +const u8 gMonBackPic_Dustox[] = INCBIN_U8("graphics/pokemon/back_pics/dustox_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Dustox[] = INCBIN_U8("graphics/pokemon/palettes/dustox_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Dustox[] = INCBIN_U8("graphics/pokemon/icons/dustox_icon.4bpp"); +const u8 gMonFootprint_Dustox[] = INCBIN_U8("graphics/pokemon/footprints/dustox_footprint.1bpp"); + +const u8 gMonStillFrontPic_Lotad[] = INCBIN_U8("graphics/pokemon/front_pics/lotad_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Lotad[] = INCBIN_U8("graphics/pokemon/palettes/lotad_palette.gbapal.lz"); +const u8 gMonBackPic_Lotad[] = INCBIN_U8("graphics/pokemon/back_pics/lotad_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Lotad[] = INCBIN_U8("graphics/pokemon/palettes/lotad_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Lotad[] = INCBIN_U8("graphics/pokemon/icons/lotad_icon.4bpp"); +const u8 gMonFootprint_Lotad[] = INCBIN_U8("graphics/pokemon/footprints/lotad_footprint.1bpp"); + +const u8 gMonStillFrontPic_Lombre[] = INCBIN_U8("graphics/pokemon/front_pics/lombre_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Lombre[] = INCBIN_U8("graphics/pokemon/palettes/lombre_palette.gbapal.lz"); +const u8 gMonBackPic_Lombre[] = INCBIN_U8("graphics/pokemon/back_pics/lombre_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Lombre[] = INCBIN_U8("graphics/pokemon/palettes/lombre_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Lombre[] = INCBIN_U8("graphics/pokemon/icons/lombre_icon.4bpp"); +const u8 gMonFootprint_Lombre[] = INCBIN_U8("graphics/pokemon/footprints/lombre_footprint.1bpp"); + +const u8 gMonStillFrontPic_Ludicolo[] = INCBIN_U8("graphics/pokemon/front_pics/ludicolo_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ludicolo[] = INCBIN_U8("graphics/pokemon/palettes/ludicolo_palette.gbapal.lz"); +const u8 gMonBackPic_Ludicolo[] = INCBIN_U8("graphics/pokemon/back_pics/ludicolo_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ludicolo[] = INCBIN_U8("graphics/pokemon/palettes/ludicolo_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ludicolo[] = INCBIN_U8("graphics/pokemon/icons/ludicolo_icon.4bpp"); +const u8 gMonFootprint_Ludicolo[] = INCBIN_U8("graphics/pokemon/footprints/ludicolo_footprint.1bpp"); + +const u8 gMonStillFrontPic_Seedot[] = INCBIN_U8("graphics/pokemon/front_pics/seedot_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Seedot[] = INCBIN_U8("graphics/pokemon/palettes/seedot_palette.gbapal.lz"); +const u8 gMonBackPic_Seedot[] = INCBIN_U8("graphics/pokemon/back_pics/seedot_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Seedot[] = INCBIN_U8("graphics/pokemon/palettes/seedot_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Seedot[] = INCBIN_U8("graphics/pokemon/icons/seedot_icon.4bpp"); +const u8 gMonFootprint_Seedot[] = INCBIN_U8("graphics/pokemon/footprints/seedot_footprint.1bpp"); + +const u8 gMonStillFrontPic_Nuzleaf[] = INCBIN_U8("graphics/pokemon/front_pics/nuzleaf_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Nuzleaf[] = INCBIN_U8("graphics/pokemon/palettes/nuzleaf_palette.gbapal.lz"); +const u8 gMonBackPic_Nuzleaf[] = INCBIN_U8("graphics/pokemon/back_pics/nuzleaf_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Nuzleaf[] = INCBIN_U8("graphics/pokemon/palettes/nuzleaf_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Nuzleaf[] = INCBIN_U8("graphics/pokemon/icons/nuzleaf_icon.4bpp"); +const u8 gMonFootprint_Nuzleaf[] = INCBIN_U8("graphics/pokemon/footprints/nuzleaf_footprint.1bpp"); + +const u8 gMonStillFrontPic_Shiftry[] = INCBIN_U8("graphics/pokemon/front_pics/shiftry_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Shiftry[] = INCBIN_U8("graphics/pokemon/palettes/shiftry_palette.gbapal.lz"); +const u8 gMonBackPic_Shiftry[] = INCBIN_U8("graphics/pokemon/back_pics/shiftry_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Shiftry[] = INCBIN_U8("graphics/pokemon/palettes/shiftry_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Shiftry[] = INCBIN_U8("graphics/pokemon/icons/shiftry_icon.4bpp"); +const u8 gMonFootprint_Shiftry[] = INCBIN_U8("graphics/pokemon/footprints/shiftry_footprint.1bpp"); + +const u8 gMonStillFrontPic_Nincada[] = INCBIN_U8("graphics/pokemon/front_pics/nincada_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Nincada[] = INCBIN_U8("graphics/pokemon/palettes/nincada_palette.gbapal.lz"); +const u8 gMonBackPic_Nincada[] = INCBIN_U8("graphics/pokemon/back_pics/nincada_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Nincada[] = INCBIN_U8("graphics/pokemon/palettes/nincada_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Nincada[] = INCBIN_U8("graphics/pokemon/icons/nincada_icon.4bpp"); +const u8 gMonFootprint_Nincada[] = INCBIN_U8("graphics/pokemon/footprints/nincada_footprint.1bpp"); + +const u8 gMonStillFrontPic_Ninjask[] = INCBIN_U8("graphics/pokemon/front_pics/ninjask_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ninjask[] = INCBIN_U8("graphics/pokemon/palettes/ninjask_palette.gbapal.lz"); +const u8 gMonBackPic_Ninjask[] = INCBIN_U8("graphics/pokemon/back_pics/ninjask_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ninjask[] = INCBIN_U8("graphics/pokemon/palettes/ninjask_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ninjask[] = INCBIN_U8("graphics/pokemon/icons/ninjask_icon.4bpp"); +const u8 gMonFootprint_Ninjask[] = INCBIN_U8("graphics/pokemon/footprints/ninjask_footprint.1bpp"); + +const u8 gMonStillFrontPic_Shedinja[] = INCBIN_U8("graphics/pokemon/front_pics/shedinja_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Shedinja[] = INCBIN_U8("graphics/pokemon/palettes/shedinja_palette.gbapal.lz"); +const u8 gMonBackPic_Shedinja[] = INCBIN_U8("graphics/pokemon/back_pics/shedinja_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Shedinja[] = INCBIN_U8("graphics/pokemon/palettes/shedinja_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Shedinja[] = INCBIN_U8("graphics/pokemon/icons/shedinja_icon.4bpp"); +const u8 gMonFootprint_Shedinja[] = INCBIN_U8("graphics/pokemon/footprints/shedinja_footprint.1bpp"); + +const u8 gMonStillFrontPic_Taillow[] = INCBIN_U8("graphics/pokemon/front_pics/taillow_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Taillow[] = INCBIN_U8("graphics/pokemon/palettes/taillow_palette.gbapal.lz"); +const u8 gMonBackPic_Taillow[] = INCBIN_U8("graphics/pokemon/back_pics/taillow_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Taillow[] = INCBIN_U8("graphics/pokemon/palettes/taillow_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Taillow[] = INCBIN_U8("graphics/pokemon/icons/taillow_icon.4bpp"); +const u8 gMonFootprint_Taillow[] = INCBIN_U8("graphics/pokemon/footprints/taillow_footprint.1bpp"); + +const u8 gMonStillFrontPic_Swellow[] = INCBIN_U8("graphics/pokemon/front_pics/swellow_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Swellow[] = INCBIN_U8("graphics/pokemon/palettes/swellow_palette.gbapal.lz"); +const u8 gMonBackPic_Swellow[] = INCBIN_U8("graphics/pokemon/back_pics/swellow_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Swellow[] = INCBIN_U8("graphics/pokemon/palettes/swellow_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Swellow[] = INCBIN_U8("graphics/pokemon/icons/swellow_icon.4bpp"); +const u8 gMonFootprint_Swellow[] = INCBIN_U8("graphics/pokemon/footprints/swellow_footprint.1bpp"); + +const u8 gMonStillFrontPic_Shroomish[] = INCBIN_U8("graphics/pokemon/front_pics/shroomish_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Shroomish[] = INCBIN_U8("graphics/pokemon/palettes/shroomish_palette.gbapal.lz"); +const u8 gMonBackPic_Shroomish[] = INCBIN_U8("graphics/pokemon/back_pics/shroomish_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Shroomish[] = INCBIN_U8("graphics/pokemon/palettes/shroomish_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Shroomish[] = INCBIN_U8("graphics/pokemon/icons/shroomish_icon.4bpp"); +const u8 gMonFootprint_Shroomish[] = INCBIN_U8("graphics/pokemon/footprints/shroomish_footprint.1bpp"); + +const u8 gMonStillFrontPic_Breloom[] = INCBIN_U8("graphics/pokemon/front_pics/breloom_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Breloom[] = INCBIN_U8("graphics/pokemon/palettes/breloom_palette.gbapal.lz"); +const u8 gMonBackPic_Breloom[] = INCBIN_U8("graphics/pokemon/back_pics/breloom_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Breloom[] = INCBIN_U8("graphics/pokemon/palettes/breloom_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Breloom[] = INCBIN_U8("graphics/pokemon/icons/breloom_icon.4bpp"); +const u8 gMonFootprint_Breloom[] = INCBIN_U8("graphics/pokemon/footprints/breloom_footprint.1bpp"); + +const u8 gMonStillFrontPic_Spinda[] = INCBIN_U8("graphics/pokemon/front_pics/spinda_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Spinda[] = INCBIN_U8("graphics/pokemon/palettes/spinda_palette.gbapal.lz"); +const u8 gMonBackPic_Spinda[] = INCBIN_U8("graphics/pokemon/back_pics/spinda_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Spinda[] = INCBIN_U8("graphics/pokemon/palettes/spinda_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Spinda[] = INCBIN_U8("graphics/pokemon/icons/spinda_icon.4bpp"); +const u8 gMonFootprint_Spinda[] = INCBIN_U8("graphics/pokemon/footprints/spinda_footprint.1bpp"); + +const u8 gMonStillFrontPic_Wingull[] = INCBIN_U8("graphics/pokemon/front_pics/wingull_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Wingull[] = INCBIN_U8("graphics/pokemon/palettes/wingull_palette.gbapal.lz"); +const u8 gMonBackPic_Wingull[] = INCBIN_U8("graphics/pokemon/back_pics/wingull_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Wingull[] = INCBIN_U8("graphics/pokemon/palettes/wingull_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Wingull[] = INCBIN_U8("graphics/pokemon/icons/wingull_icon.4bpp"); +const u8 gMonFootprint_Wingull[] = INCBIN_U8("graphics/pokemon/footprints/wingull_footprint.1bpp"); + +const u8 gMonStillFrontPic_Pelipper[] = INCBIN_U8("graphics/pokemon/front_pics/pelipper_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Pelipper[] = INCBIN_U8("graphics/pokemon/palettes/pelipper_palette.gbapal.lz"); +const u8 gMonBackPic_Pelipper[] = INCBIN_U8("graphics/pokemon/back_pics/pelipper_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Pelipper[] = INCBIN_U8("graphics/pokemon/palettes/pelipper_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Pelipper[] = INCBIN_U8("graphics/pokemon/icons/pelipper_icon.4bpp"); +const u8 gMonFootprint_Pelipper[] = INCBIN_U8("graphics/pokemon/footprints/pelipper_footprint.1bpp"); + +const u8 gMonStillFrontPic_Surskit[] = INCBIN_U8("graphics/pokemon/front_pics/surskit_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Surskit[] = INCBIN_U8("graphics/pokemon/palettes/surskit_palette.gbapal.lz"); +const u8 gMonBackPic_Surskit[] = INCBIN_U8("graphics/pokemon/back_pics/surskit_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Surskit[] = INCBIN_U8("graphics/pokemon/palettes/surskit_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Surskit[] = INCBIN_U8("graphics/pokemon/icons/surskit_icon.4bpp"); +const u8 gMonFootprint_Surskit[] = INCBIN_U8("graphics/pokemon/footprints/surskit_footprint.1bpp"); + +const u8 gMonStillFrontPic_Masquerain[] = INCBIN_U8("graphics/pokemon/front_pics/masquerain_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Masquerain[] = INCBIN_U8("graphics/pokemon/palettes/masquerain_palette.gbapal.lz"); +const u8 gMonBackPic_Masquerain[] = INCBIN_U8("graphics/pokemon/back_pics/masquerain_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Masquerain[] = INCBIN_U8("graphics/pokemon/palettes/masquerain_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Masquerain[] = INCBIN_U8("graphics/pokemon/icons/masquerain_icon.4bpp"); +const u8 gMonFootprint_Masquerain[] = INCBIN_U8("graphics/pokemon/footprints/masquerain_footprint.1bpp"); + +const u8 gMonStillFrontPic_Wailmer[] = INCBIN_U8("graphics/pokemon/front_pics/wailmer_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Wailmer[] = INCBIN_U8("graphics/pokemon/palettes/wailmer_palette.gbapal.lz"); +const u8 gMonBackPic_Wailmer[] = INCBIN_U8("graphics/pokemon/back_pics/wailmer_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Wailmer[] = INCBIN_U8("graphics/pokemon/palettes/wailmer_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Wailmer[] = INCBIN_U8("graphics/pokemon/icons/wailmer_icon.4bpp"); +const u8 gMonFootprint_Wailmer[] = INCBIN_U8("graphics/pokemon/footprints/wailmer_footprint.1bpp"); + +const u8 gMonStillFrontPic_Wailord[] = INCBIN_U8("graphics/pokemon/front_pics/wailord_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Wailord[] = INCBIN_U8("graphics/pokemon/palettes/wailord_palette.gbapal.lz"); +const u8 gMonBackPic_Wailord[] = INCBIN_U8("graphics/pokemon/back_pics/wailord_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Wailord[] = INCBIN_U8("graphics/pokemon/palettes/wailord_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Wailord[] = INCBIN_U8("graphics/pokemon/icons/wailord_icon.4bpp"); +const u8 gMonFootprint_Wailord[] = INCBIN_U8("graphics/pokemon/footprints/wailord_footprint.1bpp"); + +const u8 gMonStillFrontPic_Skitty[] = INCBIN_U8("graphics/pokemon/front_pics/skitty_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Skitty[] = INCBIN_U8("graphics/pokemon/palettes/skitty_palette.gbapal.lz"); +const u8 gMonBackPic_Skitty[] = INCBIN_U8("graphics/pokemon/back_pics/skitty_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Skitty[] = INCBIN_U8("graphics/pokemon/palettes/skitty_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Skitty[] = INCBIN_U8("graphics/pokemon/icons/skitty_icon.4bpp"); +const u8 gMonFootprint_Skitty[] = INCBIN_U8("graphics/pokemon/footprints/skitty_footprint.1bpp"); + +const u8 gMonStillFrontPic_Delcatty[] = INCBIN_U8("graphics/pokemon/front_pics/delcatty_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Delcatty[] = INCBIN_U8("graphics/pokemon/palettes/delcatty_palette.gbapal.lz"); +const u8 gMonBackPic_Delcatty[] = INCBIN_U8("graphics/pokemon/back_pics/delcatty_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Delcatty[] = INCBIN_U8("graphics/pokemon/palettes/delcatty_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Delcatty[] = INCBIN_U8("graphics/pokemon/icons/delcatty_icon.4bpp"); +const u8 gMonFootprint_Delcatty[] = INCBIN_U8("graphics/pokemon/footprints/delcatty_footprint.1bpp"); + +const u8 gMonStillFrontPic_Kecleon[] = INCBIN_U8("graphics/pokemon/front_pics/kecleon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Kecleon[] = INCBIN_U8("graphics/pokemon/palettes/kecleon_palette.gbapal.lz"); +const u8 gMonBackPic_Kecleon[] = INCBIN_U8("graphics/pokemon/back_pics/kecleon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Kecleon[] = INCBIN_U8("graphics/pokemon/palettes/kecleon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Kecleon[] = INCBIN_U8("graphics/pokemon/icons/kecleon_icon.4bpp"); +const u8 gMonFootprint_Kecleon[] = INCBIN_U8("graphics/pokemon/footprints/kecleon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Baltoy[] = INCBIN_U8("graphics/pokemon/front_pics/baltoy_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Baltoy[] = INCBIN_U8("graphics/pokemon/palettes/baltoy_palette.gbapal.lz"); +const u8 gMonBackPic_Baltoy[] = INCBIN_U8("graphics/pokemon/back_pics/baltoy_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Baltoy[] = INCBIN_U8("graphics/pokemon/palettes/baltoy_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Baltoy[] = INCBIN_U8("graphics/pokemon/icons/baltoy_icon.4bpp"); +const u8 gMonFootprint_Baltoy[] = INCBIN_U8("graphics/pokemon/footprints/baltoy_footprint.1bpp"); + +const u8 gMonStillFrontPic_Claydol[] = INCBIN_U8("graphics/pokemon/front_pics/claydol_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Claydol[] = INCBIN_U8("graphics/pokemon/palettes/claydol_palette.gbapal.lz"); +const u8 gMonBackPic_Claydol[] = INCBIN_U8("graphics/pokemon/back_pics/claydol_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Claydol[] = INCBIN_U8("graphics/pokemon/palettes/claydol_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Claydol[] = INCBIN_U8("graphics/pokemon/icons/claydol_icon.4bpp"); +const u8 gMonFootprint_Claydol[] = INCBIN_U8("graphics/pokemon/footprints/claydol_footprint.1bpp"); + +const u8 gMonStillFrontPic_Nosepass[] = INCBIN_U8("graphics/pokemon/front_pics/nosepass_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Nosepass[] = INCBIN_U8("graphics/pokemon/palettes/nosepass_palette.gbapal.lz"); +const u8 gMonBackPic_Nosepass[] = INCBIN_U8("graphics/pokemon/back_pics/nosepass_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Nosepass[] = INCBIN_U8("graphics/pokemon/palettes/nosepass_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Nosepass[] = INCBIN_U8("graphics/pokemon/icons/nosepass_icon.4bpp"); +const u8 gMonFootprint_Nosepass[] = INCBIN_U8("graphics/pokemon/footprints/nosepass_footprint.1bpp"); + +const u8 gMonStillFrontPic_Torkoal[] = INCBIN_U8("graphics/pokemon/front_pics/torkoal_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Torkoal[] = INCBIN_U8("graphics/pokemon/palettes/torkoal_palette.gbapal.lz"); +const u8 gMonBackPic_Torkoal[] = INCBIN_U8("graphics/pokemon/back_pics/torkoal_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Torkoal[] = INCBIN_U8("graphics/pokemon/palettes/torkoal_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Torkoal[] = INCBIN_U8("graphics/pokemon/icons/torkoal_icon.4bpp"); +const u8 gMonFootprint_Torkoal[] = INCBIN_U8("graphics/pokemon/footprints/torkoal_footprint.1bpp"); + +const u8 gMonStillFrontPic_Sableye[] = INCBIN_U8("graphics/pokemon/front_pics/sableye_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Sableye[] = INCBIN_U8("graphics/pokemon/palettes/sableye_palette.gbapal.lz"); +const u8 gMonBackPic_Sableye[] = INCBIN_U8("graphics/pokemon/back_pics/sableye_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Sableye[] = INCBIN_U8("graphics/pokemon/palettes/sableye_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Sableye[] = INCBIN_U8("graphics/pokemon/icons/sableye_icon.4bpp"); +const u8 gMonFootprint_Sableye[] = INCBIN_U8("graphics/pokemon/footprints/sableye_footprint.1bpp"); + +const u8 gMonStillFrontPic_Barboach[] = INCBIN_U8("graphics/pokemon/front_pics/barboach_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Barboach[] = INCBIN_U8("graphics/pokemon/palettes/barboach_palette.gbapal.lz"); +const u8 gMonBackPic_Barboach[] = INCBIN_U8("graphics/pokemon/back_pics/barboach_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Barboach[] = INCBIN_U8("graphics/pokemon/palettes/barboach_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Barboach[] = INCBIN_U8("graphics/pokemon/icons/barboach_icon.4bpp"); +const u8 gMonFootprint_Barboach[] = INCBIN_U8("graphics/pokemon/footprints/barboach_footprint.1bpp"); + +const u8 gMonStillFrontPic_Whiscash[] = INCBIN_U8("graphics/pokemon/front_pics/whiscash_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Whiscash[] = INCBIN_U8("graphics/pokemon/palettes/whiscash_palette.gbapal.lz"); +const u8 gMonBackPic_Whiscash[] = INCBIN_U8("graphics/pokemon/back_pics/whiscash_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Whiscash[] = INCBIN_U8("graphics/pokemon/palettes/whiscash_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Whiscash[] = INCBIN_U8("graphics/pokemon/icons/whiscash_icon.4bpp"); +const u8 gMonFootprint_Whiscash[] = INCBIN_U8("graphics/pokemon/footprints/whiscash_footprint.1bpp"); + +const u8 gMonStillFrontPic_Luvdisc[] = INCBIN_U8("graphics/pokemon/front_pics/luvdisc_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Luvdisc[] = INCBIN_U8("graphics/pokemon/palettes/luvdisc_palette.gbapal.lz"); +const u8 gMonBackPic_Luvdisc[] = INCBIN_U8("graphics/pokemon/back_pics/luvdisc_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Luvdisc[] = INCBIN_U8("graphics/pokemon/palettes/luvdisc_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Luvdisc[] = INCBIN_U8("graphics/pokemon/icons/luvdisc_icon.4bpp"); +const u8 gMonFootprint_Luvdisc[] = INCBIN_U8("graphics/pokemon/footprints/luvdisc_footprint.1bpp"); + +const u8 gMonStillFrontPic_Corphish[] = INCBIN_U8("graphics/pokemon/front_pics/corphish_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Corphish[] = INCBIN_U8("graphics/pokemon/palettes/corphish_palette.gbapal.lz"); +const u8 gMonBackPic_Corphish[] = INCBIN_U8("graphics/pokemon/back_pics/corphish_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Corphish[] = INCBIN_U8("graphics/pokemon/palettes/corphish_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Corphish[] = INCBIN_U8("graphics/pokemon/icons/corphish_icon.4bpp"); +const u8 gMonFootprint_Corphish[] = INCBIN_U8("graphics/pokemon/footprints/corphish_footprint.1bpp"); + +const u8 gMonStillFrontPic_Crawdaunt[] = INCBIN_U8("graphics/pokemon/front_pics/crawdaunt_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Crawdaunt[] = INCBIN_U8("graphics/pokemon/palettes/crawdaunt_palette.gbapal.lz"); +const u8 gMonBackPic_Crawdaunt[] = INCBIN_U8("graphics/pokemon/back_pics/crawdaunt_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Crawdaunt[] = INCBIN_U8("graphics/pokemon/palettes/crawdaunt_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Crawdaunt[] = INCBIN_U8("graphics/pokemon/icons/crawdaunt_icon.4bpp"); +const u8 gMonFootprint_Crawdaunt[] = INCBIN_U8("graphics/pokemon/footprints/crawdaunt_footprint.1bpp"); + +const u8 gMonStillFrontPic_Feebas[] = INCBIN_U8("graphics/pokemon/front_pics/feebas_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Feebas[] = INCBIN_U8("graphics/pokemon/palettes/feebas_palette.gbapal.lz"); +const u8 gMonBackPic_Feebas[] = INCBIN_U8("graphics/pokemon/back_pics/feebas_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Feebas[] = INCBIN_U8("graphics/pokemon/palettes/feebas_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Feebas[] = INCBIN_U8("graphics/pokemon/icons/feebas_icon.4bpp"); +const u8 gMonFootprint_Feebas[] = INCBIN_U8("graphics/pokemon/footprints/feebas_footprint.1bpp"); + +const u8 gMonStillFrontPic_Milotic[] = INCBIN_U8("graphics/pokemon/front_pics/milotic_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Milotic[] = INCBIN_U8("graphics/pokemon/palettes/milotic_palette.gbapal.lz"); +const u8 gMonBackPic_Milotic[] = INCBIN_U8("graphics/pokemon/back_pics/milotic_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Milotic[] = INCBIN_U8("graphics/pokemon/palettes/milotic_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Milotic[] = INCBIN_U8("graphics/pokemon/icons/milotic_icon.4bpp"); +const u8 gMonFootprint_Milotic[] = INCBIN_U8("graphics/pokemon/footprints/milotic_footprint.1bpp"); + +const u8 gMonStillFrontPic_Carvanha[] = INCBIN_U8("graphics/pokemon/front_pics/carvanha_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Carvanha[] = INCBIN_U8("graphics/pokemon/palettes/carvanha_palette.gbapal.lz"); +const u8 gMonBackPic_Carvanha[] = INCBIN_U8("graphics/pokemon/back_pics/carvanha_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Carvanha[] = INCBIN_U8("graphics/pokemon/palettes/carvanha_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Carvanha[] = INCBIN_U8("graphics/pokemon/icons/carvanha_icon.4bpp"); +const u8 gMonFootprint_Carvanha[] = INCBIN_U8("graphics/pokemon/footprints/carvanha_footprint.1bpp"); + +const u8 gMonStillFrontPic_Sharpedo[] = INCBIN_U8("graphics/pokemon/front_pics/sharpedo_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Sharpedo[] = INCBIN_U8("graphics/pokemon/palettes/sharpedo_palette.gbapal.lz"); +const u8 gMonBackPic_Sharpedo[] = INCBIN_U8("graphics/pokemon/back_pics/sharpedo_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Sharpedo[] = INCBIN_U8("graphics/pokemon/palettes/sharpedo_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Sharpedo[] = INCBIN_U8("graphics/pokemon/icons/sharpedo_icon.4bpp"); +const u8 gMonFootprint_Sharpedo[] = INCBIN_U8("graphics/pokemon/footprints/sharpedo_footprint.1bpp"); + +const u8 gMonStillFrontPic_Trapinch[] = INCBIN_U8("graphics/pokemon/front_pics/trapinch_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Trapinch[] = INCBIN_U8("graphics/pokemon/palettes/trapinch_palette.gbapal.lz"); +const u8 gMonBackPic_Trapinch[] = INCBIN_U8("graphics/pokemon/back_pics/trapinch_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Trapinch[] = INCBIN_U8("graphics/pokemon/palettes/trapinch_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Trapinch[] = INCBIN_U8("graphics/pokemon/icons/trapinch_icon.4bpp"); +const u8 gMonFootprint_Trapinch[] = INCBIN_U8("graphics/pokemon/footprints/trapinch_footprint.1bpp"); + +const u8 gMonStillFrontPic_Vibrava[] = INCBIN_U8("graphics/pokemon/front_pics/vibrava_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Vibrava[] = INCBIN_U8("graphics/pokemon/palettes/vibrava_palette.gbapal.lz"); +const u8 gMonBackPic_Vibrava[] = INCBIN_U8("graphics/pokemon/back_pics/vibrava_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Vibrava[] = INCBIN_U8("graphics/pokemon/palettes/vibrava_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Vibrava[] = INCBIN_U8("graphics/pokemon/icons/vibrava_icon.4bpp"); +const u8 gMonFootprint_Vibrava[] = INCBIN_U8("graphics/pokemon/footprints/vibrava_footprint.1bpp"); + +const u8 gMonStillFrontPic_Flygon[] = INCBIN_U8("graphics/pokemon/front_pics/flygon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Flygon[] = INCBIN_U8("graphics/pokemon/palettes/flygon_palette.gbapal.lz"); +const u8 gMonBackPic_Flygon[] = INCBIN_U8("graphics/pokemon/back_pics/flygon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Flygon[] = INCBIN_U8("graphics/pokemon/palettes/flygon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Flygon[] = INCBIN_U8("graphics/pokemon/icons/flygon_icon.4bpp"); +const u8 gMonFootprint_Flygon[] = INCBIN_U8("graphics/pokemon/footprints/flygon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Makuhita[] = INCBIN_U8("graphics/pokemon/front_pics/makuhita_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Makuhita[] = INCBIN_U8("graphics/pokemon/palettes/makuhita_palette.gbapal.lz"); +const u8 gMonBackPic_Makuhita[] = INCBIN_U8("graphics/pokemon/back_pics/makuhita_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Makuhita[] = INCBIN_U8("graphics/pokemon/palettes/makuhita_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Makuhita[] = INCBIN_U8("graphics/pokemon/icons/makuhita_icon.4bpp"); +const u8 gMonFootprint_Makuhita[] = INCBIN_U8("graphics/pokemon/footprints/makuhita_footprint.1bpp"); + +const u8 gMonStillFrontPic_Hariyama[] = INCBIN_U8("graphics/pokemon/front_pics/hariyama_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Hariyama[] = INCBIN_U8("graphics/pokemon/palettes/hariyama_palette.gbapal.lz"); +const u8 gMonBackPic_Hariyama[] = INCBIN_U8("graphics/pokemon/back_pics/hariyama_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Hariyama[] = INCBIN_U8("graphics/pokemon/palettes/hariyama_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Hariyama[] = INCBIN_U8("graphics/pokemon/icons/hariyama_icon.4bpp"); +const u8 gMonFootprint_Hariyama[] = INCBIN_U8("graphics/pokemon/footprints/hariyama_footprint.1bpp"); + +const u8 gMonStillFrontPic_Electrike[] = INCBIN_U8("graphics/pokemon/front_pics/electrike_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Electrike[] = INCBIN_U8("graphics/pokemon/palettes/electrike_palette.gbapal.lz"); +const u8 gMonBackPic_Electrike[] = INCBIN_U8("graphics/pokemon/back_pics/electrike_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Electrike[] = INCBIN_U8("graphics/pokemon/palettes/electrike_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Electrike[] = INCBIN_U8("graphics/pokemon/icons/electrike_icon.4bpp"); +const u8 gMonFootprint_Electrike[] = INCBIN_U8("graphics/pokemon/footprints/electrike_footprint.1bpp"); + +const u8 gMonStillFrontPic_Manectric[] = INCBIN_U8("graphics/pokemon/front_pics/manectric_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Manectric[] = INCBIN_U8("graphics/pokemon/palettes/manectric_palette.gbapal.lz"); +const u8 gMonBackPic_Manectric[] = INCBIN_U8("graphics/pokemon/back_pics/manectric_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Manectric[] = INCBIN_U8("graphics/pokemon/palettes/manectric_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Manectric[] = INCBIN_U8("graphics/pokemon/icons/manectric_icon.4bpp"); +const u8 gMonFootprint_Manectric[] = INCBIN_U8("graphics/pokemon/footprints/manectric_footprint.1bpp"); + +const u8 gMonStillFrontPic_Numel[] = INCBIN_U8("graphics/pokemon/front_pics/numel_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Numel[] = INCBIN_U8("graphics/pokemon/palettes/numel_palette.gbapal.lz"); +const u8 gMonBackPic_Numel[] = INCBIN_U8("graphics/pokemon/back_pics/numel_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Numel[] = INCBIN_U8("graphics/pokemon/palettes/numel_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Numel[] = INCBIN_U8("graphics/pokemon/icons/numel_icon.4bpp"); +const u8 gMonFootprint_Numel[] = INCBIN_U8("graphics/pokemon/footprints/numel_footprint.1bpp"); + +const u8 gMonStillFrontPic_Camerupt[] = INCBIN_U8("graphics/pokemon/front_pics/camerupt_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Camerupt[] = INCBIN_U8("graphics/pokemon/palettes/camerupt_palette.gbapal.lz"); +const u8 gMonBackPic_Camerupt[] = INCBIN_U8("graphics/pokemon/back_pics/camerupt_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Camerupt[] = INCBIN_U8("graphics/pokemon/palettes/camerupt_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Camerupt[] = INCBIN_U8("graphics/pokemon/icons/camerupt_icon.4bpp"); +const u8 gMonFootprint_Camerupt[] = INCBIN_U8("graphics/pokemon/footprints/camerupt_footprint.1bpp"); + +const u8 gMonStillFrontPic_Spheal[] = INCBIN_U8("graphics/pokemon/front_pics/spheal_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Spheal[] = INCBIN_U8("graphics/pokemon/palettes/spheal_palette.gbapal.lz"); +const u8 gMonBackPic_Spheal[] = INCBIN_U8("graphics/pokemon/back_pics/spheal_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Spheal[] = INCBIN_U8("graphics/pokemon/palettes/spheal_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Spheal[] = INCBIN_U8("graphics/pokemon/icons/spheal_icon.4bpp"); +const u8 gMonFootprint_Spheal[] = INCBIN_U8("graphics/pokemon/footprints/spheal_footprint.1bpp"); + +const u8 gMonStillFrontPic_Sealeo[] = INCBIN_U8("graphics/pokemon/front_pics/sealeo_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Sealeo[] = INCBIN_U8("graphics/pokemon/palettes/sealeo_palette.gbapal.lz"); +const u8 gMonBackPic_Sealeo[] = INCBIN_U8("graphics/pokemon/back_pics/sealeo_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Sealeo[] = INCBIN_U8("graphics/pokemon/palettes/sealeo_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Sealeo[] = INCBIN_U8("graphics/pokemon/icons/sealeo_icon.4bpp"); +const u8 gMonFootprint_Sealeo[] = INCBIN_U8("graphics/pokemon/footprints/sealeo_footprint.1bpp"); + +const u8 gMonStillFrontPic_Walrein[] = INCBIN_U8("graphics/pokemon/front_pics/walrein_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Walrein[] = INCBIN_U8("graphics/pokemon/palettes/walrein_palette.gbapal.lz"); +const u8 gMonBackPic_Walrein[] = INCBIN_U8("graphics/pokemon/back_pics/walrein_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Walrein[] = INCBIN_U8("graphics/pokemon/palettes/walrein_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Walrein[] = INCBIN_U8("graphics/pokemon/icons/walrein_icon.4bpp"); +const u8 gMonFootprint_Walrein[] = INCBIN_U8("graphics/pokemon/footprints/walrein_footprint.1bpp"); + +const u8 gMonStillFrontPic_Cacnea[] = INCBIN_U8("graphics/pokemon/front_pics/cacnea_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Cacnea[] = INCBIN_U8("graphics/pokemon/palettes/cacnea_palette.gbapal.lz"); +const u8 gMonBackPic_Cacnea[] = INCBIN_U8("graphics/pokemon/back_pics/cacnea_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Cacnea[] = INCBIN_U8("graphics/pokemon/palettes/cacnea_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Cacnea[] = INCBIN_U8("graphics/pokemon/icons/cacnea_icon.4bpp"); +const u8 gMonFootprint_Cacnea[] = INCBIN_U8("graphics/pokemon/footprints/cacnea_footprint.1bpp"); + +const u8 gMonStillFrontPic_Cacturne[] = INCBIN_U8("graphics/pokemon/front_pics/cacturne_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Cacturne[] = INCBIN_U8("graphics/pokemon/palettes/cacturne_palette.gbapal.lz"); +const u8 gMonBackPic_Cacturne[] = INCBIN_U8("graphics/pokemon/back_pics/cacturne_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Cacturne[] = INCBIN_U8("graphics/pokemon/palettes/cacturne_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Cacturne[] = INCBIN_U8("graphics/pokemon/icons/cacturne_icon.4bpp"); +const u8 gMonFootprint_Cacturne[] = INCBIN_U8("graphics/pokemon/footprints/cacturne_footprint.1bpp"); + +const u8 gMonStillFrontPic_Snorunt[] = INCBIN_U8("graphics/pokemon/front_pics/snorunt_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Snorunt[] = INCBIN_U8("graphics/pokemon/palettes/snorunt_palette.gbapal.lz"); +const u8 gMonBackPic_Snorunt[] = INCBIN_U8("graphics/pokemon/back_pics/snorunt_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Snorunt[] = INCBIN_U8("graphics/pokemon/palettes/snorunt_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Snorunt[] = INCBIN_U8("graphics/pokemon/icons/snorunt_icon.4bpp"); +const u8 gMonFootprint_Snorunt[] = INCBIN_U8("graphics/pokemon/footprints/snorunt_footprint.1bpp"); + +const u8 gMonStillFrontPic_Glalie[] = INCBIN_U8("graphics/pokemon/front_pics/glalie_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Glalie[] = INCBIN_U8("graphics/pokemon/palettes/glalie_palette.gbapal.lz"); +const u8 gMonBackPic_Glalie[] = INCBIN_U8("graphics/pokemon/back_pics/glalie_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Glalie[] = INCBIN_U8("graphics/pokemon/palettes/glalie_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Glalie[] = INCBIN_U8("graphics/pokemon/icons/glalie_icon.4bpp"); +const u8 gMonFootprint_Glalie[] = INCBIN_U8("graphics/pokemon/footprints/glalie_footprint.1bpp"); + +const u8 gMonStillFrontPic_Lunatone[] = INCBIN_U8("graphics/pokemon/front_pics/lunatone_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Lunatone[] = INCBIN_U8("graphics/pokemon/palettes/lunatone_palette.gbapal.lz"); +const u8 gMonBackPic_Lunatone[] = INCBIN_U8("graphics/pokemon/back_pics/lunatone_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Lunatone[] = INCBIN_U8("graphics/pokemon/palettes/lunatone_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Lunatone[] = INCBIN_U8("graphics/pokemon/icons/lunatone_icon.4bpp"); +const u8 gMonFootprint_Lunatone[] = INCBIN_U8("graphics/pokemon/footprints/lunatone_footprint.1bpp"); + +const u8 gMonStillFrontPic_Solrock[] = INCBIN_U8("graphics/pokemon/front_pics/solrock_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Solrock[] = INCBIN_U8("graphics/pokemon/palettes/solrock_palette.gbapal.lz"); +const u8 gMonBackPic_Solrock[] = INCBIN_U8("graphics/pokemon/back_pics/solrock_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Solrock[] = INCBIN_U8("graphics/pokemon/palettes/solrock_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Solrock[] = INCBIN_U8("graphics/pokemon/icons/solrock_icon.4bpp"); +const u8 gMonFootprint_Solrock[] = INCBIN_U8("graphics/pokemon/footprints/solrock_footprint.1bpp"); + +const u8 gMonStillFrontPic_Azurill[] = INCBIN_U8("graphics/pokemon/front_pics/azurill_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Azurill[] = INCBIN_U8("graphics/pokemon/palettes/azurill_palette.gbapal.lz"); +const u8 gMonBackPic_Azurill[] = INCBIN_U8("graphics/pokemon/back_pics/azurill_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Azurill[] = INCBIN_U8("graphics/pokemon/palettes/azurill_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Azurill[] = INCBIN_U8("graphics/pokemon/icons/azurill_icon.4bpp"); +const u8 gMonFootprint_Azurill[] = INCBIN_U8("graphics/pokemon/footprints/azurill_footprint.1bpp"); + +const u8 gMonStillFrontPic_Spoink[] = INCBIN_U8("graphics/pokemon/front_pics/spoink_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Spoink[] = INCBIN_U8("graphics/pokemon/palettes/spoink_palette.gbapal.lz"); +const u8 gMonBackPic_Spoink[] = INCBIN_U8("graphics/pokemon/back_pics/spoink_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Spoink[] = INCBIN_U8("graphics/pokemon/palettes/spoink_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Spoink[] = INCBIN_U8("graphics/pokemon/icons/spoink_icon.4bpp"); +const u8 gMonFootprint_Spoink[] = INCBIN_U8("graphics/pokemon/footprints/spoink_footprint.1bpp"); + +const u8 gMonStillFrontPic_Grumpig[] = INCBIN_U8("graphics/pokemon/front_pics/grumpig_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Grumpig[] = INCBIN_U8("graphics/pokemon/palettes/grumpig_palette.gbapal.lz"); +const u8 gMonBackPic_Grumpig[] = INCBIN_U8("graphics/pokemon/back_pics/grumpig_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Grumpig[] = INCBIN_U8("graphics/pokemon/palettes/grumpig_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Grumpig[] = INCBIN_U8("graphics/pokemon/icons/grumpig_icon.4bpp"); +const u8 gMonFootprint_Grumpig[] = INCBIN_U8("graphics/pokemon/footprints/grumpig_footprint.1bpp"); + +const u8 gMonStillFrontPic_Plusle[] = INCBIN_U8("graphics/pokemon/front_pics/plusle_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Plusle[] = INCBIN_U8("graphics/pokemon/palettes/plusle_palette.gbapal.lz"); +const u8 gMonBackPic_Plusle[] = INCBIN_U8("graphics/pokemon/back_pics/plusle_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Plusle[] = INCBIN_U8("graphics/pokemon/palettes/plusle_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Plusle[] = INCBIN_U8("graphics/pokemon/icons/plusle_icon.4bpp"); +const u8 gMonFootprint_Plusle[] = INCBIN_U8("graphics/pokemon/footprints/plusle_footprint.1bpp"); + +const u8 gMonStillFrontPic_Minun[] = INCBIN_U8("graphics/pokemon/front_pics/minun_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Minun[] = INCBIN_U8("graphics/pokemon/palettes/minun_palette.gbapal.lz"); +const u8 gMonBackPic_Minun[] = INCBIN_U8("graphics/pokemon/back_pics/minun_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Minun[] = INCBIN_U8("graphics/pokemon/palettes/minun_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Minun[] = INCBIN_U8("graphics/pokemon/icons/minun_icon.4bpp"); +const u8 gMonFootprint_Minun[] = INCBIN_U8("graphics/pokemon/footprints/minun_footprint.1bpp"); + +const u8 gMonStillFrontPic_Mawile[] = INCBIN_U8("graphics/pokemon/front_pics/mawile_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Mawile[] = INCBIN_U8("graphics/pokemon/palettes/mawile_palette.gbapal.lz"); +const u8 gMonBackPic_Mawile[] = INCBIN_U8("graphics/pokemon/back_pics/mawile_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Mawile[] = INCBIN_U8("graphics/pokemon/palettes/mawile_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Mawile[] = INCBIN_U8("graphics/pokemon/icons/mawile_icon.4bpp"); +const u8 gMonFootprint_Mawile[] = INCBIN_U8("graphics/pokemon/footprints/mawile_footprint.1bpp"); + +const u8 gMonStillFrontPic_Meditite[] = INCBIN_U8("graphics/pokemon/front_pics/meditite_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Meditite[] = INCBIN_U8("graphics/pokemon/palettes/meditite_palette.gbapal.lz"); +const u8 gMonBackPic_Meditite[] = INCBIN_U8("graphics/pokemon/back_pics/meditite_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Meditite[] = INCBIN_U8("graphics/pokemon/palettes/meditite_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Meditite[] = INCBIN_U8("graphics/pokemon/icons/meditite_icon.4bpp"); +const u8 gMonFootprint_Meditite[] = INCBIN_U8("graphics/pokemon/footprints/meditite_footprint.1bpp"); + +const u8 gMonStillFrontPic_Medicham[] = INCBIN_U8("graphics/pokemon/front_pics/medicham_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Medicham[] = INCBIN_U8("graphics/pokemon/palettes/medicham_palette.gbapal.lz"); +const u8 gMonBackPic_Medicham[] = INCBIN_U8("graphics/pokemon/back_pics/medicham_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Medicham[] = INCBIN_U8("graphics/pokemon/palettes/medicham_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Medicham[] = INCBIN_U8("graphics/pokemon/icons/medicham_icon.4bpp"); +const u8 gMonFootprint_Medicham[] = INCBIN_U8("graphics/pokemon/footprints/medicham_footprint.1bpp"); + +const u8 gMonStillFrontPic_Swablu[] = INCBIN_U8("graphics/pokemon/front_pics/swablu_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Swablu[] = INCBIN_U8("graphics/pokemon/palettes/swablu_palette.gbapal.lz"); +const u8 gMonBackPic_Swablu[] = INCBIN_U8("graphics/pokemon/back_pics/swablu_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Swablu[] = INCBIN_U8("graphics/pokemon/palettes/swablu_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Swablu[] = INCBIN_U8("graphics/pokemon/icons/swablu_icon.4bpp"); +const u8 gMonFootprint_Swablu[] = INCBIN_U8("graphics/pokemon/footprints/swablu_footprint.1bpp"); + +const u8 gMonStillFrontPic_Altaria[] = INCBIN_U8("graphics/pokemon/front_pics/altaria_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Altaria[] = INCBIN_U8("graphics/pokemon/palettes/altaria_palette.gbapal.lz"); +const u8 gMonBackPic_Altaria[] = INCBIN_U8("graphics/pokemon/back_pics/altaria_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Altaria[] = INCBIN_U8("graphics/pokemon/palettes/altaria_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Altaria[] = INCBIN_U8("graphics/pokemon/icons/altaria_icon.4bpp"); +const u8 gMonFootprint_Altaria[] = INCBIN_U8("graphics/pokemon/footprints/altaria_footprint.1bpp"); + +const u8 gMonStillFrontPic_Wynaut[] = INCBIN_U8("graphics/pokemon/front_pics/wynaut_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Wynaut[] = INCBIN_U8("graphics/pokemon/palettes/wynaut_palette.gbapal.lz"); +const u8 gMonBackPic_Wynaut[] = INCBIN_U8("graphics/pokemon/back_pics/wynaut_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Wynaut[] = INCBIN_U8("graphics/pokemon/palettes/wynaut_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Wynaut[] = INCBIN_U8("graphics/pokemon/icons/wynaut_icon.4bpp"); +const u8 gMonFootprint_Wynaut[] = INCBIN_U8("graphics/pokemon/footprints/wynaut_footprint.1bpp"); + +const u8 gMonStillFrontPic_Duskull[] = INCBIN_U8("graphics/pokemon/front_pics/duskull_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Duskull[] = INCBIN_U8("graphics/pokemon/palettes/duskull_palette.gbapal.lz"); +const u8 gMonBackPic_Duskull[] = INCBIN_U8("graphics/pokemon/back_pics/duskull_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Duskull[] = INCBIN_U8("graphics/pokemon/palettes/duskull_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Duskull[] = INCBIN_U8("graphics/pokemon/icons/duskull_icon.4bpp"); +const u8 gMonFootprint_Duskull[] = INCBIN_U8("graphics/pokemon/footprints/duskull_footprint.1bpp"); + +const u8 gMonStillFrontPic_Dusclops[] = INCBIN_U8("graphics/pokemon/front_pics/dusclops_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Dusclops[] = INCBIN_U8("graphics/pokemon/palettes/dusclops_palette.gbapal.lz"); +const u8 gMonBackPic_Dusclops[] = INCBIN_U8("graphics/pokemon/back_pics/dusclops_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Dusclops[] = INCBIN_U8("graphics/pokemon/palettes/dusclops_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Dusclops[] = INCBIN_U8("graphics/pokemon/icons/dusclops_icon.4bpp"); +const u8 gMonFootprint_Dusclops[] = INCBIN_U8("graphics/pokemon/footprints/dusclops_footprint.1bpp"); + +const u8 gMonStillFrontPic_Roselia[] = INCBIN_U8("graphics/pokemon/front_pics/roselia_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Roselia[] = INCBIN_U8("graphics/pokemon/palettes/roselia_palette.gbapal.lz"); +const u8 gMonBackPic_Roselia[] = INCBIN_U8("graphics/pokemon/back_pics/roselia_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Roselia[] = INCBIN_U8("graphics/pokemon/palettes/roselia_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Roselia[] = INCBIN_U8("graphics/pokemon/icons/roselia_icon.4bpp"); +const u8 gMonFootprint_Roselia[] = INCBIN_U8("graphics/pokemon/footprints/roselia_footprint.1bpp"); + +const u8 gMonStillFrontPic_Slakoth[] = INCBIN_U8("graphics/pokemon/front_pics/slakoth_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Slakoth[] = INCBIN_U8("graphics/pokemon/palettes/slakoth_palette.gbapal.lz"); +const u8 gMonBackPic_Slakoth[] = INCBIN_U8("graphics/pokemon/back_pics/slakoth_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Slakoth[] = INCBIN_U8("graphics/pokemon/palettes/slakoth_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Slakoth[] = INCBIN_U8("graphics/pokemon/icons/slakoth_icon.4bpp"); +const u8 gMonFootprint_Slakoth[] = INCBIN_U8("graphics/pokemon/footprints/slakoth_footprint.1bpp"); + +const u8 gMonStillFrontPic_Vigoroth[] = INCBIN_U8("graphics/pokemon/front_pics/vigoroth_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Vigoroth[] = INCBIN_U8("graphics/pokemon/palettes/vigoroth_palette.gbapal.lz"); +const u8 gMonBackPic_Vigoroth[] = INCBIN_U8("graphics/pokemon/back_pics/vigoroth_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Vigoroth[] = INCBIN_U8("graphics/pokemon/palettes/vigoroth_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Vigoroth[] = INCBIN_U8("graphics/pokemon/icons/vigoroth_icon.4bpp"); +const u8 gMonFootprint_Vigoroth[] = INCBIN_U8("graphics/pokemon/footprints/vigoroth_footprint.1bpp"); + +const u8 gMonStillFrontPic_Slaking[] = INCBIN_U8("graphics/pokemon/front_pics/slaking_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Slaking[] = INCBIN_U8("graphics/pokemon/palettes/slaking_palette.gbapal.lz"); +const u8 gMonBackPic_Slaking[] = INCBIN_U8("graphics/pokemon/back_pics/slaking_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Slaking[] = INCBIN_U8("graphics/pokemon/palettes/slaking_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Slaking[] = INCBIN_U8("graphics/pokemon/icons/slaking_icon.4bpp"); +const u8 gMonFootprint_Slaking[] = INCBIN_U8("graphics/pokemon/footprints/slaking_footprint.1bpp"); + +const u8 gMonStillFrontPic_Gulpin[] = INCBIN_U8("graphics/pokemon/front_pics/gulpin_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Gulpin[] = INCBIN_U8("graphics/pokemon/palettes/gulpin_palette.gbapal.lz"); +const u8 gMonBackPic_Gulpin[] = INCBIN_U8("graphics/pokemon/back_pics/gulpin_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Gulpin[] = INCBIN_U8("graphics/pokemon/palettes/gulpin_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Gulpin[] = INCBIN_U8("graphics/pokemon/icons/gulpin_icon.4bpp"); +const u8 gMonFootprint_Gulpin[] = INCBIN_U8("graphics/pokemon/footprints/gulpin_footprint.1bpp"); + +const u8 gMonStillFrontPic_Swalot[] = INCBIN_U8("graphics/pokemon/front_pics/swalot_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Swalot[] = INCBIN_U8("graphics/pokemon/palettes/swalot_palette.gbapal.lz"); +const u8 gMonBackPic_Swalot[] = INCBIN_U8("graphics/pokemon/back_pics/swalot_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Swalot[] = INCBIN_U8("graphics/pokemon/palettes/swalot_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Swalot[] = INCBIN_U8("graphics/pokemon/icons/swalot_icon.4bpp"); +const u8 gMonFootprint_Swalot[] = INCBIN_U8("graphics/pokemon/footprints/swalot_footprint.1bpp"); + +const u8 gMonStillFrontPic_Tropius[] = INCBIN_U8("graphics/pokemon/front_pics/tropius_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Tropius[] = INCBIN_U8("graphics/pokemon/palettes/tropius_palette.gbapal.lz"); +const u8 gMonBackPic_Tropius[] = INCBIN_U8("graphics/pokemon/back_pics/tropius_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Tropius[] = INCBIN_U8("graphics/pokemon/palettes/tropius_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Tropius[] = INCBIN_U8("graphics/pokemon/icons/tropius_icon.4bpp"); +const u8 gMonFootprint_Tropius[] = INCBIN_U8("graphics/pokemon/footprints/tropius_footprint.1bpp"); + +const u8 gMonStillFrontPic_Whismur[] = INCBIN_U8("graphics/pokemon/front_pics/whismur_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Whismur[] = INCBIN_U8("graphics/pokemon/palettes/whismur_palette.gbapal.lz"); +const u8 gMonBackPic_Whismur[] = INCBIN_U8("graphics/pokemon/back_pics/whismur_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Whismur[] = INCBIN_U8("graphics/pokemon/palettes/whismur_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Whismur[] = INCBIN_U8("graphics/pokemon/icons/whismur_icon.4bpp"); +const u8 gMonFootprint_Whismur[] = INCBIN_U8("graphics/pokemon/footprints/whismur_footprint.1bpp"); + +const u8 gMonStillFrontPic_Loudred[] = INCBIN_U8("graphics/pokemon/front_pics/loudred_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Loudred[] = INCBIN_U8("graphics/pokemon/palettes/loudred_palette.gbapal.lz"); +const u8 gMonBackPic_Loudred[] = INCBIN_U8("graphics/pokemon/back_pics/loudred_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Loudred[] = INCBIN_U8("graphics/pokemon/palettes/loudred_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Loudred[] = INCBIN_U8("graphics/pokemon/icons/loudred_icon.4bpp"); +const u8 gMonFootprint_Loudred[] = INCBIN_U8("graphics/pokemon/footprints/loudred_footprint.1bpp"); + +const u8 gMonStillFrontPic_Exploud[] = INCBIN_U8("graphics/pokemon/front_pics/exploud_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Exploud[] = INCBIN_U8("graphics/pokemon/palettes/exploud_palette.gbapal.lz"); +const u8 gMonBackPic_Exploud[] = INCBIN_U8("graphics/pokemon/back_pics/exploud_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Exploud[] = INCBIN_U8("graphics/pokemon/palettes/exploud_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Exploud[] = INCBIN_U8("graphics/pokemon/icons/exploud_icon.4bpp"); +const u8 gMonFootprint_Exploud[] = INCBIN_U8("graphics/pokemon/footprints/exploud_footprint.1bpp"); + +const u8 gMonStillFrontPic_Clamperl[] = INCBIN_U8("graphics/pokemon/front_pics/clamperl_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Clamperl[] = INCBIN_U8("graphics/pokemon/palettes/clamperl_palette.gbapal.lz"); +const u8 gMonBackPic_Clamperl[] = INCBIN_U8("graphics/pokemon/back_pics/clamperl_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Clamperl[] = INCBIN_U8("graphics/pokemon/palettes/clamperl_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Clamperl[] = INCBIN_U8("graphics/pokemon/icons/clamperl_icon.4bpp"); +const u8 gMonFootprint_Clamperl[] = INCBIN_U8("graphics/pokemon/footprints/clamperl_footprint.1bpp"); + +const u8 gMonStillFrontPic_Huntail[] = INCBIN_U8("graphics/pokemon/front_pics/huntail_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Huntail[] = INCBIN_U8("graphics/pokemon/palettes/huntail_palette.gbapal.lz"); +const u8 gMonBackPic_Huntail[] = INCBIN_U8("graphics/pokemon/back_pics/huntail_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Huntail[] = INCBIN_U8("graphics/pokemon/palettes/huntail_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Huntail[] = INCBIN_U8("graphics/pokemon/icons/huntail_icon.4bpp"); +const u8 gMonFootprint_Huntail[] = INCBIN_U8("graphics/pokemon/footprints/huntail_footprint.1bpp"); + +const u8 gMonStillFrontPic_Gorebyss[] = INCBIN_U8("graphics/pokemon/front_pics/gorebyss_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Gorebyss[] = INCBIN_U8("graphics/pokemon/palettes/gorebyss_palette.gbapal.lz"); +const u8 gMonBackPic_Gorebyss[] = INCBIN_U8("graphics/pokemon/back_pics/gorebyss_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Gorebyss[] = INCBIN_U8("graphics/pokemon/palettes/gorebyss_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Gorebyss[] = INCBIN_U8("graphics/pokemon/icons/gorebyss_icon.4bpp"); +const u8 gMonFootprint_Gorebyss[] = INCBIN_U8("graphics/pokemon/footprints/gorebyss_footprint.1bpp"); + +const u8 gMonStillFrontPic_Absol[] = INCBIN_U8("graphics/pokemon/front_pics/absol_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Absol[] = INCBIN_U8("graphics/pokemon/palettes/absol_palette.gbapal.lz"); +const u8 gMonBackPic_Absol[] = INCBIN_U8("graphics/pokemon/back_pics/absol_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Absol[] = INCBIN_U8("graphics/pokemon/palettes/absol_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Absol[] = INCBIN_U8("graphics/pokemon/icons/absol_icon.4bpp"); +const u8 gMonFootprint_Absol[] = INCBIN_U8("graphics/pokemon/footprints/absol_footprint.1bpp"); + +const u8 gMonStillFrontPic_Shuppet[] = INCBIN_U8("graphics/pokemon/front_pics/shuppet_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Shuppet[] = INCBIN_U8("graphics/pokemon/palettes/shuppet_palette.gbapal.lz"); +const u8 gMonBackPic_Shuppet[] = INCBIN_U8("graphics/pokemon/back_pics/shuppet_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Shuppet[] = INCBIN_U8("graphics/pokemon/palettes/shuppet_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Shuppet[] = INCBIN_U8("graphics/pokemon/icons/shuppet_icon.4bpp"); +const u8 gMonFootprint_Shuppet[] = INCBIN_U8("graphics/pokemon/footprints/shuppet_footprint.1bpp"); + +const u8 gMonStillFrontPic_Banette[] = INCBIN_U8("graphics/pokemon/front_pics/banette_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Banette[] = INCBIN_U8("graphics/pokemon/palettes/banette_palette.gbapal.lz"); +const u8 gMonBackPic_Banette[] = INCBIN_U8("graphics/pokemon/back_pics/banette_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Banette[] = INCBIN_U8("graphics/pokemon/palettes/banette_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Banette[] = INCBIN_U8("graphics/pokemon/icons/banette_icon.4bpp"); +const u8 gMonFootprint_Banette[] = INCBIN_U8("graphics/pokemon/footprints/banette_footprint.1bpp"); + +const u8 gMonStillFrontPic_Seviper[] = INCBIN_U8("graphics/pokemon/front_pics/seviper_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Seviper[] = INCBIN_U8("graphics/pokemon/palettes/seviper_palette.gbapal.lz"); +const u8 gMonBackPic_Seviper[] = INCBIN_U8("graphics/pokemon/back_pics/seviper_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Seviper[] = INCBIN_U8("graphics/pokemon/palettes/seviper_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Seviper[] = INCBIN_U8("graphics/pokemon/icons/seviper_icon.4bpp"); +const u8 gMonFootprint_Seviper[] = INCBIN_U8("graphics/pokemon/footprints/seviper_footprint.1bpp"); + +const u8 gMonStillFrontPic_Zangoose[] = INCBIN_U8("graphics/pokemon/front_pics/zangoose_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Zangoose[] = INCBIN_U8("graphics/pokemon/palettes/zangoose_palette.gbapal.lz"); +const u8 gMonBackPic_Zangoose[] = INCBIN_U8("graphics/pokemon/back_pics/zangoose_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Zangoose[] = INCBIN_U8("graphics/pokemon/palettes/zangoose_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Zangoose[] = INCBIN_U8("graphics/pokemon/icons/zangoose_icon.4bpp"); +const u8 gMonFootprint_Zangoose[] = INCBIN_U8("graphics/pokemon/footprints/zangoose_footprint.1bpp"); + +const u8 gMonStillFrontPic_Relicanth[] = INCBIN_U8("graphics/pokemon/front_pics/relicanth_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Relicanth[] = INCBIN_U8("graphics/pokemon/palettes/relicanth_palette.gbapal.lz"); +const u8 gMonBackPic_Relicanth[] = INCBIN_U8("graphics/pokemon/back_pics/relicanth_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Relicanth[] = INCBIN_U8("graphics/pokemon/palettes/relicanth_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Relicanth[] = INCBIN_U8("graphics/pokemon/icons/relicanth_icon.4bpp"); +const u8 gMonFootprint_Relicanth[] = INCBIN_U8("graphics/pokemon/footprints/relicanth_footprint.1bpp"); + +const u8 gMonStillFrontPic_Aron[] = INCBIN_U8("graphics/pokemon/front_pics/aron_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Aron[] = INCBIN_U8("graphics/pokemon/palettes/aron_palette.gbapal.lz"); +const u8 gMonBackPic_Aron[] = INCBIN_U8("graphics/pokemon/back_pics/aron_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Aron[] = INCBIN_U8("graphics/pokemon/palettes/aron_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Aron[] = INCBIN_U8("graphics/pokemon/icons/aron_icon.4bpp"); +const u8 gMonFootprint_Aron[] = INCBIN_U8("graphics/pokemon/footprints/aron_footprint.1bpp"); + +const u8 gMonStillFrontPic_Lairon[] = INCBIN_U8("graphics/pokemon/front_pics/lairon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Lairon[] = INCBIN_U8("graphics/pokemon/palettes/lairon_palette.gbapal.lz"); +const u8 gMonBackPic_Lairon[] = INCBIN_U8("graphics/pokemon/back_pics/lairon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Lairon[] = INCBIN_U8("graphics/pokemon/palettes/lairon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Lairon[] = INCBIN_U8("graphics/pokemon/icons/lairon_icon.4bpp"); +const u8 gMonFootprint_Lairon[] = INCBIN_U8("graphics/pokemon/footprints/lairon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Aggron[] = INCBIN_U8("graphics/pokemon/front_pics/aggron_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Aggron[] = INCBIN_U8("graphics/pokemon/palettes/aggron_palette.gbapal.lz"); +const u8 gMonBackPic_Aggron[] = INCBIN_U8("graphics/pokemon/back_pics/aggron_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Aggron[] = INCBIN_U8("graphics/pokemon/palettes/aggron_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Aggron[] = INCBIN_U8("graphics/pokemon/icons/aggron_icon.4bpp"); +const u8 gMonFootprint_Aggron[] = INCBIN_U8("graphics/pokemon/footprints/aggron_footprint.1bpp"); + +const u8 gMonStillFrontPic_Castform[] = INCBIN_U8("graphics/pokemon/front_pics/castform_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Castform[] = INCBIN_U8("graphics/pokemon/palettes/castform_palette.gbapal.lz"); +const u8 gMonBackPic_Castform[] = INCBIN_U8("graphics/pokemon/back_pics/castform_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Castform[] = INCBIN_U8("graphics/pokemon/palettes/castform_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Castform[] = INCBIN_U8("graphics/pokemon/icons/castform_icon.4bpp"); +const u8 gMonFootprint_Castform[] = INCBIN_U8("graphics/pokemon/footprints/castform_footprint.1bpp"); + +const u8 gMonStillFrontPic_Volbeat[] = INCBIN_U8("graphics/pokemon/front_pics/volbeat_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Volbeat[] = INCBIN_U8("graphics/pokemon/palettes/volbeat_palette.gbapal.lz"); +const u8 gMonBackPic_Volbeat[] = INCBIN_U8("graphics/pokemon/back_pics/volbeat_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Volbeat[] = INCBIN_U8("graphics/pokemon/palettes/volbeat_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Volbeat[] = INCBIN_U8("graphics/pokemon/icons/volbeat_icon.4bpp"); +const u8 gMonFootprint_Volbeat[] = INCBIN_U8("graphics/pokemon/footprints/volbeat_footprint.1bpp"); + +const u8 gMonStillFrontPic_Illumise[] = INCBIN_U8("graphics/pokemon/front_pics/illumise_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Illumise[] = INCBIN_U8("graphics/pokemon/palettes/illumise_palette.gbapal.lz"); +const u8 gMonBackPic_Illumise[] = INCBIN_U8("graphics/pokemon/back_pics/illumise_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Illumise[] = INCBIN_U8("graphics/pokemon/palettes/illumise_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Illumise[] = INCBIN_U8("graphics/pokemon/icons/illumise_icon.4bpp"); +const u8 gMonFootprint_Illumise[] = INCBIN_U8("graphics/pokemon/footprints/illumise_footprint.1bpp"); + +const u8 gMonStillFrontPic_Lileep[] = INCBIN_U8("graphics/pokemon/front_pics/lileep_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Lileep[] = INCBIN_U8("graphics/pokemon/palettes/lileep_palette.gbapal.lz"); +const u8 gMonBackPic_Lileep[] = INCBIN_U8("graphics/pokemon/back_pics/lileep_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Lileep[] = INCBIN_U8("graphics/pokemon/palettes/lileep_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Lileep[] = INCBIN_U8("graphics/pokemon/icons/lileep_icon.4bpp"); +const u8 gMonFootprint_Lileep[] = INCBIN_U8("graphics/pokemon/footprints/lileep_footprint.1bpp"); + +const u8 gMonStillFrontPic_Cradily[] = INCBIN_U8("graphics/pokemon/front_pics/cradily_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Cradily[] = INCBIN_U8("graphics/pokemon/palettes/cradily_palette.gbapal.lz"); +const u8 gMonBackPic_Cradily[] = INCBIN_U8("graphics/pokemon/back_pics/cradily_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Cradily[] = INCBIN_U8("graphics/pokemon/palettes/cradily_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Cradily[] = INCBIN_U8("graphics/pokemon/icons/cradily_icon.4bpp"); +const u8 gMonFootprint_Cradily[] = INCBIN_U8("graphics/pokemon/footprints/cradily_footprint.1bpp"); + +const u8 gMonStillFrontPic_Anorith[] = INCBIN_U8("graphics/pokemon/front_pics/anorith_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Anorith[] = INCBIN_U8("graphics/pokemon/palettes/anorith_palette.gbapal.lz"); +const u8 gMonBackPic_Anorith[] = INCBIN_U8("graphics/pokemon/back_pics/anorith_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Anorith[] = INCBIN_U8("graphics/pokemon/palettes/anorith_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Anorith[] = INCBIN_U8("graphics/pokemon/icons/anorith_icon.4bpp"); +const u8 gMonFootprint_Anorith[] = INCBIN_U8("graphics/pokemon/footprints/anorith_footprint.1bpp"); + +const u8 gMonStillFrontPic_Armaldo[] = INCBIN_U8("graphics/pokemon/front_pics/armaldo_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Armaldo[] = INCBIN_U8("graphics/pokemon/palettes/armaldo_palette.gbapal.lz"); +const u8 gMonBackPic_Armaldo[] = INCBIN_U8("graphics/pokemon/back_pics/armaldo_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Armaldo[] = INCBIN_U8("graphics/pokemon/palettes/armaldo_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Armaldo[] = INCBIN_U8("graphics/pokemon/icons/armaldo_icon.4bpp"); +const u8 gMonFootprint_Armaldo[] = INCBIN_U8("graphics/pokemon/footprints/armaldo_footprint.1bpp"); + +const u8 gMonStillFrontPic_Ralts[] = INCBIN_U8("graphics/pokemon/front_pics/ralts_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Ralts[] = INCBIN_U8("graphics/pokemon/palettes/ralts_palette.gbapal.lz"); +const u8 gMonBackPic_Ralts[] = INCBIN_U8("graphics/pokemon/back_pics/ralts_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Ralts[] = INCBIN_U8("graphics/pokemon/palettes/ralts_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Ralts[] = INCBIN_U8("graphics/pokemon/icons/ralts_icon.4bpp"); +const u8 gMonFootprint_Ralts[] = INCBIN_U8("graphics/pokemon/footprints/ralts_footprint.1bpp"); + +const u8 gMonStillFrontPic_Kirlia[] = INCBIN_U8("graphics/pokemon/front_pics/kirlia_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Kirlia[] = INCBIN_U8("graphics/pokemon/palettes/kirlia_palette.gbapal.lz"); +const u8 gMonBackPic_Kirlia[] = INCBIN_U8("graphics/pokemon/back_pics/kirlia_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Kirlia[] = INCBIN_U8("graphics/pokemon/palettes/kirlia_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Kirlia[] = INCBIN_U8("graphics/pokemon/icons/kirlia_icon.4bpp"); +const u8 gMonFootprint_Kirlia[] = INCBIN_U8("graphics/pokemon/footprints/kirlia_footprint.1bpp"); + +const u8 gMonStillFrontPic_Gardevoir[] = INCBIN_U8("graphics/pokemon/front_pics/gardevoir_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Gardevoir[] = INCBIN_U8("graphics/pokemon/palettes/gardevoir_palette.gbapal.lz"); +const u8 gMonBackPic_Gardevoir[] = INCBIN_U8("graphics/pokemon/back_pics/gardevoir_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Gardevoir[] = INCBIN_U8("graphics/pokemon/palettes/gardevoir_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Gardevoir[] = INCBIN_U8("graphics/pokemon/icons/gardevoir_icon.4bpp"); +const u8 gMonFootprint_Gardevoir[] = INCBIN_U8("graphics/pokemon/footprints/gardevoir_footprint.1bpp"); + +const u8 gMonStillFrontPic_Bagon[] = INCBIN_U8("graphics/pokemon/front_pics/bagon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Bagon[] = INCBIN_U8("graphics/pokemon/palettes/bagon_palette.gbapal.lz"); +const u8 gMonBackPic_Bagon[] = INCBIN_U8("graphics/pokemon/back_pics/bagon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Bagon[] = INCBIN_U8("graphics/pokemon/palettes/bagon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Bagon[] = INCBIN_U8("graphics/pokemon/icons/bagon_icon.4bpp"); +const u8 gMonFootprint_Bagon[] = INCBIN_U8("graphics/pokemon/footprints/bagon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Shelgon[] = INCBIN_U8("graphics/pokemon/front_pics/shelgon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Shelgon[] = INCBIN_U8("graphics/pokemon/palettes/shelgon_palette.gbapal.lz"); +const u8 gMonBackPic_Shelgon[] = INCBIN_U8("graphics/pokemon/back_pics/shelgon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Shelgon[] = INCBIN_U8("graphics/pokemon/palettes/shelgon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Shelgon[] = INCBIN_U8("graphics/pokemon/icons/shelgon_icon.4bpp"); +const u8 gMonFootprint_Shelgon[] = INCBIN_U8("graphics/pokemon/footprints/shelgon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Salamence[] = INCBIN_U8("graphics/pokemon/front_pics/salamence_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Salamence[] = INCBIN_U8("graphics/pokemon/palettes/salamence_palette.gbapal.lz"); +const u8 gMonBackPic_Salamence[] = INCBIN_U8("graphics/pokemon/back_pics/salamence_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Salamence[] = INCBIN_U8("graphics/pokemon/palettes/salamence_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Salamence[] = INCBIN_U8("graphics/pokemon/icons/salamence_icon.4bpp"); +const u8 gMonFootprint_Salamence[] = INCBIN_U8("graphics/pokemon/footprints/salamence_footprint.1bpp"); + +const u8 gMonStillFrontPic_Beldum[] = INCBIN_U8("graphics/pokemon/front_pics/beldum_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Beldum[] = INCBIN_U8("graphics/pokemon/palettes/beldum_palette.gbapal.lz"); +const u8 gMonBackPic_Beldum[] = INCBIN_U8("graphics/pokemon/back_pics/beldum_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Beldum[] = INCBIN_U8("graphics/pokemon/palettes/beldum_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Beldum[] = INCBIN_U8("graphics/pokemon/icons/beldum_icon.4bpp"); +const u8 gMonFootprint_Beldum[] = INCBIN_U8("graphics/pokemon/footprints/beldum_footprint.1bpp"); + +const u8 gMonStillFrontPic_Metang[] = INCBIN_U8("graphics/pokemon/front_pics/metang_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Metang[] = INCBIN_U8("graphics/pokemon/palettes/metang_palette.gbapal.lz"); +const u8 gMonBackPic_Metang[] = INCBIN_U8("graphics/pokemon/back_pics/metang_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Metang[] = INCBIN_U8("graphics/pokemon/palettes/metang_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Metang[] = INCBIN_U8("graphics/pokemon/icons/metang_icon.4bpp"); +const u8 gMonFootprint_Metang[] = INCBIN_U8("graphics/pokemon/footprints/metang_footprint.1bpp"); + +const u8 gMonStillFrontPic_Metagross[] = INCBIN_U8("graphics/pokemon/front_pics/metagross_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Metagross[] = INCBIN_U8("graphics/pokemon/palettes/metagross_palette.gbapal.lz"); +const u8 gMonBackPic_Metagross[] = INCBIN_U8("graphics/pokemon/back_pics/metagross_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Metagross[] = INCBIN_U8("graphics/pokemon/palettes/metagross_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Metagross[] = INCBIN_U8("graphics/pokemon/icons/metagross_icon.4bpp"); +const u8 gMonFootprint_Metagross[] = INCBIN_U8("graphics/pokemon/footprints/metagross_footprint.1bpp"); + +const u8 gMonStillFrontPic_Regirock[] = INCBIN_U8("graphics/pokemon/front_pics/regirock_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Regirock[] = INCBIN_U8("graphics/pokemon/palettes/regirock_palette.gbapal.lz"); +const u8 gMonBackPic_Regirock[] = INCBIN_U8("graphics/pokemon/back_pics/regirock_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Regirock[] = INCBIN_U8("graphics/pokemon/palettes/regirock_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Regirock[] = INCBIN_U8("graphics/pokemon/icons/regirock_icon.4bpp"); +const u8 gMonFootprint_Regirock[] = INCBIN_U8("graphics/pokemon/footprints/regirock_footprint.1bpp"); + +const u8 gMonStillFrontPic_Regice[] = INCBIN_U8("graphics/pokemon/front_pics/regice_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Regice[] = INCBIN_U8("graphics/pokemon/palettes/regice_palette.gbapal.lz"); +const u8 gMonBackPic_Regice[] = INCBIN_U8("graphics/pokemon/back_pics/regice_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Regice[] = INCBIN_U8("graphics/pokemon/palettes/regice_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Regice[] = INCBIN_U8("graphics/pokemon/icons/regice_icon.4bpp"); +const u8 gMonFootprint_Regice[] = INCBIN_U8("graphics/pokemon/footprints/regice_footprint.1bpp"); + +const u8 gMonStillFrontPic_Registeel[] = INCBIN_U8("graphics/pokemon/front_pics/registeel_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Registeel[] = INCBIN_U8("graphics/pokemon/palettes/registeel_palette.gbapal.lz"); +const u8 gMonBackPic_Registeel[] = INCBIN_U8("graphics/pokemon/back_pics/registeel_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Registeel[] = INCBIN_U8("graphics/pokemon/palettes/registeel_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Registeel[] = INCBIN_U8("graphics/pokemon/icons/registeel_icon.4bpp"); +const u8 gMonFootprint_Registeel[] = INCBIN_U8("graphics/pokemon/footprints/registeel_footprint.1bpp"); + +const u8 gMonStillFrontPic_Kyogre[] = INCBIN_U8("graphics/pokemon/front_pics/kyogre_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Kyogre[] = INCBIN_U8("graphics/pokemon/palettes/kyogre_palette.gbapal.lz"); +const u8 gMonBackPic_Kyogre[] = INCBIN_U8("graphics/pokemon/back_pics/kyogre_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Kyogre[] = INCBIN_U8("graphics/pokemon/palettes/kyogre_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Kyogre[] = INCBIN_U8("graphics/pokemon/icons/kyogre_icon.4bpp"); +const u8 gMonFootprint_Kyogre[] = INCBIN_U8("graphics/pokemon/footprints/kyogre_footprint.1bpp"); + +const u8 gMonStillFrontPic_Groudon[] = INCBIN_U8("graphics/pokemon/front_pics/groudon_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Groudon[] = INCBIN_U8("graphics/pokemon/palettes/groudon_palette.gbapal.lz"); +const u8 gMonBackPic_Groudon[] = INCBIN_U8("graphics/pokemon/back_pics/groudon_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Groudon[] = INCBIN_U8("graphics/pokemon/palettes/groudon_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Groudon[] = INCBIN_U8("graphics/pokemon/icons/groudon_icon.4bpp"); +const u8 gMonFootprint_Groudon[] = INCBIN_U8("graphics/pokemon/footprints/groudon_footprint.1bpp"); + +const u8 gMonStillFrontPic_Rayquaza[] = INCBIN_U8("graphics/pokemon/front_pics/rayquaza_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Rayquaza[] = INCBIN_U8("graphics/pokemon/palettes/rayquaza_palette.gbapal.lz"); +const u8 gMonBackPic_Rayquaza[] = INCBIN_U8("graphics/pokemon/back_pics/rayquaza_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Rayquaza[] = INCBIN_U8("graphics/pokemon/palettes/rayquaza_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Rayquaza[] = INCBIN_U8("graphics/pokemon/icons/rayquaza_icon.4bpp"); +const u8 gMonFootprint_Rayquaza[] = INCBIN_U8("graphics/pokemon/footprints/rayquaza_footprint.1bpp"); + +const u8 gMonStillFrontPic_Latias[] = INCBIN_U8("graphics/pokemon/front_pics/latias_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Latias[] = INCBIN_U8("graphics/pokemon/palettes/latias_palette.gbapal.lz"); +const u8 gMonBackPic_Latias[] = INCBIN_U8("graphics/pokemon/back_pics/latias_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Latias[] = INCBIN_U8("graphics/pokemon/palettes/latias_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Latias[] = INCBIN_U8("graphics/pokemon/icons/latias_icon.4bpp"); +const u8 gMonFootprint_Latias[] = INCBIN_U8("graphics/pokemon/footprints/latias_footprint.1bpp"); + +const u8 gMonStillFrontPic_Latios[] = INCBIN_U8("graphics/pokemon/front_pics/latios_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Latios[] = INCBIN_U8("graphics/pokemon/palettes/latios_palette.gbapal.lz"); +const u8 gMonBackPic_Latios[] = INCBIN_U8("graphics/pokemon/back_pics/latios_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Latios[] = INCBIN_U8("graphics/pokemon/palettes/latios_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Latios[] = INCBIN_U8("graphics/pokemon/icons/latios_icon.4bpp"); +const u8 gMonFootprint_Latios[] = INCBIN_U8("graphics/pokemon/footprints/latios_footprint.1bpp"); + +const u8 gMonStillFrontPic_Jirachi[] = INCBIN_U8("graphics/pokemon/front_pics/jirachi_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Jirachi[] = INCBIN_U8("graphics/pokemon/palettes/jirachi_palette.gbapal.lz"); +const u8 gMonBackPic_Jirachi[] = INCBIN_U8("graphics/pokemon/back_pics/jirachi_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Jirachi[] = INCBIN_U8("graphics/pokemon/palettes/jirachi_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Jirachi[] = INCBIN_U8("graphics/pokemon/icons/jirachi_icon.4bpp"); +const u8 gMonFootprint_Jirachi[] = INCBIN_U8("graphics/pokemon/footprints/jirachi_footprint.1bpp"); + +const u8 gMonStillFrontPic_Deoxys[] = INCBIN_U8("graphics/pokemon/front_pics/deoxys_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Deoxys[] = INCBIN_U8("graphics/pokemon/palettes/deoxys_palette.gbapal.lz"); +const u8 gMonBackPic_Deoxys[] = INCBIN_U8("graphics/pokemon/back_pics/deoxys_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Deoxys[] = INCBIN_U8("graphics/pokemon/palettes/deoxys_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Deoxys[] = INCBIN_U8("graphics/pokemon/icons/deoxys_icon.4bpp"); +const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/icons/deoxys_speed_icon.4bpp"); +const u8 gMonIcon_DeoxysSpeedWide[] = INCBIN_U8("graphics/unused/deoxys_speed_icon_wide.4bpp"); + +asm(".space 0x6800"); + +const u16 gUnknown_D437F8[] = INCBIN_U16("graphics/unknown/unknown_D437F8.bin"); + +const u8 gMonFootprint_Deoxys[] = INCBIN_U8("graphics/pokemon/footprints/deoxys_footprint.1bpp"); + +const u8 gMonStillFrontPic_Chimecho[] = INCBIN_U8("graphics/pokemon/front_pics/chimecho_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Chimecho[] = INCBIN_U8("graphics/pokemon/palettes/chimecho_palette.gbapal.lz"); +const u8 gMonBackPic_Chimecho[] = INCBIN_U8("graphics/pokemon/back_pics/chimecho_back_pic.4bpp.lz"); +const u8 gMonShinyPalette_Chimecho[] = INCBIN_U8("graphics/pokemon/palettes/chimecho_shiny_palette.gbapal.lz"); +const u8 gMonIcon_Chimecho[] = INCBIN_U8("graphics/pokemon/icons/chimecho_icon.4bpp"); +const u8 gMonFootprint_Chimecho[] = INCBIN_U8("graphics/pokemon/footprints/chimecho_footprint.1bpp"); + +const u8 gMonStillFrontPic_Egg[] = INCBIN_U8("graphics/pokemon/front_pics/egg_still_front_pic.4bpp.lz"); +const u8 gMonPalette_Egg[] = INCBIN_U8("graphics/pokemon/palettes/egg_palette.gbapal.lz"); + +const u8 gMonStillFrontPic_UnownB[] = INCBIN_U8("graphics/pokemon/front_pics/unown_b_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownB[] = INCBIN_U8("graphics/pokemon/back_pics/unown_b_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownB[] = INCBIN_U8("graphics/pokemon/icons/unown_B_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownC[] = INCBIN_U8("graphics/pokemon/front_pics/unown_c_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownC[] = INCBIN_U8("graphics/pokemon/back_pics/unown_c_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownC[] = INCBIN_U8("graphics/pokemon/icons/unown_C_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownD[] = INCBIN_U8("graphics/pokemon/front_pics/unown_d_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownD[] = INCBIN_U8("graphics/pokemon/back_pics/unown_d_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownD[] = INCBIN_U8("graphics/pokemon/icons/unown_D_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownE[] = INCBIN_U8("graphics/pokemon/front_pics/unown_e_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownE[] = INCBIN_U8("graphics/pokemon/back_pics/unown_e_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownE[] = INCBIN_U8("graphics/pokemon/icons/unown_E_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownF[] = INCBIN_U8("graphics/pokemon/front_pics/unown_f_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownF[] = INCBIN_U8("graphics/pokemon/back_pics/unown_f_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownF[] = INCBIN_U8("graphics/pokemon/icons/unown_F_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownG[] = INCBIN_U8("graphics/pokemon/front_pics/unown_g_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownG[] = INCBIN_U8("graphics/pokemon/back_pics/unown_g_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownG[] = INCBIN_U8("graphics/pokemon/icons/unown_G_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownH[] = INCBIN_U8("graphics/pokemon/front_pics/unown_h_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownH[] = INCBIN_U8("graphics/pokemon/back_pics/unown_h_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownH[] = INCBIN_U8("graphics/pokemon/icons/unown_H_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownI[] = INCBIN_U8("graphics/pokemon/front_pics/unown_i_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownI[] = INCBIN_U8("graphics/pokemon/back_pics/unown_i_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownI[] = INCBIN_U8("graphics/pokemon/icons/unown_I_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownJ[] = INCBIN_U8("graphics/pokemon/front_pics/unown_j_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownJ[] = INCBIN_U8("graphics/pokemon/back_pics/unown_j_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownJ[] = INCBIN_U8("graphics/pokemon/icons/unown_J_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownK[] = INCBIN_U8("graphics/pokemon/front_pics/unown_k_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownK[] = INCBIN_U8("graphics/pokemon/back_pics/unown_k_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownK[] = INCBIN_U8("graphics/pokemon/icons/unown_K_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownL[] = INCBIN_U8("graphics/pokemon/front_pics/unown_l_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownL[] = INCBIN_U8("graphics/pokemon/back_pics/unown_l_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownL[] = INCBIN_U8("graphics/pokemon/icons/unown_L_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownM[] = INCBIN_U8("graphics/pokemon/front_pics/unown_m_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownM[] = INCBIN_U8("graphics/pokemon/back_pics/unown_m_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownM[] = INCBIN_U8("graphics/pokemon/icons/unown_M_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownN[] = INCBIN_U8("graphics/pokemon/front_pics/unown_n_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownN[] = INCBIN_U8("graphics/pokemon/back_pics/unown_n_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownN[] = INCBIN_U8("graphics/pokemon/icons/unown_N_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownO[] = INCBIN_U8("graphics/pokemon/front_pics/unown_o_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownO[] = INCBIN_U8("graphics/pokemon/back_pics/unown_o_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownO[] = INCBIN_U8("graphics/pokemon/icons/unown_O_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownP[] = INCBIN_U8("graphics/pokemon/front_pics/unown_p_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownP[] = INCBIN_U8("graphics/pokemon/back_pics/unown_p_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownP[] = INCBIN_U8("graphics/pokemon/icons/unown_P_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownQ[] = INCBIN_U8("graphics/pokemon/front_pics/unown_q_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownQ[] = INCBIN_U8("graphics/pokemon/back_pics/unown_q_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownQ[] = INCBIN_U8("graphics/pokemon/icons/unown_Q_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownR[] = INCBIN_U8("graphics/pokemon/front_pics/unown_r_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownR[] = INCBIN_U8("graphics/pokemon/back_pics/unown_r_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownR[] = INCBIN_U8("graphics/pokemon/icons/unown_R_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownS[] = INCBIN_U8("graphics/pokemon/front_pics/unown_s_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownS[] = INCBIN_U8("graphics/pokemon/back_pics/unown_s_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownS[] = INCBIN_U8("graphics/pokemon/icons/unown_S_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownT[] = INCBIN_U8("graphics/pokemon/front_pics/unown_t_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownT[] = INCBIN_U8("graphics/pokemon/back_pics/unown_t_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownT[] = INCBIN_U8("graphics/pokemon/icons/unown_T_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownU[] = INCBIN_U8("graphics/pokemon/front_pics/unown_u_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownU[] = INCBIN_U8("graphics/pokemon/back_pics/unown_u_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownU[] = INCBIN_U8("graphics/pokemon/icons/unown_U_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownV[] = INCBIN_U8("graphics/pokemon/front_pics/unown_v_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownV[] = INCBIN_U8("graphics/pokemon/back_pics/unown_v_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownV[] = INCBIN_U8("graphics/pokemon/icons/unown_V_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownW[] = INCBIN_U8("graphics/pokemon/front_pics/unown_w_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownW[] = INCBIN_U8("graphics/pokemon/back_pics/unown_w_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownW[] = INCBIN_U8("graphics/pokemon/icons/unown_W_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownX[] = INCBIN_U8("graphics/pokemon/front_pics/unown_x_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownX[] = INCBIN_U8("graphics/pokemon/back_pics/unown_x_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownX[] = INCBIN_U8("graphics/pokemon/icons/unown_X_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownY[] = INCBIN_U8("graphics/pokemon/front_pics/unown_y_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownY[] = INCBIN_U8("graphics/pokemon/back_pics/unown_y_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownY[] = INCBIN_U8("graphics/pokemon/icons/unown_Y_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownZ[] = INCBIN_U8("graphics/pokemon/front_pics/unown_z_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownZ[] = INCBIN_U8("graphics/pokemon/back_pics/unown_z_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownZ[] = INCBIN_U8("graphics/pokemon/icons/unown_Z_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/front_pics/unown_exclamation_mark_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/back_pics/unown_exclamation_mark_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/icons/unown_exclamation_mark_icon.4bpp"); + +const u8 gMonStillFrontPic_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/front_pics/unown_question_mark_still_front_pic.4bpp.lz"); +const u8 gMonBackPic_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/back_pics/unown_question_mark_back_pic.4bpp.lz"); +const u8 gMonIcon_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/icons/unown_question_mark_icon.4bpp"); diff --git a/src/graphics/trainers.h b/src/graphics/trainers.h new file mode 100644 index 0000000000..98a5471ef3 --- /dev/null +++ b/src/graphics/trainers.h @@ -0,0 +1,290 @@ +const u8 gTrainerFrontPic_Hiker[] = INCBIN_U8("graphics/trainers/front_pics/hiker_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Hiker[] = INCBIN_U8("graphics/trainers/palettes/hiker.gbapal.lz"); + +const u8 gTrainerFrontPic_AquaGruntM[] = INCBIN_U8("graphics/trainers/front_pics/aqua_grunt_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_AquaGruntM[] = INCBIN_U8("graphics/trainers/palettes/aqua_grunt_m.gbapal.lz"); + +const u8 gTrainerFrontPic_PokemonBreederF[] = INCBIN_U8("graphics/trainers/front_pics/pokemon_breeder_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_PokemonBreederF[] = INCBIN_U8("graphics/trainers/palettes/pokemon_breeder_f.gbapal.lz"); + +const u8 gTrainerFrontPic_CoolTrainerM[] = INCBIN_U8("graphics/trainers/front_pics/cool_trainer_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_CoolTrainerM[] = INCBIN_U8("graphics/trainers/palettes/cool_trainer_m.gbapal.lz"); + +const u8 gTrainerFrontPic_BirdKeeper[] = INCBIN_U8("graphics/trainers/front_pics/bird_keeper_front_pic.4bpp.lz"); +const u8 gTrainerPalette_BirdKeeper[] = INCBIN_U8("graphics/trainers/palettes/bird_keeper.gbapal.lz"); + +const u8 gTrainerFrontPic_Collector[] = INCBIN_U8("graphics/trainers/front_pics/collector_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Collector[] = INCBIN_U8("graphics/trainers/palettes/collector.gbapal.lz"); + +const u8 gTrainerFrontPic_AquaGruntF[] = INCBIN_U8("graphics/trainers/front_pics/aqua_grunt_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_AquaGruntF[] = INCBIN_U8("graphics/trainers/palettes/aqua_grunt_f.gbapal.lz"); + +const u8 gTrainerFrontPic_SwimmerM[] = INCBIN_U8("graphics/trainers/front_pics/swimmer_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_SwimmerM[] = INCBIN_U8("graphics/trainers/palettes/swimmer_m.gbapal.lz"); + +const u8 gTrainerFrontPic_MagmaGruntM[] = INCBIN_U8("graphics/trainers/front_pics/magma_grunt_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_MagmaGruntM[] = INCBIN_U8("graphics/trainers/palettes/magma_grunt_m.gbapal.lz"); + +const u8 gTrainerFrontPic_ExpertM[] = INCBIN_U8("graphics/trainers/front_pics/expert_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_ExpertM[] = INCBIN_U8("graphics/trainers/palettes/expert_m.gbapal.lz"); + +const u8 gTrainerFrontPic_AquaAdminM[] = INCBIN_U8("graphics/trainers/front_pics/aqua_admin_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_AquaAdminM[] = INCBIN_U8("graphics/trainers/palettes/aqua_admin_m.gbapal.lz"); + +const u8 gTrainerFrontPic_BlackBelt[] = INCBIN_U8("graphics/trainers/front_pics/black_belt_front_pic.4bpp.lz"); +const u8 gTrainerPalette_BlackBelt[] = INCBIN_U8("graphics/trainers/palettes/black_belt.gbapal.lz"); + +const u8 gTrainerFrontPic_AquaAdminF[] = INCBIN_U8("graphics/trainers/front_pics/aqua_admin_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_AquaAdminF[] = INCBIN_U8("graphics/trainers/palettes/aqua_admin_f.gbapal.lz"); + +const u8 gTrainerFrontPic_AquaLeaderArchie[] = INCBIN_U8("graphics/trainers/front_pics/aqua_leader_archie_front_pic.4bpp.lz"); +const u8 gTrainerPalette_AquaLeaderArchie[] = INCBIN_U8("graphics/trainers/palettes/aqua_leader_archie.gbapal.lz"); + +const u8 gTrainerFrontPic_HexManiac[] = INCBIN_U8("graphics/trainers/front_pics/hex_maniac_front_pic.4bpp.lz"); +const u8 gTrainerPalette_HexManiac[] = INCBIN_U8("graphics/trainers/palettes/hex_maniac.gbapal.lz"); + +const u8 gTrainerFrontPic_AromaLady[] = INCBIN_U8("graphics/trainers/front_pics/aroma_lady_front_pic.4bpp.lz"); +const u8 gTrainerPalette_AromaLady[] = INCBIN_U8("graphics/trainers/palettes/aroma_lady.gbapal.lz"); + +const u8 gTrainerFrontPic_RuinManiac[] = INCBIN_U8("graphics/trainers/front_pics/ruin_maniac_front_pic.4bpp.lz"); +const u8 gTrainerPalette_RuinManiac[] = INCBIN_U8("graphics/trainers/palettes/ruin_maniac.gbapal.lz"); + +const u8 gTrainerFrontPic_Interviewer[] = INCBIN_U8("graphics/trainers/front_pics/interviewer_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Interviewer[] = INCBIN_U8("graphics/trainers/palettes/interviewer.gbapal.lz"); + +const u8 gTrainerFrontPic_TuberF[] = INCBIN_U8("graphics/trainers/front_pics/tuber_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_TuberF[] = INCBIN_U8("graphics/trainers/palettes/tuber_f.gbapal.lz"); + +const u8 gTrainerFrontPic_TuberM[] = INCBIN_U8("graphics/trainers/front_pics/tuber_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_TuberM[] = INCBIN_U8("graphics/trainers/palettes/tuber_m.gbapal.lz"); + +const u8 gTrainerFrontPic_CoolTrainerF[] = INCBIN_U8("graphics/trainers/front_pics/cool_trainer_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_CoolTrainerF[] = INCBIN_U8("graphics/trainers/palettes/cool_trainer_f.gbapal.lz"); + +const u8 gTrainerFrontPic_Lady[] = INCBIN_U8("graphics/trainers/front_pics/lady_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Lady[] = INCBIN_U8("graphics/trainers/palettes/lady.gbapal.lz"); + +const u8 gTrainerFrontPic_Beauty[] = INCBIN_U8("graphics/trainers/front_pics/beauty_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Beauty[] = INCBIN_U8("graphics/trainers/palettes/beauty.gbapal.lz"); + +const u8 gTrainerFrontPic_RichBoy[] = INCBIN_U8("graphics/trainers/front_pics/rich_boy_front_pic.4bpp.lz"); +const u8 gTrainerPalette_RichBoy[] = INCBIN_U8("graphics/trainers/palettes/rich_boy.gbapal.lz"); + +const u8 gTrainerFrontPic_ExpertF[] = INCBIN_U8("graphics/trainers/front_pics/expert_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_ExpertF[] = INCBIN_U8("graphics/trainers/palettes/expert_f.gbapal.lz"); + +const u8 gTrainerFrontPic_Pokemaniac[] = INCBIN_U8("graphics/trainers/front_pics/pokemaniac_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Pokemaniac[] = INCBIN_U8("graphics/trainers/palettes/pokemaniac.gbapal.lz"); + +const u8 gTrainerFrontPic_MagmaGruntF[] = INCBIN_U8("graphics/trainers/front_pics/magma_grunt_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_MagmaGruntF[] = INCBIN_U8("graphics/trainers/palettes/magma_grunt_f.gbapal.lz"); + +const u8 gTrainerFrontPic_Guitarist[] = INCBIN_U8("graphics/trainers/front_pics/guitarist_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Guitarist[] = INCBIN_U8("graphics/trainers/palettes/guitarist.gbapal.lz"); + +const u8 gTrainerFrontPic_Kindler[] = INCBIN_U8("graphics/trainers/front_pics/kindler_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Kindler[] = INCBIN_U8("graphics/trainers/palettes/kindler.gbapal.lz"); + +const u8 gTrainerFrontPic_Camper[] = INCBIN_U8("graphics/trainers/front_pics/camper_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Camper[] = INCBIN_U8("graphics/trainers/palettes/camper.gbapal.lz"); + +const u8 gTrainerFrontPic_Picnicker[] = INCBIN_U8("graphics/trainers/front_pics/picnicker_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Picnicker[] = INCBIN_U8("graphics/trainers/palettes/picnicker.gbapal.lz"); + +const u8 gTrainerFrontPic_BugManiac[] = INCBIN_U8("graphics/trainers/front_pics/bug_maniac_front_pic.4bpp.lz"); +const u8 gTrainerPalette_BugManiac[] = INCBIN_U8("graphics/trainers/palettes/bug_maniac.gbapal.lz"); + +const u8 gTrainerFrontPic_PokemonBreederM[] = INCBIN_U8("graphics/trainers/front_pics/pokemon_breeder_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_PokemonBreederM[] = INCBIN_U8("graphics/trainers/palettes/pokemon_breeder_m.gbapal.lz"); + +const u8 gTrainerFrontPic_PsychicM[] = INCBIN_U8("graphics/trainers/front_pics/psychic_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_PsychicM[] = INCBIN_U8("graphics/trainers/palettes/psychic_m.gbapal.lz"); + +const u8 gTrainerFrontPic_PsychicF[] = INCBIN_U8("graphics/trainers/front_pics/psychic_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_PsychicF[] = INCBIN_U8("graphics/trainers/palettes/psychic_f.gbapal.lz"); + +const u8 gTrainerFrontPic_Gentleman[] = INCBIN_U8("graphics/trainers/front_pics/gentleman_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Gentleman[] = INCBIN_U8("graphics/trainers/palettes/gentleman.gbapal.lz"); + +const u8 gTrainerFrontPic_EliteFourSidney[] = INCBIN_U8("graphics/trainers/front_pics/elite_four_sidney_front_pic.4bpp.lz"); +const u8 gTrainerPalette_EliteFourSidney[] = INCBIN_U8("graphics/trainers/palettes/elite_four_sidney.gbapal.lz"); + +const u8 gTrainerFrontPic_EliteFourPhoebe[] = INCBIN_U8("graphics/trainers/front_pics/elite_four_phoebe_front_pic.4bpp.lz"); +const u8 gTrainerPalette_EliteFourPhoebe[] = INCBIN_U8("graphics/trainers/palettes/elite_four_phoebe.gbapal.lz"); + +const u8 gTrainerFrontPic_EliteFourGlacia[] = INCBIN_U8("graphics/trainers/front_pics/elite_four_glacia_front_pic.4bpp.lz"); +const u8 gTrainerPalette_EliteFourGlacia[] = INCBIN_U8("graphics/trainers/palettes/elite_four_glacia.gbapal.lz"); + +const u8 gTrainerFrontPic_EliteFourDrake[] = INCBIN_U8("graphics/trainers/front_pics/elite_four_drake_front_pic.4bpp.lz"); +const u8 gTrainerPalette_EliteFourDrake[] = INCBIN_U8("graphics/trainers/palettes/elite_four_drake.gbapal.lz"); + +const u8 gTrainerFrontPic_LeaderRoxanne[] = INCBIN_U8("graphics/trainers/front_pics/leader_roxanne_front_pic.4bpp.lz"); +const u8 gTrainerPalette_LeaderRoxanne[] = INCBIN_U8("graphics/trainers/palettes/leader_roxanne.gbapal.lz"); + +const u8 gTrainerFrontPic_LeaderBrawly[] = INCBIN_U8("graphics/trainers/front_pics/leader_brawly_front_pic.4bpp.lz"); +const u8 gTrainerPalette_LeaderBrawly[] = INCBIN_U8("graphics/trainers/palettes/leader_brawly.gbapal.lz"); + +const u8 gTrainerFrontPic_LeaderWattson[] = INCBIN_U8("graphics/trainers/front_pics/leader_wattson_front_pic.4bpp.lz"); +const u8 gTrainerPalette_LeaderWattson[] = INCBIN_U8("graphics/trainers/palettes/leader_wattson.gbapal.lz"); + +const u8 gTrainerFrontPic_LeaderFlannery[] = INCBIN_U8("graphics/trainers/front_pics/leader_flannery_front_pic.4bpp.lz"); +const u8 gTrainerPalette_LeaderFlannery[] = INCBIN_U8("graphics/trainers/palettes/leader_flannery.gbapal.lz"); + +const u8 gTrainerFrontPic_LeaderNorman[] = INCBIN_U8("graphics/trainers/front_pics/leader_norman_front_pic.4bpp.lz"); +const u8 gTrainerPalette_LeaderNorman[] = INCBIN_U8("graphics/trainers/palettes/leader_norman.gbapal.lz"); + +const u8 gTrainerFrontPic_LeaderWinona[] = INCBIN_U8("graphics/trainers/front_pics/leader_winona_front_pic.4bpp.lz"); +const u8 gTrainerPalette_LeaderWinona[] = INCBIN_U8("graphics/trainers/palettes/leader_winona.gbapal.lz"); + +const u8 gTrainerFrontPic_LeaderTateAndLiza[] = INCBIN_U8("graphics/trainers/front_pics/leader_tate_and_liza_front_pic.4bpp.lz"); +const u8 gTrainerPalette_LeaderTateAndLiza[] = INCBIN_U8("graphics/trainers/palettes/leader_tate_and_liza.gbapal.lz"); + +const u8 gTrainerFrontPic_LeaderJuan[] = INCBIN_U8("graphics/trainers/front_pics/leader_juan_front_pic.4bpp.lz"); +const u8 gTrainerPalette_LeaderJuan[] = INCBIN_U8("graphics/trainers/palettes/leader_juan.gbapal.lz"); + +const u8 gTrainerFrontPic_SchoolKidM[] = INCBIN_U8("graphics/trainers/front_pics/school_kid_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_SchoolKidM[] = INCBIN_U8("graphics/trainers/palettes/school_kid_m.gbapal.lz"); + +const u8 gTrainerFrontPic_SchoolKidF[] = INCBIN_U8("graphics/trainers/front_pics/school_kid_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_SchoolKidF[] = INCBIN_U8("graphics/trainers/palettes/school_kid_f.gbapal.lz"); + +const u8 gTrainerFrontPic_SrAndJr[] = INCBIN_U8("graphics/trainers/front_pics/sr_and_jr_front_pic.4bpp.lz"); +const u8 gTrainerPalette_SrAndJr[] = INCBIN_U8("graphics/trainers/palettes/sr_and_jr.gbapal.lz"); + +const u8 gTrainerFrontPic_WinstrateM[] = INCBIN_U8("graphics/trainers/front_pics/winstrate_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_WinstrateM[] = INCBIN_U8("graphics/trainers/palettes/winstrate_m.gbapal.lz"); + +const u8 gTrainerFrontPic_WinstrateF[] = INCBIN_U8("graphics/trainers/front_pics/winstrate_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_WinstrateF[] = INCBIN_U8("graphics/trainers/palettes/winstrate_f.gbapal.lz"); + +const u8 gTrainerFrontPic_Youngster[] = INCBIN_U8("graphics/trainers/front_pics/youngster_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Youngster[] = INCBIN_U8("graphics/trainers/palettes/youngster.gbapal.lz"); + +const u8 gTrainerFrontPic_ChampionWallace[] = INCBIN_U8("graphics/trainers/front_pics/champion_wallace_front_pic.4bpp.lz"); +const u8 gTrainerPalette_ChampionWallace[] = INCBIN_U8("graphics/trainers/palettes/champion_wallace.gbapal.lz"); + +const u8 gTrainerFrontPic_Fisherman[] = INCBIN_U8("graphics/trainers/front_pics/fisherman_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Fisherman[] = INCBIN_U8("graphics/trainers/palettes/fisherman.gbapal.lz"); + +const u8 gTrainerFrontPic_CyclingTriathleteM[] = INCBIN_U8("graphics/trainers/front_pics/cycling_triathlete_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_CyclingTriathleteM[] = INCBIN_U8("graphics/trainers/palettes/cycling_triathlete_m.gbapal.lz"); + +const u8 gTrainerFrontPic_CyclingTriathleteF[] = INCBIN_U8("graphics/trainers/front_pics/cycling_triathlete_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_CyclingTriathleteF[] = INCBIN_U8("graphics/trainers/palettes/cycling_triathlete_f.gbapal.lz"); + +const u8 gTrainerFrontPic_RunningTriathleteM[] = INCBIN_U8("graphics/trainers/front_pics/running_triathlete_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_RunningTriathleteM[] = INCBIN_U8("graphics/trainers/palettes/running_triathlete_m.gbapal.lz"); + +const u8 gTrainerFrontPic_RunningTriathleteF[] = INCBIN_U8("graphics/trainers/front_pics/running_triathlete_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_RunningTriathleteF[] = INCBIN_U8("graphics/trainers/palettes/running_triathlete_f.gbapal.lz"); + +const u8 gTrainerFrontPic_SwimmingTriathleteM[] = INCBIN_U8("graphics/trainers/front_pics/swimming_triathlete_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_SwimmingTriathleteM[] = INCBIN_U8("graphics/trainers/palettes/swimming_triathlete_m.gbapal.lz"); + +const u8 gTrainerFrontPic_SwimmingTriathleteF[] = INCBIN_U8("graphics/trainers/front_pics/swimming_triathlete_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_SwimmingTriathleteF[] = INCBIN_U8("graphics/trainers/palettes/swimming_triathlete_f.gbapal.lz"); + +const u8 gTrainerFrontPic_DragonTamer[] = INCBIN_U8("graphics/trainers/front_pics/dragon_tamer_front_pic.4bpp.lz"); +const u8 gTrainerPalette_DragonTamer[] = INCBIN_U8("graphics/trainers/palettes/dragon_tamer.gbapal.lz"); + +const u8 gTrainerFrontPic_NinjaBoy[] = INCBIN_U8("graphics/trainers/front_pics/ninja_boy_front_pic.4bpp.lz"); +const u8 gTrainerPalette_NinjaBoy[] = INCBIN_U8("graphics/trainers/palettes/ninja_boy.gbapal.lz"); + +const u8 gTrainerFrontPic_BattleGirl[] = INCBIN_U8("graphics/trainers/front_pics/battle_girl_front_pic.4bpp.lz"); +const u8 gTrainerPalette_BattleGirl[] = INCBIN_U8("graphics/trainers/palettes/battle_girl.gbapal.lz"); + +const u8 gTrainerFrontPic_ParasolLady[] = INCBIN_U8("graphics/trainers/front_pics/parasol_lady_front_pic.4bpp.lz"); +const u8 gTrainerPalette_ParasolLady[] = INCBIN_U8("graphics/trainers/palettes/parasol_lady.gbapal.lz"); + +const u8 gTrainerFrontPic_SwimmerF[] = INCBIN_U8("graphics/trainers/front_pics/swimmer_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_SwimmerF[] = INCBIN_U8("graphics/trainers/palettes/swimmer_f.gbapal.lz"); + +const u8 gTrainerFrontPic_Twins[] = INCBIN_U8("graphics/trainers/front_pics/twins_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Twins[] = INCBIN_U8("graphics/trainers/palettes/twins.gbapal.lz"); + +const u8 gTrainerFrontPic_Sailor[] = INCBIN_U8("graphics/trainers/front_pics/sailor_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Sailor[] = INCBIN_U8("graphics/trainers/palettes/sailor.gbapal.lz"); + +const u8 gTrainerFrontPic_MagmaAdmin[] = INCBIN_U8("graphics/trainers/front_pics/magma_admin_front_pic.4bpp.lz"); +const u8 gTrainerPalette_MagmaAdmin[] = INCBIN_U8("graphics/trainers/palettes/magma_admin.gbapal.lz"); + +const u8 gTrainerFrontPic_Wally[] = INCBIN_U8("graphics/trainers/front_pics/wally_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Wally[] = INCBIN_U8("graphics/trainers/palettes/wally.gbapal.lz"); + +const u8 gTrainerFrontPic_Brendan[] = INCBIN_U8("graphics/trainers/front_pics/brendan_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Brendan[] = INCBIN_U8("graphics/trainers/palettes/brendan.gbapal.lz"); + +const u8 gTrainerFrontPic_May[] = INCBIN_U8("graphics/trainers/front_pics/may_front_pic.4bpp.lz"); +const u8 gTrainerPalette_May[] = INCBIN_U8("graphics/trainers/palettes/may.gbapal.lz"); + +const u8 gTrainerFrontPic_BugCatcher[] = INCBIN_U8("graphics/trainers/front_pics/bug_catcher_front_pic.4bpp.lz"); +const u8 gTrainerPalette_BugCatcher[] = INCBIN_U8("graphics/trainers/palettes/bug_catcher.gbapal.lz"); + +const u8 gTrainerFrontPic_PokemonRangerM[] = INCBIN_U8("graphics/trainers/front_pics/pokemon_ranger_m_front_pic.4bpp.lz"); +const u8 gTrainerPalette_PokemonRangerM[] = INCBIN_U8("graphics/trainers/palettes/pokemon_ranger_m.gbapal.lz"); + +const u8 gTrainerFrontPic_PokemonRangerF[] = INCBIN_U8("graphics/trainers/front_pics/pokemon_ranger_f_front_pic.4bpp.lz"); +const u8 gTrainerPalette_PokemonRangerF[] = INCBIN_U8("graphics/trainers/palettes/pokemon_ranger_f.gbapal.lz"); + +const u8 gTrainerFrontPic_MagmaLeaderMaxie[] = INCBIN_U8("graphics/trainers/front_pics/magma_leader_maxie_front_pic.4bpp.lz"); +const u8 gTrainerPalette_MagmaLeaderMaxie[] = INCBIN_U8("graphics/trainers/palettes/magma_leader_maxie.gbapal.lz"); + +const u8 gTrainerFrontPic_Lass[] = INCBIN_U8("graphics/trainers/front_pics/lass_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Lass[] = INCBIN_U8("graphics/trainers/palettes/lass.gbapal.lz"); + +const u8 gTrainerFrontPic_YoungCouple[] = INCBIN_U8("graphics/trainers/front_pics/young_couple_front_pic.4bpp.lz"); +const u8 gTrainerPalette_YoungCouple[] = INCBIN_U8("graphics/trainers/palettes/young_couple.gbapal.lz"); + +const u8 gTrainerFrontPic_OldCouple[] = INCBIN_U8("graphics/trainers/front_pics/old_couple_front_pic.4bpp.lz"); +const u8 gTrainerPalette_OldCouple[] = INCBIN_U8("graphics/trainers/palettes/old_couple.gbapal.lz"); + +const u8 gTrainerFrontPic_SisAndBro[] = INCBIN_U8("graphics/trainers/front_pics/sis_and_bro_front_pic.4bpp.lz"); +const u8 gTrainerPalette_SisAndBro[] = INCBIN_U8("graphics/trainers/palettes/sis_and_bro.gbapal.lz"); + +const u8 gTrainerFrontPic_Steven[] = INCBIN_U8("graphics/trainers/front_pics/steven_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Steven[] = INCBIN_U8("graphics/trainers/palettes/steven.gbapal.lz"); + +const u8 gTrainerFrontPic_SalonMaidenAnabel[] = INCBIN_U8("graphics/trainers/front_pics/salon_maiden_anabel_front_pic.4bpp.lz"); +const u8 gTrainerPalette_SalonMaidenAnabel[] = INCBIN_U8("graphics/trainers/palettes/salon_maiden_anabel.gbapal.lz"); + +const u8 gTrainerFrontPic_DomeAceTucker[] = INCBIN_U8("graphics/trainers/front_pics/dome_ace_tucker_front_pic.4bpp.lz"); +const u8 gTrainerPalette_DomeAceTucker[] = INCBIN_U8("graphics/trainers/palettes/dome_ace_tucker.gbapal.lz"); + +const u8 gTrainerFrontPic_PalaceMavenSpenser[] = INCBIN_U8("graphics/trainers/front_pics/palace_maven_spenser_front_pic.4bpp.lz"); +const u8 gTrainerPalette_PalaceMavenSpenser[] = INCBIN_U8("graphics/trainers/palettes/palace_maven_spenser.gbapal.lz"); + +const u8 gTrainerFrontPic_ArenaTycoonGreta[] = INCBIN_U8("graphics/trainers/front_pics/arena_tycoon_greta_front_pic.4bpp.lz"); +const u8 gTrainerPalette_ArenaTycoonGreta[] = INCBIN_U8("graphics/trainers/palettes/arena_tycoon_greta.gbapal.lz"); + +const u8 gTrainerFrontPic_FactoryHeadNoland[] = INCBIN_U8("graphics/trainers/front_pics/factory_head_noland_front_pic.4bpp.lz"); +const u8 gTrainerPalette_FactoryHeadNoland[] = INCBIN_U8("graphics/trainers/palettes/factory_head_noland.gbapal.lz"); + +const u8 gTrainerFrontPic_PikeQueenLucy[] = INCBIN_U8("graphics/trainers/front_pics/pike_queen_lucy_front_pic.4bpp.lz"); +const u8 gTrainerPalette_PikeQueenLucy[] = INCBIN_U8("graphics/trainers/palettes/pike_queen_lucy.gbapal.lz"); + +const u8 gTrainerFrontPic_PyramidKingBrandon[] = INCBIN_U8("graphics/trainers/front_pics/pyramid_king_brandon_front_pic.4bpp.lz"); +const u8 gTrainerPalette_PyramidKingBrandon[] = INCBIN_U8("graphics/trainers/palettes/pyramid_king_brandon.gbapal.lz"); + +const u8 gTrainerFrontPic_Red[] = INCBIN_U8("graphics/trainers/front_pics/red_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Red[] = INCBIN_U8("graphics/trainers/palettes/red.gbapal.lz"); + +const u8 gTrainerFrontPic_Leaf[] = INCBIN_U8("graphics/trainers/front_pics/leaf_front_pic.4bpp.lz"); +const u8 gTrainerPalette_Leaf[] = INCBIN_U8("graphics/trainers/palettes/leaf.gbapal.lz"); + +const u8 gTrainerFrontPic_RubySapphireBrendan[] = INCBIN_U8("graphics/trainers/front_pics/ruby_sapphire_brendan_front_pic.4bpp.lz"); +const u8 gTrainerPalette_RubySapphireBrendan[] = INCBIN_U8("graphics/trainers/palettes/ruby_sapphire_brendan.gbapal.lz"); + +const u8 gTrainerFrontPic_RubySapphireMay[] = INCBIN_U8("graphics/trainers/front_pics/ruby_sapphire_may_front_pic.4bpp.lz"); +const u8 gTrainerPalette_RubySapphireMay[] = INCBIN_U8("graphics/trainers/palettes/ruby_sapphire_may.gbapal.lz"); + +const u8 gTrainerBackPic_Brendan[] = INCBIN_U8("graphics/trainers/back_pics/brendan_back_pic.4bpp"); +const u8 gTrainerBackPic_May[] = INCBIN_U8("graphics/trainers/back_pics/may_back_pic.4bpp"); +const u8 gTrainerBackPic_Red[] = INCBIN_U8("graphics/trainers/back_pics/red_back_pic.4bpp"); +const u8 gTrainerBackPic_Leaf[] = INCBIN_U8("graphics/trainers/back_pics/leaf_back_pic.4bpp"); +const u8 gTrainerBackPic_RubySapphireBrendan[] = INCBIN_U8("graphics/trainers/back_pics/ruby_sapphire_brendan_back_pic.4bpp"); +const u8 gTrainerBackPic_RubySapphireMay[] = INCBIN_U8("graphics/trainers/back_pics/ruby_sapphire_may_back_pic.4bpp"); +const u8 gTrainerBackPic_Wally[] = INCBIN_U8("graphics/trainers/back_pics/wally_back_pic.4bpp"); +const u8 gTrainerBackPic_Steven[] = INCBIN_U8("graphics/trainers/back_pics/steven_back_pic.4bpp"); + +const u8 gTrainerBackPicPalette_Red[] = INCBIN_U8("graphics/trainers/palettes/red_back_pic.gbapal.lz"); +const u8 gTrainerBackPicPalette_Leaf[] = INCBIN_U8("graphics/trainers/palettes/leaf_back_pic.gbapal.lz"); From 709b63efa9fbe3374b0a14c5c434bd87b50dc2b8 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Fri, 24 Aug 2018 21:21:19 +0100 Subject: [PATCH 130/174] Split files --- src/graphics.c | 446 +++-------------------------- src/graphics/battle_terrain.h | 88 ++++++ src/graphics/berry_fix.h | 23 ++ src/graphics/interface_pokeballs.h | 37 +++ src/graphics/intro_scene.h | 48 ++++ src/graphics/mail.h | 38 +++ src/graphics/rayquaza_scene.h | 73 +++++ src/graphics/slot_machine.h | 60 ++++ 8 files changed, 410 insertions(+), 403 deletions(-) create mode 100644 src/graphics/battle_terrain.h create mode 100644 src/graphics/berry_fix.h create mode 100644 src/graphics/interface_pokeballs.h create mode 100644 src/graphics/intro_scene.h create mode 100644 src/graphics/mail.h create mode 100644 src/graphics/rayquaza_scene.h create mode 100644 src/graphics/slot_machine.h diff --git a/src/graphics.c b/src/graphics.c index 8a4c98bb32..034b590c5a 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1,6 +1,6 @@ #include "global.h" -const u8 gBattleTextboxTiles[] = INCBIN_U8("graphics/interface/menu.4bpp.lz"); // menu window and arrows +const u8 gBattleTextboxTiles[] = INCBIN_U8("graphics/interface/menu.4bpp.lz"); const u8 gBattleTextboxPalette[] = INCBIN_U8("graphics/interface/menu.gbapal.lz"); const u16 gBattleTextboxTilemap[] = INCBIN_U16("graphics/interface/menu_map.bin.lz"); @@ -16,43 +16,7 @@ const u8 gUnusedPal_OldCharmap[] = INCBIN_U8("graphics/unused/old_charmap.gbapal const u8 gSmokescreenImpactTiles[] = INCBIN_U8("graphics/battle_anims/sprites/smokescreen_impact.4bpp.lz"); const u8 gSmokescreenImpactPalette[] = INCBIN_U8("graphics/battle_anims/sprites/smokescreen_impact.gbapal.lz"); -const u8 gInterfaceGfx_PokeBall[] = INCBIN_U8("graphics/interface/ball/poke.4bpp.lz"); // 0xBC -const u8 gInterfacePal_PokeBall[] = INCBIN_U8("graphics/interface/ball/poke.gbapal.lz"); - -const u8 gInterfaceGfx_GreatBall[] = INCBIN_U8("graphics/interface/ball/great.4bpp.lz"); // 0xBC -const u8 gInterfacePal_GreatBall[] = INCBIN_U8("graphics/interface/ball/great.gbapal.lz"); - -const u8 gInterfaceGfx_SafariBall[] = INCBIN_U8("graphics/interface/ball/safari.4bpp.lz"); // 0xBC -const u8 gInterfacePal_SafariBall[] = INCBIN_U8("graphics/interface/ball/safari.gbapal.lz"); - -const u8 gInterfaceGfx_UltraBall[] = INCBIN_U8("graphics/interface/ball/ultra.4bpp.lz"); // 0xBC -const u8 gInterfacePal_UltraBall[] = INCBIN_U8("graphics/interface/ball/ultra.gbapal.lz"); - -const u8 gInterfaceGfx_MasterBall[] = INCBIN_U8("graphics/interface/ball/master.4bpp.lz"); // 0xBC -const u8 gInterfacePal_MasterBall[] = INCBIN_U8("graphics/interface/ball/master.gbapal.lz"); - -const u8 gInterfaceGfx_NetBall[] = INCBIN_U8("graphics/interface/ball/net.4bpp.lz"); // 0xBC -const u8 gInterfacePal_NetBall[] = INCBIN_U8("graphics/interface/ball/net.gbapal.lz"); - -const u8 gInterfaceGfx_DiveBall[] = INCBIN_U8("graphics/interface/ball/dive.4bpp.lz"); // 0xBC -const u8 gInterfacePal_DiveBall[] = INCBIN_U8("graphics/interface/ball/dive.gbapal.lz"); - -const u8 gInterfaceGfx_NestBall[] = INCBIN_U8("graphics/interface/ball/nest.4bpp.lz"); // 0xBC -const u8 gInterfacePal_NestBall[] = INCBIN_U8("graphics/interface/ball/nest.gbapal.lz"); - -const u8 gInterfaceGfx_RepeatBall[] = INCBIN_U8("graphics/interface/ball/repeat.4bpp.lz"); // 0xBC -const u8 gInterfacePal_RepeatBall[] = INCBIN_U8("graphics/interface/ball/repeat.gbapal.lz"); - -const u8 gInterfaceGfx_TimerBall[] = INCBIN_U8("graphics/interface/ball/timer.4bpp.lz"); // 0xBC -const u8 gInterfacePal_TimerBall[] = INCBIN_U8("graphics/interface/ball/timer.gbapal.lz"); - -const u8 gInterfaceGfx_LuxuryBall[] = INCBIN_U8("graphics/interface/ball/luxury.4bpp.lz"); // 0xBC -const u8 gInterfacePal_LuxuryBall[] = INCBIN_U8("graphics/interface/ball/luxury.gbapal.lz"); - -const u8 gInterfaceGfx_PremierBall[] = INCBIN_U8("graphics/interface/ball/premier.4bpp.lz"); // 0xBC -const u8 gInterfacePal_PremierBall[] = INCBIN_U8("graphics/interface/ball/premier.gbapal.lz"); - -const u8 gOpenPokeballGfx[] = INCBIN_U8("graphics/interface/ball_open.4bpp.lz"); +#include "graphics/interface_pokeballs.h" const u8 gBlankGfxCompressed[] = INCBIN_U8("graphics/interface/blank.4bpp.lz"); @@ -200,8 +164,6 @@ const u8 gBattleAnimSpriteSheet_044[] = INCBIN_U8("graphics/battle_anims/sprites const u8 gBattleAnimSpritePalette_045[] = INCBIN_U8("graphics/battle_anims/sprites/045.gbapal.lz"); const u8 gBattleAnimSpriteSheet_045[] = INCBIN_U8("graphics/battle_anims/sprites/045.4bpp.lz"); -// two unused window frames. - const u8 gUnknown_08C08F0C[] = INCBIN_U8("graphics/battle_interface/unused_window.4bpp.lz"); const u8 gUnknown_08C093C8[] = INCBIN_U8("graphics/battle_interface/unused_window.gbapal.lz"); @@ -1000,94 +962,7 @@ const u8 gUnknown_08D77AE4[] = INCBIN_U8("graphics/battle_transitions/vs_frame.g const u8 gUnknown_08D77B0C[] = INCBIN_U8("graphics/battle_transitions/vs.4bpp.lz"); -const u8 gBattleTerrainTiles_TallGrass[] = INCBIN_U8("graphics/battle_terrain/tall_grass/tiles.4bpp.lz"); -const u8 gBattleTerrainPalette_TallGrass[] = INCBIN_U8("graphics/battle_terrain/tall_grass/palette.gbapal.lz"); -const u16 gBattleTerrainTilemap_TallGrass[] = INCBIN_U16("graphics/battle_terrain/tall_grass/map.bin.lz"); - -const u8 gBattleTerrainTiles_LongGrass[] = INCBIN_U8("graphics/battle_terrain/long_grass/tiles.4bpp.lz"); -const u8 gBattleTerrainPalette_LongGrass[] = INCBIN_U8("graphics/battle_terrain/long_grass/palette.gbapal.lz"); -const u16 gBattleTerrainTilemap_LongGrass[] = INCBIN_U16("graphics/battle_terrain/long_grass/map.bin.lz"); - -const u8 gBattleTerrainTiles_Sand[] = INCBIN_U8("graphics/battle_terrain/sand/tiles.4bpp.lz"); -const u8 gBattleTerrainPalette_Sand[] = INCBIN_U8("graphics/battle_terrain/sand/palette.gbapal.lz"); -const u16 gBattleTerrainTilemap_Sand[] = INCBIN_U16("graphics/battle_terrain/sand/map.bin.lz"); - -const u8 gBattleTerrainTiles_Underwater[] = INCBIN_U8("graphics/battle_terrain/underwater/tiles.4bpp.lz"); -const u8 gBattleTerrainPalette_Underwater[] = INCBIN_U8("graphics/battle_terrain/underwater/palette.gbapal.lz"); -const u16 gBattleTerrainTilemap_Underwater[] = INCBIN_U16("graphics/battle_terrain/underwater/map.bin.lz"); - -const u8 gBattleTerrainTiles_Water[] = INCBIN_U8("graphics/battle_terrain/water/tiles.4bpp.lz"); -const u8 gBattleTerrainPalette_Water[] = INCBIN_U8("graphics/battle_terrain/water/palette.gbapal.lz"); -const u16 gBattleTerrainTilemap_Water[] = INCBIN_U16("graphics/battle_terrain/water/map.bin.lz"); - -const u8 gBattleTerrainTiles_PondWater[] = INCBIN_U8("graphics/battle_terrain/pond_water/tiles.4bpp.lz"); -const u8 gBattleTerrainPalette_PondWater[] = INCBIN_U8("graphics/battle_terrain/pond_water/palette.gbapal.lz"); -const u16 gBattleTerrainTilemap_PondWater[] = INCBIN_U16("graphics/battle_terrain/pond_water/map.bin.lz"); - -const u8 gBattleTerrainTiles_Rock[] = INCBIN_U8("graphics/battle_terrain/rock/tiles.4bpp.lz"); -const u8 gBattleTerrainPalette_Rock[] = INCBIN_U8("graphics/battle_terrain/rock/palette.gbapal.lz"); -const u16 gBattleTerrainTilemap_Rock[] = INCBIN_U16("graphics/battle_terrain/rock/map.bin.lz"); - -const u8 gBattleTerrainTiles_Cave[] = INCBIN_U8("graphics/battle_terrain/cave/tiles.4bpp.lz"); -const u8 gBattleTerrainPalette_Cave[] = INCBIN_U8("graphics/battle_terrain/cave/palette.gbapal.lz"); -const u16 gBattleTerrainTilemap_Cave[] = INCBIN_U16("graphics/battle_terrain/cave/map.bin.lz"); - -const u8 gBattleTerrainPalette_Plain[] = INCBIN_U8("graphics/battle_terrain/plain/palette.gbapal.lz"); - -const u8 gBattleTerrainTiles_Building[] = INCBIN_U8("graphics/battle_terrain/building/tiles.4bpp.lz"); -const u8 gBattleTerrainPalette_Frontier[] = INCBIN_U8("graphics/battle_terrain/stadium/battle_frontier.gbapal.lz"); // this is also used for link battles -const u16 gBattleTerrainTilemap_Building[] = INCBIN_U16("graphics/battle_terrain/building/map.bin.lz"); - -const u8 gBattleTerrainTiles_Stadium[] = INCBIN_U8("graphics/battle_terrain/stadium/tiles.4bpp.lz"); -const u16 gBattleTerrainTilemap_Stadium[] = INCBIN_U16("graphics/battle_terrain/stadium/map.bin.lz"); - -const u8 gBattleTerrainTiles_Rayquaza[] = INCBIN_U8("graphics/battle_terrain/sky/tiles.4bpp.lz"); -const u16 gBattleTerrainTilemap_Rayquaza[] = INCBIN_U16("graphics/battle_terrain/sky/map.bin.lz"); - -const u8 gBattleTerrainPalette_Building[] = INCBIN_U8("graphics/battle_terrain/building/palette.gbapal.lz"); - -const u8 gBattleTerrainPalette_Kyogre[] = INCBIN_U8("graphics/battle_terrain/water/kyogre.gbapal.lz"); -const u8 gBattleTerrainPalette_Groudon[] = INCBIN_U8("graphics/battle_terrain/cave/groudon.gbapal.lz"); -const u8 gBattleTerrainPalette_BuildingGym[] = INCBIN_U8("graphics/battle_terrain/building/palette2.gbapal.lz"); -const u8 gBattleTerrainPalette_BuildingLeader[] = INCBIN_U8("graphics/battle_terrain/building/palette3.gbapal.lz"); -const u8 gBattleTerrainPalette_StadiumAqua[] = INCBIN_U8("graphics/battle_terrain/stadium/palette1.gbapal.lz"); -const u8 gBattleTerrainPalette_StadiumMagma[] = INCBIN_U8("graphics/battle_terrain/stadium/palette2.gbapal.lz"); -const u8 gBattleTerrainPalette_StadiumSidney[] = INCBIN_U8("graphics/battle_terrain/stadium/palette3.gbapal.lz"); -const u8 gBattleTerrainPalette_StadiumPhoebe[] = INCBIN_U8("graphics/battle_terrain/stadium/palette4.gbapal.lz"); -const u8 gBattleTerrainPalette_StadiumGlacia[] = INCBIN_U8("graphics/battle_terrain/stadium/palette5.gbapal.lz"); -const u8 gBattleTerrainPalette_StadiumDrake[] = INCBIN_U8("graphics/battle_terrain/stadium/palette6.gbapal.lz"); -const u8 gBattleTerrainPalette_StadiumWallace[] = INCBIN_U8("graphics/battle_terrain/stadium/palette7.gbapal.lz"); -const u8 gBattleTerrainPalette_Rayquaza[] = INCBIN_U8("graphics/battle_terrain/sky/palette.gbapal.lz"); - -const u8 gBattleTerrainAnimTiles_TallGrass[] = INCBIN_U8("graphics/battle_terrain/tall_grass/anim_tiles.4bpp.lz"); -const u16 gBattleTerrainAnimTilemap_TallGrass[] = INCBIN_U16("graphics/battle_terrain/tall_grass/anim_map.bin.lz"); - -const u8 gBattleTerrainAnimTiles_LongGrass[] = INCBIN_U8("graphics/battle_terrain/long_grass/anim_tiles.4bpp.lz"); -const u16 gBattleTerrainAnimTilemap_LongGrass[] = INCBIN_U16("graphics/battle_terrain/long_grass/anim_map.bin.lz"); - -const u8 gBattleTerrainAnimTiles_Sand[] = INCBIN_U8("graphics/battle_terrain/sand/anim_tiles.4bpp.lz"); -const u16 gBattleTerrainAnimTilemap_Sand[] = INCBIN_U16("graphics/battle_terrain/sand/anim_map.bin.lz"); - -const u8 gBattleTerrainAnimTiles_Underwater[] = INCBIN_U8("graphics/battle_terrain/underwater/anim_tiles.4bpp.lz"); -const u16 gBattleTerrainAnimTilemap_Underwater[] = INCBIN_U16("graphics/battle_terrain/underwater/anim_map.bin.lz"); - -const u8 gBattleTerrainAnimTiles_Water[] = INCBIN_U8("graphics/battle_terrain/water/anim_tiles.4bpp.lz"); -const u16 gBattleTerrainAnimTilemap_Water[] = INCBIN_U16("graphics/battle_terrain/water/anim_map.bin.lz"); - -const u8 gBattleTerrainAnimTiles_PondWater[] = INCBIN_U8("graphics/battle_terrain/pond_water/anim_tiles.4bpp.lz"); -const u16 gBattleTerrainAnimTilemap_PondWater[] = INCBIN_U16("graphics/battle_terrain/pond_water/anim_map.bin.lz"); - -const u8 gBattleTerrainAnimTiles_Rock[] = INCBIN_U8("graphics/battle_terrain/rock/anim_tiles.4bpp.lz"); -const u16 gBattleTerrainAnimTilemap_Rock[] = INCBIN_U16("graphics/battle_terrain/rock/anim_map.bin.lz"); - -const u8 gBattleTerrainAnimTiles_Cave[] = INCBIN_U8("graphics/battle_terrain/cave/anim_tiles.4bpp.lz"); -const u16 gBattleTerrainAnimTilemap_Cave[] = INCBIN_U16("graphics/battle_terrain/cave/anim_map.bin.lz"); - -const u8 gBattleTerrainAnimTiles_Building[] = INCBIN_U8("graphics/battle_terrain/building/anim_tiles.4bpp.lz"); -const u16 gBattleTerrainAnimTilemap_Building[] = INCBIN_U16("graphics/battle_terrain/building/anim_map.bin.lz"); - -const u8 gBattleTerrainAnimTiles_Rayquaza[] = INCBIN_U8("graphics/battle_terrain/sky/anim_tiles.4bpp.lz"); -const u16 gBattleTerrainAnimTilemap_Rayquaza[] = INCBIN_U16("graphics/battle_terrain/sky/anim_map.bin.lz"); +#include "graphics/battle_terrain.h" const u8 gUnknown_08D82F10[] = INCBIN_U8("graphics/battle_frontier/tourney_bg.4bpp.lz"); const u8 gUnknown_08D834FC[] = INCBIN_U8("graphics/battle_frontier/tourney_line.4bpp.lz"); // the red glow mask for the tourney advancement lines @@ -1128,56 +1003,7 @@ const u16 gUnknown_08D856C8[] = INCBIN_U16("graphics/battle_frontier/pyramid_lig const u16 gUnknown_08D857A8[] = INCBIN_U16("graphics/battle_frontier/battle_tilemap1.bin.lz"); const u16 gUnknown_08D85A1C[] = INCBIN_U16("graphics/battle_frontier/battle_tilemap2.bin.lz"); -// Intro - -const u16 gIntro1GameFreakTextFadePal[] = INCBIN_U16("graphics/intro/intro1_text.gbapal"); // game freak text blue fade -const u16 gIntro2BrendanNoTurnPal[] = INCBIN_U16("graphics/intro/intro2_brendan_noturn.gbapal"); -const u16 gIntro3BgPal[] = INCBIN_U16("graphics/intro/intro3.gbapal"); -const u16 gIntro2VolbeatPal[] = INCBIN_U16("graphics/intro/intro2_volbeat.gbapal"); -const u16 gIntro2TorchicPal[] = INCBIN_U16("graphics/intro/intro2_torchic.gbapal"); -const u16 gIntro2ManectricPal[] = INCBIN_U16("graphics/intro/intro2_manectric.gbapal"); -const u16 gIntro2FlygonPal[] = INCBIN_U16("graphics/intro/intro2_flygon.gbapal"); - -const u8 gIntro2VolbeatGfx[] = INCBIN_U8("graphics/intro/intro2_volbeat.4bpp.lz"); -const u8 gIntro2TorchicGfx[] = INCBIN_U8("graphics/intro/intro2_torchic.4bpp.lz"); -const u8 gIntro2ManectricGfx[] = INCBIN_U8("graphics/intro/intro2_manectric.4bpp.lz"); -const u8 gIntro2FlygonGfx[] = INCBIN_U8("graphics/intro/intro2_flygon.4bpp.lz"); -const u8 gIntro2BrendanNoTurnGfx[] = INCBIN_U8("graphics/intro/intro2_brendan_noturn.4bpp.lz"); -const u8 gIntro2MayNoTurnGfx[] = INCBIN_U8("graphics/intro/intro2_may_noturn.4bpp.lz"); - -const u16 gIntro3GroudonGfx[] = INCBIN_U16("graphics/intro/intro3_groudon.8bpp.lz"); -const u16 gIntro3GroudonTilemap[] = INCBIN_U16("graphics/intro/intro3_groudon.bin.lz"); - -const u16 gIntro3KyogreGfx[] = INCBIN_U16("graphics/intro/intro3_kyogre.8bpp.lz"); -const u16 gIntro3KyogreTilemap[] = INCBIN_U16("graphics/intro/intro3_kyogre.bin.lz"); - -const u8 gIntro3LegendBgGfx[] = INCBIN_U8("graphics/intro/legend_bg.4bpp.lz"); // groudon/kyogre/bg - -const u16 gIntro3GroudonBgTilemap[] = INCBIN_U16("graphics/intro/legend_bg1.bin.lz"); -const u16 gIntro3KyogreBgTilemap[] = INCBIN_U16("graphics/intro/legend_bg2.bin.lz"); - -const u8 gIntro3CloudsGfx[] = INCBIN_U8("graphics/intro/intro3_clouds.4bpp.lz"); -const u16 gIntro3Clouds1Tilemap[] = INCBIN_U16("graphics/intro/intro3_clouds1.bin.lz"); -const u16 gIntro3Clouds2Tilemap[] = INCBIN_U16("graphics/intro/intro3_clouds2.bin.lz"); -const u16 gIntro3Clouds3Tilemap[] = INCBIN_U16("graphics/intro/intro3_clouds3.bin.lz"); - -const u8 gIntro3LightningGfx[] = INCBIN_U8("graphics/intro/intro3_lightning.4bpp.lz"); -const u16 gIntro3LightningPal[] = INCBIN_U16("graphics/intro/intro3_lightning.gbapal"); - -const u8 gIntro3RayquazaGfx[] = INCBIN_U8("graphics/intro/intro3_rayquaza.4bpp.lz"); -const u16 gIntro3RayquazaTilemap[] = INCBIN_U16("graphics/intro/intro3_rayquaza.bin.lz"); - -const u16 gUnknown_D8C374[] = INCBIN_U16("graphics/unknown/unknown_D8C374.bin.lz"); -const u16 gUnknown_D8C5C4[] = INCBIN_U16("graphics/unknown/unknown_D8C5C4.bin.lz"); - -const u8 gIntro3Clouds2Gfx[] = INCBIN_U8("graphics/intro/intro3_clouds2.4bpp.lz"); //clouds 2, during the rayquaza flash -const u16 gIntro3Clouds4Tilemap[] = INCBIN_U16("graphics/intro/intro3_clouds4.bin.lz"); - -const u8 gIntro2BubblesGfx[] = INCBIN_U8("graphics/intro/intro2_bubbles.4bpp.lz"); -const u16 gIntro2BubblesPal[] = INCBIN_U16("graphics/intro/intro2_bubbles.gbapal"); - -const u8 gIntro1FlygonGfx[] = INCBIN_U8("graphics/intro/intro1_flygon.4bpp.lz"); -const u8 gIntro1SparkleGfx[] = INCBIN_U8("graphics/intro/intro1_sparkle.4bpp.lz"); +#include "graphics/intro_scene.h" const u8 gBattleAnimSpriteSheet_261[] = INCBIN_U8("graphics/battle_anims/sprites/261.4bpp.lz"); @@ -1393,81 +1219,7 @@ const u8 gPokeblockGold_Pal[] = INCBIN_U8("graphics/pokeblock/gold.gbapal.lz"); const u16 gUnknown_08D9BA44[] = INCBIN_U16("graphics/interface/pokeblock_feeding_bg_map.bin.lz"); #include "graphics/berries.h" - -const u8 gRaySceneGroudon_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon.4bpp.lz"); -const u8 gRaySceneGroudon2_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon_shoulder.4bpp.lz"); -const u8 gRaySceneGroudon3_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon_claw.4bpp.lz"); - -const u8 gRaySceneKyogre_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/kyogre.4bpp.lz"); -const u8 gRaySceneKyogre2_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/kyogre_shoulder.4bpp.lz"); -const u8 gRaySceneKyogre3_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/kyogre_fin.4bpp.lz"); - -const u8 gRaySceneGroudon_Pal[] = INCBIN_U8("graphics/rayquaza_scene/groudon.gbapal.lz"); -const u8 gRaySceneKyogre_Pal[] = INCBIN_U8("graphics/rayquaza_scene/kyogre.gbapal.lz"); - -const u8 gRaySceneClouds_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/clouds.4bpp.lz"); -const u8 gRaySceneClouds_Pal[] = INCBIN_U8("graphics/rayquaza_scene/clouds.gbapal.lz"); // pal 1 clouds, pal 2 rain -const u16 gRaySceneClouds1_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/clouds1.bin.lz"); -const u16 gRaySceneClouds2_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/clouds2.bin.lz"); -const u16 gRaySceneClouds3_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/clouds3.bin.lz"); - -const u8 gRaySceneSmoke_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/smoke.4bpp.lz"); -const u8 gRaySceneSmoke_Pal[] = INCBIN_U8("graphics/rayquaza_scene/smoke.gbapal.lz"); - -const u16 gRaySceneRayquaza_Gfx[] = INCBIN_U16("graphics/rayquaza_scene/rayquaza.8bpp.lz"); -const u8 gRaySceneRayquaza_Pal[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza.gbapal.lz"); -const u16 gRaySceneRayquaza_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/rayquaza.bin.lz"); - -const u8 gRaySceneOvercast_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/overcast.4bpp.lz"); // uses pal 2 of gRaySceneRayquaza_Pal -const u16 gRaySceneOvercast_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/overcast.bin.lz"); - -const u8 gRaySceneRayquazaFly1_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_fly1.4bpp.lz"); -const u8 gRaySceneRayquazaTail_Gfx[] = INCBIN_U8( "graphics/rayquaza_scene/rayquaza_tail_fix.4bpp.lz"); // for some reason there are an extra 0xC bytes at the end of the original 4bpp, so in order to produce the correct lz, we have to cat the bytes at the end with a make rule. not sure why those bytes are there, it may have been a bug in Game Freak's software. - -const u8 gRaySceneOvercast2_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/overcast2.4bpp.lz"); - -const u8 gRaySceneRayquazaLight_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_light.4bpp.lz"); // uses pal 2 of gRaySceneOvercast2_Pal - -const u8 gRaySceneOvercast2_Pal[] = INCBIN_U8("graphics/rayquaza_scene/overcast2.gbapal.lz"); -const u16 gRaySceneOvercast2_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/overcast2.bin.lz"); - -const u8 gRaySceneRayquazaLight_Tilemap[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_light.bin.lz"); - -const u8 gRaySceneChaseBg_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/chase_bg.4bpp.lz"); -const u16 gRaySceneChaseBg_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/chase_bg.bin.lz"); - -const u8 gRaySceneChaseStreaks_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/chase_streaks.4bpp.lz"); -const u16 gRaySceneChaseStreaks_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/chase_streaks.bin.lz"); - -const u8 gRaySceneRayquazaChase_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_chase.4bpp.lz"); -const u16 gRayChaseRayquazaChase_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/rayquaza_chase.bin.lz"); -const u16 gRayChaseRayquazaChase2_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/rayquaza_chase2.bin.lz"); - -const u8 gRaySceneChase_Pal[] = INCBIN_U8("graphics/rayquaza_scene/chase.gbapal.lz"); - -const u8 gRaySceneGroudonLeft_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon_left.4bpp.lz"); -const u8 gRaySceneGroudonTail_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon_tail.4bpp.lz"); - -const u8 gRaySceneKyogreRight_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/kyogre_right.4bpp.lz"); - -const u8 gRaySceneRayquazaHover_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_hover.4bpp.lz"); -const u8 gRaySceneRayquazaFlyIn_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_flyin.4bpp.lz"); - -const u8 gRaySceneSplash_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/splash.4bpp.lz"); - -const u8 gRaySceneGroudonLeft_Pal[] = INCBIN_U8("graphics/rayquaza_scene/groudon_left.gbapal.lz"); -const u8 gRaySceneKyogreRight_Pal[] = INCBIN_U8("graphics/rayquaza_scene/kyogre_right.gbapal.lz"); -const u8 gRaySceneRayquazaHover_Pal[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_hover.gbapal.lz"); - -const u8 gRaySceneSplash_Pal[] = INCBIN_U8("graphics/rayquaza_scene/splash.gbapal.lz"); - -const u8 gRaySceneHushBg_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/hush_bg.4bpp.lz"); -const u16 gRaySceneHushRing_Gfx[] = INCBIN_U16("graphics/rayquaza_scene/hush_ring.8bpp.lz"); -const u16 gRaySceneHushBg_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/hush_bg.bin.lz"); -const u16 gRaySceneHushRing_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/hush_ring.bin.lz"); -const u16 gRaySceneHushRing_Map[] = INCBIN_U16("graphics/rayquaza_scene/hush_ring_map.bin.lz"); -const u8 gRaySceneHushBg_Pal[] = INCBIN_U8("graphics/rayquaza_scene/hush_bg.gbapal.lz"); - +#include "graphics/rayquaza_scene.h" #include "graphics/items.h" #include "graphics/decorations.h" @@ -1496,46 +1248,7 @@ const u8 gRouletteCreditTiles[] = INCBIN_U8("graphics/roulette/credit.4bpp.lz"); const u8 gRouletteNumbersTiles[] = INCBIN_U8("graphics/roulette/numbers.4bpp.lz"); const u8 gRouletteMultiplierTiles[] = INCBIN_U8("graphics/roulette/multiplier.4bpp.lz"); -const u16 gMailPalette_Orange[] = INCBIN_U16("graphics/mail/orange/palette.gbapal"); -const u16 gMailPalette_Harbor[] = INCBIN_U16("graphics/mail/harbor/palette.gbapal"); -const u16 gMailPalette_Glitter[] = INCBIN_U16("graphics/mail/glitter/palette.gbapal"); -const u16 gMailPalette_Mech[] = INCBIN_U16("graphics/mail/mech/palette.gbapal"); -const u16 gMailPalette_Wood[] = INCBIN_U16("graphics/mail/wood/palette.gbapal"); -const u16 gMailPalette_Wave[] = INCBIN_U16("graphics/mail/wave/palette.gbapal"); -const u16 gMailPalette_Bead[] = INCBIN_U16("graphics/mail/bead/palette.gbapal"); -const u16 gMailPalette_Shadow[] = INCBIN_U16("graphics/mail/shadow/palette.gbapal"); -const u16 gMailPalette_Tropic[] = INCBIN_U16("graphics/mail/tropic/palette.gbapal"); -const u16 gMailPalette_Dream[] = INCBIN_U16("graphics/mail/dream/palette.gbapal"); -const u16 gMailPalette_Fab[] = INCBIN_U16("graphics/mail/fab/palette.gbapal"); -const u16 gMailPalette_Retro[] = INCBIN_U16("graphics/mail/retro/palette.gbapal"); - -const u8 gMailTiles_Orange[] = INCBIN_U8("graphics/mail/orange/tiles.4bpp.lz"); -const u8 gMailTiles_Harbor[] = INCBIN_U8("graphics/mail/harbor/tiles.4bpp.lz"); -const u8 gMailTiles_Glitter[] = INCBIN_U8("graphics/mail/glitter/tiles.4bpp.lz"); -const u8 gMailTiles_Mech[] = INCBIN_U8("graphics/mail/mech/tiles.4bpp.lz"); -const u8 gMailTiles_Wood[] = INCBIN_U8("graphics/mail/wood/tiles.4bpp.lz"); -const u8 gMailTiles_Wave[] = INCBIN_U8("graphics/mail/wave/tiles.4bpp.lz"); -const u8 gMailTiles_Bead[] = INCBIN_U8("graphics/mail/bead/tiles.4bpp.lz"); -const u8 gMailTiles_Shadow[] = INCBIN_U8("graphics/mail/shadow/tiles.4bpp.lz"); -const u8 gMailTiles_Tropic[] = INCBIN_U8("graphics/mail/tropic/tiles.4bpp.lz"); -const u8 gMailTiles_Dream[] = INCBIN_U8("graphics/mail/dream/tiles.4bpp.lz"); -const u8 gMailTiles_Fab[] = INCBIN_U8("graphics/mail/fab/tiles.4bpp.lz"); -const u8 gMailTiles_Retro[] = INCBIN_U8("graphics/mail/retro/tiles.4bpp.lz"); - -const u16 gMailTilemap_Orange[] = INCBIN_U16("graphics/mail/orange/map.bin.lz"); -const u16 gMailTilemap_Harbor[] = INCBIN_U16("graphics/mail/harbor/map.bin.lz"); -const u16 gMailTilemap_Glitter[] = INCBIN_U16("graphics/mail/glitter/map.bin.lz"); -const u16 gMailTilemap_Mech[] = INCBIN_U16("graphics/mail/mech/map.bin.lz"); -const u16 gMailTilemap_Wood[] = INCBIN_U16("graphics/mail/wood/map.bin.lz"); -const u16 gMailTilemap_Wave[] = INCBIN_U16("graphics/mail/wave/map.bin.lz"); -const u16 gMailTilemap_Bead[] = INCBIN_U16("graphics/mail/bead/map.bin.lz"); -const u16 gMailTilemap_Shadow[] = INCBIN_U16("graphics/mail/shadow/map.bin.lz"); -const u16 gMailTilemap_Tropic[] = INCBIN_U16("graphics/mail/tropic/map.bin.lz"); -const u16 gMailTilemap_Dream[] = INCBIN_U16("graphics/mail/dream/map.bin.lz"); -const u16 gMailTilemap_Fab[] = INCBIN_U16("graphics/mail/fab/map.bin.lz"); -const u16 gMailTilemap_Retro[] = INCBIN_U16("graphics/mail/retro/map.bin.lz"); - -// OK +#include "graphics/mail.h" const u16 gFrontierFactorySelectMenu_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_menu1.gbapal"); const u16 gFrontierFactorySelectMenu_Pal2[] = INCBIN_U16("graphics/battle_frontier/factory_menu2.gbapal"); @@ -1711,68 +1424,7 @@ const u8 gUsePokeblockGraph_Gfx[] = INCBIN_U8("graphics/pokeblock/use_screen/gra const u16 gUsePokeblockGraph_Tilemap[] = INCBIN_U16("graphics/pokeblock/use_screen/graph.bin.lz"); const u16 gUsePokeblockNatureWin_Pal[] = INCBIN_U16("graphics/pokeblock/use_screen/nature.gbapal"); -// slot machine - -const u16 gSlotMachineMenu_Pal[] = INCBIN_U16("graphics/slot_machine/menu.gbapal"); -const u8 gSlotMachineMenu_Gfx[] = INCBIN_U8("graphics/slot_machine/menu.4bpp.lz"); -const u16 gSlotMachineMenu_Tilemap[] = INCBIN_U16("graphics/slot_machine/menu.bin"); - -const u16 gUnknown_08DCEC70[] = INCBIN_U16("graphics/slot_machine/slots_layout.bin"); - -const u16 gUnknown_08DCF170[] = INCBIN_U16("graphics/slot_machine/reel_symbols/1.gbapal"); - -const u16 gUnknown_08DCF190[] = INCBIN_U16("graphics/slot_machine/reel_pikachu.gbapal"); - -const u16 gUnknown_08DCF1B0[] = INCBIN_U16("graphics/slot_machine/shadow.gbapal"); - -const u16 gSlotMachineReelTime_Pal[] = INCBIN_U16("graphics/slot_machine/reel_time.gbapal"); - -const u16 gUnknown_08DCF1F0[] = INCBIN_U16("graphics/slot_machine/smoke.gbapal"); // also duck and pika aura - -const u16 gUnknown_08DCF210[] = INCBIN_U16("graphics/slot_machine/reel_time_explosion/0.gbapal"); - -const u16 gUnknown_08DCF230[] = INCBIN_U16("graphics/slot_machine/spr6.gbapal"); - -const u8 gSlotMachineReelSymbol1Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/1.4bpp"); -const u8 gSlotMachineReelSymbol2Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/2.4bpp"); -const u8 gSlotMachineReelSymbol3Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/3.4bpp"); -const u8 gSlotMachineReelSymbol4Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/4.4bpp"); -const u8 gSlotMachineReelSymbol5Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/5.4bpp"); -const u8 gSlotMachineReelSymbol6Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/6.4bpp"); -const u8 gSlotMachineReelSymbol7Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/7.4bpp"); - -const u8 gSlotMachineReelTime_Gfx[] = INCBIN_U8("graphics/slot_machine/reel_time.4bpp.lz"); - -const u8 gSlotMachineNumber0Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/0.4bpp"); -const u8 gSlotMachineNumber1Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/1.4bpp"); -const u8 gSlotMachineNumber2Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/2.4bpp"); -const u8 gSlotMachineNumber3Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/3.4bpp"); -const u8 gSlotMachineNumber4Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/4.4bpp"); -const u8 gSlotMachineNumber5Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/5.4bpp"); -const u8 gSlotMachineNumber6Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/6.4bpp"); -const u8 gSlotMachineNumber7Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/7.4bpp"); -const u8 gSlotMachineNumber8Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/8.4bpp"); -const u8 gSlotMachineNumber9Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/9.4bpp"); - -const u8 gSlotMachineReelTimeBolt[] = INCBIN_U8("graphics/slot_machine/bolt.4bpp"); -const u8 gSlotMachineReelTimeDuck[] = INCBIN_U8("graphics/slot_machine/duck.4bpp"); -const u8 gSlotMachineReelTimeSmoke[] = INCBIN_U8("graphics/slot_machine/smoke.4bpp"); - -const u8 gSlotMachineReelTimeNumber0[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/0.4bpp"); -const u8 gSlotMachineReelTimeNumber1[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/1.4bpp"); -const u8 gSlotMachineReelTimeNumber2[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/2.4bpp"); -const u8 gSlotMachineReelTimeNumber3[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/3.4bpp"); -const u8 gSlotMachineReelTimeNumber4[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/4.4bpp"); -const u8 gSlotMachineReelTimeNumber5[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/5.4bpp"); - -const u8 gSlotMachineReelTimeLargeBolt0[] = INCBIN_U8("graphics/slot_machine/large_bolt/0.4bpp"); -const u8 gSlotMachineReelTimeLargeBolt1[] = INCBIN_U8("graphics/slot_machine/large_bolt/1.4bpp"); - -const u8 gSlotMachineReelTimeExplosion0[] = INCBIN_U8("graphics/slot_machine/reel_time_explosion/0.4bpp"); -const u8 gSlotMachineReelTimeExplosion1[] = INCBIN_U8("graphics/slot_machine/reel_time_explosion/1.4bpp"); - -const u8 gSlotMachineReelTimeShadow[] = INCBIN_U8("graphics/slot_machine/shadow.4bpp"); -const u8 gSlotMachineReelTimePikaAura[] = INCBIN_U8("graphics/slot_machine/pika_aura.4bpp"); +#include "graphics/slot_machine.h" const u16 gUnknown_08DD19F8[] = INCBIN_U16("graphics/unknown/unknown_DD19F8.bin"); @@ -1833,22 +1485,25 @@ const u16 gUnknown_08DD4C4C[] = INCBIN_U16("graphics/link/link_winedge.bin.lz"); const u8 gUnknown_08DD4CF8[] = INCBIN_U8("graphics/interface/unk_change_case.4bpp.lz"); -const u16 gTilesetPalettes_General[] = INCBIN_U16("data/tilesets/primary/general/palettes/00.gbapal"); -const u16 gTilesetPalettes_General1[] = INCBIN_U16("data/tilesets/primary/general/palettes/01.gbapal"); -const u16 gTilesetPalettes_General2[] = INCBIN_U16("data/tilesets/primary/general/palettes/02.gbapal"); -const u16 gTilesetPalettes_General3[] = INCBIN_U16("data/tilesets/primary/general/palettes/03.gbapal"); -const u16 gTilesetPalettes_General4[] = INCBIN_U16("data/tilesets/primary/general/palettes/04.gbapal"); -const u16 gTilesetPalettes_General5[] = INCBIN_U16("data/tilesets/primary/general/palettes/05.gbapal"); -const u16 gTilesetPalettes_General6[] = INCBIN_U16("data/tilesets/primary/general/palettes/06.gbapal"); -const u16 gTilesetPalettes_General7[] = INCBIN_U16("data/tilesets/primary/general/palettes/07.gbapal"); -const u16 gTilesetPalettes_General8[] = INCBIN_U16("data/tilesets/primary/general/palettes/08.gbapal"); -const u16 gTilesetPalettes_General9[] = INCBIN_U16("data/tilesets/primary/general/palettes/09.gbapal"); -const u16 gTilesetPalettes_General10[] = INCBIN_U16("data/tilesets/primary/general/palettes/10.gbapal"); -const u16 gTilesetPalettes_General11[] = INCBIN_U16("data/tilesets/primary/general/palettes/11.gbapal"); -const u16 gTilesetPalettes_General12[] = INCBIN_U16("data/tilesets/primary/general/palettes/12.gbapal"); -const u16 gTilesetPalettes_General13[] = INCBIN_U16("data/tilesets/primary/general/palettes/13.gbapal"); -const u16 gTilesetPalettes_General14[] = INCBIN_U16("data/tilesets/primary/general/palettes/14.gbapal"); -const u16 gTilesetPalettes_General15[] = INCBIN_U16("data/tilesets/primary/general/palettes/15.gbapal"); +const u16 gTilesetPalettes_General[][16] = +{ + INCBIN_U16("data/tilesets/primary/general/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/primary/general/palettes/15.gbapal"), +}; const u8 gTilesetTiles_General[] = INCBIN_U8("data/tilesets/primary/general/tiles.4bpp.lz"); @@ -1861,31 +1516,7 @@ const u8 gTradeGba_Gfx[] = INCBIN_U8("graphics/link/gba.4bpp"); // 8DD8760 asm(".space 0x20"); //blank palette?? -// berry fix program - -const u16 gBerryFixGameboy_Pal[] = INCBIN_U16("graphics/berry_fix/gba_small.gbapal"); -const u8 gBerryFixGameboy_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_small.4bpp.lz"); -const u16 gBerryFixGameboy_Tilemap[] = INCBIN_U16("graphics/berry_fix/gba_small.bin.lz"); - -const u16 gBerryFixGameboyLogo_Pal[] = INCBIN_U16("graphics/berry_fix/logo.gbapal"); -const u8 gBerryFixGameboyLogo_Gfx[] = INCBIN_U8("graphics/berry_fix/logo.4bpp.lz"); -const u16 gBerryFixGameboyLogo_Tilemap[] = INCBIN_U16("graphics/berry_fix/logo.bin.lz"); - -const u16 gBerryFixGbaTransfer_Pal[] = INCBIN_U16("graphics/berry_fix/gba_transfer.gbapal"); -const u8 gBerryFixGbaTransfer_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_transfer.4bpp.lz"); -const u16 gBerryFixGbaTransfer_Tilemap[] = INCBIN_U16("graphics/berry_fix/gba_transfer.bin.lz"); - -const u16 gBerryFixGbaTransferHighlight_Pal[] = INCBIN_U16("graphics/berry_fix/gba_transfer_highlight.gbapal"); -const u8 gBerryFixGbaTransferHighlight_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_transfer_highlight.4bpp.lz"); -const u16 gBerryFixGbaTransferHighlight_Tilemap[] = INCBIN_U16("graphics/berry_fix/gba_transfer_highlight.bin.lz"); - -const u16 gBerryFixGbaTransferError_Pal[] = INCBIN_U16("graphics/berry_fix/gba_transfer_error.gbapal"); -const u8 gBerryFixGbaTransferError_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_transfer_error.4bpp.lz"); -const u16 gBerryFixGbaTransferError_Tilemap[] = INCBIN_U16("graphics/berry_fix/gba_transfer_error.bin.lz"); - -const u16 gBerryFixWindow_Pal[] = INCBIN_U16("graphics/berry_fix/window.gbapal"); -const u8 gBerryFixWindow_Gfx[] = INCBIN_U8("graphics/berry_fix/window.4bpp.lz"); -const u16 gBerryFixWindow_Tilemap[] = INCBIN_U16("graphics/berry_fix/window.bin.lz"); +#include "graphics/berry_fix.h" // more trade stuff? @@ -1910,14 +1541,20 @@ const u8 gWallpaperIcon_Cross[] = INCBIN_U8("graphics/pokemon_storage/cross_icon const u8 gWallpaperIcon_Bolt[] = INCBIN_U8("graphics/pokemon_storage/bolt_icon.4bpp.lz"); const u8 gWallpaperIcon_Plusle[] = INCBIN_U8("graphics/pokemon_storage/plusle_icon.4bpp.lz"); -const u16 gWallpaperPalettes_Horizontal[] = INCBIN_U16("graphics/pokemon_storage/friends_frame2.gbapal"); -const u16 gWallpaperPalettes_Horizontal2[] = INCBIN_U16("graphics/pokemon_storage/horizontal_bg.gbapal"); +const u16 gWallpaperPalettes_Horizontal[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/friends_frame2.gbapal"), + INCBIN_U16("graphics/pokemon_storage/horizontal_bg.gbapal"), +}; const u8 gWallpaperTiles_Horizontal[] = INCBIN_U8("graphics/pokemon_storage/horizontal.4bpp.lz"); const u16 gWallpaperTilemap_Horizontal[] = INCBIN_U16("graphics/pokemon_storage/horizontal.bin.lz"); -const u16 gWallpaperPalettes_Ribbon[] = INCBIN_U16("graphics/pokemon_storage/ribbon_frame.gbapal"); -const u16 gWallpaperPalettes_Ribbon2[] = INCBIN_U16("graphics/pokemon_storage/ribbon_bg.gbapal"); +const u16 gWallpaperPalettes_Ribbon[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/ribbon_frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/ribbon_bg.gbapal"), +}; const u8 gWallpaperTiles_Ribbon[] = INCBIN_U8("graphics/pokemon_storage/ribbon.4bpp.lz"); const u16 gWallpaperTilemap_Ribbon[] = INCBIN_U16("graphics/pokemon_storage/ribbon.bin.lz"); @@ -1928,9 +1565,12 @@ const u16 gUnknown_08DDE010[] = INCBIN_U16("graphics/pokenav/ribbons.gbapal"); const u8 gUnknown_08DDE030[] = INCBIN_U8("graphics/pokenav/ribbons.4bpp.lz"); const u16 gUnknown_08DDE12C[] = INCBIN_U16("graphics/pokenav/ribbons.bin.lz"); -const u16 gMonIconPalettes[] = INCBIN_U16("graphics/pokemon/icon_palettes/icon_palette_0.gbapal"); -const u16 gMonIconPalettes1[] = INCBIN_U16("graphics/pokemon/icon_palettes/icon_palette_1.gbapal"); -const u16 gMonIconPalettes2[] = INCBIN_U16("graphics/pokemon/icon_palettes/icon_palette_2.gbapal"); +const u16 gMonIconPalettes[][16] = +{ + INCBIN_U16("graphics/pokemon/icon_palettes/icon_palette_0.gbapal"), + INCBIN_U16("graphics/pokemon/icon_palettes/icon_palette_1.gbapal"), + INCBIN_U16("graphics/pokemon/icon_palettes/icon_palette_2.gbapal"), +}; const u16 gTitleScreenBgPalettes[] = INCBIN_U16("graphics/title_screen/pokemon_logo.gbapal"); const u16 gTitleScreenBgPalettes2[] = INCBIN_U16("graphics/title_screen/rayquaza_and_clouds.gbapal"); diff --git a/src/graphics/battle_terrain.h b/src/graphics/battle_terrain.h new file mode 100644 index 0000000000..4ff9883fea --- /dev/null +++ b/src/graphics/battle_terrain.h @@ -0,0 +1,88 @@ +const u8 gBattleTerrainTiles_TallGrass[] = INCBIN_U8("graphics/battle_terrain/tall_grass/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_TallGrass[] = INCBIN_U8("graphics/battle_terrain/tall_grass/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_TallGrass[] = INCBIN_U16("graphics/battle_terrain/tall_grass/map.bin.lz"); + +const u8 gBattleTerrainTiles_LongGrass[] = INCBIN_U8("graphics/battle_terrain/long_grass/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_LongGrass[] = INCBIN_U8("graphics/battle_terrain/long_grass/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_LongGrass[] = INCBIN_U16("graphics/battle_terrain/long_grass/map.bin.lz"); + +const u8 gBattleTerrainTiles_Sand[] = INCBIN_U8("graphics/battle_terrain/sand/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_Sand[] = INCBIN_U8("graphics/battle_terrain/sand/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_Sand[] = INCBIN_U16("graphics/battle_terrain/sand/map.bin.lz"); + +const u8 gBattleTerrainTiles_Underwater[] = INCBIN_U8("graphics/battle_terrain/underwater/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_Underwater[] = INCBIN_U8("graphics/battle_terrain/underwater/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_Underwater[] = INCBIN_U16("graphics/battle_terrain/underwater/map.bin.lz"); + +const u8 gBattleTerrainTiles_Water[] = INCBIN_U8("graphics/battle_terrain/water/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_Water[] = INCBIN_U8("graphics/battle_terrain/water/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_Water[] = INCBIN_U16("graphics/battle_terrain/water/map.bin.lz"); + +const u8 gBattleTerrainTiles_PondWater[] = INCBIN_U8("graphics/battle_terrain/pond_water/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_PondWater[] = INCBIN_U8("graphics/battle_terrain/pond_water/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_PondWater[] = INCBIN_U16("graphics/battle_terrain/pond_water/map.bin.lz"); + +const u8 gBattleTerrainTiles_Rock[] = INCBIN_U8("graphics/battle_terrain/rock/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_Rock[] = INCBIN_U8("graphics/battle_terrain/rock/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_Rock[] = INCBIN_U16("graphics/battle_terrain/rock/map.bin.lz"); + +const u8 gBattleTerrainTiles_Cave[] = INCBIN_U8("graphics/battle_terrain/cave/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_Cave[] = INCBIN_U8("graphics/battle_terrain/cave/palette.gbapal.lz"); +const u16 gBattleTerrainTilemap_Cave[] = INCBIN_U16("graphics/battle_terrain/cave/map.bin.lz"); + +const u8 gBattleTerrainPalette_Plain[] = INCBIN_U8("graphics/battle_terrain/plain/palette.gbapal.lz"); + +const u8 gBattleTerrainTiles_Building[] = INCBIN_U8("graphics/battle_terrain/building/tiles.4bpp.lz"); +const u8 gBattleTerrainPalette_Frontier[] = INCBIN_U8("graphics/battle_terrain/stadium/battle_frontier.gbapal.lz"); // this is also used for link battles +const u16 gBattleTerrainTilemap_Building[] = INCBIN_U16("graphics/battle_terrain/building/map.bin.lz"); + +const u8 gBattleTerrainTiles_Stadium[] = INCBIN_U8("graphics/battle_terrain/stadium/tiles.4bpp.lz"); +const u16 gBattleTerrainTilemap_Stadium[] = INCBIN_U16("graphics/battle_terrain/stadium/map.bin.lz"); + +const u8 gBattleTerrainTiles_Rayquaza[] = INCBIN_U8("graphics/battle_terrain/sky/tiles.4bpp.lz"); +const u16 gBattleTerrainTilemap_Rayquaza[] = INCBIN_U16("graphics/battle_terrain/sky/map.bin.lz"); + +const u8 gBattleTerrainPalette_Building[] = INCBIN_U8("graphics/battle_terrain/building/palette.gbapal.lz"); + +const u8 gBattleTerrainPalette_Kyogre[] = INCBIN_U8("graphics/battle_terrain/water/kyogre.gbapal.lz"); +const u8 gBattleTerrainPalette_Groudon[] = INCBIN_U8("graphics/battle_terrain/cave/groudon.gbapal.lz"); +const u8 gBattleTerrainPalette_BuildingGym[] = INCBIN_U8("graphics/battle_terrain/building/palette2.gbapal.lz"); +const u8 gBattleTerrainPalette_BuildingLeader[] = INCBIN_U8("graphics/battle_terrain/building/palette3.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumAqua[] = INCBIN_U8("graphics/battle_terrain/stadium/palette1.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumMagma[] = INCBIN_U8("graphics/battle_terrain/stadium/palette2.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumSidney[] = INCBIN_U8("graphics/battle_terrain/stadium/palette3.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumPhoebe[] = INCBIN_U8("graphics/battle_terrain/stadium/palette4.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumGlacia[] = INCBIN_U8("graphics/battle_terrain/stadium/palette5.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumDrake[] = INCBIN_U8("graphics/battle_terrain/stadium/palette6.gbapal.lz"); +const u8 gBattleTerrainPalette_StadiumWallace[] = INCBIN_U8("graphics/battle_terrain/stadium/palette7.gbapal.lz"); +const u8 gBattleTerrainPalette_Rayquaza[] = INCBIN_U8("graphics/battle_terrain/sky/palette.gbapal.lz"); + +const u8 gBattleTerrainAnimTiles_TallGrass[] = INCBIN_U8("graphics/battle_terrain/tall_grass/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_TallGrass[] = INCBIN_U16("graphics/battle_terrain/tall_grass/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_LongGrass[] = INCBIN_U8("graphics/battle_terrain/long_grass/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_LongGrass[] = INCBIN_U16("graphics/battle_terrain/long_grass/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Sand[] = INCBIN_U8("graphics/battle_terrain/sand/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Sand[] = INCBIN_U16("graphics/battle_terrain/sand/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Underwater[] = INCBIN_U8("graphics/battle_terrain/underwater/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Underwater[] = INCBIN_U16("graphics/battle_terrain/underwater/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Water[] = INCBIN_U8("graphics/battle_terrain/water/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Water[] = INCBIN_U16("graphics/battle_terrain/water/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_PondWater[] = INCBIN_U8("graphics/battle_terrain/pond_water/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_PondWater[] = INCBIN_U16("graphics/battle_terrain/pond_water/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Rock[] = INCBIN_U8("graphics/battle_terrain/rock/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Rock[] = INCBIN_U16("graphics/battle_terrain/rock/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Cave[] = INCBIN_U8("graphics/battle_terrain/cave/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Cave[] = INCBIN_U16("graphics/battle_terrain/cave/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Building[] = INCBIN_U8("graphics/battle_terrain/building/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Building[] = INCBIN_U16("graphics/battle_terrain/building/anim_map.bin.lz"); + +const u8 gBattleTerrainAnimTiles_Rayquaza[] = INCBIN_U8("graphics/battle_terrain/sky/anim_tiles.4bpp.lz"); +const u16 gBattleTerrainAnimTilemap_Rayquaza[] = INCBIN_U16("graphics/battle_terrain/sky/anim_map.bin.lz"); diff --git a/src/graphics/berry_fix.h b/src/graphics/berry_fix.h new file mode 100644 index 0000000000..4012ab5a30 --- /dev/null +++ b/src/graphics/berry_fix.h @@ -0,0 +1,23 @@ +const u16 gBerryFixGameboy_Pal[] = INCBIN_U16("graphics/berry_fix/gba_small.gbapal"); +const u8 gBerryFixGameboy_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_small.4bpp.lz"); +const u16 gBerryFixGameboy_Tilemap[] = INCBIN_U16("graphics/berry_fix/gba_small.bin.lz"); + +const u16 gBerryFixGameboyLogo_Pal[] = INCBIN_U16("graphics/berry_fix/logo.gbapal"); +const u8 gBerryFixGameboyLogo_Gfx[] = INCBIN_U8("graphics/berry_fix/logo.4bpp.lz"); +const u16 gBerryFixGameboyLogo_Tilemap[] = INCBIN_U16("graphics/berry_fix/logo.bin.lz"); + +const u16 gBerryFixGbaTransfer_Pal[] = INCBIN_U16("graphics/berry_fix/gba_transfer.gbapal"); +const u8 gBerryFixGbaTransfer_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_transfer.4bpp.lz"); +const u16 gBerryFixGbaTransfer_Tilemap[] = INCBIN_U16("graphics/berry_fix/gba_transfer.bin.lz"); + +const u16 gBerryFixGbaTransferHighlight_Pal[] = INCBIN_U16("graphics/berry_fix/gba_transfer_highlight.gbapal"); +const u8 gBerryFixGbaTransferHighlight_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_transfer_highlight.4bpp.lz"); +const u16 gBerryFixGbaTransferHighlight_Tilemap[] = INCBIN_U16("graphics/berry_fix/gba_transfer_highlight.bin.lz"); + +const u16 gBerryFixGbaTransferError_Pal[] = INCBIN_U16("graphics/berry_fix/gba_transfer_error.gbapal"); +const u8 gBerryFixGbaTransferError_Gfx[] = INCBIN_U8("graphics/berry_fix/gba_transfer_error.4bpp.lz"); +const u16 gBerryFixGbaTransferError_Tilemap[] = INCBIN_U16("graphics/berry_fix/gba_transfer_error.bin.lz"); + +const u16 gBerryFixWindow_Pal[] = INCBIN_U16("graphics/berry_fix/window.gbapal"); +const u8 gBerryFixWindow_Gfx[] = INCBIN_U8("graphics/berry_fix/window.4bpp.lz"); +const u16 gBerryFixWindow_Tilemap[] = INCBIN_U16("graphics/berry_fix/window.bin.lz"); \ No newline at end of file diff --git a/src/graphics/interface_pokeballs.h b/src/graphics/interface_pokeballs.h new file mode 100644 index 0000000000..db91283aea --- /dev/null +++ b/src/graphics/interface_pokeballs.h @@ -0,0 +1,37 @@ +const u8 gInterfaceGfx_PokeBall[] = INCBIN_U8("graphics/interface/ball/poke.4bpp.lz"); +const u8 gInterfacePal_PokeBall[] = INCBIN_U8("graphics/interface/ball/poke.gbapal.lz"); + +const u8 gInterfaceGfx_GreatBall[] = INCBIN_U8("graphics/interface/ball/great.4bpp.lz"); +const u8 gInterfacePal_GreatBall[] = INCBIN_U8("graphics/interface/ball/great.gbapal.lz"); + +const u8 gInterfaceGfx_SafariBall[] = INCBIN_U8("graphics/interface/ball/safari.4bpp.lz"); +const u8 gInterfacePal_SafariBall[] = INCBIN_U8("graphics/interface/ball/safari.gbapal.lz"); + +const u8 gInterfaceGfx_UltraBall[] = INCBIN_U8("graphics/interface/ball/ultra.4bpp.lz"); +const u8 gInterfacePal_UltraBall[] = INCBIN_U8("graphics/interface/ball/ultra.gbapal.lz"); + +const u8 gInterfaceGfx_MasterBall[] = INCBIN_U8("graphics/interface/ball/master.4bpp.lz"); +const u8 gInterfacePal_MasterBall[] = INCBIN_U8("graphics/interface/ball/master.gbapal.lz"); + +const u8 gInterfaceGfx_NetBall[] = INCBIN_U8("graphics/interface/ball/net.4bpp.lz"); +const u8 gInterfacePal_NetBall[] = INCBIN_U8("graphics/interface/ball/net.gbapal.lz"); + +const u8 gInterfaceGfx_DiveBall[] = INCBIN_U8("graphics/interface/ball/dive.4bpp.lz"); +const u8 gInterfacePal_DiveBall[] = INCBIN_U8("graphics/interface/ball/dive.gbapal.lz"); + +const u8 gInterfaceGfx_NestBall[] = INCBIN_U8("graphics/interface/ball/nest.4bpp.lz"); +const u8 gInterfacePal_NestBall[] = INCBIN_U8("graphics/interface/ball/nest.gbapal.lz"); + +const u8 gInterfaceGfx_RepeatBall[] = INCBIN_U8("graphics/interface/ball/repeat.4bpp.lz"); +const u8 gInterfacePal_RepeatBall[] = INCBIN_U8("graphics/interface/ball/repeat.gbapal.lz"); + +const u8 gInterfaceGfx_TimerBall[] = INCBIN_U8("graphics/interface/ball/timer.4bpp.lz"); +const u8 gInterfacePal_TimerBall[] = INCBIN_U8("graphics/interface/ball/timer.gbapal.lz"); + +const u8 gInterfaceGfx_LuxuryBall[] = INCBIN_U8("graphics/interface/ball/luxury.4bpp.lz"); +const u8 gInterfacePal_LuxuryBall[] = INCBIN_U8("graphics/interface/ball/luxury.gbapal.lz"); + +const u8 gInterfaceGfx_PremierBall[] = INCBIN_U8("graphics/interface/ball/premier.4bpp.lz"); +const u8 gInterfacePal_PremierBall[] = INCBIN_U8("graphics/interface/ball/premier.gbapal.lz"); + +const u8 gOpenPokeballGfx[] = INCBIN_U8("graphics/interface/ball_open.4bpp.lz"); diff --git a/src/graphics/intro_scene.h b/src/graphics/intro_scene.h new file mode 100644 index 0000000000..9c049ffb28 --- /dev/null +++ b/src/graphics/intro_scene.h @@ -0,0 +1,48 @@ +const u16 gIntro1GameFreakTextFadePal[] = INCBIN_U16("graphics/intro/intro1_text.gbapal"); // game freak text blue fade +const u16 gIntro2BrendanNoTurnPal[] = INCBIN_U16("graphics/intro/intro2_brendan_noturn.gbapal"); +const u16 gIntro3BgPal[] = INCBIN_U16("graphics/intro/intro3.gbapal"); +const u16 gIntro2VolbeatPal[] = INCBIN_U16("graphics/intro/intro2_volbeat.gbapal"); +const u16 gIntro2TorchicPal[] = INCBIN_U16("graphics/intro/intro2_torchic.gbapal"); +const u16 gIntro2ManectricPal[] = INCBIN_U16("graphics/intro/intro2_manectric.gbapal"); +const u16 gIntro2FlygonPal[] = INCBIN_U16("graphics/intro/intro2_flygon.gbapal"); + +const u8 gIntro2VolbeatGfx[] = INCBIN_U8("graphics/intro/intro2_volbeat.4bpp.lz"); +const u8 gIntro2TorchicGfx[] = INCBIN_U8("graphics/intro/intro2_torchic.4bpp.lz"); +const u8 gIntro2ManectricGfx[] = INCBIN_U8("graphics/intro/intro2_manectric.4bpp.lz"); +const u8 gIntro2FlygonGfx[] = INCBIN_U8("graphics/intro/intro2_flygon.4bpp.lz"); +const u8 gIntro2BrendanNoTurnGfx[] = INCBIN_U8("graphics/intro/intro2_brendan_noturn.4bpp.lz"); +const u8 gIntro2MayNoTurnGfx[] = INCBIN_U8("graphics/intro/intro2_may_noturn.4bpp.lz"); + +const u16 gIntro3GroudonGfx[] = INCBIN_U16("graphics/intro/intro3_groudon.8bpp.lz"); +const u16 gIntro3GroudonTilemap[] = INCBIN_U16("graphics/intro/intro3_groudon.bin.lz"); + +const u16 gIntro3KyogreGfx[] = INCBIN_U16("graphics/intro/intro3_kyogre.8bpp.lz"); +const u16 gIntro3KyogreTilemap[] = INCBIN_U16("graphics/intro/intro3_kyogre.bin.lz"); + +const u8 gIntro3LegendBgGfx[] = INCBIN_U8("graphics/intro/legend_bg.4bpp.lz"); // groudon/kyogre/bg + +const u16 gIntro3GroudonBgTilemap[] = INCBIN_U16("graphics/intro/legend_bg1.bin.lz"); +const u16 gIntro3KyogreBgTilemap[] = INCBIN_U16("graphics/intro/legend_bg2.bin.lz"); + +const u8 gIntro3CloudsGfx[] = INCBIN_U8("graphics/intro/intro3_clouds.4bpp.lz"); +const u16 gIntro3Clouds1Tilemap[] = INCBIN_U16("graphics/intro/intro3_clouds1.bin.lz"); +const u16 gIntro3Clouds2Tilemap[] = INCBIN_U16("graphics/intro/intro3_clouds2.bin.lz"); +const u16 gIntro3Clouds3Tilemap[] = INCBIN_U16("graphics/intro/intro3_clouds3.bin.lz"); + +const u8 gIntro3LightningGfx[] = INCBIN_U8("graphics/intro/intro3_lightning.4bpp.lz"); +const u16 gIntro3LightningPal[] = INCBIN_U16("graphics/intro/intro3_lightning.gbapal"); + +const u8 gIntro3RayquazaGfx[] = INCBIN_U8("graphics/intro/intro3_rayquaza.4bpp.lz"); +const u16 gIntro3RayquazaTilemap[] = INCBIN_U16("graphics/intro/intro3_rayquaza.bin.lz"); + +const u16 gUnknown_D8C374[] = INCBIN_U16("graphics/unknown/unknown_D8C374.bin.lz"); +const u16 gUnknown_D8C5C4[] = INCBIN_U16("graphics/unknown/unknown_D8C5C4.bin.lz"); + +const u8 gIntro3Clouds2Gfx[] = INCBIN_U8("graphics/intro/intro3_clouds2.4bpp.lz"); //clouds 2, during the rayquaza flash +const u16 gIntro3Clouds4Tilemap[] = INCBIN_U16("graphics/intro/intro3_clouds4.bin.lz"); + +const u8 gIntro2BubblesGfx[] = INCBIN_U8("graphics/intro/intro2_bubbles.4bpp.lz"); +const u16 gIntro2BubblesPal[] = INCBIN_U16("graphics/intro/intro2_bubbles.gbapal"); + +const u8 gIntro1FlygonGfx[] = INCBIN_U8("graphics/intro/intro1_flygon.4bpp.lz"); +const u8 gIntro1SparkleGfx[] = INCBIN_U8("graphics/intro/intro1_sparkle.4bpp.lz"); diff --git a/src/graphics/mail.h b/src/graphics/mail.h new file mode 100644 index 0000000000..53497347ad --- /dev/null +++ b/src/graphics/mail.h @@ -0,0 +1,38 @@ +const u16 gMailPalette_Orange[] = INCBIN_U16("graphics/mail/orange/palette.gbapal"); +const u16 gMailPalette_Harbor[] = INCBIN_U16("graphics/mail/harbor/palette.gbapal"); +const u16 gMailPalette_Glitter[] = INCBIN_U16("graphics/mail/glitter/palette.gbapal"); +const u16 gMailPalette_Mech[] = INCBIN_U16("graphics/mail/mech/palette.gbapal"); +const u16 gMailPalette_Wood[] = INCBIN_U16("graphics/mail/wood/palette.gbapal"); +const u16 gMailPalette_Wave[] = INCBIN_U16("graphics/mail/wave/palette.gbapal"); +const u16 gMailPalette_Bead[] = INCBIN_U16("graphics/mail/bead/palette.gbapal"); +const u16 gMailPalette_Shadow[] = INCBIN_U16("graphics/mail/shadow/palette.gbapal"); +const u16 gMailPalette_Tropic[] = INCBIN_U16("graphics/mail/tropic/palette.gbapal"); +const u16 gMailPalette_Dream[] = INCBIN_U16("graphics/mail/dream/palette.gbapal"); +const u16 gMailPalette_Fab[] = INCBIN_U16("graphics/mail/fab/palette.gbapal"); +const u16 gMailPalette_Retro[] = INCBIN_U16("graphics/mail/retro/palette.gbapal"); + +const u8 gMailTiles_Orange[] = INCBIN_U8("graphics/mail/orange/tiles.4bpp.lz"); +const u8 gMailTiles_Harbor[] = INCBIN_U8("graphics/mail/harbor/tiles.4bpp.lz"); +const u8 gMailTiles_Glitter[] = INCBIN_U8("graphics/mail/glitter/tiles.4bpp.lz"); +const u8 gMailTiles_Mech[] = INCBIN_U8("graphics/mail/mech/tiles.4bpp.lz"); +const u8 gMailTiles_Wood[] = INCBIN_U8("graphics/mail/wood/tiles.4bpp.lz"); +const u8 gMailTiles_Wave[] = INCBIN_U8("graphics/mail/wave/tiles.4bpp.lz"); +const u8 gMailTiles_Bead[] = INCBIN_U8("graphics/mail/bead/tiles.4bpp.lz"); +const u8 gMailTiles_Shadow[] = INCBIN_U8("graphics/mail/shadow/tiles.4bpp.lz"); +const u8 gMailTiles_Tropic[] = INCBIN_U8("graphics/mail/tropic/tiles.4bpp.lz"); +const u8 gMailTiles_Dream[] = INCBIN_U8("graphics/mail/dream/tiles.4bpp.lz"); +const u8 gMailTiles_Fab[] = INCBIN_U8("graphics/mail/fab/tiles.4bpp.lz"); +const u8 gMailTiles_Retro[] = INCBIN_U8("graphics/mail/retro/tiles.4bpp.lz"); + +const u16 gMailTilemap_Orange[] = INCBIN_U16("graphics/mail/orange/map.bin.lz"); +const u16 gMailTilemap_Harbor[] = INCBIN_U16("graphics/mail/harbor/map.bin.lz"); +const u16 gMailTilemap_Glitter[] = INCBIN_U16("graphics/mail/glitter/map.bin.lz"); +const u16 gMailTilemap_Mech[] = INCBIN_U16("graphics/mail/mech/map.bin.lz"); +const u16 gMailTilemap_Wood[] = INCBIN_U16("graphics/mail/wood/map.bin.lz"); +const u16 gMailTilemap_Wave[] = INCBIN_U16("graphics/mail/wave/map.bin.lz"); +const u16 gMailTilemap_Bead[] = INCBIN_U16("graphics/mail/bead/map.bin.lz"); +const u16 gMailTilemap_Shadow[] = INCBIN_U16("graphics/mail/shadow/map.bin.lz"); +const u16 gMailTilemap_Tropic[] = INCBIN_U16("graphics/mail/tropic/map.bin.lz"); +const u16 gMailTilemap_Dream[] = INCBIN_U16("graphics/mail/dream/map.bin.lz"); +const u16 gMailTilemap_Fab[] = INCBIN_U16("graphics/mail/fab/map.bin.lz"); +const u16 gMailTilemap_Retro[] = INCBIN_U16("graphics/mail/retro/map.bin.lz"); diff --git a/src/graphics/rayquaza_scene.h b/src/graphics/rayquaza_scene.h new file mode 100644 index 0000000000..928a4f6f02 --- /dev/null +++ b/src/graphics/rayquaza_scene.h @@ -0,0 +1,73 @@ +const u8 gRaySceneGroudon_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon.4bpp.lz"); +const u8 gRaySceneGroudon2_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon_shoulder.4bpp.lz"); +const u8 gRaySceneGroudon3_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon_claw.4bpp.lz"); + +const u8 gRaySceneKyogre_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/kyogre.4bpp.lz"); +const u8 gRaySceneKyogre2_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/kyogre_shoulder.4bpp.lz"); +const u8 gRaySceneKyogre3_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/kyogre_fin.4bpp.lz"); + +const u8 gRaySceneGroudon_Pal[] = INCBIN_U8("graphics/rayquaza_scene/groudon.gbapal.lz"); +const u8 gRaySceneKyogre_Pal[] = INCBIN_U8("graphics/rayquaza_scene/kyogre.gbapal.lz"); + +const u8 gRaySceneClouds_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/clouds.4bpp.lz"); +const u8 gRaySceneClouds_Pal[] = INCBIN_U8("graphics/rayquaza_scene/clouds.gbapal.lz"); // pal 1 clouds, pal 2 rain +const u16 gRaySceneClouds1_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/clouds1.bin.lz"); +const u16 gRaySceneClouds2_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/clouds2.bin.lz"); +const u16 gRaySceneClouds3_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/clouds3.bin.lz"); + +const u8 gRaySceneSmoke_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/smoke.4bpp.lz"); +const u8 gRaySceneSmoke_Pal[] = INCBIN_U8("graphics/rayquaza_scene/smoke.gbapal.lz"); + +const u16 gRaySceneRayquaza_Gfx[] = INCBIN_U16("graphics/rayquaza_scene/rayquaza.8bpp.lz"); +const u8 gRaySceneRayquaza_Pal[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza.gbapal.lz"); +const u16 gRaySceneRayquaza_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/rayquaza.bin.lz"); + +const u8 gRaySceneOvercast_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/overcast.4bpp.lz"); // uses pal 2 of gRaySceneRayquaza_Pal +const u16 gRaySceneOvercast_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/overcast.bin.lz"); + +const u8 gRaySceneRayquazaFly1_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_fly1.4bpp.lz"); +const u8 gRaySceneRayquazaTail_Gfx[] = INCBIN_U8( "graphics/rayquaza_scene/rayquaza_tail_fix.4bpp.lz"); // for some reason there are an extra 0xC bytes at the end of the original 4bpp, so in order to produce the correct lz, we have to cat the bytes at the end with a make rule. not sure why those bytes are there, it may have been a bug in Game Freak's software. + +const u8 gRaySceneOvercast2_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/overcast2.4bpp.lz"); + +const u8 gRaySceneRayquazaLight_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_light.4bpp.lz"); // uses pal 2 of gRaySceneOvercast2_Pal + +const u8 gRaySceneOvercast2_Pal[] = INCBIN_U8("graphics/rayquaza_scene/overcast2.gbapal.lz"); +const u16 gRaySceneOvercast2_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/overcast2.bin.lz"); + +const u8 gRaySceneRayquazaLight_Tilemap[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_light.bin.lz"); + +const u8 gRaySceneChaseBg_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/chase_bg.4bpp.lz"); +const u16 gRaySceneChaseBg_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/chase_bg.bin.lz"); + +const u8 gRaySceneChaseStreaks_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/chase_streaks.4bpp.lz"); +const u16 gRaySceneChaseStreaks_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/chase_streaks.bin.lz"); + +const u8 gRaySceneRayquazaChase_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_chase.4bpp.lz"); +const u16 gRayChaseRayquazaChase_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/rayquaza_chase.bin.lz"); +const u16 gRayChaseRayquazaChase2_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/rayquaza_chase2.bin.lz"); + +const u8 gRaySceneChase_Pal[] = INCBIN_U8("graphics/rayquaza_scene/chase.gbapal.lz"); + +const u8 gRaySceneGroudonLeft_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon_left.4bpp.lz"); +const u8 gRaySceneGroudonTail_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/groudon_tail.4bpp.lz"); + +const u8 gRaySceneKyogreRight_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/kyogre_right.4bpp.lz"); + +const u8 gRaySceneRayquazaHover_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_hover.4bpp.lz"); +const u8 gRaySceneRayquazaFlyIn_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_flyin.4bpp.lz"); + +const u8 gRaySceneSplash_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/splash.4bpp.lz"); + +const u8 gRaySceneGroudonLeft_Pal[] = INCBIN_U8("graphics/rayquaza_scene/groudon_left.gbapal.lz"); +const u8 gRaySceneKyogreRight_Pal[] = INCBIN_U8("graphics/rayquaza_scene/kyogre_right.gbapal.lz"); +const u8 gRaySceneRayquazaHover_Pal[] = INCBIN_U8("graphics/rayquaza_scene/rayquaza_hover.gbapal.lz"); + +const u8 gRaySceneSplash_Pal[] = INCBIN_U8("graphics/rayquaza_scene/splash.gbapal.lz"); + +const u8 gRaySceneHushBg_Gfx[] = INCBIN_U8("graphics/rayquaza_scene/hush_bg.4bpp.lz"); +const u16 gRaySceneHushRing_Gfx[] = INCBIN_U16("graphics/rayquaza_scene/hush_ring.8bpp.lz"); +const u16 gRaySceneHushBg_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/hush_bg.bin.lz"); +const u16 gRaySceneHushRing_Tilemap[] = INCBIN_U16("graphics/rayquaza_scene/hush_ring.bin.lz"); +const u16 gRaySceneHushRing_Map[] = INCBIN_U16("graphics/rayquaza_scene/hush_ring_map.bin.lz"); +const u8 gRaySceneHushBg_Pal[] = INCBIN_U8("graphics/rayquaza_scene/hush_bg.gbapal.lz"); diff --git a/src/graphics/slot_machine.h b/src/graphics/slot_machine.h new file mode 100644 index 0000000000..f673874e32 --- /dev/null +++ b/src/graphics/slot_machine.h @@ -0,0 +1,60 @@ +const u16 gSlotMachineMenu_Pal[] = INCBIN_U16("graphics/slot_machine/menu.gbapal"); +const u8 gSlotMachineMenu_Gfx[] = INCBIN_U8("graphics/slot_machine/menu.4bpp.lz"); +const u16 gSlotMachineMenu_Tilemap[] = INCBIN_U16("graphics/slot_machine/menu.bin"); + +const u16 gUnknown_08DCEC70[] = INCBIN_U16("graphics/slot_machine/slots_layout.bin"); + +const u16 gUnknown_08DCF170[] = INCBIN_U16("graphics/slot_machine/reel_symbols/1.gbapal"); + +const u16 gUnknown_08DCF190[] = INCBIN_U16("graphics/slot_machine/reel_pikachu.gbapal"); + +const u16 gUnknown_08DCF1B0[] = INCBIN_U16("graphics/slot_machine/shadow.gbapal"); + +const u16 gSlotMachineReelTime_Pal[] = INCBIN_U16("graphics/slot_machine/reel_time.gbapal"); + +const u16 gUnknown_08DCF1F0[] = INCBIN_U16("graphics/slot_machine/smoke.gbapal"); // also duck and pika aura + +const u16 gUnknown_08DCF210[] = INCBIN_U16("graphics/slot_machine/reel_time_explosion/0.gbapal"); + +const u16 gUnknown_08DCF230[] = INCBIN_U16("graphics/slot_machine/spr6.gbapal"); + +const u8 gSlotMachineReelSymbol1Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/1.4bpp"); +const u8 gSlotMachineReelSymbol2Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/2.4bpp"); +const u8 gSlotMachineReelSymbol3Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/3.4bpp"); +const u8 gSlotMachineReelSymbol4Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/4.4bpp"); +const u8 gSlotMachineReelSymbol5Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/5.4bpp"); +const u8 gSlotMachineReelSymbol6Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/6.4bpp"); +const u8 gSlotMachineReelSymbol7Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/7.4bpp"); + +const u8 gSlotMachineReelTime_Gfx[] = INCBIN_U8("graphics/slot_machine/reel_time.4bpp.lz"); + +const u8 gSlotMachineNumber0Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/0.4bpp"); +const u8 gSlotMachineNumber1Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/1.4bpp"); +const u8 gSlotMachineNumber2Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/2.4bpp"); +const u8 gSlotMachineNumber3Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/3.4bpp"); +const u8 gSlotMachineNumber4Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/4.4bpp"); +const u8 gSlotMachineNumber5Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/5.4bpp"); +const u8 gSlotMachineNumber6Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/6.4bpp"); +const u8 gSlotMachineNumber7Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/7.4bpp"); +const u8 gSlotMachineNumber8Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/8.4bpp"); +const u8 gSlotMachineNumber9Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/9.4bpp"); + +const u8 gSlotMachineReelTimeBolt[] = INCBIN_U8("graphics/slot_machine/bolt.4bpp"); +const u8 gSlotMachineReelTimeDuck[] = INCBIN_U8("graphics/slot_machine/duck.4bpp"); +const u8 gSlotMachineReelTimeSmoke[] = INCBIN_U8("graphics/slot_machine/smoke.4bpp"); + +const u8 gSlotMachineReelTimeNumber0[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/0.4bpp"); +const u8 gSlotMachineReelTimeNumber1[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/1.4bpp"); +const u8 gSlotMachineReelTimeNumber2[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/2.4bpp"); +const u8 gSlotMachineReelTimeNumber3[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/3.4bpp"); +const u8 gSlotMachineReelTimeNumber4[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/4.4bpp"); +const u8 gSlotMachineReelTimeNumber5[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/5.4bpp"); + +const u8 gSlotMachineReelTimeLargeBolt0[] = INCBIN_U8("graphics/slot_machine/large_bolt/0.4bpp"); +const u8 gSlotMachineReelTimeLargeBolt1[] = INCBIN_U8("graphics/slot_machine/large_bolt/1.4bpp"); + +const u8 gSlotMachineReelTimeExplosion0[] = INCBIN_U8("graphics/slot_machine/reel_time_explosion/0.4bpp"); +const u8 gSlotMachineReelTimeExplosion1[] = INCBIN_U8("graphics/slot_machine/reel_time_explosion/1.4bpp"); + +const u8 gSlotMachineReelTimeShadow[] = INCBIN_U8("graphics/slot_machine/shadow.4bpp"); +const u8 gSlotMachineReelTimePikaAura[] = INCBIN_U8("graphics/slot_machine/pika_aura.4bpp"); From 91349324c619309ca605a04115d0c9b7d78cbb26 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Aug 2018 11:55:16 +0200 Subject: [PATCH 131/174] up to CB2_BattleDome --- asm/battle_frontier_1.s | 1640 +-------------------------------------- src/battle_frontier_1.c | 526 ++++++++++++- 2 files changed, 519 insertions(+), 1647 deletions(-) diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index c6866ebf05..acf2a7b810 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -6,1626 +6,6 @@ .text - - thumb_func_start sub_8193D40 -sub_8193D40: @ 8193D40 - push {lr} - ldr r0, =sub_8194220 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - movs r0, 0x1 - strh r0, [r1, 0xA] - movs r0, 0x2 - strh r0, [r1, 0xC] - strh r2, [r1, 0x10] - ldr r0, =sub_8194B54 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8193D40 - - thumb_func_start sub_8193D7C -sub_8193D7C: @ 8193D7C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, =gSpecialVar_0x8005 - ldrh r0, [r7] - cmp r0, 0x1 - bne _08193E10 - ldr r5, =gTrainerBattleOpponent_A - ldrh r0, [r5] - bl TrainerIdToTournamentId - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - lsls r0, 2 - adds r2, r0 - ldr r6, =0x00000d25 - adds r2, r6 - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5] - bl TrainerIdToTournamentId - ldr r1, [r4] - lsls r0, 2 - adds r0, r1, r0 - ldr r2, =0x00000cb2 - mov r8, r2 - add r1, r8 - adds r0, r6 - movs r3, 0x3 - ldrb r2, [r1] - ands r2, r3 - lsls r2, 3 - ldrb r3, [r0] - movs r1, 0x19 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0] - ldrh r0, [r5] - bl TrainerIdToTournamentId - ldr r2, [r4] - lsls r0, 1 - movs r3, 0xEC - lsls r3, 4 - adds r1, r2, r3 - adds r1, r0 - ldr r0, =gBattleResults - ldrh r0, [r0, 0x22] - strh r0, [r1] - add r2, r8 - ldrh r0, [r2] - cmp r0, 0x2 - bhi _08193EAE - lsls r0, 24 - lsrs r0, 24 - bl sub_8195438 - b _08193EAE - .pool -_08193E10: - ldr r5, =0x000003ff - adds r0, r5, 0 - bl TrainerIdToTournamentId - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - lsls r0, 2 - adds r2, r0 - ldr r6, =0x00000d25 - adds r2, r6 - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, 0 - bl TrainerIdToTournamentId - ldr r1, [r4] - lsls r0, 2 - adds r0, r1, r0 - ldr r2, =0x00000cb2 - adds r1, r2 - adds r0, r6 - movs r3, 0x3 - ldrb r2, [r1] - ands r2, r3 - lsls r2, 3 - ldrb r3, [r0] - movs r1, 0x19 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0 - bl TrainerIdToTournamentId - ldr r1, [r4] - lsls r0, 1 - movs r3, 0xEC - lsls r3, 4 - adds r1, r3 - adds r1, r0 - ldr r0, =gBattleResults - ldrh r0, [r0, 0x24] - strh r0, [r1] - ldr r0, =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0x9 - beq _08193E78 - ldrh r0, [r7] - cmp r0, 0x9 - bne _08193E92 -_08193E78: - adds r0, r5, 0 - bl TrainerIdToTournamentId - ldr r2, [r4] - lsls r0, 2 - adds r2, r0 - adds r2, r6 - ldrb r1, [r2] - movs r0, 0x1F - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] -_08193E92: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r4, [r0] - cmp r4, 0x3 - bgt _08193EAE -_08193EA0: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8195438 - adds r4, 0x1 - cmp r4, 0x3 - ble _08193EA0 -_08193EAE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8193D7C - - thumb_func_start sub_8193ED0 -sub_8193ED0: @ 8193ED0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x84 - str r0, [sp, 0x48] - str r1, [sp, 0x4C] - lsls r4, r2, 24 - lsrs r4, 24 - movs r0, 0 - str r0, [sp, 0x54] - movs r1, 0 - str r1, [sp, 0x58] - bl GetFrontierEnemyMonLevel - movs r2, 0 - str r2, [sp, 0x50] - add r3, sp, 0x30 - mov r10, r3 - ldr r5, [sp, 0x4C] - lsls r5, 1 - str r5, [sp, 0x70] - subs r4, 0x1 - str r4, [sp, 0x78] -_08193F02: - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0x50] - lsls r1, 2 - str r1, [sp, 0x74] - ldr r2, [sp, 0x48] - lsls r2, 2 - str r2, [sp, 0x6C] - ldr r3, [sp, 0x50] - adds r3, 0x1 - str r3, [sp, 0x60] -_08193F18: - ldr r4, [sp, 0x74] - add r4, r9 - lsls r0, r4, 2 - mov r5, sp - adds r1, r5, r0 - movs r0, 0 - str r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r1, [sp, 0x6C] - adds r0, r3, r1 - ldr r2, =0x00000d24 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 22 - ldr r1, =0xff800000 - cmp r0, r1 - bne _08193F60 - ldr r3, [sp, 0x50] - lsls r0, r3, 24 - mov r5, r9 - lsls r1, r5, 24 - lsrs r1, 24 - lsrs r0, 24 - bl sub_81A5060 - lsls r1, r4, 1 - add r1, r10 - strh r0, [r1] - b _08193F8C - .pool -_08193F60: - lsls r2, r4, 1 - add r2, r10 - ldr r1, [sp, 0x48] - lsls r0, r1, 1 - adds r0, r1 - ldr r4, [sp, 0x50] - adds r0, r4 - lsls r0, 1 - ldr r5, =0x00000d64 - adds r1, r3, r5 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =gFacilityTrainerMons - ldr r1, [r1] - lsls r0, 4 - adds r0, r1 - mov r3, r9 - lsls r1, r3, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] -_08193F8C: - ldr r0, =gBattleMoves - ldr r1, [sp, 0x74] - add r1, r9 - lsls r1, 1 - add r1, r10 - ldrh r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r6, [r1, 0x1] - cmp r6, 0 - bne _08193FB8 - movs r6, 0x28 - b _08193FD0 - .pool -_08193FB8: - cmp r6, 0x1 - bne _08193FC0 - movs r6, 0x3C - b _08193FD0 -_08193FC0: - adds r1, r2, 0 - cmp r1, 0x78 - beq _08193FCA - cmp r1, 0x99 - bne _08193FD0 -_08193FCA: - lsrs r0, r6, 31 - adds r0, r6, r0 - asrs r6, r0, 1 -_08193FD0: - movs r1, 0 - mov r4, r9 - adds r4, 0x1 - str r4, [sp, 0x64] - ldr r5, [sp, 0x70] - ldr r2, [sp, 0x4C] - adds r0, r5, r2 - lsls r0, 1 - str r0, [sp, 0x5C] -_08193FE2: - lsls r7, r1, 1 - adds r1, 0x1 - str r1, [sp, 0x68] - ldr r3, [sp, 0x5C] - adds r3, r7 - mov r8, r3 -_08193FEE: - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsrs r5, r4, 16 - lsls r0, 16 - orrs r5, r0 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r4, =0x00000d64 - adds r0, r4 - add r0, r8 - ldrh r4, [r0] - ldr r3, =gFacilityTrainerMons - ldr r0, [r3] - lsls r4, 4 - adds r4, r0 - adds r0, r5, 0 - str r2, [sp, 0x7C] - str r3, [sp, 0x80] - bl GetNatureFromPersonality - ldrb r1, [r4, 0xC] - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x7C] - ldr r3, [sp, 0x80] - cmp r1, r0 - bne _08193FEE - ldr r0, [r2] - ldr r2, [sp, 0x5C] - adds r1, r7, r2 - ldr r4, =0x00000d64 - adds r0, r4 - adds r0, r1 - ldrh r0, [r0] - ldr r1, [r3] - lsls r0, 4 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x1 - ands r5, r0 - cmp r5, 0 - beq _08194068 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r5, =gBaseStats - adds r0, r5 - ldrb r2, [r0, 0x17] - b _08194074 - .pool -_08194068: - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r2, =gBaseStats - adds r0, r2 - ldrb r2, [r0, 0x16] -_08194074: - ldr r4, [sp, 0x74] - add r4, r9 - lsls r0, r4, 1 - add r0, r10 - ldrh r0, [r0] - bl AI_TypeCalc - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x6 - ands r0, r5 - cmp r0, 0x6 - bne _0819409C - lsls r0, r4, 2 - mov r3, sp - adds r1, r3, r0 - b _081940D8 - .pool -_0819409C: - movs r0, 0x29 - ands r0, r5 - cmp r0, 0 - bne _081940DE - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - beq _081940B6 - lsls r0, r4, 2 - mov r5, sp - adds r2, r5, r0 - lsls r1, r6, 1 - b _081940CA -_081940B6: - movs r0, 0x4 - ands r5, r0 - cmp r5, 0 - beq _081940D2 - lsls r0, r4, 2 - mov r1, sp - adds r2, r1, r0 - lsrs r1, r6, 31 - adds r1, r6, r1 - asrs r1, 1 -_081940CA: - ldr r0, [r2] - adds r0, r1 - str r0, [r2] - b _081940DE -_081940D2: - lsls r0, r4, 2 - mov r2, sp - adds r1, r2, r0 -_081940D8: - ldr r0, [r1] - adds r0, r6 - str r0, [r1] -_081940DE: - ldr r1, [sp, 0x68] - cmp r1, 0x2 - bgt _081940E6 - b _08193FE2 -_081940E6: - ldr r2, [sp, 0x74] - add r2, r9 - lsls r0, r2, 2 - add r0, sp - ldr r1, [r0] - ldr r3, [sp, 0x54] - cmp r3, r1 - bge _08194104 - lsls r0, r2, 16 - lsrs r0, 16 - str r0, [sp, 0x58] - lsls r0, r1, 16 - lsrs r0, 16 - str r0, [sp, 0x54] - b _08194122 -_08194104: - ldr r4, [sp, 0x54] - cmp r4, r1 - bne _08194122 - ldr r5, [sp, 0x58] - lsls r0, r5, 1 - add r0, r10 - lsls r1, r2, 1 - add r1, r10 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bcs _08194122 - lsls r0, r2, 16 - lsrs r0, 16 - str r0, [sp, 0x58] -_08194122: - ldr r0, [sp, 0x64] - mov r9, r0 - cmp r0, 0x3 - bgt _0819412C - b _08193F18 -_0819412C: - ldr r1, [sp, 0x60] - str r1, [sp, 0x50] - cmp r1, 0x2 - bgt _08194136 - b _08193F02 -_08194136: - ldr r2, [sp, 0x58] - mov r9, r2 - b _08194182 -_0819413C: - movs r3, 0 - mov r9, r3 - movs r1, 0 - mov r4, r10 - mov r3, r10 - mov r2, sp -_08194148: - ldr r0, [r2] - ldr r5, [sp, 0x54] - cmp r5, r0 - bge _0819415A - mov r9, r1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x54] - b _08194170 -_0819415A: - ldr r5, [sp, 0x54] - cmp r5, r0 - bne _08194170 - mov r5, r9 - lsls r0, r5, 1 - adds r0, r4, r0 - ldrh r0, [r0] - ldrh r5, [r3] - cmp r0, r5 - bcs _08194170 - mov r9, r1 -_08194170: - adds r3, 0x2 - adds r2, 0x4 - adds r1, 0x1 - cmp r1, 0xB - ble _08194148 - ldr r0, [sp, 0x50] - ldr r1, [sp, 0x78] - cmp r0, r1 - beq _081941F4 -_08194182: - movs r2, 0 - str r2, [sp, 0x50] - mov r3, r9 - lsls r7, r3, 2 - ldr r4, [sp, 0x78] - cmp r2, r4 - bge _081941CA - lsls r0, r3, 1 - mov r5, r10 - adds r6, r5, r0 - ldr r0, [sp, 0x48] - lsls r5, r0, 24 -_0819419A: - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - ldr r2, [sp, 0x50] - lsls r1, r2, 24 - lsrs r1, 24 - lsrs r0, r5, 24 - bl sub_81953E8 - lsls r0, 24 - lsrs r0, 23 - movs r3, 0xEC - lsls r3, 4 - adds r4, r3 - adds r4, r0 - ldrh r0, [r4] - ldrh r4, [r6] - cmp r0, r4 - beq _081941CA - ldr r0, [sp, 0x50] - adds r0, 0x1 - str r0, [sp, 0x50] - ldr r1, [sp, 0x78] - cmp r0, r1 - blt _0819419A -_081941CA: - ldr r2, [sp, 0x50] - ldr r3, [sp, 0x78] - cmp r2, r3 - beq _081941F4 - mov r4, sp - adds r1, r4, r7 - movs r0, 0 - str r0, [r1] - movs r5, 0 - str r5, [sp, 0x54] - mov r9, r5 - mov r2, sp - movs r1, 0xB -_081941E4: - ldm r2!, {r0} - add r9, r0 - subs r1, 0x1 - cmp r1, 0 - bge _081941E4 - mov r0, r9 - cmp r0, 0 - bne _0819413C -_081941F4: - mov r1, r9 - lsls r0, r1, 2 - add r0, sp - ldr r0, [r0] - cmp r0, 0 - bne _08194204 - ldr r2, [sp, 0x58] - mov r9, r2 -_08194204: - mov r3, r9 - lsls r0, r3, 1 - add r0, r10 - ldrh r0, [r0] - add sp, 0x84 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8193ED0 - - thumb_func_start sub_8194220 -sub_8194220: @ 8194220 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r2, 0xA - ldrsh r1, [r0, r2] - mov r10, r1 - movs r3, 0xC - ldrsh r4, [r0, r3] - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x5 - bls _08194250 - b _081948C2 -_08194250: - lsls r0, 2 - ldr r1, =_08194264 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08194264: - .4byte _0819427C - .4byte _0819431C - .4byte _0819438C - .4byte _0819447C - .4byte _081944FC - .4byte _081947C8 -_0819427C: - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x3 - bl EnableInterrupts - movs r4, 0 - str r4, [sp, 0x14] - add r0, sp, 0x14 - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x05006000 - bl CpuSet - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0860CE74 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r0, =gUnknown_0860CE94 - bl InitWindows - bl DeactivateAllTextPrinters - ldr r0, =gBattle_BG0_X - strh r4, [r0] - ldr r0, =gBattle_BG0_Y - strh r4, [r0] - ldr r0, =gBattle_BG1_X - strh r4, [r0] - ldr r0, =gBattle_BG1_Y - strh r4, [r0] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r1, 0xB0 - lsls r1, 4 - movs r0, 0x3 - movs r2, 0 - bl ChangeBgY - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - b _0819443C - .pool -_0819431C: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - ldr r1, =0x00005860 - movs r0, 0x40 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0x9F - bl SetGpuReg - ldr r1, =0x00009098 - movs r0, 0x42 - bl SetGpuReg - movs r0, 0x46 - movs r1, 0x9F - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x3F - bl SetGpuReg - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, =gTasks - mov r3, r8 - lsls r0, r3, 2 - b _0819443C - .pool -_0819438C: - ldr r4, =gUnknown_0203CD7C - movs r0, 0x80 - lsls r0, 4 - bl AllocZeroed - adds r1, r0, 0 - str r1, [r4] - ldr r0, =gUnknown_08D83900 - bl LZDecompressWram - ldr r1, [r4] - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r1, =gUnknown_08D82F10 - movs r5, 0x80 - lsls r5, 6 - movs r6, 0 - str r6, [sp] - movs r0, 0x1 - adds r2, r5, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, =gUnknown_08D834FC - str r6, [sp] - movs r0, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, =gUnknown_08D83B2C - movs r4, 0x1 - str r4, [sp] - movs r0, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r1, =gUnknown_08D83C3C - str r4, [sp] - movs r0, 0x3 - adds r2, r5, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, =gUnknown_08D85358 - movs r4, 0x80 - lsls r4, 2 - movs r1, 0 - adds r2, r4, 0 - bl LoadCompressedPalette - ldr r0, =gUnknown_08D85444 - movs r1, 0x80 - lsls r1, 1 - adds r2, r4, 0 - bl LoadCompressedPalette - ldr r0, =gUnknown_08D85600 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadCompressedPalette - str r6, [sp, 0x18] - add r0, sp, 0x18 - ldr r1, =gPlttBufferFaded - ldr r2, =0x05000100 - bl CpuSet - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - ldr r1, =gTasks - mov r4, r8 - lsls r0, r4, 2 -_0819443C: - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _081948C2 - .pool -_0819447C: - ldr r0, =gUnknown_0860CF50 - bl LoadCompressedObjectPic - mov r0, r8 - lsls r0, 2 - str r0, [sp, 0x1C] - mov r1, r10 - cmp r1, 0 - bne _081944E8 - movs r5, 0 - ldr r4, =gUnknown_0860D411 -_08194492: - ldrb r1, [r4] - ldrb r2, [r4, 0x1] - ldr r0, =gUnknown_0860CFA8 - movs r3, 0 - bl CreateSprite - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x1E - bls _08194492 - ldr r0, =gTasks - ldr r1, [sp, 0x1C] - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r2, 0x10 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _081944DC - ldr r0, =gUnknown_0860D008 - movs r1, 0xDA - movs r2, 0xC - movs r3, 0 - bl CreateSprite - b _081944E8 - .pool -_081944DC: - ldr r0, =gUnknown_0860CFD8 - movs r1, 0xDA - movs r2, 0xC - movs r3, 0 - bl CreateSprite -_081944E8: - ldr r1, =0x00007f40 - movs r0, 0 - bl SetGpuReg - b _081947A6 - .pool -_081944FC: - add r0, sp, 0x4 - movs r2, 0 - movs r1, 0x2 - strb r1, [r0, 0x5] - ldr r0, =gText_BattleTourney - str r0, [sp, 0x4] - add r0, sp, 0x4 - strb r1, [r0, 0x4] - strb r2, [r0, 0x6] - strb r2, [r0, 0x7] - strb r1, [r0, 0xA] - strb r2, [r0, 0xB] - ldrb r0, [r0, 0x5] - ldr r1, [sp, 0x4] - add r2, sp, 0x4 - ldrb r3, [r2, 0xA] - movs r2, 0x70 - bl GetStringCenterAlignXOffsetWithLetterSpacing - add r1, sp, 0x4 - strb r0, [r1, 0x8] - movs r0, 0x1 - strb r0, [r1, 0x9] - adds r3, r1, 0 - ldrb r2, [r3, 0xC] - movs r1, 0x10 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - adds r2, r3, 0 - movs r0, 0xE0 - strb r0, [r2, 0xC] - ldrb r0, [r2, 0xD] - ands r1, r0 - strb r1, [r2, 0xD] - adds r1, r2, 0 - movs r0, 0xD0 - strb r0, [r1, 0xD] - adds r0, r1, 0 - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - mov r3, r8 - lsls r3, 2 - str r3, [sp, 0x1C] - add r4, sp, 0x4 - movs r0, 0xF - mov r9, r0 - movs r1, 0 - str r1, [sp, 0x20] - movs r2, 0 - str r2, [sp, 0x24] - movs r7, 0 - movs r5, 0xF -_0819456C: - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - adds r0, r7 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 22 - lsrs r1, 22 - ldr r0, =gDisplayedStringBattle - bl CopyDomeOpponentName - mov r2, r10 - cmp r2, 0x1 - bne _081945C4 - ldr r3, =gSaveBlock2Ptr - ldr r2, [r3] - adds r0, r2, r7 - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 29 - cmp r0, 0 - blt _081945DC - ldr r3, =0x00000cb2 - adds r0, r2, r3 - ldrh r1, [r0] - cmp r1, 0x1 - beq _08194634 - ldr r2, [sp, 0x24] - lsrs r0, r2, 24 - subs r1, 0x2 - b _081945EA - .pool -_081945C4: - mov r3, r10 - cmp r3, 0 - bne _08194634 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - adds r0, r2, r7 - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 29 - cmp r0, 0 - bge _081945FC -_081945DC: - lsls r1, 27 - lsrs r0, r1, 30 - cmp r0, 0 - beq _08194634 - subs r1, r0, 0x1 - ldr r2, [sp, 0x24] - lsrs r0, r2, 24 -_081945EA: - lsls r1, 24 - lsrs r1, 24 - bl sub_81948EC - b _08194634 - .pool -_081945FC: - ldr r3, =0x00000cb2 - adds r1, r2, r3 - ldrh r0, [r1] - cmp r0, 0 - beq _08194634 - ldr r0, [sp, 0x1C] - add r0, r8 - lsls r0, 3 - ldr r2, =gTasks - adds r0, r2 - movs r3, 0x10 - ldrsh r0, [r0, r3] - cmp r0, 0 - beq _08194624 - ldrh r1, [r1] - b _08194628 - .pool -_08194624: - ldrh r0, [r1] - subs r1, r0, 0x1 -_08194628: - ldr r2, [sp, 0x24] - lsrs r0, r2, 24 - lsls r1, 24 - lsrs r1, 24 - bl sub_81948EC -_08194634: - ldr r0, [sp, 0x1C] - add r0, r8 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - movs r1, 0x10 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08194660 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r3, =0x00000cb2 - adds r0, r3 - ldrh r3, [r0] - adds r6, r2, 0 - b _0819466E - .pool -_08194660: - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000cb2 - adds r0, r2 - ldrh r0, [r0] - subs r3, r0, 0x1 - adds r6, r1, 0 -_0819466E: - mov r0, r10 - cmp r0, 0x1 - bne _0819468E - ldr r2, [r6] - adds r0, r2, r7 - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r1, [r0] - lsls r1, 27 - lsrs r1, 30 - ldr r0, =0x00000cb2 - adds r2, r0 - ldrh r0, [r2] - subs r0, 0x1 - cmp r1, r0 - blt _081946A6 -_0819468E: - mov r1, r10 - cmp r1, 0 - bne _081946FA - ldr r0, [r6] - adds r0, r7 - ldr r2, =0x00000d25 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 30 - cmp r0, r3 - bgt _081946FA -_081946A6: - ldr r0, [r6] - adds r1, r0, r7 - ldr r3, =0x00000d25 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _081946FA - ldr r2, =0x00000d24 - adds r0, r1, r2 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - ldr r3, =0x000003ff - cmp r0, r3 - bne _081946F0 - ldrb r1, [r4, 0xC] - mov r0, r9 - ands r0, r1 - movs r1, 0x30 - orrs r0, r1 - strb r0, [r4, 0xC] - ldrb r1, [r4, 0xD] - mov r0, r9 - ands r0, r1 - movs r1, 0x40 - b _08194740 - .pool -_081946F0: - ldrb r1, [r4, 0xC] - mov r0, r9 - ands r0, r1 - movs r1, 0xB0 - b _08194734 -_081946FA: - ldr r0, [r6] - adds r0, r7 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - ldr r2, =0x000003ff - cmp r0, r2 - bne _0819472C - ldrb r1, [r4, 0xC] - mov r0, r9 - ands r0, r1 - movs r1, 0x30 - orrs r0, r1 - strb r0, [r4, 0xC] - ldrb r1, [r4, 0xD] - mov r0, r9 - ands r0, r1 - movs r1, 0x40 - b _08194740 - .pool -_0819472C: - ldrb r1, [r4, 0xC] - mov r0, r9 - ands r0, r1 - movs r1, 0xE0 -_08194734: - orrs r0, r1 - strb r0, [r4, 0xC] - ldrb r1, [r4, 0xD] - mov r0, r9 - ands r0, r1 - movs r1, 0xD0 -_08194740: - orrs r0, r1 - strb r0, [r4, 0xD] - ldr r0, =gUnknown_0860D3F1 - ldr r3, [sp, 0x20] - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _08194768 - ldrb r0, [r4, 0x5] - ldrb r3, [r4, 0xA] - ldr r1, =gDisplayedStringBattle - movs r2, 0x3D - bl GetStringWidthDifference - b _0819476A - .pool -_08194768: - movs r0, 0x3 -_0819476A: - strb r0, [r4, 0x8] - ldr r0, =gDisplayedStringBattle - str r0, [sp, 0x4] - ldr r0, =gUnknown_0860D3F1 - ldr r1, [sp, 0x20] - adds r0, r1, r0 - ldrb r0, [r0] - strb r0, [r4, 0x4] - ldr r2, =gUnknown_0860D3F2 - adds r0, r1, r2 - ldrb r0, [r0] - strb r0, [r4, 0x9] - add r0, sp, 0x4 - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - ldr r3, [sp, 0x20] - adds r3, 0x2 - str r3, [sp, 0x20] - ldr r0, [sp, 0x24] - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - str r0, [sp, 0x24] - adds r7, 0x4 - subs r5, 0x1 - cmp r5, 0 - blt _081947A6 - b _0819456C -_081947A6: - ldr r0, =gTasks - ldr r1, [sp, 0x1C] - add r1, r8 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _081948C2 - .pool -_081947C8: - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x2 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =sub_8194BEC - bl SetHBlankCallback - ldr r0, =sub_8194CE4 - bl SetVBlankCallback - cmp r4, 0x2 - bne _0819485C - mov r2, r10 - cmp r2, 0 - bne _08194844 - ldr r0, =sub_819395C - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - mov r3, r10 - strh r3, [r1, 0x8] - strh r3, [r1, 0xA] - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x10] - strh r0, [r1, 0x14] - b _08194878 - .pool -_08194844: - ldr r0, =sub_8194950 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - b _0819486C - .pool -_0819485C: - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r3, 0xE - ldrsh r5, [r0, r3] -_0819486C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] -_08194878: - bl ScanlineEffect_Clear - ldr r0, =gScanlineEffectRegBuffers - ldr r2, =0x00001f0a - movs r4, 0xF0 - lsls r4, 3 - adds r1, r0, r4 - movs r5, 0x5A -_08194888: - strh r2, [r0] - strh r2, [r1] - adds r1, 0x2 - adds r0, 0x2 - subs r5, 0x1 - cmp r5, 0 - bge _08194888 - movs r5, 0x5B - ldr r3, =gUnknown_0860CF44 - ldr r0, =gScanlineEffectRegBuffers - ldr r2, =0x00001f09 - ldr r4, =0x00000836 - adds r1, r0, r4 - adds r0, 0xB6 -_081948A4: - strh r2, [r0] - strh r2, [r1] - adds r1, 0x2 - adds r0, 0x2 - adds r5, 0x1 - cmp r5, 0x9F - ble _081948A4 - ldr r0, [r3] - ldr r1, [r3, 0x4] - ldr r2, [r3, 0x8] - bl ScanlineEffect_SetParams - mov r0, r8 - bl DestroyTask -_081948C2: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194220 - - thumb_func_start sub_81948EC -sub_81948EC: @ 81948EC - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r4, =gUnknown_0860DD10 - lsls r2, r1, 2 - lsls r3, r0, 4 - adds r2, r3 - adds r2, r4 - ldr r3, [r2] - ldr r2, =gUnknown_0860DE10 - lsls r0, 2 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _08194938 - movs r7, 0x1 - adds r4, r3, 0 - adds r5, r4, 0x2 - adds r6, r0, 0 -_0819491A: - ldrb r2, [r4] - ldrb r3, [r4, 0x1] - str r7, [sp] - str r7, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - adds r1, r5, 0 - bl CopyToBgTilemapBufferRect_ChangePalette - adds r4, 0x4 - adds r5, 0x4 - subs r6, 0x1 - cmp r6, 0 - bne _0819491A -_08194938: - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81948EC - - thumb_func_start sub_8194950 -sub_8194950: @ 8194950 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bls _08194974 - b _08194B3C -_08194974: - lsls r0, 2 - ldr r1, =_08194988 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08194988: - .4byte _0819499C - .4byte _081949C0 - .4byte _08194AD4 - .4byte _08194AEE - .4byte _08194B24 -_0819499C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x8] - b _08194B3C - .pool -_081949C0: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081949CE - b _08194B3C -_081949CE: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0 - movs r3, 0x2 - movs r1, 0x2 - strh r1, [r0, 0x8] - movs r1, 0x40 - strh r1, [r0, 0xE] - add r0, sp, 0x4 - strb r3, [r0, 0x5] - strb r2, [r0, 0x6] - strb r2, [r0, 0x7] - strb r3, [r0, 0xA] - strb r2, [r0, 0xB] - adds r3, r0, 0 - ldrb r2, [r3, 0xC] - subs r1, 0x50 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - adds r2, r3, 0 - movs r0, 0xB0 - strb r0, [r2, 0xC] - ldrb r0, [r2, 0xD] - ands r1, r0 - strb r1, [r2, 0xD] - adds r1, r2, 0 - movs r0, 0xD0 - strb r0, [r1, 0xD] - movs r7, 0 - ldr r0, =gDisplayedStringBattle - mov r9, r0 - ldr r1, =gSaveBlock2Ptr - mov r8, r1 - adds r4, r2, 0 - ldr r6, =gUnknown_0860D3F1 - movs r5, 0 -_08194A1C: - mov r2, r8 - ldr r0, [r2] - adds r0, r5 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 22 - lsrs r1, 22 - mov r0, r9 - bl CopyDomeOpponentName - mov r0, r8 - ldr r2, [r0] - adds r0, r2, r5 - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r3, [r0] - lsls r1, r3, 27 - lsrs r1, 30 - ldr r0, =0x00000cb2 - adds r2, r0 - ldrh r0, [r2] - subs r0, 0x1 - cmp r1, r0 - bne _08194A9E - lsls r0, r3, 29 - cmp r0, 0 - bge _08194A9E - ldrb r0, [r6] - cmp r0, 0 - bne _08194A84 - ldrb r0, [r4, 0x5] - ldrb r3, [r4, 0xA] - mov r1, r9 - movs r2, 0x3D - bl GetStringWidthDifference - b _08194A86 - .pool -_08194A84: - movs r0, 0x3 -_08194A86: - strb r0, [r4, 0x8] - mov r1, r9 - str r1, [sp, 0x4] - ldrb r0, [r6] - strb r0, [r4, 0x4] - ldrb r0, [r6, 0x1] - strb r0, [r4, 0x9] - add r0, sp, 0x4 - movs r1, 0 - movs r2, 0 - bl AddTextPrinter -_08194A9E: - mov r2, r8 - ldr r1, [r2] - adds r0, r1, r5 - ldr r2, =0x00000d25 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08194AC4 - subs r2, 0x73 - adds r0, r1, r2 - ldrh r1, [r0] - subs r1, 0x1 - lsls r0, r7, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - bl sub_81948EC -_08194AC4: - adds r6, 0x2 - adds r5, 0x4 - adds r7, 0x1 - cmp r7, 0xF - ble _08194A1C - b _08194B3C - .pool -_08194AD4: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0xE] - subs r0, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _08194B3C - movs r0, 0x3 - strh r0, [r1, 0x8] - b _08194B3C -_08194AEE: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08194B3C - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x8] - b _08194B3C - .pool -_08194B24: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08194B3C - ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08194B3C: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194950 - - thumb_func_start sub_8194B54 -sub_8194B54: @ 8194B54 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - thumb_func_end sub_8194B54 - thumb_func_start sub_8194B70 sub_8194B70: @ 8194B70 push {lr} @@ -2039,7 +419,7 @@ _08194F2A: ldrh r1, [r1] lsls r1, 22 lsrs r1, 22 - bl CopyDomeOpponentName + bl CopyDomeTrainerName pop {r4} pop {r0} bx r0 @@ -2738,7 +1118,7 @@ _08195488: adds r0, r5, 0 ldr r1, [sp, 0x8] ldr r2, [sp] - bl sub_8193ED0 + bl GetWinningMove ldr r3, =gSaveBlock2Ptr ldr r1, [r3] ldr r5, [sp, 0x8] @@ -2788,7 +1168,7 @@ _08195504: ldr r0, [sp, 0x8] ldr r1, [sp, 0x4] ldr r2, [sp] - bl sub_8193ED0 + bl GetWinningMove ldr r1, [r4] ldr r3, [sp, 0x4] lsls r2, r3, 1 @@ -3043,7 +1423,7 @@ _08195682: ldr r0, [sp, 0x4] ldr r1, [sp, 0x8] ldr r2, [sp] - bl sub_8193ED0 + bl GetWinningMove ldr r3, =gSaveBlock2Ptr ldr r1, [r3] movs r5, 0xEC @@ -3084,7 +1464,7 @@ _08195784: ldr r0, [sp, 0x8] ldr r1, [sp, 0x4] ldr r2, [sp] - bl sub_8193ED0 + bl GetWinningMove ldr r1, [r5] movs r5, 0xEC lsls r5, 4 @@ -3122,7 +1502,7 @@ _081957DC: ldr r0, [sp, 0x4] ldr r1, [sp, 0x8] ldr r2, [sp] - bl sub_8193ED0 + bl GetWinningMove ldr r5, =gSaveBlock2Ptr ldr r1, [r5] movs r2, 0xEC @@ -3157,7 +1537,7 @@ _08195830: ldr r0, [sp, 0x8] ldr r1, [sp, 0x4] ldr r2, [sp] - bl sub_8193ED0 + bl GetWinningMove ldr r5, =gSaveBlock2Ptr ldr r1, [r5] movs r2, 0xEC @@ -3185,8 +1565,8 @@ _0819587E: .pool thumb_func_end sub_8195438 - thumb_func_start CopyDomeOpponentName -CopyDomeOpponentName: @ 8195898 + thumb_func_start CopyDomeTrainerName +CopyDomeTrainerName: @ 8195898 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 @@ -3243,7 +1623,7 @@ _08195902: pop {r0} bx r0 .pool - thumb_func_end CopyDomeOpponentName + thumb_func_end CopyDomeTrainerName thumb_func_start GetDomeBrainTrainerPicId GetDomeBrainTrainerPicId: @ 8195910 diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index db6f99c8c7..332446d75b 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -35,6 +35,7 @@ #define DOME_QUARTERFINAL 1 // Different name for the same round. #define DOME_SEMIFINAL 2 #define DOME_FINAL 3 +#define DOME_ROUNDS_COUNT 4 struct Unknown_0203BC8C_Struct { @@ -57,8 +58,8 @@ extern u32 sub_81A39C4(void); extern u16 sub_8162548(u8, u8); extern u16 RandomizeFacilityTrainerMonId(u16); extern u8 GetFrontierEnemyMonLevel(void); -extern void CopyDomeOpponentName(u8 *dst, u16 trainerId); -extern u16 sub_81A5060(u8, u8); +extern void CopyDomeTrainerName(u8 *dst, u16 trainerId); +extern u16 sub_81A5060(u8 monId, u8 moveSlotId); extern u8 sub_81A50F0(u8, u8); extern u8 sub_81A50B0(u8); extern void sub_8162614(u16, u8); @@ -81,7 +82,7 @@ extern u16 gBattle_BG3_X; extern u16 gBattle_BG3_Y; extern struct Unknown_0203BC8C_Struct *gFacilityTrainerMons; extern struct Unknown_0203CD78_Struct *gUnknown_0203CD78; -extern void *gUnknown_0203CD7C; +extern u8 *gUnknown_0203CD7C; extern void (* const gUnknown_0860D090[])(void); extern const u32 gUnknown_0860D0EC[][2]; @@ -91,7 +92,7 @@ extern const u8 gUnknown_0860D10C[][4]; extern const u8 gUnknown_0860D14C[]; extern const struct BgTemplate gUnknown_0860CE84[4]; extern const struct WindowTemplate gUnknown_0860CEB4[]; -extern const struct CompressedSpriteSheet gUnknown_0860CF50; +extern const struct CompressedSpriteSheet gUnknown_0860CF50[]; extern const struct SpriteTemplate gUnknown_0860D068; extern const struct SpriteTemplate gUnknown_0860D050; extern const u8 gUnknown_0860D080[]; @@ -112,6 +113,7 @@ extern const u8 gUnknown_0860D3AB[]; extern const u8 gUnknown_0860D3AE[]; extern const u8 gUnknown_0860D3B1[]; extern const u8 gUnknown_0860D080[]; +extern const u8 gUnknown_08D83900[]; extern const u8 gUnknown_0860CBF1[][5][4]; extern const u8 *const gBattleDomePotentialPointers[]; extern const u8 *const gBattleDomeOpponentStylePointers[]; @@ -127,6 +129,10 @@ extern const u8 gUnknown_08D85444[]; extern const u8 gUnknown_08D85358[]; extern const u8 gUnknown_08D85600[]; extern const u8 gUnknown_08D854C8[]; +extern const u8 gUnknown_08D82F10[]; +extern const u8 gUnknown_08D834FC[]; +extern const u8 gUnknown_08D83B2C[]; +extern const u8 gUnknown_08D83C3C[]; // text extern const u8 gTrainerClassNames[][0xD]; @@ -136,7 +142,7 @@ u8 GetDomeTrainerMonIvs(u16 trainerId); void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray); void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats); void CreateDomeTrainerMons(u16 tournamentTrainerId); -u16 TrainerIdToTournamentId(u16 trainerId); +s32 TrainerIdToTournamentId(u16 trainerId); s32 GetTrainerMonCountInBits(u16 tournamentTrainerId); s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); @@ -146,7 +152,8 @@ u16 TrainerIdOfPlayerOpponent(void); void sub_8190400(u8 taskId); void sub_8190CD4(u8 taskId); void sub_8194220(u8 taskId); -void sub_8194B54(void); +void sub_8194950(u8 taskId); +static void CB2_BattleDome(void); void sub_8194B70(void); static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo); static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId); @@ -155,9 +162,14 @@ s32 sub_8192F08(u8, u8*); u8 GetDomeBrainTrainerPicId(void); u8 GetDomeBrainTrainerClass(void); void CopyDomeBrainTrainerName(u8 *dst); -void CopyDomeOpponentName(u8 *dst, u16 trainerId); +void CopyDomeTrainerName(u8 *dst, u16 trainerId); void sub_8194D48(void); +void sub_8194BEC(void); +void sub_8194CE4(void); u8 sub_8193BDC(u8 taskId); +void sub_8195438(u8 roundId); +u8 sub_81953E8(u8 tournamentId, u8); +void sub_81948EC(u8, u8); // const rom data ALIGNED(4) @@ -945,7 +957,7 @@ void sub_818F9B0(void) void sub_818F9E0(void) { StringCopy(gStringVar1, gRoundsStringTable[gSaveBlock2Ptr->frontier.field_CB2]); - CopyDomeOpponentName(gStringVar2, gTrainerBattleOpponent_A); + CopyDomeTrainerName(gStringVar2, gTrainerBattleOpponent_A); } void sub_818FA20(void) @@ -1626,7 +1638,7 @@ void ShowDomeOpponentInfo(void) gTasks[taskId].data[2] = 0; gTasks[taskId].data[3] = 0; - SetMainCallback2(sub_8194B54); + SetMainCallback2(CB2_BattleDome); } void sub_8190400(u8 taskId) @@ -1681,7 +1693,7 @@ void sub_8190400(u8 taskId) DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D83D50, 0x2000, 0, 0); DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D84970, 0x2000, 0, 1); DecompressAndLoadBgGfxUsingHeap(3, gUnknown_08D84F00, 0x800, 0, 1); - LoadCompressedObjectPic(&gUnknown_0860CF50); + LoadCompressedObjectPic(gUnknown_0860CF50); LoadCompressedPalette(gUnknown_08D85358, 0, 0x200); LoadCompressedPalette(gUnknown_08D85444, 0x100, 0x200); LoadCompressedPalette(gUnknown_08D85600, 0xF0, 0x20); @@ -2949,7 +2961,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) } else { - CopyDomeOpponentName(gStringVar2, trainerId); + CopyDomeTrainerName(gStringVar2, trainerId); StringAppend(gStringVar1, gStringVar2); } @@ -3226,7 +3238,7 @@ s32 sub_8192F08(u8 arg0, u8 *arg1) else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN) CopyDomeBrainTrainerName(gStringVar1); else - CopyDomeOpponentName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId); + CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId); count++; } } @@ -3256,7 +3268,7 @@ s32 sub_8192F08(u8 arg0, u8 *arg1) else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN) CopyDomeBrainTrainerName(gStringVar1); else - CopyDomeOpponentName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId); + CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId); } } @@ -3440,7 +3452,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN) CopyDomeBrainTrainerName(gStringVar1); else - CopyDomeOpponentName(gStringVar1, trainerIds[0]); + CopyDomeTrainerName(gStringVar1, trainerIds[0]); textPrinter.fontId = 2; textPrinter.letterSpacing = 2; @@ -3458,7 +3470,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN) CopyDomeBrainTrainerName(gStringVar1); else - CopyDomeOpponentName(gStringVar1, trainerIds[1]); + CopyDomeTrainerName(gStringVar1, trainerIds[1]); textPrinter.current_text_offset = gStringVar1; textPrinter.windowId = windowId + 7; @@ -3486,7 +3498,7 @@ void sub_81938A4(void) gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 2; gTasks[taskId].data[4] = 0; - SetMainCallback2(sub_8194B54); + SetMainCallback2(CB2_BattleDome); } void sub_81938E0(void) @@ -3501,7 +3513,7 @@ void sub_81938E0(void) gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 2; gTasks[taskId].data[4] = 1; - SetMainCallback2(sub_8194B54); + SetMainCallback2(CB2_BattleDome); } void sub_819395C(u8 taskId) @@ -3640,3 +3652,483 @@ u8 sub_8193BDC(u8 taskId) return retVal; } + +void sub_8193D40(void) +{ + u8 taskId = CreateTask(sub_8194220, 0); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 1; + gTasks[taskId].data[2] = 2; + gTasks[taskId].data[4] = 0; + SetMainCallback2(CB2_BattleDome); +} + +void sub_8193D7C(void) +{ + s32 i; + + if (gSpecialVar_0x8005 == 1) + { + gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].unk1 = 1; + gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].unk2 = gSaveBlock2Ptr->frontier.field_CB2; + gSaveBlock2Ptr->frontier.field_EC0[TrainerIdToTournamentId(gTrainerBattleOpponent_A)] = gBattleResults.lastUsedMovePlayer; + if (gSaveBlock2Ptr->frontier.field_CB2 < DOME_FINAL) + sub_8195438(gSaveBlock2Ptr->frontier.field_CB2); + } + else + { + gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].unk1 = 1; + gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].unk2 = gSaveBlock2Ptr->frontier.field_CB2; + gSaveBlock2Ptr->frontier.field_EC0[TrainerIdToTournamentId(TRAINER_PLAYER)] = gBattleResults.lastUsedMoveOpponent; + if (gBattleOutcome == B_OUTCOME_FORFEITED || gSpecialVar_0x8005 == 9) + gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].unk3 = 1; + for (i = gSaveBlock2Ptr->frontier.field_CB2; i < DOME_ROUNDS_COUNT; i++) + sub_8195438(i); + } +} + +u16 GetWinningMove(s32 winnerTournamentId, s32 loserTournamentId, u8 roundId) +{ + s32 i, j, k; + s32 moveScores[4 * 3]; + u16 moveIds[4 * 3]; + u16 bestScore = 0; + u16 bestId = 0; + s32 movePower = 0; + GetFrontierEnemyMonLevel(); // Unused return variable. + + // Calc move points of all 4 moves for all 3 pokemon hitting all 3 target mons. + for (i = 0; i < 3; i++) + { + for (j = 0; j < 4; j++) + { + moveScores[i * 4 + j] = 0; + if (gSaveBlock2Ptr->frontier.domeTrainers[winnerTournamentId].trainerId == TRAINER_FRONTIER_BRAIN) + moveIds[i * 4 + j] = sub_81A5060(i, j); + else + moveIds[i * 4 + j] = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[winnerTournamentId][i]].moves[j]; + + movePower = gBattleMoves[moveIds[i * 4 + j]].power; + if (movePower == 0) + movePower = 40; + else if (movePower == 1) + movePower = 60; + else if (moveIds[i * 4 + j] == MOVE_SELF_DESTRUCT || moveIds[i * 4 + j] == MOVE_EXPLOSION) + movePower /= 2; + + for (k = 0; k < 3; k++) + { + u32 var = 0; + u32 targetSpecies = 0; + u32 targetAbility = 0; + do + { + var = Random32(); + } while (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[loserTournamentId][k]].nature != GetNatureFromPersonality(var)); + + targetSpecies = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[loserTournamentId][k]].species; + if (var & 1) + targetAbility = gBaseStats[targetSpecies].ability2; + else + targetAbility = gBaseStats[targetSpecies].ability1; + + var = AI_TypeCalc(moveIds[i * 4 + j], targetSpecies, targetAbility); + if (var & MOVE_RESULT_NOT_VERY_EFFECTIVE && var & MOVE_RESULT_SUPER_EFFECTIVE) + moveScores[i * 4 + j] += movePower; + else if (var & MOVE_RESULT_NO_EFFECT) + moveScores[i * 4 + j] += 0; + else if (var & MOVE_RESULT_SUPER_EFFECTIVE) + moveScores[i * 4 + j] += movePower * 2; + else if (var & MOVE_RESULT_NOT_VERY_EFFECTIVE) + moveScores[i * 4 + j] += movePower / 2; + else + moveScores[i * 4 + j] += movePower; + } + + if (bestScore < moveScores[i * 4 + j]) + { + bestId = i * 4 + j; + bestScore = moveScores[i * 4 + j]; + } + else if (bestScore == moveScores[i * 4 + j]) + { + if (moveIds[bestId] < moveIds[i * 4 + j]) // Why not use (Random() & 1) instead of promoting moves with a higher id? + bestId = i * 4 + j; + } + } + } + + j = bestId; + goto LABEL; + while (j != 0) + { + for (j = 0, k = 0; k < 4 * 3; k++) + { + if (bestScore < moveScores[k]) + { + j = k; + bestScore = moveScores[k]; + } + else if (bestScore == moveScores[k] && moveIds[j] < moveIds[k]) + { + j = k; + } + } + if (i == roundId - 1) + break; + LABEL: + { + for (i = 0; i < roundId - 1; i++) + { + if (gSaveBlock2Ptr->frontier.field_EC0[sub_81953E8(winnerTournamentId, i)] == moveIds[j]) + break; + } + if (i == roundId - 1) + break; + + moveScores[j] = 0; + bestScore = 0; + j = 0; + for (k = 0; k < 4 * 3; k++) + j += moveScores[k]; + } + } + + if (moveScores[j] == 0) + j = bestId; + + return moveIds[j]; +} + +extern const struct BgTemplate gUnknown_0860CE74[4]; +extern const struct WindowTemplate gUnknown_0860CE94[]; +extern const u8 gUnknown_0860D411[][2]; +extern const struct SpriteTemplate gUnknown_0860CFA8; +extern const struct SpriteTemplate gUnknown_0860D008; +extern const struct SpriteTemplate gUnknown_0860CFD8; +extern const struct ScanlineEffectParams gUnknown_0860CF44; + +void sub_8194220(u8 taskId) +{ + s32 i; + struct TextSubPrinter textPrinter; + s32 r10 = gTasks[taskId].data[1]; + s32 r4 = gTasks[taskId].data[2]; + + switch (gTasks[taskId].data[0]) + { + case 0: + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + EnableInterrupts(INTR_FLAG_HBLANK | INTR_FLAG_VBLANK); + CpuFill32(0, (void *)VRAM, VRAM_SIZE); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_0860CE74, ARRAY_COUNT(gUnknown_0860CE74)); + InitWindows(gUnknown_0860CE94); + DeactivateAllTextPrinters(); + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0xB00, 0); + gTasks[taskId].data[0]++; + break; + case 1: + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + SetGpuReg(REG_OFFSET_MOSAIC, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0x5860); + SetGpuReg(REG_OFFSET_WIN0V, 0x9F); + SetGpuReg(REG_OFFSET_WIN1H, 0x9098); + SetGpuReg(REG_OFFSET_WIN1V, 0x9F); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0x3F); + ResetPaletteFade(); + ResetSpriteData(); + FreeAllSpritePalettes(); + gTasks[taskId].data[0]++; + break; + case 2: + gUnknown_0203CD7C = AllocZeroed(0x800); + LZDecompressWram(gUnknown_08D83900, gUnknown_0203CD7C); + SetBgTilemapBuffer(1, gUnknown_0203CD7C); + CopyBgTilemapBufferToVram(1); + DecompressAndLoadBgGfxUsingHeap(1, gUnknown_08D82F10, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D834FC, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D83B2C, 0x2000, 0, 1); + DecompressAndLoadBgGfxUsingHeap(3, gUnknown_08D83C3C, 0x2000, 0, 1); + LoadCompressedPalette(gUnknown_08D85358, 0, 0x200); + LoadCompressedPalette(gUnknown_08D85444, 0x100, 0x200); + LoadCompressedPalette(gUnknown_08D85600, 0xF0, 0x20); + CpuFill32(0, gPlttBufferFaded, 0x400); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + gTasks[taskId].data[0]++; + break; + case 3: + LoadCompressedObjectPic(gUnknown_0860CF50); + if (r10 == 0) + { + for (i = 0; i < (unsigned) 31; i++) + CreateSprite(&gUnknown_0860CFA8, gUnknown_0860D411[i][0], gUnknown_0860D411[i][1], 0); + if (gTasks[taskId].data[4]) + CreateSprite(&gUnknown_0860D008, 218, 12, 0); + else + CreateSprite(&gUnknown_0860CFD8, 218, 12, 0); + } + + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJ_1D_MAP); + gTasks[taskId].data[0]++; + break; + case 4: + textPrinter.fontId = 2; + textPrinter.current_text_offset = gText_BattleTourney; + textPrinter.windowId = 2; + textPrinter.x = 0; + textPrinter.y = 0; + textPrinter.letterSpacing = 2; + textPrinter.lineSpacing = 0; + textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.current_text_offset, 0x70, textPrinter.letterSpacing); + textPrinter.currentY = 1; + textPrinter.fontColor_l = 0; + textPrinter.fgColor = 14; + textPrinter.bgColor = 0; + textPrinter.shadowColor = 13; + AddTextPrinter(&textPrinter, 0, NULL); + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + s32 var, var2; + + CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); + if (r10 == 1) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].unk1) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 != 0) + { + var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 - 1; + sub_81948EC(i, var2); + } + } + else if (gSaveBlock2Ptr->frontier.field_CB2 != DOME_ROUND2) + { + sub_81948EC(i, gSaveBlock2Ptr->frontier.field_CB2 - 2); + } + } + else if (r10 == 0) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].unk1) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 != 0) + { + var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 - 1; + sub_81948EC(i, var2); + } + } + else if (gSaveBlock2Ptr->frontier.field_CB2 != DOME_ROUND1) + { + if (gTasks[taskId].data[4]) + var2 = gSaveBlock2Ptr->frontier.field_CB2; + else + var2 = gSaveBlock2Ptr->frontier.field_CB2 - 1; + sub_81948EC(i, var2); + } + } + + if (gTasks[taskId].data[4]) + var = gSaveBlock2Ptr->frontier.field_CB2; + else + var = gSaveBlock2Ptr->frontier.field_CB2 - 1; + + if ( ((r10 == 1 && gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 < gSaveBlock2Ptr->frontier.field_CB2 - 1) + || (r10 == 0 && gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 <= var)) + && gSaveBlock2Ptr->frontier.domeTrainers[i].unk1) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) + { + textPrinter.fgColor = 3; + textPrinter.shadowColor = 4; + } + else + { + textPrinter.fgColor = 11; + textPrinter.shadowColor = 13; + } + } + else + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) + { + textPrinter.fgColor = 3; + textPrinter.shadowColor = 4; + } + else + { + textPrinter.fgColor = 14; + textPrinter.shadowColor = 13; + } + } + + if (gUnknown_0860D3F1[i][0] == 0) + textPrinter.currentX = GetStringWidthDifference(textPrinter.fontId, gDisplayedStringBattle, 0x3D, textPrinter.letterSpacing); + else + textPrinter.currentX = 3; + textPrinter.current_text_offset = gDisplayedStringBattle; + textPrinter.windowId = gUnknown_0860D3F1[i][0]; + textPrinter.currentY = gUnknown_0860D3F1[i][1]; + AddTextPrinter(&textPrinter, 0, NULL); + } + gTasks[taskId].data[0]++; + break; + case 5: + PutWindowTilemap(0); + PutWindowTilemap(1); + PutWindowTilemap(2); + CopyWindowToVram(0, 3); + CopyWindowToVram(1, 3); + CopyWindowToVram(2, 3); + SetHBlankCallback(sub_8194BEC); + SetVBlankCallback(sub_8194CE4); + if (r4 == 2) + { + if (r10 == 0) + { + i = CreateTask(sub_819395C, 0); + gTasks[i].data[0] = r10; + gTasks[i].data[1] = r10; + gTasks[i].data[6] = gTasks[taskId].data[4]; + } + else + { + i = CreateTask(sub_8194950, 0); + gTasks[i].data[0] = 0; + } + } + else + { + i = gTasks[taskId].data[3]; + gTasks[i].data[0] = 0; + } + ScanlineEffect_Clear(); + for (i = 0; i < 91; i++) + { + gScanlineEffectRegBuffers[0][i] = 0x1F0A; + gScanlineEffectRegBuffers[1][i] = 0x1F0A; + } + for (i = 91; i < 160; i++) + { + asm(""::"r"(i)); + gScanlineEffectRegBuffers[0][i] = 0x1F09; + gScanlineEffectRegBuffers[1][i] = 0x1F09; + } + ScanlineEffect_SetParams(gUnknown_0860CF44); + DestroyTask(taskId); + break; + } +} + +struct UnkStruct_860DD10 +{ + u8 x; + u8 y; + u16 src; +}; + +extern struct UnkStruct_860DD10 *gUnknown_0860DD10[][4]; +extern const u8 gUnknown_0860DE10[][4]; + +void sub_81948EC(u8 tournamentId, u8 arg1) +{ + s32 i; + struct UnkStruct_860DD10 *structPtr = gUnknown_0860DD10[tournamentId][arg1]; + + for (i = 0; i < gUnknown_0860DE10[tournamentId][arg1]; i++) + CopyToBgTilemapBufferRect_ChangePalette(1, &structPtr[i].src, structPtr[i].x, structPtr[i].y, 1, 1, 0x11); + + CopyBgTilemapBufferToVram(1); +} + +void sub_8194950(u8 taskId) +{ + s32 i; + struct TextSubPrinter textPrinter; + + switch (gTasks[taskId].data[0]) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + gTasks[taskId].data[0] = 1; + break; + case 1: + if (!gPaletteFade.active) + { + gTasks[taskId].data[0] = 2; + gTasks[taskId].data[3] = 64; + textPrinter.fontId = 2; + textPrinter.x = 0; + textPrinter.y = 0; + textPrinter.letterSpacing = 2; + textPrinter.lineSpacing = 0; + textPrinter.fontColor_l = 0; + textPrinter.fgColor = 11; + textPrinter.bgColor = 0; + textPrinter.shadowColor = 13; + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); + if (gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 == gSaveBlock2Ptr->frontier.field_CB2 - 1 + && gSaveBlock2Ptr->frontier.domeTrainers[i].unk1) + { + if (gUnknown_0860D3F1[i][0] == 0) + textPrinter.currentX = GetStringWidthDifference(textPrinter.fontId, gDisplayedStringBattle, 0x3D, textPrinter.letterSpacing); + else + textPrinter.currentX = 3; + + textPrinter.current_text_offset = gDisplayedStringBattle; + textPrinter.windowId = gUnknown_0860D3F1[i][0]; + textPrinter.currentY = gUnknown_0860D3F1[i][1]; + AddTextPrinter(&textPrinter, 0, NULL); + } + if (!gSaveBlock2Ptr->frontier.domeTrainers[i].unk1) + { + s32 var = gSaveBlock2Ptr->frontier.field_CB2 - 1; + sub_81948EC(i, var); + } + } + } + break; + case 2: + if (--gTasks[taskId].data[3] == 0) + gTasks[taskId].data[0] = 3; + break; + case 3: + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0] = 4; + } + break; + case 4: + if (!gPaletteFade.active) + { + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + DestroyTask(taskId); + } + break; + } +} + +static void CB2_BattleDome(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + RunTasks(); +} From 62a645abafdd17b737562b4ab6b40739d13722c2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Aug 2018 18:46:15 +0200 Subject: [PATCH 132/174] Up To CopyDomeTrainerName --- asm/battle_frontier_1.s | 1661 +-------------------------------------- asm/battle_frontier_2.s | 36 +- asm/battle_tent.s | 6 +- asm/battle_tower.s | 36 +- include/battle_tower.h | 6 +- include/global.h | 4 +- src/battle_frontier_1.c | 581 ++++++++++++-- src/battle_tent.c | 4 +- sym_ewram.txt | 3 +- 9 files changed, 583 insertions(+), 1754 deletions(-) diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index acf2a7b810..193bd5e347 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -6,1667 +6,8 @@ .text - thumb_func_start sub_8194B70 -sub_8194B70: @ 8194B70 - push {lr} - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x1 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x2 - bl ChangeBgY - ldr r0, =gBattle_BG0_X - ldrh r1, [r0] - movs r0, 0x10 - bl SetGpuReg - ldr r0, =gBattle_BG0_Y - ldrh r1, [r0] - movs r0, 0x12 - bl SetGpuReg - ldr r0, =gBattle_BG1_X - ldrh r1, [r0] - movs r0, 0x14 - bl SetGpuReg - ldr r0, =gBattle_BG1_Y - ldrh r1, [r0] - movs r0, 0x16 - bl SetGpuReg - ldr r0, =gBattle_BG2_X - ldrh r1, [r0] - movs r0, 0x18 - bl SetGpuReg - ldr r0, =gBattle_BG2_Y - ldrh r1, [r0] - movs r0, 0x1A - bl SetGpuReg - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194B70 - thumb_func_start sub_8194BEC -sub_8194BEC: @ 8194BEC - push {lr} - ldr r0, =0x04000006 - ldrh r0, [r0] - adds r1, r0, 0 - cmp r0, 0x29 - bls _08194CC8 - cmp r0, 0x31 - bhi _08194C1C - ldr r1, =0x04000048 - ldr r2, =0x00003b3b - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - ldr r0, =0x989b5558 - b _08194CD4 - .pool -_08194C1C: - cmp r0, 0x39 - bls _08194CC8 - cmp r0, 0x4A - bhi _08194C40 - ldr r1, =0x04000048 - ldr r2, =0x00003b3b - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - ldr r0, =0x90985860 - b _08194CD4 - .pool -_08194C40: - cmp r0, 0x51 - bhi _08194C60 - ldr r1, =0x04000048 - ldr r2, =0x00003b3b - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - ldr r0, =0x989b5558 - b _08194CD4 - .pool -_08194C60: - cmp r0, 0x5E - bls _08194CC8 - cmp r0, 0x66 - bhi _08194C84 - ldr r1, =0x04000048 - ldr r2, =0x00003737 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - ldr r0, =0x989b5558 - b _08194CD4 - .pool -_08194C84: - cmp r0, 0x76 - bhi _08194CA4 - ldr r1, =0x04000048 - ldr r2, =0x00003737 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - ldr r0, =0x90985860 - b _08194CD4 - .pool -_08194CA4: - cmp r0, 0x7E - bls _08194CC8 - cmp r1, 0x86 - bhi _08194CC8 - ldr r1, =0x04000048 - ldr r2, =0x00003737 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - ldr r0, =0x989b5558 - b _08194CD4 - .pool -_08194CC8: - ldr r1, =0x04000048 - ldr r2, =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - movs r0, 0 -_08194CD4: - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194BEC - thumb_func_start sub_8194CE4 -sub_8194CE4: @ 8194CE4 - push {lr} - ldr r0, =gBattle_BG0_X - ldrh r1, [r0] - movs r0, 0x10 - bl SetGpuReg - ldr r0, =gBattle_BG0_Y - ldrh r1, [r0] - movs r0, 0x12 - bl SetGpuReg - ldr r0, =gBattle_BG1_X - ldrh r1, [r0] - movs r0, 0x14 - bl SetGpuReg - ldr r0, =gBattle_BG1_Y - ldrh r1, [r0] - movs r0, 0x16 - bl SetGpuReg - movs r0, 0x2 - movs r1, 0x80 - movs r2, 0x2 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x1 - bl ChangeBgY - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194CE4 - - thumb_func_start sub_8194D48 -sub_8194D48: @ 8194D48 - ldr r1, =gFacilityTrainerMons - ldr r0, =gBattleFrontierMons - str r0, [r1] - ldr r1, =gUnknown_0203BC88 - ldr r0, =gBattleFrontierTrainers - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8194D48 - - thumb_func_start sub_8194D68 -sub_8194D68: @ 8194D68 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r3, 0 -_08194D76: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =gUnknown_0203CEF8 - adds r0, r3, r0 - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 1 - ldr r2, =0x00000caa - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - subs r0, 0x1 - mov r10, r0 - movs r6, 0 - adds r0, r3, 0x1 - str r0, [sp] - movs r1, 0x64 - mov r0, r10 - muls r0, r1 - movs r2, 0x8E - lsls r2, 2 - adds r2, r0 - mov r9, r2 - adds r7, r3, 0 - muls r7, r1 -_08194DA8: - movs r5, 0 - adds r0, r6, 0x1 - mov r8, r0 - b _08194DBE - .pool -_08194DBC: - adds r5, 0x1 -_08194DBE: - cmp r5, 0x3 - bgt _08194DEA - ldr r1, =gSaveBlock1Ptr - ldr r0, [r1] - add r0, r9 - adds r1, r5, 0 - adds r1, 0xD - movs r2, 0 - str r3, [sp, 0x4] - bl GetMonData - adds r4, r0, 0 - adds r1, r6, 0 - adds r1, 0xD - ldr r2, =gPlayerParty - adds r0, r7, r2 - movs r2, 0 - bl GetMonData - ldr r3, [sp, 0x4] - cmp r4, r0 - bne _08194DBC -_08194DEA: - cmp r5, 0x4 - bne _08194E00 - lsls r2, r6, 24 - lsrs r2, 24 - ldr r1, =gPlayerParty - adds r0, r7, r1 - movs r1, 0xA6 - str r3, [sp, 0x4] - bl SetMonMoveSlot - ldr r3, [sp, 0x4] -_08194E00: - mov r6, r8 - cmp r6, 0x3 - ble _08194DA8 - ldr r2, =gSaveBlock1Ptr - ldr r0, [r2] - movs r2, 0x64 - mov r1, r10 - muls r1, r2 - adds r0, r1 - movs r1, 0x8E - lsls r1, 2 - adds r0, r1 - adds r1, r3, 0 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0x64 - bl memcpy - ldr r3, [sp] - cmp r3, 0x1 - ble _08194D76 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194D68 - - thumb_func_start sub_8194E44 -sub_8194E44: @ 8194E44 - push {r4-r7,lr} - sub sp, 0x4 - movs r4, 0 - ldr r7, =gSaveBlock1Ptr - movs r6, 0x64 - movs r5, 0 -_08194E50: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =gUnknown_0203CEF8 - adds r0, r4, r0 - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 1 - ldr r2, =0x00000caa - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - subs r0, 0x1 - adds r1, r0, 0 - muls r1, r6 - movs r0, 0x8E - lsls r0, 2 - adds r1, r0 - ldr r0, [r7] - adds r0, r1 - movs r1, 0xC - movs r2, 0 - bl GetMonData - mov r1, sp - strh r0, [r1] - ldr r0, =gPlayerParty - adds r0, r5, r0 - movs r1, 0xC - mov r2, sp - bl SetMonData - adds r5, 0x64 - adds r4, 0x1 - cmp r4, 0x1 - ble _08194E50 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194E44 - - thumb_func_start sub_8194EB4 -sub_8194EB4: @ 8194EB4 - push {lr} - bl sub_80F94E8 - pop {r0} - bx r0 - thumb_func_end sub_8194EB4 - - thumb_func_start sub_8194EC0 -sub_8194EC0: @ 8194EC0 - push {r4,lr} - ldr r0, =gTrainerBattleOpponent_A - ldrh r0, [r0] - bl TrainerIdToTournamentId - adds r4, r0, 0 - ldr r0, =0x000003ff - bl TrainerIdToTournamentId - cmp r4, r0 - ble _08194EE8 - ldr r1, =gSpecialVar_Result - movs r0, 0x1 - b _08194EEC - .pool -_08194EE8: - ldr r1, =gSpecialVar_Result - movs r0, 0x2 -_08194EEC: - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194EC0 - - thumb_func_start sub_8194EF8 -sub_8194EF8: @ 8194EF8 - push {r4,lr} - bl sub_8194D48 - movs r2, 0 - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _08194F2A - adds r4, r3, 0 - adds r3, r1, 0 -_08194F14: - adds r2, 0x1 - cmp r2, 0xF - bgt _08194F2A - ldr r0, [r4] - lsls r1, r2, 2 - adds r0, r1 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08194F14 -_08194F2A: - ldr r0, =gStringVar1 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - lsls r2, 2 - adds r1, r2 - ldr r2, =0x00000d24 - adds r1, r2 - ldrh r1, [r1] - lsls r1, 22 - lsrs r1, 22 - bl CopyDomeTrainerName - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194EF8 - - thumb_func_start sub_8194F58 -sub_8194F58: @ 8194F58 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x40 - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - ldr r5, =0x00000d0a - adds r0, r2, r5 - ldrb r1, [r0] - ldr r6, =0x00000d0b - adds r0, r2, r6 - ldrb r0, [r0] - cmn r1, r0 - beq _08194F8C - ldr r1, =0x00000ca8 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08194F8C - b _0819533E -_08194F8C: - movs r0, 0x20 - bl AllocZeroed - str r0, [sp, 0x18] - movs r0, 0x18 - bl AllocZeroed - str r0, [sp, 0x1C] - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r1, r2 - ldrb r2, [r1] - lsls r0, r2, 30 - lsrs r0, 30 - str r0, [sp, 0x14] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r4] - movs r1, 0x1 - adds r0, r5 - strb r1, [r0] - ldr r0, [r4] - adds r0, r6 - strb r1, [r0] - movs r3, 0 - mov r10, r3 - movs r4, 0 - str r4, [sp, 0x38] - movs r5, 0 - str r5, [sp, 0x3C] -_08194FCC: - mov r0, r10 - cmp r0, 0x4 - bgt _08194FFC - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - b _08195030 - .pool -_08194FFC: - mov r1, r10 - cmp r1, 0xE - bgt _0819501A - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x14 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r4, r0, 0 - adds r4, 0xA - b _08195030 -_0819501A: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r4, r0, 0 - adds r4, 0x1E -_08195030: - movs r6, 0 - cmp r6, r10 - bge _08195064 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r3, =0x00000d24 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r4 - beq _08195064 - adds r3, r2, 0 - ldr r2, =0x00000d24 -_0819504C: - adds r6, 0x1 - cmp r6, r10 - bge _08195064 - ldr r0, [r3] - lsls r1, r6, 2 - adds r0, r1 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r4 - bne _0819504C -_08195064: - cmp r6, r10 - bne _08194FCC - ldr r5, =gSaveBlock2Ptr - ldr r3, [r5] - ldr r0, [sp, 0x38] - adds r3, r0 - ldr r1, =0x00000d24 - adds r3, r1 - ldr r2, =0x000003ff - adds r0, r2, 0 - adds r2, r4, 0 - ands r2, r0 - ldrh r0, [r3] - ldr r5, =0xfffffc00 - adds r1, r5, 0 - ands r0, r1 - orrs r0, r2 - strh r0, [r3] - movs r6, 0 - lsls r4, 16 - str r4, [sp, 0x30] - ldr r0, [sp, 0x3C] - str r0, [sp, 0x20] -_08195092: - adds r1, r6, 0x1 - str r1, [sp, 0x24] - lsls r2, r6, 2 - str r2, [sp, 0x2C] - lsls r3, r6, 1 - str r3, [sp, 0x28] -_0819509E: - ldr r4, [sp, 0x30] - lsrs r0, r4, 16 - bl RandomizeFacilityTrainerMonId - lsls r0, 16 - lsrs r5, r0, 16 - movs r7, 0 - cmp r7, r6 - bge _081950F4 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =gFacilityTrainerMons - mov r9, r1 - ldr r2, [sp, 0x8] - mov r8, r2 - ldr r3, [sp, 0xC] - mov r12, r3 - ldr r4, =0x00000d64 - adds r0, r4 - ldr r1, [sp, 0x20] - adds r4, r1, r0 -_081950C8: - ldrh r3, [r4] - cmp r3, r5 - beq _081950F4 - mov r2, r9 - ldr r1, [r2] - lsls r0, r5, 4 - adds r2, r0, r1 - ldrh r0, [r2] - cmp r8, r0 - beq _081950F4 - cmp r12, r0 - beq _081950F4 - lsls r0, r3, 4 - adds r0, r1 - ldrb r0, [r0, 0xA] - ldrb r2, [r2, 0xA] - cmp r0, r2 - beq _081950F4 - adds r4, 0x2 - adds r7, 0x1 - cmp r7, r6 - blt _081950C8 -_081950F4: - cmp r7, r6 - bne _0819509E - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r4, [sp, 0x28] - ldr r2, [sp, 0x3C] - adds r1, r4, r2 - ldr r3, =0x00000d64 - adds r0, r3 - adds r0, r1 - strh r5, [r0] - ldr r2, [sp, 0x2C] - add r2, sp - adds r2, 0x8 - ldr r3, =gFacilityTrainerMons - ldr r1, [r3] - lsls r0, r5, 4 - adds r0, r1 - ldrh r0, [r0] - str r0, [r2] - ldr r6, [sp, 0x24] - cmp r6, 0x2 - ble _08195092 - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - ldr r5, [sp, 0x38] - adds r2, r5 - ldr r0, =0x00000d25 - adds r2, r0 - ldrb r0, [r2] - movs r4, 0x5 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - strb r0, [r2] - ldr r5, =gSaveBlock2Ptr - ldr r2, [r5] - ldr r0, [sp, 0x38] - adds r2, r0 - ldr r1, =0x00000d25 - adds r2, r1 - ldrb r0, [r2] - subs r4, 0x14 - adds r1, r4, 0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r5] - ldr r5, [sp, 0x38] - adds r1, r5 - ldr r0, =0x00000d25 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x1F - ands r0, r2 - strb r0, [r1] - adds r5, 0x4 - str r5, [sp, 0x38] - ldr r1, [sp, 0x3C] - adds r1, 0x6 - str r1, [sp, 0x3C] - movs r2, 0x1 - add r10, r2 - mov r4, r10 - cmp r4, 0xF - bgt _08195178 - b _08194FCC -_08195178: - movs r5, 0 - mov r10, r5 - ldr r5, [sp, 0x18] - movs r0, 0 - str r0, [sp, 0x34] -_08195182: - movs r7, 0 - strh r7, [r5] - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - mov r2, r10 - lsls r1, r2, 2 - adds r0, r1 - ldr r3, =0x00000d24 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - bl GetDomeTrainerMonIvs - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r6, 0 - ldr r4, [sp, 0x34] - mov r9, r4 -_081951AA: - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - mov r4, r9 - add r4, r10 - adds r4, r6 - lsls r4, 1 - ldr r2, =0x00000d64 - adds r0, r2 - adds r0, r4 - ldrh r1, [r0] - ldr r3, =gFacilityTrainerMons - ldr r0, [r3] - lsls r1, 4 - adds r1, r0 - ldrh r0, [r1] - ldrb r3, [r1, 0xB] - ldrb r1, [r1, 0xC] - str r1, [sp] - ldr r1, [sp, 0x1C] - str r1, [sp, 0x4] - movs r1, 0x32 - mov r2, r8 - bl CalcDomeMonStats - ldr r2, [sp, 0x1C] - ldr r1, [r2, 0x4] - ldrh r0, [r5] - adds r0, r1 - ldr r1, [r2, 0x8] - adds r0, r1 - ldr r1, [r2, 0x10] - adds r0, r1 - ldr r1, [r2, 0x14] - adds r0, r1 - ldr r1, [r2, 0xC] - adds r0, r1 - ldr r1, [r2] - adds r0, r1 - strh r0, [r5] - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r1, =0x00000d64 - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - ldr r2, =gFacilityTrainerMons - ldr r1, [r2] - lsls r0, 4 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r3, =gBaseStats - adds r1, r3 - ldrb r0, [r1, 0x6] - lsls r0, 2 - ldr r4, =gBitTable - adds r0, r4 - ldr r0, [r0] - orrs r7, r0 - ldrb r0, [r1, 0x7] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - orrs r7, r0 - adds r6, 0x1 - cmp r6, 0x2 - ble _081951AA - movs r4, 0 - movs r1, 0x1 - movs r6, 0x1F -_0819523A: - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _08195244 - adds r4, 0x1 -_08195244: - asrs r7, 1 - subs r6, 0x1 - cmp r6, 0 - bge _0819523A - movs r1, 0x32 - adds r0, r4, 0 - muls r0, r1 - movs r1, 0x14 - bl __divsi3 - ldrh r1, [r5] - adds r1, r0 - strh r1, [r5] - adds r5, 0x2 - ldr r2, [sp, 0x34] - adds r2, 0x2 - str r2, [sp, 0x34] - movs r3, 0x1 - add r10, r3 - mov r4, r10 - cmp r4, 0xF - ble _08195182 - movs r5, 0 - mov r10, r5 - ldr r7, [sp, 0x18] -_08195276: - mov r6, r10 - adds r6, 0x1 - cmp r6, 0xF - bgt _081952F8 - mov r8, r7 - ldr r5, =0x00000d24 - lsls r0, r6, 1 - ldr r1, [sp, 0x18] - adds r4, r0, r1 -_08195288: - mov r2, r8 - ldrh r1, [r2] - ldrh r0, [r4] - cmp r1, r0 - bcs _081952C4 - mov r0, r10 - adds r1, r6, 0 - ldr r2, [sp, 0x18] - bl SwapDomeTrainers - b _081952F0 - .pool -_081952C4: - cmp r1, r0 - bne _081952F0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - mov r3, r10 - lsls r0, r3, 2 - adds r0, r1, r0 - adds r0, r5 - ldrh r2, [r0] - lsls r2, 22 - lsls r0, r6, 2 - adds r1, r0 - adds r1, r5 - ldrh r0, [r1] - lsls r0, 22 - cmp r2, r0 - bls _081952F0 - mov r0, r10 - adds r1, r6, 0 - ldr r2, [sp, 0x18] - bl SwapDomeTrainers -_081952F0: - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0xF - ble _08195288 -_081952F8: - adds r7, 0x2 - movs r4, 0x1 - add r10, r4 - mov r5, r10 - cmp r5, 0xE - ble _08195276 - ldr r0, [sp, 0x18] - bl Free - ldr r0, [sp, 0x1C] - bl Free - movs r0, 0 - mov r10, r0 -_08195314: - mov r1, r10 - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_8195438 - movs r2, 0x1 - add r10, r2 - mov r3, r10 - cmp r3, 0x3 - ble _08195314 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r4, =0x00000ca9 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - ldr r5, [sp, 0x14] - orrs r0, r5 - strb r0, [r1] -_0819533E: - add sp, 0x40 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194F58 - - thumb_func_start TrainerIdToTournamentId -TrainerIdToTournamentId: @ 8195358 - push {r4,r5,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r3 - beq _0819538E - adds r5, r4, 0 - adds r4, r1, 0 -_08195376: - adds r2, 0x1 - cmp r2, 0xF - bgt _0819538E - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r3 - bne _08195376 -_0819538E: - adds r0, r2, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end TrainerIdToTournamentId - - thumb_func_start sub_81953A0 -sub_81953A0: @ 81953A0 - push {r4,r5,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r3 - beq _081953D6 - adds r5, r4, 0 - adds r4, r1, 0 -_081953BE: - adds r2, 0x1 - cmp r2, 0xF - bgt _081953D6 - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r3 - bne _081953BE -_081953D6: - adds r0, r2, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81953A0 - - thumb_func_start sub_81953E8 -sub_81953E8: @ 81953E8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_0860D1A0 - ldr r0, =gUnknown_0860D1C0 - adds r0, r4, r0 - ldrb r0, [r0] - lsrs r0, 1 - lsls r0, 2 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - subs r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - bl sub_8192F08 - mov r0, sp - ldrb r0, [r0] - cmp r4, r0 - beq _0819542C - mov r0, sp - ldrb r0, [r0] - b _08195430 - .pool -_0819542C: - mov r0, sp - ldrb r0, [r0, 0x1] -_08195430: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81953E8 - - thumb_func_start sub_8195438 -sub_8195438: @ 8195438 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x40 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0xC] - movs r1, 0 - str r1, [sp, 0x10] - movs r5, 0 - movs r1, 0x3 - ldr r0, [sp] - ands r0, r1 - lsls r0, 3 - str r0, [sp, 0x14] -_0819545E: - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - lsls r4, r5, 2 - adds r1, r0, r4 - ldr r3, =0x00000d25 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 29 - adds r2, r5, 0x1 - str r2, [sp, 0x24] - cmp r0, 0 - bge _08195478 - b _08195876 -_08195478: - subs r3, 0x1 - adds r0, r1, r3 - ldrh r0, [r0] - lsls r1, r0, 22 - ldr r0, =0xffc00000 - cmp r1, r0 - bne _08195488 - b _08195876 -_08195488: - str r5, [sp, 0x4] - lsrs r1, 22 - ldr r0, [sp] - bl TournamentIdOfOpponent - str r0, [sp, 0x8] - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - adds r0, r3, r4 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 22 - ldr r1, =0xff800000 - cmp r0, r1 - bne _08195504 - ldr r2, [sp, 0x8] - cmp r2, 0xFF - beq _08195504 - lsls r2, 2 - adds r1, r3, r2 - ldr r3, =0x00000d25 - adds r1, r3 - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, r2 - ldr r2, =0x00000d25 - adds r1, r2 - ldrb r0, [r1] - subs r3, 0x1D - ands r0, r3 - ldr r2, [sp, 0x14] - orrs r0, r2 - strb r0, [r1] - adds r0, r5, 0 - ldr r1, [sp, 0x8] - ldr r2, [sp] - bl GetWinningMove - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - ldr r5, [sp, 0x8] - lsls r2, r5, 1 - movs r3, 0xEC - lsls r3, 4 - adds r1, r3 - adds r1, r2 - b _08195874 - .pool -_08195504: - ldr r4, =gSaveBlock2Ptr - ldr r3, [r4] - ldr r0, [sp, 0x8] - lsls r2, r0, 2 - adds r0, r3, r2 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 22 - ldr r1, =0xff800000 - str r2, [sp, 0x30] - cmp r0, r1 - bne _0819557C - ldr r2, [sp, 0x4] - cmp r2, 0xFF - beq _0819557C - lsls r2, 2 - adds r1, r3, r2 - ldr r3, =0x00000d25 - adds r1, r3 - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - ldr r1, [r4] - adds r1, r2 - ldr r0, =0x00000d25 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x19 - negs r2, r2 - ands r0, r2 - ldr r3, [sp, 0x14] - orrs r0, r3 - strb r0, [r1] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x4] - ldr r2, [sp] - bl GetWinningMove - ldr r1, [r4] - ldr r3, [sp, 0x4] - lsls r2, r3, 1 - movs r3, 0xEC - lsls r3, 4 - adds r1, r3 - adds r1, r2 - strh r0, [r1] - adds r5, 0x1 - str r5, [sp, 0x24] - b _08195876 - .pool -_0819557C: - adds r5, 0x1 - str r5, [sp, 0x24] - ldr r5, [sp, 0x8] - cmp r5, 0xFF - bne _08195588 - b _08195876 -_08195588: - movs r0, 0 - mov r10, r0 - lsls r1, r5, 1 - str r1, [sp, 0x2C] - ldr r2, [sp, 0x4] - lsls r2, 1 - str r2, [sp, 0x28] - ldr r3, [sp, 0x4] - adds r0, r2, r3 - lsls r0, 1 - mov r9, r0 - adds r0, r1, r5 - lsls r0, 1 - str r0, [sp, 0x18] -_081955A4: - movs r5, 0 - mov r0, r9 - str r0, [sp, 0x38] -_081955AA: - movs r6, 0 - lsls r7, r5, 1 - ldr r4, [sp, 0x18] -_081955B0: - ldr r2, =gSaveBlock2Ptr - ldr r1, [r2] - ldr r3, =0x00000d64 - adds r1, r3 - ldr r2, [sp, 0x38] - adds r0, r1, r2 - ldrh r0, [r0] - ldr r3, =gFacilityTrainerMons - mov r8, r3 - ldr r2, [r3] - lsls r0, 4 - adds r0, r2 - adds r0, 0x2 - adds r0, r7 - ldrh r0, [r0] - adds r1, r4 - ldrh r1, [r1] - lsls r1, 4 - adds r1, r2 - ldrh r1, [r1] - movs r2, 0x2 - bl sub_818FFC0 - ldr r1, [sp, 0xC] - adds r1, r0 - str r1, [sp, 0xC] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x2 - ble _081955B0 - adds r5, 0x1 - cmp r5, 0x3 - ble _081955AA - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r3, =0x00000d64 - adds r0, r3 - add r0, r9 - ldrh r0, [r0] - mov r5, r8 - ldr r1, [r5] - lsls r0, 4 - adds r0, r1 - ldrh r2, [r0] - ldr r0, =gBaseStats - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - ldrb r2, [r1, 0x1] - adds r0, r2 - ldrb r2, [r1, 0x2] - adds r0, r2 - ldrb r2, [r1, 0x3] - adds r0, r2 - ldrb r3, [r1, 0x4] - adds r0, r3 - ldrb r1, [r1, 0x5] - adds r0, r1 - movs r1, 0xA - bl __divsi3 - ldr r5, [sp, 0xC] - adds r5, r0 - str r5, [sp, 0xC] - movs r0, 0x2 - add r9, r0 - movs r1, 0x1 - add r10, r1 - mov r2, r10 - cmp r2, 0x2 - ble _081955A4 - bl Random - movs r1, 0x1F - ands r1, r0 - adds r5, r1 - ldr r3, [sp, 0x4] - adds r5, r3 - str r5, [sp, 0xC] - movs r5, 0 - mov r10, r5 - ldr r1, [sp, 0x2C] - ldr r2, [sp, 0x8] - adds r0, r1, r2 - lsls r0, 1 - str r0, [sp, 0x1C] - ldr r5, [sp, 0x28] - adds r0, r5, r3 - lsls r0, 1 - str r0, [sp, 0x20] -_08195668: - movs r5, 0 - mov r0, r10 - lsls r3, r0, 1 - movs r1, 0x1 - add r10, r1 - ldr r2, [sp, 0x1C] - adds r2, r3 - mov r8, r2 -_08195678: - movs r6, 0 - lsls r7, r5, 1 - adds r5, 0x1 - str r5, [sp, 0x3C] - ldr r4, [sp, 0x20] -_08195682: - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - ldr r0, =0x00000d64 - adds r1, r0 - mov r2, r8 - adds r0, r1, r2 - ldrh r0, [r0] - ldr r5, =gFacilityTrainerMons - mov r9, r5 - ldr r2, [r5] - lsls r0, 4 - adds r0, r2 - adds r0, 0x2 - adds r0, r7 - ldrh r0, [r0] - adds r1, r4 - ldrh r1, [r1] - lsls r1, 4 - adds r1, r2 - ldrh r1, [r1] - movs r2, 0x2 - str r3, [sp, 0x34] - bl sub_818FFC0 - ldr r1, [sp, 0x10] - adds r1, r0 - str r1, [sp, 0x10] - adds r4, 0x2 - adds r6, 0x1 - ldr r3, [sp, 0x34] - cmp r6, 0x2 - ble _08195682 - ldr r5, [sp, 0x3C] - cmp r5, 0x3 - ble _08195678 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r5, [sp, 0x1C] - adds r1, r3, r5 - ldr r2, =0x00000d64 - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - mov r3, r9 - ldr r1, [r3] - lsls r0, 4 - adds r0, r1 - ldrh r2, [r0] - ldr r0, =gBaseStats - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - ldrb r2, [r1, 0x1] - adds r0, r2 - ldrb r5, [r1, 0x2] - adds r0, r5 - ldrb r2, [r1, 0x3] - adds r0, r2 - ldrb r2, [r1, 0x4] - adds r0, r2 - ldrb r1, [r1, 0x5] - adds r0, r1 - movs r1, 0xA - bl __divsi3 - ldr r3, [sp, 0x10] - adds r3, r0 - str r3, [sp, 0x10] - mov r5, r10 - cmp r5, 0x2 - ble _08195668 - bl Random - movs r1, 0x1F - ands r1, r0 - ldr r0, [sp, 0x10] - adds r0, r1 - ldr r1, [sp, 0x8] - adds r0, r1 - str r0, [sp, 0x10] - ldr r2, [sp, 0xC] - cmp r2, r0 - ble _08195784 - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - ldr r5, [sp, 0x30] - adds r1, r5 - ldr r0, =0x00000d25 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, r5 - ldr r3, =0x00000d25 - adds r1, r3 - ldrb r0, [r1] - movs r5, 0x19 - negs r5, r5 - ands r0, r5 - ldr r2, [sp, 0x14] - orrs r0, r2 - strb r0, [r1] - ldr r0, [sp, 0x4] - ldr r1, [sp, 0x8] - ldr r2, [sp] - bl GetWinningMove - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - movs r5, 0xEC - lsls r5, 4 - adds r1, r5 - ldr r2, [sp, 0x2C] - adds r1, r2 - b _08195874 - .pool -_08195784: - ldr r3, [sp, 0xC] - ldr r5, [sp, 0x10] - cmp r3, r5 - bge _081957DC - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r3, [sp, 0x4] - lsls r2, r3, 2 - adds r1, r2 - ldr r5, =0x00000d25 - adds r1, r5 - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - adds r1, r2 - ldr r0, =0x00000d25 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x19 - negs r2, r2 - ands r0, r2 - ldr r3, [sp, 0x14] - orrs r0, r3 - strb r0, [r1] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x4] - ldr r2, [sp] - bl GetWinningMove - ldr r1, [r5] - movs r5, 0xEC - lsls r5, 4 - adds r1, r5 - ldr r2, [sp, 0x28] - adds r1, r2 - b _08195874 - .pool -_081957DC: - ldr r3, [sp, 0x4] - ldr r5, [sp, 0x8] - cmp r3, r5 - ble _08195830 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, [sp, 0x30] - adds r1, r2 - ldr r3, =0x00000d25 - adds r1, r3 - ldrb r0, [r1] - movs r5, 0x4 - orrs r0, r5 - strb r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, r2 - adds r1, r3 - ldrb r0, [r1] - movs r2, 0x19 - negs r2, r2 - ands r0, r2 - ldr r3, [sp, 0x14] - orrs r0, r3 - strb r0, [r1] - ldr r0, [sp, 0x4] - ldr r1, [sp, 0x8] - ldr r2, [sp] - bl GetWinningMove - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - movs r2, 0xEC - lsls r2, 4 - adds r1, r2 - ldr r3, [sp, 0x2C] - b _08195872 - .pool -_08195830: - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - ldr r0, [sp, 0x4] - lsls r2, r0, 2 - adds r1, r2 - ldr r3, =0x00000d25 - adds r1, r3 - ldrb r0, [r1] - movs r5, 0x4 - orrs r0, r5 - strb r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, r2 - adds r1, r3 - ldrb r0, [r1] - movs r2, 0x19 - negs r2, r2 - ands r0, r2 - ldr r3, [sp, 0x14] - orrs r0, r3 - strb r0, [r1] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x4] - ldr r2, [sp] - bl GetWinningMove - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - movs r2, 0xEC - lsls r2, 4 - adds r1, r2 - ldr r3, [sp, 0x28] -_08195872: - adds r1, r3 -_08195874: - strh r0, [r1] -_08195876: - ldr r5, [sp, 0x24] - cmp r5, 0xF - bgt _0819587E - b _0819545E -_0819587E: - add sp, 0x40 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195438 - - thumb_func_start CopyDomeTrainerName -CopyDomeTrainerName: @ 8195898 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - movs r4, 0 - bl GetFrontierEnemyMonLevel - ldr r0, =0x000003fe - cmp r5, r0 - bne _081958B8 - adds r0, r6, 0 - bl CopyDomeBrainTrainerName - b _08195902 - .pool -_081958B8: - ldr r0, =0x000003ff - cmp r5, r0 - bne _081958DC - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] -_081958C2: - adds r0, r6, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x6 - ble _081958C2 - b _081958FC - .pool -_081958DC: - ldr r0, =0x0000012b - cmp r5, r0 - bhi _081958FC - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r5 - adds r0, r1 - adds r2, r0, 0x4 -_081958EE: - adds r0, r6, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x6 - ble _081958EE -_081958FC: - adds r1, r6, r4 - movs r0, 0xFF - strb r0, [r1] -_08195902: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end CopyDomeTrainerName - - thumb_func_start GetDomeBrainTrainerPicId -GetDomeBrainTrainerPicId: @ 8195910 - ldr r0, =gTrainers - ldr r1, =0x00007df3 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end GetDomeBrainTrainerPicId - - thumb_func_start GetDomeBrainTrainerClass -GetDomeBrainTrainerClass: @ 8195924 - ldr r0, =gTrainers - ldr r1, =0x00007df1 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end GetDomeBrainTrainerClass - - thumb_func_start CopyDomeBrainTrainerName -CopyDomeBrainTrainerName: @ 8195938 - push {r4,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r4, =(gTrainers + 806 * 0x28 + 0x4) @ TRAINER_TUCKER name -_08195940: - adds r0, r3, r2 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x6 - ble _08195940 - adds r1, r3, r2 - movs r0, 0xFF - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end CopyDomeBrainTrainerName thumb_func_start sub_8195960 sub_8195960: @ 8195960 @@ -2004,7 +345,7 @@ sub_8195C50: @ 8195C50 ldr r0, =0x0000012b cmp r1, r0 bhi _08195C6C - ldr r2, =gUnknown_0203BC88 + ldr r2, =gFacilityTrainers movs r0, 0x34 muls r1, r0 ldr r0, [r2] diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 7d17f5c6c8..97279d8faf 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -14195,7 +14195,7 @@ sub_81A1B1C: @ 81A1B1C thumb_func_start sub_81A1B28 sub_81A1B28: @ 81A1B28 - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r0, =gBattleFrontierTrainers str r0, [r1] bx lr @@ -17391,7 +17391,7 @@ _081A370C: ldr r0, =0x0000012b cmp r3, r0 bhi _081A3738 - ldr r2, =gUnknown_0203BC88 + ldr r2, =gFacilityTrainers movs r0, 0x34 adds r1, r3, 0 muls r1, r0 @@ -17443,7 +17443,7 @@ _081A3794: ldr r0, =0x0000012b cmp r3, r0 bhi _081A37B8 - ldr r2, =gUnknown_0203BC88 + ldr r2, =gFacilityTrainers movs r0, 0x34 adds r1, r3, 0 muls r1, r0 @@ -17511,7 +17511,7 @@ _081A3844: ldr r0, =0x0000012b cmp r3, r0 bhi _081A3868 - ldr r2, =gUnknown_0203BC88 + ldr r2, =gFacilityTrainers movs r0, 0x34 adds r1, r3, 0 muls r1, r0 @@ -20046,7 +20046,7 @@ sub_81A4E04: @ 81A4E04 cmp r0, 0x1 bne _081A4E44 ldr r0, =0x000003fe - bl sub_81953A0 + bl TrainerIdToDomeTournamentId lsls r0, 16 lsrs r0, 16 bl GetTrainerMonCountInBits @@ -22329,7 +22329,7 @@ sub_81A61B0: @ 81A61B0 ldrh r0, [r1] movs r1, 0x7 bl __udivsi3 - ldr r2, =gUnknown_0203BC88 + ldr r2, =gFacilityTrainers ldr r1, =gBattleFrontierTrainers str r1, [r2] ldr r5, =0x00000cb2 @@ -23050,7 +23050,7 @@ sub_81A67EC: @ 81A67EC mov r5, r8 push {r5-r7} sub sp, 0x4C - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r0, =gBattleFrontierTrainers str r0, [r1] mov r0, sp @@ -26455,7 +26455,7 @@ _081A831A: bne _081A82D2 ldr r5, =gTrainerBattleOpponent_A strh r4, [r5] - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r0, =gBattleFrontierTrainers str r0, [r1] ldrh r0, [r5] @@ -26500,7 +26500,7 @@ sub_81A8374: @ 81A8374 bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r0, =gBattleFrontierTrainers str r0, [r1] lsls r7, r5, 24 @@ -26667,7 +26667,7 @@ sub_81A84EC: @ 81A84EC ldr r0, =0x0000012b cmp r1, r0 bhi _081A8542 - ldr r2, =gUnknown_0203BC88 + ldr r2, =gFacilityTrainers movs r0, 0x34 muls r1, r0 ldr r0, [r2] @@ -26684,7 +26684,7 @@ _081A8524: ldr r0, =0x0000012b cmp r1, r0 bhi _081A8542 - ldr r2, =gUnknown_0203BC88 + ldr r2, =gFacilityTrainers movs r0, 0x34 muls r1, r0 ldr r0, [r2] @@ -28498,7 +28498,7 @@ _081A940A: thumb_func_start sub_81A9414 sub_81A9414: @ 81A9414 - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r0, =gBattleFrontierTrainers str r0, [r1] bx lr @@ -28534,7 +28534,7 @@ sub_81A9424: @ 81A9424 lsrs r5, r0, 16 movs r6, 0 ldr r2, =gUnknown_08613C1C - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r5 @@ -28554,7 +28554,7 @@ _081A9488: ldr r4, =gUnknown_08613C1C lsls r3, r6, 1 adds r2, r3, r4 - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r5 @@ -29795,7 +29795,7 @@ sub_81A9EDC: @ 81A9EDC push {lr} lsls r0, 16 lsrs r0, 16 - ldr r2, =gUnknown_0203BC88 + ldr r2, =gFacilityTrainers movs r1, 0x34 muls r1, r0 ldr r0, [r2] @@ -29812,7 +29812,7 @@ sub_81A9EFC: @ 81A9EFC push {lr} lsls r0, 16 lsrs r0, 16 - ldr r2, =gUnknown_0203BC88 + ldr r2, =gFacilityTrainers movs r1, 0x34 muls r1, r0 ldr r0, [r2] @@ -29829,7 +29829,7 @@ sub_81A9F1C: @ 81A9F1C push {lr} lsls r0, 16 lsrs r0, 16 - ldr r2, =gUnknown_0203BC88 + ldr r2, =gFacilityTrainers movs r1, 0x34 muls r1, r0 ldr r0, [r2] @@ -29848,7 +29848,7 @@ GetTrainerEncounterMusicIdInBattlePyramind: @ 81A9F3C lsrs r0, 16 movs r4, 0 ldr r3, =gFacilityClassToTrainerClass - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r2, [r1] movs r1, 0x34 muls r0, r1 diff --git a/asm/battle_tent.s b/asm/battle_tent.s index d643457300..ba4a31530f 100644 --- a/asm/battle_tent.s +++ b/asm/battle_tent.s @@ -14,7 +14,7 @@ sub_81B9EC0: @ 81B9EC0 mov r5, r8 push {r5-r7} sub sp, 0x3C - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r0, =gSlateportBattleTentTrainers str r0, [r1] add r0, sp, 0xC @@ -205,7 +205,7 @@ sub_81BA040: @ 81BA040 sub sp, 0x10 movs r0, 0 mov r10, r0 - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r0, =gSlateportBattleTentTrainers str r0, [r1] ldr r1, =gFacilityTrainerMons @@ -261,7 +261,7 @@ _081BA0AA: ldr r2, =gTrainerBattleOpponent_A strh r3, [r2] ldrh r3, [r2] - ldr r4, =gUnknown_0203BC88 + ldr r4, =gFacilityTrainers ldr r1, [r4] movs r0, 0x34 muls r0, r3 diff --git a/asm/battle_tower.s b/asm/battle_tower.s index e905342667..1ece38af93 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -806,7 +806,7 @@ _08162650: ldr r0, =0x0000012b cmp r4, r0 bhi _0816266C - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r4 @@ -977,7 +977,7 @@ _081627CC: ldr r0, =0x0000012b cmp r4, r0 bhi _081627E8 - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r4 @@ -1363,7 +1363,7 @@ _08162AE4: cmp r4, r0 bhi _08162B08 ldr r2, =gFacilityClassToPicIndex - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r4 @@ -1500,7 +1500,7 @@ _08162C38: cmp r4, r0 bhi _08162C60 ldr r2, =gFacilityClassToTrainerClass - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r4 @@ -1617,7 +1617,7 @@ _08162D5C: ldr r0, =0x0000012b cmp r4, r0 bhi _08162D78 - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r4 @@ -1751,7 +1751,7 @@ _08162E88: ldr r0, =0x0000012b cmp r5, r0 bhi _08162EB4 - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r5 @@ -1878,7 +1878,7 @@ _08162FA4: ldr r0, =0x0000012b cmp r4, r0 bhi _08162FC0 - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r4 @@ -2039,7 +2039,7 @@ sub_81630C4: @ 81630C4 str r0, [sp, 0x24] ldr r0, =gTrainerBattleOpponent_A ldrh r2, [r0] - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r2 @@ -2554,7 +2554,7 @@ RandomizeFacilityTrainerMonId: @ 8163524 bl GetFrontierEnemyMonLevel lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r4 @@ -3054,7 +3054,7 @@ _08163950: ldr r0, =0x0000012b cmp r3, r0 bhi _08163974 - ldr r2, =gUnknown_0203BC88 + ldr r2, =gFacilityTrainers movs r0, 0x34 adds r1, r3, 0 muls r1, r0 @@ -4116,7 +4116,7 @@ _0816431A: ldrh r0, [r1] cmp r0, r8 beq _08164368 - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r2, [r0] movs r4, 0x34 mov r0, r8 @@ -6354,7 +6354,7 @@ _08165634: movs r0, 0 str r0, [sp, 0x44] movs r2, 0 - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r7 @@ -7095,7 +7095,7 @@ GetFrontierEnemyMonLevel: @ 8165C40 ands r0, r1 cmp r0, 0x2 beq _08165C84 - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r0, =gBattleFrontierTrainers str r0, [r1] ldr r1, =gFacilityTrainerMons @@ -7255,7 +7255,7 @@ sub_8165D78: @ 8165D78 lsrs r0, 16 cmp r0, 0x4 bne _08165DA8 - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r0, =gSlateportBattleTentTrainers str r0, [r1] ldr r1, =gFacilityTrainerMons @@ -7265,7 +7265,7 @@ sub_8165D78: @ 8165D78 _08165DA8: cmp r0, 0x2 bne _08165DC8 - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r0, =gVerdanturfBattleTentTrainers str r0, [r1] ldr r1, =gFacilityTrainerMons @@ -7275,7 +7275,7 @@ _08165DA8: _08165DC8: cmp r0, 0x3 bne _08165DE8 - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r0, =gFallarborBattleTentTrainers str r0, [r1] ldr r1, =gFacilityTrainerMons @@ -7283,7 +7283,7 @@ _08165DC8: b _08165DF2 .pool _08165DE8: - ldr r1, =gUnknown_0203BC88 + ldr r1, =gFacilityTrainers ldr r0, =gBattleFrontierTrainers str r0, [r1] ldr r1, =gFacilityTrainerMons @@ -7390,7 +7390,7 @@ sub_8165EA4: @ 8165EA4 str r0, [sp, 0x20] ldr r0, =gTrainerBattleOpponent_A ldrh r2, [r0] - ldr r0, =gUnknown_0203BC88 + ldr r0, =gFacilityTrainers ldr r1, [r0] movs r0, 0x34 muls r0, r2 diff --git a/include/battle_tower.h b/include/battle_tower.h index e1655f2c6a..87581074e8 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -24,7 +24,7 @@ union BattleTowerRecord struct BattleFrontierTrainer { - u32 trainerClass; + u32 facilityClass; u8 trainerName[8]; u16 speechBefore[6]; u16 speechWin[6]; @@ -32,7 +32,7 @@ struct BattleFrontierTrainer u16 *btMonPool; }; -extern struct BattleFrontierTrainer *gUnknown_0203BC88; +extern const struct BattleFrontierTrainer *gFacilityTrainers; u16 sub_8164FCC(u8, u8); void sub_81659DC(struct RSBattleTowerRecord *a0, struct RSBattleTowerRecord *a1); @@ -40,7 +40,7 @@ bool32 sub_816587C(union BattleTowerRecord *, union BattleTowerRecord *); void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *); void sub_81628A0(union BattleTowerRecord *); void sub_8162614(u16 trainerId, u8); -void ConvertBattleFrontierTrainerSpeechToString(u16 *words); +void ConvertBattleFrontierTrainerSpeechToString(const u16 *words); void GetFrontierTrainerName(u8 *dest, u16 trainerIdx); void GetEreaderTrainerName(u8 *dest); diff --git a/include/global.h b/include/global.h index a4db847a4a..d3abb82699 100644 --- a/include/global.h +++ b/include/global.h @@ -340,8 +340,8 @@ struct FrontierMonData struct BattleDomeTrainer { u16 trainerId:10; - u16 unk1:1; - u16 unk2:2; + u16 isEliminated:1; + u16 eliminatedAt:2; u16 unk3:3; }; diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index 332446d75b..1ac84962f5 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_frontier_1.c @@ -2,6 +2,7 @@ #include "battle.h" #include "battle_setup.h" #include "battle_frontier_1.h" +#include "battle_tower.h" #include "battle_message.h" #include "event_data.h" #include "overworld.h" @@ -37,7 +38,7 @@ #define DOME_FINAL 3 #define DOME_ROUNDS_COUNT 4 -struct Unknown_0203BC8C_Struct +struct FacilityMon { u16 species; u16 moves[4]; @@ -68,6 +69,7 @@ extern bool8 sub_81A3610(void); extern u16 sub_81A4FF0(u8); extern u8 GetFrontierTrainerFrontSpriteId(u16); extern u8 GetFrontierOpponentClass(u16); +extern void sub_80F94E8(void); extern u8 gUnknown_0203CEF8[]; extern u32 gUnknown_0203CD70; @@ -80,7 +82,7 @@ extern u16 gBattle_BG2_X; extern u16 gBattle_BG2_Y; extern u16 gBattle_BG3_X; extern u16 gBattle_BG3_Y; -extern struct Unknown_0203BC8C_Struct *gFacilityTrainerMons; +extern const struct FacilityMon *gFacilityTrainerMons; extern struct Unknown_0203CD78_Struct *gUnknown_0203CD78; extern u8 *gUnknown_0203CD7C; @@ -97,7 +99,7 @@ extern const struct SpriteTemplate gUnknown_0860D068; extern const struct SpriteTemplate gUnknown_0860D050; extern const u8 gUnknown_0860D080[]; extern const u8 gUnknown_0860D15C[]; -extern const u8 gUnknown_0860D1A0[]; +extern const u8 gUnknown_0860D1A0[][4]; extern const u8 gUnknown_0860D19C[]; extern const u8 gUnknown_0860D349[]; extern const u8 gUnknown_0860D1C0[]; @@ -120,6 +122,8 @@ extern const u8 *const gBattleDomeOpponentStylePointers[]; extern const u8 *const gBattleDomeOpponentStatsPointers[]; extern const u8 *const gBattleDomeWinStringsPointers[]; extern const u8 *const gBattleDomeMatchNumberPointers[]; +extern const struct FacilityMon gBattleFrontierMons[]; +extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; // gfx extern const u8 gUnknown_08D83D50[]; @@ -142,7 +146,7 @@ u8 GetDomeTrainerMonIvs(u16 trainerId); void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray); void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats); void CreateDomeTrainerMons(u16 tournamentTrainerId); -s32 TrainerIdToTournamentId(u16 trainerId); +static s32 TrainerIdToTournamentId(u16 trainerId); s32 GetTrainerMonCountInBits(u16 tournamentTrainerId); s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); @@ -154,7 +158,7 @@ void sub_8190CD4(u8 taskId); void sub_8194220(u8 taskId); void sub_8194950(u8 taskId); static void CB2_BattleDome(void); -void sub_8194B70(void); +static void VblankCb0_BattleDome(void); static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo); static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId); u8 sub_819221C(u8 taskId); @@ -165,9 +169,9 @@ void CopyDomeBrainTrainerName(u8 *dst); void CopyDomeTrainerName(u8 *dst, u16 trainerId); void sub_8194D48(void); void sub_8194BEC(void); -void sub_8194CE4(void); +static void VblankCb1_BattleDome(void); u8 sub_8193BDC(u8 taskId); -void sub_8195438(u8 roundId); +void DecideRoundWinners(u8 roundId); u8 sub_81953E8(u8 tournamentId, u8); void sub_81948EC(u8, u8); @@ -709,8 +713,8 @@ void InitDomeTrainers(void) gSaveBlock2Ptr->frontier.field_D0A = gSaveBlock2Ptr->frontier.chosenLvl + 1; gSaveBlock2Ptr->frontier.field_D0B = VarGet(VAR_0x40CE) + 1; gSaveBlock2Ptr->frontier.domeTrainers[0].trainerId = TRAINER_PLAYER; - gSaveBlock2Ptr->frontier.domeTrainers[0].unk1 = 0; - gSaveBlock2Ptr->frontier.domeTrainers[0].unk2 = 0; + gSaveBlock2Ptr->frontier.domeTrainers[0].isEliminated = 0; + gSaveBlock2Ptr->frontier.domeTrainers[0].eliminatedAt = 0; gSaveBlock2Ptr->frontier.domeTrainers[0].unk3 = 0; for (i = 0; i < 3; i++) @@ -774,8 +778,8 @@ void InitDomeTrainers(void) species[j] = gFacilityTrainerMons[monTournamentId].species; } - gSaveBlock2Ptr->frontier.domeTrainers[i].unk1 = 0; - gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 = 0; + gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated = 0; + gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt = 0; gSaveBlock2Ptr->frontier.domeTrainers[i].unk3 = 0; } @@ -1575,7 +1579,7 @@ s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId) for (j = gUnknown_0860D10C[i][roundId]; j < val; j++) { - if (gUnknown_0860D14C[j] != i && !gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D14C[j]].unk1) + if (gUnknown_0860D14C[j] != i && !gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D14C[j]].isEliminated) break; } @@ -1586,8 +1590,8 @@ s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId) } else { - if (!gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D10C[i][0]].unk1) - return gUnknown_0860D10C[i][0]; + if (!gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D10C[i][roundId]].isEliminated) + return gUnknown_0860D10C[i][roundId]; else return 0xFF; } @@ -1707,7 +1711,7 @@ void sub_8190400(u8 taskId) gTasks[taskId].data[0]++; break; case 3: - SetVBlankCallback(sub_8194B70); + SetVBlankCallback(VblankCb0_BattleDome); gUnknown_0203CD78 = AllocZeroed(sizeof(*gUnknown_0203CD78)); for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) gUnknown_0203CD78->arr[i] |= 0xFF; @@ -1945,12 +1949,12 @@ void sub_8190B40(struct Sprite *sprite) { if (sprite->data[1]) { - if ((gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].unk1 - && gUnknown_0203CD78->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].unk2)) + if ((gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated + && gUnknown_0203CD78->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].eliminatedAt)) { sprite->invisible = 0; } - else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].unk1 + else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated && gUnknown_0203CD78->unk_10 - 1 < r12) { sprite->invisible = 0; @@ -2788,12 +2792,12 @@ u8 sub_819221C(u8 taskId) } else if (gMain.newKeys & DPAD_RIGHT) { - if (gSaveBlock2Ptr->frontier.domeTrainers[r10].unk1 && gUnknown_0203CD78->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].unk2) + if (gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && gUnknown_0203CD78->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].eliminatedAt) { gUnknown_0203CD78->unk_10++; retVal = 4; } - if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].unk1 && gUnknown_0203CD78->unk_10 - 1 < roundId) + if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && gUnknown_0203CD78->unk_10 - 1 < roundId) { gUnknown_0203CD78->unk_10++; retVal = 4; @@ -2803,7 +2807,7 @@ u8 sub_819221C(u8 taskId) if (retVal == 9) { if (gUnknown_0203CD78->unk_10 != 0) - gTasks[taskId2].data[1] = gUnknown_0860D1A0[(r5 / 2) * 4 + (gUnknown_0203CD78->unk_10 - 1)]; + gTasks[taskId2].data[1] = gUnknown_0860D1A0[r5 / 2][gUnknown_0203CD78->unk_10 - 1]; else gTasks[taskId2].data[1] = r5; } @@ -3230,7 +3234,7 @@ s32 sub_8192F08(u8 arg0, u8 *arg1) for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++) { tournamentId = gUnknown_0860D3B4[i]; - if (!gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk1) + if (!gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].isEliminated) { arg1[count] = tournamentId; if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_PLAYER) @@ -3249,12 +3253,12 @@ s32 sub_8192F08(u8 arg0, u8 *arg1) for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++) { tournamentId = gUnknown_0860D3B4[i]; - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk1 - && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk2 >= gUnknown_0860D3C4[arg0][2]) + if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].isEliminated + && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].eliminatedAt >= gUnknown_0860D3C4[arg0][2]) { arg1[count] = tournamentId; count++; - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk2 == gUnknown_0860D3C4[arg0][2]) + if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].eliminatedAt == gUnknown_0860D3C4[arg0][2]) { StringCopy(gStringVar2, gMoveNames[gSaveBlock2Ptr->frontier.field_EC0[tournamentId]]); retVal = gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk3 * 2; @@ -3312,8 +3316,8 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) { tournamentIds[i] = gUnknown_0203CD78->unk_11[i]; trainerIds[i] = gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].trainerId; - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].unk2 <= gUnknown_0860D3C4[matchNo][2] - && gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].unk1) + if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].eliminatedAt <= gUnknown_0860D3C4[matchNo][2] + && gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].isEliminated) lost[i] = TRUE; else lost[i] = FALSE; @@ -3669,21 +3673,21 @@ void sub_8193D7C(void) if (gSpecialVar_0x8005 == 1) { - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].unk1 = 1; - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].unk2 = gSaveBlock2Ptr->frontier.field_CB2; + gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].isEliminated = 1; + gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].eliminatedAt = gSaveBlock2Ptr->frontier.field_CB2; gSaveBlock2Ptr->frontier.field_EC0[TrainerIdToTournamentId(gTrainerBattleOpponent_A)] = gBattleResults.lastUsedMovePlayer; if (gSaveBlock2Ptr->frontier.field_CB2 < DOME_FINAL) - sub_8195438(gSaveBlock2Ptr->frontier.field_CB2); + DecideRoundWinners(gSaveBlock2Ptr->frontier.field_CB2); } else { - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].unk1 = 1; - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].unk2 = gSaveBlock2Ptr->frontier.field_CB2; + gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].isEliminated = 1; + gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].eliminatedAt = gSaveBlock2Ptr->frontier.field_CB2; gSaveBlock2Ptr->frontier.field_EC0[TrainerIdToTournamentId(TRAINER_PLAYER)] = gBattleResults.lastUsedMoveOpponent; if (gBattleOutcome == B_OUTCOME_FORFEITED || gSpecialVar_0x8005 == 9) gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].unk3 = 1; for (i = gSaveBlock2Ptr->frontier.field_CB2; i < DOME_ROUNDS_COUNT; i++) - sub_8195438(i); + DecideRoundWinners(i); } } @@ -3908,11 +3912,11 @@ void sub_8194220(u8 taskId) CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); if (r10 == 1) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].unk1) + if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 != 0) + if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0) { - var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 - 1; + var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 1; sub_81948EC(i, var2); } } @@ -3923,11 +3927,11 @@ void sub_8194220(u8 taskId) } else if (r10 == 0) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].unk1) + if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 != 0) + if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0) { - var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 - 1; + var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 1; sub_81948EC(i, var2); } } @@ -3946,9 +3950,9 @@ void sub_8194220(u8 taskId) else var = gSaveBlock2Ptr->frontier.field_CB2 - 1; - if ( ((r10 == 1 && gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 < gSaveBlock2Ptr->frontier.field_CB2 - 1) - || (r10 == 0 && gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 <= var)) - && gSaveBlock2Ptr->frontier.domeTrainers[i].unk1) + if ( ((r10 == 1 && gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt < gSaveBlock2Ptr->frontier.field_CB2 - 1) + || (r10 == 0 && gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt <= var)) + && gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) { if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) { @@ -3994,7 +3998,7 @@ void sub_8194220(u8 taskId) CopyWindowToVram(1, 3); CopyWindowToVram(2, 3); SetHBlankCallback(sub_8194BEC); - SetVBlankCallback(sub_8194CE4); + SetVBlankCallback(VblankCb1_BattleDome); if (r4 == 2) { if (r10 == 0) @@ -4082,8 +4086,8 @@ void sub_8194950(u8 taskId) for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); - if (gSaveBlock2Ptr->frontier.domeTrainers[i].unk2 == gSaveBlock2Ptr->frontier.field_CB2 - 1 - && gSaveBlock2Ptr->frontier.domeTrainers[i].unk1) + if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt == gSaveBlock2Ptr->frontier.field_CB2 - 1 + && gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) { if (gUnknown_0860D3F1[i][0] == 0) textPrinter.currentX = GetStringWidthDifference(textPrinter.fontId, gDisplayedStringBattle, 0x3D, textPrinter.letterSpacing); @@ -4095,7 +4099,7 @@ void sub_8194950(u8 taskId) textPrinter.currentY = gUnknown_0860D3F1[i][1]; AddTextPrinter(&textPrinter, 0, NULL); } - if (!gSaveBlock2Ptr->frontier.domeTrainers[i].unk1) + if (!gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) { s32 var = gSaveBlock2Ptr->frontier.field_CB2 - 1; sub_81948EC(i, var); @@ -4132,3 +4136,488 @@ static void CB2_BattleDome(void) UpdatePaletteFade(); RunTasks(); } + +static void VblankCb0_BattleDome(void) +{ + ChangeBgX(3, 0x80, 1); + ChangeBgY(3, 0x80, 2); + SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X); + SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y); + SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); + SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); + SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X); + SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y); + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +#define SET_WIN0H_WIN1H(win0H, win1H) \ +{ \ + *(vu32*)(REG_ADDR_WIN0H) = ((win0H << 16) | (win1H)); \ +} + +void sub_8194BEC(void) +{ + register u32 vCount asm("r0") = REG_VCOUNT; + register u32 vCount_ asm("r1") = vCount; + if (vCount > 41) + { + if (vCount < 50) + { + REG_WININ = 0x3B3B; + SET_WIN0H_WIN1H(0x989B, 0x5558); + return; + } + else if (vCount > 57) + { + if (vCount < 75) + { + REG_WININ = 0x3B3B; + SET_WIN0H_WIN1H(0x9098, 0x5860); + return; + } + else if (vCount < 82) + { + REG_WININ = 0x3B3B; + SET_WIN0H_WIN1H(0x989B, 0x5558); + return; + } + else if (vCount > 94) + { + if (vCount < 103) + { + REG_WININ = 0x3737; + SET_WIN0H_WIN1H(0x989B, 0x5558); + return; + } + else if (vCount < 119) + { + REG_WININ = 0x3737; + SET_WIN0H_WIN1H(0x9098, 0x5860); + return; + } + else if (vCount > 126) + { + if (vCount_ < 135) + { + REG_WININ = 0x3737; + SET_WIN0H_WIN1H(0x989B, 0x5558); + return; + } + } + } + } + } + + REG_WININ = 0x3F3F; + SET_WIN0H_WIN1H(0, 0); +} + +static void VblankCb1_BattleDome(void) +{ + SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X); + SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y); + SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); + SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); + ChangeBgY(2, 0x80, 2); + ChangeBgY(3, 0x80, 1); + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + ScanlineEffect_InitHBlankDmaTransfer(); +} + +void sub_8194D48(void) +{ + gFacilityTrainerMons = gBattleFrontierMons; + gFacilityTrainers = gBattleFrontierTrainers; +} + +void sub_8194D68(void) +{ + s32 i, moveSlot; + + for (i = 0; i < 2; i++) + { + s32 playerMonId = gSaveBlock2Ptr->frontier.field_CAA[gUnknown_0203CEF8[i] - 1] - 1; + s32 count; + + for (moveSlot = 0; moveSlot < 4; moveSlot++) + { + count = 0; + while (count < 4) + { + if (GetMonData(&gSaveBlock1Ptr->playerParty[playerMonId], MON_DATA_MOVE1 + count, NULL) == GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + moveSlot, NULL)) + break; + count++; + } + if (count == 4) + SetMonMoveSlot(&gPlayerParty[i], MOVE_SKETCH, moveSlot); + } + + gSaveBlock1Ptr->playerParty[playerMonId] = gPlayerParty[i]; + } +} + +void sub_8194E44(void) +{ + s32 i; + + for (i = 0; i < 2; i++) + { + s32 playerMonId = gSaveBlock2Ptr->frontier.field_CAA[gUnknown_0203CEF8[i] - 1] - 1; + u16 item = GetMonData(&gSaveBlock1Ptr->playerParty[playerMonId], MON_DATA_HELD_ITEM, NULL); + SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &item); + } +} + +void sub_8194EB4(void) +{ + sub_80F94E8(); +} + +void sub_8194EC0(void) +{ + if (TrainerIdToTournamentId(gTrainerBattleOpponent_A) > TrainerIdToTournamentId(TRAINER_PLAYER)) + gSpecialVar_Result = 1; + else + gSpecialVar_Result = 2; +} + +void sub_8194EF8(void) +{ + s32 i; + + sub_8194D48(); + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (!gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + break; + } + CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); +} + +void sub_8194F58(void) +{ + s32 i, j, k; + s32 monLevel; + s32 species[3]; + s32 monTypesBits; + s32 trainerId; + s32 monTournamentId; + u8 lvlMode; + u16 *statSums; + s32 *statValues; + u8 ivs = 0; + + species[0] = 0; + species[1] = 0; + species[2] = 0; + if ((gSaveBlock2Ptr->frontier.field_D0A != -gSaveBlock2Ptr->frontier.field_D0B) && gSaveBlock2Ptr->frontier.field_CA8 != 1) + return; + + statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); + statValues = AllocZeroed(sizeof(s32) * 6); + lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; + gSaveBlock2Ptr->frontier.chosenLvl = 0; + // This one, I'd like to call a 'C fakematching'. + { + u8 one; + gSaveBlock2Ptr->frontier.field_D0A = (one = 1); + gSaveBlock2Ptr->frontier.field_D0B = one; + } + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + do + { + if (i < 5) + trainerId = Random() % 10; + else if (i < 15) + trainerId = Random() % 20 + 10; + else + trainerId = Random() % 10 + 30; + + for (j = 0; j < i; j++) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId) + break; + } + } while (j != i); + + gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; + for (j = 0; j < 3; j++) + { + // Make sure the mon is valid. + do + { + monTournamentId = RandomizeFacilityTrainerMonId(trainerId); + for (k = 0; k < j; k++) + { + s32 checkingMonId = gSaveBlock2Ptr->frontier.domeMonId[i][k]; + if (checkingMonId == monTournamentId + || species[0] == gFacilityTrainerMons[monTournamentId].species + || species[1] == gFacilityTrainerMons[monTournamentId].species + || gFacilityTrainerMons[checkingMonId].itemTableId == gFacilityTrainerMons[monTournamentId].itemTableId) + break; + } + } while (k != j); + + gSaveBlock2Ptr->frontier.domeMonId[i][j] = monTournamentId; + species[j] = gFacilityTrainerMons[monTournamentId].species; + } + gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated = 0; + gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt = 0; + gSaveBlock2Ptr->frontier.domeTrainers[i].unk3 = 0; + } + + 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.domeMonId[i][j]].species, + monLevel, ivs, + gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].evSpread, + gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[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.domeMonId[i][j]].species].type1]; + monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[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); + + for (i = 0; i < 4; i++) + DecideRoundWinners(i); + + gSaveBlock2Ptr->frontier.chosenLvl = lvlMode; +} + +static s32 TrainerIdToTournamentId(u16 trainerId) +{ + s32 i; + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId) + break; + } + + return i; +} + +// The same as the above one, but has global scope. +s32 TrainerIdToDomeTournamentId(u16 trainerId) +{ + s32 i; + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId) + break; + } + + return i; +} + +u8 sub_81953E8(u8 tournamentId, u8 arg1) +{ + u8 arr[2]; + sub_8192F08(gUnknown_0860D1A0[gUnknown_0860D1C0[tournamentId] / 2][arg1] - 16, arr); + if (tournamentId == arr[0]) + return arr[1]; + else + return arr[0]; +} + +void DecideRoundWinners(u8 roundId) +{ + s32 i; + s32 moveSlot, monId1, monId2; + s32 tournamentId1, tournamentId2; + s32 species; + s32 points1 = 0, points2 = 0; + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated || gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) + continue; + + tournamentId1 = i; + tournamentId2 = TournamentIdOfOpponent(roundId, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].trainerId); + // Frontier Brain always wins, check tournamentId1. + if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId2 != 0xFF) + { + gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1; + gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); + } + // Frontier Brain always wins, check tournamentId2. + else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId1 != 0xFF) + { + gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1; + gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); + } + // Decide which one of two trainers wins! + else if (tournamentId2 != 0xFF) + { + // BUG: points1 and points2 are not cleared at the beginning of the loop resulting in not fair results. + + // Calculate points for both trainers. + for (monId1 = 0; monId1 < 3; monId1++) + { + for (moveSlot = 0; moveSlot < 4; moveSlot++) + { + for (monId2 = 0; monId2 < 3; monId2++) + { + points1 += sub_818FFC0(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId1][monId1]].moves[moveSlot], + gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId2][monId2]].species, 2); + } + } + species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId1][monId1]].species; + points1 += ( gBaseStats[species].baseHP + + gBaseStats[species].baseAttack + + gBaseStats[species].baseDefense + + gBaseStats[species].baseSpeed + + gBaseStats[species].baseSpAttack + + gBaseStats[species].baseSpDefense) / 10; + } + // Random part of the formula. + points1 += (Random() & 0x1F); + // Favor trainers with higher id; + points1 += tournamentId1; + + for (monId1 = 0; monId1 < 3; monId1++) + { + for (moveSlot = 0; moveSlot < 4; moveSlot++) + { + for (monId2 = 0; monId2 < 3; monId2++) + { + points2 += sub_818FFC0(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId2][monId1]].moves[moveSlot], + gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId1][monId2]].species, 2); + } + } + species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId2][monId1]].species; + points2 += ( gBaseStats[species].baseHP + + gBaseStats[species].baseAttack + + gBaseStats[species].baseDefense + + gBaseStats[species].baseSpeed + + gBaseStats[species].baseSpAttack + + gBaseStats[species].baseSpDefense) / 10; + } + // Random part of the formula. + points2 += (Random() & 0x1F); + // Favor trainers with higher id; + points2 += tournamentId2; + + if (points1 > points2) + { + gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1; + gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); + } + else if (points1 < points2) + { + gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1; + gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); + } + // Points are the same, so we favor the one with the higher id. + else if (tournamentId1 > tournamentId2) + { + gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1; + gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); + } + else + { + gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1; + gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); + } + } + } +} + +void CopyDomeTrainerName(u8 *dst, u16 trainerId) +{ + s32 i = 0; + GetFrontierEnemyMonLevel(); // Unused return value. + + if (trainerId == TRAINER_FRONTIER_BRAIN) + { + CopyDomeBrainTrainerName(dst); + } + else + { + if (trainerId == TRAINER_PLAYER) + { + for (i = 0; i < OT_NAME_LENGTH; i++) + dst[i] = gSaveBlock2Ptr->playerName[i]; + } + else if (trainerId < 300) + { + for (i = 0; i < 7; i++) + dst[i] = gFacilityTrainers[trainerId].trainerName[i]; + } + dst[i] = EOS; + } +} + +u8 GetDomeBrainTrainerPicId(void) +{ + return gTrainers[TRAINER_TUCKER].trainerPic; +} + +u8 GetDomeBrainTrainerClass(void) +{ + return gTrainers[TRAINER_TUCKER].trainerClass; +} + +void CopyDomeBrainTrainerName(u8 *dst) +{ + s32 i; + + for (i = 0; i < 7; i++) + dst[i] = gTrainers[TRAINER_TUCKER].trainerName[i]; + dst[i] = EOS; +} diff --git a/src/battle_tent.c b/src/battle_tent.c index 68d7c5e83d..dbea37fb7c 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -11,7 +11,7 @@ #include "constants/items.h" #include "constants/region_map_sections.h" -// this file's functions +// This file's functions. void sub_81B99D4(void); void sub_81B9A28(void); void sub_81B9A44(void); @@ -115,7 +115,7 @@ void sub_81B9A60(void) void sub_81B9A90(void) { if (gTrainerBattleOpponent_A < 300) - ConvertBattleFrontierTrainerSpeechToString(gUnknown_0203BC88[gTrainerBattleOpponent_A].speechBefore); + ConvertBattleFrontierTrainerSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore); } void sub_81B9ABC(void) diff --git a/sym_ewram.txt b/sym_ewram.txt index 05c5a59503..c0c8e8a2f8 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -607,12 +607,11 @@ gUnknown_0203ABB8: @ 203ABB8 .space 0x4 /*unused var?*/ .include "src/mystery_event_script.o" - .include "src/learn_move.o" .include "src/decoration_inventory.o" .include "src/roamer.o" -gUnknown_0203BC88: @ 203BC88 +gFacilityTrainers: @ 203BC88 .space 0x4 gFacilityTrainerMons: @ 203BC8C From edcf04b665a9fa13d086dd486c4fe7b1649a7bbf Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Aug 2018 19:59:47 +0200 Subject: [PATCH 133/174] Document battle dome. --- .../scripts.inc | 2 +- .../scripts.inc | 32 +- .../scripts.inc | 66 +- .../scripts.inc | 16 +- .../scripts.inc | 2 +- .../scripts.inc | 20 +- .../scripts.inc | 2 +- .../scripts.inc | 26 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 4 +- .../scripts.inc | 14 +- .../scripts.inc | 12 +- .../scripts.inc | 8 +- .../scripts.inc | 50 +- .../BattleFrontier_ScottsHouse/scripts.inc | 4 +- .../FallarborTown_BattleTentLobby/scripts.inc | 2 +- .../SlateportCity_BattleTentLobby/scripts.inc | 2 +- .../scripts.inc | 2 +- data/specials.inc | 2 +- include/battle_dome.h | 9 + include/battle_frontier_1.h | 8 - include/bg.h | 2 +- include/constants/battle_frontier.h | 10 + include/constants/vars.h | 2 +- include/global.h | 2 +- ld_script.txt | 4 +- src/battle_controller_player.c | 2 +- src/{battle_frontier_1.c => battle_dome.c} | 713 +++++++++--------- src/battle_setup.c | 5 +- src/bg.c | 2 +- src/field_specials.c | 17 +- src/item.c | 16 +- src/pokemon.c | 5 +- src/recorded_battle.c | 6 +- src/rom_8011DC0.c | 5 +- sym_ewram.txt | 13 +- 37 files changed, 547 insertions(+), 544 deletions(-) create mode 100644 include/battle_dome.h delete mode 100644 include/battle_frontier_1.h rename src/{battle_frontier_1.c => battle_dome.c} (87%) diff --git a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc index a376bfe228..9ef9a2812a 100644 --- a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc @@ -133,7 +133,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255DF4:: @ 8255DF4 lock faceplayer setvar VAR_FRONTIER_FACILITY, 3 - setvar VAR_0x40CE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, 0 special SavePlayerParty msgbox BattleFrontier_BattleArenaLobby_Text_256166, 4 diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index e853afda04..3d5704dba7 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -7,7 +7,7 @@ BattleFrontier_BattleDomeBattleRoom_MapScripts:: @ 824BC9C BattleFrontier_BattleDomeBattleRoom_MapScript1_24BCB1: @ 824BCB1 setvar VAR_0x8004, 10 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 1 setvar VAR_0x8005, 2 special sub_81A1780 @@ -72,7 +72,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD61:: @ 824BD61 BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82:: @ 824BD82 setvar VAR_0x8004, 4 - special sub_818E9AC + special CallBattleDomeFunction msgbox BattleFrontier_BattleDomeBattleRoom_Text_24C990, 4 closemessage applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C77B @@ -84,7 +84,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82:: @ 824BD82 msgbox 0x2021fc4, 4 closemessage setvar VAR_0x8004, 5 - special sub_818E9AC + special CallBattleDomeFunction call BattleFrontier_BattleDomeBattleRoom_EventScript_24C440 setvar VAR_TEMP_2, 0 switch VAR_RESULT @@ -109,7 +109,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7:: @ 824BDF7 compare VAR_TEMP_2, 2 goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F setvar VAR_0x8004, 19 - special sub_818E9AC + special CallBattleDomeFunction switch VAR_RESULT case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0 @@ -117,7 +117,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F:: @ 824BE4F applymovement 1, BattleFrontier_BattleDomeBattleRoom_Movement_2725B4 waitmovement 0 setvar VAR_0x8004, 4 - special sub_818E9AC + special CallBattleDomeFunction compare VAR_TEMP_2, 0 call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEB1 compare VAR_TEMP_2, 1 @@ -131,7 +131,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F:: @ 824BE4F BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D:: @ 824BE8D setvar VAR_0x8004, 12 setvar VAR_0x8005, 2 - special sub_818E9AC + special CallBattleDomeFunction BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A:: @ 824BE9A setvar VAR_0x8004, 2 @@ -173,10 +173,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0 call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E delay 60 setvar VAR_0x8004, 3 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 12 setvar VAR_0x8005, 1 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 1 setvar VAR_0x8005, 2 special sub_81A1780 @@ -227,17 +227,17 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BFCC:: @ 824BFCC BattleFrontier_BattleDomeBattleRoom_EventScript_24BFD5:: @ 824BFD5 setvar VAR_0x8004, 1 setvar VAR_0x8005, 6 - special sub_818E9AC + special CallBattleDomeFunction compare VAR_RESULT, 0 goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C023 setvar VAR_0x8004, 1 setvar VAR_0x8005, 7 - special sub_818E9AC + special CallBattleDomeFunction compare VAR_RESULT, 0 goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C076 setvar VAR_0x8004, 1 setvar VAR_0x8005, 1 - special sub_818E9AC + special CallBattleDomeFunction compare VAR_RESULT, 0 goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C16A goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C9 @@ -446,7 +446,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0F6, 4 setvar VAR_0x8004, 12 setvar VAR_0x8005, 1 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 12 special sub_81A1780 compare VAR_RESULT, 0 @@ -485,7 +485,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0F6, 4 setvar VAR_0x8004, 12 setvar VAR_0x8005, 1 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 12 special sub_81A1780 compare VAR_RESULT, 2 @@ -536,10 +536,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440 waitstate setvar VAR_TEMP_9, 0 setvar VAR_0x8004, 17 - special sub_818E9AC + special CallBattleDomeFunction special HealPlayerParty setvar VAR_0x8004, 16 - special sub_818E9AC + special CallBattleDomeFunction return BattleFrontier_BattleDomeBattleRoom_MapScript2_24C481: @ 824C481 @@ -950,7 +950,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E:: @ 824C82E BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5:: @ 824C8F5 BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5:: @ 824C8F5 - copyvar VAR_RESULT, VAR_0x40CE + copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE compare VAR_RESULT, 1 goto_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24C90F warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 255, 5, 11 diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc index 1e50357bc8..6a879df16d 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc @@ -6,7 +6,7 @@ BattleFrontier_BattleDomeLobby_MapScripts:: @ 82497E2 BattleFrontier_BattleDomeLobby_MapScript1_2497F2: @ 82497F2 setvar VAR_0x8004, 21 - special sub_818E9AC + special CallBattleDomeFunction end BattleFrontier_BattleDomeLobby_MapScript2_2497FB: @ 82497FB @@ -39,15 +39,15 @@ BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842 setvar VAR_0x8004, 2 setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 2 setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 2 setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 2 setvar VAR_0x8005, 0 setvar VAR_0x8006, 0 @@ -85,15 +85,15 @@ BattleFrontier_BattleDomeLobby_EventScript_2498C9:: @ 82498C9 setvar VAR_0x8004, 2 setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 2 setvar VAR_0x8005, 7 setvar VAR_0x8006, 1 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 2 setvar VAR_0x8005, 1 setvar VAR_0x8006, 1 - special sub_818E9AC + special CallBattleDomeFunction special LoadPlayerParty special HealPlayerParty goto BattleFrontier_BattleDomeLobby_EventScript_249991 @@ -112,18 +112,18 @@ BattleFrontier_BattleDomeLobby_EventScript_249940:: @ 8249940 setvar VAR_0x8004, 2 setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 2 setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 - special sub_818E9AC + special CallBattleDomeFunction special LoadPlayerParty special HealPlayerParty BattleFrontier_BattleDomeLobby_EventScript_249991:: @ 8249991 setvar VAR_0x8004, 13 setvar VAR_0x8005, 0 - special sub_818E9AC + special CallBattleDomeFunction playse SE_SAVE waitse call BattleFrontier_BattleDomeLobby_EventScript_23E8E0 @@ -154,7 +154,7 @@ BattleFrontier_BattleDomeLobby_EventScript_2499F9:: @ 82499F9 waitmessage setvar VAR_0x8004, 13 setvar VAR_0x8005, 1 - special sub_818E9AC + special CallBattleDomeFunction playse SE_SAVE waitse setvar VAR_0x8004, 2 @@ -168,7 +168,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249A35:: @ 8249A35 lock faceplayer setvar VAR_FRONTIER_FACILITY, 1 - setvar VAR_0x40CE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, 0 goto BattleFrontier_BattleDomeLobby_EventScript_249A59 end @@ -176,21 +176,21 @@ BattleFrontier_BattleDomeLobby_EventScript_249A47:: @ 8249A47 lock faceplayer setvar VAR_FRONTIER_FACILITY, 1 - setvar VAR_0x40CE, 1 + setvar VAR_FRONTIER_BATTLE_MODE, 1 goto BattleFrontier_BattleDomeLobby_EventScript_249A59 end BattleFrontier_BattleDomeLobby_EventScript_249A59:: @ 8249A59 special SavePlayerParty - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CFD - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D06 BattleFrontier_BattleDomeLobby_EventScript_249A72:: @ 8249A72 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D0F - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D15 waitmessage multichoice 17, 6, 23, 0 @@ -236,7 +236,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60 setvar VAR_0x8005, 4 special sub_81A1780 setvar VAR_0x8004, 0 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 2 setvar VAR_0x8005, 0 setvar VAR_0x8006, 1 @@ -253,7 +253,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60 compare VAR_RESULT, 0 goto_eq BattleFrontier_BattleDomeLobby_EventScript_249C4A setvar VAR_0x8004, 22 - special sub_818E9AC + special CallBattleDomeFunction BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2 special SavePlayerParty @@ -261,7 +261,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2 setvar VAR_0x8005, 3 special sub_81A1780 setvar VAR_0x8004, 15 - special sub_818E9AC + special CallBattleDomeFunction msgbox BattleFrontier_BattleDomeLobby_Text_24A437, 4 closemessage call BattleFrontier_BattleDomeLobby_EventScript_249C6E @@ -272,9 +272,9 @@ BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2 end BattleFrontier_BattleDomeLobby_EventScript_249BFA:: @ 8249BFA - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D1B - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D24 goto BattleFrontier_BattleDomeLobby_EventScript_249A72 @@ -309,26 +309,26 @@ BattleFrontier_BattleDomeLobby_EventScript_249C6C:: @ 8249C6C end BattleFrontier_BattleDomeLobby_EventScript_249C6E:: @ 8249C6E - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CDD - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CE5 applymovement 255, BattleFrontier_BattleDomeLobby_Movement_249D45 waitmovement 0 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D2D - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D33 waitdooranim - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CED - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CF5 applymovement 255, BattleFrontier_BattleDomeLobby_Movement_249D4E waitmovement 0 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D39 - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D3F waitdooranim return @@ -433,7 +433,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D6B:: @ 8249D6B BattleFrontier_BattleDomeLobby_EventScript_249D84:: @ 8249D84 setvar VAR_0x8004, 1 setvar VAR_0x8005, 9 - special sub_818E9AC + special CallBattleDomeFunction compare VAR_RESULT, 0 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249DC9 compare VAR_RESULT, 1 @@ -444,7 +444,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D84:: @ 8249D84 call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249DE4 fadescreen 1 setvar VAR_0x8004, 8 - special sub_818E9AC + special CallBattleDomeFunction waitstate end @@ -466,7 +466,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249DE4:: @ 8249DE4 BattleFrontier_BattleDomeLobby_EventScript_249DED:: @ 8249DED setvar VAR_0x8004, 20 - special sub_818E9AC + special CallBattleDomeFunction msgbox BattleFrontier_BattleDomeLobby_Text_24AA76, 2 end diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc index 024162cee0..e004eafacd 100644 --- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc @@ -87,7 +87,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B377:: @ 824B377 BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3A9:: @ 824B3A9 setvar VAR_0x8004, 12 setvar VAR_0x8005, 9 - special sub_818E9AC + special CallBattleDomeFunction goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB @@ -95,7 +95,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB waitmessage setvar VAR_0x8004, 13 setvar VAR_0x8005, 2 - special sub_818E9AC + special CallBattleDomeFunction playse SE_SAVE waitse fadescreen 1 @@ -107,7 +107,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD:: @ 824B3DD msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9B5, 4 fadescreen 1 setvar VAR_0x8004, 6 - special sub_818E9AC + special CallBattleDomeFunction waitstate goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F @@ -115,7 +115,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5:: @ 824B3F5 call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A fadescreen 1 setvar VAR_0x8004, 7 - special sub_818E9AC + special CallBattleDomeFunction waitstate goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F @@ -162,11 +162,11 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D goto_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F setvar VAR_0x8004, 2 setvar VAR_0x8005, 8 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 18 - special sub_818E9AC + special CallBattleDomeFunction setvar VAR_0x8004, 9 - special sub_818E9AC + special CallBattleDomeFunction msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B748, 4 closemessage applymovement 1, BattleFrontier_BattleDomePreBattleRoom_Movement_24B64F @@ -253,7 +253,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7 call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600 fadescreen 1 setvar VAR_0x8004, 11 - special sub_818E9AC + special CallBattleDomeFunction waitstate goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc index 5b6a674fb0..2968e2c0f4 100644 --- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc @@ -291,7 +291,7 @@ BattleFrontier_BattleFactoryBattleRoom_Movement_25B18B: @ 825B18B BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190:: @ 825B190 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B190:: @ 825B190 - copyvar VAR_RESULT, VAR_0x40CE + copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE compare VAR_RESULT, 1 goto_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B1AA warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY, 255, 4, 8 diff --git a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc index ec24833903..7846da8747 100644 --- a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc @@ -143,27 +143,27 @@ BattleFrontier_BattleFactoryLobby_EventScript_2585CB:: @ 82585CB lock faceplayer setvar VAR_FRONTIER_FACILITY, 4 - setvar VAR_0x40CE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, 0 goto BattleFrontier_BattleFactoryLobby_EventScript_2585ED end BattleFrontier_BattleFactoryLobby_EventScript_2585DD:: @ 82585DD setvar VAR_FRONTIER_FACILITY, 4 - setvar VAR_0x40CE, 1 + setvar VAR_FRONTIER_BATTLE_MODE, 1 goto BattleFrontier_BattleFactoryLobby_EventScript_2585ED end BattleFrontier_BattleFactoryLobby_EventScript_2585ED:: @ 82585ED special SavePlayerParty - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587B1 - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587BA BattleFrontier_BattleFactoryLobby_EventScript_258606:: @ 8258606 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587C3 - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587C9 waitmessage multichoice 17, 6, 23, 0 @@ -218,9 +218,9 @@ BattleFrontier_BattleFactoryLobby_EventScript_25871A:: @ 825871A special SavePlayerParty msgbox BattleFrontier_BattleFactoryLobby_Text_258CB1, 4 closemessage - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_25875C - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_258762 applymovement VAR_LAST_TALKED, BattleFrontier_BattleFactoryLobby_Movement_2587A7 applymovement 255, BattleFrontier_BattleFactoryLobby_Movement_2587AC @@ -239,9 +239,9 @@ BattleFrontier_BattleFactoryLobby_EventScript_258762:: @ 8258762 return BattleFrontier_BattleFactoryLobby_EventScript_258768:: @ 8258768 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587CF - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587D8 goto BattleFrontier_BattleFactoryLobby_EventScript_258606 diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc index 2ae154927b..372b5da76e 100644 --- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc @@ -459,7 +459,7 @@ BattleFrontier_BattlePalaceBattleRoom_Movement_24FEB6: @ 824FEB6 step_end BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB:: @ 824FEBB - copyvar VAR_RESULT, VAR_0x40CE + copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE compare VAR_RESULT, 1 goto_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24FED5 warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY, 255, 5, 7 diff --git a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc index 91c1abd0fe..b86ffa2fbd 100644 --- a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc @@ -134,7 +134,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D944:: @ 824D944 lock faceplayer setvar VAR_FRONTIER_FACILITY, 2 - setvar VAR_0x40CE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, 0 goto BattleFrontier_BattlePalaceLobby_EventScript_24D968 end @@ -142,7 +142,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D956:: @ 824D956 lock faceplayer setvar VAR_FRONTIER_FACILITY, 2 - setvar VAR_0x40CE, 1 + setvar VAR_FRONTIER_BATTLE_MODE, 1 goto BattleFrontier_BattlePalaceLobby_EventScript_24D968 end @@ -153,15 +153,15 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D968:: @ 824D968 compare VAR_RESULT, 0 goto_if 5, BattleFrontier_BattlePalaceLobby_EventScript_24D817 special SavePlayerParty - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DB9E - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DBA7 BattleFrontier_BattlePalaceLobby_EventScript_24D999:: @ 824D999 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DBB0 - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DBB6 waitmessage multichoice 17, 6, 23, 0 @@ -242,7 +242,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DAF3:: @ 824DAF3 end BattleFrontier_BattlePalaceLobby_EventScript_24DB20:: @ 824DB20 - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 goto_eq BattleFrontier_BattlePalaceLobby_EventScript_24DB38 msgbox BattleFrontier_BattlePalaceLobby_Text_24DE17, 4 goto BattleFrontier_BattlePalaceLobby_EventScript_24D999 @@ -298,24 +298,24 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DBB6:: @ 824DBB6 return BattleFrontier_BattlePalaceLobby_EventScript_24DBBC:: @ 824DBBC - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC23 - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC29 applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_24DC47 applymovement 255, BattleFrontier_BattlePalaceLobby_Movement_24DC47 waitmovement 0 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC2F - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC35 waitdooranim applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_24DC49 applymovement 255, BattleFrontier_BattlePalaceLobby_Movement_24DC4C waitmovement 0 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC3B - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC41 waitdooranim return diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc index 5323c4a6b1..0b356792fc 100644 --- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc @@ -126,7 +126,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B868:: @ 825B868 lock faceplayer setvar VAR_FRONTIER_FACILITY, 5 - setvar VAR_0x40CE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, 0 special SavePlayerParty msgbox BattleFrontier_BattlePikeLobby_Text_25BB52, 4 diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc index 07b9fee477..ccc7b1032d 100644 --- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc @@ -130,7 +130,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2508B1:: @ 82508B1 lock faceplayer setvar VAR_FRONTIER_FACILITY, 6 - setvar VAR_0x40CE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, 0 special SavePlayerParty msgbox BattleFrontier_BattlePyramidLobby_Text_250F31, 4 diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc index f684e215de..d687f83dd4 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc @@ -366,7 +366,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_24210E:: @ 824210E setvar VAR_0x8005, 0 special sub_8163AC4 waitstate - copyvar VAR_0x8004, VAR_0x40CE + copyvar VAR_0x8004, VAR_FRONTIER_BATTLE_MODE compare VAR_0x8004, 3 goto_eq BattleFrontier_BattleTowerBattleRoom_EventScript_24215A setvar VAR_0x8004, 18 @@ -484,7 +484,7 @@ BattleFrontier_BattleTowerBattleRoom_Movement_2421B2: @ 82421B2 BattleFrontier_BattleTowerBattleRoom2_EventScript_2421B8:: @ 82421B8 BattleFrontier_BattleTowerBattleRoom_EventScript_2421B8:: @ 82421B8 - copyvar VAR_RESULT, VAR_0x40CE + copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE compare VAR_RESULT, 1 goto_eq BattleFrontier_BattleTowerBattleRoom_EventScript_2421E8 compare VAR_RESULT, 2 diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc index d1b07451cc..556d4499a4 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc @@ -5,9 +5,9 @@ BattleFrontier_BattleTowerBattleRoom2_MapScripts:: @ 8248EE8 .byte 0 BattleFrontier_BattleTowerBattleRoom2_MapScript1_248EF8: @ 8248EF8 - compare VAR_0x40CE, 2 + compare VAR_FRONTIER_BATTLE_MODE, 2 call_if 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F0F - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 call_if 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F2F end @@ -70,7 +70,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4:: @ 8248FB4 applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249528 applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_24952E waitmovement 0 - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249026 setvar VAR_0x8004, 7 setvar VAR_0x8005, 0 @@ -142,7 +142,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA:: @ 82490AA applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 waitmovement 0 - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249118 msgbox BattleFrontier_BattleTowerBattleRoom2_Text_242217, 4 goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249121 @@ -157,7 +157,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249121:: @ 8249121 setvar VAR_0x8004, 3 setvar VAR_0x8005, 2 special sub_81A1780 - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 call_if 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249514 playfanfare MUS_ME_ASA waitfanfare @@ -168,7 +168,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249143:: @ 8249143 setvar VAR_0x8005, 2 special sub_81A1780 call BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249283 call BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8E0 compare VAR_RESULT, 1 @@ -256,7 +256,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2492DB:: @ 82492DB end BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD:: @ 82492FD - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_24937E copyvar VAR_TEMP_F, VAR_RESULT switch VAR_TEMP_F diff --git a/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc b/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc index 36cf93ada0..d28fa105db 100644 --- a/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc @@ -5,9 +5,9 @@ BattleFrontier_BattleTowerCorridor2_MapScripts:: @ 8248D4A .byte 0 BattleFrontier_BattleTowerCorridor2_MapScript1_248D5A: @ 8248D5A - compare VAR_0x40CE, 2 + compare VAR_FRONTIER_BATTLE_MODE, 2 call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248D71 - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248D91 end @@ -87,13 +87,13 @@ BattleFrontier_BattleTowerCorridor2_EventScript_248DBC:: @ 8248DBC end BattleFrontier_BattleTowerCorridor2_EventScript_248E71:: @ 8248E71 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248E9E - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248E9E - compare VAR_0x40CE, 2 + compare VAR_FRONTIER_BATTLE_MODE, 2 call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248EA8 - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248EB2 return diff --git a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc index 072d271374..968d457721 100644 --- a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc @@ -24,13 +24,13 @@ BattleFrontier_BattleTowerElevator_EventScript_2419F0:: @ 82419F0 end BattleFrontier_BattleTowerElevator_EventScript_241A28:: @ 8241A28 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleTowerElevator_EventScript_241A55 - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleTowerElevator_EventScript_241A55 - compare VAR_0x40CE, 2 + compare VAR_FRONTIER_BATTLE_MODE, 2 call_if 1, BattleFrontier_BattleTowerElevator_EventScript_241A5F - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 call_if 1, BattleFrontier_BattleTowerElevator_EventScript_241A72 return diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index 1cd2ff74ab..2b07b7ea4f 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -119,7 +119,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E7E2:: @ 823E7E2 end BattleFrontier_BattleTowerLobby_EventScript_23E7F2:: @ 823E7F2 - compare VAR_0x40CE, 2 + compare VAR_FRONTIER_BATTLE_MODE, 2 goto_if 5, BattleFrontier_BattleTowerLobby_EventScript_23E81E checkflag FLAG_0x152 goto_eq BattleFrontier_BattleTowerLobby_EventScript_23E81E @@ -214,7 +214,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E8E0:: @ 823E8E0 BattleFrontier_BattleTowerLobby_EventScript_23E8EE:: @ 823E8EE lock faceplayer - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23E930 message BattleFrontier_BattleTowerLobby_Text_23F737 waitmessage @@ -254,7 +254,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E948:: @ 823E948 case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 BattleFrontier_BattleTowerLobby_EventScript_23E984:: @ 823E984 - setvar VAR_0x40CE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, 0 message BattleFrontier_BattleTowerLobby_Text_23FD3B waitmessage multichoice 17, 6, 24, 0 @@ -334,7 +334,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EAB1:: @ 823EAB1 case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 BattleFrontier_BattleTowerLobby_EventScript_23EAED:: @ 823EAED - setvar VAR_0x40CE, 1 + setvar VAR_FRONTIER_BATTLE_MODE, 1 message BattleFrontier_BattleTowerLobby_Text_23FD3B waitmessage multichoice 17, 6, 24, 0 @@ -415,7 +415,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EC1D:: @ 823EC1D case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 BattleFrontier_BattleTowerLobby_EventScript_23EC59:: @ 823EC59 - setvar VAR_0x40CE, 2 + setvar VAR_FRONTIER_BATTLE_MODE, 2 message BattleFrontier_BattleTowerLobby_Text_23FD3B waitmessage multichoice 17, 6, 24, 0 @@ -495,7 +495,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23ED86:: @ 823ED86 case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 BattleFrontier_BattleTowerLobby_EventScript_23EDC2:: @ 823EDC2 - setvar VAR_0x40CE, 3 + setvar VAR_FRONTIER_BATTLE_MODE, 3 message BattleFrontier_BattleTowerLobby_Text_23FD3B waitmessage multichoice 17, 6, 24, 0 @@ -679,7 +679,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F02B:: @ 823F02B case 1, BattleFrontier_BattleTowerLobby_EventScript_23F08B BattleFrontier_BattleTowerLobby_EventScript_23F046:: @ 823F046 - switch VAR_0x40CE + switch VAR_FRONTIER_BATTLE_MODE case 0, BattleFrontier_BattleTowerLobby_EventScript_23F06F case 1, BattleFrontier_BattleTowerLobby_EventScript_23F07D msgbox BattleFrontier_BattleTowerLobby_Text_24038B, 4 @@ -697,7 +697,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F07D:: @ 823F07D end BattleFrontier_BattleTowerLobby_EventScript_23F08B:: @ 823F08B - switch VAR_0x40CE + switch VAR_FRONTIER_BATTLE_MODE case 0, BattleFrontier_BattleTowerLobby_EventScript_23F0B4 case 1, BattleFrontier_BattleTowerLobby_EventScript_23F0C2 msgbox BattleFrontier_BattleTowerLobby_Text_24046B, 4 @@ -754,7 +754,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F108:: @ 823F108 BattleFrontier_BattleTowerLobby_EventScript_23F135:: @ 823F135 call BattleFrontier_BattleTowerLobby_EventScript_23F1A7 - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F152 msgbox BattleFrontier_BattleTowerLobby_Text_23FE11, 4 goto BattleFrontier_BattleTowerLobby_EventScript_23F15B @@ -807,13 +807,13 @@ BattleFrontier_BattleTowerLobby_Movement_23F1A0: @ 823F1A0 step_end BattleFrontier_BattleTowerLobby_EventScript_23F1A7:: @ 823F1A7 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F1D4 - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F1D9 - compare VAR_0x40CE, 2 + compare VAR_FRONTIER_BATTLE_MODE, 2 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F1DE - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F1E3 return @@ -834,13 +834,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F1E3:: @ 823F1E3 return BattleFrontier_BattleTowerLobby_EventScript_23F1E8:: @ 823F1E8 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F215 - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F21B - compare VAR_0x40CE, 2 + compare VAR_FRONTIER_BATTLE_MODE, 2 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F221 - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F227 return @@ -861,13 +861,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F227:: @ 823F227 return BattleFrontier_BattleTowerLobby_EventScript_23F22D:: @ 823F22D - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F25A - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F260 - compare VAR_0x40CE, 2 + compare VAR_FRONTIER_BATTLE_MODE, 2 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F266 - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F26C return @@ -888,13 +888,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F26C:: @ 823F26C return BattleFrontier_BattleTowerLobby_EventScript_23F272:: @ 823F272 - compare VAR_0x40CE, 0 + compare VAR_FRONTIER_BATTLE_MODE, 0 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F29F - compare VAR_0x40CE, 1 + compare VAR_FRONTIER_BATTLE_MODE, 1 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F2A5 - compare VAR_0x40CE, 2 + compare VAR_FRONTIER_BATTLE_MODE, 2 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F2AB - compare VAR_0x40CE, 3 + compare VAR_FRONTIER_BATTLE_MODE, 3 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F2B1 return diff --git a/data/maps/BattleFrontier_ScottsHouse/scripts.inc b/data/maps/BattleFrontier_ScottsHouse/scripts.inc index 5be72b9b5b..da73da3547 100644 --- a/data/maps/BattleFrontier_ScottsHouse/scripts.inc +++ b/data/maps/BattleFrontier_ScottsHouse/scripts.inc @@ -110,7 +110,7 @@ BattleFrontier_ScottsHouse_EventScript_263811:: @ 8263811 end BattleFrontier_ScottsHouse_EventScript_26381B:: @ 826381B - setvar VAR_0x40CE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, 0 setvar VAR_0x8004, 2 setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 @@ -153,7 +153,7 @@ BattleFrontier_ScottsHouse_EventScript_2638AA:: @ 82638AA end BattleFrontier_ScottsHouse_EventScript_2638B4:: @ 82638B4 - setvar VAR_0x40CE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, 0 setvar VAR_0x8004, 2 setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc index 00efa5394b..daf76cba2c 100644 --- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc +++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc @@ -149,7 +149,7 @@ FallarborTown_BattleTentLobby_EventScript_200021:: @ 8200021 FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D setvar VAR_FRONTIER_FACILITY, 3 - setvar VAR_0x40CE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, 0 setvar VAR_RESULT, 2 setvar VAR_0x8004, 15 special sub_81A1780 diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc index fc66d7387e..76b12e31e4 100644 --- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc +++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc @@ -137,7 +137,7 @@ SlateportCity_BattleTentLobby_EventScript_2088CA:: @ 82088CA SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906 setvar VAR_FRONTIER_FACILITY, 4 - setvar VAR_0x40CE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, 0 setvar VAR_0x8004, 2 setvar VAR_0x8005, 1 setvar VAR_0x8006, 2 diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc index 26f0680a0d..a4cfc20c29 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc @@ -150,7 +150,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201893:: @ 8201893 VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF setvar VAR_FRONTIER_FACILITY, 2 - setvar VAR_0x40CE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, 0 setvar VAR_RESULT, 2 setvar VAR_0x8004, 15 special sub_81A1780 diff --git a/data/specials.inc b/data/specials.inc index 9cc3d41eab..5d31c425f8 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -244,7 +244,7 @@ gSpecials:: @ 81DBA64 def_special GetLeadMonFriendshipScore def_special sub_81A1780 def_special sub_8161F74 - def_special sub_818E9AC + def_special CallBattleDomeFunction def_special sub_8195960 def_special sub_8165360 def_special sub_8163AC4 diff --git a/include/battle_dome.h b/include/battle_dome.h new file mode 100644 index 0000000000..d05b086897 --- /dev/null +++ b/include/battle_dome.h @@ -0,0 +1,9 @@ +#ifndef GUARD_BATTLE_DOME_H +#define GUARD_BATTLE_DOME_H + +extern u32 gUnknown_0203CD70; + +s32 GetTrainerMonCountInBits(u16 tournamentTrainerId); +s32 TrainerIdToDomeTournamentId(u16 trainerId); + +#endif // GUARD_BATTLE_DOME_H diff --git a/include/battle_frontier_1.h b/include/battle_frontier_1.h deleted file mode 100644 index b9c633efcf..0000000000 --- a/include/battle_frontier_1.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef GUARD_BATTLE_FRONTIER_1_H -#define GUARD_BATTLE_FRONTIER_1_H - -bool32 sub_8196094(void); -void sub_8197080(u8 *); -void sub_8196080(const u8 *str); - -#endif // GUARD_BATTLE_FRONTIER_1_H diff --git a/include/bg.h b/include/bg.h index ea84c15734..f2d4e79482 100644 --- a/include/bg.h +++ b/include/bg.h @@ -69,7 +69,7 @@ void* GetBgTilemapBuffer(u8 bg); void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset); void CopyBgTilemapBufferToVram(u8 bg); void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height); -void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette); +void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette); void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2); void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height); void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette); diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index 4145805c44..fddcdc8fe2 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -10,4 +10,14 @@ #define FRONTIER_FACILITY_PIKE 5 #define FRONTIER_FACILITY_PYRAMID 6 +// Battle Frontier lvl modes. +#define FRONTIER_LVL_50 0 +#define FRONTIER_LVL_OPEN 1 + +// Battle Frontier battle modes. +#define FRONTIER_MODE_SINGLES 0 +#define FRONTIER_MODE_DOUBLES 1 +#define FRONTIER_MODE_MULTIS 2 +#define FRONTIER_MODE_LINK_MULTIS 3 + #endif // GUARD_CONSTANTS_BATTLE_FRONTIER_H diff --git a/include/constants/vars.h b/include/constants/vars.h index e2c59b4fb2..9854ec5a2b 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -222,7 +222,7 @@ #define VAR_0x40CB 0x40CB #define VAR_0x40CC 0x40CC #define VAR_0x40CD 0x40CD -#define VAR_0x40CE 0x40CE +#define VAR_FRONTIER_BATTLE_MODE 0x40CE #define VAR_FRONTIER_FACILITY 0x40CF #define VAR_0x40D0 0x40D0 #define VAR_0x40D1 0x40D1 diff --git a/include/global.h b/include/global.h index d3abb82699..bb843bddd8 100644 --- a/include/global.h +++ b/include/global.h @@ -362,7 +362,7 @@ struct BattleFrontier /*0xC14*/ u16 ecwords_C14[6]; /*0xC20*/ u8 filler_C20[0x88]; /*0xCA8*/ u8 field_CA8; - /*0xCA9*/ u8 chosenLvl:2; // 0x1, 0x2 -> 0x3 + /*0xCA9*/ u8 lvlMode:2; // 0x1, 0x2 -> 0x3 /*0xCA9*/ u8 field_CA9_a:1; // 0x4 /*0xCA9*/ u8 field_CA9_b:1; // 0x8 /*0xCA9*/ u8 field_CA9_c:1; // 0x10 diff --git a/ld_script.txt b/ld_script.txt index 0eee2e8cef..2c4dc6609e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -242,7 +242,7 @@ SECTIONS { src/battle_controller_recorded_player.o(.text); src/trainer_pokemon_sprites.o(.text); src/lilycove_lady.o(.text); - src/battle_frontier_1.o(.text); + src/battle_dome.o(.text); asm/battle_frontier_1.o(.text); src/menu.o(.text); asm/battle_frontier_2.o(.text); @@ -522,7 +522,7 @@ SECTIONS { src/battle_controller_recorded_player.o(.rodata); src/trainer_pokemon_sprites.o(.rodata); src/lilycove_lady.o(.rodata); - src/battle_frontier_1.o(.rodata); + src/battle_dome.o(.rodata); data/battle_frontier_1.o(.rodata); src/menu.o(.rodata); data/battle_frontier_2.o(.rodata); diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 6ab19e368c..ffe8936a09 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -31,13 +31,13 @@ #include "item_use.h" #include "recorded_battle.h" #include "party_menu.h" +#include "battle_dome.h" extern u8 gUnknown_0203CEE8; extern u8 gUnknown_0203CEE9; extern u8 gUnknown_0203CF00[]; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; -extern s32 gUnknown_0203CD70; extern struct UnusedControllerStruct gUnknown_02022D0C; extern struct MusicPlayerInfo gMPlayInfo_BGM; extern struct SpriteTemplate gMultiuseSpriteTemplate; diff --git a/src/battle_frontier_1.c b/src/battle_dome.c similarity index 87% rename from src/battle_frontier_1.c rename to src/battle_dome.c index 1ac84962f5..058d253ab5 100644 --- a/src/battle_frontier_1.c +++ b/src/battle_dome.c @@ -1,7 +1,7 @@ #include "global.h" +#include "battle_dome.h" #include "battle.h" #include "battle_setup.h" -#include "battle_frontier_1.h" #include "battle_tower.h" #include "battle_message.h" #include "event_data.h" @@ -30,6 +30,7 @@ #include "constants/trainers.h" #include "constants/abilities.h" #include "constants/songs.h" +#include "constants/battle_frontier.h" #define DOME_ROUND1 0 #define DOME_ROUND2 1 @@ -47,19 +48,25 @@ struct FacilityMon u8 nature; }; -struct Unknown_0203CD78_Struct +struct BattleDomeStruct { - u8 arr[16]; + u8 arr[DOME_TOURNAMENT_TRAINERS_COUNT]; u8 unk_10; u8 unk_11[3]; }; +struct UnkStruct_860DD10 +{ + u8 x; + u8 y; + u16 src; +}; + extern void sub_81B8558(void); extern u32 sub_81A39C4(void); extern u16 sub_8162548(u8, u8); extern u16 RandomizeFacilityTrainerMonId(u16); extern u8 GetFrontierEnemyMonLevel(void); -extern void CopyDomeTrainerName(u8 *dst, u16 trainerId); extern u16 sub_81A5060(u8 monId, u8 moveSlotId); extern u8 sub_81A50F0(u8, u8); extern u8 sub_81A50B0(u8); @@ -72,8 +79,6 @@ extern u8 GetFrontierOpponentClass(u16); extern void sub_80F94E8(void); extern u8 gUnknown_0203CEF8[]; -extern u32 gUnknown_0203CD70; -extern u32 gUnknown_0203CD74; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; extern u16 gBattle_BG1_X; @@ -83,8 +88,6 @@ extern u16 gBattle_BG2_Y; extern u16 gBattle_BG3_X; extern u16 gBattle_BG3_Y; extern const struct FacilityMon *gFacilityTrainerMons; -extern struct Unknown_0203CD78_Struct *gUnknown_0203CD78; -extern u8 *gUnknown_0203CD7C; extern void (* const gUnknown_0860D090[])(void); extern const u32 gUnknown_0860D0EC[][2]; @@ -124,6 +127,15 @@ extern const u8 *const gBattleDomeWinStringsPointers[]; extern const u8 *const gBattleDomeMatchNumberPointers[]; extern const struct FacilityMon gBattleFrontierMons[]; extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; +extern const struct BgTemplate gUnknown_0860CE74[4]; +extern const struct WindowTemplate gUnknown_0860CE94[]; +extern const u8 gUnknown_0860D411[][2]; +extern const struct SpriteTemplate gUnknown_0860CFA8; +extern const struct SpriteTemplate gUnknown_0860D008; +extern const struct SpriteTemplate gUnknown_0860CFD8; +extern const struct ScanlineEffectParams gUnknown_0860CF44; +extern const struct UnkStruct_860DD10 *gUnknown_0860DD10[][4]; +extern const u8 gUnknown_0860DE10[][4]; // gfx extern const u8 gUnknown_08D83D50[]; @@ -142,42 +154,47 @@ extern const u8 gUnknown_08D83C3C[]; extern const u8 gTrainerClassNames[][0xD]; // This file's functions. -u8 GetDomeTrainerMonIvs(u16 trainerId); -void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray); -void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats); -void CreateDomeTrainerMons(u16 tournamentTrainerId); +static u8 GetDomeTrainerMonIvs(u16 trainerId); +static void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray); +static void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats); +static void CreateDomeTrainerMons(u16 tournamentTrainerId); +static s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); +static s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); +static s32 sub_818FFC0(s32 move, s32 species, s32 arg2); +static s32 sub_818FEB4(s32 *arr, bool8 arg1); +static void sub_8190400(u8 taskId); +static void sub_8190CD4(u8 taskId); +static u8 sub_819221C(u8 taskId); +void sub_8194D48(void); static s32 TrainerIdToTournamentId(u16 trainerId); -s32 GetTrainerMonCountInBits(u16 tournamentTrainerId); -s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); -s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); -s32 sub_818FFC0(s32 move, s32 species, s32 arg2); -s32 sub_818FEB4(s32 *arr, bool8 arg1); -u16 TrainerIdOfPlayerOpponent(void); -void sub_8190400(u8 taskId); -void sub_8190CD4(u8 taskId); -void sub_8194220(u8 taskId); -void sub_8194950(u8 taskId); +static u16 TrainerIdOfPlayerOpponent(void); +static void sub_8194220(u8 taskId); +static void sub_8194950(u8 taskId); static void CB2_BattleDome(void); static void VblankCb0_BattleDome(void); static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo); static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId); -u8 sub_819221C(u8 taskId); -s32 sub_8192F08(u8, u8*); -u8 GetDomeBrainTrainerPicId(void); -u8 GetDomeBrainTrainerClass(void); -void CopyDomeBrainTrainerName(u8 *dst); -void CopyDomeTrainerName(u8 *dst, u16 trainerId); -void sub_8194D48(void); -void sub_8194BEC(void); +static s32 sub_8192F08(u8, u8*); +static u8 GetDomeBrainTrainerPicId(void); +static u8 GetDomeBrainTrainerClass(void); +static void CopyDomeBrainTrainerName(u8 *dst); +static void CopyDomeTrainerName(u8 *dst, u16 trainerId); +static void HblankCb_BattleDome(void); static void VblankCb1_BattleDome(void); -u8 sub_8193BDC(u8 taskId); -void DecideRoundWinners(u8 roundId); -u8 sub_81953E8(u8 tournamentId, u8); -void sub_81948EC(u8, u8); +static u8 sub_8193BDC(u8 taskId); +static void DecideRoundWinners(u8 roundId); +static u8 sub_81953E8(u8 tournamentId, u8); +static void sub_81948EC(u8, u8); -// const rom data +// EWRAM variables. +EWRAM_DATA u32 gUnknown_0203CD70 = 0; +static EWRAM_DATA u32 gUnknown_0203CD74 = 0; +static EWRAM_DATA struct BattleDomeStruct *sBattleDomeStruct = {0}; +static EWRAM_DATA u8 *sTilemapBuffer = NULL; + +// Const rom data. ALIGNED(4) -static const u8 sMovePoints[MOVES_COUNT][DOME_TOURNAMENT_TRAINERS_COUNT] = +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}, @@ -537,15 +554,15 @@ static const u8 sMovePoints[MOVES_COUNT][DOME_TOURNAMENT_TRAINERS_COUNT] = }; // code -void sub_818E9AC(void) +void CallBattleDomeFunction(void) { gUnknown_0860D090[gSpecialVar_0x8004](); } void sub_818E9CC(void) { - u32 lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; - u32 battleMode = VarGet(VAR_0x40CE); + u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); gSaveBlock2Ptr->frontier.field_CA8 = 0; gSaveBlock2Ptr->frontier.field_CB2 = 0; @@ -560,8 +577,8 @@ void sub_818E9CC(void) void sub_818EA84(void) { - u32 lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; - u32 battleMode = VarGet(VAR_0x40CE); + u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); switch (gSpecialVar_0x8005) { @@ -584,7 +601,7 @@ void sub_818EA84(void) gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3; break; case 6: - if (VarGet(VAR_0x40CE) == 1) + if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { if (lvlMode) gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_5; @@ -600,7 +617,7 @@ void sub_818EA84(void) } break; case 7: - if (VarGet(VAR_0x40CE) == 1) + if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { if (lvlMode) gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_7; @@ -628,8 +645,8 @@ void sub_818EA84(void) void sub_818ED28(void) { - u32 lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; - u32 battleMode = VarGet(VAR_0x40CE); + u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); switch (gSpecialVar_0x8005) { @@ -655,7 +672,7 @@ void sub_818ED28(void) gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006; break; case 6: - if (VarGet(VAR_0x40CE) == 1) + if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { if (lvlMode) gSaveBlock2Ptr->frontier.field_D08_5 = gSpecialVar_0x8006; @@ -671,7 +688,7 @@ void sub_818ED28(void) } break; case 7: - if (VarGet(VAR_0x40CE) == 1) + if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { if (lvlMode) gSaveBlock2Ptr->frontier.field_D08_7 = gSpecialVar_0x8006; @@ -710,8 +727,8 @@ void InitDomeTrainers(void) statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); statValues = AllocZeroed(sizeof(s32) * 6); - gSaveBlock2Ptr->frontier.field_D0A = gSaveBlock2Ptr->frontier.chosenLvl + 1; - gSaveBlock2Ptr->frontier.field_D0B = VarGet(VAR_0x40CE) + 1; + gSaveBlock2Ptr->frontier.field_D0A = gSaveBlock2Ptr->frontier.lvlMode + 1; + gSaveBlock2Ptr->frontier.field_D0B = VarGet(VAR_FRONTIER_BATTLE_MODE) + 1; gSaveBlock2Ptr->frontier.domeTrainers[0].trainerId = TRAINER_PLAYER; gSaveBlock2Ptr->frontier.domeTrainers[0].isEliminated = 0; gSaveBlock2Ptr->frontier.domeTrainers[0].eliminatedAt = 0; @@ -895,7 +912,7 @@ void InitDomeTrainers(void) stats[statIndex] = (u8) ModifyStatByNature(nature, stats[statIndex], statIndex); \ } -void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats) +static void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats) { s32 i, count; u8 bits; @@ -941,7 +958,7 @@ void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 y = temp; \ } -void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray) +static void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray) { s32 i; u16 temp; @@ -973,7 +990,7 @@ void sub_818FA20(void) CreateDomeTrainerMons(TrainerIdToTournamentId(gTrainerBattleOpponent_A)); } -void CreateDomeMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentMonId, u32 otId) +static void CreateDomeMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentMonId, u32 otId) { s32 i; u8 happiness = 0xFF; @@ -1000,7 +1017,7 @@ void CreateDomeMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentMonId, u &gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].itemTableId]); } -void CreateDomeTrainerMons(u16 tournamentTrainerId) +static void CreateDomeTrainerMons(u16 tournamentTrainerId) { u8 monsCount = 0; u32 otId = 0; @@ -1054,7 +1071,7 @@ s32 GetTrainerMonCountInBits(u16 tournamentTrainerId) return bits; } -s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1) +static s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1) { s32 i, moveId, playerMonId; s32 array[3]; @@ -1082,7 +1099,7 @@ s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1) return sub_818FEB4(array, arg1); } -s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1) +static s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1) { s32 i, moveId, playerMonId; s32 array[3]; @@ -1110,7 +1127,7 @@ s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1) return sub_818FEB4(array, arg1); } -s32 sub_818FEB4(s32 *arr, bool8 arg1) +static s32 sub_818FEB4(s32 *arr, bool8 arg1) { s32 i, j; s32 bits = 0; @@ -1178,7 +1195,7 @@ s32 sub_818FEB4(s32 *arr, bool8 arg1) // Functionally equivalent, while loop is impossible to match. #ifdef NONMATCHING -s32 sub_818FFC0(s32 move, s32 species, s32 arg2) +static s32 sub_818FFC0(s32 move, s32 species, s32 arg2) { s32 type1, type2, ability, moveType; s32 i = 0; @@ -1297,7 +1314,7 @@ s32 sub_818FFC0(s32 move, s32 species, s32 arg2) } #else NAKED -s32 sub_818FFC0(s32 move, s32 species, s32 arg2) +static s32 sub_818FFC0(s32 move, s32 species, s32 arg2) { asm_unified("\n\ push {r4-r7,lr}\n\ @@ -1537,7 +1554,7 @@ _08190156:\n\ } #endif // NONMATCHING -u8 GetDomeTrainerMonIvs(u16 trainerId) +static u8 GetDomeTrainerMonIvs(u16 trainerId) { u8 fixedIv; if (trainerId <= 99) @@ -1560,7 +1577,7 @@ u8 GetDomeTrainerMonIvs(u16 trainerId) return fixedIv; } -s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId) +static s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId) { s32 i, j, val; @@ -1602,7 +1619,7 @@ void sub_8190298(void) gTrainerBattleOpponent_A = TrainerIdOfPlayerOpponent(); } -u16 TrainerIdOfPlayerOpponent(void) +static u16 TrainerIdOfPlayerOpponent(void) { return gSaveBlock2Ptr->frontier.domeTrainers[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.field_CB2, TRAINER_PLAYER)].trainerId; } @@ -1622,8 +1639,8 @@ void sub_81902F8(void) void sub_819033C(void) { - u8 lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; - u8 battleMode = VarGet(VAR_0x40CE); + u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); if (gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] < 999) gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode]++; @@ -1645,7 +1662,7 @@ void ShowDomeOpponentInfo(void) SetMainCallback2(CB2_BattleDome); } -void sub_8190400(u8 taskId) +static void sub_8190400(u8 taskId) { s32 i; s32 r5 = gTasks[taskId].data[1]; @@ -1712,9 +1729,9 @@ void sub_8190400(u8 taskId) break; case 3: SetVBlankCallback(VblankCb0_BattleDome); - gUnknown_0203CD78 = AllocZeroed(sizeof(*gUnknown_0203CD78)); + sBattleDomeStruct = AllocZeroed(sizeof(*sBattleDomeStruct)); for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) - gUnknown_0203CD78->arr[i] |= 0xFF; + sBattleDomeStruct->arr[i] |= 0xFF; LoadMonIconPalettes(); i = CreateTask(sub_8190CD4, 0); gTasks[i].data[0] = 0; @@ -1724,7 +1741,7 @@ void sub_8190400(u8 taskId) if (r9 == 2) { DisplayMatchInfoOnCard(0, r5); - gUnknown_0203CD78->unk_10 = 1; + sBattleDomeStruct->unk_10 = 1; } else { @@ -1776,7 +1793,7 @@ static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite) { if (sprite->pos1.y >= 192) { - gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } @@ -1796,7 +1813,7 @@ static void SpriteCb_TrainerIconCardScrollDown(struct Sprite *sprite) { if (sprite->pos1.y <= -32) { - gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } @@ -1816,7 +1833,7 @@ static void SpriteCb_TrainerIconCardScrollLeft(struct Sprite *sprite) { if (sprite->pos1.x >= 272) { - gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } @@ -1836,7 +1853,7 @@ static void SpriteCb_TrainerIconCardScrollRight(struct Sprite *sprite) { if (sprite->pos1.x <= -32) { - gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } @@ -1866,7 +1883,7 @@ static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite) { if (sprite->pos1.y >= 176) { - gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; sub_80D2EF8(sprite); } } @@ -1888,7 +1905,7 @@ static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite) { if (sprite->pos1.y <= -16) { - gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; sub_80D2EF8(sprite); } } @@ -1910,7 +1927,7 @@ static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite) { if (sprite->pos1.x >= 256) { - gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; sub_80D2EF8(sprite); } } @@ -1932,7 +1949,7 @@ static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite) { if (sprite->pos1.x <= -16) { - gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; sub_80D2EF8(sprite); } } @@ -1950,12 +1967,12 @@ void sub_8190B40(struct Sprite *sprite) if (sprite->data[1]) { if ((gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated - && gUnknown_0203CD78->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].eliminatedAt)) + && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].eliminatedAt)) { sprite->invisible = 0; } else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated - && gUnknown_0203CD78->unk_10 - 1 < r12) + && sBattleDomeStruct->unk_10 - 1 < r12) { sprite->invisible = 0; } @@ -1967,7 +1984,7 @@ void sub_8190B40(struct Sprite *sprite) } else { - if (gUnknown_0203CD78->unk_10 != 0) + if (sBattleDomeStruct->unk_10 != 0) { sprite->invisible = 0; } @@ -1982,7 +1999,7 @@ void sub_8190B40(struct Sprite *sprite) { if (sprite->data[1]) { - if (gUnknown_0203CD78->unk_10 > 1) + if (sBattleDomeStruct->unk_10 > 1) { if (gTasks[taskId1].data[0] == 2) sprite->invisible = 1; @@ -1994,7 +2011,7 @@ void sub_8190B40(struct Sprite *sprite) } else { - if (gUnknown_0203CD78->unk_10 != 0) + if (sBattleDomeStruct->unk_10 != 0) { sprite->invisible = 0; } @@ -2013,7 +2030,7 @@ void sub_8190C6C(struct Sprite *sprite) if (gTasks[taskId1].data[3] == 1) { - if (gUnknown_0203CD78->unk_10 != 0) + if (sBattleDomeStruct->unk_10 != 0) { if (gTasks[taskId1].data[0] == 2) sprite->invisible = 1; @@ -2025,7 +2042,7 @@ void sub_8190C6C(struct Sprite *sprite) } else { - if (gUnknown_0203CD78->unk_10 != 1) + if (sBattleDomeStruct->unk_10 != 1) { if (gTasks[taskId1].data[0] == 2) sprite->invisible = 1; @@ -2037,7 +2054,7 @@ void sub_8190C6C(struct Sprite *sprite) } } -void sub_8190CD4(u8 taskId) +static void sub_8190CD4(u8 taskId) { s32 i; s32 windowId = 0; @@ -2108,7 +2125,7 @@ void sub_8190CD4(u8 taskId) if (i == 1) { - if (gUnknown_0203CD78->unk_10 == 0) + if (sBattleDomeStruct->unk_10 == 0) { gBattle_BG2_X = 0; gBattle_BG2_Y = 320; @@ -2121,27 +2138,27 @@ void sub_8190CD4(u8 taskId) gBattle_BG2_Y = 0; trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); - gUnknown_0203CD78->unk_10 = 0; + sBattleDomeStruct->unk_10 = 0; } } else { - if (gUnknown_0203CD78->unk_10 == 0) + if (sBattleDomeStruct->unk_10 == 0) { matchNo = gTasks[taskId2].data[1] - 16; - sub_8192F08(matchNo, gUnknown_0203CD78->unk_11); + sub_8192F08(matchNo, sBattleDomeStruct->unk_11); gBattle_BG2_X = 0; gBattle_BG2_Y = 320; - trainerTournamentId = gUnknown_0203CD78->unk_11[0]; + trainerTournamentId = sBattleDomeStruct->unk_11[0]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); } - else if (gUnknown_0203CD78->unk_10 == 2) + else if (sBattleDomeStruct->unk_10 == 2) { matchNo = gTasks[taskId2].data[1] - 16; - sub_8192F08(matchNo, gUnknown_0203CD78->unk_11); + sub_8192F08(matchNo, sBattleDomeStruct->unk_11); gBattle_BG2_X = 0; gBattle_BG2_Y = 320; - trainerTournamentId = gUnknown_0203CD78->unk_11[1]; + trainerTournamentId = sBattleDomeStruct->unk_11[1]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); } else @@ -2157,23 +2174,23 @@ void sub_8190CD4(u8 taskId) { if (i < 2) { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollUp; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; - gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollUp; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; } } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollUp; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollUp; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; } } } @@ -2181,23 +2198,23 @@ void sub_8190CD4(u8 taskId) { if (i < 10) { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollUp; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; - gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollUp; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; } } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollUp; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollUp; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; } } } @@ -2224,7 +2241,7 @@ void sub_8190CD4(u8 taskId) if (i == 2) { - if (gUnknown_0203CD78->unk_10 == 0) + if (sBattleDomeStruct->unk_10 == 0) { gBattle_BG2_X = 0; gBattle_BG2_Y = 160; @@ -2237,27 +2254,27 @@ void sub_8190CD4(u8 taskId) gBattle_BG2_Y = 0; trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); - gUnknown_0203CD78->unk_10 = 0; + sBattleDomeStruct->unk_10 = 0; } } else { - if (gUnknown_0203CD78->unk_10 == 0) + if (sBattleDomeStruct->unk_10 == 0) { matchNo = gTasks[taskId2].data[1] - 16; - sub_8192F08(matchNo, gUnknown_0203CD78->unk_11); + sub_8192F08(matchNo, sBattleDomeStruct->unk_11); gBattle_BG2_X = 0; gBattle_BG2_Y = 160; - trainerTournamentId = gUnknown_0203CD78->unk_11[0]; + trainerTournamentId = sBattleDomeStruct->unk_11[0]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); } - else if (gUnknown_0203CD78->unk_10 == 2) + else if (sBattleDomeStruct->unk_10 == 2) { matchNo = gTasks[taskId2].data[1] - 16; - sub_8192F08(matchNo, gUnknown_0203CD78->unk_11); + sub_8192F08(matchNo, sBattleDomeStruct->unk_11); gBattle_BG2_X = 0; gBattle_BG2_Y = 160; - trainerTournamentId = gUnknown_0203CD78->unk_11[1]; + trainerTournamentId = sBattleDomeStruct->unk_11[1]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); } else @@ -2273,23 +2290,23 @@ void sub_8190CD4(u8 taskId) { if (i < 2) { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollDown; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; - gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollDown; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; } } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollDown; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollDown; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; } } } @@ -2297,23 +2314,23 @@ void sub_8190CD4(u8 taskId) { if (i < 10) { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollDown; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; - gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollDown; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; } } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollDown; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollDown; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; } } } @@ -2337,7 +2354,7 @@ void sub_8190CD4(u8 taskId) gBattle_BG1_Y = 0; } - if (gUnknown_0203CD78->unk_10 == 0) + if (sBattleDomeStruct->unk_10 == 0) { gBattle_BG2_X = 256; gBattle_BG2_Y = 160; @@ -2348,7 +2365,7 @@ void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 256; gBattle_BG2_Y = 0; - matchNo = gUnknown_0860D15C[(gTasks[taskId2].data[1] * 4) + (gUnknown_0203CD78->unk_10 - 1)]; + matchNo = gUnknown_0860D15C[(gTasks[taskId2].data[1] * 4) + (sBattleDomeStruct->unk_10 - 1)]; DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); } @@ -2356,23 +2373,23 @@ void sub_8190CD4(u8 taskId) { if (i < 2) { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; - gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; } } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; } } } @@ -2380,23 +2397,23 @@ void sub_8190CD4(u8 taskId) { if (i < 10) { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; - gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; } } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; } } } @@ -2420,11 +2437,11 @@ void sub_8190CD4(u8 taskId) gBattle_BG1_Y = 0; } - if (gUnknown_0203CD78->unk_10 == 0) + if (sBattleDomeStruct->unk_10 == 0) { gBattle_BG2_X = 256; gBattle_BG2_Y = 160; - trainerTournamentId = gUnknown_0203CD78->unk_11[0]; + trainerTournamentId = sBattleDomeStruct->unk_11[0]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId); } else @@ -2439,23 +2456,23 @@ void sub_8190CD4(u8 taskId) { if (i < 2) { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; - gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; } } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; } } } @@ -2463,23 +2480,23 @@ void sub_8190CD4(u8 taskId) { if (i < 10) { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; - gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; } } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; } } } @@ -2503,7 +2520,7 @@ void sub_8190CD4(u8 taskId) gBattle_BG1_Y = 0; } - if (gUnknown_0203CD78->unk_10 == 1) + if (sBattleDomeStruct->unk_10 == 1) { gBattle_BG2_X = 0; gBattle_BG2_Y = 160; @@ -2513,30 +2530,30 @@ void sub_8190CD4(u8 taskId) gBattle_BG2_X = 0; gBattle_BG2_Y = 0; } - matchNo = gUnknown_0860D15C[(gUnknown_0203CD78->unk_10 - 1) + (gTasks[taskId2].data[1] * 4)]; + matchNo = gUnknown_0860D15C[(sBattleDomeStruct->unk_10 - 1) + (gTasks[taskId2].data[1] * 4)]; DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo); for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) { if (i < 2) { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; - gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; } } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollRight; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; } } } @@ -2544,23 +2561,23 @@ void sub_8190CD4(u8 taskId) { if (i < 10) { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; - gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; } } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollRight; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; } } } @@ -2584,11 +2601,11 @@ void sub_8190CD4(u8 taskId) gBattle_BG1_Y = 0; } - if (gUnknown_0203CD78->unk_10 == 2) + if (sBattleDomeStruct->unk_10 == 2) { gBattle_BG2_X = 256; gBattle_BG2_Y = 160; - trainerTournamentId = gUnknown_0203CD78->unk_11[1]; + trainerTournamentId = sBattleDomeStruct->unk_11[1]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 2, trainerTournamentId); } else @@ -2603,23 +2620,23 @@ void sub_8190CD4(u8 taskId) { if (i < 2) { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; - gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; } } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollRight; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; } } } @@ -2627,23 +2644,23 @@ void sub_8190CD4(u8 taskId) { if (i < 10) { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; - gSprites[gUnknown_0203CD78->arr[i]].data[3] = gUnknown_0203CD78->arr[i]; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; } } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) + if (sBattleDomeStruct->arr[i] != 0xFF) { - gSprites[gUnknown_0203CD78->arr[i]].callback = SpriteCb_MonIconCardScrollRight; - gSprites[gUnknown_0203CD78->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[gUnknown_0203CD78->arr[i]].data[1] = 0; - gSprites[gUnknown_0203CD78->arr[i]].data[2] = i; + gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight; + gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; + gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; + gSprites[sBattleDomeStruct->arr[i]].data[2] = i; } } } @@ -2708,31 +2725,31 @@ void sub_8190CD4(u8 taskId) { if (i < 2) { - if (gUnknown_0203CD78->arr[i] != 0xFF) - FreeAndDestroyTrainerPicSprite(gUnknown_0203CD78->arr[i]); + if (sBattleDomeStruct->arr[i] != 0xFF) + FreeAndDestroyTrainerPicSprite(sBattleDomeStruct->arr[i]); } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) - sub_80D2EF8(&gSprites[gUnknown_0203CD78->arr[i]]); + if (sBattleDomeStruct->arr[i] != 0xFF) + sub_80D2EF8(&gSprites[sBattleDomeStruct->arr[i]]); } } for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { if (i < 10) { - if (gUnknown_0203CD78->arr[i] != 0xFF) - FreeAndDestroyTrainerPicSprite(gUnknown_0203CD78->arr[i]); + if (sBattleDomeStruct->arr[i] != 0xFF) + FreeAndDestroyTrainerPicSprite(sBattleDomeStruct->arr[i]); } else { - if (gUnknown_0203CD78->arr[i] != 0xFF) - sub_80D2EF8(&gSprites[gUnknown_0203CD78->arr[i]]); + if (sBattleDomeStruct->arr[i] != 0xFF) + sub_80D2EF8(&gSprites[sBattleDomeStruct->arr[i]]); } } FreeMonIconPalettes(); - FREE_AND_SET_NULL(gUnknown_0203CD78); + FREE_AND_SET_NULL(sBattleDomeStruct); FreeAllWindowBuffers(); if (r9 == 0) { @@ -2753,7 +2770,7 @@ void sub_8190CD4(u8 taskId) } } -u8 sub_819221C(u8 taskId) +static u8 sub_819221C(u8 taskId) { u8 retVal = 0; s32 taskId2 = gTasks[taskId].data[4]; @@ -2769,7 +2786,7 @@ u8 sub_819221C(u8 taskId) if (gTasks[taskId].data[3] == 1) { - if (gMain.newKeys & DPAD_UP && gUnknown_0203CD78->unk_10 == 0) + if (gMain.newKeys & DPAD_UP && sBattleDomeStruct->unk_10 == 0) { if (r5 == 0) r5 = 15; @@ -2777,7 +2794,7 @@ u8 sub_819221C(u8 taskId) r5--; retVal = 1; } - else if (gMain.newKeys & DPAD_DOWN && gUnknown_0203CD78->unk_10 == 0) + else if (gMain.newKeys & DPAD_DOWN && sBattleDomeStruct->unk_10 == 0) { if (r5 == 15) r5 = 0; @@ -2785,36 +2802,36 @@ u8 sub_819221C(u8 taskId) r5++; retVal = 2; } - else if (gMain.newKeys & DPAD_LEFT && gUnknown_0203CD78->unk_10 != 0) + else if (gMain.newKeys & DPAD_LEFT && sBattleDomeStruct->unk_10 != 0) { - gUnknown_0203CD78->unk_10--; + sBattleDomeStruct->unk_10--; retVal = 3; } else if (gMain.newKeys & DPAD_RIGHT) { - if (gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && gUnknown_0203CD78->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].eliminatedAt) + if (gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].eliminatedAt) { - gUnknown_0203CD78->unk_10++; + sBattleDomeStruct->unk_10++; retVal = 4; } - if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && gUnknown_0203CD78->unk_10 - 1 < roundId) + if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < roundId) { - gUnknown_0203CD78->unk_10++; + sBattleDomeStruct->unk_10++; retVal = 4; } } if (retVal == 9) { - if (gUnknown_0203CD78->unk_10 != 0) - gTasks[taskId2].data[1] = gUnknown_0860D1A0[r5 / 2][gUnknown_0203CD78->unk_10 - 1]; + if (sBattleDomeStruct->unk_10 != 0) + gTasks[taskId2].data[1] = gUnknown_0860D1A0[r5 / 2][sBattleDomeStruct->unk_10 - 1]; else gTasks[taskId2].data[1] = r5; } } else { - if (gMain.newKeys & DPAD_UP && gUnknown_0203CD78->unk_10 == 1) + if (gMain.newKeys & DPAD_UP && sBattleDomeStruct->unk_10 == 1) { if (r5 == 16) r5 = gUnknown_0860D19C[roundId]; @@ -2822,7 +2839,7 @@ u8 sub_819221C(u8 taskId) r5--; retVal = 5; } - else if (gMain.newKeys & DPAD_DOWN && gUnknown_0203CD78->unk_10 == 1) + else if (gMain.newKeys & DPAD_DOWN && sBattleDomeStruct->unk_10 == 1) { if (r5 == gUnknown_0860D19C[roundId]) r5 = 16; @@ -2830,23 +2847,23 @@ u8 sub_819221C(u8 taskId) r5++; retVal = 6; } - else if (gMain.newKeys & DPAD_LEFT && gUnknown_0203CD78->unk_10 != 0) + else if (gMain.newKeys & DPAD_LEFT && sBattleDomeStruct->unk_10 != 0) { retVal = 7; - gUnknown_0203CD78->unk_10--; + sBattleDomeStruct->unk_10--; } - else if (gMain.newKeys & DPAD_RIGHT && (gUnknown_0203CD78->unk_10 == 0 || gUnknown_0203CD78->unk_10 == 1)) + else if (gMain.newKeys & DPAD_RIGHT && (sBattleDomeStruct->unk_10 == 0 || sBattleDomeStruct->unk_10 == 1)) { retVal = 8; - gUnknown_0203CD78->unk_10++; + sBattleDomeStruct->unk_10++; } if (retVal == 9) { - if (gUnknown_0203CD78->unk_10 == 0) - gTasks[taskId2].data[1] = gUnknown_0860D1C0[gUnknown_0203CD78->unk_11[0]]; - else if (gUnknown_0203CD78->unk_10 == 2) - gTasks[taskId2].data[1] = gUnknown_0860D1C0[gUnknown_0203CD78->unk_11[1]]; + if (sBattleDomeStruct->unk_10 == 0) + gTasks[taskId2].data[1] = gUnknown_0860D1C0[sBattleDomeStruct->unk_11[0]]; + else if (sBattleDomeStruct->unk_10 == 2) + gTasks[taskId2].data[1] = gUnknown_0860D1C0[sBattleDomeStruct->unk_11[1]]; else gTasks[taskId2].data[1] = r5; } @@ -2887,47 +2904,47 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) y = -160; if (trainerId == TRAINER_PLAYER) - gUnknown_0203CD78->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); else if (trainerId == TRAINER_FRONTIER_BRAIN) - gUnknown_0203CD78->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); else - gUnknown_0203CD78->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); if (flags & 0x1E) - gSprites[gUnknown_0203CD78->arr[arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[arrId]].invisible = 1; for (i = 0; i < 3; i++) { if (trainerId == TRAINER_PLAYER) { - gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], + sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], SpriteCb_MonIcon, x | gUnknown_0860D340[i], y + gUnknown_0860D343[i], 0, 0, TRUE); - gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.priority = 0; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; } else if (trainerId == TRAINER_FRONTIER_BRAIN) { - gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], + sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], SpriteCb_MonIcon, x | gUnknown_0860D340[i], y + gUnknown_0860D343[i], 0, 0, TRUE); - gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.priority = 0; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; } else { - gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species, + sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species, SpriteCb_MonIcon, x | gUnknown_0860D340[i], y + gUnknown_0860D343[i], 0, 0, TRUE); - gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.priority = 0; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; } if (flags & 0x1E) - gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = 1; } textPrinter.fontId = 2; textPrinter.x = 0; @@ -3019,11 +3036,11 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) for (k = 0; k < DOME_TOURNAMENT_TRAINERS_COUNT; k++) { if (trainerId == TRAINER_FRONTIER_BRAIN) - allocatedArray[k] += sMovePoints[sub_81A5060(i, j)][k]; + allocatedArray[k] += sMovePointsForDomeTrainers[sub_81A5060(i, j)][k]; else if (trainerId == TRAINER_PLAYER) - allocatedArray[k] += sMovePoints[gSaveBlock2Ptr->frontier.field_EFC[i].moves[j]][k]; + allocatedArray[k] += sMovePointsForDomeTrainers[gSaveBlock2Ptr->frontier.field_EFC[i].moves[j]][k]; else - allocatedArray[k] += sMovePoints[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].moves[j]][k]; + allocatedArray[k] += sMovePointsForDomeTrainers[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].moves[j]][k]; } } } @@ -3224,7 +3241,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) Free(allocatedArray); } -s32 sub_8192F08(u8 arg0, u8 *arg1) +static s32 sub_8192F08(u8 arg0, u8 *arg1) { s32 i; u8 tournamentId; @@ -3311,10 +3328,10 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) y = -160; // Copy trainers information to handy arrays. - winStringId = sub_8192F08(matchNo, gUnknown_0203CD78->unk_11); + winStringId = sub_8192F08(matchNo, sBattleDomeStruct->unk_11); for (i = 0; i < 2; i++) { - tournamentIds[i] = gUnknown_0203CD78->unk_11[i]; + tournamentIds[i] = sBattleDomeStruct->unk_11[i]; trainerIds[i] = gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].trainerId; if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].eliminatedAt <= gUnknown_0860D3C4[matchNo][2] && gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].isEliminated) @@ -3325,67 +3342,67 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) // Draw first trainer sprite. if (trainerIds[0] == TRAINER_PLAYER) - gUnknown_0203CD78->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); + sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN) - gUnknown_0203CD78->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); + sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); else - gUnknown_0203CD78->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[0]), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); + sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[0]), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); if (flags & 0x1E) - gSprites[gUnknown_0203CD78->arr[arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[arrId]].invisible = 1; if (lost[0]) - gSprites[gUnknown_0203CD78->arr[arrId]].oam.paletteNum = 3; + gSprites[sBattleDomeStruct->arr[arrId]].oam.paletteNum = 3; // Draw second trainer sprite. if (trainerIds[1] == TRAINER_PLAYER) - gUnknown_0203CD78->arr[1 + arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); + sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN) - gUnknown_0203CD78->arr[1 + arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); + sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); else - gUnknown_0203CD78->arr[1 + arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[1]), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); + sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[1]), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); if (flags & 0x1E) - gSprites[gUnknown_0203CD78->arr[1 + arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[1 + arrId]].invisible = 1; if (lost[1]) - gSprites[gUnknown_0203CD78->arr[1 + arrId]].oam.paletteNum = 3; + gSprites[sBattleDomeStruct->arr[1 + arrId]].oam.paletteNum = 3; // Draw first trainer's pokemon icons. for (i = 0; i < 3; i++) { if (trainerIds[0] == TRAINER_PLAYER) { - gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i], + sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i], SpriteCb_MonIcon, x | gUnknown_0860D3A8[i], y + gUnknown_0860D3AB[i], 0, 0, TRUE); - gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.priority = 0; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; } else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN) { - gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i], + sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i], SpriteCb_MonIcon, x | gUnknown_0860D3A8[i], y + gUnknown_0860D3AB[i], 0, 0, TRUE); - gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.priority = 0; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; } else { - gUnknown_0203CD78->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i]].species, + sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i]].species, SpriteCb_MonIcon, x | gUnknown_0860D3A8[i], y + gUnknown_0860D3AB[i], 0, 0, TRUE); - gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.priority = 0; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; } if (flags & 0x1E) - gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = 1; if (lost[0]) { - gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].oam.paletteNum = 3; - gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].sMonIconStill = TRUE; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.paletteNum = 3; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].sMonIconStill = TRUE; } } @@ -3394,38 +3411,38 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) { if (trainerIds[1] == TRAINER_PLAYER) { - gUnknown_0203CD78->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i], + sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i], SpriteCb_MonIcon, x | gUnknown_0860D3AE[i], y + gUnknown_0860D3B1[i], 0, 0, TRUE); - gSprites[gUnknown_0203CD78->arr[5 + i + arrId]].oam.priority = 0; + gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0; } else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN) { - gUnknown_0203CD78->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i], + sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i], SpriteCb_MonIcon, x | gUnknown_0860D3AE[i], y + gUnknown_0860D3B1[i], 0, 0, TRUE); - gSprites[gUnknown_0203CD78->arr[5 + i + arrId]].oam.priority = 0; + gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0; } else { - gUnknown_0203CD78->arr[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i]].species, + sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i]].species, SpriteCb_MonIcon, x | gUnknown_0860D3AE[i], y + gUnknown_0860D3B1[i], 0, 0, TRUE); - gSprites[gUnknown_0203CD78->arr[5 + i + arrId]].oam.priority = 0; + gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0; } if (flags & 0x1E) - gSprites[gUnknown_0203CD78->arr[5 + i + arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[5 + i + arrId]].invisible = 1; if (lost[1]) { - gSprites[gUnknown_0203CD78->arr[5 + i + arrId]].oam.paletteNum = 3; - gSprites[gUnknown_0203CD78->arr[5 + i + arrId]].sMonIconStill = TRUE; + gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.paletteNum = 3; + gSprites[sBattleDomeStruct->arr[5 + i + arrId]].sMonIconStill = TRUE; } } @@ -3510,7 +3527,7 @@ void sub_81938E0(void) u8 taskId; sub_8194D48(); - gSaveBlock2Ptr->frontier.chosenLvl = gSaveBlock2Ptr->frontier.field_D0A - 1; + gSaveBlock2Ptr->frontier.lvlMode = gSaveBlock2Ptr->frontier.field_D0A - 1; gSaveBlock2Ptr->frontier.field_CB2 = 3; taskId = CreateTask(sub_8194220, 0); gTasks[taskId].data[0] = 0; @@ -3564,7 +3581,7 @@ void sub_819395C(u8 taskId) { FreeAllWindowBuffers(); ScanlineEffect_Stop(); - FREE_AND_SET_NULL(gUnknown_0203CD7C); + FREE_AND_SET_NULL(sTilemapBuffer); newTaskId = CreateTask(sub_8190400, 0); gTasks[newTaskId].data[0] = 0; gTasks[newTaskId].data[1] = gUnknown_0860D080[spriteId]; @@ -3572,7 +3589,7 @@ void sub_819395C(u8 taskId) gTasks[newTaskId].data[3] = taskId; gTasks[taskId].data[0] = 4; - gUnknown_0203CD78->unk_10 = 0; + sBattleDomeStruct->unk_10 = 0; } break; case 4: @@ -3582,7 +3599,7 @@ void sub_819395C(u8 taskId) { FreeAllWindowBuffers(); ScanlineEffect_Stop(); - FREE_AND_SET_NULL(gUnknown_0203CD7C); + FREE_AND_SET_NULL(sTilemapBuffer); newTaskId = CreateTask(sub_8190400, 0); gTasks[newTaskId].data[0] = 0; gTasks[newTaskId].data[1] = spriteId - 16; @@ -3599,7 +3616,7 @@ void sub_819395C(u8 taskId) { FreeAllWindowBuffers(); ScanlineEffect_Stop(); - FREE_AND_SET_NULL(gUnknown_0203CD7C); + FREE_AND_SET_NULL(sTilemapBuffer); SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); DestroyTask(gTasks[taskId].data[7]); DestroyTask(taskId); @@ -3608,7 +3625,7 @@ void sub_819395C(u8 taskId) } } -u8 sub_8193BDC(u8 taskId) +static u8 sub_8193BDC(u8 taskId) { u8 retVal = 1; s32 arrId = 4; @@ -3691,7 +3708,7 @@ void sub_8193D7C(void) } } -u16 GetWinningMove(s32 winnerTournamentId, s32 loserTournamentId, u8 roundId) +static u16 GetWinningMove(s32 winnerTournamentId, s32 loserTournamentId, u8 roundId) { s32 i, j, k; s32 moveScores[4 * 3]; @@ -3804,15 +3821,7 @@ u16 GetWinningMove(s32 winnerTournamentId, s32 loserTournamentId, u8 roundId) return moveIds[j]; } -extern const struct BgTemplate gUnknown_0860CE74[4]; -extern const struct WindowTemplate gUnknown_0860CE94[]; -extern const u8 gUnknown_0860D411[][2]; -extern const struct SpriteTemplate gUnknown_0860CFA8; -extern const struct SpriteTemplate gUnknown_0860D008; -extern const struct SpriteTemplate gUnknown_0860CFD8; -extern const struct ScanlineEffectParams gUnknown_0860CF44; - -void sub_8194220(u8 taskId) +static void sub_8194220(u8 taskId) { s32 i; struct TextSubPrinter textPrinter; @@ -3857,9 +3866,9 @@ void sub_8194220(u8 taskId) gTasks[taskId].data[0]++; break; case 2: - gUnknown_0203CD7C = AllocZeroed(0x800); - LZDecompressWram(gUnknown_08D83900, gUnknown_0203CD7C); - SetBgTilemapBuffer(1, gUnknown_0203CD7C); + sTilemapBuffer = AllocZeroed(0x800); + LZDecompressWram(gUnknown_08D83900, sTilemapBuffer); + SetBgTilemapBuffer(1, sTilemapBuffer); CopyBgTilemapBufferToVram(1); DecompressAndLoadBgGfxUsingHeap(1, gUnknown_08D82F10, 0x2000, 0, 0); DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D834FC, 0x2000, 0, 0); @@ -3997,7 +4006,7 @@ void sub_8194220(u8 taskId) CopyWindowToVram(0, 3); CopyWindowToVram(1, 3); CopyWindowToVram(2, 3); - SetHBlankCallback(sub_8194BEC); + SetHBlankCallback(HblankCb_BattleDome); SetVBlankCallback(VblankCb1_BattleDome); if (r4 == 2) { @@ -4037,20 +4046,10 @@ void sub_8194220(u8 taskId) } } -struct UnkStruct_860DD10 -{ - u8 x; - u8 y; - u16 src; -}; - -extern struct UnkStruct_860DD10 *gUnknown_0860DD10[][4]; -extern const u8 gUnknown_0860DE10[][4]; - -void sub_81948EC(u8 tournamentId, u8 arg1) +static void sub_81948EC(u8 tournamentId, u8 arg1) { s32 i; - struct UnkStruct_860DD10 *structPtr = gUnknown_0860DD10[tournamentId][arg1]; + const struct UnkStruct_860DD10 *structPtr = gUnknown_0860DD10[tournamentId][arg1]; for (i = 0; i < gUnknown_0860DE10[tournamentId][arg1]; i++) CopyToBgTilemapBufferRect_ChangePalette(1, &structPtr[i].src, structPtr[i].x, structPtr[i].y, 1, 1, 0x11); @@ -4058,7 +4057,7 @@ void sub_81948EC(u8 tournamentId, u8 arg1) CopyBgTilemapBufferToVram(1); } -void sub_8194950(u8 taskId) +static void sub_8194950(u8 taskId) { s32 i; struct TextSubPrinter textPrinter; @@ -4157,7 +4156,7 @@ static void VblankCb0_BattleDome(void) *(vu32*)(REG_ADDR_WIN0H) = ((win0H << 16) | (win1H)); \ } -void sub_8194BEC(void) +static void HblankCb_BattleDome(void) { register u32 vCount asm("r0") = REG_VCOUNT; register u32 vCount_ asm("r1") = vCount; @@ -4319,8 +4318,8 @@ void sub_8194F58(void) statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); statValues = AllocZeroed(sizeof(s32) * 6); - lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; - gSaveBlock2Ptr->frontier.chosenLvl = 0; + lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + gSaveBlock2Ptr->frontier.lvlMode = 0; // This one, I'd like to call a 'C fakematching'. { u8 one; @@ -4428,7 +4427,7 @@ void sub_8194F58(void) for (i = 0; i < 4; i++) DecideRoundWinners(i); - gSaveBlock2Ptr->frontier.chosenLvl = lvlMode; + gSaveBlock2Ptr->frontier.lvlMode = lvlMode; } static s32 TrainerIdToTournamentId(u16 trainerId) @@ -4458,7 +4457,7 @@ s32 TrainerIdToDomeTournamentId(u16 trainerId) return i; } -u8 sub_81953E8(u8 tournamentId, u8 arg1) +static u8 sub_81953E8(u8 tournamentId, u8 arg1) { u8 arr[2]; sub_8192F08(gUnknown_0860D1A0[gUnknown_0860D1C0[tournamentId] / 2][arg1] - 16, arr); @@ -4468,7 +4467,7 @@ u8 sub_81953E8(u8 tournamentId, u8 arg1) return arr[0]; } -void DecideRoundWinners(u8 roundId) +static void DecideRoundWinners(u8 roundId) { s32 i; s32 moveSlot, monId1, monId2; @@ -4578,7 +4577,7 @@ void DecideRoundWinners(u8 roundId) } } -void CopyDomeTrainerName(u8 *dst, u16 trainerId) +static void CopyDomeTrainerName(u8 *dst, u16 trainerId) { s32 i = 0; GetFrontierEnemyMonLevel(); // Unused return value. @@ -4603,17 +4602,17 @@ void CopyDomeTrainerName(u8 *dst, u16 trainerId) } } -u8 GetDomeBrainTrainerPicId(void) +static u8 GetDomeBrainTrainerPicId(void) { return gTrainers[TRAINER_TUCKER].trainerPic; } -u8 GetDomeBrainTrainerClass(void) +static u8 GetDomeBrainTrainerClass(void) { return gTrainers[TRAINER_TUCKER].trainerClass; } -void CopyDomeBrainTrainerName(u8 *dst) +static void CopyDomeBrainTrainerName(u8 *dst) { s32 i; diff --git a/src/battle_setup.c b/src/battle_setup.c index 2955a33fcc..17ab20ccd6 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -33,6 +33,7 @@ #include "field_weather.h" #include "gym_leader_rematch.h" #include "constants/map_types.h" +#include "constants/battle_frontier.h" enum { @@ -863,7 +864,7 @@ u8 sub_80B100C(s32 arg0) return sUnknown_0854FEA7[Random() % ARRAY_COUNT(sUnknown_0854FEA7)]; } - if (VarGet(VAR_0x40CE) != 3) + if (VarGet(VAR_FRONTIER_BATTLE_MODE) != FRONTIER_MODE_LINK_MULTIS) return sUnknown_0854FE98[Random() % ARRAY_COUNT(sUnknown_0854FE98)]; } else @@ -880,7 +881,7 @@ u8 sub_80B100C(s32 arg0) return sUnknown_0854FEA7[Random() % ARRAY_COUNT(sUnknown_0854FEA7)]; } - if (VarGet(VAR_0x40CE) != 3) + if (VarGet(VAR_FRONTIER_BATTLE_MODE) != FRONTIER_MODE_LINK_MULTIS) return sUnknown_0854FE98[Random() % ARRAY_COUNT(sUnknown_0854FE98)]; } diff --git a/src/bg.c b/src/bg.c index 2f4cdc8564..7c55410b10 100644 --- a/src/bg.c +++ b/src/bg.c @@ -1001,7 +1001,7 @@ void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 wi } } -void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette) +void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette) { CopyRectToBgTilemapBufferRect(bg, src, 0, 0, rectWidth, rectHeight, destX, destY, rectWidth, rectHeight, palette, 0, 0); } diff --git a/src/field_specials.c b/src/field_specials.c index e20ccf618c..f5728c3a40 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -52,6 +52,7 @@ #include "constants/species.h" #include "constants/moves.h" #include "constants/vars.h" +#include "constants/battle_frontier.h" EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE; EWRAM_DATA u8 gBikeCollisions = 0; @@ -1667,7 +1668,7 @@ bool8 InMultiBattleRoom(void) { if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM) && - VarGet(VAR_0x40CE) == 2) + VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_MULTIS) return TRUE; return FALSE; } @@ -2240,10 +2241,10 @@ void sub_813A080(void) }; u8 i; - u16 var = VarGet(VAR_0x40CE); - u8 chosenLevel = gSaveBlock2Ptr->frontier.chosenLvl; + u16 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - if (var == 2 && !FlagGet(FLAG_0x152)) + if (battleMode == 2 && !FlagGet(FLAG_0x152)) { gSpecialVar_0x8005 = 5; gSpecialVar_0x8006 = 4; @@ -2252,7 +2253,7 @@ void sub_813A080(void) for (i = 0; i < 9; i++) { - if (gUnknown_085B2CDC[i] > gSaveBlock2Ptr->frontier.field_CE0[var][chosenLevel]) + if (gUnknown_085B2CDC[i] > gSaveBlock2Ptr->frontier.field_CE0[battleMode][lvlMode]) { gSpecialVar_0x8005 = 4; gSpecialVar_0x8006 = i + 5; @@ -3036,13 +3037,13 @@ void sub_813A878(u8 a0) { static const u16 gUnknown_085B3104[] = {0x0000, 0x0001, 0x0002, 0x0100, 0x0101, 0x0400, 0x0401, 0x0200, 0x0201, 0x0300, 0x0500, 0x0600}; - u16 var1 = VarGet(VAR_0x40CE); + u16 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); u16 var2 = VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F); - u16 var3 = VarGet(VAR_FRONTIER_FACILITY); + u16 frontierFacilityId = VarGet(VAR_FRONTIER_FACILITY); if (VarGet(VAR_FRONTIER_GAMBLER_PLACED_BET_F) == 1) { - if (gUnknown_085B3104[var2] == (var3 << 8) + var1) + if (gUnknown_085B3104[var2] == (frontierFacilityId << 8) + battleMode) { if (a0 != 0) { diff --git a/src/item.c b/src/item.c index c94f29910f..22894bbfff 100644 --- a/src/item.c +++ b/src/item.c @@ -845,8 +845,8 @@ u16 CountTotalItemQuantityInBag(u16 itemId) static bool8 CheckPyramidBagHasItem(u16 itemId, u16 count) { u8 i; - u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.chosenLvl]; - u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.chosenLvl]; + u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; + u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode]; for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++) { @@ -867,8 +867,8 @@ static bool8 CheckPyramidBagHasItem(u16 itemId, u16 count) static bool8 CheckPyramidBagHasSpace(u16 itemId, u16 count) { u8 i; - u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.chosenLvl]; - u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.chosenLvl]; + u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; + u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode]; for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++) { @@ -890,8 +890,8 @@ bool8 AddPyramidBagItem(u16 itemId, u16 count) { u16 i; - u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.chosenLvl]; - u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.chosenLvl]; + u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; + u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode]; u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); @@ -963,8 +963,8 @@ bool8 RemovePyramidBagItem(u16 itemId, u16 count) { u16 i; - u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.chosenLvl]; - u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.chosenLvl]; + u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; + u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode]; i = gUnknown_0203CF30[3] + gUnknown_0203CF30[4]; if (items[i] == itemId && quantities[i] >= count) diff --git a/src/pokemon.c b/src/pokemon.c index 7dedc917f7..5157853c17 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -13,6 +13,7 @@ #include "constants/hold_effects.h" #include "constants/battle_move_effects.h" #include "constants/songs.h" +#include "constants/battle_frontier.h" #include "string_util.h" #include "text.h" #include "link.h" @@ -1575,8 +1576,8 @@ void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lv u8 language; u8 value; - if (gSaveBlock2Ptr->frontier.chosenLvl != 0) - level = BattleFrontierGetOpponentLvl(gSaveBlock2Ptr->frontier.chosenLvl); + if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50) + level = BattleFrontierGetOpponentLvl(gSaveBlock2Ptr->frontier.lvlMode); else if (lvl50) level = 50; else diff --git a/src/recorded_battle.c b/src/recorded_battle.c index 45b07ca7a7..e19f3047f7 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -1293,7 +1293,7 @@ static bool32 AllocTryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst) static void CB2_RecordedBattleEnd(void) { - gSaveBlock2Ptr->frontier.chosenLvl = sUnknown_0203C7AD; + gSaveBlock2Ptr->frontier.lvlMode = sUnknown_0203C7AD; gBattleOutcome = 0; gBattleTypeFlags = 0; gTrainerBattleOpponent_A = 0; @@ -1353,7 +1353,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src) gTrainerBattleOpponent_B = src->opponentB; gPartnerTrainerId = src->partnerId; gUnknown_0203C7B4 = src->field_4FA; - sUnknown_0203C7AD = gSaveBlock2Ptr->frontier.chosenLvl; + sUnknown_0203C7AD = gSaveBlock2Ptr->frontier.lvlMode; sFrontierFacility = src->field_4FD; sUnknown_0203C7AF = src->field_4FE; sBattleStyle = src->battleStyle; @@ -1375,7 +1375,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src) sUnknown_0203CCDC[i] = src->field_50E[i]; } - gSaveBlock2Ptr->frontier.chosenLvl = src->field_4FC; + gSaveBlock2Ptr->frontier.lvlMode = src->field_4FC; for (i = 0; i < MAX_BATTLERS_COUNT; i++) { diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 55e3fe32b2..993dc0f4f3 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -18,6 +18,7 @@ #include "constants/maps.h" #include "constants/species.h" #include "constants/rgb.h" +#include "constants/battle_frontier.h" #include "trade.h" #include "trainer_card.h" #include "overworld.h" @@ -468,7 +469,7 @@ void sub_8012780(u8 taskId) switch (data->state) { case 0: - if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.chosenLvl == 1) + if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN) gSpecialVar_0x8004++; gUnknown_02022C2C = gUnknown_082F00C4[gSpecialVar_0x8004]; gUnknown_02022C2D = gUnknown_082F00C4[gSpecialVar_0x8004] >> 8; @@ -1050,7 +1051,7 @@ void sub_80134E8(u8 taskId) switch (data->state) { case 0: - if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.chosenLvl == 1) + if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN) gSpecialVar_0x8004++; gUnknown_02022C2C = gUnknown_082F0530[gSpecialVar_0x8004]; sub_8010F84(gUnknown_02022C2C, 0, 0); diff --git a/sym_ewram.txt b/sym_ewram.txt index c0c8e8a2f8..e153fd2719 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -634,18 +634,7 @@ gFacilityTrainerMons: @ 203BC8C .include "src/recorded_battle.o" .include "src/trainer_pokemon_sprites.o" .include "src/lilycove_lady.o" - -gUnknown_0203CD70: @ 203CD70 - .space 0x4 - -gUnknown_0203CD74: @ 203CD74 - .space 0x4 - -gUnknown_0203CD78: @ 203CD78 - .space 0x4 - -gUnknown_0203CD7C: @ 203CD7C - .space 0x4 + .include "src/battle_dome.o" gUnknown_0203CD80: @ 203CD80 .space 0x8 From 0d8c5b613eda48e48d25615e710c34388072858c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Aug 2018 20:14:10 +0200 Subject: [PATCH 134/174] make battle dome compile --- src/field_message_box.c | 10 ++++++---- src/match_call.c | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/field_message_box.c b/src/field_message_box.c index 8ca291e334..7ed87e837f 100755 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -4,7 +4,9 @@ #include "string_util.h" #include "task.h" #include "text.h" -#include "battle_frontier_1.h" + +extern bool32 sub_8196094(void); +extern void sub_8196080(u8*); EWRAM_DATA u8 gUnknown_020375BC = 0; @@ -23,7 +25,7 @@ void sub_8098128(void) void sub_8098154(u8 taskId) { struct Task *task = &gTasks[taskId]; - + switch (task->data[0]) { case 0: @@ -61,12 +63,12 @@ bool8 ShowFieldMessage(u8 *str) return FALSE; textbox_fdecode_auto_and_task_add(str, 1); gUnknown_020375BC = 2; - return TRUE; + return TRUE; } void sub_8098214(u8 taskId) { - if (sub_8196094() == 0) + if (!sub_8196094()) { gUnknown_020375BC = 0; DestroyTask(taskId); diff --git a/src/match_call.c b/src/match_call.c index 99eb6d65a3..2879881bfb 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -5,9 +5,9 @@ #include "event_data.h" #include "string_util.h" #include "battle.h" -#include "battle_frontier_1.h" #include "gym_leader_rematch.h" +extern void sub_8197080(u8 *dest); extern const u8 gTrainerClassNames[][13]; // Static type declarations From 2b7c138cbe165cdfa0ad8f7044efc439d9888cd2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Aug 2018 21:04:12 +0200 Subject: [PATCH 135/174] Some labels --- asm/macros/battle_script.inc | 300 ++++++++++----------- data/battle_scripts_1.s | 12 +- include/battle_scripts.h | 2 +- include/constants/battle_script_commands.h | 2 + src/battle_controller_opponent.c | 18 +- src/battle_main.c | 4 +- src/battle_script_commands.c | 4 +- 7 files changed, 172 insertions(+), 170 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index c03d78df75..34d529cc7e 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -45,14 +45,14 @@ .byte 0xa .endm - .macro healthbarupdate bank + .macro healthbarupdate battler .byte 0xb - .byte \bank + .byte \battler .endm - .macro datahpupdate bank + .macro datahpupdate battler .byte 0xc - .byte \bank + .byte \battler .endm .macro critmessage @@ -104,38 +104,38 @@ .byte 0x17 .endm - .macro clearstatusfromeffect bank + .macro clearstatusfromeffect battler .byte 0x18 - .byte \bank + .byte \battler .endm - .macro tryfaintmon bank, param1, param2 + .macro tryfaintmon battler, param1, param2 .byte 0x19 - .byte \bank + .byte \battler .byte \param1 .4byte \param2 .endm - .macro dofaintanimation bank + .macro dofaintanimation battler .byte 0x1a - .byte \bank + .byte \battler .endm - .macro cleareffectsonfaint bank + .macro cleareffectsonfaint battler .byte 0x1b - .byte \bank + .byte \battler .endm - .macro jumpifstatus bank, status1, param2 + .macro jumpifstatus battler, status1, param2 .byte 0x1c - .byte \bank + .byte \battler .4byte \status1 .4byte \param2 .endm - .macro jumpifstatus2 bank, status2, param2 + .macro jumpifstatus2 battler, status2, param2 .byte 0x1d - .byte \bank + .byte \battler .4byte \status2 .4byte \param2 .endm @@ -147,40 +147,40 @@ .4byte \param2 .endm - .macro jumpifsideaffecting bank, sidestatus, param2 + .macro jumpifsideaffecting battler, sidestatus, param2 .byte 0x1f - .byte \bank + .byte \battler .2byte \sidestatus .4byte \param2 .endm - .macro jumpifstat bank, ifflag, stat, param3, param4 + .macro jumpifstat battler, ifflag, stat, param3, param4 .byte 0x20 - .byte \bank + .byte \battler .byte \ifflag .byte \stat .byte \param3 .4byte \param4 .endm - .macro jumpifstatus3condition bank, status3, param2, param3 + .macro jumpifstatus3condition battler, status3, param2, param3 .byte 0x21 - .byte \bank + .byte \battler .4byte \status3 .byte \param2 .4byte \param3 .endm - .macro jumpiftype bank, type, param2 + .macro jumpiftype battler, type, param2 .byte 0x22 - .byte \bank + .byte \battler .byte \type .4byte \param2 .endm - .macro getexp bank + .macro getexp battler .byte 0x23 - .byte \bank + .byte \battler .endm .macro atk24 param0 @@ -325,9 +325,9 @@ .byte 0x3a .endm - .macro healthbar_update bank + .macro healthbar_update battler .byte 0x3b - .byte \bank + .byte \battler .endm .macro return @@ -356,9 +356,9 @@ .4byte \param0 .endm - .macro jumpiftype2 bank, type, param2 + .macro jumpiftype2 battler, type, param2 .byte 0x42 - .byte \bank + .byte \battler .byte \type .4byte \param2 .endm @@ -373,16 +373,16 @@ .byte 0x44 .endm - .macro playanimation bank, param1, param2 + .macro playanimation battler, param1, param2 .byte 0x45 - .byte \bank + .byte \battler .byte \param1 .4byte \param2 .endm - .macro playanimation2 bank, param1, param2 + .macro playanimation2 battler, param1, param2 .byte 0x46 - .byte \bank + .byte \battler .4byte \param1 .4byte \param2 .endm @@ -391,9 +391,9 @@ .byte 0x47 .endm - .macro playstatchangeanimation bank, param1, param2 + .macro playstatchangeanimation battler, param1, param2 .byte 0x48 - .byte \bank + .byte \battler .byte \param1 .byte \param2 .endm @@ -412,25 +412,25 @@ .byte 0x4b .endm - .macro getswitchedmondata bank + .macro getswitchedmondata battler .byte 0x4c - .byte \bank + .byte \battler .endm - .macro switchindataupdate bank + .macro switchindataupdate battler .byte 0x4d - .byte \bank + .byte \battler .endm - .macro switchinanim bank, dontclearsubstitutebit + .macro switchinanim battler, dontclearsubstitutebit .byte 0x4e - .byte \bank + .byte \battler .byte \dontclearsubstitutebit .endm - .macro jumpifcantswitch bank, param1 + .macro jumpifcantswitch battler, param1 .byte 0x4f - .byte \bank + .byte \battler .4byte \param1 .endm @@ -440,20 +440,20 @@ .4byte \param1 .endm - .macro switchhandleorder bank, param1 + .macro switchhandleorder battler, param1 .byte 0x51 - .byte \bank + .byte \battler .byte \param1 .endm - .macro switchineffects bank + .macro switchineffects battler .byte 0x52 - .byte \bank + .byte \battler .endm - .macro trainerslidein bank + .macro trainerslidein battler .byte 0x53 - .byte \bank + .byte \battler .endm .macro playse param0 @@ -466,18 +466,18 @@ .2byte \param0 .endm - .macro playfaintcry bank + .macro playfaintcry battler .byte 0x56 - .byte \bank + .byte \battler .endm .macro atk57 .byte 0x57 .endm - .macro returntoball bank + .macro returntoball battler .byte 0x58 - .byte \bank + .byte \battler .endm .macro handlelearnnewmove param0, param1, param2 @@ -497,18 +497,18 @@ .4byte \param0 .endm - .macro hitanimation bank + .macro hitanimation battler .byte 0x5c - .byte \bank + .byte \battler .endm .macro getmoneyreward .byte 0x5d .endm - .macro atk5E bank + .macro atk5E battler .byte 0x5e - .byte \bank + .byte \battler .endm .macro swapattackerwithtarget @@ -520,14 +520,14 @@ .byte \param0 .endm - .macro drawpartystatussummary bank + .macro drawpartystatussummary battler .byte 0x61 - .byte \bank + .byte \battler .endm - .macro hidepartystatussummary bank + .macro hidepartystatussummary battler .byte 0x62 - .byte \bank + .byte \battler .endm .macro jumptorandomattack param0 @@ -535,20 +535,20 @@ .byte \param0 .endm - .macro statusanimation bank + .macro statusanimation battler .byte 0x64 - .byte \bank + .byte \battler .endm - .macro status2animation bank, status2 + .macro status2animation battler, status2 .byte 0x65 - .byte \bank + .byte \battler .4byte \status2 .endm - .macro chosenstatusanimation bank, param1, param2 + .macro chosenstatusanimation battler, param1, param2 .byte 0x66 - .byte \bank + .byte \battler .byte \param1 .4byte \param2 .endm @@ -565,9 +565,9 @@ .byte 0x69 .endm - .macro removeitem bank + .macro removeitem battler .byte 0x6a - .byte \bank + .byte \battler .endm .macro atknameinbuff1 @@ -586,14 +586,14 @@ .byte 0x6e .endm - .macro makevisible bank + .macro makevisible battler .byte 0x6f - .byte \bank + .byte \battler .endm - .macro recordlastability bank + .macro recordlastability battler .byte 0x70 - .byte \bank + .byte \battler .endm .macro buffermovetolearn @@ -605,23 +605,23 @@ .4byte \param0 .endm - .macro hpthresholds bank + .macro hpthresholds battler .byte 0x73 - .byte \bank + .byte \battler .endm - .macro hpthresholds2 bank + .macro hpthresholds2 battler .byte 0x74 - .byte \bank + .byte \battler .endm .macro useitemonopponent .byte 0x75 .endm - .macro various bank, param1 + .macro various battler, param1 .byte 0x76 - .byte \bank + .byte \battler .byte \param1 .endm @@ -642,10 +642,10 @@ .4byte \param0 .endm - .macro tryhealhalfhealth param0, bank + .macro tryhealhalfhealth param0, battler .byte 0x7b .4byte \param0 - .byte \bank + .byte \battler .endm .macro trymirrormove @@ -773,9 +773,9 @@ .4byte \param0 .endm - .macro updatestatusicon bank + .macro updatestatusicon battler .byte 0x98 - .byte \bank + .byte \battler .endm .macro setmist @@ -1112,14 +1112,14 @@ .4byte \param0 .endm - .macro switchoutabilities bank + .macro switchoutabilities battler .byte 0xe2 - .byte \bank + .byte \battler .endm - .macro jumpifhasnohp bank, param1 + .macro jumpifhasnohp battler, param1 .byte 0xe3 - .byte \bank + .byte \battler .4byte \param1 .endm @@ -1215,112 +1215,112 @@ .endm @ various command changed to more readable macros - .macro cancelmultiturnmoves bank - various \bank, VARIOUS_CANCEL_MULTI_TURN_MOVES + .macro cancelmultiturnmoves battler + various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES .endm - .macro setmagiccoattarget bank - various \bank, VARIOUS_SET_MAGIC_COAT_TARGET + .macro setmagiccoattarget battler + various \battler, VARIOUS_SET_MAGIC_COAT_TARGET .endm - .macro getifcantrunfrombattle bank - various \bank, VARIOUS_IS_RUNNING_IMPOSSIBLE + .macro getifcantrunfrombattle battler + various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE .endm - .macro getmovetarget bank - various \bank, VARIOUS_GET_MOVE_TARGET + .macro getmovetarget battler + various \battler, VARIOUS_GET_MOVE_TARGET .endm - .macro various4 bank - various \bank, 4 + .macro various4 battler + various \battler, 4 .endm - .macro resetintrimidatetracebits bank - various \bank, VARIOUS_RESET_INTIMIDATE_TRACE_BITS + .macro resetintrimidatetracebits battler + various \battler, VARIOUS_RESET_INTIMIDATE_TRACE_BITS .endm - .macro updatechoicemoveonlvlup bank - various \bank, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP + .macro updatechoicemoveonlvlup battler + various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP .endm - .macro various7 bank - various \bank, 7 + .macro various7 battler + various \battler, 7 .endm - .macro various8 bank - various \bank, 8 + .macro various8 battler + various \battler, 8 .endm - .macro various9 bank - various \bank, 9 + .macro various9 battler + various \battler, 9 .endm - .macro various10 bank - various \bank, 10 + .macro various10 battler + various \battler, 10 .endm - .macro various11 bank - various \bank, 11 + .macro various11 battler + various \battler, 11 .endm - .macro various12 bank - various \bank, 12 + .macro various12 battler + various \battler, 12 .endm - .macro forfeityesnobox bank - various \bank, VARIOUS_EMIT_YESNOBOX + .macro forfeityesnobox battler + various \battler, VARIOUS_EMIT_YESNOBOX .endm - .macro various14 bank - various \bank, 14 + .macro various14 battler + various \battler, 14 .endm - .macro various15 bank - various \bank, 15 + .macro various15 battler + various \battler, 15 .endm - .macro various16 bank - various \bank, 16 + .macro various16 battler + various \battler, 16 .endm - .macro various17 bank - various \bank, 17 + .macro various17 battler + various \battler, 17 .endm - .macro waitcry bank - various \bank, VARIOUS_WAIT_CRY + .macro waitcry battler + various \battler, VARIOUS_WAIT_CRY .endm - .macro returnopponentmon1toball bank - various \bank, VARIOUS_RETURN_OPPONENT_MON1 + .macro returnopponentmon1toball battler + various \battler, VARIOUS_RETURN_OPPONENT_MON1 .endm - .macro returnopponentmon2toball bank - various \bank, VARIOUS_RETURN_OPPONENT_MON2 + .macro returnopponentmon2toball battler + various \battler, VARIOUS_RETURN_OPPONENT_MON2 .endm - .macro various21 bank - various \bank, 21 + .macro volumedown + various BS_ATTACKER, VARIOUS_VOLUME_DOWN .endm - .macro various22 bank - various \bank, 22 + .macro volumeup + various BS_ATTACKER, VARIOUS_VOLUME_UP .endm - .macro various23 bank - various \bank, 23 + .macro various23 battler + various \battler, 23 .endm - .macro various24 bank - various \bank, 24 + .macro various24 battler + various \battler, 24 .endm - .macro setoutcomeonteleport bank - various \bank, VARIOUS_SET_TELEPORT_OUTCOME + .macro setoutcomeonteleport battler + various \battler, VARIOUS_SET_TELEPORT_OUTCOME .endm - .macro playtrainerdefeatbgm bank - various \bank, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC + .macro playtrainerdefeatbgm battler + various \battler, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC .endm @ helpful macros @@ -1332,12 +1332,12 @@ setbyte cEFFECT_CHOOSER \effect .endm - .macro chosenstatus1animation bank, status - chosenstatusanimation \bank 0x0 \status + .macro chosenstatus1animation battler, status + chosenstatusanimation \battler 0x0 \status .endm - .macro chosenstatus2animation bank, status - chosenstatusanimation \bank 0x1 \status + .macro chosenstatus2animation battler, status + chosenstatusanimation \battler 0x1 \status .endm .macro sethword dst, value @@ -1380,12 +1380,12 @@ jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, \move, \jumpptr .endm - .macro jumpifstatus3 bank, status, jumpptr - jumpifstatus3condition \bank, \status, 0x0, \jumpptr + .macro jumpifstatus3 battler, status, jumpptr + jumpifstatus3condition \battler, \status, 0x0, \jumpptr .endm - .macro jumpifnostatus3 bank, status, jumpptr - jumpifstatus3condition \bank, \status, 0x1, \jumpptr + .macro jumpifnostatus3 battler, status, jumpptr + jumpifstatus3condition \battler, \status, 0x1, \jumpptr .endm .macro jumpifmovehadnoeffect jumpptr diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 959258ea0b..2125fc47ef 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -4481,18 +4481,18 @@ BattleScript_82DB89D:: setbyte gBattleCommunication + 1, 0x0 end2 -BattleScript_82DB8BE:: +BattleScript_ArenaTurnBeginning:: waitcry BS_ATTACKER - various21 BS_ATTACKER - playse 0x109 + volumedown + playse SE_HANTEI1 pause 0x8 - playse 0x109 + playse SE_HANTEI1 various14 BS_ATTACKER various16 8 various17 8 pause 0x40 various15 BS_ATTACKER - various22 BS_ATTACKER + volumeup end2 BattleScript_82DB8E0:: @@ -4509,7 +4509,7 @@ BattleScript_82DB8F3:: waitstate makevisible BS_OPPONENT1 waitstate - various21 BS_ATTACKER + volumedown playse 0x109 pause 0x8 playse 0x109 diff --git a/include/battle_scripts.h b/include/battle_scripts.h index ffd9996602..1197dfb6ef 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -256,7 +256,7 @@ extern const u8 BattleScript_82DB87D[]; extern const u8 BattleScript_82DB881[]; extern const u8 BattleScript_82DB887[]; extern const u8 BattleScript_82DB89D[]; -extern const u8 BattleScript_82DB8BE[]; +extern const u8 BattleScript_ArenaTurnBeginning[]; extern const u8 BattleScript_82DB8E0[]; extern const u8 BattleScript_82DB8F3[]; extern const u8 BattleScript_82DB973[]; diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 84ec9d5125..bd9d8e67d9 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -71,6 +71,8 @@ #define VARIOUS_WAIT_CRY 18 #define VARIOUS_RETURN_OPPONENT_MON1 19 #define VARIOUS_RETURN_OPPONENT_MON2 20 +#define VARIOUS_VOLUME_DOWN 21 +#define VARIOUS_VOLUME_UP 22 #define VARIOUS_SET_TELEPORT_OUTCOME 25 #define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26 diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 1eaa9da18f..6148587f86 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1606,22 +1606,22 @@ static void OpponentHandleChoosePokemon(void) { s32 chosenMonId; - if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) == 6) + if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) == PARTY_SIZE) { chosenMonId = GetMostSuitableMonToSwitchInto(); - if (chosenMonId == 6) + if (chosenMonId == PARTY_SIZE) { - s32 bank1, bank2, firstId, lastId; + s32 battler1, battler2, firstId, lastId; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - bank2 = bank1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + battler2 = battler1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); } else { - bank1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - bank2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + battler1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + battler2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) @@ -1639,8 +1639,8 @@ static void OpponentHandleChoosePokemon(void) for (chosenMonId = firstId; chosenMonId < lastId; chosenMonId++) { if (GetMonData(&gEnemyParty[chosenMonId], MON_DATA_HP) != 0 - && chosenMonId != gBattlerPartyIndexes[bank1] - && chosenMonId != gBattlerPartyIndexes[bank2]) + && chosenMonId != gBattlerPartyIndexes[battler1] + && chosenMonId != gBattlerPartyIndexes[battler2]) { break; } @@ -1650,7 +1650,7 @@ static void OpponentHandleChoosePokemon(void) else { chosenMonId = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler); - *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; + *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = PARTY_SIZE; } diff --git a/src/battle_main.c b/src/battle_main.c index 86937f85f6..9f9511c380 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3929,7 +3929,7 @@ static void TryDoEventsBeforeFirstTurn(void) if (gBattleTypeFlags & BATTLE_TYPE_ARENA) { StopCryAndClearCrySongs(); - BattleScriptExecute(BattleScript_82DB8BE); + BattleScriptExecute(BattleScript_ArenaTurnBeginning); } } @@ -4019,7 +4019,7 @@ void BattleTurnPassed(void) if (gBattleTypeFlags & BATTLE_TYPE_PALACE) BattleScriptExecute(BattleScript_82DB881); else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_DA == 0) - BattleScriptExecute(BattleScript_82DB8BE); + BattleScriptExecute(BattleScript_ArenaTurnBeginning); } u8 IsRunningFromBattleImpossible(void) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index b13727a126..12a66df801 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6750,10 +6750,10 @@ static void atk76_various(void) } } break; - case 21: + case VARIOUS_VOLUME_DOWN: m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x55); break; - case 22: + case VARIOUS_VOLUME_UP: m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); break; case 23: From 69c20f18ac2ce196205c84b463b361403f23ccdd Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 26 Aug 2018 13:40:36 +0100 Subject: [PATCH 136/174] Convert battle dome data to C --- data/battle_frontier_1.s | 1256 ------------------------- src/battle_dome.c | 1901 +++++++++++++++++++++++++++++++++++++- 2 files changed, 1858 insertions(+), 1299 deletions(-) diff --git a/data/battle_frontier_1.s b/data/battle_frontier_1.s index 3901d3b864..4074c360c8 100644 --- a/data/battle_frontier_1.s +++ b/data/battle_frontier_1.s @@ -5,1262 +5,6 @@ .section .rodata -gUnknown_0860C988:: @ 860C988 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00 - -gUnknown_0860CBF1:: @ 860CBF1 - .byte 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x00, 0x02, 0x09, 0x10, 0x00, 0x02, 0x09, 0x10, 0x00, 0x02, 0x09, 0x10 - .byte 0x00, 0x02, 0x09, 0x10, 0x00, 0x02, 0x09, 0x10, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x02, 0x04, 0x0b, 0x11 - .byte 0x02, 0x04, 0x0b, 0x11, 0x02, 0x04, 0x0b, 0x11, 0x02, 0x04, 0x0b, 0x11, 0x02, 0x04, 0x0b, 0x11, 0x03, 0x05, 0x0c, 0x12, 0x03, 0x05, 0x0c, 0x12, 0x03, 0x05, 0x0c, 0x12, 0x03, 0x05, 0x0c, 0x12 - .byte 0x03, 0x05, 0x0c, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x05, 0x07, 0x0e, 0x13, 0x05, 0x07, 0x0e, 0x13 - .byte 0x05, 0x07, 0x0e, 0x13, 0x05, 0x07, 0x0e, 0x13, 0x05, 0x07, 0x0e, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13 - .byte 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x08, 0x0a, 0x14, 0x01, 0x08, 0x0a, 0x14, 0x01, 0x08, 0x0a, 0x14, 0x01 - .byte 0x08, 0x0a, 0x14, 0x01, 0x08, 0x0a, 0x14, 0x01, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x0a, 0x0c, 0x15, 0x03 - .byte 0x0a, 0x0c, 0x15, 0x03, 0x0a, 0x0c, 0x15, 0x03, 0x0a, 0x0c, 0x15, 0x03, 0x0a, 0x0c, 0x15, 0x03, 0x0b, 0x0d, 0x16, 0x04, 0x0b, 0x0d, 0x16, 0x04, 0x0b, 0x0d, 0x16, 0x04, 0x0b, 0x0d, 0x16, 0x04 - .byte 0x0b, 0x0d, 0x16, 0x04, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0d, 0x0f, 0x17, 0x06, 0x0d, 0x0f, 0x17, 0x06 - .byte 0x0d, 0x0f, 0x17, 0x06, 0x0d, 0x0f, 0x17, 0x06, 0x0d, 0x0f, 0x17, 0x06, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07 - .byte 0x13, 0x11, 0x00, 0x14, 0x13, 0x11, 0x00, 0x18, 0x13, 0x11, 0x00, 0x18, 0x13, 0x11, 0x00, 0x18, 0x13, 0x11, 0x00, 0x18, 0x10, 0x12, 0x02, 0x15, 0x10, 0x12, 0x02, 0x18, 0x10, 0x12, 0x02, 0x18 - .byte 0x10, 0x12, 0x02, 0x18, 0x10, 0x12, 0x02, 0x18, 0x11, 0x13, 0x04, 0x16, 0x11, 0x13, 0x04, 0x19, 0x11, 0x13, 0x04, 0x19, 0x11, 0x13, 0x04, 0x19, 0x11, 0x13, 0x04, 0x19, 0x12, 0x10, 0x06, 0x17 - .byte 0x12, 0x10, 0x06, 0x19, 0x12, 0x10, 0x06, 0x19, 0x12, 0x10, 0x06, 0x19, 0x12, 0x10, 0x06, 0x19, 0x17, 0x15, 0x10, 0x08, 0x17, 0x15, 0x1a, 0x08, 0x17, 0x15, 0x1a, 0x08, 0x17, 0x15, 0x1a, 0x08 - .byte 0x17, 0x15, 0x1a, 0x08, 0x14, 0x16, 0x11, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x15, 0x17, 0x12, 0x0c, 0x15, 0x17, 0x1b, 0x0c - .byte 0x15, 0x17, 0x1b, 0x0c, 0x15, 0x17, 0x1b, 0x0c, 0x15, 0x17, 0x1b, 0x0c, 0x16, 0x14, 0x13, 0x0e, 0x16, 0x14, 0x1b, 0x0e, 0x16, 0x14, 0x1b, 0x0e, 0x16, 0x14, 0x1b, 0x0e, 0x16, 0x14, 0x1b, 0x0e - .byte 0xff, 0xff, 0xff, 0xff, 0x19, 0x19, 0x10, 0x1a, 0x19, 0x19, 0x10, 0x1c, 0x19, 0x19, 0x10, 0x1c, 0x19, 0x19, 0x10, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x18, 0x18, 0x12, 0x1b, 0x18, 0x18, 0x12, 0x1c - .byte 0x18, 0x18, 0x12, 0x1c, 0x18, 0x18, 0x12, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1b, 0x1b, 0x18, 0x14, 0x1b, 0x1b, 0x1d, 0x14, 0x1b, 0x1b, 0x1d, 0x14, 0x1b, 0x1b, 0x1d, 0x14, 0xff, 0xff, 0xff, 0xff - .byte 0x1a, 0x1a, 0x19, 0x16, 0x1a, 0x1a, 0x1d, 0x16, 0x1a, 0x1a, 0x1d, 0x16, 0x1a, 0x1a, 0x1d, 0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0x1d, 0xff, 0xff, 0x18, 0x1e - .byte 0xff, 0xff, 0x18, 0x1e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1a, 0xff, 0xff, 0x1e, 0x1a, 0xff, 0xff, 0x1e, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1d, 0xff, 0xff, 0x1c, 0x1d, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00 - .byte 0x00, 0x00, 0x00 - - .align 2 -gUnknown_0860CE74:: @ 860CE74 - .4byte 0x000001c0, 0x000011d5, 0x000021ea, 0x000021fb - - .align 2 -gUnknown_0860CE84:: @ 860CE84 - .4byte 0x00000740, 0x00000785, 0x000017ca, 0x0000107b - - .align 2 -gUnknown_0860CE94:: @ 860CE94 - window_template 0x00, 0x00, 0x03, 0x08, 0x10, 0x0f, 0x0010 - window_template 0x00, 0x16, 0x03, 0x08, 0x10, 0x0f, 0x0090 - window_template 0x00, 0x08, 0x01, 0x0e, 0x02, 0x0f, 0x0110 - null_window_template - - .align 2 -gUnknown_0860CEB4:: @ 860CEB4 - window_template 0x00, 0x02, 0x02, 0x1a, 0x02, 0x0f, 0x0001 - window_template 0x00, 0x10, 0x05, 0x08, 0x02, 0x0f, 0x0035 - window_template 0x00, 0x13, 0x07, 0x09, 0x03, 0x0f, 0x0045 - window_template 0x00, 0x10, 0x0a, 0x08, 0x02, 0x0f, 0x0060 - window_template 0x00, 0x02, 0x0c, 0x1a, 0x07, 0x0f, 0x0070 - window_template 0x00, 0x05, 0x02, 0x17, 0x02, 0x0f, 0x0126 - window_template 0x00, 0x02, 0x05, 0x08, 0x02, 0x0f, 0x0154 - window_template 0x00, 0x14, 0x05, 0x08, 0x02, 0x0f, 0x0164 - window_template 0x00, 0x02, 0x10, 0x1a, 0x02, 0x0f, 0x0174 - window_template 0x01, 0x02, 0x02, 0x1a, 0x02, 0x0f, 0x0001 - window_template 0x01, 0x10, 0x05, 0x08, 0x02, 0x0f, 0x0035 - window_template 0x01, 0x13, 0x07, 0x09, 0x03, 0x0f, 0x0045 - window_template 0x01, 0x10, 0x0a, 0x08, 0x02, 0x0f, 0x0060 - window_template 0x01, 0x02, 0x0c, 0x1a, 0x07, 0x0f, 0x0070 - window_template 0x01, 0x05, 0x02, 0x17, 0x02, 0x0f, 0x0126 - window_template 0x01, 0x02, 0x05, 0x08, 0x02, 0x0f, 0x0154 - window_template 0x01, 0x14, 0x05, 0x08, 0x02, 0x0f, 0x0164 - window_template 0x01, 0x02, 0x10, 0x1a, 0x02, 0x0f, 0x0174 - - .align 2 -gUnknown_0860CF44:: @ 860CF44 - .4byte 0x0400000e, 0xa2600001, 0x00000001 - - .align 2 -gUnknown_0860CF50:: @ 860CF50 - obj_tiles gBattleFrontierGfx_DomeOptions, 0x0600, 0x0000 - null_obj_tiles - - .align 2 -gUnknown_0860CF60:: @ 860CF60 - obj_pal gUnknown_08D85444, 0x0000 - null_obj_pal - - .align 2 -gUnknown_0860CF70:: @ 860CF70 - .byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_0860CF78:: @ 860CF78 - .byte 0x00, 0x40, 0x00, 0x80, 0x00, 0x10, 0x00, 0x00 - - .align 2 -gUnknown_0860CF80:: @ 860CF80 - .byte 0x00, 0x40, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00 - - .align 2 -gUnknown_0860CF88:: @ 860CF88 - .byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00 - - .align 2 -gUnknown_0860CF90:: @ 860CF90 - .2byte 0x0014, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_0860CF98:: @ 860CF98 - .2byte 0x0018, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_0860CFA0:: @ 860CFA0 - .4byte gUnknown_0860CF90 - .4byte gUnknown_0860CF98 - - .align 2 -gUnknown_0860CFA8:: @ 860CFA8 - spr_template 0x0000, 0xffff, gUnknown_0860CF70, gUnknown_0860CFA0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_0860CFC0:: @ 860CFC0 - .2byte 0x0008, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_0860CFC8:: @ 860CFC8 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_0860CFD0:: @ 860CFD0 - .4byte gUnknown_0860CFC0 - .4byte gUnknown_0860CFC8 - - .align 2 -gUnknown_0860CFD8:: @ 860CFD8 - spr_template 0x0000, 0xffff, gUnknown_0860CF78, gUnknown_0860CFD0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_0860CFF0:: @ 860CFF0 - .2byte 0x0028, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_0860CFF8:: @ 860CFF8 - .2byte 0x0020, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_0860D000:: @ 860D000 - .4byte gUnknown_0860CFF0 - .4byte gUnknown_0860CFF8 - - .align 2 -gUnknown_0860D008:: @ 860D008 - spr_template 0x0000, 0xffff, gUnknown_0860CF78, gUnknown_0860D000, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_0860D020:: @ 860D020 - .2byte 0x0012, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_0860D028:: @ 860D028 - .2byte 0x0012, 0x0081, 0xffff, 0x0000 - - .align 2 -gUnknown_0860D030:: @ 860D030 - .2byte 0x0010, 0x0041, 0xffff, 0x0000 - - .align 2 -gUnknown_0860D038:: @ 860D038 - .2byte 0x0010, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_0860D040:: @ 860D040 - .4byte gUnknown_0860D020 - .4byte gUnknown_0860D028 - - .align 2 -gUnknown_0860D048:: @ 860D048 - .4byte gUnknown_0860D030 - .4byte gUnknown_0860D038 - - .align 2 -gUnknown_0860D050:: @ 860D050 - spr_template 0x0000, 0xffff, gUnknown_0860CF88, gUnknown_0860D048, NULL, gDummySpriteAffineAnimTable, sub_8190B40 - - .align 2 -gUnknown_0860D068:: @ 860D068 - spr_template 0x0000, 0xffff, gUnknown_0860CF80, gUnknown_0860D040, NULL, gDummySpriteAffineAnimTable, sub_8190C6C - - .align 2 -gUnknown_0860D080:: @ 860D080 - .byte 0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01 - - .align 2 -gUnknown_0860D090:: @ 860D090 - .4byte sub_818E9CC - .4byte sub_818EA84 - .4byte sub_818ED28 - .4byte sub_818F9B0 - .4byte sub_818F9E0 - .4byte sub_818FA20 - .4byte ShowDomeOpponentInfo - .4byte sub_81938A4 - .4byte sub_81938E0 - .4byte sub_8190298 - .4byte sub_81902E4 - .4byte sub_8193D40 - .4byte sub_8193D7C - .4byte sub_81902F8 - .4byte sub_819033C - .4byte sub_8194D48 - .4byte sub_8194D68 - .4byte sub_8194E44 - .4byte sub_8194EB4 - .4byte sub_8194EC0 - .4byte sub_8194EF8 - .4byte sub_8194F58 - .4byte InitDomeTrainers - - .align 2 -gUnknown_0860D0EC:: @ 860D0EC - .4byte 0x00000004, 0x00000008, 0x00100000, 0x00200000 - - .align 2 -gUnknown_0860D0FC:: @ 860D0FC - .4byte 0xfffffffb, 0xfffffff7, 0xffefffff, 0xffdfffff - - .align 2 -gUnknown_0860D10C:: @ 860D10C - .byte 0x08, 0x00, 0x04, 0x08, 0x09, 0x0c, 0x08, 0x00, 0x0a, 0x08, 0x0c, 0x00, 0x0b, 0x04, 0x00, 0x08, 0x0c, 0x00, 0x04, 0x08, 0x0d, 0x0c, 0x08, 0x00, 0x0e, 0x08, 0x0c, 0x00, 0x0f, 0x04, 0x00, 0x08 - .byte 0x00, 0x00, 0x04, 0x08, 0x01, 0x0c, 0x08, 0x00, 0x02, 0x08, 0x0c, 0x00, 0x03, 0x04, 0x00, 0x08, 0x04, 0x00, 0x04, 0x08, 0x05, 0x0c, 0x08, 0x00, 0x06, 0x08, 0x0c, 0x00, 0x07, 0x04, 0x00, 0x08 - - .align 2 -gUnknown_0860D14C:: @ 860D14C - .byte 0x00, 0x08, 0x04, 0x0c, 0x07, 0x0f, 0x03, 0x0b, 0x02, 0x0a, 0x06, 0x0e, 0x05, 0x0d, 0x01, 0x09 - - .align 2 -gUnknown_0860D15C:: @ 860D15C - .byte 0x00, 0x08, 0x0c, 0x0e, 0x00, 0x08, 0x0c, 0x0e, 0x01, 0x08, 0x0c, 0x0e, 0x01, 0x08, 0x0c, 0x0e, 0x02, 0x09, 0x0c, 0x0e, 0x02, 0x09, 0x0c, 0x0e, 0x03, 0x09, 0x0c, 0x0e, 0x03, 0x09, 0x0c, 0x0e - .byte 0x04, 0x0a, 0x0d, 0x0e, 0x04, 0x0a, 0x0d, 0x0e, 0x05, 0x0a, 0x0d, 0x0e, 0x05, 0x0a, 0x0d, 0x0e, 0x06, 0x0b, 0x0d, 0x0e, 0x06, 0x0b, 0x0d, 0x0e, 0x07, 0x0b, 0x0d, 0x0e, 0x07, 0x0b, 0x0d, 0x0e - - .align 2 -gUnknown_0860D19C:: @ 860D19C - .byte 0x17, 0x1b, 0x1d, 0x1e - - .align 2 -gUnknown_0860D1A0:: @ 860D1A0 - .byte 0x10, 0x18, 0x1c, 0x1e, 0x11, 0x18, 0x1c, 0x1e, 0x12, 0x19, 0x1c, 0x1e, 0x13, 0x19, 0x1c, 0x1e, 0x14, 0x1a, 0x1d, 0x1e, 0x15, 0x1a, 0x1d, 0x1e, 0x16, 0x1b, 0x1d, 0x1e, 0x17, 0x1b, 0x1d, 0x1e - - .align 2 -gUnknown_0860D1C0:: @ 860D1C0 - .byte 0x00, 0x0f, 0x08, 0x07, 0x03, 0x0c, 0x0b, 0x04, 0x01, 0x0e, 0x09, 0x06, 0x02, 0x0d, 0x0a, 0x05 - - .align 2 -gBattleDomePotentialPointers:: @ 860D1D0 - .4byte gBattleDomeOpponentPotential1 - .4byte gBattleDomeOpponentPotential2 - .4byte gBattleDomeOpponentPotential3 - .4byte gBattleDomeOpponentPotential4 - .4byte gBattleDomeOpponentPotential5 - .4byte gBattleDomeOpponentPotential6 - .4byte gBattleDomeOpponentPotential7 - .4byte gBattleDomeOpponentPotential8 - .4byte gBattleDomeOpponentPotential9 - .4byte gBattleDomeOpponentPotential10 - .4byte gBattleDomeOpponentPotential11 - .4byte gBattleDomeOpponentPotential12 - .4byte gBattleDomeOpponentPotential13 - .4byte gBattleDomeOpponentPotential14 - .4byte gBattleDomeOpponentPotential15 - .4byte gBattleDomeOpponentPotential16 - .4byte gBattleDomeOpponentPotential17 - - .align 2 -gBattleDomeOpponentStylePointers:: @ 860D214 - .4byte gBattleDomeOpponentStyle1 - .4byte gBattleDomeOpponentStyle2 - .4byte gBattleDomeOpponentStyle3 - .4byte gBattleDomeOpponentStyle4 - .4byte gBattleDomeOpponentStyle5 - .4byte gBattleDomeOpponentStyle6 - .4byte gBattleDomeOpponentStyle7 - .4byte gBattleDomeOpponentStyle8 - .4byte gBattleDomeOpponentStyle9 - .4byte gBattleDomeOpponentStyle10 - .4byte gBattleDomeOpponentStyle11 - .4byte gBattleDomeOpponentStyle12 - .4byte gBattleDomeOpponentStyle13 - .4byte gBattleDomeOpponentStyle14 - .4byte gBattleDomeOpponentStyle15 - .4byte gBattleDomeOpponentStyle16 - .4byte gBattleDomeOpponentStyle17 - .4byte gBattleDomeOpponentStyle18 - .4byte gBattleDomeOpponentStyle19 - .4byte gBattleDomeOpponentStyle20 - .4byte gBattleDomeOpponentStyle21 - .4byte gBattleDomeOpponentStyle22 - .4byte gBattleDomeOpponentStyle23 - .4byte gBattleDomeOpponentStyle24 - .4byte gBattleDomeOpponentStyle25 - .4byte gBattleDomeOpponentStyle26 - .4byte gBattleDomeOpponentStyle27 - .4byte gBattleDomeOpponentStyle28 - .4byte gBattleDomeOpponentStyleUnused1 - .4byte gBattleDomeOpponentStyleUnused2 - .4byte gBattleDomeOpponentStyleUnused3 - .4byte gBattleDomeOpponentStyleUnused4 - - .align 2 -gBattleDomeOpponentStatsPointers:: @ 860D294 - .4byte gBattleDomeOpponentStats1 - .4byte gBattleDomeOpponentStats2 - .4byte gBattleDomeOpponentStats3 - .4byte gBattleDomeOpponentStats4 - .4byte gBattleDomeOpponentStats5 - .4byte gBattleDomeOpponentStats6 - .4byte gBattleDomeOpponentStats7 - .4byte gBattleDomeOpponentStats8 - .4byte gBattleDomeOpponentStats9 - .4byte gBattleDomeOpponentStats10 - .4byte gBattleDomeOpponentStats11 - .4byte gBattleDomeOpponentStats12 - .4byte gBattleDomeOpponentStats13 - .4byte gBattleDomeOpponentStats14 - .4byte gBattleDomeOpponentStats15 - .4byte gBattleDomeOpponentStats16 - .4byte gBattleDomeOpponentStats17 - .4byte gBattleDomeOpponentStats18 - .4byte gBattleDomeOpponentStats19 - .4byte gBattleDomeOpponentStats20 - .4byte gBattleDomeOpponentStats21 - .4byte gBattleDomeOpponentStats22 - .4byte gBattleDomeOpponentStats23 - .4byte gBattleDomeOpponentStats24 - .4byte gBattleDomeOpponentStats25 - .4byte gBattleDomeOpponentStats26 - .4byte gBattleDomeOpponentStats27 - .4byte gBattleDomeOpponentStats28 - .4byte gBattleDomeOpponentStats29 - .4byte gBattleDomeOpponentStats30 - .4byte gBattleDomeOpponentStats31 - .4byte gBattleDomeOpponentStats32 - .4byte gBattleDomeOpponentStats33 - .4byte gBattleDomeOpponentStats34 - .4byte gBattleDomeOpponentStats35 - .4byte gBattleDomeOpponentStats36 - .4byte gBattleDomeOpponentStats37 - .4byte gBattleDomeOpponentStats38 - .4byte gBattleDomeOpponentStats39 - .4byte gBattleDomeOpponentStats40 - .4byte gBattleDomeOpponentStats41 - .4byte gBattleDomeOpponentStats42 - .4byte gBattleDomeOpponentStats43 - -gUnknown_0860D340:: @ 860D340 - .byte 0x68, 0x88, 0x68 - -gUnknown_0860D343:: @ 860D343 - .byte 0x26, 0x3e, 0x4e - -gUnknown_0860D346:: @ 860D346 - .byte 0x00, 0x04, 0x00 - -gUnknown_0860D349:: @ 860D349 - .byte 0x00, 0x05, 0x09, 0x0c, 0x0e, 0x00, 0x00 - - .align 2 -gBattleDomeMatchNumberPointers:: @ 860D350 - .4byte gBattleDomeMatchNumber1 - .4byte gBattleDomeMatchNumber2 - .4byte gBattleDomeMatchNumber3 - .4byte gBattleDomeMatchNumber4 - .4byte gBattleDomeMatchNumber5 - .4byte gBattleDomeMatchNumber6 - .4byte gBattleDomeMatchNumber7 - .4byte gBattleDomeMatchNumber8 - .4byte gBattleDomeMatchNumber9 - .4byte gBattleDomeMatchNumber10 - .4byte gBattleDomeMatchNumber11 - .4byte gBattleDomeMatchNumber12 - .4byte gBattleDomeMatchNumber13 - .4byte gBattleDomeMatchNumber14 - .4byte gBattleDomeMatchNumber15 - - .align 2 -gBattleDomeWinStringsPointers:: @ 860D38C - .4byte gBattleDomeWinStrings1 - .4byte gBattleDomeWinStrings2 - .4byte gBattleDomeWinStrings3 - .4byte gBattleDomeWinStrings4 - .4byte gBattleDomeWinStrings5 - .4byte gBattleDomeWinStrings6 - .4byte gBattleDomeWinStrings7 - -gUnknown_0860D3A8:: @ 860D3A8 - .byte 0x60, 0x60, 0x60 - -gUnknown_0860D3AB:: @ 860D3AB - .byte 0x38, 0x50, 0x68 - -gUnknown_0860D3AE:: @ 860D3AE - .byte 0x90, 0x90, 0x90 - -gUnknown_0860D3B1:: @ 860D3B1 - .byte 0x38, 0x50, 0x68 - -gUnknown_0860D3B4:: @ 860D3B4 - .byte 0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01 - -gUnknown_0860D3C4:: @ 860D3C4 - .byte 0x00, 0x02 - -gUnknown_0860D3C6:: @ 860D3C6 - .byte 0x00, 0x02, 0x02, 0x00, 0x04, 0x02, 0x00, 0x06, 0x02, 0x00, 0x08, 0x02, 0x00, 0x0a, 0x02, 0x00, 0x0c, 0x02, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x04, 0x01, 0x04, 0x04, 0x01, 0x08, 0x04, 0x01, 0x0c - .byte 0x04, 0x01, 0x00, 0x08, 0x02, 0x08, 0x08, 0x02, 0x00, 0x10, 0x03 - -gUnknown_0860D3F1:: @ 860D3F1 - .byte 0x00 - -gUnknown_0860D3F2:: @ 860D3F2 - .byte 0x00, 0x01, 0x70, 0x01, 0x00, 0x00, 0x70, 0x00, 0x30, 0x01, 0x40, 0x01, 0x30, 0x00, 0x40, 0x00, 0x10, 0x01, 0x60, 0x01, 0x10, 0x00, 0x60, 0x00, 0x20, 0x01, 0x50, 0x01, 0x20, 0x00, 0x50 - -gUnknown_0860D411:: @ 860D411 struct - byte 1 and 2 loaded seperately, 2 added to move 1 addr across - .byte 0x44, 0x21, 0x44, 0x31, 0x44, 0x41, 0x44, 0x51, 0x44, 0x61, 0x44, 0x71, 0x44, 0x81, 0x44, 0x91, 0xac, 0x21, 0xac, 0x31, 0xac, 0x41, 0xac, 0x51, 0xac, 0x61, 0xac, 0x71, 0xac, 0x81, 0xac, 0x91 - .byte 0x57, 0x29, 0x57, 0x49, 0x57, 0x69, 0x57, 0x89, 0x99, 0x29, 0x99, 0x49, 0x99, 0x69, 0x99, 0x89, 0x5f, 0x39, 0x5f, 0x79, 0x91, 0x39, 0x91, 0x79, 0x67, 0x59, 0x89, 0x59, 0x78, 0x59, 0x00 - - .align 2 -gUnknown_0860d450:: @ 860D450 - .4byte 0x60210409 - .4byte 0x6023040a - .4byte 0x6047050a - .4byte 0x6043050b - - .align 2 -gUnknown_0860d460:: @ 860D460 - .4byte 0x60210409 - .4byte 0x6023040a - .4byte 0x6047050a - .4byte 0x6023050b - .4byte 0x6027060b - .4byte 0x6047070b - .4byte 0x6043070c - - .align 2 -gUnknown_0860d47c:: @ 860D47C - .4byte 0x60210409 - .4byte 0x6023040a - .4byte 0x6047050a - .4byte 0x6023050b - .4byte 0x6027060b - .4byte 0x6047070b - .4byte 0x6023070c - .4byte 0x6027080c - .4byte 0x6027090c - .4byte 0x60270a0c - .4byte 0x603b0b0c - - .align 2 -gUnknown_0860d4a8:: @ 860D4A8 - .4byte 0x60210409 - .4byte 0x6023040a - .4byte 0x6047050a - .4byte 0x6023050b - .4byte 0x6027060b - .4byte 0x6047070b - .4byte 0x6023070c - .4byte 0x6027080c - .4byte 0x6027090c - .4byte 0x60270a0c - .4byte 0x603b0b0c - .4byte 0x602c0b0d - .4byte 0x602d0b0e - - .align 2 -gUnknown_0860d4dc:: @ 860D4DC - .4byte 0x60210609 - .4byte 0x6021060a - .4byte 0x6027050a - .4byte 0x6043050b - - .align 2 -gUnknown_0860d4ec:: @ 860D4EC - .4byte 0x60210609 - .4byte 0x6021060a - .4byte 0x6027050a - .4byte 0x6023050b - .4byte 0x6027060b - .4byte 0x6047070b - .4byte 0x6043070c - - .align 2 -gUnknown_0860d508:: @ 860D508 - .4byte 0x60210609 - .4byte 0x6021060a - .4byte 0x6027050a - .4byte 0x6023050b - .4byte 0x6027060b - .4byte 0x6047070b - .4byte 0x6023070c - .4byte 0x6027080c - .4byte 0x6027090c - .4byte 0x60270a0c - .4byte 0x603b0b0c - - .align 2 -gUnknown_0860d534:: @ 860D534 - .4byte 0x60210609 - .4byte 0x6021060a - .4byte 0x6027050a - .4byte 0x6023050b - .4byte 0x6027060b - .4byte 0x6047070b - .4byte 0x6023070c - .4byte 0x6027080c - .4byte 0x6027090c - .4byte 0x60270a0c - .4byte 0x603b0b0c - .4byte 0x602c0b0d - .4byte 0x602d0b0e - - .align 2 -gUnknown_0860d568:: @ 860D568 - .4byte 0x60210809 - .4byte 0x6023080a - .4byte 0x6047090a - .4byte 0x6021090b - - .align 2 -gUnknown_0860d578:: @ 860D578 - .4byte 0x60210809 - .4byte 0x6023080a - .4byte 0x6047090a - .4byte 0x6021090b - .4byte 0x6027080b - .4byte 0x6027070b - .4byte 0x6043070c - - .align 2 -gUnknown_0860d594:: @ 860D594 - .4byte 0x60210809 - .4byte 0x6023080a - .4byte 0x6047090a - .4byte 0x6021090b - .4byte 0x6027080b - .4byte 0x6027070b - .4byte 0x6023070c - .4byte 0x6027080c - .4byte 0x6027090c - .4byte 0x60270a0c - .4byte 0x603b0b0c - - .align 2 -gUnknown_0860d5c0:: @ 860D5C0 - .4byte 0x60210809 - .4byte 0x6023080a - .4byte 0x6047090a - .4byte 0x6021090b - .4byte 0x6027080b - .4byte 0x6027070b - .4byte 0x6023070c - .4byte 0x6027080c - .4byte 0x6027090c - .4byte 0x60270a0c - .4byte 0x603b0b0c - .4byte 0x602c0b0d - .4byte 0x602d0b0e - - .align 2 -gUnknown_0860d5f4:: @ 860D5F4 - .4byte 0x60210a09 - .4byte 0x60210a0a - .4byte 0x6027090a - .4byte 0x6021090b - - .align 2 -gUnknown_0860d604:: @ 860D604 - .4byte 0x60210a09 - .4byte 0x60210a0a - .4byte 0x6027090a - .4byte 0x6021090b - .4byte 0x6027080b - .4byte 0x6027070b - .4byte 0x6043070c - - .align 2 -gUnknown_0860d620:: @ 860D620 - .4byte 0x60210a09 - .4byte 0x60210a0a - .4byte 0x6027090a - .4byte 0x6021090b - .4byte 0x6027080b - .4byte 0x6027070b - .4byte 0x6023070c - .4byte 0x6027080c - .4byte 0x6027090c - .4byte 0x60270a0c - .4byte 0x603b0b0c - - .align 2 -gUnknown_0860d64c:: @ 860D64C - .4byte 0x60210a09 - .4byte 0x60210a0a - .4byte 0x6027090a - .4byte 0x6021090b - .4byte 0x6027080b - .4byte 0x6027070b - .4byte 0x6023070c - .4byte 0x6027080c - .4byte 0x6027090c - .4byte 0x60270a0c - .4byte 0x603b0b0c - .4byte 0x602c0b0d - .4byte 0x602d0b0e - - .align 2 -gUnknown_0860d680:: @ 860D680 - .4byte 0x60210c09 - .4byte 0x60230c0a - .4byte 0x60470d0a - .4byte 0x60430d0b - - .align 2 -gUnknown_0860d690:: @ 860D690 - .4byte 0x60210c09 - .4byte 0x60230c0a - .4byte 0x60470d0a - .4byte 0x60230d0b - .4byte 0x60270e0b - .4byte 0x60470f0b - .4byte 0x60210f0c - - .align 2 -gUnknown_0860d6ac:: @ 860D6AC - .4byte 0x60210c09 - .4byte 0x60230c0a - .4byte 0x60470d0a - .4byte 0x60230d0b - .4byte 0x60270e0b - .4byte 0x60470f0b - .4byte 0x60210f0c - .4byte 0x60330e0c - .4byte 0x60320d0c - .4byte 0x60310c0c - .4byte 0x60300b0c - - .align 2 -gUnknown_0860d6d8:: @ 860D6D8 - .4byte 0x60210c09 - .4byte 0x60230c0a - .4byte 0x60470d0a - .4byte 0x60230d0b - .4byte 0x60270e0b - .4byte 0x60470f0b - .4byte 0x60210f0c - .4byte 0x60330e0c - .4byte 0x60320d0c - .4byte 0x60310c0c - .4byte 0x60300b0c - .4byte 0x602c0b0d - .4byte 0x602d0b0e - - .align 2 -gUnknown_0860d70c:: @ 860D70C - .4byte 0x60210e09 - .4byte 0x60210e0a - .4byte 0x60270d0a - .4byte 0x60430d0b - - .align 2 -gUnknown_0860d71c:: @ 860D71C - .4byte 0x60210e09 - .4byte 0x60210e0a - .4byte 0x60270d0a - .4byte 0x60230d0b - .4byte 0x60270e0b - .4byte 0x60470f0b - .4byte 0x60210f0c - - .align 2 -gUnknown_0860d738:: @ 860D738 - .4byte 0x60210e09 - .4byte 0x60210e0a - .4byte 0x60270d0a - .4byte 0x60230d0b - .4byte 0x60270e0b - .4byte 0x60470f0b - .4byte 0x60210f0c - .4byte 0x60330e0c - .4byte 0x60320d0c - .4byte 0x60310c0c - .4byte 0x60300b0c - - .align 2 -gUnknown_0860d764:: @ 860D764 - .4byte 0x60210e09 - .4byte 0x60210e0a - .4byte 0x60270d0a - .4byte 0x60230d0b - .4byte 0x60270e0b - .4byte 0x60470f0b - .4byte 0x60210f0c - .4byte 0x60330e0c - .4byte 0x60320d0c - .4byte 0x60310c0c - .4byte 0x60300b0c - .4byte 0x602c0b0d - .4byte 0x602d0b0e - - .align 2 -gUnknown_0860d798:: @ 860D798 - .4byte 0x60211009 - .4byte 0x6023100a - .4byte 0x6047110a - .4byte 0x6021110b - - .align 2 -gUnknown_0860d7a8:: @ 860D7A8 - .4byte 0x60211009 - .4byte 0x6023100a - .4byte 0x6047110a - .4byte 0x6021110b - .4byte 0x6027100b - .4byte 0x60270f0b - .4byte 0x60210f0c - - .align 2 -gUnknown_0860d7c4:: @ 860D7C4 - .4byte 0x60211009 - .4byte 0x6023100a - .4byte 0x6047110a - .4byte 0x6021110b - .4byte 0x6027100b - .4byte 0x60270f0b - .4byte 0x60210f0c - .4byte 0x60330e0c - .4byte 0x60320d0c - .4byte 0x60310c0c - .4byte 0x60300b0c - - .align 2 -gUnknown_0860d7f0:: @ 860D7F0 - .4byte 0x60211009 - .4byte 0x6023100a - .4byte 0x6047110a - .4byte 0x6021110b - .4byte 0x6027100b - .4byte 0x60270f0b - .4byte 0x60210f0c - .4byte 0x60330e0c - .4byte 0x60320d0c - .4byte 0x60310c0c - .4byte 0x60300b0c - .4byte 0x602c0b0d - .4byte 0x602d0b0e - - .align 2 -gUnknown_0860d824:: @ 860D824 - .4byte 0x602b1209 - .4byte 0x602b120a - .4byte 0x6027110a - .4byte 0x6021110b - - .align 2 -gUnknown_0860d834:: @ 860D834 - .4byte 0x602b1209 - .4byte 0x602b120a - .4byte 0x6027110a - .4byte 0x6021110b - .4byte 0x6027100b - .4byte 0x60270f0b - .4byte 0x60210f0c - - .align 2 -gUnknown_0860d850:: @ 860D850 - .4byte 0x602b1209 - .4byte 0x602b120a - .4byte 0x6027110a - .4byte 0x6021110b - .4byte 0x6027100b - .4byte 0x60270f0b - .4byte 0x60210f0c - .4byte 0x60330e0c - .4byte 0x60320d0c - .4byte 0x60310c0c - .4byte 0x60300b0c - - .align 2 -gUnknown_0860d87c:: @ 860D87C - .4byte 0x602b1209 - .4byte 0x602b120a - .4byte 0x6027110a - .4byte 0x6021110b - .4byte 0x6027100b - .4byte 0x60270f0b - .4byte 0x60210f0c - .4byte 0x60330e0c - .4byte 0x60320d0c - .4byte 0x60310c0c - .4byte 0x60300b0c - .4byte 0x602c0b0d - .4byte 0x602d0b0e - - .align 2 -gUnknown_0860d8b0:: @ 860D8B0 - .4byte 0x60210414 - .4byte 0x60250413 - .4byte 0x60490513 - .4byte 0x60450512 - - .align 2 -gUnknown_0860d8c0:: @ 860D8C0 - .4byte 0x60210414 - .4byte 0x60250413 - .4byte 0x60490513 - .4byte 0x60250512 - .4byte 0x60290612 - .4byte 0x60490712 - .4byte 0x60450711 - - .align 2 -gUnknown_0860d8dc:: @ 860D8DC - .4byte 0x60210414 - .4byte 0x60250413 - .4byte 0x60490513 - .4byte 0x60250512 - .4byte 0x60290612 - .4byte 0x60490712 - .4byte 0x60250711 - .4byte 0x60290811 - .4byte 0x60290911 - .4byte 0x60290a11 - .4byte 0x603c0b11 - - .align 2 -gUnknown_0860d908:: @ 860D908 - .4byte 0x60210414 - .4byte 0x60250413 - .4byte 0x60490513 - .4byte 0x60250512 - .4byte 0x60290612 - .4byte 0x60490712 - .4byte 0x60250711 - .4byte 0x60290811 - .4byte 0x60290911 - .4byte 0x60290a11 - .4byte 0x603c0b11 - .4byte 0x602f0b10 - .4byte 0x602e0b0f - - .align 2 -gUnknown_0860d93c:: @ 860D93C - .4byte 0x60210614 - .4byte 0x60210613 - .4byte 0x60290513 - .4byte 0x60450512 - - .align 2 -gUnknown_0860d94c:: @ 860D94C - .4byte 0x60210614 - .4byte 0x60210613 - .4byte 0x60290513 - .4byte 0x60250512 - .4byte 0x60290612 - .4byte 0x60490712 - .4byte 0x60450711 - - .align 2 -gUnknown_0860d968:: @ 860D968 - .4byte 0x60210614 - .4byte 0x60210613 - .4byte 0x60290513 - .4byte 0x60250512 - .4byte 0x60290612 - .4byte 0x60490712 - .4byte 0x60250711 - .4byte 0x60290811 - .4byte 0x60290911 - .4byte 0x60290a11 - .4byte 0x603c0b11 - - .align 2 -gUnknown_0860d994:: @ 860D994 - .4byte 0x60210614 - .4byte 0x60210613 - .4byte 0x60290513 - .4byte 0x60250512 - .4byte 0x60290612 - .4byte 0x60490712 - .4byte 0x60250711 - .4byte 0x60290811 - .4byte 0x60290911 - .4byte 0x60290a11 - .4byte 0x603c0b11 - .4byte 0x602f0b10 - .4byte 0x602e0b0f - - .align 2 -gUnknown_0860d9c8:: @ 860D9C8 - .4byte 0x60210814 - .4byte 0x60250813 - .4byte 0x60490913 - .4byte 0x60210912 - - .align 2 -gUnknown_0860d9d8:: @ 860D9D8 - .4byte 0x60210814 - .4byte 0x60250813 - .4byte 0x60490913 - .4byte 0x60210912 - .4byte 0x60290812 - .4byte 0x60290712 - .4byte 0x60450711 - - .align 2 -gUnknown_0860d9f4:: @ 860D9F4 - .4byte 0x60210814 - .4byte 0x60250813 - .4byte 0x60490913 - .4byte 0x60210912 - .4byte 0x60290812 - .4byte 0x60290712 - .4byte 0x60250711 - .4byte 0x60290811 - .4byte 0x60290911 - .4byte 0x60290a11 - .4byte 0x603c0b11 - - .align 2 -gUnknown_0860da20:: @ 860DA20 - .4byte 0x60210814 - .4byte 0x60250813 - .4byte 0x60490913 - .4byte 0x60210912 - .4byte 0x60290812 - .4byte 0x60290712 - .4byte 0x60250711 - .4byte 0x60290811 - .4byte 0x60290911 - .4byte 0x60290a11 - .4byte 0x603c0b11 - .4byte 0x602f0b10 - .4byte 0x602e0b0f - - .align 2 -gUnknown_0860da54:: @ 860DA54 - .4byte 0x60210a14 - .4byte 0x60210a13 - .4byte 0x60290913 - .4byte 0x60210912 - - .align 2 -gUnknown_0860da64:: @ 860DA64 - .4byte 0x60210a14 - .4byte 0x60210a13 - .4byte 0x60290913 - .4byte 0x60210912 - .4byte 0x60290812 - .4byte 0x60290712 - .4byte 0x60450711 - - .align 2 -gUnknown_0860da80:: @ 860DA80 - .4byte 0x60210a14 - .4byte 0x60210a13 - .4byte 0x60290913 - .4byte 0x60210912 - .4byte 0x60290812 - .4byte 0x60290712 - .4byte 0x60250711 - .4byte 0x60290811 - .4byte 0x60290911 - .4byte 0x60290a11 - .4byte 0x603c0b11 - - .align 2 -gUnknown_0860daac:: @ 860DAAC - .4byte 0x60210a14 - .4byte 0x60210a13 - .4byte 0x60290913 - .4byte 0x60210912 - .4byte 0x60290812 - .4byte 0x60290712 - .4byte 0x60250711 - .4byte 0x60290811 - .4byte 0x60290911 - .4byte 0x60290a11 - .4byte 0x603c0b11 - .4byte 0x602f0b10 - .4byte 0x602e0b0f - - .align 2 -gUnknown_0860dae0:: @ 860DAE0 - .4byte 0x60210c14 - .4byte 0x60250c13 - .4byte 0x60490d13 - .4byte 0x60450d12 - - .align 2 -gUnknown_0860daf0:: @ 860DAF0 - .4byte 0x60210c14 - .4byte 0x60250c13 - .4byte 0x60490d13 - .4byte 0x60250d12 - .4byte 0x60290e12 - .4byte 0x60490f12 - .4byte 0x60210f11 - - .align 2 -gUnknown_0860db0c:: @ 860DB0C - .4byte 0x60210c14 - .4byte 0x60250c13 - .4byte 0x60490d13 - .4byte 0x60250d12 - .4byte 0x60290e12 - .4byte 0x60490f12 - .4byte 0x60210f11 - .4byte 0x60380e11 - .4byte 0x60370d11 - .4byte 0x60360c11 - .4byte 0x60350b11 - - .align 2 -gUnknown_0860db38:: @ 860DB38 - .4byte 0x60210c14 - .4byte 0x60250c13 - .4byte 0x60490d13 - .4byte 0x60250d12 - .4byte 0x60290e12 - .4byte 0x60490f12 - .4byte 0x60210f11 - .4byte 0x60380e11 - .4byte 0x60370d11 - .4byte 0x60360c11 - .4byte 0x60350b11 - .4byte 0x602f0b10 - .4byte 0x602e0b0f - - .align 2 -gUnknown_0860db6c:: @ 860DB6C - .4byte 0x60210e14 - .4byte 0x60210e13 - .4byte 0x60290d13 - .4byte 0x60450d12 - - .align 2 -gUnknown_0860db7c:: @ 860DB7C - .4byte 0x60210e14 - .4byte 0x60210e13 - .4byte 0x60290d13 - .4byte 0x60250d12 - .4byte 0x60290e12 - .4byte 0x60490f12 - .4byte 0x60210f11 - - .align 2 -gUnknown_0860db98:: @ 860DB98 - .4byte 0x60210e14 - .4byte 0x60210e13 - .4byte 0x60290d13 - .4byte 0x60250d12 - .4byte 0x60290e12 - .4byte 0x60490f12 - .4byte 0x60210f11 - .4byte 0x60380e11 - .4byte 0x60370d11 - .4byte 0x60360c11 - .4byte 0x60350b11 - - .align 2 -gUnknown_0860dbc4:: @ 860DBC4 - .4byte 0x60210e14 - .4byte 0x60210e13 - .4byte 0x60290d13 - .4byte 0x60250d12 - .4byte 0x60290e12 - .4byte 0x60490f12 - .4byte 0x60210f11 - .4byte 0x60380e11 - .4byte 0x60370d11 - .4byte 0x60360c11 - .4byte 0x60350b11 - .4byte 0x602f0b10 - .4byte 0x602e0b0f - - .align 2 -gUnknown_0860dbf8:: @ 860DBF8 - .4byte 0x60211014 - .4byte 0x60251013 - .4byte 0x60491113 - .4byte 0x60211112 - - .align 2 -gUnknown_0860dc08:: @ 860DC08 - .4byte 0x60211014 - .4byte 0x60251013 - .4byte 0x60491113 - .4byte 0x60211112 - .4byte 0x60291012 - .4byte 0x60290f12 - .4byte 0x60210f11 - - .align 2 -gUnknown_0860dc24:: @ 860DC24 - .4byte 0x60211014 - .4byte 0x60251013 - .4byte 0x60491113 - .4byte 0x60211112 - .4byte 0x60291012 - .4byte 0x60290f12 - .4byte 0x60210f11 - .4byte 0x60380e11 - .4byte 0x60370d11 - .4byte 0x60360c11 - .4byte 0x60350b11 - - .align 2 -gUnknown_0860dc50:: @ 860DC50 - .4byte 0x60211014 - .4byte 0x60251013 - .4byte 0x60491113 - .4byte 0x60211112 - .4byte 0x60291012 - .4byte 0x60290f12 - .4byte 0x60210f11 - .4byte 0x60380e11 - .4byte 0x60370d11 - .4byte 0x60360c11 - .4byte 0x60350b11 - .4byte 0x602f0b10 - .4byte 0x602e0b0f - - .align 2 -gUnknown_0860dc84:: @ 860DC84 - .4byte 0x602b1214 - .4byte 0x602b1213 - .4byte 0x60291113 - .4byte 0x60211112 - - .align 2 -gUnknown_0860dc94:: @ 860DC94 - .4byte 0x602b1214 - .4byte 0x602b1213 - .4byte 0x60291113 - .4byte 0x60211112 - .4byte 0x60291012 - .4byte 0x60290f12 - .4byte 0x60210f11 - - .align 2 -gUnknown_0860dcb0:: @ 860DCB0 - .4byte 0x602b1214 - .4byte 0x602b1213 - .4byte 0x60291113 - .4byte 0x60211112 - .4byte 0x60291012 - .4byte 0x60290f12 - .4byte 0x60210f11 - .4byte 0x60380e11 - .4byte 0x60370d11 - .4byte 0x60360c11 - .4byte 0x60350b11 - - .align 2 -gUnknown_0860dcdc:: @ 860DCDC - .4byte 0x602b1214 - .4byte 0x602b1213 - .4byte 0x60291113 - .4byte 0x60211112 - .4byte 0x60291012 - .4byte 0x60290f12 - .4byte 0x60210f11 - .4byte 0x60380e11 - .4byte 0x60370d11 - .4byte 0x60360c11 - .4byte 0x60350b11 - .4byte 0x602f0b10 - .4byte 0x602e0b0f - - .align 2 -gUnknown_0860DD10:: @ 860DD10 - .4byte gUnknown_0860d450 - .4byte gUnknown_0860d460 - .4byte gUnknown_0860d47c - .4byte gUnknown_0860d4a8 - .4byte gUnknown_0860dc84 - .4byte gUnknown_0860dc94 - .4byte gUnknown_0860dcb0 - .4byte gUnknown_0860dcdc - .4byte gUnknown_0860d8b0 - .4byte gUnknown_0860d8c0 - .4byte gUnknown_0860d8dc - .4byte gUnknown_0860d908 - .4byte gUnknown_0860d824 - .4byte gUnknown_0860d834 - .4byte gUnknown_0860d850 - .4byte gUnknown_0860d87c - .4byte gUnknown_0860d5f4 - .4byte gUnknown_0860d604 - .4byte gUnknown_0860d620 - .4byte gUnknown_0860d64c - .4byte gUnknown_0860dae0 - .4byte gUnknown_0860daf0 - .4byte gUnknown_0860db0c - .4byte gUnknown_0860db38 - .4byte gUnknown_0860da54 - .4byte gUnknown_0860da64 - .4byte gUnknown_0860da80 - .4byte gUnknown_0860daac - .4byte gUnknown_0860d680 - .4byte gUnknown_0860d690 - .4byte gUnknown_0860d6ac - .4byte gUnknown_0860d6d8 - .4byte gUnknown_0860d4dc - .4byte gUnknown_0860d4ec - .4byte gUnknown_0860d508 - .4byte gUnknown_0860d534 - .4byte gUnknown_0860dbf8 - .4byte gUnknown_0860dc08 - .4byte gUnknown_0860dc24 - .4byte gUnknown_0860dc50 - .4byte gUnknown_0860d93c - .4byte gUnknown_0860d94c - .4byte gUnknown_0860d968 - .4byte gUnknown_0860d994 - .4byte gUnknown_0860d798 - .4byte gUnknown_0860d7a8 - .4byte gUnknown_0860d7c4 - .4byte gUnknown_0860d7f0 - .4byte gUnknown_0860d568 - .4byte gUnknown_0860d578 - .4byte gUnknown_0860d594 - .4byte gUnknown_0860d5c0 - .4byte gUnknown_0860db6c - .4byte gUnknown_0860db7c - .4byte gUnknown_0860db98 - .4byte gUnknown_0860dbc4 - .4byte gUnknown_0860d9c8 - .4byte gUnknown_0860d9d8 - .4byte gUnknown_0860d9f4 - .4byte gUnknown_0860da20 - .4byte gUnknown_0860d70c - .4byte gUnknown_0860d71c - .4byte gUnknown_0860d738 - .4byte gUnknown_0860d764 - -gUnknown_0860DE10:: @ 860DE10 - .byte 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d - .byte 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d - .align 2 gUnknown_0860DE50:: @ 860DE50 .4byte sub_8195980 diff --git a/src/battle_dome.c b/src/battle_dome.c index 058d253ab5..6d9584ea50 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -89,53 +89,11 @@ extern u16 gBattle_BG3_X; extern u16 gBattle_BG3_Y; extern const struct FacilityMon *gFacilityTrainerMons; -extern void (* const gUnknown_0860D090[])(void); -extern const u32 gUnknown_0860D0EC[][2]; -extern const u32 gUnknown_0860D0FC[][2]; extern const u16 gBattleFrontierHeldItems[]; -extern const u8 gUnknown_0860D10C[][4]; -extern const u8 gUnknown_0860D14C[]; -extern const struct BgTemplate gUnknown_0860CE84[4]; -extern const struct WindowTemplate gUnknown_0860CEB4[]; -extern const struct CompressedSpriteSheet gUnknown_0860CF50[]; -extern const struct SpriteTemplate gUnknown_0860D068; -extern const struct SpriteTemplate gUnknown_0860D050; -extern const u8 gUnknown_0860D080[]; -extern const u8 gUnknown_0860D15C[]; -extern const u8 gUnknown_0860D1A0[][4]; -extern const u8 gUnknown_0860D19C[]; -extern const u8 gUnknown_0860D349[]; -extern const u8 gUnknown_0860D1C0[]; -extern const u8 gUnknown_0860D343[]; -extern const u8 gUnknown_0860D340[]; -extern const u8 gUnknown_0860D346[]; -extern const u8 gUnknown_0860C988[31][16]; -extern const u8 gUnknown_0860D3F1[][2]; -extern const u8 gUnknown_0860D3C4[][3]; -extern const u8 gUnknown_0860D3B4[]; -extern const u8 gUnknown_0860D3A8[]; -extern const u8 gUnknown_0860D3AB[]; -extern const u8 gUnknown_0860D3AE[]; -extern const u8 gUnknown_0860D3B1[]; -extern const u8 gUnknown_0860D080[]; extern const u8 gUnknown_08D83900[]; -extern const u8 gUnknown_0860CBF1[][5][4]; -extern const u8 *const gBattleDomePotentialPointers[]; -extern const u8 *const gBattleDomeOpponentStylePointers[]; -extern const u8 *const gBattleDomeOpponentStatsPointers[]; -extern const u8 *const gBattleDomeWinStringsPointers[]; -extern const u8 *const gBattleDomeMatchNumberPointers[]; extern const struct FacilityMon gBattleFrontierMons[]; extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; -extern const struct BgTemplate gUnknown_0860CE74[4]; -extern const struct WindowTemplate gUnknown_0860CE94[]; -extern const u8 gUnknown_0860D411[][2]; extern const struct SpriteTemplate gUnknown_0860CFA8; -extern const struct SpriteTemplate gUnknown_0860D008; -extern const struct SpriteTemplate gUnknown_0860CFD8; -extern const struct ScanlineEffectParams gUnknown_0860CF44; -extern const struct UnkStruct_860DD10 *gUnknown_0860DD10[][4]; -extern const u8 gUnknown_0860DE10[][4]; // gfx extern const u8 gUnknown_08D83D50[]; @@ -149,10 +107,126 @@ extern const u8 gUnknown_08D82F10[]; extern const u8 gUnknown_08D834FC[]; extern const u8 gUnknown_08D83B2C[]; extern const u8 gUnknown_08D83C3C[]; +extern const u8 gBattleFrontierGfx_DomeOptions[]; // text extern const u8 gTrainerClassNames[][0xD]; +extern const u8 gBattleDomeOpponentPotential1[]; +extern const u8 gBattleDomeOpponentPotential2[]; +extern const u8 gBattleDomeOpponentPotential3[]; +extern const u8 gBattleDomeOpponentPotential4[]; +extern const u8 gBattleDomeOpponentPotential5[]; +extern const u8 gBattleDomeOpponentPotential6[]; +extern const u8 gBattleDomeOpponentPotential7[]; +extern const u8 gBattleDomeOpponentPotential8[]; +extern const u8 gBattleDomeOpponentPotential9[]; +extern const u8 gBattleDomeOpponentPotential10[]; +extern const u8 gBattleDomeOpponentPotential11[]; +extern const u8 gBattleDomeOpponentPotential12[]; +extern const u8 gBattleDomeOpponentPotential13[]; +extern const u8 gBattleDomeOpponentPotential14[]; +extern const u8 gBattleDomeOpponentPotential15[]; +extern const u8 gBattleDomeOpponentPotential16[]; +extern const u8 gBattleDomeOpponentPotential17[]; +extern const u8 gBattleDomeOpponentStyle1[]; +extern const u8 gBattleDomeOpponentStyle2[]; +extern const u8 gBattleDomeOpponentStyle3[]; +extern const u8 gBattleDomeOpponentStyle4[]; +extern const u8 gBattleDomeOpponentStyle5[]; +extern const u8 gBattleDomeOpponentStyle6[]; +extern const u8 gBattleDomeOpponentStyle7[]; +extern const u8 gBattleDomeOpponentStyle8[]; +extern const u8 gBattleDomeOpponentStyle9[]; +extern const u8 gBattleDomeOpponentStyle10[]; +extern const u8 gBattleDomeOpponentStyle11[]; +extern const u8 gBattleDomeOpponentStyle12[]; +extern const u8 gBattleDomeOpponentStyle13[]; +extern const u8 gBattleDomeOpponentStyle14[]; +extern const u8 gBattleDomeOpponentStyle15[]; +extern const u8 gBattleDomeOpponentStyle16[]; +extern const u8 gBattleDomeOpponentStyle17[]; +extern const u8 gBattleDomeOpponentStyle18[]; +extern const u8 gBattleDomeOpponentStyle19[]; +extern const u8 gBattleDomeOpponentStyle20[]; +extern const u8 gBattleDomeOpponentStyle21[]; +extern const u8 gBattleDomeOpponentStyle22[]; +extern const u8 gBattleDomeOpponentStyle23[]; +extern const u8 gBattleDomeOpponentStyle24[]; +extern const u8 gBattleDomeOpponentStyle25[]; +extern const u8 gBattleDomeOpponentStyle26[]; +extern const u8 gBattleDomeOpponentStyle27[]; +extern const u8 gBattleDomeOpponentStyle28[]; +extern const u8 gBattleDomeOpponentStyleUnused1[]; +extern const u8 gBattleDomeOpponentStyleUnused2[]; +extern const u8 gBattleDomeOpponentStyleUnused3[]; +extern const u8 gBattleDomeOpponentStyleUnused4[]; +extern const u8 gBattleDomeOpponentStats1[]; +extern const u8 gBattleDomeOpponentStats2[]; +extern const u8 gBattleDomeOpponentStats3[]; +extern const u8 gBattleDomeOpponentStats4[]; +extern const u8 gBattleDomeOpponentStats5[]; +extern const u8 gBattleDomeOpponentStats6[]; +extern const u8 gBattleDomeOpponentStats7[]; +extern const u8 gBattleDomeOpponentStats8[]; +extern const u8 gBattleDomeOpponentStats9[]; +extern const u8 gBattleDomeOpponentStats10[]; +extern const u8 gBattleDomeOpponentStats11[]; +extern const u8 gBattleDomeOpponentStats12[]; +extern const u8 gBattleDomeOpponentStats13[]; +extern const u8 gBattleDomeOpponentStats14[]; +extern const u8 gBattleDomeOpponentStats15[]; +extern const u8 gBattleDomeOpponentStats16[]; +extern const u8 gBattleDomeOpponentStats17[]; +extern const u8 gBattleDomeOpponentStats18[]; +extern const u8 gBattleDomeOpponentStats19[]; +extern const u8 gBattleDomeOpponentStats20[]; +extern const u8 gBattleDomeOpponentStats21[]; +extern const u8 gBattleDomeOpponentStats22[]; +extern const u8 gBattleDomeOpponentStats23[]; +extern const u8 gBattleDomeOpponentStats24[]; +extern const u8 gBattleDomeOpponentStats25[]; +extern const u8 gBattleDomeOpponentStats26[]; +extern const u8 gBattleDomeOpponentStats27[]; +extern const u8 gBattleDomeOpponentStats28[]; +extern const u8 gBattleDomeOpponentStats29[]; +extern const u8 gBattleDomeOpponentStats30[]; +extern const u8 gBattleDomeOpponentStats31[]; +extern const u8 gBattleDomeOpponentStats32[]; +extern const u8 gBattleDomeOpponentStats33[]; +extern const u8 gBattleDomeOpponentStats34[]; +extern const u8 gBattleDomeOpponentStats35[]; +extern const u8 gBattleDomeOpponentStats36[]; +extern const u8 gBattleDomeOpponentStats37[]; +extern const u8 gBattleDomeOpponentStats38[]; +extern const u8 gBattleDomeOpponentStats39[]; +extern const u8 gBattleDomeOpponentStats40[]; +extern const u8 gBattleDomeOpponentStats41[]; +extern const u8 gBattleDomeOpponentStats42[]; +extern const u8 gBattleDomeOpponentStats43[]; +extern const u8 gBattleDomeMatchNumber1[]; +extern const u8 gBattleDomeMatchNumber2[]; +extern const u8 gBattleDomeMatchNumber3[]; +extern const u8 gBattleDomeMatchNumber4[]; +extern const u8 gBattleDomeMatchNumber5[]; +extern const u8 gBattleDomeMatchNumber6[]; +extern const u8 gBattleDomeMatchNumber7[]; +extern const u8 gBattleDomeMatchNumber8[]; +extern const u8 gBattleDomeMatchNumber9[]; +extern const u8 gBattleDomeMatchNumber10[]; +extern const u8 gBattleDomeMatchNumber11[]; +extern const u8 gBattleDomeMatchNumber12[]; +extern const u8 gBattleDomeMatchNumber13[]; +extern const u8 gBattleDomeMatchNumber14[]; +extern const u8 gBattleDomeMatchNumber15[]; +extern const u8 gBattleDomeWinStrings1[]; +extern const u8 gBattleDomeWinStrings2[]; +extern const u8 gBattleDomeWinStrings3[]; +extern const u8 gBattleDomeWinStrings4[]; +extern const u8 gBattleDomeWinStrings5[]; +extern const u8 gBattleDomeWinStrings6[]; +extern const u8 gBattleDomeWinStrings7[]; + // This file's functions. static u8 GetDomeTrainerMonIvs(u16 trainerId); static void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray); @@ -186,6 +260,32 @@ static void DecideRoundWinners(u8 roundId); static u8 sub_81953E8(u8 tournamentId, u8); static void sub_81948EC(u8, u8); +void sub_8190B40(struct Sprite *sprite); +void sub_8190C6C(struct Sprite *sprite); + +void sub_818E9CC(void); +void sub_818EA84(void); +void sub_818ED28(void); +void sub_818F9B0(void); +void sub_818F9E0(void); +void sub_818FA20(void); +void ShowDomeOpponentInfo(void); +void sub_81938A4(void); +void sub_81938E0(void); +void sub_8190298(void); +void sub_81902E4(void); +void sub_8193D40(void); +void sub_8193D7C(void); +void sub_81902F8(void); +void sub_819033C(void); +void sub_8194D68(void); +void sub_8194E44(void); +void sub_8194EB4(void); +void sub_8194EC0(void); +void sub_8194EF8(void); +void sub_8194F58(void); +void InitDomeTrainers(void); + // EWRAM variables. EWRAM_DATA u32 gUnknown_0203CD70 = 0; static EWRAM_DATA u32 gUnknown_0203CD74 = 0; @@ -193,7 +293,7 @@ static EWRAM_DATA struct BattleDomeStruct *sBattleDomeStruct = {0}; static EWRAM_DATA u8 *sTilemapBuffer = NULL; // Const rom data. -ALIGNED(4) + 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}, @@ -553,6 +653,1721 @@ static const u8 sMovePointsForDomeTrainers[MOVES_COUNT][DOME_TOURNAMENT_TRAINERS [MOVE_PSYCHO_BOOST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, }; +static const u8 gUnknown_0860C988[31][16] = +{ + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0}, + {1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0}, + {0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0}, + {0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0}, + {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4}, + {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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, +}; +static const u8 sUnusedArray[] = +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 2, 253, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 253, 0, + 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 253, 254, 0, 0, 0, 0, + 0, 254, 0, 0, 0, 0, 0, 254, 0, 0, 0, 0, 0, 254, 0, 0, + 0, 0, 0, 254, 0, 0, 0, 0, 0, +}; + +static const u8 gUnknown_0860CBF1[][5][4]= +{ + {{0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}}, + {{0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}}, + {{0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}}, + {{0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}}, + {{0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}}, + {{0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}}, + {{0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}}, + {{0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}}, + {{0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}}, + {{0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}}, + {{0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}}, + {{0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}}, + {{0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}}, + {{0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}}, + {{0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}}, + {{0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}}, + {{0x13, 0x11, 0x00, 0x14}, {0x13, 0x11, 0x00, 0x18}, {0x13, 0x11, 0x00, 0x18}, {0x13, 0x11, 0x00, 0x18}, {0x13, 0x11, 0x00, 0x18}}, + {{0x10, 0x12, 0x02, 0x15}, {0x10, 0x12, 0x02, 0x18}, {0x10, 0x12, 0x02, 0x18}, {0x10, 0x12, 0x02, 0x18}, {0x10, 0x12, 0x02, 0x18}}, + {{0x11, 0x13, 0x04, 0x16}, {0x11, 0x13, 0x04, 0x19}, {0x11, 0x13, 0x04, 0x19}, {0x11, 0x13, 0x04, 0x19}, {0x11, 0x13, 0x04, 0x19}}, + {{0x12, 0x10, 0x06, 0x17}, {0x12, 0x10, 0x06, 0x19}, {0x12, 0x10, 0x06, 0x19}, {0x12, 0x10, 0x06, 0x19}, {0x12, 0x10, 0x06, 0x19}}, + {{0x17, 0x15, 0x10, 0x08}, {0x17, 0x15, 0x1a, 0x08}, {0x17, 0x15, 0x1a, 0x08}, {0x17, 0x15, 0x1a, 0x08}, {0x17, 0x15, 0x1a, 0x08}}, + {{0x14, 0x16, 0x11, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}}, + {{0x15, 0x17, 0x12, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}}, + {{0x16, 0x14, 0x13, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}}, + {{0xff, 0xff, 0xff, 0xff}, {0x19, 0x19, 0x10, 0x1a}, {0x19, 0x19, 0x10, 0x1c}, {0x19, 0x19, 0x10, 0x1c}, {0x19, 0x19, 0x10, 0x1c}}, + {{0xff, 0xff, 0xff, 0xff}, {0x18, 0x18, 0x12, 0x1b}, {0x18, 0x18, 0x12, 0x1c}, {0x18, 0x18, 0x12, 0x1c}, {0x18, 0x18, 0x12, 0x1c}}, + {{0xff, 0xff, 0xff, 0xff}, {0x1b, 0x1b, 0x18, 0x14}, {0x1b, 0x1b, 0x1d, 0x14}, {0x1b, 0x1b, 0x1d, 0x14}, {0x1b, 0x1b, 0x1d, 0x14}}, + {{0xff, 0xff, 0xff, 0xff}, {0x1a, 0x1a, 0x19, 0x16}, {0x1a, 0x1a, 0x1d, 0x16}, {0x1a, 0x1a, 0x1d, 0x16}, {0x1a, 0x1a, 0x1d, 0x16}}, + {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x18, 0x1d}, {0xff, 0xff, 0x18, 0x1e}, {0xff, 0xff, 0x18, 0x1e}}, + {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x1c, 0x1a}, {0xff, 0xff, 0x1e, 0x1a}, {0xff, 0xff, 0x1e, 0x1a}}, + {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x1c, 0x1d}, {0xff, 0xff, 0x1c, 0x1d}}, + {{0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}}, +}; +static const u8 gUnused_0860CBF1[] = {0x00, 0x00, 0x00}; + +static const struct BgTemplate gUnknown_0860CE74[4] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, +}; + +static const struct BgTemplate gUnknown_0860CE84[4] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 20, + .screenSize = 3, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 24, + .screenSize = 3, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 28, + .screenSize = 3, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 7, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, +}; + +static const struct WindowTemplate gUnknown_0860CE94[] = +{ + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 3, + .width = 8, + .height = 16, + .paletteNum = 15, + .baseBlock = 16, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 3, + .width = 8, + .height = 16, + .paletteNum = 15, + .baseBlock = 144, + }, + { + .priority = 0, + .tilemapLeft = 8, + .tilemapTop = 1, + .width = 14, + .height = 2, + .paletteNum = 15, + .baseBlock = 272, + }, + DUMMY_WIN_TEMPLATE, +}; + +static const struct WindowTemplate gUnknown_0860CEB4[] = +{ + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 2, + .width = 26, + .height = 2, + .paletteNum = 15, + .baseBlock = 1, + }, + { + .priority = 0, + .tilemapLeft = 16, + .tilemapTop = 5, + .width = 8, + .height = 2, + .paletteNum = 15, + .baseBlock = 53, + }, + { + .priority = 0, + .tilemapLeft = 19, + .tilemapTop = 7, + .width = 9, + .height = 3, + .paletteNum = 15, + .baseBlock = 69, + }, + { + .priority = 0, + .tilemapLeft = 16, + .tilemapTop = 10, + .width = 8, + .height = 2, + .paletteNum = 15, + .baseBlock = 96, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 12, + .width = 26, + .height = 7, + .paletteNum = 15, + .baseBlock = 112, + }, + { + .priority = 0, + .tilemapLeft = 5, + .tilemapTop = 2, + .width = 23, + .height = 2, + .paletteNum = 15, + .baseBlock = 294, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 5, + .width = 8, + .height = 2, + .paletteNum = 15, + .baseBlock = 340, + }, + { + .priority = 0, + .tilemapLeft = 20, + .tilemapTop = 5, + .width = 8, + .height = 2, + .paletteNum = 15, + .baseBlock = 356, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 16, + .width = 26, + .height = 2, + .paletteNum = 15, + .baseBlock = 372, + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 2, + .width = 26, + .height = 2, + .paletteNum = 15, + .baseBlock = 1, + }, + { + .priority = 1, + .tilemapLeft = 16, + .tilemapTop = 5, + .width = 8, + .height = 2, + .paletteNum = 15, + .baseBlock = 53, + }, + { + .priority = 1, + .tilemapLeft = 19, + .tilemapTop = 7, + .width = 9, + .height = 3, + .paletteNum = 15, + .baseBlock = 69, + }, + { + .priority = 1, + .tilemapLeft = 16, + .tilemapTop = 10, + .width = 8, + .height = 2, + .paletteNum = 15, + .baseBlock = 96, + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 12, + .width = 26, + .height = 7, + .paletteNum = 15, + .baseBlock = 112, + }, + { + .priority = 1, + .tilemapLeft = 5, + .tilemapTop = 2, + .width = 23, + .height = 2, + .paletteNum = 15, + .baseBlock = 294, + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 5, + .width = 8, + .height = 2, + .paletteNum = 15, + .baseBlock = 340, + }, + { + .priority = 1, + .tilemapLeft = 20, + .tilemapTop = 5, + .width = 8, + .height = 2, + .paletteNum = 15, + .baseBlock = 356, + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 16, + .width = 26, + .height = 2, + .paletteNum = 15, + .baseBlock = 372, + }, +}; + +static const struct ScanlineEffectParams gUnknown_0860CF44 = +{ + .dmaDest = (void *)REG_ADDR_BG3CNT, + .dmaControl = 0xa2600001, + .initState = 1, +}; + +static const struct CompressedSpriteSheet gUnknown_0860CF50[] = +{ + gBattleFrontierGfx_DomeOptions, 0x0600, 0x0000, + NULL +}; + +static const struct CompressedSpritePalette gUnknown_0860CF60[] = +{ + gUnknown_08D85444, 0x0000, + NULL +}; + +static const struct OamData gUnknown_0860CF70 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_0860CF78 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 0, + .paletteNum = 1, + .affineParam = 0, +}; + +static const struct OamData gUnknown_0860CF80 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 2, + .affineParam = 0, +}; + +static const struct OamData gUnknown_0860CF88 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 2, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 2, + .affineParam = 0, +}; + +static const union AnimCmd gUnknown_0860CF90[] = +{ + ANIMCMD_FRAME(20, 1), + ANIMCMD_END, +}; +static const union AnimCmd gUnknown_0860CF98[] = +{ + ANIMCMD_FRAME(24, 1), + ANIMCMD_END, +}; + +static const union AnimCmd * const gUnknown_0860CFA0[] = +{ + gUnknown_0860CF90, + gUnknown_0860CF98, +}; + +static const struct SpriteTemplate gUnknown_0860CFA8 = {0x0000, 0xffff, &gUnknown_0860CF70, gUnknown_0860CFA0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; + +static const union AnimCmd gUnknown_0860CFC0[] = +{ + ANIMCMD_FRAME(8, 1), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0860CFC8[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd * const gUnknown_0860CFD0[] = +{ + gUnknown_0860CFC0, + gUnknown_0860CFC8, +}; + +static const struct SpriteTemplate gUnknown_0860CFD8 = {0x0000, 0xffff, &gUnknown_0860CF78, gUnknown_0860CFD0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; + +static const union AnimCmd gUnknown_0860CFF0[] = +{ + ANIMCMD_FRAME(40, 1), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0860CFF8[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END, + }; + +static const union AnimCmd * const gUnknown_0860D000[] = +{ + gUnknown_0860CFF0, + gUnknown_0860CFF8, +}; + +static const struct SpriteTemplate gUnknown_0860D008 = {0x0000, 0xffff, &gUnknown_0860CF78, gUnknown_0860D000, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; + +static const union AnimCmd gUnknown_0860D020[] = +{ + ANIMCMD_FRAME(18, 1), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0860D028[] = +{ + ANIMCMD_FRAME(18, 129, .vFlip = TRUE), + ANIMCMD_END, + }; + +static const union AnimCmd gUnknown_0860D030[] = +{ + ANIMCMD_FRAME(16, 65, .hFlip = TRUE), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0860D038[] = +{ + ANIMCMD_FRAME(16, 1), + ANIMCMD_END, +}; + +static const union AnimCmd * const gUnknown_0860D040[] = +{ + gUnknown_0860D020, + gUnknown_0860D028, +}; + +static const union AnimCmd * const gUnknown_0860D048[] = +{ + gUnknown_0860D030, + gUnknown_0860D038, +}; + +static const struct SpriteTemplate gUnknown_0860D050 = {0x0000, 0xffff, &gUnknown_0860CF88, gUnknown_0860D048, NULL, gDummySpriteAffineAnimTable, sub_8190B40}; +static const struct SpriteTemplate gUnknown_0860D068 = {0x0000, 0xffff, &gUnknown_0860CF80, gUnknown_0860D040, NULL, gDummySpriteAffineAnimTable, sub_8190C6C}; + +static const u8 gUnknown_0860D080[] = {0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01}; + +static void (* const gUnknown_0860D090[])(void) = +{ + sub_818E9CC, + sub_818EA84, + sub_818ED28, + sub_818F9B0, + sub_818F9E0, + sub_818FA20, + ShowDomeOpponentInfo, + sub_81938A4, + sub_81938E0, + sub_8190298, + sub_81902E4, + sub_8193D40, + sub_8193D7C, + sub_81902F8, + sub_819033C, + sub_8194D48, + sub_8194D68, + sub_8194E44, + sub_8194EB4, + sub_8194EC0, + sub_8194EF8, + sub_8194F58, + InitDomeTrainers, +}; + +static const u32 gUnknown_0860D0EC[][2] = +{ + {0x00000004, 0x00000008}, + {0x00100000, 0x00200000}, +}; + +static const u32 gUnknown_0860D0FC[][2] = +{ + {0xfffffffb, 0xfffffff7}, + {0xffefffff, 0xffdfffff}, +}; + +static const u8 gUnknown_0860D10C[][4] = +{ + {0x08, 0x00, 0x04, 0x08}, + {0x09, 0x0c, 0x08, 0x00}, + {0x0a, 0x08, 0x0c, 0x00}, + {0x0b, 0x04, 0x00, 0x08}, + {0x0c, 0x00, 0x04, 0x08}, + {0x0d, 0x0c, 0x08, 0x00}, + {0x0e, 0x08, 0x0c, 0x00}, + {0x0f, 0x04, 0x00, 0x08}, + {0x00, 0x00, 0x04, 0x08}, + {0x01, 0x0c, 0x08, 0x00}, + {0x02, 0x08, 0x0c, 0x00}, + {0x03, 0x04, 0x00, 0x08}, + {0x04, 0x00, 0x04, 0x08}, + {0x05, 0x0c, 0x08, 0x00}, + {0x06, 0x08, 0x0c, 0x00}, + {0x07, 0x04, 0x00, 0x08}, +}; + +static const u8 gUnknown_0860D14C[] = {0x00, 0x08, 0x04, 0x0c, 0x07, 0x0f, 0x03, 0x0b, 0x02, 0x0a, 0x06, 0x0e, 0x05, 0x0d, 0x01, 0x09}; + +static const u8 gUnknown_0860D15C[] = +{ + 0x00, 0x08, 0x0c, 0x0e, 0x00, 0x08, 0x0c, 0x0e, + 0x01, 0x08, 0x0c, 0x0e, 0x01, 0x08, 0x0c, 0x0e, + 0x02, 0x09, 0x0c, 0x0e, 0x02, 0x09, 0x0c, 0x0e, + 0x03, 0x09, 0x0c, 0x0e, 0x03, 0x09, 0x0c, 0x0e, + 0x04, 0x0a, 0x0d, 0x0e, 0x04, 0x0a, 0x0d, 0x0e, + 0x05, 0x0a, 0x0d, 0x0e, 0x05, 0x0a, 0x0d, 0x0e, + 0x06, 0x0b, 0x0d, 0x0e, 0x06, 0x0b, 0x0d, 0x0e, + 0x07, 0x0b, 0x0d, 0x0e, 0x07, 0x0b, 0x0d, 0x0e, +}; + +static const u8 gUnknown_0860D19C[] = {0x17, 0x1b, 0x1d, 0x1e}; + +static const u8 gUnknown_0860D1A0[][4] = +{ + {0x10, 0x18, 0x1c, 0x1e}, + {0x11, 0x18, 0x1c, 0x1e}, + {0x12, 0x19, 0x1c, 0x1e}, + {0x13, 0x19, 0x1c, 0x1e}, + {0x14, 0x1a, 0x1d, 0x1e}, + {0x15, 0x1a, 0x1d, 0x1e}, + {0x16, 0x1b, 0x1d, 0x1e}, + {0x17, 0x1b, 0x1d, 0x1e}, +}; + +static const u8 gUnknown_0860D1C0[] = {0x00, 0x0f, 0x08, 0x07, 0x03, 0x0c, 0x0b, 0x04, 0x01, 0x0e, 0x09, 0x06, 0x02, 0x0d, 0x0a, 0x05}; + +static const u8 *const gBattleDomePotentialPointers[] = +{ + gBattleDomeOpponentPotential1, + gBattleDomeOpponentPotential2, + gBattleDomeOpponentPotential3, + gBattleDomeOpponentPotential4, + gBattleDomeOpponentPotential5, + gBattleDomeOpponentPotential6, + gBattleDomeOpponentPotential7, + gBattleDomeOpponentPotential8, + gBattleDomeOpponentPotential9, + gBattleDomeOpponentPotential10, + gBattleDomeOpponentPotential11, + gBattleDomeOpponentPotential12, + gBattleDomeOpponentPotential13, + gBattleDomeOpponentPotential14, + gBattleDomeOpponentPotential15, + gBattleDomeOpponentPotential16, + gBattleDomeOpponentPotential17, +}; + +static const u8 *const gBattleDomeOpponentStylePointers[] = +{ + gBattleDomeOpponentStyle1, + gBattleDomeOpponentStyle2, + gBattleDomeOpponentStyle3, + gBattleDomeOpponentStyle4, + gBattleDomeOpponentStyle5, + gBattleDomeOpponentStyle6, + gBattleDomeOpponentStyle7, + gBattleDomeOpponentStyle8, + gBattleDomeOpponentStyle9, + gBattleDomeOpponentStyle10, + gBattleDomeOpponentStyle11, + gBattleDomeOpponentStyle12, + gBattleDomeOpponentStyle13, + gBattleDomeOpponentStyle14, + gBattleDomeOpponentStyle15, + gBattleDomeOpponentStyle16, + gBattleDomeOpponentStyle17, + gBattleDomeOpponentStyle18, + gBattleDomeOpponentStyle19, + gBattleDomeOpponentStyle20, + gBattleDomeOpponentStyle21, + gBattleDomeOpponentStyle22, + gBattleDomeOpponentStyle23, + gBattleDomeOpponentStyle24, + gBattleDomeOpponentStyle25, + gBattleDomeOpponentStyle26, + gBattleDomeOpponentStyle27, + gBattleDomeOpponentStyle28, + gBattleDomeOpponentStyleUnused1, + gBattleDomeOpponentStyleUnused2, + gBattleDomeOpponentStyleUnused3, + gBattleDomeOpponentStyleUnused4, +}; + +static const u8 *const gBattleDomeOpponentStatsPointers[] = +{ + gBattleDomeOpponentStats1, + gBattleDomeOpponentStats2, + gBattleDomeOpponentStats3, + gBattleDomeOpponentStats4, + gBattleDomeOpponentStats5, + gBattleDomeOpponentStats6, + gBattleDomeOpponentStats7, + gBattleDomeOpponentStats8, + gBattleDomeOpponentStats9, + gBattleDomeOpponentStats10, + gBattleDomeOpponentStats11, + gBattleDomeOpponentStats12, + gBattleDomeOpponentStats13, + gBattleDomeOpponentStats14, + gBattleDomeOpponentStats15, + gBattleDomeOpponentStats16, + gBattleDomeOpponentStats17, + gBattleDomeOpponentStats18, + gBattleDomeOpponentStats19, + gBattleDomeOpponentStats20, + gBattleDomeOpponentStats21, + gBattleDomeOpponentStats22, + gBattleDomeOpponentStats23, + gBattleDomeOpponentStats24, + gBattleDomeOpponentStats25, + gBattleDomeOpponentStats26, + gBattleDomeOpponentStats27, + gBattleDomeOpponentStats28, + gBattleDomeOpponentStats29, + gBattleDomeOpponentStats30, + gBattleDomeOpponentStats31, + gBattleDomeOpponentStats32, + gBattleDomeOpponentStats33, + gBattleDomeOpponentStats34, + gBattleDomeOpponentStats35, + gBattleDomeOpponentStats36, + gBattleDomeOpponentStats37, + gBattleDomeOpponentStats38, + gBattleDomeOpponentStats39, + gBattleDomeOpponentStats40, + gBattleDomeOpponentStats41, + gBattleDomeOpponentStats42, + gBattleDomeOpponentStats43, +}; + +static const u8 gUnknown_0860D340[] = {0x68, 0x88, 0x68}; +static const u8 gUnknown_0860D343[] = {0x26, 0x3e, 0x4e}; +static const u8 gUnknown_0860D346[] = {0x00, 0x04, 0x00}; + +static const u8 gUnknown_0860D349[] = {0x00, 0x05, 0x09, 0x0c, 0x0e, 0x00, 0x00}; + +static const u8 *const gBattleDomeMatchNumberPointers[] = +{ + gBattleDomeMatchNumber1, + gBattleDomeMatchNumber2, + gBattleDomeMatchNumber3, + gBattleDomeMatchNumber4, + gBattleDomeMatchNumber5, + gBattleDomeMatchNumber6, + gBattleDomeMatchNumber7, + gBattleDomeMatchNumber8, + gBattleDomeMatchNumber9, + gBattleDomeMatchNumber10, + gBattleDomeMatchNumber11, + gBattleDomeMatchNumber12, + gBattleDomeMatchNumber13, + gBattleDomeMatchNumber14, + gBattleDomeMatchNumber15, +}; + +static const u8 *const gBattleDomeWinStringsPointers[] = +{ + gBattleDomeWinStrings1, + gBattleDomeWinStrings2, + gBattleDomeWinStrings3, + gBattleDomeWinStrings4, + gBattleDomeWinStrings5, + gBattleDomeWinStrings6, + gBattleDomeWinStrings7, +}; + +static const u8 gUnknown_0860D3A8[] = {0x60, 0x60, 0x60}; +static const u8 gUnknown_0860D3AB[] = {0x38, 0x50, 0x68}; +static const u8 gUnknown_0860D3AE[] = {0x90, 0x90, 0x90}; +static const u8 gUnknown_0860D3B1[] = {0x38, 0x50, 0x68}; + +static const u8 gUnknown_0860D3B4[] = {0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01}; + +static const u8 gUnknown_0860D3C4[][3] = +{ + {0x00, 0x02, 0x00}, + {0x02, 0x02, 0x00}, + {0x04, 0x02, 0x00}, + {0x06, 0x02, 0x00}, + {0x08, 0x02, 0x00}, + {0x0a, 0x02, 0x00}, + {0x0c, 0x02, 0x00}, + {0x0e, 0x02, 0x00}, + {0x00, 0x04, 0x01}, + {0x04, 0x04, 0x01}, + {0x08, 0x04, 0x01}, + {0x0c, 0x04, 0x01}, + {0x00, 0x08, 0x02}, + {0x08, 0x08, 0x02}, + {0x00, 0x10, 0x03}, +}; + +static const u8 gUnknown_0860D3F1[][2] = +{ + {0x00, 0x00}, + {0x01, 0x70}, + {0x01, 0x00}, + {0x00, 0x70}, + {0x00, 0x30}, + {0x01, 0x40}, + {0x01, 0x30}, + {0x00, 0x40}, + {0x00, 0x10}, + {0x01, 0x60}, + {0x01, 0x10}, + {0x00, 0x60}, + {0x00, 0x20}, + {0x01, 0x50}, + {0x01, 0x20}, + {0x00, 0x50}, +}; + +static const u8 gUnknown_0860D411[][2] = +{ + {0x44, 0x21}, + {0x44, 0x31}, + {0x44, 0x41}, + {0x44, 0x51}, + {0x44, 0x61}, + {0x44, 0x71}, + {0x44, 0x81}, + {0x44, 0x91}, + {0xac, 0x21}, + {0xac, 0x31}, + {0xac, 0x41}, + {0xac, 0x51}, + {0xac, 0x61}, + {0xac, 0x71}, + {0xac, 0x81}, + {0xac, 0x91}, + {0x57, 0x29}, + {0x57, 0x49}, + {0x57, 0x69}, + {0x57, 0x89}, + {0x99, 0x29}, + {0x99, 0x49}, + {0x99, 0x69}, + {0x99, 0x89}, + {0x5f, 0x39}, + {0x5f, 0x79}, + {0x91, 0x39}, + {0x91, 0x79}, + {0x67, 0x59}, + {0x89, 0x59}, + {0x78, 0x59}, +}; +const u8 sExtraByte = 0x00; + +static const struct UnkStruct_860DD10 gUnknown_0860d450[] = +{ + {.src = 0x6021, .y = 0x04, .x = 0x09}, + {.src = 0x6023, .y = 0x04, .x = 0x0a}, + {.src = 0x6047, .y = 0x05, .x = 0x0a}, + {.src = 0x6043, .y = 0x05, .x = 0x0b}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d460[] = +{ + {.src = 0x6021, .y = 0x04, .x = 0x09}, + {.src = 0x6023, .y = 0x04, .x = 0x0a}, + {.src = 0x6047, .y = 0x05, .x = 0x0a}, + {.src = 0x6023, .y = 0x05, .x = 0x0b}, + {.src = 0x6027, .y = 0x06, .x = 0x0b}, + {.src = 0x6047, .y = 0x07, .x = 0x0b}, + {.src = 0x6043, .y = 0x07, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d47c[] = +{ + {.src = 0x6021, .y = 0x04, .x = 0x09}, + {.src = 0x6023, .y = 0x04, .x = 0x0a}, + {.src = 0x6047, .y = 0x05, .x = 0x0a}, + {.src = 0x6023, .y = 0x05, .x = 0x0b}, + {.src = 0x6027, .y = 0x06, .x = 0x0b}, + {.src = 0x6047, .y = 0x07, .x = 0x0b}, + {.src = 0x6023, .y = 0x07, .x = 0x0c}, + {.src = 0x6027, .y = 0x08, .x = 0x0c}, + {.src = 0x6027, .y = 0x09, .x = 0x0c}, + {.src = 0x6027, .y = 0x0a, .x = 0x0c}, + {.src = 0x603b, .y = 0x0b, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d4a8[] = +{ + {.src = 0x6021, .y = 0x04, .x = 0x09}, + {.src = 0x6023, .y = 0x04, .x = 0x0a}, + {.src = 0x6047, .y = 0x05, .x = 0x0a}, + {.src = 0x6023, .y = 0x05, .x = 0x0b}, + {.src = 0x6027, .y = 0x06, .x = 0x0b}, + {.src = 0x6047, .y = 0x07, .x = 0x0b}, + {.src = 0x6023, .y = 0x07, .x = 0x0c}, + {.src = 0x6027, .y = 0x08, .x = 0x0c}, + {.src = 0x6027, .y = 0x09, .x = 0x0c}, + {.src = 0x6027, .y = 0x0a, .x = 0x0c}, + {.src = 0x603b, .y = 0x0b, .x = 0x0c}, + {.src = 0x602c, .y = 0x0b, .x = 0x0d}, + {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d4dc[] = +{ + {.src = 0x6021, .y = 0x06, .x = 0x09}, + {.src = 0x6021, .y = 0x06, .x = 0x0a}, + {.src = 0x6027, .y = 0x05, .x = 0x0a}, + {.src = 0x6043, .y = 0x05, .x = 0x0b}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d4ec[] = +{ + {.src = 0x6021, .y = 0x06, .x = 0x09}, + {.src = 0x6021, .y = 0x06, .x = 0x0a}, + {.src = 0x6027, .y = 0x05, .x = 0x0a}, + {.src = 0x6023, .y = 0x05, .x = 0x0b}, + {.src = 0x6027, .y = 0x06, .x = 0x0b}, + {.src = 0x6047, .y = 0x07, .x = 0x0b}, + {.src = 0x6043, .y = 0x07, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d508[] = +{ + {.src = 0x6021, .y = 0x06, .x = 0x09}, + {.src = 0x6021, .y = 0x06, .x = 0x0a}, + {.src = 0x6027, .y = 0x05, .x = 0x0a}, + {.src = 0x6023, .y = 0x05, .x = 0x0b}, + {.src = 0x6027, .y = 0x06, .x = 0x0b}, + {.src = 0x6047, .y = 0x07, .x = 0x0b}, + {.src = 0x6023, .y = 0x07, .x = 0x0c}, + {.src = 0x6027, .y = 0x08, .x = 0x0c}, + {.src = 0x6027, .y = 0x09, .x = 0x0c}, + {.src = 0x6027, .y = 0x0a, .x = 0x0c}, + {.src = 0x603b, .y = 0x0b, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d534[] = +{ + {.src = 0x6021, .y = 0x06, .x = 0x09}, + {.src = 0x6021, .y = 0x06, .x = 0x0a}, + {.src = 0x6027, .y = 0x05, .x = 0x0a}, + {.src = 0x6023, .y = 0x05, .x = 0x0b}, + {.src = 0x6027, .y = 0x06, .x = 0x0b}, + {.src = 0x6047, .y = 0x07, .x = 0x0b}, + {.src = 0x6023, .y = 0x07, .x = 0x0c}, + {.src = 0x6027, .y = 0x08, .x = 0x0c}, + {.src = 0x6027, .y = 0x09, .x = 0x0c}, + {.src = 0x6027, .y = 0x0a, .x = 0x0c}, + {.src = 0x603b, .y = 0x0b, .x = 0x0c}, + {.src = 0x602c, .y = 0x0b, .x = 0x0d}, + {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d568[] = +{ + {.src = 0x6021, .y = 0x08, .x = 0x09}, + {.src = 0x6023, .y = 0x08, .x = 0x0a}, + {.src = 0x6047, .y = 0x09, .x = 0x0a}, + {.src = 0x6021, .y = 0x09, .x = 0x0b}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d578[] = +{ + {.src = 0x6021, .y = 0x08, .x = 0x09}, + {.src = 0x6023, .y = 0x08, .x = 0x0a}, + {.src = 0x6047, .y = 0x09, .x = 0x0a}, + {.src = 0x6021, .y = 0x09, .x = 0x0b}, + {.src = 0x6027, .y = 0x08, .x = 0x0b}, + {.src = 0x6027, .y = 0x07, .x = 0x0b}, + {.src = 0x6043, .y = 0x07, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d594[] = +{ + {.src = 0x6021, .y = 0x08, .x = 0x09}, + {.src = 0x6023, .y = 0x08, .x = 0x0a}, + {.src = 0x6047, .y = 0x09, .x = 0x0a}, + {.src = 0x6021, .y = 0x09, .x = 0x0b}, + {.src = 0x6027, .y = 0x08, .x = 0x0b}, + {.src = 0x6027, .y = 0x07, .x = 0x0b}, + {.src = 0x6023, .y = 0x07, .x = 0x0c}, + {.src = 0x6027, .y = 0x08, .x = 0x0c}, + {.src = 0x6027, .y = 0x09, .x = 0x0c}, + {.src = 0x6027, .y = 0x0a, .x = 0x0c}, + {.src = 0x603b, .y = 0x0b, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d5c0[] = +{ + {.src = 0x6021, .y = 0x08, .x = 0x09}, + {.src = 0x6023, .y = 0x08, .x = 0x0a}, + {.src = 0x6047, .y = 0x09, .x = 0x0a}, + {.src = 0x6021, .y = 0x09, .x = 0x0b}, + {.src = 0x6027, .y = 0x08, .x = 0x0b}, + {.src = 0x6027, .y = 0x07, .x = 0x0b}, + {.src = 0x6023, .y = 0x07, .x = 0x0c}, + {.src = 0x6027, .y = 0x08, .x = 0x0c}, + {.src = 0x6027, .y = 0x09, .x = 0x0c}, + {.src = 0x6027, .y = 0x0a, .x = 0x0c}, + {.src = 0x603b, .y = 0x0b, .x = 0x0c}, + {.src = 0x602c, .y = 0x0b, .x = 0x0d}, + {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d5f4[] = +{ + {.src = 0x6021, .y = 0x0a, .x = 0x09}, + {.src = 0x6021, .y = 0x0a, .x = 0x0a}, + {.src = 0x6027, .y = 0x09, .x = 0x0a}, + {.src = 0x6021, .y = 0x09, .x = 0x0b}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d604[] = +{ + {.src = 0x6021, .y = 0x0a, .x = 0x09}, + {.src = 0x6021, .y = 0x0a, .x = 0x0a}, + {.src = 0x6027, .y = 0x09, .x = 0x0a}, + {.src = 0x6021, .y = 0x09, .x = 0x0b}, + {.src = 0x6027, .y = 0x08, .x = 0x0b}, + {.src = 0x6027, .y = 0x07, .x = 0x0b}, + {.src = 0x6043, .y = 0x07, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d620[] = +{ + {.src = 0x6021, .y = 0x0a, .x = 0x09}, + {.src = 0x6021, .y = 0x0a, .x = 0x0a}, + {.src = 0x6027, .y = 0x09, .x = 0x0a}, + {.src = 0x6021, .y = 0x09, .x = 0x0b}, + {.src = 0x6027, .y = 0x08, .x = 0x0b}, + {.src = 0x6027, .y = 0x07, .x = 0x0b}, + {.src = 0x6023, .y = 0x07, .x = 0x0c}, + {.src = 0x6027, .y = 0x08, .x = 0x0c}, + {.src = 0x6027, .y = 0x09, .x = 0x0c}, + {.src = 0x6027, .y = 0x0a, .x = 0x0c}, + {.src = 0x603b, .y = 0x0b, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d64c[] = +{ + {.src = 0x6021, .y = 0x0a, .x = 0x09}, + {.src = 0x6021, .y = 0x0a, .x = 0x0a}, + {.src = 0x6027, .y = 0x09, .x = 0x0a}, + {.src = 0x6021, .y = 0x09, .x = 0x0b}, + {.src = 0x6027, .y = 0x08, .x = 0x0b}, + {.src = 0x6027, .y = 0x07, .x = 0x0b}, + {.src = 0x6023, .y = 0x07, .x = 0x0c}, + {.src = 0x6027, .y = 0x08, .x = 0x0c}, + {.src = 0x6027, .y = 0x09, .x = 0x0c}, + {.src = 0x6027, .y = 0x0a, .x = 0x0c}, + {.src = 0x603b, .y = 0x0b, .x = 0x0c}, + {.src = 0x602c, .y = 0x0b, .x = 0x0d}, + {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d680[] = +{ + {.src = 0x6021, .y = 0x0c, .x = 0x09}, + {.src = 0x6023, .y = 0x0c, .x = 0x0a}, + {.src = 0x6047, .y = 0x0d, .x = 0x0a}, + {.src = 0x6043, .y = 0x0d, .x = 0x0b}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d690[] = +{ + {.src = 0x6021, .y = 0x0c, .x = 0x09}, + {.src = 0x6023, .y = 0x0c, .x = 0x0a}, + {.src = 0x6047, .y = 0x0d, .x = 0x0a}, + {.src = 0x6023, .y = 0x0d, .x = 0x0b}, + {.src = 0x6027, .y = 0x0e, .x = 0x0b}, + {.src = 0x6047, .y = 0x0f, .x = 0x0b}, + {.src = 0x6021, .y = 0x0f, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d6ac[] = +{ + {.src = 0x6021, .y = 0x0c, .x = 0x09}, + {.src = 0x6023, .y = 0x0c, .x = 0x0a}, + {.src = 0x6047, .y = 0x0d, .x = 0x0a}, + {.src = 0x6023, .y = 0x0d, .x = 0x0b}, + {.src = 0x6027, .y = 0x0e, .x = 0x0b}, + {.src = 0x6047, .y = 0x0f, .x = 0x0b}, + {.src = 0x6021, .y = 0x0f, .x = 0x0c}, + {.src = 0x6033, .y = 0x0e, .x = 0x0c}, + {.src = 0x6032, .y = 0x0d, .x = 0x0c}, + {.src = 0x6031, .y = 0x0c, .x = 0x0c}, + {.src = 0x6030, .y = 0x0b, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d6d8[] = +{ + {.src = 0x6021, .y = 0x0c, .x = 0x09}, + {.src = 0x6023, .y = 0x0c, .x = 0x0a}, + {.src = 0x6047, .y = 0x0d, .x = 0x0a}, + {.src = 0x6023, .y = 0x0d, .x = 0x0b}, + {.src = 0x6027, .y = 0x0e, .x = 0x0b}, + {.src = 0x6047, .y = 0x0f, .x = 0x0b}, + {.src = 0x6021, .y = 0x0f, .x = 0x0c}, + {.src = 0x6033, .y = 0x0e, .x = 0x0c}, + {.src = 0x6032, .y = 0x0d, .x = 0x0c}, + {.src = 0x6031, .y = 0x0c, .x = 0x0c}, + {.src = 0x6030, .y = 0x0b, .x = 0x0c}, + {.src = 0x602c, .y = 0x0b, .x = 0x0d}, + {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d70c[] = +{ + {.src = 0x6021, .y = 0x0e, .x = 0x09}, + {.src = 0x6021, .y = 0x0e, .x = 0x0a}, + {.src = 0x6027, .y = 0x0d, .x = 0x0a}, + {.src = 0x6043, .y = 0x0d, .x = 0x0b}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d71c[] = +{ + {.src = 0x6021, .y = 0x0e, .x = 0x09}, + {.src = 0x6021, .y = 0x0e, .x = 0x0a}, + {.src = 0x6027, .y = 0x0d, .x = 0x0a}, + {.src = 0x6023, .y = 0x0d, .x = 0x0b}, + {.src = 0x6027, .y = 0x0e, .x = 0x0b}, + {.src = 0x6047, .y = 0x0f, .x = 0x0b}, + {.src = 0x6021, .y = 0x0f, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d738[] = +{ + {.src = 0x6021, .y = 0x0e, .x = 0x09}, + {.src = 0x6021, .y = 0x0e, .x = 0x0a}, + {.src = 0x6027, .y = 0x0d, .x = 0x0a}, + {.src = 0x6023, .y = 0x0d, .x = 0x0b}, + {.src = 0x6027, .y = 0x0e, .x = 0x0b}, + {.src = 0x6047, .y = 0x0f, .x = 0x0b}, + {.src = 0x6021, .y = 0x0f, .x = 0x0c}, + {.src = 0x6033, .y = 0x0e, .x = 0x0c}, + {.src = 0x6032, .y = 0x0d, .x = 0x0c}, + {.src = 0x6031, .y = 0x0c, .x = 0x0c}, + {.src = 0x6030, .y = 0x0b, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d764[] = +{ + {.src = 0x6021, .y = 0x0e, .x = 0x09}, + {.src = 0x6021, .y = 0x0e, .x = 0x0a}, + {.src = 0x6027, .y = 0x0d, .x = 0x0a}, + {.src = 0x6023, .y = 0x0d, .x = 0x0b}, + {.src = 0x6027, .y = 0x0e, .x = 0x0b}, + {.src = 0x6047, .y = 0x0f, .x = 0x0b}, + {.src = 0x6021, .y = 0x0f, .x = 0x0c}, + {.src = 0x6033, .y = 0x0e, .x = 0x0c}, + {.src = 0x6032, .y = 0x0d, .x = 0x0c}, + {.src = 0x6031, .y = 0x0c, .x = 0x0c}, + {.src = 0x6030, .y = 0x0b, .x = 0x0c}, + {.src = 0x602c, .y = 0x0b, .x = 0x0d}, + {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d798[] = +{ + {.src = 0x6021, .y = 0x10, .x = 0x09}, + {.src = 0x6023, .y = 0x10, .x = 0x0a}, + {.src = 0x6047, .y = 0x11, .x = 0x0a}, + {.src = 0x6021, .y = 0x11, .x = 0x0b}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d7a8[] = +{ + {.src = 0x6021, .y = 0x10, .x = 0x09}, + {.src = 0x6023, .y = 0x10, .x = 0x0a}, + {.src = 0x6047, .y = 0x11, .x = 0x0a}, + {.src = 0x6021, .y = 0x11, .x = 0x0b}, + {.src = 0x6027, .y = 0x10, .x = 0x0b}, + {.src = 0x6027, .y = 0x0f, .x = 0x0b}, + {.src = 0x6021, .y = 0x0f, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d7c4[] = +{ + {.src = 0x6021, .y = 0x10, .x = 0x09}, + {.src = 0x6023, .y = 0x10, .x = 0x0a}, + {.src = 0x6047, .y = 0x11, .x = 0x0a}, + {.src = 0x6021, .y = 0x11, .x = 0x0b}, + {.src = 0x6027, .y = 0x10, .x = 0x0b}, + {.src = 0x6027, .y = 0x0f, .x = 0x0b}, + {.src = 0x6021, .y = 0x0f, .x = 0x0c}, + {.src = 0x6033, .y = 0x0e, .x = 0x0c}, + {.src = 0x6032, .y = 0x0d, .x = 0x0c}, + {.src = 0x6031, .y = 0x0c, .x = 0x0c}, + {.src = 0x6030, .y = 0x0b, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d7f0[] = +{ + {.src = 0x6021, .y = 0x10, .x = 0x09}, + {.src = 0x6023, .y = 0x10, .x = 0x0a}, + {.src = 0x6047, .y = 0x11, .x = 0x0a}, + {.src = 0x6021, .y = 0x11, .x = 0x0b}, + {.src = 0x6027, .y = 0x10, .x = 0x0b}, + {.src = 0x6027, .y = 0x0f, .x = 0x0b}, + {.src = 0x6021, .y = 0x0f, .x = 0x0c}, + {.src = 0x6033, .y = 0x0e, .x = 0x0c}, + {.src = 0x6032, .y = 0x0d, .x = 0x0c}, + {.src = 0x6031, .y = 0x0c, .x = 0x0c}, + {.src = 0x6030, .y = 0x0b, .x = 0x0c}, + {.src = 0x602c, .y = 0x0b, .x = 0x0d}, + {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d824[] = +{ + {.src = 0x602b, .y = 0x12, .x = 0x09}, + {.src = 0x602b, .y = 0x12, .x = 0x0a}, + {.src = 0x6027, .y = 0x11, .x = 0x0a}, + {.src = 0x6021, .y = 0x11, .x = 0x0b}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d834[] = +{ + {.src = 0x602b, .y = 0x12, .x = 0x09}, + {.src = 0x602b, .y = 0x12, .x = 0x0a}, + {.src = 0x6027, .y = 0x11, .x = 0x0a}, + {.src = 0x6021, .y = 0x11, .x = 0x0b}, + {.src = 0x6027, .y = 0x10, .x = 0x0b}, + {.src = 0x6027, .y = 0x0f, .x = 0x0b}, + {.src = 0x6021, .y = 0x0f, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d850[] = +{ + {.src = 0x602b, .y = 0x12, .x = 0x09}, + {.src = 0x602b, .y = 0x12, .x = 0x0a}, + {.src = 0x6027, .y = 0x11, .x = 0x0a}, + {.src = 0x6021, .y = 0x11, .x = 0x0b}, + {.src = 0x6027, .y = 0x10, .x = 0x0b}, + {.src = 0x6027, .y = 0x0f, .x = 0x0b}, + {.src = 0x6021, .y = 0x0f, .x = 0x0c}, + {.src = 0x6033, .y = 0x0e, .x = 0x0c}, + {.src = 0x6032, .y = 0x0d, .x = 0x0c}, + {.src = 0x6031, .y = 0x0c, .x = 0x0c}, + {.src = 0x6030, .y = 0x0b, .x = 0x0c}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d87c[] = +{ + {.src = 0x602b, .y = 0x12, .x = 0x09}, + {.src = 0x602b, .y = 0x12, .x = 0x0a}, + {.src = 0x6027, .y = 0x11, .x = 0x0a}, + {.src = 0x6021, .y = 0x11, .x = 0x0b}, + {.src = 0x6027, .y = 0x10, .x = 0x0b}, + {.src = 0x6027, .y = 0x0f, .x = 0x0b}, + {.src = 0x6021, .y = 0x0f, .x = 0x0c}, + {.src = 0x6033, .y = 0x0e, .x = 0x0c}, + {.src = 0x6032, .y = 0x0d, .x = 0x0c}, + {.src = 0x6031, .y = 0x0c, .x = 0x0c}, + {.src = 0x6030, .y = 0x0b, .x = 0x0c}, + {.src = 0x602c, .y = 0x0b, .x = 0x0d}, + {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d8b0[] = +{ + {.src = 0x6021, .y = 0x04, .x = 0x14}, + {.src = 0x6025, .y = 0x04, .x = 0x13}, + {.src = 0x6049, .y = 0x05, .x = 0x13}, + {.src = 0x6045, .y = 0x05, .x = 0x12}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d8c0[] = +{ + {.src = 0x6021, .y = 0x04, .x = 0x14}, + {.src = 0x6025, .y = 0x04, .x = 0x13}, + {.src = 0x6049, .y = 0x05, .x = 0x13}, + {.src = 0x6025, .y = 0x05, .x = 0x12}, + {.src = 0x6029, .y = 0x06, .x = 0x12}, + {.src = 0x6049, .y = 0x07, .x = 0x12}, + {.src = 0x6045, .y = 0x07, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d8dc[] = +{ + {.src = 0x6021, .y = 0x04, .x = 0x14}, + {.src = 0x6025, .y = 0x04, .x = 0x13}, + {.src = 0x6049, .y = 0x05, .x = 0x13}, + {.src = 0x6025, .y = 0x05, .x = 0x12}, + {.src = 0x6029, .y = 0x06, .x = 0x12}, + {.src = 0x6049, .y = 0x07, .x = 0x12}, + {.src = 0x6025, .y = 0x07, .x = 0x11}, + {.src = 0x6029, .y = 0x08, .x = 0x11}, + {.src = 0x6029, .y = 0x09, .x = 0x11}, + {.src = 0x6029, .y = 0x0a, .x = 0x11}, + {.src = 0x603c, .y = 0x0b, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d908[] = +{ + {.src = 0x6021, .y = 0x04, .x = 0x14}, + {.src = 0x6025, .y = 0x04, .x = 0x13}, + {.src = 0x6049, .y = 0x05, .x = 0x13}, + {.src = 0x6025, .y = 0x05, .x = 0x12}, + {.src = 0x6029, .y = 0x06, .x = 0x12}, + {.src = 0x6049, .y = 0x07, .x = 0x12}, + {.src = 0x6025, .y = 0x07, .x = 0x11}, + {.src = 0x6029, .y = 0x08, .x = 0x11}, + {.src = 0x6029, .y = 0x09, .x = 0x11}, + {.src = 0x6029, .y = 0x0a, .x = 0x11}, + {.src = 0x603c, .y = 0x0b, .x = 0x11}, + {.src = 0x602f, .y = 0x0b, .x = 0x10}, + {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d93c[] = +{ + {.src = 0x6021, .y = 0x06, .x = 0x14}, + {.src = 0x6021, .y = 0x06, .x = 0x13}, + {.src = 0x6029, .y = 0x05, .x = 0x13}, + {.src = 0x6045, .y = 0x05, .x = 0x12}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d94c[] = +{ + {.src = 0x6021, .y = 0x06, .x = 0x14}, + {.src = 0x6021, .y = 0x06, .x = 0x13}, + {.src = 0x6029, .y = 0x05, .x = 0x13}, + {.src = 0x6025, .y = 0x05, .x = 0x12}, + {.src = 0x6029, .y = 0x06, .x = 0x12}, + {.src = 0x6049, .y = 0x07, .x = 0x12}, + {.src = 0x6045, .y = 0x07, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d968[] = +{ + {.src = 0x6021, .y = 0x06, .x = 0x14}, + {.src = 0x6021, .y = 0x06, .x = 0x13}, + {.src = 0x6029, .y = 0x05, .x = 0x13}, + {.src = 0x6025, .y = 0x05, .x = 0x12}, + {.src = 0x6029, .y = 0x06, .x = 0x12}, + {.src = 0x6049, .y = 0x07, .x = 0x12}, + {.src = 0x6025, .y = 0x07, .x = 0x11}, + {.src = 0x6029, .y = 0x08, .x = 0x11}, + {.src = 0x6029, .y = 0x09, .x = 0x11}, + {.src = 0x6029, .y = 0x0a, .x = 0x11}, + {.src = 0x603c, .y = 0x0b, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d994[] = +{ + {.src = 0x6021, .y = 0x06, .x = 0x14}, + {.src = 0x6021, .y = 0x06, .x = 0x13}, + {.src = 0x6029, .y = 0x05, .x = 0x13}, + {.src = 0x6025, .y = 0x05, .x = 0x12}, + {.src = 0x6029, .y = 0x06, .x = 0x12}, + {.src = 0x6049, .y = 0x07, .x = 0x12}, + {.src = 0x6025, .y = 0x07, .x = 0x11}, + {.src = 0x6029, .y = 0x08, .x = 0x11}, + {.src = 0x6029, .y = 0x09, .x = 0x11}, + {.src = 0x6029, .y = 0x0a, .x = 0x11}, + {.src = 0x603c, .y = 0x0b, .x = 0x11}, + {.src = 0x602f, .y = 0x0b, .x = 0x10}, + {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d9c8[] = +{ + {.src = 0x6021, .y = 0x08, .x = 0x14}, + {.src = 0x6025, .y = 0x08, .x = 0x13}, + {.src = 0x6049, .y = 0x09, .x = 0x13}, + {.src = 0x6021, .y = 0x09, .x = 0x12}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d9d8[] = +{ + {.src = 0x6021, .y = 0x08, .x = 0x14}, + {.src = 0x6025, .y = 0x08, .x = 0x13}, + {.src = 0x6049, .y = 0x09, .x = 0x13}, + {.src = 0x6021, .y = 0x09, .x = 0x12}, + {.src = 0x6029, .y = 0x08, .x = 0x12}, + {.src = 0x6029, .y = 0x07, .x = 0x12}, + {.src = 0x6045, .y = 0x07, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860d9f4[] = +{ + {.src = 0x6021, .y = 0x08, .x = 0x14}, + {.src = 0x6025, .y = 0x08, .x = 0x13}, + {.src = 0x6049, .y = 0x09, .x = 0x13}, + {.src = 0x6021, .y = 0x09, .x = 0x12}, + {.src = 0x6029, .y = 0x08, .x = 0x12}, + {.src = 0x6029, .y = 0x07, .x = 0x12}, + {.src = 0x6025, .y = 0x07, .x = 0x11}, + {.src = 0x6029, .y = 0x08, .x = 0x11}, + {.src = 0x6029, .y = 0x09, .x = 0x11}, + {.src = 0x6029, .y = 0x0a, .x = 0x11}, + {.src = 0x603c, .y = 0x0b, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860da20[] = +{ + {.src = 0x6021, .y = 0x08, .x = 0x14}, + {.src = 0x6025, .y = 0x08, .x = 0x13}, + {.src = 0x6049, .y = 0x09, .x = 0x13}, + {.src = 0x6021, .y = 0x09, .x = 0x12}, + {.src = 0x6029, .y = 0x08, .x = 0x12}, + {.src = 0x6029, .y = 0x07, .x = 0x12}, + {.src = 0x6025, .y = 0x07, .x = 0x11}, + {.src = 0x6029, .y = 0x08, .x = 0x11}, + {.src = 0x6029, .y = 0x09, .x = 0x11}, + {.src = 0x6029, .y = 0x0a, .x = 0x11}, + {.src = 0x603c, .y = 0x0b, .x = 0x11}, + {.src = 0x602f, .y = 0x0b, .x = 0x10}, + {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860da54[] = +{ + {.src = 0x6021, .y = 0x0a, .x = 0x14}, + {.src = 0x6021, .y = 0x0a, .x = 0x13}, + {.src = 0x6029, .y = 0x09, .x = 0x13}, + {.src = 0x6021, .y = 0x09, .x = 0x12}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860da64[] = +{ + {.src = 0x6021, .y = 0x0a, .x = 0x14}, + {.src = 0x6021, .y = 0x0a, .x = 0x13}, + {.src = 0x6029, .y = 0x09, .x = 0x13}, + {.src = 0x6021, .y = 0x09, .x = 0x12}, + {.src = 0x6029, .y = 0x08, .x = 0x12}, + {.src = 0x6029, .y = 0x07, .x = 0x12}, + {.src = 0x6045, .y = 0x07, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860da80[] = +{ + {.src = 0x6021, .y = 0x0a, .x = 0x14}, + {.src = 0x6021, .y = 0x0a, .x = 0x13}, + {.src = 0x6029, .y = 0x09, .x = 0x13}, + {.src = 0x6021, .y = 0x09, .x = 0x12}, + {.src = 0x6029, .y = 0x08, .x = 0x12}, + {.src = 0x6029, .y = 0x07, .x = 0x12}, + {.src = 0x6025, .y = 0x07, .x = 0x11}, + {.src = 0x6029, .y = 0x08, .x = 0x11}, + {.src = 0x6029, .y = 0x09, .x = 0x11}, + {.src = 0x6029, .y = 0x0a, .x = 0x11}, + {.src = 0x603c, .y = 0x0b, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860daac[] = +{ + {.src = 0x6021, .y = 0x0a, .x = 0x14}, + {.src = 0x6021, .y = 0x0a, .x = 0x13}, + {.src = 0x6029, .y = 0x09, .x = 0x13}, + {.src = 0x6021, .y = 0x09, .x = 0x12}, + {.src = 0x6029, .y = 0x08, .x = 0x12}, + {.src = 0x6029, .y = 0x07, .x = 0x12}, + {.src = 0x6025, .y = 0x07, .x = 0x11}, + {.src = 0x6029, .y = 0x08, .x = 0x11}, + {.src = 0x6029, .y = 0x09, .x = 0x11}, + {.src = 0x6029, .y = 0x0a, .x = 0x11}, + {.src = 0x603c, .y = 0x0b, .x = 0x11}, + {.src = 0x602f, .y = 0x0b, .x = 0x10}, + {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860dae0[] = +{ + {.src = 0x6021, .y = 0x0c, .x = 0x14}, + {.src = 0x6025, .y = 0x0c, .x = 0x13}, + {.src = 0x6049, .y = 0x0d, .x = 0x13}, + {.src = 0x6045, .y = 0x0d, .x = 0x12}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860daf0[] = +{ + {.src = 0x6021, .y = 0x0c, .x = 0x14}, + {.src = 0x6025, .y = 0x0c, .x = 0x13}, + {.src = 0x6049, .y = 0x0d, .x = 0x13}, + {.src = 0x6025, .y = 0x0d, .x = 0x12}, + {.src = 0x6029, .y = 0x0e, .x = 0x12}, + {.src = 0x6049, .y = 0x0f, .x = 0x12}, + {.src = 0x6021, .y = 0x0f, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860db0c[] = +{ + {.src = 0x6021, .y = 0x0c, .x = 0x14}, + {.src = 0x6025, .y = 0x0c, .x = 0x13}, + {.src = 0x6049, .y = 0x0d, .x = 0x13}, + {.src = 0x6025, .y = 0x0d, .x = 0x12}, + {.src = 0x6029, .y = 0x0e, .x = 0x12}, + {.src = 0x6049, .y = 0x0f, .x = 0x12}, + {.src = 0x6021, .y = 0x0f, .x = 0x11}, + {.src = 0x6038, .y = 0x0e, .x = 0x11}, + {.src = 0x6037, .y = 0x0d, .x = 0x11}, + {.src = 0x6036, .y = 0x0c, .x = 0x11}, + {.src = 0x6035, .y = 0x0b, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860db38[] = +{ + {.src = 0x6021, .y = 0x0c, .x = 0x14}, + {.src = 0x6025, .y = 0x0c, .x = 0x13}, + {.src = 0x6049, .y = 0x0d, .x = 0x13}, + {.src = 0x6025, .y = 0x0d, .x = 0x12}, + {.src = 0x6029, .y = 0x0e, .x = 0x12}, + {.src = 0x6049, .y = 0x0f, .x = 0x12}, + {.src = 0x6021, .y = 0x0f, .x = 0x11}, + {.src = 0x6038, .y = 0x0e, .x = 0x11}, + {.src = 0x6037, .y = 0x0d, .x = 0x11}, + {.src = 0x6036, .y = 0x0c, .x = 0x11}, + {.src = 0x6035, .y = 0x0b, .x = 0x11}, + {.src = 0x602f, .y = 0x0b, .x = 0x10}, + {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860db6c[] = +{ + {.src = 0x6021, .y = 0x0e, .x = 0x14}, + {.src = 0x6021, .y = 0x0e, .x = 0x13}, + {.src = 0x6029, .y = 0x0d, .x = 0x13}, + {.src = 0x6045, .y = 0x0d, .x = 0x12}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860db7c[] = +{ + {.src = 0x6021, .y = 0x0e, .x = 0x14}, + {.src = 0x6021, .y = 0x0e, .x = 0x13}, + {.src = 0x6029, .y = 0x0d, .x = 0x13}, + {.src = 0x6025, .y = 0x0d, .x = 0x12}, + {.src = 0x6029, .y = 0x0e, .x = 0x12}, + {.src = 0x6049, .y = 0x0f, .x = 0x12}, + {.src = 0x6021, .y = 0x0f, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860db98[] = +{ + {.src = 0x6021, .y = 0x0e, .x = 0x14}, + {.src = 0x6021, .y = 0x0e, .x = 0x13}, + {.src = 0x6029, .y = 0x0d, .x = 0x13}, + {.src = 0x6025, .y = 0x0d, .x = 0x12}, + {.src = 0x6029, .y = 0x0e, .x = 0x12}, + {.src = 0x6049, .y = 0x0f, .x = 0x12}, + {.src = 0x6021, .y = 0x0f, .x = 0x11}, + {.src = 0x6038, .y = 0x0e, .x = 0x11}, + {.src = 0x6037, .y = 0x0d, .x = 0x11}, + {.src = 0x6036, .y = 0x0c, .x = 0x11}, + {.src = 0x6035, .y = 0x0b, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860dbc4[] = +{ + {.src = 0x6021, .y = 0x0e, .x = 0x14}, + {.src = 0x6021, .y = 0x0e, .x = 0x13}, + {.src = 0x6029, .y = 0x0d, .x = 0x13}, + {.src = 0x6025, .y = 0x0d, .x = 0x12}, + {.src = 0x6029, .y = 0x0e, .x = 0x12}, + {.src = 0x6049, .y = 0x0f, .x = 0x12}, + {.src = 0x6021, .y = 0x0f, .x = 0x11}, + {.src = 0x6038, .y = 0x0e, .x = 0x11}, + {.src = 0x6037, .y = 0x0d, .x = 0x11}, + {.src = 0x6036, .y = 0x0c, .x = 0x11}, + {.src = 0x6035, .y = 0x0b, .x = 0x11}, + {.src = 0x602f, .y = 0x0b, .x = 0x10}, + {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860dbf8[] = +{ + {.src = 0x6021, .y = 0x10, .x = 0x14}, + {.src = 0x6025, .y = 0x10, .x = 0x13}, + {.src = 0x6049, .y = 0x11, .x = 0x13}, + {.src = 0x6021, .y = 0x11, .x = 0x12}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860dc08[] = +{ + {.src = 0x6021, .y = 0x10, .x = 0x14}, + {.src = 0x6025, .y = 0x10, .x = 0x13}, + {.src = 0x6049, .y = 0x11, .x = 0x13}, + {.src = 0x6021, .y = 0x11, .x = 0x12}, + {.src = 0x6029, .y = 0x10, .x = 0x12}, + {.src = 0x6029, .y = 0x0f, .x = 0x12}, + {.src = 0x6021, .y = 0x0f, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860dc24[] = +{ + {.src = 0x6021, .y = 0x10, .x = 0x14}, + {.src = 0x6025, .y = 0x10, .x = 0x13}, + {.src = 0x6049, .y = 0x11, .x = 0x13}, + {.src = 0x6021, .y = 0x11, .x = 0x12}, + {.src = 0x6029, .y = 0x10, .x = 0x12}, + {.src = 0x6029, .y = 0x0f, .x = 0x12}, + {.src = 0x6021, .y = 0x0f, .x = 0x11}, + {.src = 0x6038, .y = 0x0e, .x = 0x11}, + {.src = 0x6037, .y = 0x0d, .x = 0x11}, + {.src = 0x6036, .y = 0x0c, .x = 0x11}, + {.src = 0x6035, .y = 0x0b, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860dc50[] = +{ + {.src = 0x6021, .y = 0x10, .x = 0x14}, + {.src = 0x6025, .y = 0x10, .x = 0x13}, + {.src = 0x6049, .y = 0x11, .x = 0x13}, + {.src = 0x6021, .y = 0x11, .x = 0x12}, + {.src = 0x6029, .y = 0x10, .x = 0x12}, + {.src = 0x6029, .y = 0x0f, .x = 0x12}, + {.src = 0x6021, .y = 0x0f, .x = 0x11}, + {.src = 0x6038, .y = 0x0e, .x = 0x11}, + {.src = 0x6037, .y = 0x0d, .x = 0x11}, + {.src = 0x6036, .y = 0x0c, .x = 0x11}, + {.src = 0x6035, .y = 0x0b, .x = 0x11}, + {.src = 0x602f, .y = 0x0b, .x = 0x10}, + {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860dc84[] = +{ + {.src = 0x602b, .y = 0x12, .x = 0x14}, + {.src = 0x602b, .y = 0x12, .x = 0x13}, + {.src = 0x6029, .y = 0x11, .x = 0x13}, + {.src = 0x6021, .y = 0x11, .x = 0x12}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860dc94[] = +{ + {.src = 0x602b, .y = 0x12, .x = 0x14}, + {.src = 0x602b, .y = 0x12, .x = 0x13}, + {.src = 0x6029, .y = 0x11, .x = 0x13}, + {.src = 0x6021, .y = 0x11, .x = 0x12}, + {.src = 0x6029, .y = 0x10, .x = 0x12}, + {.src = 0x6029, .y = 0x0f, .x = 0x12}, + {.src = 0x6021, .y = 0x0f, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860dcb0[] = +{ + {.src = 0x602b, .y = 0x12, .x = 0x14}, + {.src = 0x602b, .y = 0x12, .x = 0x13}, + {.src = 0x6029, .y = 0x11, .x = 0x13}, + {.src = 0x6021, .y = 0x11, .x = 0x12}, + {.src = 0x6029, .y = 0x10, .x = 0x12}, + {.src = 0x6029, .y = 0x0f, .x = 0x12}, + {.src = 0x6021, .y = 0x0f, .x = 0x11}, + {.src = 0x6038, .y = 0x0e, .x = 0x11}, + {.src = 0x6037, .y = 0x0d, .x = 0x11}, + {.src = 0x6036, .y = 0x0c, .x = 0x11}, + {.src = 0x6035, .y = 0x0b, .x = 0x11}, +}; + +static const struct UnkStruct_860DD10 gUnknown_0860dcdc[] = +{ + {.src = 0x602b, .y = 0x12, .x = 0x14}, + {.src = 0x602b, .y = 0x12, .x = 0x13}, + {.src = 0x6029, .y = 0x11, .x = 0x13}, + {.src = 0x6021, .y = 0x11, .x = 0x12}, + {.src = 0x6029, .y = 0x10, .x = 0x12}, + {.src = 0x6029, .y = 0x0f, .x = 0x12}, + {.src = 0x6021, .y = 0x0f, .x = 0x11}, + {.src = 0x6038, .y = 0x0e, .x = 0x11}, + {.src = 0x6037, .y = 0x0d, .x = 0x11}, + {.src = 0x6036, .y = 0x0c, .x = 0x11}, + {.src = 0x6035, .y = 0x0b, .x = 0x11}, + {.src = 0x602f, .y = 0x0b, .x = 0x10}, + {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +}; + +static const struct UnkStruct_860DD10 * const gUnknown_0860DD10[][4] = +{ + {gUnknown_0860d450, gUnknown_0860d460, gUnknown_0860d47c, gUnknown_0860d4a8}, + {gUnknown_0860dc84, gUnknown_0860dc94, gUnknown_0860dcb0, gUnknown_0860dcdc}, + {gUnknown_0860d8b0, gUnknown_0860d8c0, gUnknown_0860d8dc, gUnknown_0860d908}, + {gUnknown_0860d824, gUnknown_0860d834, gUnknown_0860d850, gUnknown_0860d87c}, + {gUnknown_0860d5f4, gUnknown_0860d604, gUnknown_0860d620, gUnknown_0860d64c}, + {gUnknown_0860dae0, gUnknown_0860daf0, gUnknown_0860db0c, gUnknown_0860db38}, + {gUnknown_0860da54, gUnknown_0860da64, gUnknown_0860da80, gUnknown_0860daac}, + {gUnknown_0860d680, gUnknown_0860d690, gUnknown_0860d6ac, gUnknown_0860d6d8}, + {gUnknown_0860d4dc, gUnknown_0860d4ec, gUnknown_0860d508, gUnknown_0860d534}, + {gUnknown_0860dbf8, gUnknown_0860dc08, gUnknown_0860dc24, gUnknown_0860dc50}, + {gUnknown_0860d93c, gUnknown_0860d94c, gUnknown_0860d968, gUnknown_0860d994}, + {gUnknown_0860d798, gUnknown_0860d7a8, gUnknown_0860d7c4, gUnknown_0860d7f0}, + {gUnknown_0860d568, gUnknown_0860d578, gUnknown_0860d594, gUnknown_0860d5c0}, + {gUnknown_0860db6c, gUnknown_0860db7c, gUnknown_0860db98, gUnknown_0860dbc4}, + {gUnknown_0860d9c8, gUnknown_0860d9d8, gUnknown_0860d9f4, gUnknown_0860da20}, + {gUnknown_0860d70c, gUnknown_0860d71c, gUnknown_0860d738, gUnknown_0860d764}, +}; + +static const u8 gUnknown_0860DE10[][4] = +{ + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, + {0x04, 0x07, 0x0b, 0x0d}, +}; + // code void CallBattleDomeFunction(void) { From 78cad0dee52e69ab7cca6b8ddc793820697ba01f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Aug 2018 15:27:06 +0200 Subject: [PATCH 137/174] try battle tent and fail --- asm/battle_frontier_1.s | 351 ---------------------------------------- asm/battle_frontier_2.s | 6 +- asm/battle_tower.s | 66 ++++---- include/battle_tower.h | 10 ++ include/global.h | 14 +- ld_script.txt | 1 + src/battle_dome.c | 20 +-- src/battle_frontier_1.c | 118 ++++++++++++++ src/battle_tent.c | 83 +++++++++- src/field_specials.c | 6 +- src/pokemon.c | 9 +- src/unk_text_util_2.c | 1 + 12 files changed, 264 insertions(+), 421 deletions(-) create mode 100644 src/battle_frontier_1.c diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index 193bd5e347..7ebc2f2563 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -7,357 +7,6 @@ - - - thumb_func_start sub_8195960 -sub_8195960: @ 8195960 - push {lr} - ldr r1, =gUnknown_0860DE50 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195960 - - thumb_func_start sub_8195980 -sub_8195980: @ 8195980 - push {r4-r7,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, [r4] - ldr r2, =0x00000ca8 - adds r0, r2 - movs r6, 0 - strb r6, [r0] - ldr r1, [r4] - adds r2, 0xA - adds r0, r1, r2 - strh r6, [r0] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r4, [r4] - ldr r0, =0x00000cdc - adds r3, r4, r0 - ldr r2, =gUnknown_0860DE98 - lsls r1, r5, 2 - lsls r0, r7, 3 - adds r1, r0 - adds r1, r2 - ldr r0, [r3] - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _081959F2 - lsls r0, r5, 1 - lsls r1, r7, 2 - adds r0, r1 - ldr r2, =0x00000dc8 - adds r1, r4, r2 - adds r1, r0 - strh r6, [r1] -_081959F2: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - ldr r0, =gTrainerBattleOpponent_A - strh r6, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195980 - - thumb_func_start sub_8195A38 -sub_8195A38: @ 8195A38 - push {r4-r7,lr} - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r7, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x1 - beq _08195A90 - cmp r0, 0x1 - bgt _08195A74 - cmp r0, 0 - beq _08195A7A - b _08195AD0 - .pool -_08195A74: - cmp r0, 0x2 - beq _08195AB0 - b _08195AD0 -_08195A7A: - ldr r0, =gSpecialVar_Result - ldr r1, [r5] - ldr r2, =0x00000dc6 - adds r1, r2 - ldrh r1, [r1] - strh r1, [r0] - b _08195AD0 - .pool -_08195A90: - ldr r3, =gSpecialVar_Result - ldr r0, [r5] - lsls r1, r7, 1 - lsls r2, r6, 2 - adds r1, r2 - ldr r2, =0x00000dc8 - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3] - b _08195AD0 - .pool -_08195AB0: - ldr r4, =gSpecialVar_Result - ldr r2, [r5] - ldr r0, =0x00000cdc - adds r2, r0 - ldr r3, =gUnknown_0860DE98 - lsls r0, r7, 2 - lsls r1, r6, 3 - adds r0, r1 - adds r0, r3 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - strh r0, [r4] -_08195AD0: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195A38 - - thumb_func_start sub_8195AE4 -sub_8195AE4: @ 8195AE4 - push {r4-r6,lr} - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x1 - beq _08195B3C - cmp r0, 0x1 - bgt _08195B20 - cmp r0, 0 - beq _08195B26 - b _08195BA0 - .pool -_08195B20: - cmp r0, 0x2 - beq _08195B5C - b _08195BA0 -_08195B26: - ldr r0, [r6] - ldr r1, =gSpecialVar_0x8006 - ldrh r1, [r1] - ldr r2, =0x00000dc6 - adds r0, r2 - strh r1, [r0] - b _08195BA0 - .pool -_08195B3C: - ldr r2, [r6] - lsls r0, r5, 1 - lsls r1, r4, 2 - adds r0, r1 - ldr r1, =0x00000dc8 - adds r2, r1 - adds r2, r0 - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - strh r0, [r2] - b _08195BA0 - .pool -_08195B5C: - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - cmp r0, 0 - beq _08195B88 - ldr r2, [r6] - ldr r0, =0x00000cdc - adds r2, r0 - ldr r3, =gUnknown_0860DE98 - lsls r1, r5, 2 - lsls r0, r4, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - orrs r0, r1 - b _08195B9E - .pool -_08195B88: - ldr r2, [r6] - ldr r1, =0x00000cdc - adds r2, r1 - ldr r3, =gUnknown_0860DEA8 - lsls r1, r5, 2 - lsls r0, r4, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - ands r0, r1 -_08195B9E: - str r0, [r2] -_08195BA0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195AE4 - - thumb_func_start sub_8195BB0 -sub_8195BB0: @ 8195BB0 - push {r4,lr} - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - ldr r1, =gSaveBlock2Ptr - ldr r2, [r1] - ldr r3, =0x00000ca9 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, 30 - lsrs r1, 29 - lsrs r0, 14 - adds r1, r0 - ldr r0, =0x00000dc8 - adds r2, r0 - adds r2, r1 - ldrh r0, [r2] - cmp r0, 0x31 - bhi _08195C00 - ldr r4, =gSpecialVar_Result - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - strh r0, [r4] - b _08195C16 - .pool -_08195C00: - cmp r0, 0x62 - bhi _08195C10 - ldr r1, =gSpecialVar_Result - movs r0, 0x3 - b _08195C14 - .pool -_08195C10: - ldr r1, =gSpecialVar_Result - movs r0, 0x4 -_08195C14: - strh r0, [r1] -_08195C16: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195BB0 - - thumb_func_start sub_8195C20 -sub_8195C20: @ 8195C20 - push {r4,lr} - ldr r4, =gTrainerBattleOpponent_A - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xFF - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsrs r1, 6 - strh r1, [r4] - ldrh r0, [r4] - movs r1, 0 - bl sub_8162614 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195C20 - - thumb_func_start sub_8195C50 -sub_8195C50: @ 8195C50 - push {lr} - ldr r3, =gTrainerBattleOpponent_A - ldrh r1, [r3] - ldr r0, =0x0000012b - cmp r1, r0 - bhi _08195C6C - ldr r2, =gFacilityTrainers - movs r0, 0x34 - muls r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r0, 0xC - bl ConvertBattleFrontierTrainerSpeechToString -_08195C6C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195C50 - thumb_func_start sub_8195C7C sub_8195C7C: @ 8195C7C push {r4-r7,lr} diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index e7cb145306..1a2233a977 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -20059,7 +20059,7 @@ _081A4E46: bl ZeroEnemyPartyMons movs r1, 0 str r1, [sp, 0x18] - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] @@ -23702,7 +23702,7 @@ sub_81A6CD0: @ 81A6CD0 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x24] - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x20] @@ -29517,7 +29517,7 @@ _081A9C56: bl SetMonData cmp r5, 0 beq _081A9CD4 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel lsls r0, 24 lsrs r5, r0, 24 ldr r1, [sp, 0x10] diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 1ece38af93..bdc49fed25 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -391,7 +391,7 @@ _081622B2: adds r4, r1, r0 mov r0, r10 str r2, [sp, 0x38] - bl BattleFrontierGetOpponentLvl + bl GetFrontierEnemyMonLevel ldrb r1, [r4] lsls r0, 24 lsrs r0, 24 @@ -551,7 +551,7 @@ _08162414: bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel subs r4, 0x2 cmp r4, 0x1 bhi _08162488 @@ -784,7 +784,7 @@ sub_8162614: @ 8162614 adds r6, r4, 0 lsls r1, 24 lsrs r5, r1, 24 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r4, r0 @@ -962,7 +962,7 @@ sub_81627A4: @ 81627A4 lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r4, r0 @@ -1335,7 +1335,7 @@ GetFrontierTrainerFrontSpriteId: @ 8162AA0 lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r4, r0 @@ -1462,7 +1462,7 @@ GetFrontierOpponentClass: @ 8162BD8 lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r4, r0 @@ -1602,7 +1602,7 @@ sub_8162D34: @ 8162D34 lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r4, r0 @@ -1704,7 +1704,7 @@ GetFrontierTrainerName: @ 8162E20 lsls r1, 16 lsrs r5, r1, 16 movs r4, 0 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r5, r0 @@ -1854,7 +1854,7 @@ sub_8162F68: @ 8162F68 lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r4, r0 @@ -2025,7 +2025,7 @@ sub_81630C4: @ 81630C4 add r4, sp, 0x14 movs r0, 0xFF strb r0, [r4] - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x20] @@ -2551,7 +2551,7 @@ RandomizeFacilityTrainerMonId: @ 8163524 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gFacilityTrainers @@ -2728,7 +2728,7 @@ _081636A4: movs r0, 0x1F _081636A6: str r0, [sp, 0x18] - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] @@ -3029,7 +3029,7 @@ _0816390A: thumb_func_start sub_8163914 sub_8163914: @ 8163914 push {lr} - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 @@ -3979,7 +3979,7 @@ _081641E6: lsls r0, r1, 24 lsrs r0, 24 str r2, [sp, 0x18] - bl BattleFrontierGetOpponentLvl + bl GetFrontierEnemyMonLevel ldrb r1, [r4] lsls r0, 24 lsrs r0, 24 @@ -4091,7 +4091,7 @@ sub_81642A0: @ 81642A0 movs r2, 0 bl GetMonData str r0, [sp, 0x20] - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel movs r7, 0 ldr r0, [sp, 0x18] lsls r0, 24 @@ -4464,7 +4464,7 @@ _081645B8: lsls r0, r1, 24 lsrs r0, 24 str r3, [sp, 0x48] - bl BattleFrontierGetOpponentLvl + bl GetFrontierEnemyMonLevel ldrb r1, [r4] lsls r0, 24 lsrs r0, 24 @@ -4556,7 +4556,7 @@ sub_81646BC: @ 81646BC movs r0, 0 mov r9, r0 mov r10, r0 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel movs r0, 0xFA lsls r0, 1 cmp r5, r0 @@ -4705,7 +4705,7 @@ sub_8164828: @ 8164828 mov r5, r8 push {r5-r7} sub sp, 0x8 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel bl sub_81A39C4 lsls r0, 16 lsrs r0, 16 @@ -6073,7 +6073,7 @@ sub_8165404: @ 8165404 sub sp, 0x70 lsls r0, 16 lsrs r7, r0, 16 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel ldr r0, =0x00000c03 cmp r7, r0 beq _08165420 @@ -6228,7 +6228,7 @@ _08165564: bls _0816556C b _081656E8 _0816556C: - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x50] @@ -7083,8 +7083,8 @@ _08165C2A: .pool thumb_func_end sub_8165B88 - thumb_func_start GetFrontierEnemyMonLevel -GetFrontierEnemyMonLevel: @ 8165C40 + thumb_func_start GetFacilityEnemyMonLevel +GetFacilityEnemyMonLevel: @ 8165C40 push {lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] @@ -7104,20 +7104,20 @@ GetFrontierEnemyMonLevel: @ 8165C40 ldrb r0, [r2] lsls r0, 30 lsrs r0, 30 - bl BattleFrontierGetOpponentLvl + bl GetFrontierEnemyMonLevel b _08165C88 .pool _08165C84: - bl sub_8165D78 + bl GetTentEnemyMonLevel _08165C88: lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 - thumb_func_end GetFrontierEnemyMonLevel + thumb_func_end GetFacilityEnemyMonLevel - thumb_func_start BattleFrontierGetOpponentLvl -BattleFrontierGetOpponentLvl: @ 8165C90 + thumb_func_start GetFrontierEnemyMonLevel +GetFrontierEnemyMonLevel: @ 8165C90 push {lr} lsls r0, 24 lsrs r0, 24 @@ -7138,7 +7138,7 @@ _08165CA2: _08165CB0: pop {r1} bx r1 - thumb_func_end BattleFrontierGetOpponentLvl + thumb_func_end GetFrontierEnemyMonLevel thumb_func_start sub_8165CB4 sub_8165CB4: @ 8165CB4 @@ -7246,8 +7246,8 @@ _08165D72: bx r1 thumb_func_end sub_8165D40 - thumb_func_start sub_8165D78 -sub_8165D78: @ 8165D78 + thumb_func_start GetTentEnemyMonLevel +GetTentEnemyMonLevel: @ 8165D78 push {lr} ldr r0, =0x000040cf bl VarGet @@ -7300,7 +7300,7 @@ _08165E02: pop {r1} bx r1 .pool - thumb_func_end sub_8165D78 + thumb_func_end GetTentEnemyMonLevel thumb_func_start sub_8165E18 sub_8165E18: @ 8165E18 @@ -7384,7 +7384,7 @@ sub_8165EA4: @ 8165EA4 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x1C] - bl sub_8165D78 + bl GetTentEnemyMonLevel lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x20] @@ -7756,7 +7756,7 @@ sub_8166188: @ 8166188 ands r0, r1 cmp r0, 0 beq _081661E8 - bl GetFrontierEnemyMonLevel + bl GetFacilityEnemyMonLevel lsls r0, 24 movs r5, 0 ldr r7, =gBaseStats diff --git a/include/battle_tower.h b/include/battle_tower.h index 87581074e8..d7ff700069 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -32,7 +32,17 @@ struct BattleFrontierTrainer u16 *btMonPool; }; +struct FacilityMon +{ + u16 species; + u16 moves[4]; + u8 itemTableId; + u8 evSpread; + u8 nature; +}; + extern const struct BattleFrontierTrainer *gFacilityTrainers; +extern const struct FacilityMon *gFacilityTrainerMons; u16 sub_8164FCC(u8, u8); void sub_81659DC(struct RSBattleTowerRecord *a0, struct RSBattleTowerRecord *a1); diff --git a/include/global.h b/include/global.h index bb843bddd8..ab31e3c5d8 100644 --- a/include/global.h +++ b/include/global.h @@ -337,6 +337,12 @@ struct FrontierMonData u8 nature; }; +struct Struct_field_E70 +{ + u16 monId; + u8 unk2[9]; +}; + struct BattleDomeTrainer { u16 trainerId:10; @@ -398,10 +404,8 @@ struct BattleFrontier /*0xD24*/ struct BattleDomeTrainer domeTrainers[DOME_TOURNAMENT_TRAINERS_COUNT]; /*0xD64*/ u16 domeMonId[DOME_TOURNAMENT_TRAINERS_COUNT][3]; /*0xD64*/ u16 field_DC4[2]; - /*0xDC8*/ u16 field_DC8[2]; - /*0xDCC*/ u8 filler_DCC[4]; - /*0xDD0*/ u16 field_DD0[2]; - /*0xDD4*/ u16 field_DD4[2]; + /*0xDC8*/ u16 field_DC8[2][2]; + /*0xDD0*/ u16 field_DD0[2][2]; /*0xDD8*/ u16 field_DD8; /*0xDDA*/ u16 field_DDA[2]; /*0xDDE*/ u16 field_DDE[2]; @@ -429,7 +433,7 @@ struct BattleFrontier /*0xE6A*/ u16 field_E6A; /*0xE6C*/ u16 field_E6C; /*0xE6E*/ u16 field_E6E; - /*0xE70*/ u8 field_E70[72]; + /*0xE70*/ struct Struct_field_E70 field_E70[6]; /*0xEB8*/ u16 frontierBattlePoints; /*0xEBA*/ u8 field_EBA; /*0xEBB*/ u8 field_EBB; diff --git a/ld_script.txt b/ld_script.txt index e2c0151ade..c06b410f14 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -243,6 +243,7 @@ SECTIONS { src/trainer_pokemon_sprites.o(.text); src/lilycove_lady.o(.text); src/battle_dome.o(.text); + src/battle_frontier_1.o(.text); asm/battle_frontier_1.o(.text); src/menu.o(.text); asm/battle_frontier_2.o(.text); diff --git a/src/battle_dome.c b/src/battle_dome.c index 058d253ab5..c54b14ccc0 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -39,15 +39,6 @@ #define DOME_FINAL 3 #define DOME_ROUNDS_COUNT 4 -struct FacilityMon -{ - u16 species; - u16 moves[4]; - u8 itemTableId; - u8 evSpread; - u8 nature; -}; - struct BattleDomeStruct { u8 arr[DOME_TOURNAMENT_TRAINERS_COUNT]; @@ -66,7 +57,7 @@ extern void sub_81B8558(void); extern u32 sub_81A39C4(void); extern u16 sub_8162548(u8, u8); extern u16 RandomizeFacilityTrainerMonId(u16); -extern u8 GetFrontierEnemyMonLevel(void); +extern u8 GetFacilityEnemyMonLevel(void); extern u16 sub_81A5060(u8 monId, u8 moveSlotId); extern u8 sub_81A50F0(u8, u8); extern u8 sub_81A50B0(u8); @@ -87,7 +78,6 @@ extern u16 gBattle_BG2_X; extern u16 gBattle_BG2_Y; extern u16 gBattle_BG3_X; extern u16 gBattle_BG3_Y; -extern const struct FacilityMon *gFacilityTrainerMons; extern void (* const gUnknown_0860D090[])(void); extern const u32 gUnknown_0860D0EC[][2]; @@ -822,7 +812,7 @@ void InitDomeTrainers(void) monTypesBits >>= 1; } - monLevel = GetFrontierEnemyMonLevel(); + monLevel = GetFacilityEnemyMonLevel(); statSums[0] += (monTypesCount * monLevel) / 20; for (i = 1; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) @@ -995,7 +985,7 @@ static void CreateDomeMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentM s32 i; u8 happiness = 0xFF; u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using trainerId instead of tournamentTrainerId. As a result, all Pokemon have ivs of 3. - u8 level = GetFrontierEnemyMonLevel(); + u8 level = GetFacilityEnemyMonLevel(); CreateMonWithEVSpreadPersonalityOTID(&gEnemyParty[monPartyId], gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].species, level, @@ -3716,7 +3706,7 @@ static u16 GetWinningMove(s32 winnerTournamentId, s32 loserTournamentId, u8 roun u16 bestScore = 0; u16 bestId = 0; s32 movePower = 0; - GetFrontierEnemyMonLevel(); // Unused return variable. + GetFacilityEnemyMonLevel(); // Unused return variable. // Calc move points of all 4 moves for all 3 pokemon hitting all 3 target mons. for (i = 0; i < 3; i++) @@ -4580,7 +4570,7 @@ static void DecideRoundWinners(u8 roundId) static void CopyDomeTrainerName(u8 *dst, u16 trainerId) { s32 i = 0; - GetFrontierEnemyMonLevel(); // Unused return value. + GetFacilityEnemyMonLevel(); // Unused return value. if (trainerId == TRAINER_FRONTIER_BRAIN) { diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c new file mode 100644 index 0000000000..ee8a42954c --- /dev/null +++ b/src/battle_frontier_1.c @@ -0,0 +1,118 @@ +#include "global.h" +#include "event_data.h" +#include "battle_setup.h" +#include "overworld.h" +#include "random.h" +#include "battle_tower.h" + +extern void sub_8162614(u16, u8); + +extern void (* const gUnknown_0860DE50[])(void); +extern const u32 gUnknown_0860DE98[][2]; +extern const u32 gUnknown_0860DEA8[][2]; + +// code +void sub_8195960(void) +{ + gUnknown_0860DE50[gSpecialVar_0x8004](); +} + +void sub_8195980(void) +{ + u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + + gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.field_CB2 = 0; + gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.field_CA9_b = 0; + if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860DE98[battleMode][lvlMode])) + gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] = 0; + + saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + gTrainerBattleOpponent_A = 0; +} + +void sub_8195A38(void) +{ + u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + + switch (gSpecialVar_0x8005) + { + case 0: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_DC4[1]; + break; + case 1: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode]; + break; + case 2: + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860DE98[battleMode][lvlMode]) != 0); + break; + } +} + +void sub_8195AE4(void) +{ + u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + + switch (gSpecialVar_0x8005) + { + case 0: + gSaveBlock2Ptr->frontier.field_DC4[1] = gSpecialVar_0x8006; + break; + case 1: + gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] = gSpecialVar_0x8006; + break; + case 2: + if (gSpecialVar_0x8006) + gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860DE98[battleMode][lvlMode]; + else + gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860DEA8[battleMode][lvlMode]; + break; + } +} + +void sub_8195BB0(void) +{ + u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + + if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] < 50) + gSpecialVar_Result = Random() % 3; + else if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] < 99) + gSpecialVar_Result = 3; + else + gSpecialVar_Result = 4; +} + +void sub_8195C20(void) +{ + gTrainerBattleOpponent_A = 5 *(Random() % 255) / 64u; + sub_8162614(gTrainerBattleOpponent_A, 0); +} + +void sub_8195C50(void) +{ + if (gTrainerBattleOpponent_A < 300) + ConvertBattleFrontierTrainerSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore); +} + +/* +void sub_8195C7C(void) +{ + u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + + if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] < 9999) + { + u16 wat = 0; + gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode]++; + if (lvlMode < gSaveBlock2Ptr->frontier.field_DD0[battleMode][lvlMode]) + wat = 1; + if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][wat] != 0) + gSaveBlock2Ptr->frontier.field_DD0[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode]; + } +} +*/ diff --git a/src/battle_tent.c b/src/battle_tent.c index dbea37fb7c..f39bf88379 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -11,6 +11,10 @@ #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. void sub_81B99D4(void); void sub_81B9A28(void); @@ -51,7 +55,7 @@ void (*const gUnknown_086160B4[])(void) = sub_81B9B28 }; -const u16 gUnknown_086160D4[] = {ITEM_NEST_BALL, ITEM_NONE}; +static const u16 sVerdanturfTentRewards[] = {ITEM_NEST_BALL}; void (*const gUnknown_086160D8[])(void) = { @@ -64,7 +68,7 @@ void (*const gUnknown_086160D8[])(void) = sub_81B9CF0 }; -const u16 gUnknown_086160F4[] = {ITEM_HYPER_POTION, ITEM_NONE}; +static const u16 sFallarborTentRewards[] = {ITEM_HYPER_POTION}; void (*const gUnknown_086160F8[])(void) = { @@ -80,7 +84,7 @@ void (*const gUnknown_086160F8[])(void) = sub_81B9EC0 }; -const u16 gUnknown_08616120[] = {ITEM_FULL_HEAL, ITEM_NONE}; +static const u16 sSlateportTentRewards[] = {ITEM_FULL_HEAL}; // code void sub_81B99B4(void) @@ -128,7 +132,7 @@ void sub_81B9ABC(void) void sub_81B9B00(void) { - gSaveBlock2Ptr->frontier.field_E6A = gUnknown_086160D4[Random() % 1]; + gSaveBlock2Ptr->frontier.field_E6A = sVerdanturfTentRewards[Random() % ARRAY_COUNT(sVerdanturfTentRewards)]; } void sub_81B9B28(void) @@ -178,7 +182,7 @@ void sub_81B9C2C(void) void sub_81B9C70(void) { - gSaveBlock2Ptr->frontier.field_E6C = gUnknown_086160F4[Random() % 1]; + gSaveBlock2Ptr->frontier.field_E6C = sFallarborTentRewards[Random() % ARRAY_COUNT(sFallarborTentRewards)]; } void sub_81B9C98(void) @@ -233,7 +237,7 @@ void sub_81B9DB4(void) void sub_81B9DF8(void) { - gSaveBlock2Ptr->frontier.field_E6E = gUnknown_08616120[Random() % 1]; + gSaveBlock2Ptr->frontier.field_E6E = sSlateportTentRewards[Random() % ARRAY_COUNT(sSlateportTentRewards)]; } void sub_81B9E20(void) @@ -266,3 +270,70 @@ bool8 sub_81B9E94(void) return (gMapHeader.regionMapSectionId == MAPSEC_SLATEPORT_CITY && ((gMapHeader.mapLayoutId == 385) | (gMapHeader.mapLayoutId == 386))); } + +// This function was written very...oddly. +/* +void sub_81B9EC0(void) +{ + s32 i, j; + u16 currMonId, currSpecies; + u16 species[PARTY_SIZE]; + u16 monIds[PARTY_SIZE]; + u16 heldItems[PARTY_SIZE]; + s32 var; + + gFacilityTrainers = gSlateportBattleTentTrainers; + for (i = 0; i < PARTY_SIZE; i++) + { + species[i] = 0; + monIds[i] = 0; + heldItems[i] = 0; + } + gFacilityTrainerMons = gSlateportBattleTentMons; + + currSpecies = 0; + i = 0; + while (i != PARTY_SIZE) + { + // Cannot have two pokemon of the same species. + currMonId = Random() % 70; + j = 0; + var = 0 + i; + while (j < var && monIds[j] != currMonId) + { + if (species[j] == gFacilityTrainerMons[currMonId].species) + { + if (currSpecies == 0) + currSpecies = gFacilityTrainerMons[currMonId].species; + else + break; + } + j++; + } + if (j != var) + continue; + + // Cannot have two same held items. + for (j = 0; j < var; j++) + { + if (heldItems[j] == 0) + continue; + if (heldItems[j] == gBattleFrontierHeldItems[gFacilityTrainerMons[currMonId].itemTableId]) + { + if (gFacilityTrainerMons[currMonId].species == currSpecies) + currSpecies = 0; + else + break; + } + } + if (j != var) + continue; + + gSaveBlock2Ptr->frontier.field_E70[var].monId = currMonId; + species[var] = gFacilityTrainerMons[currMonId].species; + heldItems[var] = gBattleFrontierHeldItems[gFacilityTrainerMons[currMonId].itemTableId]; + monIds[var] = currMonId; + i++; + } +} +*/ diff --git a/src/field_specials.c b/src/field_specials.c index f5728c3a40..84852e6b5c 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -2188,13 +2188,13 @@ void sub_8139F20(void) } break; case 6: - if (gSaveBlock2Ptr->frontier.field_DC8[0] >= gSaveBlock2Ptr->frontier.field_DC8[1]) + if (gSaveBlock2Ptr->frontier.field_DC8[0][0] >= gSaveBlock2Ptr->frontier.field_DC8[0][1]) { - unk = gSaveBlock2Ptr->frontier.field_DC8[0]; + unk = gSaveBlock2Ptr->frontier.field_DC8[0][0]; } else { - unk = gSaveBlock2Ptr->frontier.field_DC8[1]; + unk = gSaveBlock2Ptr->frontier.field_DC8[0][1]; } break; case 7: diff --git a/src/pokemon.c b/src/pokemon.c index eafb0c2cd1..9022f69eab 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -81,8 +81,7 @@ extern void set_unknown_box_id(u8); extern void sub_803FA70(u8 battlerId); extern u8 sav1_map_get_name(void); extern const u8 *sub_81A1650(u8, u8 language); -extern u8 BattleFrontierGetOpponentLvl(u8); -extern u16 FacilityClassToPicIndex(u16); +extern u8 GetFrontierEnemyMonLevel(u8); extern bool8 InBattlePyramid(void); extern bool8 InBattlePike(void); extern bool8 sub_806F104(void); @@ -956,7 +955,7 @@ const u16 gHoennToNationalOrder[] = // Assigns Hoenn Dex Pokémon (Using Nationa 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_SWAMPERT, // HOENN_DEX_SWAMPERT NATIONAL_DEX_POOCHYENA, // HOENN_DEX_POOCHYENA NATIONAL_DEX_MIGHTYENA, // HOENN_DEX_MIGHTYENA NATIONAL_DEX_ZIGZAGOON, // HOENN_DEX_ZIGZAGOON @@ -2821,7 +2820,7 @@ void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lv u8 value; if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50) - level = BattleFrontierGetOpponentLvl(gSaveBlock2Ptr->frontier.lvlMode); + level = GetFrontierEnemyMonLevel(gSaveBlock2Ptr->frontier.lvlMode); else if (lvl50) level = 50; else @@ -2885,7 +2884,7 @@ void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u CreateMon(mon, src->mons[monId].species, - BattleFrontierGetOpponentLvl(src->field_0_1 - 1), + GetFrontierEnemyMonLevel(src->field_0_1 - 1), 0x1F, TRUE, personality, diff --git a/src/unk_text_util_2.c b/src/unk_text_util_2.c index ca82461285..4821ed7765 100644 --- a/src/unk_text_util_2.c +++ b/src/unk_text_util_2.c @@ -4,6 +4,7 @@ #include "text.h" #include "sound.h" +ALIGNED(4) static const u8 sUnknown_08616124[] = {1, 2, 4}; static const u16 sFont6BrailleGlyphs[] = INCBIN_U16("data/graphics/fonts/font6.fwjpnfont"); From df3af2d9e1d224516615d79e28c9020c98f6bbaa Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Aug 2018 15:51:14 +0200 Subject: [PATCH 138/174] Clean up battle dome code a bit --- src/battle_dome.c | 223 ++++++++++++++++++++++++---------------------- 1 file changed, 115 insertions(+), 108 deletions(-) diff --git a/src/battle_dome.c b/src/battle_dome.c index 0087bd728a..104c9fe9b5 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -80,7 +80,6 @@ extern u16 gBattle_BG3_X; extern u16 gBattle_BG3_Y; extern const u16 gBattleFrontierHeldItems[]; -extern const u8 gUnknown_08D83900[]; extern const struct FacilityMon gBattleFrontierMons[]; extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; extern const struct SpriteTemplate gUnknown_0860CFA8; @@ -97,6 +96,7 @@ extern const u8 gUnknown_08D82F10[]; extern const u8 gUnknown_08D834FC[]; extern const u8 gUnknown_08D83B2C[]; extern const u8 gUnknown_08D83C3C[]; +extern const u8 gUnknown_08D83900[]; extern const u8 gBattleFrontierGfx_DomeOptions[]; // text @@ -229,7 +229,7 @@ static s32 sub_818FEB4(s32 *arr, bool8 arg1); static void sub_8190400(u8 taskId); static void sub_8190CD4(u8 taskId); static u8 sub_819221C(u8 taskId); -void sub_8194D48(void); +static void sub_8194D48(void); static s32 TrainerIdToTournamentId(u16 trainerId); static u16 TrainerIdOfPlayerOpponent(void); static void sub_8194220(u8 taskId); @@ -249,32 +249,30 @@ static u8 sub_8193BDC(u8 taskId); static void DecideRoundWinners(u8 roundId); static u8 sub_81953E8(u8 tournamentId, u8); static void sub_81948EC(u8, u8); - -void sub_8190B40(struct Sprite *sprite); -void sub_8190C6C(struct Sprite *sprite); - -void sub_818E9CC(void); -void sub_818EA84(void); -void sub_818ED28(void); -void sub_818F9B0(void); -void sub_818F9E0(void); -void sub_818FA20(void); -void ShowDomeOpponentInfo(void); -void sub_81938A4(void); -void sub_81938E0(void); -void sub_8190298(void); -void sub_81902E4(void); -void sub_8193D40(void); -void sub_8193D7C(void); -void sub_81902F8(void); -void sub_819033C(void); -void sub_8194D68(void); -void sub_8194E44(void); -void sub_8194EB4(void); -void sub_8194EC0(void); -void sub_8194EF8(void); -void sub_8194F58(void); -void InitDomeTrainers(void); +static void sub_8190B40(struct Sprite *sprite); +static void sub_8190C6C(struct Sprite *sprite); +static void sub_818E9CC(void); +static void sub_818EA84(void); +static void sub_818ED28(void); +static void sub_818F9B0(void); +static void sub_818F9E0(void); +static void sub_818FA20(void); +static void ShowDomeOpponentInfo(void); +static void sub_81938A4(void); +static void sub_81938E0(void); +static void sub_8190298(void); +static void sub_81902E4(void); +static void sub_8193D40(void); +static void sub_8193D7C(void); +static void sub_81902F8(void); +static void sub_819033C(void); +static void sub_8194D68(void); +static void sub_8194E44(void); +static void sub_8194EB4(void); +static void sub_8194EC0(void); +static void sub_8194EF8(void); +static void sub_8194F58(void); +static void InitDomeTrainers(void); // EWRAM variables. EWRAM_DATA u32 gUnknown_0203CD70 = 0; @@ -283,7 +281,6 @@ static EWRAM_DATA struct BattleDomeStruct *sBattleDomeStruct = {0}; 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}, @@ -643,7 +640,7 @@ static const u8 sMovePointsForDomeTrainers[MOVES_COUNT][DOME_TOURNAMENT_TRAINERS [MOVE_PSYCHO_BOOST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, }; -static const u8 gUnknown_0860C988[31][16] = +static const u8 gUnknown_0860C988[][DOME_TOURNAMENT_TRAINERS_COUNT] = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0}, @@ -724,7 +721,6 @@ static const u8 gUnknown_0860CBF1[][5][4]= {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x1c, 0x1d}, {0xff, 0xff, 0x1c, 0x1d}}, {{0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}}, }; -static const u8 gUnused_0860CBF1[] = {0x00, 0x00, 0x00}; static const struct BgTemplate gUnknown_0860CE74[4] = { @@ -806,7 +802,7 @@ static const struct BgTemplate gUnknown_0860CE84[4] = }, }; -static const struct WindowTemplate gUnknown_0860CE94[] = +static const struct WindowTemplate gUnknown_0860CE94[] = { { .priority = 0, @@ -838,7 +834,7 @@ static const struct WindowTemplate gUnknown_0860CE94[] = DUMMY_WIN_TEMPLATE, }; -static const struct WindowTemplate gUnknown_0860CEB4[] = +static const struct WindowTemplate gUnknown_0860CEB4[] = { { .priority = 0, @@ -1002,9 +998,10 @@ static const struct WindowTemplate gUnknown_0860CEB4[] = .paletteNum = 15, .baseBlock = 372, }, + // UB: No DUMMY_WIN_TEMPLATE at the array's end. }; -static const struct ScanlineEffectParams gUnknown_0860CF44 = +static const struct ScanlineEffectParams gUnknown_0860CF44 = { .dmaDest = (void *)REG_ADDR_BG3CNT, .dmaControl = 0xa2600001, @@ -1013,14 +1010,14 @@ static const struct ScanlineEffectParams gUnknown_0860CF44 = static const struct CompressedSpriteSheet gUnknown_0860CF50[] = { - gBattleFrontierGfx_DomeOptions, 0x0600, 0x0000, - NULL + {gBattleFrontierGfx_DomeOptions, 0x0600, 0x0000}, + {}, }; static const struct CompressedSpritePalette gUnknown_0860CF60[] = { - gUnknown_08D85444, 0x0000, - NULL + {gUnknown_08D85444, 0x0000}, + {}, }; static const struct OamData gUnknown_0860CF70 = @@ -1040,7 +1037,7 @@ static const struct OamData gUnknown_0860CF70 = .affineParam = 0, }; -static const struct OamData gUnknown_0860CF78 = +static const struct OamData gUnknown_0860CF78 = { .y = 0, .affineMode = 0, @@ -1112,7 +1109,7 @@ static const struct SpriteTemplate gUnknown_0860CFA8 = {0x0000, 0xffff, &gUnknow static const union AnimCmd gUnknown_0860CFC0[] = { - ANIMCMD_FRAME(8, 1), + ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; @@ -1161,7 +1158,7 @@ static const union AnimCmd gUnknown_0860D028[] = ANIMCMD_FRAME(18, 129, .vFlip = TRUE), ANIMCMD_END, }; - + static const union AnimCmd gUnknown_0860D030[] = { ANIMCMD_FRAME(16, 65, .hFlip = TRUE), @@ -1189,7 +1186,10 @@ static const union AnimCmd * const gUnknown_0860D048[] = static const struct SpriteTemplate gUnknown_0860D050 = {0x0000, 0xffff, &gUnknown_0860CF88, gUnknown_0860D048, NULL, gDummySpriteAffineAnimTable, sub_8190B40}; static const struct SpriteTemplate gUnknown_0860D068 = {0x0000, 0xffff, &gUnknown_0860CF80, gUnknown_0860D040, NULL, gDummySpriteAffineAnimTable, sub_8190C6C}; -static const u8 gUnknown_0860D080[] = {0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01}; +static const u8 gUnknown_0860D080[DOME_TOURNAMENT_TRAINERS_COUNT] = +{ + 0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01 +}; static void (* const gUnknown_0860D090[])(void) = { @@ -1230,7 +1230,7 @@ static const u32 gUnknown_0860D0FC[][2] = {0xffefffff, 0xffdfffff}, }; -static const u8 gUnknown_0860D10C[][4] = +static const u8 gUnknown_0860D10C[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] = { {0x08, 0x00, 0x04, 0x08}, {0x09, 0x0c, 0x08, 0x00}, @@ -1252,16 +1252,24 @@ static const u8 gUnknown_0860D10C[][4] = static const u8 gUnknown_0860D14C[] = {0x00, 0x08, 0x04, 0x0c, 0x07, 0x0f, 0x03, 0x0b, 0x02, 0x0a, 0x06, 0x0e, 0x05, 0x0d, 0x01, 0x09}; -static const u8 gUnknown_0860D15C[] = +static const u8 gUnknown_0860D15C[][4] = { - 0x00, 0x08, 0x0c, 0x0e, 0x00, 0x08, 0x0c, 0x0e, - 0x01, 0x08, 0x0c, 0x0e, 0x01, 0x08, 0x0c, 0x0e, - 0x02, 0x09, 0x0c, 0x0e, 0x02, 0x09, 0x0c, 0x0e, - 0x03, 0x09, 0x0c, 0x0e, 0x03, 0x09, 0x0c, 0x0e, - 0x04, 0x0a, 0x0d, 0x0e, 0x04, 0x0a, 0x0d, 0x0e, - 0x05, 0x0a, 0x0d, 0x0e, 0x05, 0x0a, 0x0d, 0x0e, - 0x06, 0x0b, 0x0d, 0x0e, 0x06, 0x0b, 0x0d, 0x0e, - 0x07, 0x0b, 0x0d, 0x0e, 0x07, 0x0b, 0x0d, 0x0e, + {0x00, 0x08, 0x0c, 0x0e}, + {0x00, 0x08, 0x0c, 0x0e}, + {0x01, 0x08, 0x0c, 0x0e}, + {0x01, 0x08, 0x0c, 0x0e}, + {0x02, 0x09, 0x0c, 0x0e}, + {0x02, 0x09, 0x0c, 0x0e}, + {0x03, 0x09, 0x0c, 0x0e}, + {0x03, 0x09, 0x0c, 0x0e}, + {0x04, 0x0a, 0x0d, 0x0e}, + {0x04, 0x0a, 0x0d, 0x0e}, + {0x05, 0x0a, 0x0d, 0x0e}, + {0x05, 0x0a, 0x0d, 0x0e}, + {0x06, 0x0b, 0x0d, 0x0e}, + {0x06, 0x0b, 0x0d, 0x0e}, + {0x07, 0x0b, 0x0d, 0x0e}, + {0x07, 0x0b, 0x0d, 0x0e}, }; static const u8 gUnknown_0860D19C[] = {0x17, 0x1b, 0x1d, 0x1e}; @@ -1384,8 +1392,8 @@ static const u8 *const gBattleDomeOpponentStatsPointers[] = gBattleDomeOpponentStats43, }; -static const u8 gUnknown_0860D340[] = {0x68, 0x88, 0x68}; -static const u8 gUnknown_0860D343[] = {0x26, 0x3e, 0x4e}; +static const u8 sInfoTrainerMonX[] = {0x68, 0x88, 0x68}; +static const u8 sInfoTrainerMonY[] = {0x26, 0x3e, 0x4e}; static const u8 gUnknown_0860D346[] = {0x00, 0x04, 0x00}; static const u8 gUnknown_0860D349[] = {0x00, 0x05, 0x09, 0x0c, 0x0e, 0x00, 0x00}; @@ -1420,10 +1428,10 @@ static const u8 *const gBattleDomeWinStringsPointers[] = gBattleDomeWinStrings7, }; -static const u8 gUnknown_0860D3A8[] = {0x60, 0x60, 0x60}; -static const u8 gUnknown_0860D3AB[] = {0x38, 0x50, 0x68}; -static const u8 gUnknown_0860D3AE[] = {0x90, 0x90, 0x90}; -static const u8 gUnknown_0860D3B1[] = {0x38, 0x50, 0x68}; +static const u8 sFirstTrainerMonX[] = {0x60, 0x60, 0x60}; +static const u8 sFirstTrainerMonY[] = {0x38, 0x50, 0x68}; +static const u8 sSecondTrainerMonX[] = {0x90, 0x90, 0x90}; +static const u8 sSecondTrainerMonY[] = {0x38, 0x50, 0x68}; static const u8 gUnknown_0860D3B4[] = {0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01}; @@ -1446,7 +1454,7 @@ static const u8 gUnknown_0860D3C4[][3] = {0x00, 0x10, 0x03}, }; -static const u8 gUnknown_0860D3F1[][2] = +static const u8 gUnknown_0860D3F1[][2] = { {0x00, 0x00}, {0x01, 0x70}, @@ -1500,7 +1508,6 @@ static const u8 gUnknown_0860D411[][2] = {0x89, 0x59}, {0x78, 0x59}, }; -const u8 sExtraByte = 0x00; static const struct UnkStruct_860DD10 gUnknown_0860d450[] = { @@ -2318,7 +2325,7 @@ static const struct UnkStruct_860DD10 gUnknown_0860dcdc[] = {.src = 0x602e, .y = 0x0b, .x = 0x0f}, }; -static const struct UnkStruct_860DD10 * const gUnknown_0860DD10[][4] = +static const struct UnkStruct_860DD10 * const gUnknown_0860DD10[DOME_TOURNAMENT_TRAINERS_COUNT][4] = { {gUnknown_0860d450, gUnknown_0860d460, gUnknown_0860d47c, gUnknown_0860d4a8}, {gUnknown_0860dc84, gUnknown_0860dc94, gUnknown_0860dcb0, gUnknown_0860dcdc}, @@ -2338,7 +2345,7 @@ static const struct UnkStruct_860DD10 * const gUnknown_0860DD10[][4] = {gUnknown_0860d70c, gUnknown_0860d71c, gUnknown_0860d738, gUnknown_0860d764}, }; -static const u8 gUnknown_0860DE10[][4] = +static const u8 gUnknown_0860DE10[DOME_TOURNAMENT_TRAINERS_COUNT][4] = { {0x04, 0x07, 0x0b, 0x0d}, {0x04, 0x07, 0x0b, 0x0d}, @@ -2364,7 +2371,7 @@ void CallBattleDomeFunction(void) gUnknown_0860D090[gSpecialVar_0x8004](); } -void sub_818E9CC(void) +static void sub_818E9CC(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -2380,7 +2387,7 @@ void sub_818E9CC(void) gTrainerBattleOpponent_A = 0; } -void sub_818EA84(void) +static void sub_818EA84(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -2448,7 +2455,7 @@ void sub_818EA84(void) } } -void sub_818ED28(void) +static void sub_818ED28(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -2514,7 +2521,7 @@ void sub_818ED28(void) } } -void InitDomeTrainers(void) +static void InitDomeTrainers(void) { s32 i, j, k; s32 monLevel; @@ -2775,18 +2782,18 @@ static void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray) SWAP_16(gSaveBlock2Ptr->frontier.domeMonId[id1][i], gSaveBlock2Ptr->frontier.domeMonId[id2][i]); } -void sub_818F9B0(void) +static void sub_818F9B0(void) { StringCopy(gStringVar1, gRoundsStringTable[gSaveBlock2Ptr->frontier.field_CB2]); } -void sub_818F9E0(void) +static void sub_818F9E0(void) { StringCopy(gStringVar1, gRoundsStringTable[gSaveBlock2Ptr->frontier.field_CB2]); CopyDomeTrainerName(gStringVar2, gTrainerBattleOpponent_A); } -void sub_818FA20(void) +static void sub_818FA20(void) { gUnknown_0203CD70 = 0; gUnknown_0203CD74 = GetMonData(&gPlayerParty[0], MON_DATA_MAX_HP, NULL); @@ -3419,7 +3426,7 @@ static s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId) } } -void sub_8190298(void) +static void sub_8190298(void) { gTrainerBattleOpponent_A = TrainerIdOfPlayerOpponent(); } @@ -3429,12 +3436,12 @@ static u16 TrainerIdOfPlayerOpponent(void) return gSaveBlock2Ptr->frontier.domeTrainers[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.field_CB2, TRAINER_PLAYER)].trainerId; } -void sub_81902E4(void) +static void sub_81902E4(void) { sub_8162614(gTrainerBattleOpponent_A, 0); } -void sub_81902F8(void) +static void sub_81902F8(void) { gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -3442,7 +3449,7 @@ void sub_81902F8(void) sub_81A4C30(); } -void sub_819033C(void) +static void sub_819033C(void) { u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -3456,7 +3463,7 @@ void sub_819033C(void) gSaveBlock2Ptr->frontier.field_D14[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode]; } -void ShowDomeOpponentInfo(void) +static void ShowDomeOpponentInfo(void) { u8 taskId = CreateTask(sub_8190400, 0); gTasks[taskId].data[0] = 0; @@ -3760,7 +3767,7 @@ static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite) } } -void sub_8190B40(struct Sprite *sprite) +static void sub_8190B40(struct Sprite *sprite) { s32 taskId1 = sprite->data[0]; s32 arrId = gTasks[gTasks[taskId1].data[4]].data[1]; @@ -3829,7 +3836,7 @@ void sub_8190B40(struct Sprite *sprite) } } -void sub_8190C6C(struct Sprite *sprite) +static void sub_8190C6C(struct Sprite *sprite) { s32 taskId1 = sprite->data[0]; @@ -4170,7 +4177,7 @@ static void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 256; gBattle_BG2_Y = 0; - matchNo = gUnknown_0860D15C[(gTasks[taskId2].data[1] * 4) + (sBattleDomeStruct->unk_10 - 1)]; + matchNo = gUnknown_0860D15C[gTasks[taskId2].data[1]][sBattleDomeStruct->unk_10 - 1]; DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); } @@ -4335,7 +4342,7 @@ static void sub_8190CD4(u8 taskId) gBattle_BG2_X = 0; gBattle_BG2_Y = 0; } - matchNo = gUnknown_0860D15C[(sBattleDomeStruct->unk_10 - 1) + (gTasks[taskId2].data[1] * 4)]; + matchNo = gUnknown_0860D15C[gTasks[taskId2].data[1]][sBattleDomeStruct->unk_10 - 1]; DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo); for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) @@ -4724,8 +4731,8 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) { sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], SpriteCb_MonIcon, - x | gUnknown_0860D340[i], - y + gUnknown_0860D343[i], + x | sInfoTrainerMonX[i], + y + sInfoTrainerMonY[i], 0, 0, TRUE); gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; } @@ -4733,8 +4740,8 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) { sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i], SpriteCb_MonIcon, - x | gUnknown_0860D340[i], - y + gUnknown_0860D343[i], + x | sInfoTrainerMonX[i], + y + sInfoTrainerMonY[i], 0, 0, TRUE); gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; } @@ -4742,8 +4749,8 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) { sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species, SpriteCb_MonIcon, - x | gUnknown_0860D340[i], - y + gUnknown_0860D343[i], + x | sInfoTrainerMonX[i], + y + sInfoTrainerMonY[i], 0, 0, TRUE); gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; } @@ -5178,8 +5185,8 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) { sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i], SpriteCb_MonIcon, - x | gUnknown_0860D3A8[i], - y + gUnknown_0860D3AB[i], + x | sFirstTrainerMonX[i], + y + sFirstTrainerMonY[i], 0, 0, TRUE); gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; } @@ -5187,8 +5194,8 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) { sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i], SpriteCb_MonIcon, - x | gUnknown_0860D3A8[i], - y + gUnknown_0860D3AB[i], + x | sFirstTrainerMonX[i], + y + sFirstTrainerMonY[i], 0, 0, TRUE); gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; } @@ -5196,8 +5203,8 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) { sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i]].species, SpriteCb_MonIcon, - x | gUnknown_0860D3A8[i], - y + gUnknown_0860D3AB[i], + x | sFirstTrainerMonX[i], + y + sFirstTrainerMonY[i], 0, 0, TRUE); gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; } @@ -5218,8 +5225,8 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) { sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i], SpriteCb_MonIcon, - x | gUnknown_0860D3AE[i], - y + gUnknown_0860D3B1[i], + x | sSecondTrainerMonX[i], + y + sSecondTrainerMonY[i], 0, 0, TRUE); gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0; } @@ -5227,8 +5234,8 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) { sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i], SpriteCb_MonIcon, - x | gUnknown_0860D3AE[i], - y + gUnknown_0860D3B1[i], + x | sSecondTrainerMonX[i], + y + sSecondTrainerMonY[i], 0, 0, TRUE); gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0; } @@ -5236,8 +5243,8 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) { sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i]].species, SpriteCb_MonIcon, - x | gUnknown_0860D3AE[i], - y + gUnknown_0860D3B1[i], + x | sSecondTrainerMonX[i], + y + sSecondTrainerMonY[i], 0, 0, TRUE); gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0; } @@ -5317,7 +5324,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) AddTextPrinter(&textPrinter, 0, NULL); } -void sub_81938A4(void) +static void sub_81938A4(void) { u8 taskId = CreateTask(sub_8194220, 0); gTasks[taskId].data[0] = 0; @@ -5327,7 +5334,7 @@ void sub_81938A4(void) SetMainCallback2(CB2_BattleDome); } -void sub_81938E0(void) +static void sub_81938E0(void) { u8 taskId; @@ -5342,7 +5349,7 @@ void sub_81938E0(void) SetMainCallback2(CB2_BattleDome); } -void sub_819395C(u8 taskId) +static void sub_819395C(u8 taskId) { u8 newTaskId = 0; s32 spriteId = gTasks[taskId].data[1]; @@ -5479,7 +5486,7 @@ static u8 sub_8193BDC(u8 taskId) return retVal; } -void sub_8193D40(void) +static void sub_8193D40(void) { u8 taskId = CreateTask(sub_8194220, 0); gTasks[taskId].data[0] = 0; @@ -5489,7 +5496,7 @@ void sub_8193D40(void) SetMainCallback2(CB2_BattleDome); } -void sub_8193D7C(void) +static void sub_8193D7C(void) { s32 i; @@ -6032,13 +6039,13 @@ static void VblankCb1_BattleDome(void) ScanlineEffect_InitHBlankDmaTransfer(); } -void sub_8194D48(void) +static void sub_8194D48(void) { gFacilityTrainerMons = gBattleFrontierMons; gFacilityTrainers = gBattleFrontierTrainers; } -void sub_8194D68(void) +static void sub_8194D68(void) { s32 i, moveSlot; @@ -6064,7 +6071,7 @@ void sub_8194D68(void) } } -void sub_8194E44(void) +static void sub_8194E44(void) { s32 i; @@ -6076,12 +6083,12 @@ void sub_8194E44(void) } } -void sub_8194EB4(void) +static void sub_8194EB4(void) { sub_80F94E8(); } -void sub_8194EC0(void) +static void sub_8194EC0(void) { if (TrainerIdToTournamentId(gTrainerBattleOpponent_A) > TrainerIdToTournamentId(TRAINER_PLAYER)) gSpecialVar_Result = 1; @@ -6089,7 +6096,7 @@ void sub_8194EC0(void) gSpecialVar_Result = 2; } -void sub_8194EF8(void) +static void sub_8194EF8(void) { s32 i; @@ -6102,7 +6109,7 @@ void sub_8194EF8(void) CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); } -void sub_8194F58(void) +static void sub_8194F58(void) { s32 i, j, k; s32 monLevel; From a8a2444f93db792f9d88f500e16d825a6db63437 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Aug 2018 15:58:44 +0200 Subject: [PATCH 139/174] make battle dome compikle --- src/record_mixing.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/record_mixing.c b/src/record_mixing.c index 8e85fed181..552c32d38d 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -1636,7 +1636,7 @@ void sub_80E8260(struct UnkRecordMixingStruct2 *dst) dst->field_0[1][i].field_4 = gSaveBlock2Ptr->frontier.field_CF4[i]; dst->field_0[2][i].field_4 = gSaveBlock2Ptr->frontier.field_CF8[i]; dst->field_0[3][i].field_4 = gSaveBlock2Ptr->frontier.field_D14[0][i]; - dst->field_0[4][i].field_4 = gSaveBlock2Ptr->frontier.field_DD0[i]; + dst->field_0[4][i].field_4 = gSaveBlock2Ptr->frontier.field_DD0[0][i]; dst->field_0[5][i].field_4 = gSaveBlock2Ptr->frontier.field_DDE[i]; dst->field_0[6][i].field_4 = gSaveBlock2Ptr->frontier.field_DEA[i]; dst->field_0[7][i].field_4 = gSaveBlock2Ptr->frontier.field_E08[i]; From ca07412686c769bc1072c751053217a7f30da03f Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 26 Aug 2018 15:45:08 +0100 Subject: [PATCH 140/174] Format SpriteTemplate --- src/battle_dome.c | 56 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/src/battle_dome.c b/src/battle_dome.c index 104c9fe9b5..41f7d7a955 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -1105,7 +1105,16 @@ static const union AnimCmd * const gUnknown_0860CFA0[] = gUnknown_0860CF98, }; -static const struct SpriteTemplate gUnknown_0860CFA8 = {0x0000, 0xffff, &gUnknown_0860CF70, gUnknown_0860CFA0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; +static const struct SpriteTemplate gUnknown_0860CFA8 = +{ + .tileTag = 0x0000, + .paletteTag = 0xffff, + .oam = &gUnknown_0860CF70, + .anims = gUnknown_0860CFA0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; static const union AnimCmd gUnknown_0860CFC0[] = { @@ -1125,7 +1134,16 @@ static const union AnimCmd * const gUnknown_0860CFD0[] = gUnknown_0860CFC8, }; -static const struct SpriteTemplate gUnknown_0860CFD8 = {0x0000, 0xffff, &gUnknown_0860CF78, gUnknown_0860CFD0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; +static const struct SpriteTemplate gUnknown_0860CFD8 = +{ + .tileTag = 0x0000, + .paletteTag = 0xffff, + .oam = &gUnknown_0860CF78, + .anims = gUnknown_0860CFD0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; static const union AnimCmd gUnknown_0860CFF0[] = { @@ -1145,7 +1163,16 @@ static const union AnimCmd * const gUnknown_0860D000[] = gUnknown_0860CFF8, }; -static const struct SpriteTemplate gUnknown_0860D008 = {0x0000, 0xffff, &gUnknown_0860CF78, gUnknown_0860D000, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; +static const struct SpriteTemplate gUnknown_0860D008 = +{ + .tileTag = 0x0000, + .paletteTag = 0xffff, + .oam = &gUnknown_0860CF78, + .anims = gUnknown_0860D000, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; static const union AnimCmd gUnknown_0860D020[] = { @@ -1183,8 +1210,27 @@ static const union AnimCmd * const gUnknown_0860D048[] = gUnknown_0860D038, }; -static const struct SpriteTemplate gUnknown_0860D050 = {0x0000, 0xffff, &gUnknown_0860CF88, gUnknown_0860D048, NULL, gDummySpriteAffineAnimTable, sub_8190B40}; -static const struct SpriteTemplate gUnknown_0860D068 = {0x0000, 0xffff, &gUnknown_0860CF80, gUnknown_0860D040, NULL, gDummySpriteAffineAnimTable, sub_8190C6C}; +static const struct SpriteTemplate gUnknown_0860D050 = +{ + .tileTag = 0x0000, + .paletteTag = 0xffff, + .oam = &gUnknown_0860CF88, + .anims = gUnknown_0860D048, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8190B40 +}; + +static const struct SpriteTemplate gUnknown_0860D068 = +{ + .tileTag = 0x0000, + .paletteTag = 0xffff, + .oam = &gUnknown_0860CF80, + .anims = gUnknown_0860D040, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8190C6C +}; static const u8 gUnknown_0860D080[DOME_TOURNAMENT_TRAINERS_COUNT] = { From ddd4733de341824df578bb3bc5a2c232f41ccb14 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Aug 2018 17:54:58 +0200 Subject: [PATCH 141/174] rename battle pyramid to battle pyramid bag --- ...{battle_pyramid.s => battle_pyramid_bag.s} | 0 asm/battle_tower.s | 253 ------------------ ...{battle_pyramid.s => battle_pyramid_bag.s} | 0 ld_script.txt | 7 +- ...{battle_pyramid.c => battle_pyramid_bag.c} | 0 src/battle_tower.c | 85 ++++++ sym_ewram.txt | 2 +- 7 files changed, 90 insertions(+), 257 deletions(-) rename asm/{battle_pyramid.s => battle_pyramid_bag.s} (100%) rename data/{battle_pyramid.s => battle_pyramid_bag.s} (100%) rename src/{battle_pyramid.c => battle_pyramid_bag.c} (100%) create mode 100644 src/battle_tower.c diff --git a/asm/battle_pyramid.s b/asm/battle_pyramid_bag.s similarity index 100% rename from asm/battle_pyramid.s rename to asm/battle_pyramid_bag.s diff --git a/asm/battle_tower.s b/asm/battle_tower.s index bdc49fed25..f240693071 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -5,261 +5,8 @@ .text - thumb_func_start sub_8161F74 -sub_8161F74: @ 8161F74 - push {lr} - ldr r1, =gUnknown_085DF96C - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161F74 - thumb_func_start sub_8161F94 -sub_8161F94: @ 8161F94 - push {r4-r7,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, [r4] - ldr r2, =0x00000ca8 - adds r0, r2 - movs r7, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r1, [r4] - adds r2, 0xA - adds r0, r1, r2 - strh r7, [r0] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bl sub_81A3ACC - ldr r4, [r4] - ldr r0, =0x00000cdc - adds r3, r4, r0 - ldr r2, =gUnknown_085DF9AC - lsls r1, r5, 2 - lsls r0, r6, 3 - adds r1, r0 - adds r1, r2 - ldr r0, [r3] - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _0816200E - lsls r0, r5, 1 - lsls r1, r6, 2 - adds r0, r1 - movs r2, 0xCE - lsls r2, 4 - adds r1, r4, r2 - adds r1, r0 - strh r7, [r1] -_0816200E: - bl sub_8164ED8 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - ldr r0, =gTrainerBattleOpponent_A - strh r7, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161F94 - thumb_func_start sub_8162054 -sub_8162054: @ 8162054 - push {r4-r6,lr} - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r4, =0x00000ca9 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 30 - lsrs r6, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x1 - beq _08162094 - cmp r0, 0x1 - ble _081620E8 - cmp r0, 0x2 - beq _081620A8 - cmp r0, 0x3 - beq _081620D8 - b _081620E8 - .pool -_08162094: - adds r0, r6, 0 - lsls r1, 24 - lsrs r1, 24 - bl sub_8164FCC - ldr r1, =gSpecialVar_Result - strh r0, [r1] - b _081620E8 - .pool -_081620A8: - ldr r4, =gSpecialVar_Result - ldr r2, [r5] - ldr r0, =0x00000cdc - adds r2, r0 - ldr r3, =gUnknown_085DF9AC - lsls r0, r6, 2 - lsls r1, 3 - adds r0, r1 - adds r0, r3 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - strh r0, [r4] - b _081620E8 - .pool -_081620D8: - ldr r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - ldr r2, =0x00000d07 - adds r1, r2 - strb r0, [r1] -_081620E8: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8162054 - - thumb_func_start sub_81620F4 -sub_81620F4: @ 81620F4 - push {r4-r7,lr} - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - ldr r7, =0x00000ca9 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x1 - beq _08162134 - cmp r0, 0x1 - ble _081621B4 - cmp r0, 0x2 - beq _08162150 - cmp r0, 0x3 - beq _081621A4 - b _081621B4 - .pool -_08162134: - ldr r2, [r6] - lsls r0, r5, 1 - lsls r1, r4, 2 - adds r0, r1 - movs r1, 0xCE - lsls r1, 4 - adds r2, r1 - adds r2, r0 - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - strh r0, [r2] - b _081621B4 - .pool -_08162150: - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - cmp r0, 0 - beq _08162180 - ldr r2, [r6] - ldr r0, =0x00000cdc - adds r2, r0 - ldr r3, =gUnknown_085DF9AC - lsls r1, r5, 2 - lsls r0, r4, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - orrs r0, r1 - str r0, [r2] - b _081621B4 - .pool -_08162180: - ldr r2, [r6] - ldr r1, =0x00000cdc - adds r2, r1 - ldr r3, =gUnknown_085DF9CC - lsls r1, r5, 2 - lsls r0, r4, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - ands r0, r1 - str r0, [r2] - b _081621B4 - .pool -_081621A4: - ldr r1, [r6] - adds r0, r1, r7 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - ldr r2, =0x00000d07 - adds r1, r2 - strb r0, [r1] -_081621B4: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81620F4 thumb_func_start sub_81621C0 sub_81621C0: @ 81621C0 diff --git a/data/battle_pyramid.s b/data/battle_pyramid_bag.s similarity index 100% rename from data/battle_pyramid.s rename to data/battle_pyramid_bag.s diff --git a/ld_script.txt b/ld_script.txt index c06b410f14..a4219faf30 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -212,6 +212,7 @@ SECTIONS { src/fldeff_softboiled.o(.text); src/decoration_inventory.o(.text); src/roamer.o(.text); + src/battle_tower.o(.text); asm/battle_tower.o(.text); src/use_pokeblock.o(.text); asm/use_pokeblock.o(.text); @@ -265,8 +266,8 @@ SECTIONS { src/berry_fix_program.o(.text); src/pokemon_summary_screen.o(.text); src/unk_pokedex_area_screen_helper.o(.text); - src/battle_pyramid.o(.text); - asm/battle_pyramid.o(.text); + src/battle_pyramid_bag.o(.text); + asm/battle_pyramid_bag.o(.text); asm/pokenav.o(.text); src/match_call.o(.text); asm/pokenav.o(.text.after.match.call); @@ -544,7 +545,7 @@ SECTIONS { src/berry_fix_program.o(.rodata); src/pokemon_summary_screen.o(.rodata); src/unk_pokedex_area_screen_helper.o(.rodata); - data/battle_pyramid.o(.rodata); + data/battle_pyramid_bag.o(.rodata); data/pokenav.o(.rodata); src/match_call.o(.rodata); data/pokenav.o(.rodata.after.match.call); diff --git a/src/battle_pyramid.c b/src/battle_pyramid_bag.c similarity index 100% rename from src/battle_pyramid.c rename to src/battle_pyramid_bag.c diff --git a/src/battle_tower.c b/src/battle_tower.c new file mode 100644 index 0000000000..e70d4af91c --- /dev/null +++ b/src/battle_tower.c @@ -0,0 +1,85 @@ +#include "global.h" +#include "event_data.h" +#include "battle_setup.h" +#include "overworld.h" +#include "random.h" +#include "battle_tower.h" + +extern void sub_81A3ACC(void); + +extern const u32 gUnknown_085DF9AC[][2]; +extern const u32 gUnknown_085DF9CC[][2]; +extern void (* const gUnknown_085DF96C[])(void); + +// This file's functions. +void sub_8164ED8(void); +u16 sub_8164FCC(u8, u8); + +// code +void sub_8161F74(void) +{ + gUnknown_085DF96C[gSpecialVar_0x8004](); +} + +void sub_8161F94(void) +{ + u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + + gSaveBlock2Ptr->frontier.field_CA8 = 1; + gSaveBlock2Ptr->frontier.field_CB2 = 0; + gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.field_CA9_b = 0; + sub_81A3ACC(); + if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_085DF9AC[battleMode][lvlMode])) + gSaveBlock2Ptr->frontier.field_CE0[battleMode][lvlMode] = 0; + + sub_8164ED8(); + saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + gTrainerBattleOpponent_A = 0; +} + +void sub_8162054(void) +{ + u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + + switch (gSpecialVar_0x8005) + { + case 0: + break; + case 1: + gSpecialVar_Result = sub_8164FCC(lvlMode, battleMode); + break; + case 2: + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_085DF9AC[battleMode][lvlMode]) != 0); + break; + case 3: + gSaveBlock2Ptr->frontier.field_D07 = gSaveBlock2Ptr->frontier.lvlMode; + break; + } +} + +void sub_81620F4(void) +{ + u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + + switch (gSpecialVar_0x8005) + { + case 0: + break; + case 1: + gSaveBlock2Ptr->frontier.field_CE0[battleMode][lvlMode] = gSpecialVar_0x8006; + break; + case 2: + if (gSpecialVar_0x8006) + gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_085DF9AC[battleMode][lvlMode]; + else + gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_085DF9CC[battleMode][lvlMode]; + break; + case 3: + gSaveBlock2Ptr->frontier.field_D07 = gSaveBlock2Ptr->frontier.lvlMode; + break; + } +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 689f8bba80..bf2632e91b 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -729,7 +729,7 @@ gUnknown_0203CF00: @ 203CF00 .include "src/fldeff_groundshake.o" .include "src/pokemon_summary_screen.o" .include "src/unk_pokedex_area_screen_helper.o" - .include "src/battle_pyramid.o" + .include "src/battle_pyramid_bag.o" gUnknown_0203CF3C: @ 203CF3C .space 0x4 From d65ebcd3dd08dd2e5bdd53fd9acf69aa15689c21 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Aug 2018 21:41:47 +0200 Subject: [PATCH 142/174] Label a dome functiion --- src/battle_dome.c | 97 +++++++++++++++++++++++++---------------------- 1 file changed, 52 insertions(+), 45 deletions(-) diff --git a/src/battle_dome.c b/src/battle_dome.c index 41f7d7a955..4505ce8b02 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -224,7 +224,7 @@ static void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 natu static void CreateDomeTrainerMons(u16 tournamentTrainerId); static s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); static s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); -static s32 sub_818FFC0(s32 move, s32 species, s32 arg2); +static s32 GetTypeEffectivenessPoints(s32 move, s32 species, s32 arg2); static s32 sub_818FEB4(s32 *arr, bool8 arg1); static void sub_8190400(u8 taskId); static void sub_8190CD4(u8 taskId); @@ -1276,24 +1276,24 @@ static const u32 gUnknown_0860D0FC[][2] = {0xffefffff, 0xffdfffff}, }; -static const u8 gUnknown_0860D10C[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] = +static const u8 sIdToOpponentId[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] = { - {0x08, 0x00, 0x04, 0x08}, - {0x09, 0x0c, 0x08, 0x00}, - {0x0a, 0x08, 0x0c, 0x00}, - {0x0b, 0x04, 0x00, 0x08}, - {0x0c, 0x00, 0x04, 0x08}, - {0x0d, 0x0c, 0x08, 0x00}, - {0x0e, 0x08, 0x0c, 0x00}, - {0x0f, 0x04, 0x00, 0x08}, - {0x00, 0x00, 0x04, 0x08}, - {0x01, 0x0c, 0x08, 0x00}, - {0x02, 0x08, 0x0c, 0x00}, - {0x03, 0x04, 0x00, 0x08}, - {0x04, 0x00, 0x04, 0x08}, - {0x05, 0x0c, 0x08, 0x00}, - {0x06, 0x08, 0x0c, 0x00}, - {0x07, 0x04, 0x00, 0x08}, + [0] = {8, 0, 4, 8}, + [1] = {9, 12, 8, 0}, + [2] = {10, 8, 12, 0}, + [3] = {11, 4, 0, 8}, + [4] = {12, 0, 4, 8}, + [5] = {13, 12, 8, 0}, + [6] = {14, 8, 12, 0}, + [7] = {15, 4, 0, 8}, + [8] = {0, 0, 4, 8}, + [9] = {1, 12, 8, 0}, + [10] = {2, 8, 12, 0}, + [11] = {3, 4, 0, 8}, + [12] = {4, 0, 4, 8}, + [13] = {5, 12, 8, 0}, + [14] = {6, 8, 12, 0}, + [15] = {7, 4, 0, 8}, }; static const u8 gUnknown_0860D14C[] = {0x00, 0x08, 0x04, 0x0c, 0x07, 0x0f, 0x03, 0x0b, 0x02, 0x0a, 0x06, 0x0e, 0x05, 0x0d, 0x01, 0x09}; @@ -2943,12 +2943,12 @@ static s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1) { if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) { - array[i] += sub_818FFC0(sub_81A5060(i, moveId), + array[i] += GetTypeEffectivenessPoints(sub_81A5060(i, moveId), GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0); } else { - array[i] += sub_818FFC0(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][i]].moves[moveId], + array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][i]].moves[moveId], GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0); } } @@ -2971,12 +2971,12 @@ static s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1) { if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) { - array[i] += sub_818FFC0(sub_81A5060(i, moveId), + array[i] += GetTypeEffectivenessPoints(sub_81A5060(i, moveId), GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1); } else { - array[i] += sub_818FFC0(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][i]].moves[moveId], + array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][i]].moves[moveId], GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1); } } @@ -3051,23 +3051,30 @@ static s32 sub_818FEB4(s32 *arr, bool8 arg1) return bits; } +#define TYPE_x0 0 +#define TYPE_x0_25 5 +#define TYPE_x0_50 10 +#define TYPE_x1 20 +#define TYPE_x2 40 +#define TYPE_x4 80 + // Functionally equivalent, while loop is impossible to match. #ifdef NONMATCHING -static s32 sub_818FFC0(s32 move, s32 species, s32 arg2) +static s32 GetTypeEffectivenessPoints(s32 move, s32 targetSpecies, s32 arg2) { - s32 type1, type2, ability, moveType; + s32 defType1, defType2, defAbility, moveType; s32 i = 0; - s32 typePower = 20; + s32 typePower = TYPE_x1; if (move == MOVE_NONE || move == 0xFFFF || gBattleMoves[move].power == 0) return 0; - type1 = gBaseStats[species].type1; - type2 = gBaseStats[species].type2; - ability = gBaseStats[species].ability1; + defType1 = gBaseStats[targetSpecies].type1; + defType2 = gBaseStats[targetSpecies].type2; + defAbility = gBaseStats[targetSpecies].ability1; moveType = gBattleMoves[move].type; - if (ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (defAbility == ABILITY_LEVITATE && moveType == TYPE_GROUND) { if (arg2 == 1) typePower = 8; @@ -3086,9 +3093,9 @@ static s32 sub_818FFC0(s32 move, s32 species, s32 arg2) if (val == moveType) { // BUG: * 2 is not necessary and makes the condition always false if the ability is wonder guard. - if (gTypeEffectiveness[i + 1] == type1 && (ability != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2)) + if (gTypeEffectiveness[i + 1] == defType1 && (defAbility != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2)) typePower = (gTypeEffectiveness[i + 2] * typePower) / 10; - if (gTypeEffectiveness[i + 1] == type2 && type1 != type2 && (ability != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2)) + if (gTypeEffectiveness[i + 1] == defType2 && defType1 != defType2 && (defAbility != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2)) typePower = (gTypeEffectiveness[i + 2] * typePower) / 10; } i += 3; @@ -3145,23 +3152,23 @@ static s32 sub_818FFC0(s32 move, s32 species, s32 arg2) case 2: switch (typePower) { - case 0: + case TYPE_x0: typePower = -16; break; - case 5: + case TYPE_x0_25: typePower = -8; break; - case 10: + case TYPE_x0_50: default: typePower = 0; break; - case 20: + case TYPE_x1: typePower = 4; break; - case 40: + case TYPE_x2: typePower = 12; break; - case 80: + case TYPE_x4: typePower = 20; break; } @@ -3172,7 +3179,7 @@ static s32 sub_818FFC0(s32 move, s32 species, s32 arg2) } #else NAKED -static s32 sub_818FFC0(s32 move, s32 species, s32 arg2) +static s32 GetTypeEffectivenessPoints(s32 move, s32 species, s32 arg2) { asm_unified("\n\ push {r4-r7,lr}\n\ @@ -3448,11 +3455,11 @@ static s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId) if (roundId != DOME_ROUND1) { if (roundId == DOME_FINAL) - val = gUnknown_0860D10C[i][roundId] + 8; + val = sIdToOpponentId[i][roundId] + 8; else - val = gUnknown_0860D10C[i][roundId] + 4; + val = sIdToOpponentId[i][roundId] + 4; - for (j = gUnknown_0860D10C[i][roundId]; j < val; j++) + for (j = sIdToOpponentId[i][roundId]; j < val; j++) { if (gUnknown_0860D14C[j] != i && !gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D14C[j]].isEliminated) break; @@ -3465,8 +3472,8 @@ static s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId) } else { - if (!gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D10C[i][roundId]].isEliminated) - return gUnknown_0860D10C[i][roundId]; + if (!gSaveBlock2Ptr->frontier.domeTrainers[sIdToOpponentId[i][roundId]].isEliminated) + return sIdToOpponentId[i][roundId]; else return 0xFF; } @@ -6366,7 +6373,7 @@ static void DecideRoundWinners(u8 roundId) { for (monId2 = 0; monId2 < 3; monId2++) { - points1 += sub_818FFC0(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId1][monId1]].moves[moveSlot], + points1 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId1][monId1]].moves[moveSlot], gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId2][monId2]].species, 2); } } @@ -6389,7 +6396,7 @@ static void DecideRoundWinners(u8 roundId) { for (monId2 = 0; monId2 < 3; monId2++) { - points2 += sub_818FFC0(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId2][monId1]].moves[moveSlot], + points2 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId2][monId1]].moves[moveSlot], gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId1][monId2]].species, 2); } } From e30c2251ce72df8ed66f119370714531c50951ae Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Mon, 27 Aug 2018 00:26:54 +0100 Subject: [PATCH 143/174] Convert more of data2b --- data/data2b.s | 3712 ----------------- .../pokemon/still_front_pic_table.inc | 442 -- include/data2.h | 4 +- include/graphics.h | 422 +- .../pokemon_graphics/back_pic_coordinates.h | 443 ++ .../pokemon_graphics/front_pic_coordinates.h | 443 ++ .../pokemon_graphics/still_front_pic_table.h | 446 ++ src/data/pokemon_graphics/unknown_anims.h | 2347 +++++++++++ src/data/trainer_graphics/back_pic_tables.h | 18 +- src/data/trainer_graphics/front_pic_tables.h | 188 +- src/data2b.c | 6 + 11 files changed, 4209 insertions(+), 4262 deletions(-) delete mode 100644 data/graphics/pokemon/still_front_pic_table.inc create mode 100644 src/data/pokemon_graphics/back_pic_coordinates.h create mode 100644 src/data/pokemon_graphics/front_pic_coordinates.h create mode 100644 src/data/pokemon_graphics/still_front_pic_table.h create mode 100644 src/data/pokemon_graphics/unknown_anims.h diff --git a/data/data2b.s b/data/data2b.s index 8d20be90fe..db378d1a5b 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -217,3715 +217,3 @@ gUnknown_082FF6C0:: @ 82FF6C0 .4byte gUnknown_082FF664 .4byte gUnknown_082FF5D8 .4byte gUnknown_082FF684 - - .align 2 -gUnknown_082FF6EC:: @ 82FF6EC - .2byte 0x0000, 0x0000, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF6F4:: @ 82FF6F4 - .2byte 0x0001, 0x0000, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF6FC:: @ 82FF6FC - .2byte 0x0002, 0x0000, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF704:: @ 82FF704 - .2byte 0x0003, 0x0000, 0xffff, 0x0000 - - .align 2 -gPlayerMonSpriteAnimsTable:: @ 82FF70C - .4byte gUnknown_082FF6EC - .4byte gUnknown_082FF6F4 - .4byte gUnknown_082FF6FC - .4byte gUnknown_082FF704 - - .align 2 -gUnknown_082FF71C:: @ 82FF71C - .2byte 0x0000, 0x0001, 0x0001, 0x0019, 0x0000, 0x0007, 0x0001, 0x0007 - .2byte 0x0000, 0x0007, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF734:: @ 82FF734 - .2byte 0x0000, 0x0001, 0x0002, 0x0008, 0x0000, 0x0008, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF744:: @ 82FF744 - .2byte 0x0000, 0x000a, 0x0002, 0x000a, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF750:: @ 82FF750 - .2byte 0x0000, 0x000a, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF758:: @ 82FF758 - .2byte 0x0000, 0x0001, 0x0001, 0x0005, 0x0000, 0x0005, 0x0001, 0x0005 - .2byte 0x0000, 0x0005, 0x0001, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF774:: @ 82FF774 - .2byte 0x0000, 0x0001, 0x0002, 0x000c, 0x0000, 0x000e, 0x0002, 0x000c - .2byte 0x0000, 0x000e, 0x0002, 0x000c, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF790:: @ 82FF790 - .2byte 0x0000, 0x000e, 0x0002, 0x000c, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF79C:: @ 82FF79C - .2byte 0x0000, 0x000a, 0x0001, 0x000a, 0x0000, 0x000a, 0x0001, 0x000a, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF7B0:: @ 82FF7B0 - .2byte 0x0000, 0x000a, 0x0002, 0x000a, 0x0000, 0x000a, 0x0002, 0x000a, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF7C4:: @ 82FF7C4 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF7CC:: @ 82FF7CC - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF7D4:: @ 82FF7D4 - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF7DC:: @ 82FF7DC - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF7E4:: @ 82FF7E4 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF7EC:: @ 82FF7EC - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF7F4:: @ 82FF7F4 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF7FC:: @ 82FF7FC - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF804:: @ 82FF804 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF80C:: @ 82FF80C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF814:: @ 82FF814 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF81C:: @ 82FF81C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF824:: @ 82FF824 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF82C:: @ 82FF82C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF834:: @ 82FF834 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF83C:: @ 82FF83C - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF844:: @ 82FF844 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF84C:: @ 82FF84C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF854:: @ 82FF854 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF85C:: @ 82FF85C - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF864:: @ 82FF864 - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF86C:: @ 82FF86C - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF874:: @ 82FF874 - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF87C:: @ 82FF87C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF884:: @ 82FF884 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF88C:: @ 82FF88C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF894:: @ 82FF894 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF89C:: @ 82FF89C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF8A4:: @ 82FF8A4 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF8AC:: @ 82FF8AC - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF8B4:: @ 82FF8B4 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF8BC:: @ 82FF8BC - .2byte 0x0000, 0x000f, 0x0008, 0x000f, 0x0002, 0x0016, 0x0008, 0x0005 - .2byte 0x0003, 0x0008, 0x0004, 0x0005, 0x0006, 0x0005, 0x0004, 0x0005 - .2byte 0x0006, 0x0005, 0x0004, 0x0005, 0x0006, 0x0005, 0x0004, 0x0005 - .2byte 0x0006, 0x0005, 0x0005, 0x0005, 0x0007, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF8FC:: @ 82FF8FC - .2byte 0x0000, 0x000a, 0x0008, 0x000f, 0x0002, 0x000f, 0x0008, 0x000f - .2byte 0x0009, 0x000f, 0x0000, 0x000a, 0x0009, 0x000a, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF91C:: @ 82FF91C - .2byte 0x0000, 0x000a, 0x0009, 0x000a, 0x0000, 0x000a, 0x000a, 0x0014, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF930:: @ 82FF930 - .2byte 0x0000, 0x000f, 0x000b, 0x000f, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF93C:: @ 82FF93C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF944:: @ 82FF944 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF94C:: @ 82FF94C - .2byte 0x0000, 0x000a, 0x0001, 0x0007, 0x0002, 0x0007, 0x0003, 0x0004 - .2byte 0x0004, 0x0004, 0x0003, 0x0004, 0x0004, 0x0004, 0x0003, 0x0004 - .2byte 0x0004, 0x0004, 0x0003, 0x0004, 0x0001, 0x0006, 0x0005, 0x0002 - .2byte 0x0000, 0x0002, 0x0005, 0x0002, 0x0000, 0x0002, 0x0005, 0x0002 - .2byte 0x0006, 0x0002, 0x0005, 0x0002, 0x0006, 0x0002, 0x0006, 0x000a - .2byte 0x0005, 0x0004, 0x0000, 0x000a, 0xffff, 0x0000 - - .align 2 -gUnknown_082FF9A8:: @ 82FF9A8 - .2byte 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c, 0x0000, 0x000c - .2byte 0x0007, 0x000c, 0x0008, 0x000c, 0x0000, 0x000c, 0x0007, 0x000c - .2byte 0x0008, 0x000c, 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c - .2byte 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c, 0x0009, 0x0003 - .2byte 0x0000, 0x0003, 0x0009, 0x0003, 0x0000, 0x0003, 0x0007, 0x000c - .2byte 0x0008, 0x000c, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFA00:: @ 82FFA00 - .2byte 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c, 0x0000, 0x000c - .2byte 0x0007, 0x000c, 0x0008, 0x000c, 0x0000, 0x000c, 0x0007, 0x000c - .2byte 0x0008, 0x000c, 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c - .2byte 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c, 0x0009, 0x0003 - .2byte 0x0000, 0x0003, 0x0009, 0x0003, 0x0000, 0x0003, 0x0007, 0x000c - .2byte 0x0008, 0x000c, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFA58:: @ 82FFA58 - .2byte 0x0000, 0x0012, 0x000a, 0x0012, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFA64:: @ 82FFA64 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFA6C:: @ 82FFA6C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFA74:: @ 82FFA74 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFA7C:: @ 82FFA7C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFA84:: @ 82FFA84 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFA8C:: @ 82FFA8C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFA94:: @ 82FFA94 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFA9C:: @ 82FFA9C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFAA4:: @ 82FFAA4 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFAAC:: @ 82FFAAC - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFAB4:: @ 82FFAB4 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFABC:: @ 82FFABC - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFAC4:: @ 82FFAC4 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFACC:: @ 82FFACC - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFAD4:: @ 82FFAD4 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFADC:: @ 82FFADC - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFAE4:: @ 82FFAE4 - .2byte 0x0000, 0x003f, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFAEC:: @ 82FFAEC - .2byte 0x0000, 0x003f, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFAF4:: @ 82FFAF4 - .2byte 0x0000, 0x003f, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFAFC:: @ 82FFAFC - .2byte 0x0000, 0x003f, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFB04:: @ 82FFB04 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFB0C:: @ 82FFB0C - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFB14:: @ 82FFB14 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFB1C:: @ 82FFB1C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFB24:: @ 82FFB24 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFB2C:: @ 82FFB2C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFB34:: @ 82FFB34 - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFB3C:: @ 82FFB3C - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFB44:: @ 82FFB44 - .2byte 0x0000, 0x0001, 0x0001, 0x0012, 0x0000, 0x0012, 0x0001, 0x0012 - .2byte 0x0000, 0x0012, 0x0001, 0x0012, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFB60:: @ 82FFB60 - .2byte 0x0000, 0x0001, 0x0002, 0x0012, 0x0000, 0x0012, 0x0002, 0x0012 - .2byte 0x0000, 0x0012, 0x0002, 0x0012, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFB7C:: @ 82FFB7C - .2byte 0x0000, 0x0005, 0x0002, 0x0005, 0x0003, 0x0006, 0x0001, 0x0005 - .2byte 0x0000, 0x0005, 0x0002, 0x0005, 0x0003, 0x0005, 0x0001, 0x0005 - .2byte 0x0000, 0x0005, 0x0001, 0x0007, 0x0000, 0x0004, 0x0004, 0x0004 - .2byte 0x0000, 0x0004, 0x0004, 0x0004, 0x0000, 0x0014, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFBBC:: @ 82FFBBC - .2byte 0x0000, 0x0006, 0x0001, 0x0006, 0x0002, 0x0006, 0x0003, 0x0006 - .2byte 0x0001, 0x0006, 0x0000, 0x0006, 0x0001, 0x0006, 0x0000, 0x001e - .2byte 0xffff, 0x0000 - - .align 2 -gUnknown_082FFBE0:: @ 82FFBE0 - .2byte 0x0000, 0x000c, 0x0005, 0x000c, 0x0000, 0x000c, 0x0006, 0x000c, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFBF4:: @ 82FFBF4 - .2byte 0x0007, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFBFC:: @ 82FFBFC - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC04:: @ 82FFC04 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC0C:: @ 82FFC0C - .2byte 0x0000, 0x003f, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC14:: @ 82FFC14 - .2byte 0x0000, 0x003f, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC1C:: @ 82FFC1C - .2byte 0x0000, 0x003f, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC24:: @ 82FFC24 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC2C:: @ 82FFC2C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC34:: @ 82FFC34 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC3C:: @ 82FFC3C - .2byte 0x0000, 0x0001, 0x0001, 0x000a, 0x0000, 0x000a, 0x0001, 0x000a - .2byte 0x0000, 0x000a, 0x0001, 0x000a, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC58:: @ 82FFC58 - .2byte 0x0000, 0x0001, 0x0002, 0x0008, 0x0000, 0x000c, 0x0002, 0x0008 - .2byte 0x0000, 0x000c, 0x0002, 0x0008, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC74:: @ 82FFC74 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC7C:: @ 82FFC7C - .2byte 0x0000, 0x000a, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC84:: @ 82FFC84 - .2byte 0x0001, 0x0009, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC8C:: @ 82FFC8C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC94:: @ 82FFC94 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFC9C:: @ 82FFC9C - .2byte 0x0000, 0x000a, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFCA4:: @ 82FFCA4 - .2byte 0x0001, 0x000a, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFCAC:: @ 82FFCAC - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFCB4:: @ 82FFCB4 - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFCBC:: @ 82FFCBC - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFCC4:: @ 82FFCC4 - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFCCC:: @ 82FFCCC - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFCD4:: @ 82FFCD4 - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFCDC:: @ 82FFCDC - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFCE4:: @ 82FFCE4 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFCEC:: @ 82FFCEC - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFCF4:: @ 82FFCF4 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFCFC:: @ 82FFCFC - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD04:: @ 82FFD04 - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD0C:: @ 82FFD0C - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD14:: @ 82FFD14 - .2byte 0x0000, 0x0005, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD1C:: @ 82FFD1C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD24:: @ 82FFD24 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD2C:: @ 82FFD2C - .2byte 0x0002, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD34:: @ 82FFD34 - .2byte 0x0003, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD3C:: @ 82FFD3C - .2byte 0x0000, 0x003f, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD44:: @ 82FFD44 - .2byte 0x0000, 0x003f, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD4C:: @ 82FFD4C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD54:: @ 82FFD54 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD5C:: @ 82FFD5C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD64:: @ 82FFD64 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD6C:: @ 82FFD6C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD74:: @ 82FFD74 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD7C:: @ 82FFD7C - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD84:: @ 82FFD84 - .2byte 0x0001, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFD8C:: @ 82FFD8C - .2byte 0x0000, 0x0014, 0x0001, 0x001e, 0x0000, 0x0014, 0x0001, 0x001e, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFDA0:: @ 82FFDA0 - .2byte 0x0000, 0x0014, 0x0002, 0x0014, 0x0000, 0x0014, 0x0002, 0x0014, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFDB4:: @ 82FFDB4 - .2byte 0x0000, 0x000a, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFDBC:: @ 82FFDBC - .2byte 0x0000, 0x000a, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFDC4:: @ 82FFDC4 - .2byte 0x0000, 0x0001, 0xffff, 0x0000 - - .align 2 -gUnknown_082FFDCC:: @ 82FFDCC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFDD0:: @ 82FFDD0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFDD4:: @ 82FFDD4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFDD8:: @ 82FFDD8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFDDC:: @ 82FFDDC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFDE0:: @ 82FFDE0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFDE4:: @ 82FFDE4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFDE8:: @ 82FFDE8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFDEC:: @ 82FFDEC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFDF0:: @ 82FFDF0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFDF4:: @ 82FFDF4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFDF8:: @ 82FFDF8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFDFC:: @ 82FFDFC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE00:: @ 82FFE00 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE04:: @ 82FFE04 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE08:: @ 82FFE08 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE0C:: @ 82FFE0C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE10:: @ 82FFE10 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE14:: @ 82FFE14 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE18:: @ 82FFE18 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE1C:: @ 82FFE1C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE20:: @ 82FFE20 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE24:: @ 82FFE24 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE28:: @ 82FFE28 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE2C:: @ 82FFE2C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE30:: @ 82FFE30 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE34:: @ 82FFE34 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE38:: @ 82FFE38 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE3C:: @ 82FFE3C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE40:: @ 82FFE40 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE44:: @ 82FFE44 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE48:: @ 82FFE48 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE4C:: @ 82FFE4C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE50:: @ 82FFE50 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE54:: @ 82FFE54 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE58:: @ 82FFE58 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE5C:: @ 82FFE5C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE60:: @ 82FFE60 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE64:: @ 82FFE64 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE68:: @ 82FFE68 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE6C:: @ 82FFE6C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE70:: @ 82FFE70 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE74:: @ 82FFE74 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE78:: @ 82FFE78 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE7C:: @ 82FFE7C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE80:: @ 82FFE80 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE84:: @ 82FFE84 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE88:: @ 82FFE88 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE8C:: @ 82FFE8C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE90:: @ 82FFE90 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE94:: @ 82FFE94 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE98:: @ 82FFE98 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFE9C:: @ 82FFE9C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEA0:: @ 82FFEA0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEA4:: @ 82FFEA4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEA8:: @ 82FFEA8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEAC:: @ 82FFEAC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEB0:: @ 82FFEB0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEB4:: @ 82FFEB4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEB8:: @ 82FFEB8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEBC:: @ 82FFEBC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEC0:: @ 82FFEC0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEC4:: @ 82FFEC4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEC8:: @ 82FFEC8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFECC:: @ 82FFECC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFED0:: @ 82FFED0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFED4:: @ 82FFED4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFED8:: @ 82FFED8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEDC:: @ 82FFEDC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEE0:: @ 82FFEE0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEE4:: @ 82FFEE4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEE8:: @ 82FFEE8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEEC:: @ 82FFEEC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEF0:: @ 82FFEF0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEF4:: @ 82FFEF4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEF8:: @ 82FFEF8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFEFC:: @ 82FFEFC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF00:: @ 82FFF00 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF04:: @ 82FFF04 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF08:: @ 82FFF08 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF0C:: @ 82FFF0C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF10:: @ 82FFF10 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF14:: @ 82FFF14 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF18:: @ 82FFF18 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF1C:: @ 82FFF1C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF20:: @ 82FFF20 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF24:: @ 82FFF24 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF28:: @ 82FFF28 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF2C:: @ 82FFF2C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF30:: @ 82FFF30 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF34:: @ 82FFF34 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF38:: @ 82FFF38 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF3C:: @ 82FFF3C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF40:: @ 82FFF40 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF44:: @ 82FFF44 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF48:: @ 82FFF48 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF4C:: @ 82FFF4C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF50:: @ 82FFF50 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF54:: @ 82FFF54 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF58:: @ 82FFF58 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF5C:: @ 82FFF5C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF60:: @ 82FFF60 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF64:: @ 82FFF64 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF68:: @ 82FFF68 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF6C:: @ 82FFF6C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF70:: @ 82FFF70 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF74:: @ 82FFF74 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF78:: @ 82FFF78 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF7C:: @ 82FFF7C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF80:: @ 82FFF80 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF84:: @ 82FFF84 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF88:: @ 82FFF88 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF8C:: @ 82FFF8C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF90:: @ 82FFF90 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF94:: @ 82FFF94 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF98:: @ 82FFF98 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFF9C:: @ 82FFF9C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFA0:: @ 82FFFA0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFA4:: @ 82FFFA4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFA8:: @ 82FFFA8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFAC:: @ 82FFFAC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFB0:: @ 82FFFB0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFB4:: @ 82FFFB4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFB8:: @ 82FFFB8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFBC:: @ 82FFFBC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFC0:: @ 82FFFC0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFC4:: @ 82FFFC4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFC8:: @ 82FFFC8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFCC:: @ 82FFFCC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFD0:: @ 82FFFD0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFD4:: @ 82FFFD4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFD8:: @ 82FFFD8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFDC:: @ 82FFFDC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFE0:: @ 82FFFE0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFE4:: @ 82FFFE4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFE8:: @ 82FFFE8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFEC:: @ 82FFFEC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFF0:: @ 82FFFF0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFF4:: @ 82FFFF4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFF8:: @ 82FFFF8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_082FFFFC:: @ 82FFFFC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300000:: @ 8300000 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300004:: @ 8300004 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300008:: @ 8300008 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830000C:: @ 830000C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300010:: @ 8300010 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300014:: @ 8300014 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300018:: @ 8300018 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830001C:: @ 830001C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300020:: @ 8300020 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300024:: @ 8300024 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300028:: @ 8300028 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830002C:: @ 830002C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300030:: @ 8300030 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300034:: @ 8300034 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300038:: @ 8300038 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830003C:: @ 830003C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300040:: @ 8300040 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300044:: @ 8300044 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300048:: @ 8300048 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830004C:: @ 830004C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300050:: @ 8300050 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300054:: @ 8300054 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300058:: @ 8300058 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830005C:: @ 830005C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300060:: @ 8300060 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300064:: @ 8300064 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300068:: @ 8300068 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830006C:: @ 830006C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300070:: @ 8300070 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300074:: @ 8300074 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300078:: @ 8300078 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830007C:: @ 830007C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300080:: @ 8300080 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300084:: @ 8300084 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300088:: @ 8300088 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830008C:: @ 830008C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300090:: @ 8300090 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300094:: @ 8300094 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300098:: @ 8300098 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830009C:: @ 830009C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000A0:: @ 83000A0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000A4:: @ 83000A4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000A8:: @ 83000A8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000AC:: @ 83000AC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000B0:: @ 83000B0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000B4:: @ 83000B4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000B8:: @ 83000B8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000BC:: @ 83000BC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000C0:: @ 83000C0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000C4:: @ 83000C4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000C8:: @ 83000C8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000CC:: @ 83000CC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000D0:: @ 83000D0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000D4:: @ 83000D4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000D8:: @ 83000D8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000DC:: @ 83000DC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000E0:: @ 83000E0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000E4:: @ 83000E4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000E8:: @ 83000E8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000EC:: @ 83000EC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000F0:: @ 83000F0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000F4:: @ 83000F4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000F8:: @ 83000F8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083000FC:: @ 83000FC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300100:: @ 8300100 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300104:: @ 8300104 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300108:: @ 8300108 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830010C:: @ 830010C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300110:: @ 8300110 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300114:: @ 8300114 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300118:: @ 8300118 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830011C:: @ 830011C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300120:: @ 8300120 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300124:: @ 8300124 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300128:: @ 8300128 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830012C:: @ 830012C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300130:: @ 8300130 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300134:: @ 8300134 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300138:: @ 8300138 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830013C:: @ 830013C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300140:: @ 8300140 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300144:: @ 8300144 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300148:: @ 8300148 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830014C:: @ 830014C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300150:: @ 8300150 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300154:: @ 8300154 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300158:: @ 8300158 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830015C:: @ 830015C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300160:: @ 8300160 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300164:: @ 8300164 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300168:: @ 8300168 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830016C:: @ 830016C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300170:: @ 8300170 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300174:: @ 8300174 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300178:: @ 8300178 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830017C:: @ 830017C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300180:: @ 8300180 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300184:: @ 8300184 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300188:: @ 8300188 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830018C:: @ 830018C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300190:: @ 8300190 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300194:: @ 8300194 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300198:: @ 8300198 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830019C:: @ 830019C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001A0:: @ 83001A0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001A4:: @ 83001A4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001A8:: @ 83001A8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001AC:: @ 83001AC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001B0:: @ 83001B0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001B4:: @ 83001B4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001B8:: @ 83001B8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001BC:: @ 83001BC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001C0:: @ 83001C0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001C4:: @ 83001C4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001C8:: @ 83001C8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001CC:: @ 83001CC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001D0: @ 83001D0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001D4:: @ 83001D4 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF71C - .4byte gUnknown_082FF734 - .4byte gUnknown_082FF744 - .4byte gUnknown_082FF750 - - .align 2 -gUnknown_083001E8:: @ 83001E8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083001EC:: @ 83001EC - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF758 - .4byte gUnknown_082FF774 - .4byte gUnknown_082FF790 - - .align 2 -gUnknown_083001FC:: @ 83001FC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300200:: @ 8300200 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF79C - .4byte gUnknown_082FF7B0 - - .align 2 -gUnknown_0830020C:: @ 830020C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF7C4 - - .align 2 -gUnknown_08300214:: @ 8300214 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF7CC - - .align 2 -gUnknown_0830021C:: @ 830021C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF7D4 - - .align 2 -gUnknown_08300224:: @ 8300224 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF7DC - .4byte gUnknown_082FF7E4 - - .align 2 -gUnknown_08300230:: @ 8300230 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF7EC - .4byte gUnknown_082FF7F4 - - .align 2 -gUnknown_0830023C:: @ 830023C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF7FC - .4byte gUnknown_082FF804 - - .align 2 -gUnknown_08300248:: @ 8300248 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF80C - .4byte gUnknown_082FF814 - - .align 2 -gUnknown_08300254:: @ 8300254 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF81C - .4byte gUnknown_082FF824 - - .align 2 -gUnknown_08300260:: @ 8300260 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300264:: @ 8300264 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF82C - - .align 2 -gUnknown_0830026C:: @ 830026C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF834 - .4byte gUnknown_082FF83C - - .align 2 -gUnknown_08300278:: @ 8300278 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF844 - - .align 2 -gUnknown_08300280:: @ 8300280 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF84C - - .align 2 -gUnknown_08300288:: @ 8300288 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF854 - .4byte gUnknown_082FF85C - - .align 2 -gUnknown_08300294:: @ 8300294 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300298:: @ 8300298 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830029C:: @ 830029C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083002A0:: @ 83002A0 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF864 - - .align 2 -gUnknown_083002A8:: @ 83002A8 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF86C - - .align 2 -gUnknown_083002B0:: @ 83002B0 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF874 - - .align 2 -gUnknown_083002B8:: @ 83002B8 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF87C - - .align 2 -gUnknown_083002C0:: @ 83002C0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083002C4:: @ 83002C4 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF884 - - .align 2 -gUnknown_083002CC:: @ 83002CC - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF88C - .4byte gUnknown_082FF894 - - .align 2 -gUnknown_083002D8:: @ 83002D8 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF89C - .4byte gUnknown_082FF8A4 - - .align 2 -gUnknown_083002E4:: @ 83002E4 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF8AC - .4byte gUnknown_082FF8B4 - - .align 2 -gUnknown_083002F0:: @ 83002F0 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF8BC - .4byte gUnknown_082FF8FC - .4byte gUnknown_082FF91C - .4byte gUnknown_082FF930 - - .align 2 -gUnknown_08300304:: @ 8300304 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300308:: @ 8300308 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF93C - - .align 2 -gUnknown_08300310:: @ 8300310 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF944 - - .align 2 -gUnknown_08300318:: @ 8300318 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FF94C - .4byte gUnknown_082FF9A8 - .4byte gUnknown_082FFA00 - .4byte gUnknown_082FFA58 - - .align 2 -gUnknown_0830032C:: @ 830032C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFA64 - - .align 2 -gUnknown_08300334:: @ 8300334 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFA6C - - .align 2 -gUnknown_0830033C:: @ 830033C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFA74 - - .align 2 -gUnknown_08300344:: @ 8300344 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300348:: @ 8300348 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFA7C - .4byte gUnknown_082FFA84 - - .align 2 -gUnknown_08300354:: @ 8300354 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300358:: @ 8300358 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830035C:: @ 830035C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFA8C - .4byte gUnknown_082FFA94 - - .align 2 -gUnknown_08300368:: @ 8300368 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830036C:: @ 830036C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300370:: @ 8300370 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFA9C - .4byte gUnknown_082FFAA4 - - .align 2 -gUnknown_0830037C:: @ 830037C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFAAC - .4byte gUnknown_082FFAB4 - - .align 2 -gUnknown_08300388:: @ 8300388 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFABC - .4byte gUnknown_082FFAC4 - - .align 2 -gUnknown_08300394:: @ 8300394 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFACC - .4byte gUnknown_082FFAD4 - - .align 2 -gUnknown_083003A0:: @ 83003A0 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFADC - - .align 2 -gUnknown_083003A8:: @ 83003A8 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFAE4 - - .align 2 -gUnknown_083003B0:: @ 83003B0 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFAEC - - .align 2 -gUnknown_083003B8:: @ 83003B8 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFAF4 - - .align 2 -gUnknown_083003C0:: @ 83003C0 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFAFC - - .align 2 -gUnknown_083003C8:: @ 83003C8 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFB04 - .4byte gUnknown_082FFB0C - - .align 2 -gUnknown_083003D4:: @ 83003D4 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFB14 - - .align 2 -gUnknown_083003DC:: @ 83003DC - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFB1C - .4byte gUnknown_082FFB24 - - .align 2 -gUnknown_083003E8:: @ 83003E8 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFB2C - - .align 2 -gUnknown_083003F0:: @ 83003F0 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFB34 - - .align 2 -gUnknown_083003F8:: @ 83003F8 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFB3C - - .align 2 -gUnknown_08300400:: @ 8300400 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFB44 - .4byte gUnknown_082FFB60 - - .align 2 -gUnknown_0830040C:: @ 830040C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300410:: @ 8300410 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300414:: @ 8300414 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300418:: @ 8300418 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830041C:: @ 830041C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300420:: @ 8300420 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300424:: @ 8300424 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFB7C - .4byte gUnknown_082FFBBC - .4byte gUnknown_082FFBE0 - .4byte gUnknown_082FFBF4 - - .align 2 -gUnknown_08300438:: @ 8300438 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFBFC - .4byte gUnknown_082FFC04 - - .align 2 -gUnknown_08300444:: @ 8300444 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFC0C - - .align 2 -gUnknown_0830044C:: @ 830044C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFC14 - - .align 2 -gUnknown_08300454:: @ 8300454 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFC1C - - .align 2 -gUnknown_0830045C:: @ 830045C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFC24 - - .align 2 -gUnknown_08300464:: @ 8300464 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFC2C - - .align 2 -gUnknown_0830046C:: @ 830046C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFC34 - - .align 2 -gUnknown_08300474:: @ 8300474 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFC3C - .4byte gUnknown_082FFC58 - - .align 2 -gUnknown_08300480:: @ 8300480 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFC74 - - .align 2 -gUnknown_08300488:: @ 8300488 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFC7C - .4byte gUnknown_082FFC84 - - .align 2 -gUnknown_08300494:: @ 8300494 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFC8C - .4byte gUnknown_082FFC94 - - .align 2 -gUnknown_083004A0:: @ 83004A0 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFC9C - .4byte gUnknown_082FFCA4 - - .align 2 -gUnknown_083004AC:: @ 83004AC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083004B0:: @ 83004B0 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFCAC - - .align 2 -gUnknown_083004B8:: @ 83004B8 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFCB4 - - .align 2 -gUnknown_083004C0:: @ 83004C0 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFCBC - - .align 2 -gUnknown_083004C8:: @ 83004C8 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFCC4 - - .align 2 -gUnknown_083004D0:: @ 83004D0 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFCCC - - .align 2 -gUnknown_083004D8:: @ 83004D8 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFCD4 - - .align 2 -gUnknown_083004E0:: @ 83004E0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083004E4:: @ 83004E4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083004E8:: @ 83004E8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083004EC:: @ 83004EC - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFCDC - - .align 2 -gUnknown_083004F4:: @ 83004F4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083004F8:: @ 83004F8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083004FC:: @ 83004FC - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFCE4 - - .align 2 -gUnknown_08300504:: @ 8300504 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFCEC - .4byte gUnknown_082FFCF4 - - .align 2 -gUnknown_08300510:: @ 8300510 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFCFC - - .align 2 -gUnknown_08300518:: @ 8300518 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830051C:: @ 830051C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300520:: @ 8300520 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300524:: @ 8300524 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFD04 - - .align 2 -gUnknown_0830052C:: @ 830052C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFD0C - - .align 2 -gUnknown_08300534:: @ 8300534 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFD14 - - .align 2 -gUnknown_0830053C:: @ 830053C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFD1C - .4byte gUnknown_082FFD24 - .4byte gUnknown_082FFD2C - .4byte gUnknown_082FFD34 - - .align 2 -gUnknown_08300550:: @ 8300550 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFD3C - - .align 2 -gUnknown_08300558:: @ 8300558 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFD44 - - .align 2 -gUnknown_08300560:: @ 8300560 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300564:: @ 8300564 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300568:: @ 8300568 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830056C:: @ 830056C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300570:: @ 8300570 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300574:: @ 8300574 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300578:: @ 8300578 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830057C:: @ 830057C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFD4C - .4byte gUnknown_082FFD54 - - .align 2 -gUnknown_08300588:: @ 8300588 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830058C:: @ 830058C - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFD5C - .4byte gUnknown_082FFD64 - - .align 2 -gUnknown_08300598:: @ 8300598 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830059C:: @ 830059C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083005A0:: @ 83005A0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083005A4:: @ 83005A4 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFD6C - - .align 2 -gUnknown_083005AC:: @ 83005AC - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFD74 - - .align 2 -gUnknown_083005B4:: @ 83005B4 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFD7C - .4byte gUnknown_082FFD84 - - .align 2 -gUnknown_083005C0:: @ 83005C0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083005C4:: @ 83005C4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083005C8:: @ 83005C8 - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFD8C - .4byte gUnknown_082FFDA0 - - .align 2 -gUnknown_083005D4:: @ 83005D4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083005D8:: @ 83005D8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083005DC:: @ 83005DC - .4byte gAnimCmd_General_Frame0 - .4byte gUnknown_082FFDC4 - - .align 2 -gUnknown_083005E4:: @ 83005E4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083005E8:: @ 83005E8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083005EC:: @ 83005EC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083005F0:: @ 83005F0 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083005F4:: @ 83005F4 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083005F8:: @ 83005F8 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_083005FC:: @ 83005FC - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300600:: @ 8300600 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300604:: @ 8300604 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300608:: @ 8300608 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830060C:: @ 830060C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300610:: @ 8300610 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300614:: @ 8300614 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300618:: @ 8300618 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830061C:: @ 830061C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300620:: @ 8300620 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300624:: @ 8300624 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300628:: @ 8300628 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830062C:: @ 830062C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300630:: @ 8300630 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300634:: @ 8300634 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300638:: @ 8300638 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830063C:: @ 830063C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300640:: @ 8300640 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300644:: @ 8300644 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300648:: @ 8300648 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_0830064C:: @ 830064C - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300650:: @ 8300650 - .4byte gAnimCmd_General_Frame0 - - .align 2 -gUnknown_08300654:: @ 8300654 - .4byte gAnimCmd_General_Frame0 - - .4byte gUnknown_082FFDCC - .4byte gUnknown_082FFDD0 - .4byte gUnknown_082FFDD4 - .4byte gUnknown_082FFDD8 - .4byte gUnknown_082FFDDC - .4byte gUnknown_082FFDE0 - .4byte gUnknown_082FFDE4 - .4byte gUnknown_082FFDE8 - .4byte gUnknown_082FFDEC - .4byte gUnknown_082FFDF0 - .4byte gUnknown_082FFDF4 - .4byte gUnknown_082FFDF8 - .4byte gUnknown_082FFDFC - .4byte gUnknown_082FFE00 - .4byte gUnknown_082FFE04 - .4byte gUnknown_082FFE08 - .4byte gUnknown_082FFE0C - .4byte gUnknown_082FFE10 - .4byte gUnknown_082FFE14 - .4byte gUnknown_082FFE18 - .4byte gUnknown_082FFE1C - .4byte gUnknown_082FFE20 - .4byte gUnknown_082FFE24 - .4byte gUnknown_082FFE28 - .4byte gUnknown_082FFE2C - .4byte gUnknown_082FFE30 - .4byte gUnknown_082FFE34 - .4byte gUnknown_082FFE38 - .4byte gUnknown_082FFE3C - .4byte gUnknown_082FFE40 - .4byte gUnknown_082FFE44 - .4byte gUnknown_082FFE48 - .4byte gUnknown_082FFE4C - .4byte gUnknown_082FFE50 - .4byte gUnknown_082FFE54 - .4byte gUnknown_082FFE58 - .4byte gUnknown_082FFE5C - .4byte gUnknown_082FFE60 - .4byte gUnknown_082FFE64 - .4byte gUnknown_082FFE68 - .4byte gUnknown_082FFE6C - .4byte gUnknown_082FFE70 - .4byte gUnknown_082FFE74 - .4byte gUnknown_082FFE78 - .4byte gUnknown_082FFE7C - .4byte gUnknown_082FFE80 - .4byte gUnknown_082FFE84 - .4byte gUnknown_082FFE88 - .4byte gUnknown_082FFE8C - .4byte gUnknown_082FFE90 - .4byte gUnknown_082FFE94 - .4byte gUnknown_082FFE98 - .4byte gUnknown_082FFE9C - .4byte gUnknown_082FFEA0 - .4byte gUnknown_082FFEA4 - .4byte gUnknown_082FFEA8 - .4byte gUnknown_082FFEAC - .4byte gUnknown_082FFEB0 - .4byte gUnknown_082FFEB4 - .4byte gUnknown_082FFEB8 - .4byte gUnknown_082FFEBC - .4byte gUnknown_082FFEC0 - .4byte gUnknown_082FFEC4 - .4byte gUnknown_082FFEC8 - .4byte gUnknown_082FFECC - .4byte gUnknown_082FFED0 - .4byte gUnknown_082FFED4 - .4byte gUnknown_082FFED8 - .4byte gUnknown_082FFEDC - .4byte gUnknown_082FFEE0 - .4byte gUnknown_082FFEE4 - .4byte gUnknown_082FFEE8 - .4byte gUnknown_082FFEEC - .4byte gUnknown_082FFEF0 - .4byte gUnknown_082FFEF4 - .4byte gUnknown_082FFEF8 - .4byte gUnknown_082FFEFC - .4byte gUnknown_082FFF00 - .4byte gUnknown_082FFF04 - .4byte gUnknown_082FFF08 - .4byte gUnknown_082FFF0C - .4byte gUnknown_082FFF10 - .4byte gUnknown_082FFF14 - .4byte gUnknown_082FFF18 - .4byte gUnknown_082FFF1C - .4byte gUnknown_082FFF20 - .4byte gUnknown_082FFF24 - .4byte gUnknown_082FFF28 - .4byte gUnknown_082FFF2C - .4byte gUnknown_082FFF30 - .4byte gUnknown_082FFF34 - .4byte gUnknown_082FFF38 - .4byte gUnknown_082FFF3C - .4byte gUnknown_082FFF40 - .4byte gUnknown_082FFF44 - .4byte gUnknown_082FFF48 - .4byte gUnknown_082FFF4C - .4byte gUnknown_082FFF50 - .4byte gUnknown_082FFF54 - .4byte gUnknown_082FFF58 - .4byte gUnknown_082FFF5C - .4byte gUnknown_082FFF60 - .4byte gUnknown_082FFF64 - .4byte gUnknown_082FFF68 - .4byte gUnknown_082FFF6C - .4byte gUnknown_082FFF70 - .4byte gUnknown_082FFF74 - .4byte gUnknown_082FFF78 - .4byte gUnknown_082FFF7C - .4byte gUnknown_082FFF80 - .4byte gUnknown_082FFF84 - .4byte gUnknown_082FFF88 - .4byte gUnknown_082FFF8C - .4byte gUnknown_082FFF90 - .4byte gUnknown_082FFF94 - .4byte gUnknown_082FFF98 - .4byte gUnknown_082FFF9C - .4byte gUnknown_082FFFA0 - .4byte gUnknown_082FFFA4 - .4byte gUnknown_082FFFA8 - .4byte gUnknown_082FFFAC - .4byte gUnknown_082FFFB0 - .4byte gUnknown_082FFFB4 - .4byte gUnknown_082FFFB8 - .4byte gUnknown_082FFFBC - .4byte gUnknown_082FFFC0 - .4byte gUnknown_082FFFC4 - .4byte gUnknown_082FFFC8 - .4byte gUnknown_082FFFCC - .4byte gUnknown_082FFFD0 - .4byte gUnknown_082FFFD4 - .4byte gUnknown_082FFFD8 - .4byte gUnknown_082FFFDC - .4byte gUnknown_082FFFE0 - .4byte gUnknown_082FFFE4 - .4byte gUnknown_082FFFE8 - .4byte gUnknown_082FFFEC - .4byte gUnknown_082FFFF0 - .4byte gUnknown_082FFFF4 - .4byte gUnknown_082FFFF8 - .4byte gUnknown_082FFFFC - .4byte gUnknown_08300000 - .4byte gUnknown_08300004 - .4byte gUnknown_08300008 - .4byte gUnknown_0830000C - .4byte gUnknown_08300010 - .4byte gUnknown_08300014 - .4byte gUnknown_08300018 - .4byte gUnknown_0830001C - .4byte gUnknown_08300020 - .4byte gUnknown_08300024 - .4byte gUnknown_08300028 - .4byte gUnknown_0830002C - .4byte gUnknown_08300030 - .4byte gUnknown_08300034 - .4byte gUnknown_08300038 - .4byte gUnknown_0830003C - .4byte gUnknown_08300040 - .4byte gUnknown_08300044 - .4byte gUnknown_08300048 - .4byte gUnknown_0830004C - .4byte gUnknown_08300050 - .4byte gUnknown_08300054 - .4byte gUnknown_08300058 - .4byte gUnknown_0830005C - .4byte gUnknown_08300060 - .4byte gUnknown_08300064 - .4byte gUnknown_08300068 - .4byte gUnknown_0830006C - .4byte gUnknown_08300070 - .4byte gUnknown_08300074 - .4byte gUnknown_08300078 - .4byte gUnknown_0830007C - .4byte gUnknown_08300080 - .4byte gUnknown_08300084 - .4byte gUnknown_08300088 - .4byte gUnknown_0830008C - .4byte gUnknown_08300090 - .4byte gUnknown_08300094 - .4byte gUnknown_08300098 - .4byte gUnknown_0830009C - .4byte gUnknown_083000A0 - .4byte gUnknown_083000A4 - .4byte gUnknown_083000A8 - .4byte gUnknown_083000AC - .4byte gUnknown_083000B0 - .4byte gUnknown_083000B4 - .4byte gUnknown_083000B8 - .4byte gUnknown_083000BC - .4byte gUnknown_083000C0 - .4byte gUnknown_083000C4 - .4byte gUnknown_083000C8 - .4byte gUnknown_083000CC - .4byte gUnknown_083000D0 - .4byte gUnknown_083000D4 - .4byte gUnknown_083000D8 - .4byte gUnknown_083000DC - .4byte gUnknown_083000E0 - .4byte gUnknown_083000E4 - .4byte gUnknown_083000E8 - .4byte gUnknown_083000EC - .4byte gUnknown_083000F0 - .4byte gUnknown_083000F4 - .4byte gUnknown_083000F8 - .4byte gUnknown_083000FC - .4byte gUnknown_08300100 - .4byte gUnknown_08300104 - .4byte gUnknown_08300108 - .4byte gUnknown_0830010C - .4byte gUnknown_08300110 - .4byte gUnknown_08300114 - .4byte gUnknown_08300118 - .4byte gUnknown_0830011C - .4byte gUnknown_08300120 - .4byte gUnknown_08300124 - .4byte gUnknown_08300128 - .4byte gUnknown_0830012C - .4byte gUnknown_08300130 - .4byte gUnknown_08300134 - .4byte gUnknown_08300138 - .4byte gUnknown_0830013C - .4byte gUnknown_08300140 - .4byte gUnknown_08300144 - .4byte gUnknown_08300148 - .4byte gUnknown_0830014C - .4byte gUnknown_08300150 - .4byte gUnknown_08300154 - .4byte gUnknown_08300158 - .4byte gUnknown_0830015C - .4byte gUnknown_08300160 - .4byte gUnknown_08300164 - .4byte gUnknown_08300168 - .4byte gUnknown_0830016C - .4byte gUnknown_08300170 - .4byte gUnknown_08300174 - .4byte gUnknown_08300178 - .4byte gUnknown_0830017C - .4byte gUnknown_08300180 - .4byte gUnknown_08300184 - .4byte gUnknown_08300188 - .4byte gUnknown_0830018C - .4byte gUnknown_08300190 - .4byte gUnknown_08300194 - .4byte gUnknown_08300198 - .4byte gUnknown_0830019C - .4byte gUnknown_083001A0 - .4byte gUnknown_083001A4 - .4byte gUnknown_083001A8 - .4byte gUnknown_083001AC - .4byte gUnknown_083001B0 - .4byte gUnknown_083001B4 - .4byte gUnknown_083001B8 - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001BC - .4byte gUnknown_083001C0 - .4byte gUnknown_083001C4 - .4byte gUnknown_083001C8 - .4byte gUnknown_083001CC - .4byte gUnknown_083001D0 - .4byte gUnknown_083001D4 - .4byte gUnknown_083001E8 - .4byte gUnknown_083001EC - .4byte gUnknown_083001FC - .4byte gUnknown_08300200 - .4byte gUnknown_0830020C - .4byte gUnknown_08300214 - .4byte gUnknown_0830021C - .4byte gUnknown_08300224 - .4byte gUnknown_08300230 - .4byte gUnknown_0830023C - .4byte gUnknown_08300248 - .4byte gUnknown_08300254 - .4byte gUnknown_08300260 - .4byte gUnknown_08300264 - .4byte gUnknown_0830026C - .4byte gUnknown_08300278 - .4byte gUnknown_08300280 - .4byte gUnknown_08300288 - .4byte gUnknown_08300294 - .4byte gUnknown_08300298 - .4byte gUnknown_0830029C - .4byte gUnknown_083002A0 - .4byte gUnknown_083002A8 - .4byte gUnknown_083002B0 - .4byte gUnknown_083002B8 - .4byte gUnknown_083002C0 - .4byte gUnknown_083002C4 - .4byte gUnknown_083002CC - .4byte gUnknown_083002D8 - .4byte gUnknown_083002E4 - .4byte gUnknown_083002F0 - .4byte gUnknown_08300304 - .4byte gUnknown_08300308 - .4byte gUnknown_08300310 - .4byte gUnknown_08300318 - .4byte gUnknown_0830032C - .4byte gUnknown_08300334 - .4byte gUnknown_0830033C - .4byte gUnknown_08300344 - .4byte gUnknown_08300348 - .4byte gUnknown_08300354 - .4byte gUnknown_08300358 - .4byte gUnknown_0830035C - .4byte gUnknown_08300368 - .4byte gUnknown_0830036C - .4byte gUnknown_08300370 - .4byte gUnknown_0830037C - .4byte gUnknown_08300388 - .4byte gUnknown_08300394 - .4byte gUnknown_083003A0 - .4byte gUnknown_083003A8 - .4byte gUnknown_083003B0 - .4byte gUnknown_083003B8 - .4byte gUnknown_083003C0 - .4byte gUnknown_083003C8 - .4byte gUnknown_083003D4 - .4byte gUnknown_083003DC - .4byte gUnknown_083003E8 - .4byte gUnknown_083003F0 - .4byte gUnknown_083003F8 - .4byte gUnknown_08300400 - .4byte gUnknown_0830040C - .4byte gUnknown_08300410 - .4byte gUnknown_08300414 - .4byte gUnknown_08300418 - .4byte gUnknown_0830041C - .4byte gUnknown_08300420 - .4byte gUnknown_08300424 - .4byte gUnknown_08300438 - .4byte gUnknown_08300444 - .4byte gUnknown_0830044C - .4byte gUnknown_08300454 - .4byte gUnknown_0830045C - .4byte gUnknown_08300464 - .4byte gUnknown_0830046C - .4byte gUnknown_08300474 - .4byte gUnknown_08300480 - .4byte gUnknown_08300488 - .4byte gUnknown_08300494 - .4byte gUnknown_083004A0 - .4byte gUnknown_083004AC - .4byte gUnknown_083004B0 - .4byte gUnknown_083004B8 - .4byte gUnknown_083004C0 - .4byte gUnknown_083004C8 - .4byte gUnknown_083004D0 - .4byte gUnknown_083004D8 - .4byte gUnknown_083004E0 - .4byte gUnknown_083004E4 - .4byte gUnknown_083004E8 - .4byte gUnknown_083004EC - .4byte gUnknown_083004F4 - .4byte gUnknown_083004F8 - .4byte gUnknown_083004FC - .4byte gUnknown_08300504 - .4byte gUnknown_08300510 - .4byte gUnknown_08300518 - .4byte gUnknown_0830051C - .4byte gUnknown_08300520 - .4byte gUnknown_08300524 - .4byte gUnknown_0830052C - .4byte gUnknown_08300534 - .4byte gUnknown_0830053C - .4byte gUnknown_08300550 - .4byte gUnknown_08300558 - .4byte gUnknown_08300560 - .4byte gUnknown_08300564 - .4byte gUnknown_08300568 - .4byte gUnknown_0830056C - .4byte gUnknown_08300570 - .4byte gUnknown_08300574 - .4byte gUnknown_08300578 - .4byte gUnknown_0830057C - .4byte gUnknown_08300588 - .4byte gUnknown_0830058C - .4byte gUnknown_08300598 - .4byte gUnknown_0830059C - .4byte gUnknown_083005A0 - .4byte gUnknown_083005A4 - .4byte gUnknown_083005AC - .4byte gUnknown_083005B4 - .4byte gUnknown_083005C0 - .4byte gUnknown_083005C4 - .4byte gUnknown_083005C8 - .4byte gUnknown_083005D4 - .4byte gUnknown_083005D8 - .4byte gUnknown_083005DC - .4byte gUnknown_083005E4 - .4byte gUnknown_083005E8 - .4byte gUnknown_083005EC - .4byte gUnknown_083005EC - .4byte gUnknown_083005F0 - .4byte gUnknown_083005F4 - .4byte gUnknown_083005F8 - .4byte gUnknown_083005FC - .4byte gUnknown_08300600 - .4byte gUnknown_08300604 - .4byte gUnknown_08300608 - .4byte gUnknown_0830060C - .4byte gUnknown_08300610 - .4byte gUnknown_08300614 - .4byte gUnknown_08300618 - .4byte gUnknown_0830061C - .4byte gUnknown_08300620 - .4byte gUnknown_08300624 - .4byte gUnknown_08300628 - .4byte gUnknown_0830062C - .4byte gUnknown_08300630 - .4byte gUnknown_08300634 - .4byte gUnknown_08300638 - .4byte gUnknown_0830063C - .4byte gUnknown_08300640 - .4byte gUnknown_08300644 - .4byte gUnknown_08300648 - .4byte gUnknown_0830064C - .4byte gUnknown_08300650 - .4byte gUnknown_08300654 - - .align 2 -gMonFrontPicCoords:: @ 8300D38 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x45, 0x0e, 0x00, 0x00 - .byte 0x56, 0x0a, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x55, 0x0c, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x45, 0x10, 0x00, 0x00 - .byte 0x54, 0x14, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x54, 0x12, 0x00, 0x00 - .byte 0x45, 0x0e, 0x00, 0x00 - .byte 0x86, 0x09, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x67, 0x0b, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x44, 0x10, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x45, 0x0f, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x67, 0x09, 0x00, 0x00 - .byte 0x67, 0x04, 0x00, 0x00 - .byte 0x55, 0x0e, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x45, 0x0f, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x78, 0x03, 0x00, 0x00 - .byte 0x55, 0x0c, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x78, 0x02, 0x00, 0x00 - .byte 0x55, 0x10, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x45, 0x10, 0x00, 0x00 - .byte 0x67, 0x08, 0x00, 0x00 - .byte 0x67, 0x06, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x45, 0x0f, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x55, 0x0f, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x54, 0x12, 0x00, 0x00 - .byte 0x75, 0x0d, 0x00, 0x00 - .byte 0x55, 0x0c, 0x00, 0x00 - .byte 0x77, 0x07, 0x00, 0x00 - .byte 0x56, 0x09, 0x00, 0x00 - .byte 0x78, 0x02, 0x00, 0x00 - .byte 0x65, 0x0e, 0x00, 0x00 - .byte 0x77, 0x07, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x74, 0x13, 0x00, 0x00 - .byte 0x76, 0x0a, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x56, 0x0b, 0x00, 0x00 - .byte 0x67, 0x06, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x65, 0x0f, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x46, 0x09, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x54, 0x12, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x43, 0x15, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x57, 0x05, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x76, 0x0a, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x55, 0x10, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x78, 0x02, 0x00, 0x00 - .byte 0x77, 0x07, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x44, 0x13, 0x00, 0x00 - .byte 0x55, 0x0e, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x55, 0x0f, 0x00, 0x00 - .byte 0x76, 0x0b, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x67, 0x04, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x67, 0x07, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x45, 0x0f, 0x00, 0x00 - .byte 0x67, 0x07, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x78, 0x02, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00 - .byte 0x67, 0x06, 0x00, 0x00 - .byte 0x88, 0x08, 0x00, 0x00 - .byte 0x85, 0x0d, 0x00, 0x00 - .byte 0x54, 0x11, 0x00, 0x00 - .byte 0x56, 0x09, 0x00, 0x00 - .byte 0x67, 0x06, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x55, 0x0d, 0x00, 0x00 - .byte 0x45, 0x0f, 0x00, 0x00 - .byte 0x67, 0x07, 0x00, 0x00 - .byte 0x54, 0x11, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x75, 0x0e, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x55, 0x0d, 0x00, 0x00 - .byte 0x75, 0x0d, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x55, 0x0e, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00 - .byte 0x55, 0x0f, 0x00, 0x00 - .byte 0x67, 0x06, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x47, 0x04, 0x00, 0x00 - .byte 0x67, 0x07, 0x00, 0x00 - .byte 0x55, 0x0d, 0x00, 0x00 - .byte 0x58, 0x03, 0x00, 0x00 - .byte 0x56, 0x0c, 0x00, 0x00 - .byte 0x67, 0x04, 0x00, 0x00 - .byte 0x54, 0x13, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x75, 0x10, 0x00, 0x00 - .byte 0x87, 0x0b, 0x00, 0x00 - .byte 0x45, 0x0c, 0x00, 0x00 - .byte 0x44, 0x14, 0x00, 0x00 - .byte 0x44, 0x12, 0x00, 0x00 - .byte 0x34, 0x14, 0x00, 0x00 - .byte 0x46, 0x09, 0x00, 0x00 - .byte 0x44, 0x14, 0x00, 0x00 - .byte 0x47, 0x07, 0x00, 0x00 - .byte 0x55, 0x10, 0x00, 0x00 - .byte 0x56, 0x0a, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x45, 0x0e, 0x00, 0x00 - .byte 0x65, 0x0e, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x67, 0x06, 0x00, 0x00 - .byte 0x67, 0x06, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x55, 0x0f, 0x00, 0x00 - .byte 0x77, 0x07, 0x00, 0x00 - .byte 0x58, 0x03, 0x00, 0x00 - .byte 0x44, 0x10, 0x00, 0x00 - .byte 0x56, 0x08, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x54, 0x10, 0x00, 0x00 - .byte 0x77, 0x07, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x67, 0x08, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x58, 0x01, 0x00, 0x00 - .byte 0x55, 0x0c, 0x00, 0x00 - .byte 0x35, 0x0f, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x56, 0x0a, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x74, 0x11, 0x00, 0x00 - .byte 0x78, 0x03, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x55, 0x0d, 0x00, 0x00 - .byte 0x57, 0x06, 0x00, 0x00 - .byte 0x56, 0x0a, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x67, 0x05, 0x00, 0x00 - .byte 0x45, 0x0d, 0x00, 0x00 - .byte 0x78, 0x01, 0x00, 0x00 - .byte 0x45, 0x0d, 0x00, 0x00 - .byte 0x57, 0x0d, 0x00, 0x00 - .byte 0x43, 0x14, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x55, 0x0e, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x56, 0x08, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x56, 0x0b, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x78, 0x04, 0x00, 0x00 - .byte 0x54, 0x10, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x55, 0x0f, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x46, 0x09, 0x00, 0x00 - .byte 0x67, 0x05, 0x00, 0x00 - .byte 0x35, 0x0f, 0x00, 0x00 - .byte 0x76, 0x0a, 0x00, 0x00 - .byte 0x45, 0x0d, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x46, 0x09, 0x00, 0x00 - .byte 0x56, 0x09, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x55, 0x0e, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x56, 0x08, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x56, 0x0c, 0x00, 0x00 - .byte 0x67, 0x06, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x55, 0x0c, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x85, 0x0f, 0x00, 0x00 - .byte 0x78, 0x03, 0x00, 0x00 - .byte 0x45, 0x0e, 0x00, 0x00 - .byte 0x75, 0x11, 0x00, 0x00 - .byte 0x86, 0x09, 0x00, 0x00 - .byte 0x74, 0x10, 0x00, 0x00 - .byte 0x86, 0x0f, 0x00, 0x00 - .byte 0x65, 0x0e, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x46, 0x10, 0x00, 0x00 - .byte 0x56, 0x08, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x74, 0x12, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x64, 0x10, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x54, 0x10, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x68, 0x08, 0x00, 0x00 - .byte 0x84, 0x18, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x65, 0x0f, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x75, 0x0f, 0x00, 0x00 - .byte 0x87, 0x0a, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x67, 0x07, 0x00, 0x00 - .byte 0x55, 0x10, 0x00, 0x00 - .byte 0x78, 0x06, 0x00, 0x00 - .byte 0x56, 0x0c, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x46, 0x0b, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x46, 0x18, 0x00, 0x00 - .byte 0x66, 0x0c, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x46, 0x0d, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x67, 0x06, 0x00, 0x00 - .byte 0x78, 0x03, 0x00, 0x00 - .byte 0x54, 0x10, 0x00, 0x00 - .byte 0x86, 0x0c, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x64, 0x12, 0x00, 0x00 - .byte 0x67, 0x04, 0x00, 0x00 - .byte 0x65, 0x0f, 0x00, 0x00 - .byte 0x87, 0x09, 0x00, 0x00 - .byte 0x65, 0x10, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x74, 0x10, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x56, 0x0b, 0x00, 0x00 - .byte 0x76, 0x0a, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x55, 0x0f, 0x00, 0x00 - .byte 0x46, 0x09, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x56, 0x0e, 0x00, 0x00 - .byte 0x66, 0x0c, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x68, 0x01, 0x00, 0x00 - .byte 0x76, 0x11, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x55, 0x0c, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x74, 0x12, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x55, 0x12, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x55, 0x0e, 0x00, 0x00 - .byte 0x78, 0x03, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x55, 0x0e, 0x00, 0x00 - .byte 0x78, 0x03, 0x00, 0x00 - .byte 0x86, 0x0b, 0x00, 0x00 - .byte 0x68, 0x00, 0x00, 0x00 - .byte 0x56, 0x0e, 0x00, 0x00 - .byte 0x55, 0x0c, 0x00, 0x00 - .byte 0x77, 0x08, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x77, 0x0b, 0x00, 0x00 - .byte 0x43, 0x14, 0x00, 0x00 - .byte 0x75, 0x0d, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x34, 0x11, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x56, 0x08, 0x00, 0x00 - .byte 0x67, 0x07, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x35, 0x0f, 0x00, 0x00 - .byte 0x47, 0x06, 0x00, 0x00 - .byte 0x78, 0x01, 0x00, 0x00 - .byte 0x56, 0x0b, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x55, 0x0f, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x78, 0x04, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x66, 0x0d, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x37, 0x06, 0x00, 0x00 - .byte 0x33, 0x14, 0x00, 0x00 - .byte 0x34, 0x10, 0x00, 0x00 - .byte 0x44, 0x10, 0x00, 0x00 - .byte 0x44, 0x10, 0x00, 0x00 - .byte 0x44, 0x11, 0x00, 0x00 - .byte 0x44, 0x11, 0x00, 0x00 - .byte 0x35, 0x0e, 0x00, 0x00 - .byte 0x44, 0x10, 0x00, 0x00 - .byte 0x34, 0x10, 0x00, 0x00 - .byte 0x34, 0x11, 0x00, 0x00 - .byte 0x44, 0x11, 0x00, 0x00 - .byte 0x34, 0x13, 0x00, 0x00 - .byte 0x44, 0x13, 0x00, 0x00 - .byte 0x43, 0x14, 0x00, 0x00 - .byte 0x44, 0x10, 0x00, 0x00 - .byte 0x34, 0x13, 0x00, 0x00 - .byte 0x43, 0x15, 0x00, 0x00 - .byte 0x34, 0x13, 0x00, 0x00 - .byte 0x45, 0x0c, 0x00, 0x00 - .byte 0x34, 0x12, 0x00, 0x00 - .byte 0x44, 0x12, 0x00, 0x00 - .byte 0x44, 0x12, 0x00, 0x00 - .byte 0x44, 0x13, 0x00, 0x00 - .byte 0x33, 0x15, 0x00, 0x00 - .byte 0x34, 0x11, 0x00, 0x00 - .byte 0x34, 0x10, 0x00, 0x00 - .byte 0x35, 0x0f, 0x00, 0x00 - .byte 0x35, 0x0d, 0x00, 0x00 - -@ 8301418 - .include "data/graphics/pokemon/still_front_pic_table.inc" - - .align 2 -gUnknown_083021D8:: @ 83021D8 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x64, 0x10, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x65, 0x0e, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x65, 0x0e, 0x00, 0x00 - .byte 0x76, 0x0a, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x55, 0x0f, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x56, 0x0b, 0x00, 0x00 - .byte 0x46, 0x0a, 0x00, 0x00 - .byte 0x86, 0x09, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x85, 0x0c, 0x00, 0x00 - .byte 0x78, 0x02, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x75, 0x0d, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x77, 0x07, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x86, 0x09, 0x00, 0x00 - .byte 0x55, 0x0c, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x56, 0x08, 0x00, 0x00 - .byte 0x86, 0x09, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x76, 0x0a, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x76, 0x0b, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x56, 0x0b, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x63, 0x14, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x54, 0x10, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x67, 0x07, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x76, 0x0b, 0x00, 0x00 - .byte 0x77, 0x07, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x74, 0x10, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x86, 0x0b, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x67, 0x05, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x67, 0x04, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x56, 0x0a, 0x00, 0x00 - .byte 0x86, 0x0b, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x75, 0x0c, 0x00, 0x00 - .byte 0x84, 0x10, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x85, 0x0e, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x43, 0x14, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x75, 0x0c, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x76, 0x0b, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x85, 0x0e, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x55, 0x0e, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x65, 0x0e, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x85, 0x0c, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x86, 0x0b, 0x00, 0x00 - .byte 0x85, 0x0e, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x76, 0x0b, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x85, 0x0e, 0x00, 0x00 - .byte 0x85, 0x0d, 0x00, 0x00 - .byte 0x77, 0x07, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x85, 0x0d, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x54, 0x11, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x67, 0x05, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x86, 0x0b, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x76, 0x0b, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x78, 0x01, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x56, 0x0a, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x67, 0x07, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x67, 0x05, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x68, 0x03, 0x00, 0x00 - .byte 0x76, 0x0b, 0x00, 0x00 - .byte 0x77, 0x07, 0x00, 0x00 - .byte 0x73, 0x15, 0x00, 0x00 - .byte 0x86, 0x0b, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x65, 0x0f, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x54, 0x10, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x54, 0x11, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x75, 0x0c, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x56, 0x0a, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x85, 0x0f, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x76, 0x0b, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x66, 0x09, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x36, 0x08, 0x00, 0x00 - .byte 0x75, 0x0c, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x65, 0x0f, 0x00, 0x00 - .byte 0x84, 0x10, 0x00, 0x00 - .byte 0x85, 0x0f, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x76, 0x0a, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x77, 0x07, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x56, 0x0b, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x63, 0x15, 0x00, 0x00 - .byte 0x75, 0x0d, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x75, 0x0d, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x67, 0x06, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x55, 0x0c, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x65, 0x0e, 0x00, 0x00 - .byte 0x85, 0x0d, 0x00, 0x00 - .byte 0x76, 0x0a, 0x00, 0x00 - .byte 0x78, 0x03, 0x00, 0x00 - .byte 0x76, 0x0a, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x56, 0x09, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x85, 0x0d, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x67, 0x05, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x67, 0x05, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x76, 0x09, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x76, 0x0b, 0x00, 0x00 - .byte 0x85, 0x0f, 0x00, 0x00 - .byte 0x76, 0x0b, 0x00, 0x00 - .byte 0x83, 0x15, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x73, 0x14, 0x00, 0x00 - .byte 0x83, 0x14, 0x00, 0x00 - .byte 0x75, 0x0f, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x86, 0x09, 0x00, 0x00 - .byte 0x76, 0x0a, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x83, 0x14, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x64, 0x11, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x85, 0x0d, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x85, 0x0e, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x86, 0x0b, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00 - .byte 0x83, 0x15, 0x00, 0x00 - .byte 0x83, 0x16, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x85, 0x0c, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x46, 0x0a, 0x00, 0x00 - .byte 0x77, 0x07, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x67, 0x07, 0x00, 0x00 - .byte 0x68, 0x02, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x75, 0x0e, 0x00, 0x00 - .byte 0x74, 0x11, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x76, 0x0b, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x84, 0x10, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x86, 0x0b, 0x00, 0x00 - .byte 0x84, 0x13, 0x00, 0x00 - .byte 0x64, 0x12, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x85, 0x0f, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x76, 0x0a, 0x00, 0x00 - .byte 0x85, 0x0c, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x56, 0x0b, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x87, 0x04, 0x00, 0x00 - .byte 0x76, 0x0b, 0x00, 0x00 - .byte 0x68, 0x03, 0x00, 0x00 - .byte 0x86, 0x09, 0x00, 0x00 - .byte 0x87, 0x06, 0x00, 0x00 - .byte 0x77, 0x07, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x85, 0x0f, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x86, 0x08, 0x00, 0x00 - .byte 0x66, 0x0b, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x85, 0x0d, 0x00, 0x00 - .byte 0x86, 0x09, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x85, 0x0d, 0x00, 0x00 - .byte 0x68, 0x02, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x78, 0x03, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x65, 0x0c, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x54, 0x11, 0x00, 0x00 - .byte 0x84, 0x11, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x45, 0x0d, 0x00, 0x00 - .byte 0x76, 0x08, 0x00, 0x00 - .byte 0x67, 0x06, 0x00, 0x00 - .byte 0x86, 0x09, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x83, 0x17, 0x00, 0x00 - .byte 0x77, 0x05, 0x00, 0x00 - .byte 0x45, 0x0d, 0x00, 0x00 - .byte 0x57, 0x06, 0x00, 0x00 - .byte 0x77, 0x04, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x85, 0x0d, 0x00, 0x00 - .byte 0x77, 0x06, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x84, 0x10, 0x00, 0x00 - .byte 0x83, 0x14, 0x00, 0x00 - .byte 0x86, 0x0a, 0x00, 0x00 - .byte 0x85, 0x0e, 0x00, 0x00 - .byte 0x85, 0x0e, 0x00, 0x00 - .byte 0x84, 0x13, 0x00, 0x00 - .byte 0x87, 0x07, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00 - .byte 0x88, 0x03, 0x00, 0x00 - .byte 0x87, 0x05, 0x00, 0x00 - .byte 0x86, 0x09, 0x00, 0x00 - .byte 0x47, 0x07, 0x00, 0x00 - .byte 0x36, 0x0a, 0x00, 0x00 - .byte 0x56, 0x09, 0x00, 0x00 - .byte 0x67, 0x06, 0x00, 0x00 - .byte 0x56, 0x08, 0x00, 0x00 - .byte 0x56, 0x0a, 0x00, 0x00 - .byte 0x66, 0x0a, 0x00, 0x00 - .byte 0x57, 0x05, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x37, 0x07, 0x00, 0x00 - .byte 0x46, 0x09, 0x00, 0x00 - .byte 0x57, 0x07, 0x00, 0x00 - .byte 0x46, 0x0a, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x66, 0x08, 0x00, 0x00 - .byte 0x46, 0x0a, 0x00, 0x00 - .byte 0x55, 0x0f, 0x00, 0x00 - .byte 0x45, 0x0c, 0x00, 0x00 - .byte 0x57, 0x04, 0x00, 0x00 - .byte 0x45, 0x0d, 0x00, 0x00 - .byte 0x65, 0x0d, 0x00, 0x00 - .byte 0x56, 0x0b, 0x00, 0x00 - .byte 0x55, 0x0d, 0x00, 0x00 - .byte 0x55, 0x0f, 0x00, 0x00 - .byte 0x46, 0x0a, 0x00, 0x00 - .byte 0x46, 0x0a, 0x00, 0x00 - .byte 0x37, 0x06, 0x00, 0x00 - .byte 0x47, 0x06, 0x00, 0x00 diff --git a/data/graphics/pokemon/still_front_pic_table.inc b/data/graphics/pokemon/still_front_pic_table.inc deleted file mode 100644 index 4487299553..0000000000 --- a/data/graphics/pokemon/still_front_pic_table.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonStillFrontPicTable:: @ 8301418 - obj_tiles gMonStillFrontPic_CircledQuestionMark, 0x800, 0 - obj_tiles gMonStillFrontPic_Bulbasaur, 0x800, 1 - obj_tiles gMonStillFrontPic_Ivysaur, 0x800, 2 - obj_tiles gMonStillFrontPic_Venusaur, 0x800, 3 - obj_tiles gMonStillFrontPic_Charmander, 0x800, 4 - obj_tiles gMonStillFrontPic_Charmeleon, 0x800, 5 - obj_tiles gMonStillFrontPic_Charizard, 0x800, 6 - obj_tiles gMonStillFrontPic_Squirtle, 0x800, 7 - obj_tiles gMonStillFrontPic_Wartortle, 0x800, 8 - obj_tiles gMonStillFrontPic_Blastoise, 0x800, 9 - obj_tiles gMonStillFrontPic_Caterpie, 0x800, 10 - obj_tiles gMonStillFrontPic_Metapod, 0x800, 11 - obj_tiles gMonStillFrontPic_Butterfree, 0x800, 12 - obj_tiles gMonStillFrontPic_Weedle, 0x800, 13 - obj_tiles gMonStillFrontPic_Kakuna, 0x800, 14 - obj_tiles gMonStillFrontPic_Beedrill, 0x800, 15 - obj_tiles gMonStillFrontPic_Pidgey, 0x800, 16 - obj_tiles gMonStillFrontPic_Pidgeotto, 0x800, 17 - obj_tiles gMonStillFrontPic_Pidgeot, 0x800, 18 - obj_tiles gMonStillFrontPic_Rattata, 0x800, 19 - obj_tiles gMonStillFrontPic_Raticate, 0x800, 20 - obj_tiles gMonStillFrontPic_Spearow, 0x800, 21 - obj_tiles gMonStillFrontPic_Fearow, 0x800, 22 - obj_tiles gMonStillFrontPic_Ekans, 0x800, 23 - obj_tiles gMonStillFrontPic_Arbok, 0x800, 24 - obj_tiles gMonStillFrontPic_Pikachu, 0x800, 25 - obj_tiles gMonStillFrontPic_Raichu, 0x800, 26 - obj_tiles gMonStillFrontPic_Sandshrew, 0x800, 27 - obj_tiles gMonStillFrontPic_Sandslash, 0x800, 28 - obj_tiles gMonStillFrontPic_NidoranF, 0x800, 29 - obj_tiles gMonStillFrontPic_Nidorina, 0x800, 30 - obj_tiles gMonStillFrontPic_Nidoqueen, 0x800, 31 - obj_tiles gMonStillFrontPic_NidoranM, 0x800, 32 - obj_tiles gMonStillFrontPic_Nidorino, 0x800, 33 - obj_tiles gMonStillFrontPic_Nidoking, 0x800, 34 - obj_tiles gMonStillFrontPic_Clefairy, 0x800, 35 - obj_tiles gMonStillFrontPic_Clefable, 0x800, 36 - obj_tiles gMonStillFrontPic_Vulpix, 0x800, 37 - obj_tiles gMonStillFrontPic_Ninetales, 0x800, 38 - obj_tiles gMonStillFrontPic_Jigglypuff, 0x800, 39 - obj_tiles gMonStillFrontPic_Wigglytuff, 0x800, 40 - obj_tiles gMonStillFrontPic_Zubat, 0x800, 41 - obj_tiles gMonStillFrontPic_Golbat, 0x800, 42 - obj_tiles gMonStillFrontPic_Oddish, 0x800, 43 - obj_tiles gMonStillFrontPic_Gloom, 0x800, 44 - obj_tiles gMonStillFrontPic_Vileplume, 0x800, 45 - obj_tiles gMonStillFrontPic_Paras, 0x800, 46 - obj_tiles gMonStillFrontPic_Parasect, 0x800, 47 - obj_tiles gMonStillFrontPic_Venonat, 0x800, 48 - obj_tiles gMonStillFrontPic_Venomoth, 0x800, 49 - obj_tiles gMonStillFrontPic_Diglett, 0x800, 50 - obj_tiles gMonStillFrontPic_Dugtrio, 0x800, 51 - obj_tiles gMonStillFrontPic_Meowth, 0x800, 52 - obj_tiles gMonStillFrontPic_Persian, 0x800, 53 - obj_tiles gMonStillFrontPic_Psyduck, 0x800, 54 - obj_tiles gMonStillFrontPic_Golduck, 0x800, 55 - obj_tiles gMonStillFrontPic_Mankey, 0x800, 56 - obj_tiles gMonStillFrontPic_Primeape, 0x800, 57 - obj_tiles gMonStillFrontPic_Growlithe, 0x800, 58 - obj_tiles gMonStillFrontPic_Arcanine, 0x800, 59 - obj_tiles gMonStillFrontPic_Poliwag, 0x800, 60 - obj_tiles gMonStillFrontPic_Poliwhirl, 0x800, 61 - obj_tiles gMonStillFrontPic_Poliwrath, 0x800, 62 - obj_tiles gMonStillFrontPic_Abra, 0x800, 63 - obj_tiles gMonStillFrontPic_Kadabra, 0x800, 64 - obj_tiles gMonStillFrontPic_Alakazam, 0x800, 65 - obj_tiles gMonStillFrontPic_Machop, 0x800, 66 - obj_tiles gMonStillFrontPic_Machoke, 0x800, 67 - obj_tiles gMonStillFrontPic_Machamp, 0x800, 68 - obj_tiles gMonStillFrontPic_Bellsprout, 0x800, 69 - obj_tiles gMonStillFrontPic_Weepinbell, 0x800, 70 - obj_tiles gMonStillFrontPic_Victreebel, 0x800, 71 - obj_tiles gMonStillFrontPic_Tentacool, 0x800, 72 - obj_tiles gMonStillFrontPic_Tentacruel, 0x800, 73 - obj_tiles gMonStillFrontPic_Geodude, 0x800, 74 - obj_tiles gMonStillFrontPic_Graveler, 0x800, 75 - obj_tiles gMonStillFrontPic_Golem, 0x800, 76 - obj_tiles gMonStillFrontPic_Ponyta, 0x800, 77 - obj_tiles gMonStillFrontPic_Rapidash, 0x800, 78 - obj_tiles gMonStillFrontPic_Slowpoke, 0x800, 79 - obj_tiles gMonStillFrontPic_Slowbro, 0x800, 80 - obj_tiles gMonStillFrontPic_Magnemite, 0x800, 81 - obj_tiles gMonStillFrontPic_Magneton, 0x800, 82 - obj_tiles gMonStillFrontPic_Farfetchd, 0x800, 83 - obj_tiles gMonStillFrontPic_Doduo, 0x800, 84 - obj_tiles gMonStillFrontPic_Dodrio, 0x800, 85 - obj_tiles gMonStillFrontPic_Seel, 0x800, 86 - obj_tiles gMonStillFrontPic_Dewgong, 0x800, 87 - obj_tiles gMonStillFrontPic_Grimer, 0x800, 88 - obj_tiles gMonStillFrontPic_Muk, 0x800, 89 - obj_tiles gMonStillFrontPic_Shellder, 0x800, 90 - obj_tiles gMonStillFrontPic_Cloyster, 0x800, 91 - obj_tiles gMonStillFrontPic_Gastly, 0x800, 92 - obj_tiles gMonStillFrontPic_Haunter, 0x800, 93 - obj_tiles gMonStillFrontPic_Gengar, 0x800, 94 - obj_tiles gMonStillFrontPic_Onix, 0x800, 95 - obj_tiles gMonStillFrontPic_Drowzee, 0x800, 96 - obj_tiles gMonStillFrontPic_Hypno, 0x800, 97 - obj_tiles gMonStillFrontPic_Krabby, 0x800, 98 - obj_tiles gMonStillFrontPic_Kingler, 0x800, 99 - obj_tiles gMonStillFrontPic_Voltorb, 0x800, 100 - obj_tiles gMonStillFrontPic_Electrode, 0x800, 101 - obj_tiles gMonStillFrontPic_Exeggcute, 0x800, 102 - obj_tiles gMonStillFrontPic_Exeggutor, 0x800, 103 - obj_tiles gMonStillFrontPic_Cubone, 0x800, 104 - obj_tiles gMonStillFrontPic_Marowak, 0x800, 105 - obj_tiles gMonStillFrontPic_Hitmonlee, 0x800, 106 - obj_tiles gMonStillFrontPic_Hitmonchan, 0x800, 107 - obj_tiles gMonStillFrontPic_Lickitung, 0x800, 108 - obj_tiles gMonStillFrontPic_Koffing, 0x800, 109 - obj_tiles gMonStillFrontPic_Weezing, 0x800, 110 - obj_tiles gMonStillFrontPic_Rhyhorn, 0x800, 111 - obj_tiles gMonStillFrontPic_Rhydon, 0x800, 112 - obj_tiles gMonStillFrontPic_Chansey, 0x800, 113 - obj_tiles gMonStillFrontPic_Tangela, 0x800, 114 - obj_tiles gMonStillFrontPic_Kangaskhan, 0x800, 115 - obj_tiles gMonStillFrontPic_Horsea, 0x800, 116 - obj_tiles gMonStillFrontPic_Seadra, 0x800, 117 - obj_tiles gMonStillFrontPic_Goldeen, 0x800, 118 - obj_tiles gMonStillFrontPic_Seaking, 0x800, 119 - obj_tiles gMonStillFrontPic_Staryu, 0x800, 120 - obj_tiles gMonStillFrontPic_Starmie, 0x800, 121 - obj_tiles gMonStillFrontPic_Mrmime, 0x800, 122 - obj_tiles gMonStillFrontPic_Scyther, 0x800, 123 - obj_tiles gMonStillFrontPic_Jynx, 0x800, 124 - obj_tiles gMonStillFrontPic_Electabuzz, 0x800, 125 - obj_tiles gMonStillFrontPic_Magmar, 0x800, 126 - obj_tiles gMonStillFrontPic_Pinsir, 0x800, 127 - obj_tiles gMonStillFrontPic_Tauros, 0x800, 128 - obj_tiles gMonStillFrontPic_Magikarp, 0x800, 129 - obj_tiles gMonStillFrontPic_Gyarados, 0x800, 130 - obj_tiles gMonStillFrontPic_Lapras, 0x800, 131 - obj_tiles gMonStillFrontPic_Ditto, 0x800, 132 - obj_tiles gMonStillFrontPic_Eevee, 0x800, 133 - obj_tiles gMonStillFrontPic_Vaporeon, 0x800, 134 - obj_tiles gMonStillFrontPic_Jolteon, 0x800, 135 - obj_tiles gMonStillFrontPic_Flareon, 0x800, 136 - obj_tiles gMonStillFrontPic_Porygon, 0x800, 137 - obj_tiles gMonStillFrontPic_Omanyte, 0x800, 138 - obj_tiles gMonStillFrontPic_Omastar, 0x800, 139 - obj_tiles gMonStillFrontPic_Kabuto, 0x800, 140 - obj_tiles gMonStillFrontPic_Kabutops, 0x800, 141 - obj_tiles gMonStillFrontPic_Aerodactyl, 0x800, 142 - obj_tiles gMonStillFrontPic_Snorlax, 0x800, 143 - obj_tiles gMonStillFrontPic_Articuno, 0x800, 144 - obj_tiles gMonStillFrontPic_Zapdos, 0x800, 145 - obj_tiles gMonStillFrontPic_Moltres, 0x800, 146 - obj_tiles gMonStillFrontPic_Dratini, 0x800, 147 - obj_tiles gMonStillFrontPic_Dragonair, 0x800, 148 - obj_tiles gMonStillFrontPic_Dragonite, 0x800, 149 - obj_tiles gMonStillFrontPic_Mewtwo, 0x800, 150 - obj_tiles gMonStillFrontPic_Mew, 0x800, 151 - obj_tiles gMonStillFrontPic_Chikorita, 0x800, 152 - obj_tiles gMonStillFrontPic_Bayleef, 0x800, 153 - obj_tiles gMonStillFrontPic_Meganium, 0x800, 154 - obj_tiles gMonStillFrontPic_Cyndaquil, 0x800, 155 - obj_tiles gMonStillFrontPic_Quilava, 0x800, 156 - obj_tiles gMonStillFrontPic_Typhlosion, 0x800, 157 - obj_tiles gMonStillFrontPic_Totodile, 0x800, 158 - obj_tiles gMonStillFrontPic_Croconaw, 0x800, 159 - obj_tiles gMonStillFrontPic_Feraligatr, 0x800, 160 - obj_tiles gMonStillFrontPic_Sentret, 0x800, 161 - obj_tiles gMonStillFrontPic_Furret, 0x800, 162 - obj_tiles gMonStillFrontPic_Hoothoot, 0x800, 163 - obj_tiles gMonStillFrontPic_Noctowl, 0x800, 164 - obj_tiles gMonStillFrontPic_Ledyba, 0x800, 165 - obj_tiles gMonStillFrontPic_Ledian, 0x800, 166 - obj_tiles gMonStillFrontPic_Spinarak, 0x800, 167 - obj_tiles gMonStillFrontPic_Ariados, 0x800, 168 - obj_tiles gMonStillFrontPic_Crobat, 0x800, 169 - obj_tiles gMonStillFrontPic_Chinchou, 0x800, 170 - obj_tiles gMonStillFrontPic_Lanturn, 0x800, 171 - obj_tiles gMonStillFrontPic_Pichu, 0x800, 172 - obj_tiles gMonStillFrontPic_Cleffa, 0x800, 173 - obj_tiles gMonStillFrontPic_Igglybuff, 0x800, 174 - obj_tiles gMonStillFrontPic_Togepi, 0x800, 175 - obj_tiles gMonStillFrontPic_Togetic, 0x800, 176 - obj_tiles gMonStillFrontPic_Natu, 0x800, 177 - obj_tiles gMonStillFrontPic_Xatu, 0x800, 178 - obj_tiles gMonStillFrontPic_Mareep, 0x800, 179 - obj_tiles gMonStillFrontPic_Flaaffy, 0x800, 180 - obj_tiles gMonStillFrontPic_Ampharos, 0x800, 181 - obj_tiles gMonStillFrontPic_Bellossom, 0x800, 182 - obj_tiles gMonStillFrontPic_Marill, 0x800, 183 - obj_tiles gMonStillFrontPic_Azumarill, 0x800, 184 - obj_tiles gMonStillFrontPic_Sudowoodo, 0x800, 185 - obj_tiles gMonStillFrontPic_Politoed, 0x800, 186 - obj_tiles gMonStillFrontPic_Hoppip, 0x800, 187 - obj_tiles gMonStillFrontPic_Skiploom, 0x800, 188 - obj_tiles gMonStillFrontPic_Jumpluff, 0x800, 189 - obj_tiles gMonStillFrontPic_Aipom, 0x800, 190 - obj_tiles gMonStillFrontPic_Sunkern, 0x800, 191 - obj_tiles gMonStillFrontPic_Sunflora, 0x800, 192 - obj_tiles gMonStillFrontPic_Yanma, 0x800, 193 - obj_tiles gMonStillFrontPic_Wooper, 0x800, 194 - obj_tiles gMonStillFrontPic_Quagsire, 0x800, 195 - obj_tiles gMonStillFrontPic_Espeon, 0x800, 196 - obj_tiles gMonStillFrontPic_Umbreon, 0x800, 197 - obj_tiles gMonStillFrontPic_Murkrow, 0x800, 198 - obj_tiles gMonStillFrontPic_Slowking, 0x800, 199 - obj_tiles gMonStillFrontPic_Misdreavus, 0x800, 200 - obj_tiles gMonStillFrontPic_UnownA, 0x800, 201 - obj_tiles gMonStillFrontPic_Wobbuffet, 0x800, 202 - obj_tiles gMonStillFrontPic_Girafarig, 0x800, 203 - obj_tiles gMonStillFrontPic_Pineco, 0x800, 204 - obj_tiles gMonStillFrontPic_Forretress, 0x800, 205 - obj_tiles gMonStillFrontPic_Dunsparce, 0x800, 206 - obj_tiles gMonStillFrontPic_Gligar, 0x800, 207 - obj_tiles gMonStillFrontPic_Steelix, 0x800, 208 - obj_tiles gMonStillFrontPic_Snubbull, 0x800, 209 - obj_tiles gMonStillFrontPic_Granbull, 0x800, 210 - obj_tiles gMonStillFrontPic_Qwilfish, 0x800, 211 - obj_tiles gMonStillFrontPic_Scizor, 0x800, 212 - obj_tiles gMonStillFrontPic_Shuckle, 0x800, 213 - obj_tiles gMonStillFrontPic_Heracross, 0x800, 214 - obj_tiles gMonStillFrontPic_Sneasel, 0x800, 215 - obj_tiles gMonStillFrontPic_Teddiursa, 0x800, 216 - obj_tiles gMonStillFrontPic_Ursaring, 0x800, 217 - obj_tiles gMonStillFrontPic_Slugma, 0x800, 218 - obj_tiles gMonStillFrontPic_Magcargo, 0x800, 219 - obj_tiles gMonStillFrontPic_Swinub, 0x800, 220 - obj_tiles gMonStillFrontPic_Piloswine, 0x800, 221 - obj_tiles gMonStillFrontPic_Corsola, 0x800, 222 - obj_tiles gMonStillFrontPic_Remoraid, 0x800, 223 - obj_tiles gMonStillFrontPic_Octillery, 0x800, 224 - obj_tiles gMonStillFrontPic_Delibird, 0x800, 225 - obj_tiles gMonStillFrontPic_Mantine, 0x800, 226 - obj_tiles gMonStillFrontPic_Skarmory, 0x800, 227 - obj_tiles gMonStillFrontPic_Houndour, 0x800, 228 - obj_tiles gMonStillFrontPic_Houndoom, 0x800, 229 - obj_tiles gMonStillFrontPic_Kingdra, 0x800, 230 - obj_tiles gMonStillFrontPic_Phanpy, 0x800, 231 - obj_tiles gMonStillFrontPic_Donphan, 0x800, 232 - obj_tiles gMonStillFrontPic_Porygon2, 0x800, 233 - obj_tiles gMonStillFrontPic_Stantler, 0x800, 234 - obj_tiles gMonStillFrontPic_Smeargle, 0x800, 235 - obj_tiles gMonStillFrontPic_Tyrogue, 0x800, 236 - obj_tiles gMonStillFrontPic_Hitmontop, 0x800, 237 - obj_tiles gMonStillFrontPic_Smoochum, 0x800, 238 - obj_tiles gMonStillFrontPic_Elekid, 0x800, 239 - obj_tiles gMonStillFrontPic_Magby, 0x800, 240 - obj_tiles gMonStillFrontPic_Miltank, 0x800, 241 - obj_tiles gMonStillFrontPic_Blissey, 0x800, 242 - obj_tiles gMonStillFrontPic_Raikou, 0x800, 243 - obj_tiles gMonStillFrontPic_Entei, 0x800, 244 - obj_tiles gMonStillFrontPic_Suicune, 0x800, 245 - obj_tiles gMonStillFrontPic_Larvitar, 0x800, 246 - obj_tiles gMonStillFrontPic_Pupitar, 0x800, 247 - obj_tiles gMonStillFrontPic_Tyranitar, 0x800, 248 - obj_tiles gMonStillFrontPic_Lugia, 0x800, 249 - obj_tiles gMonStillFrontPic_HoOh, 0x800, 250 - obj_tiles gMonStillFrontPic_Celebi, 0x800, 251 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 252 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 253 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 254 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 255 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 256 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 257 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 258 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 259 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 260 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 261 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 262 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 263 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 264 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 265 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 266 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 267 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 268 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 269 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 270 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 271 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 272 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 273 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 274 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 275 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 276 - obj_tiles gMonStillFrontPic_Treecko, 0x800, 277 - obj_tiles gMonStillFrontPic_Grovyle, 0x800, 278 - obj_tiles gMonStillFrontPic_Sceptile, 0x800, 279 - obj_tiles gMonStillFrontPic_Torchic, 0x800, 280 - obj_tiles gMonStillFrontPic_Combusken, 0x800, 281 - obj_tiles gMonStillFrontPic_Blaziken, 0x800, 282 - obj_tiles gMonStillFrontPic_Mudkip, 0x800, 283 - obj_tiles gMonStillFrontPic_Marshtomp, 0x800, 284 - obj_tiles gMonStillFrontPic_Swampert, 0x800, 285 - obj_tiles gMonStillFrontPic_Poochyena, 0x800, 286 - obj_tiles gMonStillFrontPic_Mightyena, 0x800, 287 - obj_tiles gMonStillFrontPic_Zigzagoon, 0x800, 288 - obj_tiles gMonStillFrontPic_Linoone, 0x800, 289 - obj_tiles gMonStillFrontPic_Wurmple, 0x800, 290 - obj_tiles gMonStillFrontPic_Silcoon, 0x800, 291 - obj_tiles gMonStillFrontPic_Beautifly, 0x800, 292 - obj_tiles gMonStillFrontPic_Cascoon, 0x800, 293 - obj_tiles gMonStillFrontPic_Dustox, 0x800, 294 - obj_tiles gMonStillFrontPic_Lotad, 0x800, 295 - obj_tiles gMonStillFrontPic_Lombre, 0x800, 296 - obj_tiles gMonStillFrontPic_Ludicolo, 0x800, 297 - obj_tiles gMonStillFrontPic_Seedot, 0x800, 298 - obj_tiles gMonStillFrontPic_Nuzleaf, 0x800, 299 - obj_tiles gMonStillFrontPic_Shiftry, 0x800, 300 - obj_tiles gMonStillFrontPic_Nincada, 0x800, 301 - obj_tiles gMonStillFrontPic_Ninjask, 0x800, 302 - obj_tiles gMonStillFrontPic_Shedinja, 0x800, 303 - obj_tiles gMonStillFrontPic_Taillow, 0x800, 304 - obj_tiles gMonStillFrontPic_Swellow, 0x800, 305 - obj_tiles gMonStillFrontPic_Shroomish, 0x800, 306 - obj_tiles gMonStillFrontPic_Breloom, 0x800, 307 - obj_tiles gMonStillFrontPic_Spinda, 0x800, 308 - obj_tiles gMonStillFrontPic_Wingull, 0x800, 309 - obj_tiles gMonStillFrontPic_Pelipper, 0x800, 310 - obj_tiles gMonStillFrontPic_Surskit, 0x800, 311 - obj_tiles gMonStillFrontPic_Masquerain, 0x800, 312 - obj_tiles gMonStillFrontPic_Wailmer, 0x800, 313 - obj_tiles gMonStillFrontPic_Wailord, 0x800, 314 - obj_tiles gMonStillFrontPic_Skitty, 0x800, 315 - obj_tiles gMonStillFrontPic_Delcatty, 0x800, 316 - obj_tiles gMonStillFrontPic_Kecleon, 0x800, 317 - obj_tiles gMonStillFrontPic_Baltoy, 0x800, 318 - obj_tiles gMonStillFrontPic_Claydol, 0x800, 319 - obj_tiles gMonStillFrontPic_Nosepass, 0x800, 320 - obj_tiles gMonStillFrontPic_Torkoal, 0x800, 321 - obj_tiles gMonStillFrontPic_Sableye, 0x800, 322 - obj_tiles gMonStillFrontPic_Barboach, 0x800, 323 - obj_tiles gMonStillFrontPic_Whiscash, 0x800, 324 - obj_tiles gMonStillFrontPic_Luvdisc, 0x800, 325 - obj_tiles gMonStillFrontPic_Corphish, 0x800, 326 - obj_tiles gMonStillFrontPic_Crawdaunt, 0x800, 327 - obj_tiles gMonStillFrontPic_Feebas, 0x800, 328 - obj_tiles gMonStillFrontPic_Milotic, 0x800, 329 - obj_tiles gMonStillFrontPic_Carvanha, 0x800, 330 - obj_tiles gMonStillFrontPic_Sharpedo, 0x800, 331 - obj_tiles gMonStillFrontPic_Trapinch, 0x800, 332 - obj_tiles gMonStillFrontPic_Vibrava, 0x800, 333 - obj_tiles gMonStillFrontPic_Flygon, 0x800, 334 - obj_tiles gMonStillFrontPic_Makuhita, 0x800, 335 - obj_tiles gMonStillFrontPic_Hariyama, 0x800, 336 - obj_tiles gMonStillFrontPic_Electrike, 0x800, 337 - obj_tiles gMonStillFrontPic_Manectric, 0x800, 338 - obj_tiles gMonStillFrontPic_Numel, 0x800, 339 - obj_tiles gMonStillFrontPic_Camerupt, 0x800, 340 - obj_tiles gMonStillFrontPic_Spheal, 0x800, 341 - obj_tiles gMonStillFrontPic_Sealeo, 0x800, 342 - obj_tiles gMonStillFrontPic_Walrein, 0x800, 343 - obj_tiles gMonStillFrontPic_Cacnea, 0x800, 344 - obj_tiles gMonStillFrontPic_Cacturne, 0x800, 345 - obj_tiles gMonStillFrontPic_Snorunt, 0x800, 346 - obj_tiles gMonStillFrontPic_Glalie, 0x800, 347 - obj_tiles gMonStillFrontPic_Lunatone, 0x800, 348 - obj_tiles gMonStillFrontPic_Solrock, 0x800, 349 - obj_tiles gMonStillFrontPic_Azurill, 0x800, 350 - obj_tiles gMonStillFrontPic_Spoink, 0x800, 351 - obj_tiles gMonStillFrontPic_Grumpig, 0x800, 352 - obj_tiles gMonStillFrontPic_Plusle, 0x800, 353 - obj_tiles gMonStillFrontPic_Minun, 0x800, 354 - obj_tiles gMonStillFrontPic_Mawile, 0x800, 355 - obj_tiles gMonStillFrontPic_Meditite, 0x800, 356 - obj_tiles gMonStillFrontPic_Medicham, 0x800, 357 - obj_tiles gMonStillFrontPic_Swablu, 0x800, 358 - obj_tiles gMonStillFrontPic_Altaria, 0x800, 359 - obj_tiles gMonStillFrontPic_Wynaut, 0x800, 360 - obj_tiles gMonStillFrontPic_Duskull, 0x800, 361 - obj_tiles gMonStillFrontPic_Dusclops, 0x800, 362 - obj_tiles gMonStillFrontPic_Roselia, 0x800, 363 - obj_tiles gMonStillFrontPic_Slakoth, 0x800, 364 - obj_tiles gMonStillFrontPic_Vigoroth, 0x800, 365 - obj_tiles gMonStillFrontPic_Slaking, 0x800, 366 - obj_tiles gMonStillFrontPic_Gulpin, 0x800, 367 - obj_tiles gMonStillFrontPic_Swalot, 0x800, 368 - obj_tiles gMonStillFrontPic_Tropius, 0x800, 369 - obj_tiles gMonStillFrontPic_Whismur, 0x800, 370 - obj_tiles gMonStillFrontPic_Loudred, 0x800, 371 - obj_tiles gMonStillFrontPic_Exploud, 0x800, 372 - obj_tiles gMonStillFrontPic_Clamperl, 0x800, 373 - obj_tiles gMonStillFrontPic_Huntail, 0x800, 374 - obj_tiles gMonStillFrontPic_Gorebyss, 0x800, 375 - obj_tiles gMonStillFrontPic_Absol, 0x800, 376 - obj_tiles gMonStillFrontPic_Shuppet, 0x800, 377 - obj_tiles gMonStillFrontPic_Banette, 0x800, 378 - obj_tiles gMonStillFrontPic_Seviper, 0x800, 379 - obj_tiles gMonStillFrontPic_Zangoose, 0x800, 380 - obj_tiles gMonStillFrontPic_Relicanth, 0x800, 381 - obj_tiles gMonStillFrontPic_Aron, 0x800, 382 - obj_tiles gMonStillFrontPic_Lairon, 0x800, 383 - obj_tiles gMonStillFrontPic_Aggron, 0x800, 384 - obj_tiles gMonStillFrontPic_Castform, 0x800, 385 - obj_tiles gMonStillFrontPic_Volbeat, 0x800, 386 - obj_tiles gMonStillFrontPic_Illumise, 0x800, 387 - obj_tiles gMonStillFrontPic_Lileep, 0x800, 388 - obj_tiles gMonStillFrontPic_Cradily, 0x800, 389 - obj_tiles gMonStillFrontPic_Anorith, 0x800, 390 - obj_tiles gMonStillFrontPic_Armaldo, 0x800, 391 - obj_tiles gMonStillFrontPic_Ralts, 0x800, 392 - obj_tiles gMonStillFrontPic_Kirlia, 0x800, 393 - obj_tiles gMonStillFrontPic_Gardevoir, 0x800, 394 - obj_tiles gMonStillFrontPic_Bagon, 0x800, 395 - obj_tiles gMonStillFrontPic_Shelgon, 0x800, 396 - obj_tiles gMonStillFrontPic_Salamence, 0x800, 397 - obj_tiles gMonStillFrontPic_Beldum, 0x800, 398 - obj_tiles gMonStillFrontPic_Metang, 0x800, 399 - obj_tiles gMonStillFrontPic_Metagross, 0x800, 400 - obj_tiles gMonStillFrontPic_Regirock, 0x800, 401 - obj_tiles gMonStillFrontPic_Regice, 0x800, 402 - obj_tiles gMonStillFrontPic_Registeel, 0x800, 403 - obj_tiles gMonStillFrontPic_Kyogre, 0x800, 404 - obj_tiles gMonStillFrontPic_Groudon, 0x800, 405 - obj_tiles gMonStillFrontPic_Rayquaza, 0x800, 406 - obj_tiles gMonStillFrontPic_Latias, 0x800, 407 - obj_tiles gMonStillFrontPic_Latios, 0x800, 408 - obj_tiles gMonStillFrontPic_Jirachi, 0x800, 409 - obj_tiles gMonStillFrontPic_Deoxys, 0x800, 410 - obj_tiles gMonStillFrontPic_Chimecho, 0x800, 411 - obj_tiles gMonStillFrontPic_Egg, 0x800, 412 - obj_tiles gMonStillFrontPic_UnownB, 0x800, 413 - obj_tiles gMonStillFrontPic_UnownC, 0x800, 414 - obj_tiles gMonStillFrontPic_UnownD, 0x800, 415 - obj_tiles gMonStillFrontPic_UnownE, 0x800, 416 - obj_tiles gMonStillFrontPic_UnownF, 0x800, 417 - obj_tiles gMonStillFrontPic_UnownG, 0x800, 418 - obj_tiles gMonStillFrontPic_UnownH, 0x800, 419 - obj_tiles gMonStillFrontPic_UnownI, 0x800, 420 - obj_tiles gMonStillFrontPic_UnownJ, 0x800, 421 - obj_tiles gMonStillFrontPic_UnownK, 0x800, 422 - obj_tiles gMonStillFrontPic_UnownL, 0x800, 423 - obj_tiles gMonStillFrontPic_UnownM, 0x800, 424 - obj_tiles gMonStillFrontPic_UnownN, 0x800, 425 - obj_tiles gMonStillFrontPic_UnownO, 0x800, 426 - obj_tiles gMonStillFrontPic_UnownP, 0x800, 427 - obj_tiles gMonStillFrontPic_UnownQ, 0x800, 428 - obj_tiles gMonStillFrontPic_UnownR, 0x800, 429 - obj_tiles gMonStillFrontPic_UnownS, 0x800, 430 - obj_tiles gMonStillFrontPic_UnownT, 0x800, 431 - obj_tiles gMonStillFrontPic_UnownU, 0x800, 432 - obj_tiles gMonStillFrontPic_UnownV, 0x800, 433 - obj_tiles gMonStillFrontPic_UnownW, 0x800, 434 - obj_tiles gMonStillFrontPic_UnownX, 0x800, 435 - obj_tiles gMonStillFrontPic_UnownY, 0x800, 436 - obj_tiles gMonStillFrontPic_UnownZ, 0x800, 437 - obj_tiles gMonStillFrontPic_UnownExclamationMark, 0x800, 438 - obj_tiles gMonStillFrontPic_UnownQuestionMark, 0x800, 439 diff --git a/include/data2.h b/include/data2.h index 1763651463..268dc9ac84 100644 --- a/include/data2.h +++ b/include/data2.h @@ -11,8 +11,8 @@ struct MonCoords u8 y_offset; }; -extern struct MonCoords gTrainerBackPicCoords[]; -extern struct MonCoords gTrainerFrontPicCoords[]; +extern const struct MonCoords gTrainerBackPicCoords[]; +extern const struct MonCoords gTrainerFrontPicCoords[]; extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; extern const u8 gMoveNames[][MOVE_NAME_LENGTH + 1]; diff --git a/include/graphics.h b/include/graphics.h index 24a7b839ad..4cbee1c345 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -37,138 +37,161 @@ extern const u8 gMonFrontPic_Bulbasaur[]; extern const u8 gMonPalette_Bulbasaur[]; extern const u8 gMonBackPic_Bulbasaur[]; extern const u8 gMonShinyPalette_Bulbasaur[]; +extern const u8 gMonStillFrontPic_Bulbasaur[]; extern const u8 gMonIcon_Bulbasaur[]; extern const u8 gMonFootprint_Bulbasaur[]; extern const u8 gMonFrontPic_Ivysaur[]; extern const u8 gMonPalette_Ivysaur[]; extern const u8 gMonBackPic_Ivysaur[]; extern const u8 gMonShinyPalette_Ivysaur[]; +extern const u8 gMonStillFrontPic_Ivysaur[]; extern const u8 gMonIcon_Ivysaur[]; extern const u8 gMonFootprint_Ivysaur[]; extern const u8 gMonFrontPic_Venusaur[]; extern const u8 gMonPalette_Venusaur[]; extern const u8 gMonBackPic_Venusaur[]; extern const u8 gMonShinyPalette_Venusaur[]; +extern const u8 gMonStillFrontPic_Venusaur[]; extern const u8 gMonIcon_Venusaur[]; extern const u8 gMonFootprint_Venusaur[]; extern const u8 gMonFrontPic_Charmander[]; extern const u8 gMonPalette_Charmander[]; extern const u8 gMonBackPic_Charmander[]; extern const u8 gMonShinyPalette_Charmander[]; +extern const u8 gMonStillFrontPic_Charmander[]; extern const u8 gMonIcon_Charmander[]; extern const u8 gMonFootprint_Charmander[]; extern const u8 gMonFrontPic_Charmeleon[]; extern const u8 gMonPalette_Charmeleon[]; extern const u8 gMonBackPic_Charmeleon[]; extern const u8 gMonShinyPalette_Charmeleon[]; +extern const u8 gMonStillFrontPic_Charmeleon[]; extern const u8 gMonIcon_Charmeleon[]; extern const u8 gMonFootprint_Charmeleon[]; extern const u8 gMonFrontPic_Charizard[]; extern const u8 gMonPalette_Charizard[]; extern const u8 gMonBackPic_Charizard[]; extern const u8 gMonShinyPalette_Charizard[]; +extern const u8 gMonStillFrontPic_Charizard[]; extern const u8 gMonIcon_Charizard[]; extern const u8 gMonFootprint_Charizard[]; extern const u8 gMonFrontPic_Squirtle[]; extern const u8 gMonPalette_Squirtle[]; extern const u8 gMonBackPic_Squirtle[]; extern const u8 gMonShinyPalette_Squirtle[]; +extern const u8 gMonStillFrontPic_Squirtle[]; extern const u8 gMonIcon_Squirtle[]; extern const u8 gMonFootprint_Squirtle[]; extern const u8 gMonFrontPic_Wartortle[]; extern const u8 gMonPalette_Wartortle[]; extern const u8 gMonBackPic_Wartortle[]; extern const u8 gMonShinyPalette_Wartortle[]; +extern const u8 gMonStillFrontPic_Wartortle[]; extern const u8 gMonIcon_Wartortle[]; extern const u8 gMonFootprint_Wartortle[]; extern const u8 gMonFrontPic_Blastoise[]; extern const u8 gMonPalette_Blastoise[]; extern const u8 gMonBackPic_Blastoise[]; extern const u8 gMonShinyPalette_Blastoise[]; +extern const u8 gMonStillFrontPic_Blastoise[]; extern const u8 gMonIcon_Blastoise[]; extern const u8 gMonFootprint_Blastoise[]; extern const u8 gMonFrontPic_Caterpie[]; extern const u8 gMonPalette_Caterpie[]; extern const u8 gMonBackPic_Caterpie[]; extern const u8 gMonShinyPalette_Caterpie[]; +extern const u8 gMonStillFrontPic_Caterpie[]; extern const u8 gMonIcon_Caterpie[]; extern const u8 gMonFootprint_Caterpie[]; extern const u8 gMonFrontPic_Metapod[]; extern const u8 gMonPalette_Metapod[]; extern const u8 gMonBackPic_Metapod[]; extern const u8 gMonShinyPalette_Metapod[]; +extern const u8 gMonStillFrontPic_Metapod[]; extern const u8 gMonIcon_Metapod[]; extern const u8 gMonFootprint_Metapod[]; extern const u8 gMonFrontPic_Butterfree[]; extern const u8 gMonPalette_Butterfree[]; extern const u8 gMonBackPic_Butterfree[]; extern const u8 gMonShinyPalette_Butterfree[]; +extern const u8 gMonStillFrontPic_Butterfree[]; extern const u8 gMonIcon_Butterfree[]; extern const u8 gMonFootprint_Butterfree[]; extern const u8 gMonFrontPic_Weedle[]; extern const u8 gMonPalette_Weedle[]; extern const u8 gMonBackPic_Weedle[]; extern const u8 gMonShinyPalette_Weedle[]; +extern const u8 gMonStillFrontPic_Weedle[]; extern const u8 gMonIcon_Weedle[]; extern const u8 gMonFootprint_Weedle[]; extern const u8 gMonFrontPic_Kakuna[]; extern const u8 gMonPalette_Kakuna[]; extern const u8 gMonBackPic_Kakuna[]; extern const u8 gMonShinyPalette_Kakuna[]; +extern const u8 gMonStillFrontPic_Kakuna[]; extern const u8 gMonIcon_Kakuna[]; extern const u8 gMonFootprint_Kakuna[]; extern const u8 gMonFrontPic_Beedrill[]; extern const u8 gMonPalette_Beedrill[]; extern const u8 gMonBackPic_Beedrill[]; extern const u8 gMonShinyPalette_Beedrill[]; +extern const u8 gMonStillFrontPic_Beedrill[]; extern const u8 gMonIcon_Beedrill[]; extern const u8 gMonFootprint_Beedrill[]; extern const u8 gMonFrontPic_Pidgey[]; extern const u8 gMonPalette_Pidgey[]; extern const u8 gMonBackPic_Pidgey[]; extern const u8 gMonShinyPalette_Pidgey[]; +extern const u8 gMonStillFrontPic_Pidgey[]; extern const u8 gMonIcon_Pidgey[]; extern const u8 gMonFootprint_Pidgey[]; extern const u8 gMonFrontPic_Pidgeotto[]; extern const u8 gMonPalette_Pidgeotto[]; extern const u8 gMonBackPic_Pidgeotto[]; extern const u8 gMonShinyPalette_Pidgeotto[]; +extern const u8 gMonStillFrontPic_Pidgeotto[]; extern const u8 gMonIcon_Pidgeotto[]; extern const u8 gMonFootprint_Pidgeotto[]; extern const u8 gMonFrontPic_Pidgeot[]; extern const u8 gMonPalette_Pidgeot[]; extern const u8 gMonBackPic_Pidgeot[]; extern const u8 gMonShinyPalette_Pidgeot[]; +extern const u8 gMonStillFrontPic_Pidgeot[]; extern const u8 gMonIcon_Pidgeot[]; extern const u8 gMonFootprint_Pidgeot[]; extern const u8 gMonFrontPic_Rattata[]; extern const u8 gMonPalette_Rattata[]; extern const u8 gMonBackPic_Rattata[]; extern const u8 gMonShinyPalette_Rattata[]; +extern const u8 gMonStillFrontPic_Rattata[]; extern const u8 gMonIcon_Rattata[]; extern const u8 gMonFootprint_Rattata[]; extern const u8 gMonFrontPic_Raticate[]; extern const u8 gMonPalette_Raticate[]; extern const u8 gMonBackPic_Raticate[]; extern const u8 gMonShinyPalette_Raticate[]; +extern const u8 gMonStillFrontPic_Raticate[]; extern const u8 gMonIcon_Raticate[]; extern const u8 gMonFootprint_Raticate[]; extern const u8 gMonFrontPic_Spearow[]; extern const u8 gMonPalette_Spearow[]; extern const u8 gMonBackPic_Spearow[]; extern const u8 gMonShinyPalette_Spearow[]; +extern const u8 gMonStillFrontPic_Spearow[]; extern const u8 gMonIcon_Spearow[]; extern const u8 gMonFootprint_Spearow[]; extern const u8 gMonFrontPic_Fearow[]; extern const u8 gMonPalette_Fearow[]; extern const u8 gMonBackPic_Fearow[]; extern const u8 gMonShinyPalette_Fearow[]; +extern const u8 gMonStillFrontPic_Fearow[]; extern const u8 gMonIcon_Fearow[]; extern const u8 gMonFootprint_Fearow[]; extern const u8 gMonFrontPic_Ekans[]; extern const u8 gMonPalette_Ekans[]; extern const u8 gMonBackPic_Ekans[]; extern const u8 gMonShinyPalette_Ekans[]; +extern const u8 gMonStillFrontPic_Ekans[]; extern const u8 gMonIcon_Ekans[]; extern const u8 gMonFootprint_Ekans[]; extern const u8 gMonFrontPic_Arbok[]; @@ -181,1362 +204,1591 @@ extern const u8 gMonFrontPic_Pikachu[]; extern const u8 gMonPalette_Pikachu[]; extern const u8 gMonBackPic_Pikachu[]; extern const u8 gMonShinyPalette_Pikachu[]; +extern const u8 gMonStillFrontPic_Arbok[]; extern const u8 gMonIcon_Pikachu[]; extern const u8 gMonFootprint_Pikachu[]; +extern const u8 gMonStillFrontPic_Pikachu[]; extern const u8 gMonFrontPic_Raichu[]; extern const u8 gMonPalette_Raichu[]; extern const u8 gMonBackPic_Raichu[]; extern const u8 gMonShinyPalette_Raichu[]; +extern const u8 gMonStillFrontPic_Raichu[]; extern const u8 gMonIcon_Raichu[]; extern const u8 gMonFootprint_Raichu[]; extern const u8 gMonFrontPic_Sandshrew[]; extern const u8 gMonPalette_Sandshrew[]; extern const u8 gMonBackPic_Sandshrew[]; extern const u8 gMonShinyPalette_Sandshrew[]; +extern const u8 gMonStillFrontPic_Sandshrew[]; extern const u8 gMonIcon_Sandshrew[]; extern const u8 gMonFootprint_Sandshrew[]; extern const u8 gMonFrontPic_Sandslash[]; extern const u8 gMonPalette_Sandslash[]; extern const u8 gMonBackPic_Sandslash[]; extern const u8 gMonShinyPalette_Sandslash[]; +extern const u8 gMonStillFrontPic_Sandslash[]; extern const u8 gMonIcon_Sandslash[]; extern const u8 gMonFootprint_Sandslash[]; extern const u8 gMonFrontPic_NidoranF[]; extern const u8 gMonPalette_NidoranF[]; extern const u8 gMonBackPic_NidoranF[]; extern const u8 gMonShinyPalette_NidoranF[]; +extern const u8 gMonStillFrontPic_NidoranF[]; extern const u8 gMonIcon_NidoranF[]; extern const u8 gMonFootprint_NidoranF[]; extern const u8 gMonFrontPic_Nidorina[]; extern const u8 gMonPalette_Nidorina[]; extern const u8 gMonBackPic_Nidorina[]; extern const u8 gMonShinyPalette_Nidorina[]; +extern const u8 gMonStillFrontPic_Nidorina[]; extern const u8 gMonIcon_Nidorina[]; extern const u8 gMonFootprint_Nidorina[]; extern const u8 gMonFrontPic_Nidoqueen[]; extern const u8 gMonPalette_Nidoqueen[]; extern const u8 gMonBackPic_Nidoqueen[]; extern const u8 gMonShinyPalette_Nidoqueen[]; +extern const u8 gMonStillFrontPic_Nidoqueen[]; extern const u8 gMonIcon_Nidoqueen[]; extern const u8 gMonFootprint_Nidoqueen[]; extern const u8 gMonFrontPic_NidoranM[]; extern const u8 gMonPalette_NidoranM[]; extern const u8 gMonBackPic_NidoranM[]; extern const u8 gMonShinyPalette_NidoranM[]; +extern const u8 gMonStillFrontPic_NidoranM[]; extern const u8 gMonIcon_NidoranM[]; extern const u8 gMonFootprint_NidoranM[]; extern const u8 gMonFrontPic_Nidorino[]; extern const u8 gMonPalette_Nidorino[]; extern const u8 gMonBackPic_Nidorino[]; extern const u8 gMonShinyPalette_Nidorino[]; +extern const u8 gMonStillFrontPic_Nidorino[]; extern const u8 gMonIcon_Nidorino[]; extern const u8 gMonFootprint_Nidorino[]; extern const u8 gMonFrontPic_Nidoking[]; extern const u8 gMonPalette_Nidoking[]; extern const u8 gMonBackPic_Nidoking[]; extern const u8 gMonShinyPalette_Nidoking[]; +extern const u8 gMonStillFrontPic_Nidoking[]; extern const u8 gMonIcon_Nidoking[]; extern const u8 gMonFootprint_Nidoking[]; extern const u8 gMonFrontPic_Clefairy[]; extern const u8 gMonPalette_Clefairy[]; extern const u8 gMonBackPic_Clefairy[]; extern const u8 gMonShinyPalette_Clefairy[]; +extern const u8 gMonStillFrontPic_Clefairy[]; extern const u8 gMonIcon_Clefairy[]; extern const u8 gMonFootprint_Clefairy[]; extern const u8 gMonFrontPic_Clefable[]; extern const u8 gMonPalette_Clefable[]; extern const u8 gMonBackPic_Clefable[]; extern const u8 gMonShinyPalette_Clefable[]; +extern const u8 gMonStillFrontPic_Clefable[]; extern const u8 gMonIcon_Clefable[]; extern const u8 gMonFootprint_Clefable[]; extern const u8 gMonFrontPic_Vulpix[]; extern const u8 gMonPalette_Vulpix[]; extern const u8 gMonBackPic_Vulpix[]; extern const u8 gMonShinyPalette_Vulpix[]; +extern const u8 gMonStillFrontPic_Vulpix[]; extern const u8 gMonIcon_Vulpix[]; extern const u8 gMonFootprint_Vulpix[]; extern const u8 gMonFrontPic_Ninetales[]; extern const u8 gMonPalette_Ninetales[]; extern const u8 gMonBackPic_Ninetales[]; extern const u8 gMonShinyPalette_Ninetales[]; +extern const u8 gMonStillFrontPic_Ninetales[]; extern const u8 gMonIcon_Ninetales[]; extern const u8 gMonFootprint_Ninetales[]; extern const u8 gMonFrontPic_Jigglypuff[]; extern const u8 gMonPalette_Jigglypuff[]; extern const u8 gMonBackPic_Jigglypuff[]; extern const u8 gMonShinyPalette_Jigglypuff[]; +extern const u8 gMonStillFrontPic_Jigglypuff[]; extern const u8 gMonIcon_Jigglypuff[]; extern const u8 gMonFootprint_Jigglypuff[]; extern const u8 gMonFrontPic_Wigglytuff[]; extern const u8 gMonPalette_Wigglytuff[]; extern const u8 gMonBackPic_Wigglytuff[]; extern const u8 gMonShinyPalette_Wigglytuff[]; +extern const u8 gMonStillFrontPic_Wigglytuff[]; extern const u8 gMonIcon_Wigglytuff[]; extern const u8 gMonFootprint_Wigglytuff[]; extern const u8 gMonFrontPic_Zubat[]; extern const u8 gMonPalette_Zubat[]; extern const u8 gMonBackPic_Zubat[]; extern const u8 gMonShinyPalette_Zubat[]; +extern const u8 gMonStillFrontPic_Zubat[]; extern const u8 gMonIcon_Zubat[]; extern const u8 gMonFootprint_Zubat[]; extern const u8 gMonFrontPic_Golbat[]; extern const u8 gMonPalette_Golbat[]; extern const u8 gMonBackPic_Golbat[]; extern const u8 gMonShinyPalette_Golbat[]; +extern const u8 gMonStillFrontPic_Golbat[]; extern const u8 gMonIcon_Golbat[]; extern const u8 gMonFootprint_Golbat[]; extern const u8 gMonFrontPic_Oddish[]; extern const u8 gMonPalette_Oddish[]; extern const u8 gMonBackPic_Oddish[]; extern const u8 gMonShinyPalette_Oddish[]; +extern const u8 gMonStillFrontPic_Oddish[]; extern const u8 gMonIcon_Oddish[]; extern const u8 gMonFootprint_Oddish[]; extern const u8 gMonFrontPic_Gloom[]; extern const u8 gMonPalette_Gloom[]; extern const u8 gMonBackPic_Gloom[]; extern const u8 gMonShinyPalette_Gloom[]; +extern const u8 gMonStillFrontPic_Gloom[]; extern const u8 gMonIcon_Gloom[]; extern const u8 gMonFootprint_Gloom[]; extern const u8 gMonFrontPic_Vileplume[]; extern const u8 gMonPalette_Vileplume[]; extern const u8 gMonBackPic_Vileplume[]; extern const u8 gMonShinyPalette_Vileplume[]; +extern const u8 gMonStillFrontPic_Vileplume[]; extern const u8 gMonIcon_Vileplume[]; extern const u8 gMonFootprint_Vileplume[]; extern const u8 gMonFrontPic_Paras[]; extern const u8 gMonPalette_Paras[]; extern const u8 gMonBackPic_Paras[]; extern const u8 gMonShinyPalette_Paras[]; +extern const u8 gMonStillFrontPic_Paras[]; extern const u8 gMonIcon_Paras[]; extern const u8 gMonFootprint_Paras[]; extern const u8 gMonFrontPic_Parasect[]; extern const u8 gMonPalette_Parasect[]; extern const u8 gMonBackPic_Parasect[]; extern const u8 gMonShinyPalette_Parasect[]; +extern const u8 gMonStillFrontPic_Parasect[]; extern const u8 gMonIcon_Parasect[]; extern const u8 gMonFootprint_Parasect[]; extern const u8 gMonFrontPic_Venonat[]; extern const u8 gMonPalette_Venonat[]; extern const u8 gMonBackPic_Venonat[]; extern const u8 gMonShinyPalette_Venonat[]; +extern const u8 gMonStillFrontPic_Venonat[]; extern const u8 gMonIcon_Venonat[]; extern const u8 gMonFootprint_Venonat[]; extern const u8 gMonFrontPic_Venomoth[]; extern const u8 gMonPalette_Venomoth[]; extern const u8 gMonBackPic_Venomoth[]; extern const u8 gMonShinyPalette_Venomoth[]; +extern const u8 gMonStillFrontPic_Venomoth[]; extern const u8 gMonIcon_Venomoth[]; extern const u8 gMonFootprint_Venomoth[]; extern const u8 gMonFrontPic_Diglett[]; extern const u8 gMonPalette_Diglett[]; extern const u8 gMonBackPic_Diglett[]; extern const u8 gMonShinyPalette_Diglett[]; +extern const u8 gMonStillFrontPic_Diglett[]; extern const u8 gMonIcon_Diglett[]; extern const u8 gMonFootprint_Diglett[]; extern const u8 gMonFrontPic_Dugtrio[]; extern const u8 gMonPalette_Dugtrio[]; extern const u8 gMonBackPic_Dugtrio[]; extern const u8 gMonShinyPalette_Dugtrio[]; +extern const u8 gMonStillFrontPic_Dugtrio[]; extern const u8 gMonIcon_Dugtrio[]; extern const u8 gMonFootprint_Dugtrio[]; extern const u8 gMonFrontPic_Meowth[]; extern const u8 gMonPalette_Meowth[]; extern const u8 gMonBackPic_Meowth[]; extern const u8 gMonShinyPalette_Meowth[]; +extern const u8 gMonStillFrontPic_Meowth[]; extern const u8 gMonIcon_Meowth[]; extern const u8 gMonFootprint_Meowth[]; extern const u8 gMonFrontPic_Persian[]; extern const u8 gMonPalette_Persian[]; extern const u8 gMonBackPic_Persian[]; extern const u8 gMonShinyPalette_Persian[]; +extern const u8 gMonStillFrontPic_Persian[]; extern const u8 gMonIcon_Persian[]; extern const u8 gMonFootprint_Persian[]; extern const u8 gMonFrontPic_Psyduck[]; extern const u8 gMonPalette_Psyduck[]; extern const u8 gMonBackPic_Psyduck[]; extern const u8 gMonShinyPalette_Psyduck[]; +extern const u8 gMonStillFrontPic_Psyduck[]; extern const u8 gMonIcon_Psyduck[]; extern const u8 gMonFootprint_Psyduck[]; extern const u8 gMonFrontPic_Golduck[]; extern const u8 gMonPalette_Golduck[]; extern const u8 gMonBackPic_Golduck[]; extern const u8 gMonShinyPalette_Golduck[]; +extern const u8 gMonStillFrontPic_Golduck[]; extern const u8 gMonIcon_Golduck[]; extern const u8 gMonFootprint_Golduck[]; extern const u8 gMonFrontPic_Mankey[]; extern const u8 gMonPalette_Mankey[]; extern const u8 gMonBackPic_Mankey[]; extern const u8 gMonShinyPalette_Mankey[]; +extern const u8 gMonStillFrontPic_Mankey[]; extern const u8 gMonIcon_Mankey[]; extern const u8 gMonFootprint_Mankey[]; extern const u8 gMonFrontPic_Primeape[]; extern const u8 gMonPalette_Primeape[]; extern const u8 gMonBackPic_Primeape[]; extern const u8 gMonShinyPalette_Primeape[]; +extern const u8 gMonStillFrontPic_Primeape[]; extern const u8 gMonIcon_Primeape[]; extern const u8 gMonFootprint_Primeape[]; extern const u8 gMonFrontPic_Growlithe[]; extern const u8 gMonPalette_Growlithe[]; extern const u8 gMonBackPic_Growlithe[]; extern const u8 gMonShinyPalette_Growlithe[]; +extern const u8 gMonStillFrontPic_Growlithe[]; extern const u8 gMonIcon_Growlithe[]; extern const u8 gMonFootprint_Growlithe[]; extern const u8 gMonFrontPic_Arcanine[]; extern const u8 gMonPalette_Arcanine[]; extern const u8 gMonBackPic_Arcanine[]; extern const u8 gMonShinyPalette_Arcanine[]; +extern const u8 gMonStillFrontPic_Arcanine[]; extern const u8 gMonIcon_Arcanine[]; extern const u8 gMonFootprint_Arcanine[]; extern const u8 gMonFrontPic_Poliwag[]; extern const u8 gMonPalette_Poliwag[]; extern const u8 gMonBackPic_Poliwag[]; extern const u8 gMonShinyPalette_Poliwag[]; +extern const u8 gMonStillFrontPic_Poliwag[]; extern const u8 gMonIcon_Poliwag[]; extern const u8 gMonFootprint_Poliwag[]; extern const u8 gMonFrontPic_Poliwhirl[]; extern const u8 gMonPalette_Poliwhirl[]; extern const u8 gMonBackPic_Poliwhirl[]; extern const u8 gMonShinyPalette_Poliwhirl[]; +extern const u8 gMonStillFrontPic_Poliwhirl[]; extern const u8 gMonIcon_Poliwhirl[]; extern const u8 gMonFootprint_Poliwhirl[]; extern const u8 gMonFrontPic_Poliwrath[]; extern const u8 gMonPalette_Poliwrath[]; extern const u8 gMonBackPic_Poliwrath[]; extern const u8 gMonShinyPalette_Poliwrath[]; +extern const u8 gMonStillFrontPic_Poliwrath[]; extern const u8 gMonIcon_Poliwrath[]; extern const u8 gMonFootprint_Poliwrath[]; extern const u8 gMonFrontPic_Abra[]; extern const u8 gMonPalette_Abra[]; extern const u8 gMonBackPic_Abra[]; extern const u8 gMonShinyPalette_Abra[]; +extern const u8 gMonStillFrontPic_Abra[]; extern const u8 gMonIcon_Abra[]; extern const u8 gMonFootprint_Abra[]; extern const u8 gMonFrontPic_Kadabra[]; extern const u8 gMonPalette_Kadabra[]; extern const u8 gMonBackPic_Kadabra[]; extern const u8 gMonShinyPalette_Kadabra[]; +extern const u8 gMonStillFrontPic_Kadabra[]; extern const u8 gMonIcon_Kadabra[]; extern const u8 gMonFootprint_Kadabra[]; extern const u8 gMonFrontPic_Alakazam[]; extern const u8 gMonPalette_Alakazam[]; extern const u8 gMonBackPic_Alakazam[]; extern const u8 gMonShinyPalette_Alakazam[]; +extern const u8 gMonStillFrontPic_Alakazam[]; extern const u8 gMonIcon_Alakazam[]; extern const u8 gMonFootprint_Alakazam[]; extern const u8 gMonFrontPic_Machop[]; extern const u8 gMonPalette_Machop[]; extern const u8 gMonBackPic_Machop[]; extern const u8 gMonShinyPalette_Machop[]; +extern const u8 gMonStillFrontPic_Machop[]; extern const u8 gMonIcon_Machop[]; extern const u8 gMonFootprint_Machop[]; extern const u8 gMonFrontPic_Machoke[]; extern const u8 gMonPalette_Machoke[]; extern const u8 gMonBackPic_Machoke[]; extern const u8 gMonShinyPalette_Machoke[]; +extern const u8 gMonStillFrontPic_Machoke[]; extern const u8 gMonIcon_Machoke[]; extern const u8 gMonFootprint_Machoke[]; extern const u8 gMonFrontPic_Machamp[]; extern const u8 gMonPalette_Machamp[]; extern const u8 gMonBackPic_Machamp[]; extern const u8 gMonShinyPalette_Machamp[]; +extern const u8 gMonStillFrontPic_Machamp[]; extern const u8 gMonIcon_Machamp[]; extern const u8 gMonFootprint_Machamp[]; extern const u8 gMonFrontPic_Bellsprout[]; extern const u8 gMonPalette_Bellsprout[]; extern const u8 gMonBackPic_Bellsprout[]; extern const u8 gMonShinyPalette_Bellsprout[]; +extern const u8 gMonStillFrontPic_Bellsprout[]; extern const u8 gMonIcon_Bellsprout[]; extern const u8 gMonFootprint_Bellsprout[]; extern const u8 gMonFrontPic_Weepinbell[]; extern const u8 gMonPalette_Weepinbell[]; extern const u8 gMonBackPic_Weepinbell[]; extern const u8 gMonShinyPalette_Weepinbell[]; +extern const u8 gMonStillFrontPic_Weepinbell[]; extern const u8 gMonIcon_Weepinbell[]; extern const u8 gMonFootprint_Weepinbell[]; extern const u8 gMonFrontPic_Victreebel[]; extern const u8 gMonPalette_Victreebel[]; extern const u8 gMonBackPic_Victreebel[]; extern const u8 gMonShinyPalette_Victreebel[]; +extern const u8 gMonStillFrontPic_Victreebel[]; extern const u8 gMonIcon_Victreebel[]; extern const u8 gMonFootprint_Victreebel[]; extern const u8 gMonFrontPic_Tentacool[]; extern const u8 gMonPalette_Tentacool[]; extern const u8 gMonBackPic_Tentacool[]; extern const u8 gMonShinyPalette_Tentacool[]; +extern const u8 gMonStillFrontPic_Tentacool[]; extern const u8 gMonIcon_Tentacool[]; extern const u8 gMonFootprint_Tentacool[]; extern const u8 gMonFrontPic_Tentacruel[]; extern const u8 gMonPalette_Tentacruel[]; extern const u8 gMonBackPic_Tentacruel[]; extern const u8 gMonShinyPalette_Tentacruel[]; +extern const u8 gMonStillFrontPic_Tentacruel[]; extern const u8 gMonIcon_Tentacruel[]; extern const u8 gMonFootprint_Tentacruel[]; extern const u8 gMonFrontPic_Geodude[]; extern const u8 gMonPalette_Geodude[]; extern const u8 gMonBackPic_Geodude[]; extern const u8 gMonShinyPalette_Geodude[]; +extern const u8 gMonStillFrontPic_Geodude[]; extern const u8 gMonIcon_Geodude[]; extern const u8 gMonFootprint_Geodude[]; extern const u8 gMonFrontPic_Graveler[]; extern const u8 gMonPalette_Graveler[]; extern const u8 gMonBackPic_Graveler[]; extern const u8 gMonShinyPalette_Graveler[]; +extern const u8 gMonStillFrontPic_Graveler[]; extern const u8 gMonIcon_Graveler[]; extern const u8 gMonFootprint_Graveler[]; extern const u8 gMonFrontPic_Golem[]; extern const u8 gMonPalette_Golem[]; extern const u8 gMonBackPic_Golem[]; extern const u8 gMonShinyPalette_Golem[]; +extern const u8 gMonStillFrontPic_Golem[]; extern const u8 gMonIcon_Golem[]; extern const u8 gMonFootprint_Golem[]; extern const u8 gMonFrontPic_Ponyta[]; extern const u8 gMonPalette_Ponyta[]; extern const u8 gMonBackPic_Ponyta[]; extern const u8 gMonShinyPalette_Ponyta[]; +extern const u8 gMonStillFrontPic_Ponyta[]; extern const u8 gMonIcon_Ponyta[]; extern const u8 gMonFootprint_Ponyta[]; extern const u8 gMonFrontPic_Rapidash[]; extern const u8 gMonPalette_Rapidash[]; extern const u8 gMonBackPic_Rapidash[]; extern const u8 gMonShinyPalette_Rapidash[]; +extern const u8 gMonStillFrontPic_Rapidash[]; extern const u8 gMonIcon_Rapidash[]; extern const u8 gMonFootprint_Rapidash[]; extern const u8 gMonFrontPic_Slowpoke[]; extern const u8 gMonPalette_Slowpoke[]; extern const u8 gMonBackPic_Slowpoke[]; extern const u8 gMonShinyPalette_Slowpoke[]; +extern const u8 gMonStillFrontPic_Slowpoke[]; extern const u8 gMonIcon_Slowpoke[]; extern const u8 gMonFootprint_Slowpoke[]; extern const u8 gMonFrontPic_Slowbro[]; extern const u8 gMonPalette_Slowbro[]; extern const u8 gMonBackPic_Slowbro[]; extern const u8 gMonShinyPalette_Slowbro[]; +extern const u8 gMonStillFrontPic_Slowbro[]; extern const u8 gMonIcon_Slowbro[]; extern const u8 gMonFootprint_Slowbro[]; extern const u8 gMonFrontPic_Magnemite[]; extern const u8 gMonPalette_Magnemite[]; extern const u8 gMonBackPic_Magnemite[]; extern const u8 gMonShinyPalette_Magnemite[]; +extern const u8 gMonStillFrontPic_Magnemite[]; extern const u8 gMonIcon_Magnemite[]; extern const u8 gMonFootprint_Magnemite[]; extern const u8 gMonFrontPic_Magneton[]; extern const u8 gMonPalette_Magneton[]; extern const u8 gMonBackPic_Magneton[]; extern const u8 gMonShinyPalette_Magneton[]; +extern const u8 gMonStillFrontPic_Magneton[]; extern const u8 gMonIcon_Magneton[]; extern const u8 gMonFootprint_Magneton[]; extern const u8 gMonFrontPic_Farfetchd[]; extern const u8 gMonPalette_Farfetchd[]; extern const u8 gMonBackPic_Farfetchd[]; extern const u8 gMonShinyPalette_Farfetchd[]; +extern const u8 gMonStillFrontPic_Farfetchd[]; extern const u8 gMonIcon_Farfetchd[]; extern const u8 gMonFootprint_Farfetchd[]; extern const u8 gMonFrontPic_Doduo[]; extern const u8 gMonPalette_Doduo[]; extern const u8 gMonBackPic_Doduo[]; extern const u8 gMonShinyPalette_Doduo[]; +extern const u8 gMonStillFrontPic_Doduo[]; extern const u8 gMonIcon_Doduo[]; extern const u8 gMonFootprint_Doduo[]; extern const u8 gMonFrontPic_Dodrio[]; extern const u8 gMonPalette_Dodrio[]; extern const u8 gMonBackPic_Dodrio[]; extern const u8 gMonShinyPalette_Dodrio[]; +extern const u8 gMonStillFrontPic_Dodrio[]; extern const u8 gMonIcon_Dodrio[]; extern const u8 gMonFootprint_Dodrio[]; extern const u8 gMonFrontPic_Seel[]; extern const u8 gMonPalette_Seel[]; extern const u8 gMonBackPic_Seel[]; extern const u8 gMonShinyPalette_Seel[]; +extern const u8 gMonStillFrontPic_Seel[]; extern const u8 gMonIcon_Seel[]; extern const u8 gMonFootprint_Seel[]; extern const u8 gMonFrontPic_Dewgong[]; extern const u8 gMonPalette_Dewgong[]; extern const u8 gMonBackPic_Dewgong[]; extern const u8 gMonShinyPalette_Dewgong[]; +extern const u8 gMonStillFrontPic_Dewgong[]; extern const u8 gMonIcon_Dewgong[]; extern const u8 gMonFootprint_Dewgong[]; extern const u8 gMonFrontPic_Grimer[]; extern const u8 gMonPalette_Grimer[]; extern const u8 gMonBackPic_Grimer[]; extern const u8 gMonShinyPalette_Grimer[]; +extern const u8 gMonStillFrontPic_Grimer[]; extern const u8 gMonIcon_Grimer[]; extern const u8 gMonFootprint_Grimer[]; +extern const u8 gMonStillFrontPic_Muk[]; extern const u8 gMonFrontPic_Muk[]; extern const u8 gMonPalette_Muk[]; extern const u8 gMonBackPic_Muk[]; extern const u8 gMonShinyPalette_Muk[]; +extern const u8 gMonStillFrontPic_Shellder[]; extern const u8 gMonIcon_Muk[]; extern const u8 gMonFootprint_Muk[]; extern const u8 gMonFrontPic_Shellder[]; extern const u8 gMonPalette_Shellder[]; extern const u8 gMonBackPic_Shellder[]; extern const u8 gMonShinyPalette_Shellder[]; +extern const u8 gMonStillFrontPic_Cloyster[]; extern const u8 gMonIcon_Shellder[]; extern const u8 gMonFootprint_Shellder[]; extern const u8 gMonFrontPic_Cloyster[]; extern const u8 gMonPalette_Cloyster[]; extern const u8 gMonBackPic_Cloyster[]; extern const u8 gMonShinyPalette_Cloyster[]; +extern const u8 gMonStillFrontPic_Gastly[]; extern const u8 gMonIcon_Cloyster[]; extern const u8 gMonFootprint_Cloyster[]; extern const u8 gMonFrontPic_Gastly[]; extern const u8 gMonPalette_Gastly[]; extern const u8 gMonBackPic_Gastly[]; extern const u8 gMonShinyPalette_Gastly[]; +extern const u8 gMonStillFrontPic_Haunter[]; extern const u8 gMonIcon_Gastly[]; extern const u8 gMonFootprint_Gastly[]; extern const u8 gMonFrontPic_Haunter[]; extern const u8 gMonPalette_Haunter[]; extern const u8 gMonBackPic_Haunter[]; extern const u8 gMonShinyPalette_Haunter[]; +extern const u8 gMonStillFrontPic_Haunter[]; extern const u8 gMonIcon_Haunter[]; extern const u8 gMonFootprint_Haunter[]; extern const u8 gMonFrontPic_Gengar[]; extern const u8 gMonPalette_Gengar[]; extern const u8 gMonBackPic_Gengar[]; extern const u8 gMonShinyPalette_Gengar[]; +extern const u8 gMonStillFrontPic_Gengar[]; extern const u8 gMonIcon_Gengar[]; extern const u8 gMonFootprint_Gengar[]; extern const u8 gMonFrontPic_Onix[]; extern const u8 gMonPalette_Onix[]; extern const u8 gMonBackPic_Onix[]; extern const u8 gMonShinyPalette_Onix[]; +extern const u8 gMonStillFrontPic_Onix[]; extern const u8 gMonIcon_Onix[]; extern const u8 gMonFootprint_Onix[]; extern const u8 gMonFrontPic_Drowzee[]; extern const u8 gMonPalette_Drowzee[]; extern const u8 gMonBackPic_Drowzee[]; extern const u8 gMonShinyPalette_Drowzee[]; +extern const u8 gMonStillFrontPic_Drowzee[]; extern const u8 gMonIcon_Drowzee[]; extern const u8 gMonFootprint_Drowzee[]; extern const u8 gMonFrontPic_Hypno[]; extern const u8 gMonPalette_Hypno[]; extern const u8 gMonBackPic_Hypno[]; extern const u8 gMonShinyPalette_Hypno[]; +extern const u8 gMonStillFrontPic_Hypno[]; extern const u8 gMonIcon_Hypno[]; extern const u8 gMonFootprint_Hypno[]; extern const u8 gMonFrontPic_Krabby[]; extern const u8 gMonPalette_Krabby[]; extern const u8 gMonBackPic_Krabby[]; extern const u8 gMonShinyPalette_Krabby[]; +extern const u8 gMonStillFrontPic_Krabby[]; extern const u8 gMonIcon_Krabby[]; extern const u8 gMonFootprint_Krabby[]; extern const u8 gMonFrontPic_Kingler[]; extern const u8 gMonPalette_Kingler[]; extern const u8 gMonBackPic_Kingler[]; extern const u8 gMonShinyPalette_Kingler[]; +extern const u8 gMonStillFrontPic_Kingler[]; extern const u8 gMonIcon_Kingler[]; extern const u8 gMonFootprint_Kingler[]; extern const u8 gMonFrontPic_Voltorb[]; extern const u8 gMonPalette_Voltorb[]; extern const u8 gMonBackPic_Voltorb[]; extern const u8 gMonShinyPalette_Voltorb[]; +extern const u8 gMonStillFrontPic_Voltorb[]; extern const u8 gMonIcon_Voltorb[]; extern const u8 gMonFootprint_Voltorb[]; extern const u8 gMonFrontPic_Electrode[]; extern const u8 gMonPalette_Electrode[]; extern const u8 gMonBackPic_Electrode[]; extern const u8 gMonShinyPalette_Electrode[]; +extern const u8 gMonStillFrontPic_Electrode[]; extern const u8 gMonIcon_Electrode[]; extern const u8 gMonFootprint_Electrode[]; extern const u8 gMonFrontPic_Exeggcute[]; extern const u8 gMonPalette_Exeggcute[]; extern const u8 gMonBackPic_Exeggcute[]; extern const u8 gMonShinyPalette_Exeggcute[]; +extern const u8 gMonStillFrontPic_Exeggcute[]; extern const u8 gMonIcon_Exeggcute[]; extern const u8 gMonFootprint_Exeggcute[]; extern const u8 gMonFrontPic_Exeggutor[]; extern const u8 gMonPalette_Exeggutor[]; extern const u8 gMonBackPic_Exeggutor[]; extern const u8 gMonShinyPalette_Exeggutor[]; +extern const u8 gMonStillFrontPic_Exeggutor[]; extern const u8 gMonIcon_Exeggutor[]; extern const u8 gMonFootprint_Exeggutor[]; extern const u8 gMonFrontPic_Cubone[]; extern const u8 gMonPalette_Cubone[]; extern const u8 gMonBackPic_Cubone[]; extern const u8 gMonShinyPalette_Cubone[]; +extern const u8 gMonStillFrontPic_Cubone[]; extern const u8 gMonIcon_Cubone[]; extern const u8 gMonFootprint_Cubone[]; extern const u8 gMonFrontPic_Marowak[]; extern const u8 gMonPalette_Marowak[]; extern const u8 gMonBackPic_Marowak[]; extern const u8 gMonShinyPalette_Marowak[]; +extern const u8 gMonStillFrontPic_Marowak[]; extern const u8 gMonIcon_Marowak[]; extern const u8 gMonFootprint_Marowak[]; extern const u8 gMonFrontPic_Hitmonlee[]; extern const u8 gMonPalette_Hitmonlee[]; extern const u8 gMonBackPic_Hitmonlee[]; extern const u8 gMonShinyPalette_Hitmonlee[]; +extern const u8 gMonStillFrontPic_Hitmonlee[]; extern const u8 gMonIcon_Hitmonlee[]; extern const u8 gMonFootprint_Hitmonlee[]; extern const u8 gMonFrontPic_Hitmonchan[]; extern const u8 gMonPalette_Hitmonchan[]; extern const u8 gMonBackPic_Hitmonchan[]; extern const u8 gMonShinyPalette_Hitmonchan[]; +extern const u8 gMonStillFrontPic_Hitmonchan[]; extern const u8 gMonIcon_Hitmonchan[]; extern const u8 gMonFootprint_Hitmonchan[]; extern const u8 gMonFrontPic_Lickitung[]; extern const u8 gMonPalette_Lickitung[]; extern const u8 gMonBackPic_Lickitung[]; extern const u8 gMonShinyPalette_Lickitung[]; +extern const u8 gMonStillFrontPic_Lickitung[]; extern const u8 gMonIcon_Lickitung[]; extern const u8 gMonFootprint_Lickitung[]; extern const u8 gMonFrontPic_Koffing[]; extern const u8 gMonPalette_Koffing[]; extern const u8 gMonBackPic_Koffing[]; extern const u8 gMonShinyPalette_Koffing[]; +extern const u8 gMonStillFrontPic_Koffing[]; extern const u8 gMonIcon_Koffing[]; extern const u8 gMonFootprint_Koffing[]; extern const u8 gMonFrontPic_Weezing[]; extern const u8 gMonPalette_Weezing[]; extern const u8 gMonBackPic_Weezing[]; extern const u8 gMonShinyPalette_Weezing[]; +extern const u8 gMonStillFrontPic_Weezing[]; extern const u8 gMonIcon_Weezing[]; extern const u8 gMonFootprint_Weezing[]; extern const u8 gMonFrontPic_Rhyhorn[]; extern const u8 gMonPalette_Rhyhorn[]; extern const u8 gMonBackPic_Rhyhorn[]; extern const u8 gMonShinyPalette_Rhyhorn[]; +extern const u8 gMonStillFrontPic_Rhyhorn[]; extern const u8 gMonIcon_Rhyhorn[]; extern const u8 gMonFootprint_Rhyhorn[]; extern const u8 gMonFrontPic_Rhydon[]; extern const u8 gMonPalette_Rhydon[]; extern const u8 gMonBackPic_Rhydon[]; extern const u8 gMonShinyPalette_Rhydon[]; +extern const u8 gMonStillFrontPic_Rhydon[]; extern const u8 gMonIcon_Rhydon[]; extern const u8 gMonFootprint_Rhydon[]; extern const u8 gMonFrontPic_Chansey[]; extern const u8 gMonPalette_Chansey[]; extern const u8 gMonBackPic_Chansey[]; extern const u8 gMonShinyPalette_Chansey[]; +extern const u8 gMonStillFrontPic_Chansey[]; extern const u8 gMonIcon_Chansey[]; extern const u8 gMonFootprint_Chansey[]; extern const u8 gMonFrontPic_Tangela[]; extern const u8 gMonPalette_Tangela[]; extern const u8 gMonBackPic_Tangela[]; extern const u8 gMonShinyPalette_Tangela[]; +extern const u8 gMonStillFrontPic_Tangela[]; extern const u8 gMonIcon_Tangela[]; extern const u8 gMonFootprint_Tangela[]; extern const u8 gMonFrontPic_Kangaskhan[]; extern const u8 gMonPalette_Kangaskhan[]; extern const u8 gMonBackPic_Kangaskhan[]; extern const u8 gMonShinyPalette_Kangaskhan[]; +extern const u8 gMonStillFrontPic_Kangaskhan[]; extern const u8 gMonIcon_Kangaskhan[]; extern const u8 gMonFootprint_Kangaskhan[]; extern const u8 gMonFrontPic_Horsea[]; extern const u8 gMonPalette_Horsea[]; extern const u8 gMonBackPic_Horsea[]; extern const u8 gMonShinyPalette_Horsea[]; +extern const u8 gMonStillFrontPic_Horsea[]; extern const u8 gMonIcon_Horsea[]; extern const u8 gMonFootprint_Horsea[]; extern const u8 gMonFrontPic_Seadra[]; extern const u8 gMonPalette_Seadra[]; extern const u8 gMonBackPic_Seadra[]; extern const u8 gMonShinyPalette_Seadra[]; +extern const u8 gMonStillFrontPic_Seadra[]; extern const u8 gMonIcon_Seadra[]; extern const u8 gMonFootprint_Seadra[]; extern const u8 gMonFrontPic_Goldeen[]; extern const u8 gMonPalette_Goldeen[]; extern const u8 gMonBackPic_Goldeen[]; extern const u8 gMonShinyPalette_Goldeen[]; +extern const u8 gMonStillFrontPic_Goldeen[]; extern const u8 gMonIcon_Goldeen[]; extern const u8 gMonFootprint_Goldeen[]; extern const u8 gMonFrontPic_Seaking[]; extern const u8 gMonPalette_Seaking[]; extern const u8 gMonBackPic_Seaking[]; extern const u8 gMonShinyPalette_Seaking[]; +extern const u8 gMonStillFrontPic_Seaking[]; extern const u8 gMonIcon_Seaking[]; extern const u8 gMonFootprint_Seaking[]; extern const u8 gMonFrontPic_Staryu[]; extern const u8 gMonPalette_Staryu[]; extern const u8 gMonBackPic_Staryu[]; extern const u8 gMonShinyPalette_Staryu[]; +extern const u8 gMonStillFrontPic_Staryu[]; extern const u8 gMonIcon_Staryu[]; extern const u8 gMonFootprint_Staryu[]; extern const u8 gMonFrontPic_Starmie[]; extern const u8 gMonPalette_Starmie[]; extern const u8 gMonBackPic_Starmie[]; extern const u8 gMonShinyPalette_Starmie[]; +extern const u8 gMonStillFrontPic_Starmie[]; extern const u8 gMonIcon_Starmie[]; extern const u8 gMonFootprint_Starmie[]; extern const u8 gMonFrontPic_Mrmime[]; extern const u8 gMonPalette_Mrmime[]; extern const u8 gMonBackPic_Mrmime[]; extern const u8 gMonShinyPalette_Mrmime[]; +extern const u8 gMonStillFrontPic_Mrmime[]; extern const u8 gMonIcon_Mrmime[]; extern const u8 gMonFootprint_Mrmime[]; extern const u8 gMonFrontPic_Scyther[]; extern const u8 gMonPalette_Scyther[]; extern const u8 gMonBackPic_Scyther[]; extern const u8 gMonShinyPalette_Scyther[]; +extern const u8 gMonStillFrontPic_Scyther[]; extern const u8 gMonIcon_Scyther[]; extern const u8 gMonFootprint_Scyther[]; extern const u8 gMonFrontPic_Jynx[]; extern const u8 gMonPalette_Jynx[]; extern const u8 gMonBackPic_Jynx[]; extern const u8 gMonShinyPalette_Jynx[]; +extern const u8 gMonStillFrontPic_Jynx[]; extern const u8 gMonIcon_Jynx[]; extern const u8 gMonFootprint_Jynx[]; extern const u8 gMonFrontPic_Electabuzz[]; extern const u8 gMonPalette_Electabuzz[]; extern const u8 gMonBackPic_Electabuzz[]; extern const u8 gMonShinyPalette_Electabuzz[]; +extern const u8 gMonStillFrontPic_Electabuzz[]; extern const u8 gMonIcon_Electabuzz[]; extern const u8 gMonFootprint_Electabuzz[]; extern const u8 gMonFrontPic_Magmar[]; extern const u8 gMonPalette_Magmar[]; extern const u8 gMonBackPic_Magmar[]; extern const u8 gMonShinyPalette_Magmar[]; +extern const u8 gMonStillFrontPic_Magmar[]; extern const u8 gMonIcon_Magmar[]; extern const u8 gMonFootprint_Magmar[]; extern const u8 gMonFrontPic_Pinsir[]; extern const u8 gMonPalette_Pinsir[]; extern const u8 gMonBackPic_Pinsir[]; extern const u8 gMonShinyPalette_Pinsir[]; +extern const u8 gMonStillFrontPic_Pinsir[]; extern const u8 gMonIcon_Pinsir[]; extern const u8 gMonFootprint_Pinsir[]; extern const u8 gMonFrontPic_Tauros[]; extern const u8 gMonPalette_Tauros[]; extern const u8 gMonBackPic_Tauros[]; extern const u8 gMonShinyPalette_Tauros[]; +extern const u8 gMonStillFrontPic_Tauros[]; extern const u8 gMonIcon_Tauros[]; extern const u8 gMonFootprint_Tauros[]; extern const u8 gMonFrontPic_Magikarp[]; extern const u8 gMonPalette_Magikarp[]; extern const u8 gMonBackPic_Magikarp[]; extern const u8 gMonShinyPalette_Magikarp[]; +extern const u8 gMonStillFrontPic_Magikarp[]; extern const u8 gMonIcon_Magikarp[]; extern const u8 gMonFootprint_Magikarp[]; extern const u8 gMonFrontPic_Gyarados[]; extern const u8 gMonPalette_Gyarados[]; extern const u8 gMonBackPic_Gyarados[]; extern const u8 gMonShinyPalette_Gyarados[]; +extern const u8 gMonStillFrontPic_Gyarados[]; extern const u8 gMonIcon_Gyarados[]; extern const u8 gMonFootprint_Gyarados[]; extern const u8 gMonFrontPic_Lapras[]; extern const u8 gMonPalette_Lapras[]; extern const u8 gMonBackPic_Lapras[]; extern const u8 gMonShinyPalette_Lapras[]; +extern const u8 gMonStillFrontPic_Lapras[]; extern const u8 gMonIcon_Lapras[]; extern const u8 gMonFootprint_Lapras[]; extern const u8 gMonFrontPic_Ditto[]; extern const u8 gMonPalette_Ditto[]; extern const u8 gMonBackPic_Ditto[]; extern const u8 gMonShinyPalette_Ditto[]; +extern const u8 gMonStillFrontPic_Ditto[]; extern const u8 gMonIcon_Ditto[]; extern const u8 gMonFootprint_Ditto[]; extern const u8 gMonFrontPic_Eevee[]; extern const u8 gMonPalette_Eevee[]; extern const u8 gMonBackPic_Eevee[]; extern const u8 gMonShinyPalette_Eevee[]; +extern const u8 gMonStillFrontPic_Eevee[]; extern const u8 gMonIcon_Eevee[]; extern const u8 gMonFootprint_Eevee[]; extern const u8 gMonFrontPic_Vaporeon[]; extern const u8 gMonPalette_Vaporeon[]; extern const u8 gMonBackPic_Vaporeon[]; extern const u8 gMonShinyPalette_Vaporeon[]; +extern const u8 gMonStillFrontPic_Vaporeon[]; extern const u8 gMonIcon_Vaporeon[]; extern const u8 gMonFootprint_Vaporeon[]; extern const u8 gMonFrontPic_Jolteon[]; extern const u8 gMonPalette_Jolteon[]; extern const u8 gMonBackPic_Jolteon[]; extern const u8 gMonShinyPalette_Jolteon[]; +extern const u8 gMonStillFrontPic_Jolteon[]; extern const u8 gMonIcon_Jolteon[]; extern const u8 gMonFootprint_Jolteon[]; extern const u8 gMonFrontPic_Flareon[]; extern const u8 gMonPalette_Flareon[]; extern const u8 gMonBackPic_Flareon[]; extern const u8 gMonShinyPalette_Flareon[]; +extern const u8 gMonStillFrontPic_Flareon[]; extern const u8 gMonIcon_Flareon[]; extern const u8 gMonFootprint_Flareon[]; extern const u8 gMonFrontPic_Porygon[]; extern const u8 gMonPalette_Porygon[]; extern const u8 gMonBackPic_Porygon[]; extern const u8 gMonShinyPalette_Porygon[]; +extern const u8 gMonStillFrontPic_Porygon[]; extern const u8 gMonIcon_Porygon[]; extern const u8 gMonFootprint_Porygon[]; extern const u8 gMonFrontPic_Omanyte[]; extern const u8 gMonPalette_Omanyte[]; extern const u8 gMonBackPic_Omanyte[]; extern const u8 gMonShinyPalette_Omanyte[]; +extern const u8 gMonStillFrontPic_Omanyte[]; extern const u8 gMonIcon_Omanyte[]; extern const u8 gMonFootprint_Omanyte[]; extern const u8 gMonFrontPic_Omastar[]; extern const u8 gMonPalette_Omastar[]; extern const u8 gMonBackPic_Omastar[]; extern const u8 gMonShinyPalette_Omastar[]; +extern const u8 gMonStillFrontPic_Omastar[]; extern const u8 gMonIcon_Omastar[]; extern const u8 gMonFootprint_Omastar[]; extern const u8 gMonFrontPic_Kabuto[]; extern const u8 gMonPalette_Kabuto[]; extern const u8 gMonBackPic_Kabuto[]; extern const u8 gMonShinyPalette_Kabuto[]; +extern const u8 gMonStillFrontPic_Kabuto[]; extern const u8 gMonIcon_Kabuto[]; extern const u8 gMonFootprint_Kabuto[]; extern const u8 gMonFrontPic_Kabutops[]; extern const u8 gMonPalette_Kabutops[]; extern const u8 gMonBackPic_Kabutops[]; extern const u8 gMonShinyPalette_Kabutops[]; +extern const u8 gMonStillFrontPic_Kabutops[]; extern const u8 gMonIcon_Kabutops[]; extern const u8 gMonFootprint_Kabutops[]; extern const u8 gMonFrontPic_Aerodactyl[]; extern const u8 gMonPalette_Aerodactyl[]; extern const u8 gMonBackPic_Aerodactyl[]; extern const u8 gMonShinyPalette_Aerodactyl[]; +extern const u8 gMonStillFrontPic_Aerodactyl[]; extern const u8 gMonIcon_Aerodactyl[]; extern const u8 gMonFootprint_Aerodactyl[]; extern const u8 gMonFrontPic_Snorlax[]; extern const u8 gMonPalette_Snorlax[]; extern const u8 gMonBackPic_Snorlax[]; extern const u8 gMonShinyPalette_Snorlax[]; +extern const u8 gMonStillFrontPic_Snorlax[]; extern const u8 gMonIcon_Snorlax[]; extern const u8 gMonFootprint_Snorlax[]; extern const u8 gMonFrontPic_Articuno[]; extern const u8 gMonPalette_Articuno[]; extern const u8 gMonBackPic_Articuno[]; extern const u8 gMonShinyPalette_Articuno[]; +extern const u8 gMonStillFrontPic_Articuno[]; extern const u8 gMonIcon_Articuno[]; extern const u8 gMonFootprint_Articuno[]; extern const u8 gMonFrontPic_Zapdos[]; extern const u8 gMonPalette_Zapdos[]; extern const u8 gMonBackPic_Zapdos[]; extern const u8 gMonShinyPalette_Zapdos[]; +extern const u8 gMonStillFrontPic_Zapdos[]; extern const u8 gMonIcon_Zapdos[]; extern const u8 gMonFootprint_Zapdos[]; extern const u8 gMonFrontPic_Moltres[]; extern const u8 gMonPalette_Moltres[]; extern const u8 gMonBackPic_Moltres[]; extern const u8 gMonShinyPalette_Moltres[]; +extern const u8 gMonStillFrontPic_Moltres[]; extern const u8 gMonIcon_Moltres[]; extern const u8 gMonFootprint_Moltres[]; extern const u8 gMonFrontPic_Dratini[]; extern const u8 gMonPalette_Dratini[]; extern const u8 gMonBackPic_Dratini[]; extern const u8 gMonShinyPalette_Dratini[]; +extern const u8 gMonStillFrontPic_Dratini[]; extern const u8 gMonIcon_Dratini[]; extern const u8 gMonFootprint_Dratini[]; extern const u8 gMonFrontPic_Dragonair[]; extern const u8 gMonPalette_Dragonair[]; extern const u8 gMonBackPic_Dragonair[]; extern const u8 gMonShinyPalette_Dragonair[]; +extern const u8 gMonStillFrontPic_Dragonair[]; extern const u8 gMonIcon_Dragonair[]; extern const u8 gMonFootprint_Dragonair[]; extern const u8 gMonFrontPic_Dragonite[]; extern const u8 gMonPalette_Dragonite[]; extern const u8 gMonBackPic_Dragonite[]; extern const u8 gMonShinyPalette_Dragonite[]; +extern const u8 gMonStillFrontPic_Dragonite[]; extern const u8 gMonIcon_Dragonite[]; extern const u8 gMonFootprint_Dragonite[]; extern const u8 gMonFrontPic_Mewtwo[]; extern const u8 gMonPalette_Mewtwo[]; extern const u8 gMonBackPic_Mewtwo[]; extern const u8 gMonShinyPalette_Mewtwo[]; +extern const u8 gMonStillFrontPic_Mewtwo[]; extern const u8 gMonIcon_Mewtwo[]; extern const u8 gMonFootprint_Mewtwo[]; extern const u8 gMonFrontPic_Mew[]; extern const u8 gMonPalette_Mew[]; extern const u8 gMonBackPic_Mew[]; extern const u8 gMonShinyPalette_Mew[]; +extern const u8 gMonStillFrontPic_Mew[]; extern const u8 gMonIcon_Mew[]; extern const u8 gMonFootprint_Mew[]; extern const u8 gMonFrontPic_Chikorita[]; extern const u8 gMonPalette_Chikorita[]; extern const u8 gMonBackPic_Chikorita[]; extern const u8 gMonShinyPalette_Chikorita[]; +extern const u8 gMonStillFrontPic_Chikorita[]; extern const u8 gMonIcon_Chikorita[]; extern const u8 gMonFootprint_Chikorita[]; extern const u8 gMonFrontPic_Bayleef[]; extern const u8 gMonPalette_Bayleef[]; extern const u8 gMonBackPic_Bayleef[]; extern const u8 gMonShinyPalette_Bayleef[]; +extern const u8 gMonStillFrontPic_Bayleef[]; extern const u8 gMonIcon_Bayleef[]; extern const u8 gMonFootprint_Bayleef[]; extern const u8 gMonFrontPic_Meganium[]; extern const u8 gMonPalette_Meganium[]; extern const u8 gMonBackPic_Meganium[]; extern const u8 gMonShinyPalette_Meganium[]; +extern const u8 gMonStillFrontPic_Meganium[]; extern const u8 gMonIcon_Meganium[]; extern const u8 gMonFootprint_Meganium[]; extern const u8 gMonFrontPic_Cyndaquil[]; extern const u8 gMonPalette_Cyndaquil[]; extern const u8 gMonBackPic_Cyndaquil[]; extern const u8 gMonShinyPalette_Cyndaquil[]; +extern const u8 gMonStillFrontPic_Cyndaquil[]; extern const u8 gMonIcon_Cyndaquil[]; extern const u8 gMonFootprint_Cyndaquil[]; extern const u8 gMonFrontPic_Quilava[]; extern const u8 gMonPalette_Quilava[]; extern const u8 gMonBackPic_Quilava[]; extern const u8 gMonShinyPalette_Quilava[]; +extern const u8 gMonStillFrontPic_Quilava[]; extern const u8 gMonIcon_Quilava[]; extern const u8 gMonFootprint_Quilava[]; extern const u8 gMonFrontPic_Typhlosion[]; extern const u8 gMonPalette_Typhlosion[]; extern const u8 gMonBackPic_Typhlosion[]; extern const u8 gMonShinyPalette_Typhlosion[]; +extern const u8 gMonStillFrontPic_Typhlosion[]; extern const u8 gMonIcon_Typhlosion[]; extern const u8 gMonFootprint_Typhlosion[]; extern const u8 gMonFrontPic_Totodile[]; extern const u8 gMonPalette_Totodile[]; extern const u8 gMonBackPic_Totodile[]; extern const u8 gMonShinyPalette_Totodile[]; +extern const u8 gMonStillFrontPic_Totodile[]; extern const u8 gMonIcon_Totodile[]; extern const u8 gMonFootprint_Totodile[]; extern const u8 gMonFrontPic_Croconaw[]; extern const u8 gMonPalette_Croconaw[]; extern const u8 gMonBackPic_Croconaw[]; extern const u8 gMonShinyPalette_Croconaw[]; +extern const u8 gMonStillFrontPic_Croconaw[]; extern const u8 gMonIcon_Croconaw[]; extern const u8 gMonFootprint_Croconaw[]; extern const u8 gMonFrontPic_Feraligatr[]; extern const u8 gMonPalette_Feraligatr[]; extern const u8 gMonBackPic_Feraligatr[]; extern const u8 gMonShinyPalette_Feraligatr[]; +extern const u8 gMonStillFrontPic_Feraligatr[]; extern const u8 gMonIcon_Feraligatr[]; extern const u8 gMonFootprint_Feraligatr[]; extern const u8 gMonFrontPic_Sentret[]; extern const u8 gMonPalette_Sentret[]; extern const u8 gMonBackPic_Sentret[]; extern const u8 gMonShinyPalette_Sentret[]; +extern const u8 gMonStillFrontPic_Sentret[]; extern const u8 gMonIcon_Sentret[]; extern const u8 gMonFootprint_Sentret[]; extern const u8 gMonFrontPic_Furret[]; extern const u8 gMonPalette_Furret[]; extern const u8 gMonBackPic_Furret[]; extern const u8 gMonShinyPalette_Furret[]; +extern const u8 gMonStillFrontPic_Furret[]; extern const u8 gMonIcon_Furret[]; extern const u8 gMonFootprint_Furret[]; extern const u8 gMonFrontPic_Hoothoot[]; extern const u8 gMonPalette_Hoothoot[]; extern const u8 gMonBackPic_Hoothoot[]; extern const u8 gMonShinyPalette_Hoothoot[]; +extern const u8 gMonStillFrontPic_Hoothoot[]; extern const u8 gMonIcon_Hoothoot[]; extern const u8 gMonFootprint_Hoothoot[]; extern const u8 gMonFrontPic_Noctowl[]; extern const u8 gMonPalette_Noctowl[]; extern const u8 gMonBackPic_Noctowl[]; extern const u8 gMonShinyPalette_Noctowl[]; +extern const u8 gMonStillFrontPic_Noctowl[]; extern const u8 gMonIcon_Noctowl[]; extern const u8 gMonFootprint_Noctowl[]; extern const u8 gMonFrontPic_Ledyba[]; extern const u8 gMonPalette_Ledyba[]; extern const u8 gMonBackPic_Ledyba[]; extern const u8 gMonShinyPalette_Ledyba[]; +extern const u8 gMonStillFrontPic_Ledyba[]; extern const u8 gMonIcon_Ledyba[]; extern const u8 gMonFootprint_Ledyba[]; extern const u8 gMonFrontPic_Ledian[]; extern const u8 gMonPalette_Ledian[]; extern const u8 gMonBackPic_Ledian[]; extern const u8 gMonShinyPalette_Ledian[]; +extern const u8 gMonStillFrontPic_Ledian[]; extern const u8 gMonIcon_Ledian[]; extern const u8 gMonFootprint_Ledian[]; extern const u8 gMonFrontPic_Spinarak[]; extern const u8 gMonPalette_Spinarak[]; extern const u8 gMonBackPic_Spinarak[]; extern const u8 gMonShinyPalette_Spinarak[]; +extern const u8 gMonStillFrontPic_Spinarak[]; extern const u8 gMonIcon_Spinarak[]; extern const u8 gMonFootprint_Spinarak[]; extern const u8 gMonFrontPic_Ariados[]; extern const u8 gMonPalette_Ariados[]; extern const u8 gMonBackPic_Ariados[]; extern const u8 gMonShinyPalette_Ariados[]; +extern const u8 gMonStillFrontPic_Ariados[]; extern const u8 gMonIcon_Ariados[]; extern const u8 gMonFootprint_Ariados[]; extern const u8 gMonFrontPic_Crobat[]; extern const u8 gMonPalette_Crobat[]; extern const u8 gMonBackPic_Crobat[]; extern const u8 gMonShinyPalette_Crobat[]; +extern const u8 gMonStillFrontPic_Crobat[]; extern const u8 gMonIcon_Crobat[]; extern const u8 gMonFootprint_Crobat[]; extern const u8 gMonFrontPic_Chinchou[]; extern const u8 gMonPalette_Chinchou[]; extern const u8 gMonBackPic_Chinchou[]; extern const u8 gMonShinyPalette_Chinchou[]; +extern const u8 gMonStillFrontPic_Chinchou[]; extern const u8 gMonIcon_Chinchou[]; extern const u8 gMonFootprint_Chinchou[]; extern const u8 gMonFrontPic_Lanturn[]; extern const u8 gMonPalette_Lanturn[]; extern const u8 gMonBackPic_Lanturn[]; extern const u8 gMonShinyPalette_Lanturn[]; +extern const u8 gMonStillFrontPic_Lanturn[]; extern const u8 gMonIcon_Lanturn[]; extern const u8 gMonFootprint_Lanturn[]; extern const u8 gMonFrontPic_Pichu[]; extern const u8 gMonPalette_Pichu[]; extern const u8 gMonBackPic_Pichu[]; extern const u8 gMonShinyPalette_Pichu[]; +extern const u8 gMonStillFrontPic_Pichu[]; extern const u8 gMonIcon_Pichu[]; extern const u8 gMonFootprint_Pichu[]; extern const u8 gMonFrontPic_Cleffa[]; extern const u8 gMonPalette_Cleffa[]; extern const u8 gMonBackPic_Cleffa[]; extern const u8 gMonShinyPalette_Cleffa[]; +extern const u8 gMonStillFrontPic_Cleffa[]; extern const u8 gMonIcon_Cleffa[]; extern const u8 gMonFootprint_Cleffa[]; extern const u8 gMonFrontPic_Igglybuff[]; extern const u8 gMonPalette_Igglybuff[]; extern const u8 gMonBackPic_Igglybuff[]; extern const u8 gMonShinyPalette_Igglybuff[]; +extern const u8 gMonStillFrontPic_Igglybuff[]; extern const u8 gMonIcon_Igglybuff[]; extern const u8 gMonFootprint_Igglybuff[]; extern const u8 gMonFrontPic_Togepi[]; extern const u8 gMonPalette_Togepi[]; extern const u8 gMonBackPic_Togepi[]; extern const u8 gMonShinyPalette_Togepi[]; +extern const u8 gMonStillFrontPic_Togepi[]; extern const u8 gMonIcon_Togepi[]; extern const u8 gMonFootprint_Togepi[]; extern const u8 gMonFrontPic_Togetic[]; extern const u8 gMonPalette_Togetic[]; extern const u8 gMonBackPic_Togetic[]; extern const u8 gMonShinyPalette_Togetic[]; +extern const u8 gMonStillFrontPic_Togetic[]; extern const u8 gMonIcon_Togetic[]; extern const u8 gMonFootprint_Togetic[]; extern const u8 gMonFrontPic_Natu[]; extern const u8 gMonPalette_Natu[]; extern const u8 gMonBackPic_Natu[]; extern const u8 gMonShinyPalette_Natu[]; +extern const u8 gMonStillFrontPic_Natu[]; extern const u8 gMonIcon_Natu[]; extern const u8 gMonFootprint_Natu[]; extern const u8 gMonFrontPic_Xatu[]; extern const u8 gMonPalette_Xatu[]; extern const u8 gMonBackPic_Xatu[]; extern const u8 gMonShinyPalette_Xatu[]; +extern const u8 gMonStillFrontPic_Xatu[]; extern const u8 gMonIcon_Xatu[]; extern const u8 gMonFootprint_Xatu[]; extern const u8 gMonFrontPic_Mareep[]; extern const u8 gMonPalette_Mareep[]; extern const u8 gMonBackPic_Mareep[]; extern const u8 gMonShinyPalette_Mareep[]; +extern const u8 gMonStillFrontPic_Mareep[]; extern const u8 gMonIcon_Mareep[]; extern const u8 gMonFootprint_Mareep[]; extern const u8 gMonFrontPic_Flaaffy[]; extern const u8 gMonPalette_Flaaffy[]; extern const u8 gMonBackPic_Flaaffy[]; extern const u8 gMonShinyPalette_Flaaffy[]; +extern const u8 gMonStillFrontPic_Flaaffy[]; extern const u8 gMonIcon_Flaaffy[]; extern const u8 gMonFootprint_Flaaffy[]; extern const u8 gMonFrontPic_Ampharos[]; extern const u8 gMonPalette_Ampharos[]; extern const u8 gMonBackPic_Ampharos[]; extern const u8 gMonShinyPalette_Ampharos[]; +extern const u8 gMonStillFrontPic_Ampharos[]; extern const u8 gMonIcon_Ampharos[]; extern const u8 gMonFootprint_Ampharos[]; extern const u8 gMonFrontPic_Bellossom[]; extern const u8 gMonPalette_Bellossom[]; extern const u8 gMonBackPic_Bellossom[]; extern const u8 gMonShinyPalette_Bellossom[]; +extern const u8 gMonStillFrontPic_Bellossom[]; extern const u8 gMonIcon_Bellossom[]; extern const u8 gMonFootprint_Bellossom[]; extern const u8 gMonFrontPic_Marill[]; extern const u8 gMonPalette_Marill[]; extern const u8 gMonBackPic_Marill[]; extern const u8 gMonShinyPalette_Marill[]; +extern const u8 gMonStillFrontPic_Marill[]; extern const u8 gMonIcon_Marill[]; extern const u8 gMonFootprint_Marill[]; extern const u8 gMonFrontPic_Azumarill[]; extern const u8 gMonPalette_Azumarill[]; extern const u8 gMonBackPic_Azumarill[]; extern const u8 gMonShinyPalette_Azumarill[]; +extern const u8 gMonStillFrontPic_Azumarill[]; extern const u8 gMonIcon_Azumarill[]; extern const u8 gMonFootprint_Azumarill[]; extern const u8 gMonFrontPic_Sudowoodo[]; extern const u8 gMonPalette_Sudowoodo[]; extern const u8 gMonBackPic_Sudowoodo[]; extern const u8 gMonShinyPalette_Sudowoodo[]; +extern const u8 gMonStillFrontPic_Sudowoodo[]; extern const u8 gMonIcon_Sudowoodo[]; extern const u8 gMonFootprint_Sudowoodo[]; extern const u8 gMonFrontPic_Politoed[]; extern const u8 gMonPalette_Politoed[]; extern const u8 gMonBackPic_Politoed[]; extern const u8 gMonShinyPalette_Politoed[]; +extern const u8 gMonStillFrontPic_Politoed[]; extern const u8 gMonIcon_Politoed[]; extern const u8 gMonFootprint_Politoed[]; extern const u8 gMonFrontPic_Hoppip[]; extern const u8 gMonPalette_Hoppip[]; extern const u8 gMonBackPic_Hoppip[]; extern const u8 gMonShinyPalette_Hoppip[]; +extern const u8 gMonStillFrontPic_Hoppip[]; extern const u8 gMonIcon_Hoppip[]; extern const u8 gMonFootprint_Hoppip[]; extern const u8 gMonFrontPic_Skiploom[]; extern const u8 gMonPalette_Skiploom[]; extern const u8 gMonBackPic_Skiploom[]; extern const u8 gMonShinyPalette_Skiploom[]; +extern const u8 gMonStillFrontPic_Skiploom[]; extern const u8 gMonIcon_Skiploom[]; extern const u8 gMonFootprint_Skiploom[]; extern const u8 gMonFrontPic_Jumpluff[]; extern const u8 gMonPalette_Jumpluff[]; extern const u8 gMonBackPic_Jumpluff[]; extern const u8 gMonShinyPalette_Jumpluff[]; +extern const u8 gMonStillFrontPic_Jumpluff[]; extern const u8 gMonIcon_Jumpluff[]; extern const u8 gMonFootprint_Jumpluff[]; extern const u8 gMonFrontPic_Aipom[]; extern const u8 gMonPalette_Aipom[]; extern const u8 gMonBackPic_Aipom[]; extern const u8 gMonShinyPalette_Aipom[]; +extern const u8 gMonStillFrontPic_Aipom[]; extern const u8 gMonIcon_Aipom[]; extern const u8 gMonFootprint_Aipom[]; extern const u8 gMonFrontPic_Sunkern[]; extern const u8 gMonPalette_Sunkern[]; extern const u8 gMonBackPic_Sunkern[]; extern const u8 gMonShinyPalette_Sunkern[]; +extern const u8 gMonStillFrontPic_Sunkern[]; extern const u8 gMonIcon_Sunkern[]; extern const u8 gMonFootprint_Sunkern[]; extern const u8 gMonFrontPic_Sunflora[]; extern const u8 gMonPalette_Sunflora[]; extern const u8 gMonBackPic_Sunflora[]; extern const u8 gMonShinyPalette_Sunflora[]; +extern const u8 gMonStillFrontPic_Sunflora[]; extern const u8 gMonIcon_Sunflora[]; extern const u8 gMonFootprint_Sunflora[]; extern const u8 gMonFrontPic_Yanma[]; extern const u8 gMonPalette_Yanma[]; extern const u8 gMonBackPic_Yanma[]; extern const u8 gMonShinyPalette_Yanma[]; +extern const u8 gMonStillFrontPic_Yanma[]; extern const u8 gMonIcon_Yanma[]; extern const u8 gMonFootprint_Yanma[]; extern const u8 gMonFrontPic_Wooper[]; extern const u8 gMonPalette_Wooper[]; extern const u8 gMonBackPic_Wooper[]; extern const u8 gMonShinyPalette_Wooper[]; +extern const u8 gMonStillFrontPic_Wooper[]; extern const u8 gMonIcon_Wooper[]; extern const u8 gMonFootprint_Wooper[]; extern const u8 gMonFrontPic_Quagsire[]; extern const u8 gMonPalette_Quagsire[]; extern const u8 gMonBackPic_Quagsire[]; extern const u8 gMonShinyPalette_Quagsire[]; +extern const u8 gMonStillFrontPic_Quagsire[]; extern const u8 gMonIcon_Quagsire[]; extern const u8 gMonFootprint_Quagsire[]; extern const u8 gMonFrontPic_Espeon[]; extern const u8 gMonPalette_Espeon[]; extern const u8 gMonBackPic_Espeon[]; extern const u8 gMonShinyPalette_Espeon[]; +extern const u8 gMonStillFrontPic_Espeon[]; extern const u8 gMonIcon_Espeon[]; extern const u8 gMonFootprint_Espeon[]; extern const u8 gMonFrontPic_Umbreon[]; extern const u8 gMonPalette_Umbreon[]; extern const u8 gMonBackPic_Umbreon[]; extern const u8 gMonShinyPalette_Umbreon[]; +extern const u8 gMonStillFrontPic_Umbreon[]; extern const u8 gMonIcon_Umbreon[]; extern const u8 gMonFootprint_Umbreon[]; extern const u8 gMonFrontPic_Murkrow[]; extern const u8 gMonPalette_Murkrow[]; extern const u8 gMonBackPic_Murkrow[]; extern const u8 gMonShinyPalette_Murkrow[]; +extern const u8 gMonStillFrontPic_Murkrow[]; extern const u8 gMonIcon_Murkrow[]; extern const u8 gMonFootprint_Murkrow[]; extern const u8 gMonFrontPic_Slowking[]; extern const u8 gMonPalette_Slowking[]; extern const u8 gMonBackPic_Slowking[]; extern const u8 gMonShinyPalette_Slowking[]; +extern const u8 gMonStillFrontPic_Slowking[]; extern const u8 gMonIcon_Slowking[]; extern const u8 gMonFootprint_Slowking[]; extern const u8 gMonFrontPic_Misdreavus[]; extern const u8 gMonPalette_Misdreavus[]; extern const u8 gMonBackPic_Misdreavus[]; extern const u8 gMonShinyPalette_Misdreavus[]; +extern const u8 gMonStillFrontPic_Misdreavus[]; extern const u8 gMonIcon_Misdreavus[]; extern const u8 gMonFootprint_Misdreavus[]; extern const u8 gMonFrontPic_UnownA[]; extern const u8 gMonPalette_Unown[]; extern const u8 gMonBackPic_UnownA[]; extern const u8 gMonShinyPalette_Unown[]; +extern const u8 gMonStillFrontPic_UnownA[]; extern const u8 gMonIcon_UnownA[]; extern const u8 gMonFootprint_Unown[]; extern const u8 gMonFrontPic_Wobbuffet[]; extern const u8 gMonPalette_Wobbuffet[]; extern const u8 gMonBackPic_Wobbuffet[]; extern const u8 gMonShinyPalette_Wobbuffet[]; +extern const u8 gMonStillFrontPic_Wobbuffet[]; extern const u8 gMonIcon_Wobbuffet[]; extern const u8 gMonFootprint_Wobbuffet[]; extern const u8 gMonFrontPic_Girafarig[]; extern const u8 gMonPalette_Girafarig[]; extern const u8 gMonBackPic_Girafarig[]; extern const u8 gMonShinyPalette_Girafarig[]; +extern const u8 gMonStillFrontPic_Girafarig[]; extern const u8 gMonIcon_Girafarig[]; extern const u8 gMonFootprint_Girafarig[]; extern const u8 gMonFrontPic_Pineco[]; extern const u8 gMonPalette_Pineco[]; extern const u8 gMonBackPic_Pineco[]; extern const u8 gMonShinyPalette_Pineco[]; +extern const u8 gMonStillFrontPic_Pineco[]; extern const u8 gMonIcon_Pineco[]; extern const u8 gMonFootprint_Pineco[]; extern const u8 gMonFrontPic_Forretress[]; extern const u8 gMonPalette_Forretress[]; extern const u8 gMonBackPic_Forretress[]; extern const u8 gMonShinyPalette_Forretress[]; +extern const u8 gMonStillFrontPic_Forretress[]; extern const u8 gMonIcon_Forretress[]; extern const u8 gMonFootprint_Forretress[]; extern const u8 gMonFrontPic_Dunsparce[]; extern const u8 gMonPalette_Dunsparce[]; extern const u8 gMonBackPic_Dunsparce[]; extern const u8 gMonShinyPalette_Dunsparce[]; +extern const u8 gMonStillFrontPic_Dunsparce[]; extern const u8 gMonIcon_Dunsparce[]; extern const u8 gMonFootprint_Dunsparce[]; extern const u8 gMonFrontPic_Gligar[]; extern const u8 gMonPalette_Gligar[]; extern const u8 gMonBackPic_Gligar[]; extern const u8 gMonShinyPalette_Gligar[]; +extern const u8 gMonStillFrontPic_Gligar[]; extern const u8 gMonIcon_Gligar[]; extern const u8 gMonFootprint_Gligar[]; extern const u8 gMonFrontPic_Steelix[]; extern const u8 gMonPalette_Steelix[]; extern const u8 gMonBackPic_Steelix[]; extern const u8 gMonShinyPalette_Steelix[]; +extern const u8 gMonStillFrontPic_Steelix[]; extern const u8 gMonIcon_Steelix[]; extern const u8 gMonFootprint_Steelix[]; extern const u8 gMonFrontPic_Snubbull[]; extern const u8 gMonPalette_Snubbull[]; extern const u8 gMonBackPic_Snubbull[]; extern const u8 gMonShinyPalette_Snubbull[]; +extern const u8 gMonStillFrontPic_Snubbull[]; extern const u8 gMonIcon_Snubbull[]; extern const u8 gMonFootprint_Snubbull[]; extern const u8 gMonFrontPic_Granbull[]; extern const u8 gMonPalette_Granbull[]; extern const u8 gMonBackPic_Granbull[]; extern const u8 gMonShinyPalette_Granbull[]; +extern const u8 gMonStillFrontPic_Granbull[]; extern const u8 gMonIcon_Granbull[]; extern const u8 gMonFootprint_Granbull[]; extern const u8 gMonFrontPic_Qwilfish[]; extern const u8 gMonPalette_Qwilfish[]; extern const u8 gMonBackPic_Qwilfish[]; extern const u8 gMonShinyPalette_Qwilfish[]; +extern const u8 gMonStillFrontPic_Qwilfish[]; extern const u8 gMonIcon_Qwilfish[]; extern const u8 gMonFootprint_Qwilfish[]; extern const u8 gMonFrontPic_Scizor[]; extern const u8 gMonPalette_Scizor[]; extern const u8 gMonBackPic_Scizor[]; extern const u8 gMonShinyPalette_Scizor[]; +extern const u8 gMonStillFrontPic_Scizor[]; extern const u8 gMonIcon_Scizor[]; extern const u8 gMonFootprint_Scizor[]; extern const u8 gMonFrontPic_Shuckle[]; extern const u8 gMonPalette_Shuckle[]; extern const u8 gMonBackPic_Shuckle[]; extern const u8 gMonShinyPalette_Shuckle[]; +extern const u8 gMonStillFrontPic_Shuckle[]; extern const u8 gMonIcon_Shuckle[]; extern const u8 gMonFootprint_Shuckle[]; extern const u8 gMonFrontPic_Heracross[]; extern const u8 gMonPalette_Heracross[]; extern const u8 gMonBackPic_Heracross[]; extern const u8 gMonShinyPalette_Heracross[]; +extern const u8 gMonStillFrontPic_Heracross[]; extern const u8 gMonIcon_Heracross[]; extern const u8 gMonFootprint_Heracross[]; extern const u8 gMonFrontPic_Sneasel[]; extern const u8 gMonPalette_Sneasel[]; extern const u8 gMonBackPic_Sneasel[]; extern const u8 gMonShinyPalette_Sneasel[]; +extern const u8 gMonStillFrontPic_Sneasel[]; extern const u8 gMonIcon_Sneasel[]; extern const u8 gMonFootprint_Sneasel[]; extern const u8 gMonFrontPic_Teddiursa[]; extern const u8 gMonPalette_Teddiursa[]; extern const u8 gMonBackPic_Teddiursa[]; extern const u8 gMonShinyPalette_Teddiursa[]; +extern const u8 gMonStillFrontPic_Teddiursa[]; extern const u8 gMonIcon_Teddiursa[]; extern const u8 gMonFootprint_Teddiursa[]; extern const u8 gMonFrontPic_Ursaring[]; extern const u8 gMonPalette_Ursaring[]; extern const u8 gMonBackPic_Ursaring[]; extern const u8 gMonShinyPalette_Ursaring[]; +extern const u8 gMonStillFrontPic_Ursaring[]; extern const u8 gMonIcon_Ursaring[]; extern const u8 gMonFootprint_Ursaring[]; extern const u8 gMonFrontPic_Slugma[]; extern const u8 gMonPalette_Slugma[]; extern const u8 gMonBackPic_Slugma[]; extern const u8 gMonShinyPalette_Slugma[]; +extern const u8 gMonStillFrontPic_Slugma[]; extern const u8 gMonIcon_Slugma[]; extern const u8 gMonFootprint_Slugma[]; extern const u8 gMonFrontPic_Magcargo[]; extern const u8 gMonPalette_Magcargo[]; extern const u8 gMonBackPic_Magcargo[]; extern const u8 gMonShinyPalette_Magcargo[]; +extern const u8 gMonStillFrontPic_Magcargo[]; extern const u8 gMonIcon_Magcargo[]; extern const u8 gMonFootprint_Magcargo[]; extern const u8 gMonFrontPic_Swinub[]; extern const u8 gMonPalette_Swinub[]; extern const u8 gMonBackPic_Swinub[]; extern const u8 gMonShinyPalette_Swinub[]; +extern const u8 gMonStillFrontPic_Swinub[]; extern const u8 gMonIcon_Swinub[]; extern const u8 gMonFootprint_Swinub[]; extern const u8 gMonFrontPic_Piloswine[]; extern const u8 gMonPalette_Piloswine[]; extern const u8 gMonBackPic_Piloswine[]; extern const u8 gMonShinyPalette_Piloswine[]; +extern const u8 gMonStillFrontPic_Piloswine[]; extern const u8 gMonIcon_Piloswine[]; extern const u8 gMonFootprint_Piloswine[]; extern const u8 gMonFrontPic_Corsola[]; extern const u8 gMonPalette_Corsola[]; extern const u8 gMonBackPic_Corsola[]; extern const u8 gMonShinyPalette_Corsola[]; +extern const u8 gMonStillFrontPic_Corsola[]; extern const u8 gMonIcon_Corsola[]; extern const u8 gMonFootprint_Corsola[]; extern const u8 gMonFrontPic_Remoraid[]; extern const u8 gMonPalette_Remoraid[]; extern const u8 gMonBackPic_Remoraid[]; extern const u8 gMonShinyPalette_Remoraid[]; +extern const u8 gMonStillFrontPic_Remoraid[]; extern const u8 gMonIcon_Remoraid[]; extern const u8 gMonFootprint_Remoraid[]; extern const u8 gMonFrontPic_Octillery[]; extern const u8 gMonPalette_Octillery[]; extern const u8 gMonBackPic_Octillery[]; extern const u8 gMonShinyPalette_Octillery[]; +extern const u8 gMonStillFrontPic_Octillery[]; extern const u8 gMonIcon_Octillery[]; extern const u8 gMonFootprint_Octillery[]; extern const u8 gMonFrontPic_Delibird[]; extern const u8 gMonPalette_Delibird[]; extern const u8 gMonBackPic_Delibird[]; extern const u8 gMonShinyPalette_Delibird[]; +extern const u8 gMonStillFrontPic_Delibird[]; extern const u8 gMonIcon_Delibird[]; extern const u8 gMonFootprint_Delibird[]; extern const u8 gMonFrontPic_Mantine[]; extern const u8 gMonPalette_Mantine[]; extern const u8 gMonBackPic_Mantine[]; extern const u8 gMonShinyPalette_Mantine[]; +extern const u8 gMonStillFrontPic_Mantine[]; extern const u8 gMonIcon_Mantine[]; extern const u8 gMonFootprint_Mantine[]; extern const u8 gMonFrontPic_Skarmory[]; extern const u8 gMonPalette_Skarmory[]; extern const u8 gMonBackPic_Skarmory[]; extern const u8 gMonShinyPalette_Skarmory[]; +extern const u8 gMonStillFrontPic_Skarmory[]; extern const u8 gMonIcon_Skarmory[]; extern const u8 gMonFootprint_Skarmory[]; extern const u8 gMonFrontPic_Houndour[]; extern const u8 gMonPalette_Houndour[]; extern const u8 gMonBackPic_Houndour[]; extern const u8 gMonShinyPalette_Houndour[]; +extern const u8 gMonStillFrontPic_Houndour[]; extern const u8 gMonIcon_Houndour[]; extern const u8 gMonFootprint_Houndour[]; extern const u8 gMonFrontPic_Houndoom[]; extern const u8 gMonPalette_Houndoom[]; extern const u8 gMonBackPic_Houndoom[]; extern const u8 gMonShinyPalette_Houndoom[]; +extern const u8 gMonStillFrontPic_Houndoom[]; extern const u8 gMonIcon_Houndoom[]; extern const u8 gMonFootprint_Houndoom[]; extern const u8 gMonFrontPic_Kingdra[]; extern const u8 gMonPalette_Kingdra[]; extern const u8 gMonBackPic_Kingdra[]; extern const u8 gMonShinyPalette_Kingdra[]; +extern const u8 gMonStillFrontPic_Kingdra[]; extern const u8 gMonIcon_Kingdra[]; extern const u8 gMonFootprint_Kingdra[]; extern const u8 gMonFrontPic_Phanpy[]; extern const u8 gMonPalette_Phanpy[]; extern const u8 gMonBackPic_Phanpy[]; extern const u8 gMonShinyPalette_Phanpy[]; +extern const u8 gMonStillFrontPic_Phanpy[]; extern const u8 gMonIcon_Phanpy[]; extern const u8 gMonFootprint_Phanpy[]; extern const u8 gMonFrontPic_Donphan[]; extern const u8 gMonPalette_Donphan[]; extern const u8 gMonBackPic_Donphan[]; extern const u8 gMonShinyPalette_Donphan[]; +extern const u8 gMonStillFrontPic_Donphan[]; extern const u8 gMonIcon_Donphan[]; extern const u8 gMonFootprint_Donphan[]; extern const u8 gMonFrontPic_Porygon2[]; extern const u8 gMonPalette_Porygon2[]; extern const u8 gMonBackPic_Porygon2[]; extern const u8 gMonShinyPalette_Porygon2[]; +extern const u8 gMonStillFrontPic_Porygon2[]; extern const u8 gMonIcon_Porygon2[]; extern const u8 gMonFootprint_Porygon2[]; extern const u8 gMonFrontPic_Stantler[]; extern const u8 gMonPalette_Stantler[]; extern const u8 gMonBackPic_Stantler[]; extern const u8 gMonShinyPalette_Stantler[]; +extern const u8 gMonStillFrontPic_Stantler[]; extern const u8 gMonIcon_Stantler[]; extern const u8 gMonFootprint_Stantler[]; extern const u8 gMonFrontPic_Smeargle[]; extern const u8 gMonPalette_Smeargle[]; extern const u8 gMonBackPic_Smeargle[]; extern const u8 gMonShinyPalette_Smeargle[]; +extern const u8 gMonStillFrontPic_Smeargle[]; extern const u8 gMonIcon_Smeargle[]; extern const u8 gMonFootprint_Smeargle[]; extern const u8 gMonFrontPic_Tyrogue[]; extern const u8 gMonPalette_Tyrogue[]; extern const u8 gMonBackPic_Tyrogue[]; extern const u8 gMonShinyPalette_Tyrogue[]; +extern const u8 gMonStillFrontPic_Tyrogue[]; extern const u8 gMonIcon_Tyrogue[]; extern const u8 gMonFootprint_Tyrogue[]; extern const u8 gMonFrontPic_Hitmontop[]; extern const u8 gMonPalette_Hitmontop[]; extern const u8 gMonBackPic_Hitmontop[]; extern const u8 gMonShinyPalette_Hitmontop[]; +extern const u8 gMonStillFrontPic_Hitmontop[]; extern const u8 gMonIcon_Hitmontop[]; extern const u8 gMonFootprint_Hitmontop[]; extern const u8 gMonFrontPic_Smoochum[]; extern const u8 gMonPalette_Smoochum[]; extern const u8 gMonBackPic_Smoochum[]; extern const u8 gMonShinyPalette_Smoochum[]; +extern const u8 gMonStillFrontPic_Smoochum[]; extern const u8 gMonIcon_Smoochum[]; extern const u8 gMonFootprint_Smoochum[]; extern const u8 gMonFrontPic_Elekid[]; extern const u8 gMonPalette_Elekid[]; extern const u8 gMonBackPic_Elekid[]; extern const u8 gMonShinyPalette_Elekid[]; +extern const u8 gMonStillFrontPic_Elekid[]; extern const u8 gMonIcon_Elekid[]; extern const u8 gMonFootprint_Elekid[]; extern const u8 gMonFrontPic_Magby[]; extern const u8 gMonPalette_Magby[]; extern const u8 gMonBackPic_Magby[]; extern const u8 gMonShinyPalette_Magby[]; +extern const u8 gMonStillFrontPic_Magby[]; extern const u8 gMonIcon_Magby[]; extern const u8 gMonFootprint_Magby[]; extern const u8 gMonFrontPic_Miltank[]; extern const u8 gMonPalette_Miltank[]; extern const u8 gMonBackPic_Miltank[]; extern const u8 gMonShinyPalette_Miltank[]; +extern const u8 gMonStillFrontPic_Miltank[]; extern const u8 gMonIcon_Miltank[]; extern const u8 gMonFootprint_Miltank[]; extern const u8 gMonFrontPic_Blissey[]; extern const u8 gMonPalette_Blissey[]; extern const u8 gMonBackPic_Blissey[]; extern const u8 gMonShinyPalette_Blissey[]; +extern const u8 gMonStillFrontPic_Blissey[]; extern const u8 gMonIcon_Blissey[]; extern const u8 gMonFootprint_Blissey[]; extern const u8 gMonFrontPic_Raikou[]; extern const u8 gMonPalette_Raikou[]; extern const u8 gMonBackPic_Raikou[]; extern const u8 gMonShinyPalette_Raikou[]; +extern const u8 gMonStillFrontPic_Raikou[]; extern const u8 gMonIcon_Raikou[]; extern const u8 gMonFootprint_Raikou[]; extern const u8 gMonFrontPic_Entei[]; extern const u8 gMonPalette_Entei[]; extern const u8 gMonBackPic_Entei[]; extern const u8 gMonShinyPalette_Entei[]; +extern const u8 gMonStillFrontPic_Entei[]; extern const u8 gMonIcon_Entei[]; extern const u8 gMonFootprint_Entei[]; extern const u8 gMonFrontPic_Suicune[]; extern const u8 gMonPalette_Suicune[]; extern const u8 gMonBackPic_Suicune[]; extern const u8 gMonShinyPalette_Suicune[]; +extern const u8 gMonStillFrontPic_Suicune[]; extern const u8 gMonIcon_Suicune[]; extern const u8 gMonFootprint_Suicune[]; extern const u8 gMonFrontPic_Larvitar[]; extern const u8 gMonPalette_Larvitar[]; extern const u8 gMonBackPic_Larvitar[]; extern const u8 gMonShinyPalette_Larvitar[]; +extern const u8 gMonStillFrontPic_Larvitar[]; extern const u8 gMonIcon_Larvitar[]; extern const u8 gMonFootprint_Larvitar[]; extern const u8 gMonFrontPic_Pupitar[]; extern const u8 gMonPalette_Pupitar[]; extern const u8 gMonBackPic_Pupitar[]; extern const u8 gMonShinyPalette_Pupitar[]; +extern const u8 gMonStillFrontPic_Pupitar[]; extern const u8 gMonIcon_Pupitar[]; extern const u8 gMonFootprint_Pupitar[]; extern const u8 gMonFrontPic_Tyranitar[]; extern const u8 gMonPalette_Tyranitar[]; extern const u8 gMonBackPic_Tyranitar[]; extern const u8 gMonShinyPalette_Tyranitar[]; +extern const u8 gMonStillFrontPic_Tyranitar[]; extern const u8 gMonIcon_Tyranitar[]; extern const u8 gMonFootprint_Tyranitar[]; extern const u8 gMonFrontPic_Lugia[]; extern const u8 gMonPalette_Lugia[]; extern const u8 gMonBackPic_Lugia[]; extern const u8 gMonShinyPalette_Lugia[]; +extern const u8 gMonStillFrontPic_Lugia[]; extern const u8 gMonIcon_Lugia[]; extern const u8 gMonFootprint_Lugia[]; extern const u8 gMonFrontPic_HoOh[]; extern const u8 gMonPalette_HoOh[]; extern const u8 gMonBackPic_HoOh[]; extern const u8 gMonShinyPalette_HoOh[]; +extern const u8 gMonStillFrontPic_HoOh[]; extern const u8 gMonIcon_HoOh[]; extern const u8 gMonFootprint_HoOh[]; extern const u8 gMonFrontPic_Celebi[]; extern const u8 gMonPalette_Celebi[]; extern const u8 gMonBackPic_Celebi[]; extern const u8 gMonShinyPalette_Celebi[]; +extern const u8 gMonStillFrontPic_Celebi[]; extern const u8 gMonIcon_Celebi[]; extern const u8 gMonFootprint_Celebi[]; extern const u8 gMonFrontPic_QuestionMark[]; @@ -1547,893 +1799,1058 @@ extern const u8 gMonFrontPic_Treecko[]; extern const u8 gMonPalette_Treecko[]; extern const u8 gMonBackPic_Treecko[]; extern const u8 gMonShinyPalette_Treecko[]; +extern const u8 gMonStillFrontPic_Treecko[]; extern const u8 gMonIcon_Treecko[]; extern const u8 gMonFootprint_Treecko[]; extern const u8 gMonFrontPic_Grovyle[]; extern const u8 gMonPalette_Grovyle[]; extern const u8 gMonBackPic_Grovyle[]; extern const u8 gMonShinyPalette_Grovyle[]; +extern const u8 gMonStillFrontPic_Grovyle[]; extern const u8 gMonIcon_Grovyle[]; extern const u8 gMonFootprint_Grovyle[]; extern const u8 gMonFrontPic_Sceptile[]; extern const u8 gMonPalette_Sceptile[]; extern const u8 gMonBackPic_Sceptile[]; extern const u8 gMonShinyPalette_Sceptile[]; +extern const u8 gMonStillFrontPic_Sceptile[]; extern const u8 gMonIcon_Sceptile[]; extern const u8 gMonFootprint_Sceptile[]; extern const u8 gMonFrontPic_Torchic[]; extern const u8 gMonPalette_Torchic[]; extern const u8 gMonBackPic_Torchic[]; extern const u8 gMonShinyPalette_Torchic[]; +extern const u8 gMonStillFrontPic_Torchic[]; extern const u8 gMonIcon_Torchic[]; extern const u8 gMonFootprint_Torchic[]; extern const u8 gMonFrontPic_Combusken[]; extern const u8 gMonPalette_Combusken[]; extern const u8 gMonBackPic_Combusken[]; extern const u8 gMonShinyPalette_Combusken[]; +extern const u8 gMonStillFrontPic_Combusken[]; extern const u8 gMonIcon_Combusken[]; extern const u8 gMonFootprint_Combusken[]; extern const u8 gMonFrontPic_Blaziken[]; extern const u8 gMonPalette_Blaziken[]; extern const u8 gMonBackPic_Blaziken[]; extern const u8 gMonShinyPalette_Blaziken[]; +extern const u8 gMonStillFrontPic_Blaziken[]; extern const u8 gMonIcon_Blaziken[]; extern const u8 gMonFootprint_Blaziken[]; extern const u8 gMonFrontPic_Mudkip[]; extern const u8 gMonPalette_Mudkip[]; extern const u8 gMonBackPic_Mudkip[]; extern const u8 gMonShinyPalette_Mudkip[]; +extern const u8 gMonStillFrontPic_Mudkip[]; extern const u8 gMonIcon_Mudkip[]; extern const u8 gMonFootprint_Mudkip[]; extern const u8 gMonFrontPic_Marshtomp[]; extern const u8 gMonPalette_Marshtomp[]; extern const u8 gMonBackPic_Marshtomp[]; extern const u8 gMonShinyPalette_Marshtomp[]; +extern const u8 gMonStillFrontPic_Marshtomp[]; extern const u8 gMonIcon_Marshtomp[]; extern const u8 gMonFootprint_Marshtomp[]; extern const u8 gMonFrontPic_Swampert[]; extern const u8 gMonPalette_Swampert[]; extern const u8 gMonBackPic_Swampert[]; extern const u8 gMonShinyPalette_Swampert[]; +extern const u8 gMonStillFrontPic_Swampert[]; extern const u8 gMonIcon_Swampert[]; extern const u8 gMonFootprint_Swampert[]; extern const u8 gMonFrontPic_Poochyena[]; extern const u8 gMonPalette_Poochyena[]; extern const u8 gMonBackPic_Poochyena[]; extern const u8 gMonShinyPalette_Poochyena[]; +extern const u8 gMonStillFrontPic_Poochyena[]; extern const u8 gMonIcon_Poochyena[]; extern const u8 gMonFootprint_Poochyena[]; extern const u8 gMonFrontPic_Mightyena[]; extern const u8 gMonPalette_Mightyena[]; extern const u8 gMonBackPic_Mightyena[]; extern const u8 gMonShinyPalette_Mightyena[]; +extern const u8 gMonStillFrontPic_Mightyena[]; extern const u8 gMonIcon_Mightyena[]; extern const u8 gMonFootprint_Mightyena[]; extern const u8 gMonFrontPic_Zigzagoon[]; extern const u8 gMonPalette_Zigzagoon[]; extern const u8 gMonBackPic_Zigzagoon[]; extern const u8 gMonShinyPalette_Zigzagoon[]; +extern const u8 gMonStillFrontPic_Zigzagoon[]; extern const u8 gMonIcon_Zigzagoon[]; extern const u8 gMonFootprint_Zigzagoon[]; extern const u8 gMonFrontPic_Linoone[]; extern const u8 gMonPalette_Linoone[]; extern const u8 gMonBackPic_Linoone[]; extern const u8 gMonShinyPalette_Linoone[]; +extern const u8 gMonStillFrontPic_Linoone[]; extern const u8 gMonIcon_Linoone[]; extern const u8 gMonFootprint_Linoone[]; extern const u8 gMonFrontPic_Wurmple[]; extern const u8 gMonPalette_Wurmple[]; extern const u8 gMonBackPic_Wurmple[]; extern const u8 gMonShinyPalette_Wurmple[]; +extern const u8 gMonStillFrontPic_Wurmple[]; extern const u8 gMonIcon_Wurmple[]; extern const u8 gMonFootprint_Wurmple[]; extern const u8 gMonFrontPic_Silcoon[]; extern const u8 gMonPalette_Silcoon[]; extern const u8 gMonBackPic_Silcoon[]; extern const u8 gMonShinyPalette_Silcoon[]; +extern const u8 gMonStillFrontPic_Silcoon[]; extern const u8 gMonIcon_Silcoon[]; extern const u8 gMonFootprint_Silcoon[]; extern const u8 gMonFrontPic_Beautifly[]; extern const u8 gMonPalette_Beautifly[]; extern const u8 gMonBackPic_Beautifly[]; extern const u8 gMonShinyPalette_Beautifly[]; +extern const u8 gMonStillFrontPic_Beautifly[]; extern const u8 gMonIcon_Beautifly[]; extern const u8 gMonFootprint_Beautifly[]; extern const u8 gMonFrontPic_Cascoon[]; extern const u8 gMonPalette_Cascoon[]; extern const u8 gMonBackPic_Cascoon[]; extern const u8 gMonShinyPalette_Cascoon[]; +extern const u8 gMonStillFrontPic_Cascoon[]; extern const u8 gMonIcon_Cascoon[]; extern const u8 gMonFootprint_Cascoon[]; extern const u8 gMonFrontPic_Dustox[]; extern const u8 gMonPalette_Dustox[]; extern const u8 gMonBackPic_Dustox[]; extern const u8 gMonShinyPalette_Dustox[]; +extern const u8 gMonStillFrontPic_Dustox[]; extern const u8 gMonIcon_Dustox[]; extern const u8 gMonFootprint_Dustox[]; extern const u8 gMonFrontPic_Lotad[]; extern const u8 gMonPalette_Lotad[]; extern const u8 gMonBackPic_Lotad[]; extern const u8 gMonShinyPalette_Lotad[]; +extern const u8 gMonStillFrontPic_Lotad[]; extern const u8 gMonIcon_Lotad[]; extern const u8 gMonFootprint_Lotad[]; extern const u8 gMonFrontPic_Lombre[]; extern const u8 gMonPalette_Lombre[]; extern const u8 gMonBackPic_Lombre[]; extern const u8 gMonShinyPalette_Lombre[]; +extern const u8 gMonStillFrontPic_Lombre[]; extern const u8 gMonIcon_Lombre[]; extern const u8 gMonFootprint_Lombre[]; extern const u8 gMonFrontPic_Ludicolo[]; extern const u8 gMonPalette_Ludicolo[]; extern const u8 gMonBackPic_Ludicolo[]; extern const u8 gMonShinyPalette_Ludicolo[]; +extern const u8 gMonStillFrontPic_Ludicolo[]; extern const u8 gMonIcon_Ludicolo[]; extern const u8 gMonFootprint_Ludicolo[]; extern const u8 gMonFrontPic_Seedot[]; extern const u8 gMonPalette_Seedot[]; extern const u8 gMonBackPic_Seedot[]; extern const u8 gMonShinyPalette_Seedot[]; +extern const u8 gMonStillFrontPic_Seedot[]; extern const u8 gMonIcon_Seedot[]; extern const u8 gMonFootprint_Seedot[]; extern const u8 gMonFrontPic_Nuzleaf[]; extern const u8 gMonPalette_Nuzleaf[]; extern const u8 gMonBackPic_Nuzleaf[]; extern const u8 gMonShinyPalette_Nuzleaf[]; +extern const u8 gMonStillFrontPic_Nuzleaf[]; extern const u8 gMonIcon_Nuzleaf[]; extern const u8 gMonFootprint_Nuzleaf[]; extern const u8 gMonFrontPic_Shiftry[]; extern const u8 gMonPalette_Shiftry[]; extern const u8 gMonBackPic_Shiftry[]; extern const u8 gMonShinyPalette_Shiftry[]; +extern const u8 gMonStillFrontPic_Shiftry[]; extern const u8 gMonIcon_Shiftry[]; extern const u8 gMonFootprint_Shiftry[]; extern const u8 gMonFrontPic_Nincada[]; extern const u8 gMonPalette_Nincada[]; extern const u8 gMonBackPic_Nincada[]; extern const u8 gMonShinyPalette_Nincada[]; +extern const u8 gMonStillFrontPic_Nincada[]; extern const u8 gMonIcon_Nincada[]; extern const u8 gMonFootprint_Nincada[]; extern const u8 gMonFrontPic_Ninjask[]; extern const u8 gMonPalette_Ninjask[]; extern const u8 gMonBackPic_Ninjask[]; extern const u8 gMonShinyPalette_Ninjask[]; +extern const u8 gMonStillFrontPic_Ninjask[]; extern const u8 gMonIcon_Ninjask[]; extern const u8 gMonFootprint_Ninjask[]; extern const u8 gMonFrontPic_Shedinja[]; extern const u8 gMonPalette_Shedinja[]; extern const u8 gMonBackPic_Shedinja[]; extern const u8 gMonShinyPalette_Shedinja[]; +extern const u8 gMonStillFrontPic_Shedinja[]; extern const u8 gMonIcon_Shedinja[]; extern const u8 gMonFootprint_Shedinja[]; extern const u8 gMonFrontPic_Taillow[]; extern const u8 gMonPalette_Taillow[]; extern const u8 gMonBackPic_Taillow[]; extern const u8 gMonShinyPalette_Taillow[]; +extern const u8 gMonStillFrontPic_Taillow[]; extern const u8 gMonIcon_Taillow[]; extern const u8 gMonFootprint_Taillow[]; extern const u8 gMonFrontPic_Swellow[]; extern const u8 gMonPalette_Swellow[]; extern const u8 gMonBackPic_Swellow[]; extern const u8 gMonShinyPalette_Swellow[]; +extern const u8 gMonStillFrontPic_Swellow[]; extern const u8 gMonIcon_Swellow[]; extern const u8 gMonFootprint_Swellow[]; extern const u8 gMonFrontPic_Shroomish[]; extern const u8 gMonPalette_Shroomish[]; extern const u8 gMonBackPic_Shroomish[]; extern const u8 gMonShinyPalette_Shroomish[]; +extern const u8 gMonStillFrontPic_Shroomish[]; extern const u8 gMonIcon_Shroomish[]; extern const u8 gMonFootprint_Shroomish[]; extern const u8 gMonFrontPic_Breloom[]; extern const u8 gMonPalette_Breloom[]; extern const u8 gMonBackPic_Breloom[]; extern const u8 gMonShinyPalette_Breloom[]; +extern const u8 gMonStillFrontPic_Breloom[]; extern const u8 gMonIcon_Breloom[]; extern const u8 gMonFootprint_Breloom[]; extern const u8 gMonFrontPic_Spinda[]; extern const u8 gMonPalette_Spinda[]; extern const u8 gMonBackPic_Spinda[]; extern const u8 gMonShinyPalette_Spinda[]; +extern const u8 gMonStillFrontPic_Spinda[]; extern const u8 gMonIcon_Spinda[]; extern const u8 gMonFootprint_Spinda[]; extern const u8 gMonFrontPic_Wingull[]; extern const u8 gMonPalette_Wingull[]; extern const u8 gMonBackPic_Wingull[]; extern const u8 gMonShinyPalette_Wingull[]; +extern const u8 gMonStillFrontPic_Wingull[]; extern const u8 gMonIcon_Wingull[]; extern const u8 gMonFootprint_Wingull[]; extern const u8 gMonFrontPic_Pelipper[]; extern const u8 gMonPalette_Pelipper[]; extern const u8 gMonBackPic_Pelipper[]; extern const u8 gMonShinyPalette_Pelipper[]; +extern const u8 gMonStillFrontPic_Pelipper[]; extern const u8 gMonIcon_Pelipper[]; extern const u8 gMonFootprint_Pelipper[]; extern const u8 gMonFrontPic_Surskit[]; extern const u8 gMonPalette_Surskit[]; extern const u8 gMonBackPic_Surskit[]; extern const u8 gMonShinyPalette_Surskit[]; +extern const u8 gMonStillFrontPic_Surskit[]; extern const u8 gMonIcon_Surskit[]; extern const u8 gMonFootprint_Surskit[]; extern const u8 gMonFrontPic_Masquerain[]; extern const u8 gMonPalette_Masquerain[]; extern const u8 gMonBackPic_Masquerain[]; extern const u8 gMonShinyPalette_Masquerain[]; +extern const u8 gMonStillFrontPic_Masquerain[]; extern const u8 gMonIcon_Masquerain[]; extern const u8 gMonFootprint_Masquerain[]; extern const u8 gMonFrontPic_Wailmer[]; extern const u8 gMonPalette_Wailmer[]; extern const u8 gMonBackPic_Wailmer[]; extern const u8 gMonShinyPalette_Wailmer[]; +extern const u8 gMonStillFrontPic_Wailmer[]; extern const u8 gMonIcon_Wailmer[]; extern const u8 gMonFootprint_Wailmer[]; extern const u8 gMonFrontPic_Wailord[]; extern const u8 gMonPalette_Wailord[]; extern const u8 gMonBackPic_Wailord[]; extern const u8 gMonShinyPalette_Wailord[]; +extern const u8 gMonStillFrontPic_Wailord[]; extern const u8 gMonIcon_Wailord[]; extern const u8 gMonFootprint_Wailord[]; extern const u8 gMonFrontPic_Skitty[]; extern const u8 gMonPalette_Skitty[]; extern const u8 gMonBackPic_Skitty[]; extern const u8 gMonShinyPalette_Skitty[]; +extern const u8 gMonStillFrontPic_Skitty[]; extern const u8 gMonIcon_Skitty[]; extern const u8 gMonFootprint_Skitty[]; extern const u8 gMonFrontPic_Delcatty[]; extern const u8 gMonPalette_Delcatty[]; extern const u8 gMonBackPic_Delcatty[]; extern const u8 gMonShinyPalette_Delcatty[]; +extern const u8 gMonStillFrontPic_Delcatty[]; extern const u8 gMonIcon_Delcatty[]; extern const u8 gMonFootprint_Delcatty[]; extern const u8 gMonFrontPic_Kecleon[]; extern const u8 gMonPalette_Kecleon[]; extern const u8 gMonBackPic_Kecleon[]; extern const u8 gMonShinyPalette_Kecleon[]; +extern const u8 gMonStillFrontPic_Kecleon[]; extern const u8 gMonIcon_Kecleon[]; extern const u8 gMonFootprint_Kecleon[]; extern const u8 gMonFrontPic_Baltoy[]; extern const u8 gMonPalette_Baltoy[]; extern const u8 gMonBackPic_Baltoy[]; extern const u8 gMonShinyPalette_Baltoy[]; +extern const u8 gMonStillFrontPic_Baltoy[]; extern const u8 gMonIcon_Baltoy[]; extern const u8 gMonFootprint_Baltoy[]; extern const u8 gMonFrontPic_Claydol[]; extern const u8 gMonPalette_Claydol[]; extern const u8 gMonBackPic_Claydol[]; extern const u8 gMonShinyPalette_Claydol[]; +extern const u8 gMonStillFrontPic_Claydol[]; extern const u8 gMonIcon_Claydol[]; extern const u8 gMonFootprint_Claydol[]; extern const u8 gMonFrontPic_Nosepass[]; extern const u8 gMonPalette_Nosepass[]; extern const u8 gMonBackPic_Nosepass[]; extern const u8 gMonShinyPalette_Nosepass[]; +extern const u8 gMonStillFrontPic_Nosepass[]; extern const u8 gMonIcon_Nosepass[]; extern const u8 gMonFootprint_Nosepass[]; extern const u8 gMonFrontPic_Torkoal[]; extern const u8 gMonPalette_Torkoal[]; extern const u8 gMonBackPic_Torkoal[]; extern const u8 gMonShinyPalette_Torkoal[]; +extern const u8 gMonStillFrontPic_Torkoal[]; extern const u8 gMonIcon_Torkoal[]; extern const u8 gMonFootprint_Torkoal[]; extern const u8 gMonFrontPic_Sableye[]; extern const u8 gMonPalette_Sableye[]; extern const u8 gMonBackPic_Sableye[]; extern const u8 gMonShinyPalette_Sableye[]; +extern const u8 gMonStillFrontPic_Sableye[]; extern const u8 gMonIcon_Sableye[]; extern const u8 gMonFootprint_Sableye[]; extern const u8 gMonFrontPic_Barboach[]; extern const u8 gMonPalette_Barboach[]; extern const u8 gMonBackPic_Barboach[]; extern const u8 gMonShinyPalette_Barboach[]; +extern const u8 gMonStillFrontPic_Barboach[]; extern const u8 gMonIcon_Barboach[]; extern const u8 gMonFootprint_Barboach[]; extern const u8 gMonFrontPic_Whiscash[]; extern const u8 gMonPalette_Whiscash[]; extern const u8 gMonBackPic_Whiscash[]; extern const u8 gMonShinyPalette_Whiscash[]; +extern const u8 gMonStillFrontPic_Whiscash[]; extern const u8 gMonIcon_Whiscash[]; extern const u8 gMonFootprint_Whiscash[]; extern const u8 gMonFrontPic_Luvdisc[]; extern const u8 gMonPalette_Luvdisc[]; extern const u8 gMonBackPic_Luvdisc[]; extern const u8 gMonShinyPalette_Luvdisc[]; +extern const u8 gMonStillFrontPic_Luvdisc[]; extern const u8 gMonIcon_Luvdisc[]; extern const u8 gMonFootprint_Luvdisc[]; extern const u8 gMonFrontPic_Corphish[]; extern const u8 gMonPalette_Corphish[]; extern const u8 gMonBackPic_Corphish[]; extern const u8 gMonShinyPalette_Corphish[]; +extern const u8 gMonStillFrontPic_Corphish[]; extern const u8 gMonIcon_Corphish[]; extern const u8 gMonFootprint_Corphish[]; extern const u8 gMonFrontPic_Crawdaunt[]; extern const u8 gMonPalette_Crawdaunt[]; extern const u8 gMonBackPic_Crawdaunt[]; extern const u8 gMonShinyPalette_Crawdaunt[]; +extern const u8 gMonStillFrontPic_Crawdaunt[]; extern const u8 gMonIcon_Crawdaunt[]; extern const u8 gMonFootprint_Crawdaunt[]; extern const u8 gMonFrontPic_Feebas[]; extern const u8 gMonPalette_Feebas[]; extern const u8 gMonBackPic_Feebas[]; extern const u8 gMonShinyPalette_Feebas[]; +extern const u8 gMonStillFrontPic_Feebas[]; extern const u8 gMonIcon_Feebas[]; extern const u8 gMonFootprint_Feebas[]; extern const u8 gMonFrontPic_Milotic[]; extern const u8 gMonPalette_Milotic[]; extern const u8 gMonBackPic_Milotic[]; extern const u8 gMonShinyPalette_Milotic[]; +extern const u8 gMonStillFrontPic_Milotic[]; extern const u8 gMonIcon_Milotic[]; extern const u8 gMonFootprint_Milotic[]; extern const u8 gMonFrontPic_Carvanha[]; extern const u8 gMonPalette_Carvanha[]; extern const u8 gMonBackPic_Carvanha[]; extern const u8 gMonShinyPalette_Carvanha[]; +extern const u8 gMonStillFrontPic_Carvanha[]; extern const u8 gMonIcon_Carvanha[]; extern const u8 gMonFootprint_Carvanha[]; extern const u8 gMonFrontPic_Sharpedo[]; extern const u8 gMonPalette_Sharpedo[]; extern const u8 gMonBackPic_Sharpedo[]; extern const u8 gMonShinyPalette_Sharpedo[]; +extern const u8 gMonStillFrontPic_Sharpedo[]; extern const u8 gMonIcon_Sharpedo[]; extern const u8 gMonFootprint_Sharpedo[]; extern const u8 gMonFrontPic_Trapinch[]; extern const u8 gMonPalette_Trapinch[]; extern const u8 gMonBackPic_Trapinch[]; extern const u8 gMonShinyPalette_Trapinch[]; +extern const u8 gMonStillFrontPic_Trapinch[]; extern const u8 gMonIcon_Trapinch[]; extern const u8 gMonFootprint_Trapinch[]; extern const u8 gMonFrontPic_Vibrava[]; extern const u8 gMonPalette_Vibrava[]; extern const u8 gMonBackPic_Vibrava[]; extern const u8 gMonShinyPalette_Vibrava[]; +extern const u8 gMonStillFrontPic_Vibrava[]; extern const u8 gMonIcon_Vibrava[]; extern const u8 gMonFootprint_Vibrava[]; extern const u8 gMonFrontPic_Flygon[]; extern const u8 gMonPalette_Flygon[]; extern const u8 gMonBackPic_Flygon[]; extern const u8 gMonShinyPalette_Flygon[]; +extern const u8 gMonStillFrontPic_Flygon[]; extern const u8 gMonIcon_Flygon[]; extern const u8 gMonFootprint_Flygon[]; extern const u8 gMonFrontPic_Makuhita[]; extern const u8 gMonPalette_Makuhita[]; extern const u8 gMonBackPic_Makuhita[]; extern const u8 gMonShinyPalette_Makuhita[]; +extern const u8 gMonStillFrontPic_Makuhita[]; extern const u8 gMonIcon_Makuhita[]; extern const u8 gMonFootprint_Makuhita[]; extern const u8 gMonFrontPic_Hariyama[]; extern const u8 gMonPalette_Hariyama[]; extern const u8 gMonBackPic_Hariyama[]; extern const u8 gMonShinyPalette_Hariyama[]; +extern const u8 gMonStillFrontPic_Hariyama[]; extern const u8 gMonIcon_Hariyama[]; extern const u8 gMonFootprint_Hariyama[]; extern const u8 gMonFrontPic_Electrike[]; extern const u8 gMonPalette_Electrike[]; extern const u8 gMonBackPic_Electrike[]; extern const u8 gMonShinyPalette_Electrike[]; +extern const u8 gMonStillFrontPic_Electrike[]; extern const u8 gMonIcon_Electrike[]; extern const u8 gMonFootprint_Electrike[]; extern const u8 gMonFrontPic_Manectric[]; extern const u8 gMonPalette_Manectric[]; extern const u8 gMonBackPic_Manectric[]; extern const u8 gMonShinyPalette_Manectric[]; +extern const u8 gMonStillFrontPic_Manectric[]; extern const u8 gMonIcon_Manectric[]; extern const u8 gMonFootprint_Manectric[]; extern const u8 gMonFrontPic_Numel[]; extern const u8 gMonPalette_Numel[]; extern const u8 gMonBackPic_Numel[]; extern const u8 gMonShinyPalette_Numel[]; +extern const u8 gMonStillFrontPic_Numel[]; extern const u8 gMonIcon_Numel[]; extern const u8 gMonFootprint_Numel[]; extern const u8 gMonFrontPic_Camerupt[]; extern const u8 gMonPalette_Camerupt[]; extern const u8 gMonBackPic_Camerupt[]; extern const u8 gMonShinyPalette_Camerupt[]; +extern const u8 gMonStillFrontPic_Camerupt[]; extern const u8 gMonIcon_Camerupt[]; extern const u8 gMonFootprint_Camerupt[]; extern const u8 gMonFrontPic_Spheal[]; extern const u8 gMonPalette_Spheal[]; extern const u8 gMonBackPic_Spheal[]; extern const u8 gMonShinyPalette_Spheal[]; +extern const u8 gMonStillFrontPic_Spheal[]; extern const u8 gMonIcon_Spheal[]; extern const u8 gMonFootprint_Spheal[]; extern const u8 gMonFrontPic_Sealeo[]; extern const u8 gMonPalette_Sealeo[]; extern const u8 gMonBackPic_Sealeo[]; extern const u8 gMonShinyPalette_Sealeo[]; +extern const u8 gMonStillFrontPic_Sealeo[]; extern const u8 gMonIcon_Sealeo[]; extern const u8 gMonFootprint_Sealeo[]; extern const u8 gMonFrontPic_Walrein[]; extern const u8 gMonPalette_Walrein[]; extern const u8 gMonBackPic_Walrein[]; extern const u8 gMonShinyPalette_Walrein[]; +extern const u8 gMonStillFrontPic_Walrein[]; extern const u8 gMonIcon_Walrein[]; extern const u8 gMonFootprint_Walrein[]; extern const u8 gMonFrontPic_Cacnea[]; extern const u8 gMonPalette_Cacnea[]; extern const u8 gMonBackPic_Cacnea[]; extern const u8 gMonShinyPalette_Cacnea[]; +extern const u8 gMonStillFrontPic_Cacnea[]; extern const u8 gMonIcon_Cacnea[]; extern const u8 gMonFootprint_Cacnea[]; extern const u8 gMonFrontPic_Cacturne[]; extern const u8 gMonPalette_Cacturne[]; extern const u8 gMonBackPic_Cacturne[]; extern const u8 gMonShinyPalette_Cacturne[]; +extern const u8 gMonStillFrontPic_Cacturne[]; extern const u8 gMonIcon_Cacturne[]; extern const u8 gMonFootprint_Cacturne[]; extern const u8 gMonFrontPic_Snorunt[]; extern const u8 gMonPalette_Snorunt[]; extern const u8 gMonBackPic_Snorunt[]; extern const u8 gMonShinyPalette_Snorunt[]; +extern const u8 gMonStillFrontPic_Snorunt[]; extern const u8 gMonIcon_Snorunt[]; extern const u8 gMonFootprint_Snorunt[]; extern const u8 gMonFrontPic_Glalie[]; extern const u8 gMonPalette_Glalie[]; extern const u8 gMonBackPic_Glalie[]; extern const u8 gMonShinyPalette_Glalie[]; +extern const u8 gMonStillFrontPic_Glalie[]; extern const u8 gMonIcon_Glalie[]; extern const u8 gMonFootprint_Glalie[]; extern const u8 gMonFrontPic_Lunatone[]; extern const u8 gMonPalette_Lunatone[]; extern const u8 gMonBackPic_Lunatone[]; extern const u8 gMonShinyPalette_Lunatone[]; +extern const u8 gMonStillFrontPic_Lunatone[]; extern const u8 gMonIcon_Lunatone[]; extern const u8 gMonFootprint_Lunatone[]; extern const u8 gMonFrontPic_Solrock[]; extern const u8 gMonPalette_Solrock[]; extern const u8 gMonBackPic_Solrock[]; extern const u8 gMonShinyPalette_Solrock[]; +extern const u8 gMonStillFrontPic_Solrock[]; extern const u8 gMonIcon_Solrock[]; extern const u8 gMonFootprint_Solrock[]; extern const u8 gMonFrontPic_Azurill[]; extern const u8 gMonPalette_Azurill[]; extern const u8 gMonBackPic_Azurill[]; extern const u8 gMonShinyPalette_Azurill[]; +extern const u8 gMonStillFrontPic_Azurill[]; extern const u8 gMonIcon_Azurill[]; extern const u8 gMonFootprint_Azurill[]; extern const u8 gMonFrontPic_Spoink[]; extern const u8 gMonPalette_Spoink[]; extern const u8 gMonBackPic_Spoink[]; extern const u8 gMonShinyPalette_Spoink[]; +extern const u8 gMonStillFrontPic_Spoink[]; extern const u8 gMonIcon_Spoink[]; extern const u8 gMonFootprint_Spoink[]; extern const u8 gMonFrontPic_Grumpig[]; extern const u8 gMonPalette_Grumpig[]; extern const u8 gMonBackPic_Grumpig[]; extern const u8 gMonShinyPalette_Grumpig[]; +extern const u8 gMonStillFrontPic_Grumpig[]; extern const u8 gMonIcon_Grumpig[]; extern const u8 gMonFootprint_Grumpig[]; extern const u8 gMonFrontPic_Plusle[]; extern const u8 gMonPalette_Plusle[]; extern const u8 gMonBackPic_Plusle[]; extern const u8 gMonShinyPalette_Plusle[]; +extern const u8 gMonStillFrontPic_Plusle[]; extern const u8 gMonIcon_Plusle[]; extern const u8 gMonFootprint_Plusle[]; extern const u8 gMonFrontPic_Minun[]; extern const u8 gMonPalette_Minun[]; extern const u8 gMonBackPic_Minun[]; extern const u8 gMonShinyPalette_Minun[]; +extern const u8 gMonStillFrontPic_Minun[]; extern const u8 gMonIcon_Minun[]; extern const u8 gMonFootprint_Minun[]; extern const u8 gMonFrontPic_Mawile[]; extern const u8 gMonPalette_Mawile[]; extern const u8 gMonBackPic_Mawile[]; extern const u8 gMonShinyPalette_Mawile[]; +extern const u8 gMonStillFrontPic_Mawile[]; extern const u8 gMonIcon_Mawile[]; extern const u8 gMonFootprint_Mawile[]; extern const u8 gMonFrontPic_Meditite[]; extern const u8 gMonPalette_Meditite[]; extern const u8 gMonBackPic_Meditite[]; extern const u8 gMonShinyPalette_Meditite[]; +extern const u8 gMonStillFrontPic_Meditite[]; extern const u8 gMonIcon_Meditite[]; extern const u8 gMonFootprint_Meditite[]; extern const u8 gMonFrontPic_Medicham[]; extern const u8 gMonPalette_Medicham[]; extern const u8 gMonBackPic_Medicham[]; extern const u8 gMonShinyPalette_Medicham[]; +extern const u8 gMonStillFrontPic_Medicham[]; extern const u8 gMonIcon_Medicham[]; extern const u8 gMonFootprint_Medicham[]; extern const u8 gMonFrontPic_Swablu[]; extern const u8 gMonPalette_Swablu[]; extern const u8 gMonBackPic_Swablu[]; extern const u8 gMonShinyPalette_Swablu[]; +extern const u8 gMonStillFrontPic_Swablu[]; extern const u8 gMonIcon_Swablu[]; extern const u8 gMonFootprint_Swablu[]; extern const u8 gMonFrontPic_Altaria[]; extern const u8 gMonPalette_Altaria[]; extern const u8 gMonBackPic_Altaria[]; extern const u8 gMonShinyPalette_Altaria[]; +extern const u8 gMonStillFrontPic_Altaria[]; extern const u8 gMonIcon_Altaria[]; extern const u8 gMonFootprint_Altaria[]; extern const u8 gMonFrontPic_Wynaut[]; extern const u8 gMonPalette_Wynaut[]; extern const u8 gMonBackPic_Wynaut[]; extern const u8 gMonShinyPalette_Wynaut[]; +extern const u8 gMonStillFrontPic_Wynaut[]; extern const u8 gMonIcon_Wynaut[]; extern const u8 gMonFootprint_Wynaut[]; extern const u8 gMonFrontPic_Duskull[]; extern const u8 gMonPalette_Duskull[]; extern const u8 gMonBackPic_Duskull[]; extern const u8 gMonShinyPalette_Duskull[]; +extern const u8 gMonStillFrontPic_Duskull[]; extern const u8 gMonIcon_Duskull[]; extern const u8 gMonFootprint_Duskull[]; extern const u8 gMonFrontPic_Dusclops[]; extern const u8 gMonPalette_Dusclops[]; extern const u8 gMonBackPic_Dusclops[]; extern const u8 gMonShinyPalette_Dusclops[]; +extern const u8 gMonStillFrontPic_Dusclops[]; extern const u8 gMonIcon_Dusclops[]; extern const u8 gMonFootprint_Dusclops[]; extern const u8 gMonFrontPic_Roselia[]; extern const u8 gMonPalette_Roselia[]; extern const u8 gMonBackPic_Roselia[]; extern const u8 gMonShinyPalette_Roselia[]; +extern const u8 gMonStillFrontPic_Roselia[]; extern const u8 gMonIcon_Roselia[]; extern const u8 gMonFootprint_Roselia[]; extern const u8 gMonFrontPic_Slakoth[]; extern const u8 gMonPalette_Slakoth[]; extern const u8 gMonBackPic_Slakoth[]; extern const u8 gMonShinyPalette_Slakoth[]; +extern const u8 gMonStillFrontPic_Slakoth[]; extern const u8 gMonIcon_Slakoth[]; extern const u8 gMonFootprint_Slakoth[]; extern const u8 gMonFrontPic_Vigoroth[]; extern const u8 gMonPalette_Vigoroth[]; extern const u8 gMonBackPic_Vigoroth[]; extern const u8 gMonShinyPalette_Vigoroth[]; +extern const u8 gMonStillFrontPic_Vigoroth[]; extern const u8 gMonIcon_Vigoroth[]; extern const u8 gMonFootprint_Vigoroth[]; extern const u8 gMonFrontPic_Slaking[]; extern const u8 gMonPalette_Slaking[]; extern const u8 gMonBackPic_Slaking[]; extern const u8 gMonShinyPalette_Slaking[]; +extern const u8 gMonStillFrontPic_Slaking[]; extern const u8 gMonIcon_Slaking[]; extern const u8 gMonFootprint_Slaking[]; extern const u8 gMonFrontPic_Gulpin[]; extern const u8 gMonPalette_Gulpin[]; extern const u8 gMonBackPic_Gulpin[]; extern const u8 gMonShinyPalette_Gulpin[]; +extern const u8 gMonStillFrontPic_Gulpin[]; extern const u8 gMonIcon_Gulpin[]; extern const u8 gMonFootprint_Gulpin[]; extern const u8 gMonFrontPic_Swalot[]; extern const u8 gMonPalette_Swalot[]; extern const u8 gMonBackPic_Swalot[]; extern const u8 gMonShinyPalette_Swalot[]; +extern const u8 gMonStillFrontPic_Swalot[]; extern const u8 gMonIcon_Swalot[]; extern const u8 gMonFootprint_Swalot[]; extern const u8 gMonFrontPic_Tropius[]; extern const u8 gMonPalette_Tropius[]; extern const u8 gMonBackPic_Tropius[]; extern const u8 gMonShinyPalette_Tropius[]; +extern const u8 gMonStillFrontPic_Tropius[]; extern const u8 gMonIcon_Tropius[]; extern const u8 gMonFootprint_Tropius[]; extern const u8 gMonFrontPic_Whismur[]; extern const u8 gMonPalette_Whismur[]; extern const u8 gMonBackPic_Whismur[]; extern const u8 gMonShinyPalette_Whismur[]; +extern const u8 gMonStillFrontPic_Whismur[]; extern const u8 gMonIcon_Whismur[]; extern const u8 gMonFootprint_Whismur[]; extern const u8 gMonFrontPic_Loudred[]; extern const u8 gMonPalette_Loudred[]; extern const u8 gMonBackPic_Loudred[]; extern const u8 gMonShinyPalette_Loudred[]; +extern const u8 gMonStillFrontPic_Loudred[]; extern const u8 gMonIcon_Loudred[]; extern const u8 gMonFootprint_Loudred[]; extern const u8 gMonFrontPic_Exploud[]; extern const u8 gMonPalette_Exploud[]; extern const u8 gMonBackPic_Exploud[]; extern const u8 gMonShinyPalette_Exploud[]; +extern const u8 gMonStillFrontPic_Exploud[]; extern const u8 gMonIcon_Exploud[]; extern const u8 gMonFootprint_Exploud[]; extern const u8 gMonFrontPic_Clamperl[]; extern const u8 gMonPalette_Clamperl[]; extern const u8 gMonBackPic_Clamperl[]; extern const u8 gMonShinyPalette_Clamperl[]; +extern const u8 gMonStillFrontPic_Clamperl[]; extern const u8 gMonIcon_Clamperl[]; extern const u8 gMonFootprint_Clamperl[]; extern const u8 gMonFrontPic_Huntail[]; extern const u8 gMonPalette_Huntail[]; extern const u8 gMonBackPic_Huntail[]; extern const u8 gMonShinyPalette_Huntail[]; +extern const u8 gMonStillFrontPic_Huntail[]; extern const u8 gMonIcon_Huntail[]; extern const u8 gMonFootprint_Huntail[]; extern const u8 gMonFrontPic_Gorebyss[]; extern const u8 gMonPalette_Gorebyss[]; extern const u8 gMonBackPic_Gorebyss[]; extern const u8 gMonShinyPalette_Gorebyss[]; +extern const u8 gMonStillFrontPic_Gorebyss[]; extern const u8 gMonIcon_Gorebyss[]; extern const u8 gMonFootprint_Gorebyss[]; extern const u8 gMonFrontPic_Absol[]; extern const u8 gMonPalette_Absol[]; extern const u8 gMonBackPic_Absol[]; extern const u8 gMonShinyPalette_Absol[]; +extern const u8 gMonStillFrontPic_Absol[]; extern const u8 gMonIcon_Absol[]; extern const u8 gMonFootprint_Absol[]; extern const u8 gMonFrontPic_Shuppet[]; extern const u8 gMonPalette_Shuppet[]; extern const u8 gMonBackPic_Shuppet[]; extern const u8 gMonShinyPalette_Shuppet[]; +extern const u8 gMonStillFrontPic_Shuppet[]; extern const u8 gMonIcon_Shuppet[]; extern const u8 gMonFootprint_Shuppet[]; extern const u8 gMonFrontPic_Banette[]; extern const u8 gMonPalette_Banette[]; extern const u8 gMonBackPic_Banette[]; extern const u8 gMonShinyPalette_Banette[]; +extern const u8 gMonStillFrontPic_Banette[]; extern const u8 gMonIcon_Banette[]; extern const u8 gMonFootprint_Banette[]; extern const u8 gMonFrontPic_Seviper[]; extern const u8 gMonPalette_Seviper[]; extern const u8 gMonBackPic_Seviper[]; extern const u8 gMonShinyPalette_Seviper[]; +extern const u8 gMonStillFrontPic_Seviper[]; extern const u8 gMonIcon_Seviper[]; extern const u8 gMonFootprint_Seviper[]; extern const u8 gMonFrontPic_Zangoose[]; extern const u8 gMonPalette_Zangoose[]; extern const u8 gMonBackPic_Zangoose[]; extern const u8 gMonShinyPalette_Zangoose[]; +extern const u8 gMonStillFrontPic_Zangoose[]; extern const u8 gMonIcon_Zangoose[]; extern const u8 gMonFootprint_Zangoose[]; extern const u8 gMonFrontPic_Relicanth[]; extern const u8 gMonPalette_Relicanth[]; extern const u8 gMonBackPic_Relicanth[]; extern const u8 gMonShinyPalette_Relicanth[]; +extern const u8 gMonStillFrontPic_Relicanth[]; extern const u8 gMonIcon_Relicanth[]; extern const u8 gMonFootprint_Relicanth[]; extern const u8 gMonFrontPic_Aron[]; extern const u8 gMonPalette_Aron[]; extern const u8 gMonBackPic_Aron[]; extern const u8 gMonShinyPalette_Aron[]; +extern const u8 gMonStillFrontPic_Aron[]; extern const u8 gMonIcon_Aron[]; extern const u8 gMonFootprint_Aron[]; extern const u8 gMonFrontPic_Lairon[]; extern const u8 gMonPalette_Lairon[]; extern const u8 gMonBackPic_Lairon[]; extern const u8 gMonShinyPalette_Lairon[]; +extern const u8 gMonStillFrontPic_Lairon[]; extern const u8 gMonIcon_Lairon[]; extern const u8 gMonFootprint_Lairon[]; extern const u8 gMonFrontPic_Aggron[]; extern const u8 gMonPalette_Aggron[]; extern const u8 gMonBackPic_Aggron[]; extern const u8 gMonShinyPalette_Aggron[]; +extern const u8 gMonStillFrontPic_Aggron[]; extern const u8 gMonIcon_Aggron[]; extern const u8 gMonFootprint_Aggron[]; extern const u8 gMonFrontPic_Castform[]; extern const u8 gMonPalette_Castform[]; extern const u8 gMonBackPic_Castform[]; extern const u8 gMonShinyPalette_Castform[]; +extern const u8 gMonStillFrontPic_Castform[]; extern const u8 gMonIcon_Castform[]; extern const u8 gMonFootprint_Castform[]; extern const u8 gMonFrontPic_Volbeat[]; extern const u8 gMonPalette_Volbeat[]; extern const u8 gMonBackPic_Volbeat[]; extern const u8 gMonShinyPalette_Volbeat[]; +extern const u8 gMonStillFrontPic_Volbeat[]; extern const u8 gMonIcon_Volbeat[]; extern const u8 gMonFootprint_Volbeat[]; extern const u8 gMonFrontPic_Illumise[]; extern const u8 gMonPalette_Illumise[]; extern const u8 gMonBackPic_Illumise[]; extern const u8 gMonShinyPalette_Illumise[]; +extern const u8 gMonStillFrontPic_Illumise[]; extern const u8 gMonIcon_Illumise[]; extern const u8 gMonFootprint_Illumise[]; extern const u8 gMonFrontPic_Lileep[]; extern const u8 gMonPalette_Lileep[]; extern const u8 gMonBackPic_Lileep[]; extern const u8 gMonShinyPalette_Lileep[]; +extern const u8 gMonStillFrontPic_Lileep[]; extern const u8 gMonIcon_Lileep[]; extern const u8 gMonFootprint_Lileep[]; extern const u8 gMonFrontPic_Cradily[]; extern const u8 gMonPalette_Cradily[]; extern const u8 gMonBackPic_Cradily[]; extern const u8 gMonShinyPalette_Cradily[]; +extern const u8 gMonStillFrontPic_Cradily[]; extern const u8 gMonIcon_Cradily[]; extern const u8 gMonFootprint_Cradily[]; extern const u8 gMonFrontPic_Anorith[]; extern const u8 gMonPalette_Anorith[]; extern const u8 gMonBackPic_Anorith[]; extern const u8 gMonShinyPalette_Anorith[]; +extern const u8 gMonStillFrontPic_Anorith[]; extern const u8 gMonIcon_Anorith[]; extern const u8 gMonFootprint_Anorith[]; extern const u8 gMonFrontPic_Armaldo[]; extern const u8 gMonPalette_Armaldo[]; extern const u8 gMonBackPic_Armaldo[]; extern const u8 gMonShinyPalette_Armaldo[]; +extern const u8 gMonStillFrontPic_Armaldo[]; extern const u8 gMonIcon_Armaldo[]; extern const u8 gMonFootprint_Armaldo[]; extern const u8 gMonFrontPic_Ralts[]; extern const u8 gMonPalette_Ralts[]; extern const u8 gMonBackPic_Ralts[]; extern const u8 gMonShinyPalette_Ralts[]; +extern const u8 gMonStillFrontPic_Ralts[]; extern const u8 gMonIcon_Ralts[]; extern const u8 gMonFootprint_Ralts[]; extern const u8 gMonFrontPic_Kirlia[]; extern const u8 gMonPalette_Kirlia[]; extern const u8 gMonBackPic_Kirlia[]; extern const u8 gMonShinyPalette_Kirlia[]; +extern const u8 gMonStillFrontPic_Kirlia[]; extern const u8 gMonIcon_Kirlia[]; extern const u8 gMonFootprint_Kirlia[]; extern const u8 gMonFrontPic_Gardevoir[]; extern const u8 gMonPalette_Gardevoir[]; extern const u8 gMonBackPic_Gardevoir[]; extern const u8 gMonShinyPalette_Gardevoir[]; +extern const u8 gMonStillFrontPic_Gardevoir[]; extern const u8 gMonIcon_Gardevoir[]; extern const u8 gMonFootprint_Gardevoir[]; extern const u8 gMonFrontPic_Bagon[]; extern const u8 gMonPalette_Bagon[]; extern const u8 gMonBackPic_Bagon[]; extern const u8 gMonShinyPalette_Bagon[]; +extern const u8 gMonStillFrontPic_Bagon[]; extern const u8 gMonIcon_Bagon[]; extern const u8 gMonFootprint_Bagon[]; extern const u8 gMonFrontPic_Shelgon[]; extern const u8 gMonPalette_Shelgon[]; extern const u8 gMonBackPic_Shelgon[]; extern const u8 gMonShinyPalette_Shelgon[]; +extern const u8 gMonStillFrontPic_Shelgon[]; extern const u8 gMonIcon_Shelgon[]; extern const u8 gMonFootprint_Shelgon[]; extern const u8 gMonFrontPic_Salamence[]; extern const u8 gMonPalette_Salamence[]; extern const u8 gMonBackPic_Salamence[]; extern const u8 gMonShinyPalette_Salamence[]; +extern const u8 gMonStillFrontPic_Salamence[]; extern const u8 gMonIcon_Salamence[]; extern const u8 gMonFootprint_Salamence[]; extern const u8 gMonFrontPic_Beldum[]; extern const u8 gMonPalette_Beldum[]; extern const u8 gMonBackPic_Beldum[]; extern const u8 gMonShinyPalette_Beldum[]; +extern const u8 gMonStillFrontPic_Beldum[]; extern const u8 gMonIcon_Beldum[]; extern const u8 gMonFootprint_Beldum[]; extern const u8 gMonFrontPic_Metang[]; extern const u8 gMonPalette_Metang[]; extern const u8 gMonBackPic_Metang[]; extern const u8 gMonShinyPalette_Metang[]; +extern const u8 gMonStillFrontPic_Metang[]; extern const u8 gMonIcon_Metang[]; extern const u8 gMonFootprint_Metang[]; extern const u8 gMonFrontPic_Metagross[]; extern const u8 gMonPalette_Metagross[]; extern const u8 gMonBackPic_Metagross[]; extern const u8 gMonShinyPalette_Metagross[]; +extern const u8 gMonStillFrontPic_Metagross[]; extern const u8 gMonIcon_Metagross[]; extern const u8 gMonFootprint_Metagross[]; extern const u8 gMonFrontPic_Regirock[]; extern const u8 gMonPalette_Regirock[]; extern const u8 gMonBackPic_Regirock[]; extern const u8 gMonShinyPalette_Regirock[]; +extern const u8 gMonStillFrontPic_Regirock[]; extern const u8 gMonIcon_Regirock[]; extern const u8 gMonFootprint_Regirock[]; extern const u8 gMonFrontPic_Regice[]; extern const u8 gMonPalette_Regice[]; extern const u8 gMonBackPic_Regice[]; extern const u8 gMonShinyPalette_Regice[]; +extern const u8 gMonStillFrontPic_Regice[]; extern const u8 gMonIcon_Regice[]; extern const u8 gMonFootprint_Regice[]; extern const u8 gMonFrontPic_Registeel[]; extern const u8 gMonPalette_Registeel[]; extern const u8 gMonBackPic_Registeel[]; extern const u8 gMonShinyPalette_Registeel[]; +extern const u8 gMonStillFrontPic_Registeel[]; extern const u8 gMonIcon_Registeel[]; extern const u8 gMonFootprint_Registeel[]; extern const u8 gMonFrontPic_Kyogre[]; extern const u8 gMonPalette_Kyogre[]; extern const u8 gMonBackPic_Kyogre[]; extern const u8 gMonShinyPalette_Kyogre[]; +extern const u8 gMonStillFrontPic_Kyogre[]; extern const u8 gMonIcon_Kyogre[]; extern const u8 gMonFootprint_Kyogre[]; extern const u8 gMonFrontPic_Groudon[]; extern const u8 gMonPalette_Groudon[]; extern const u8 gMonBackPic_Groudon[]; extern const u8 gMonShinyPalette_Groudon[]; +extern const u8 gMonStillFrontPic_Groudon[]; extern const u8 gMonIcon_Groudon[]; extern const u8 gMonFootprint_Groudon[]; extern const u8 gMonFrontPic_Rayquaza[]; extern const u8 gMonPalette_Rayquaza[]; extern const u8 gMonBackPic_Rayquaza[]; extern const u8 gMonShinyPalette_Rayquaza[]; +extern const u8 gMonStillFrontPic_Rayquaza[]; extern const u8 gMonIcon_Rayquaza[]; extern const u8 gMonFootprint_Rayquaza[]; extern const u8 gMonFrontPic_Latias[]; extern const u8 gMonPalette_Latias[]; extern const u8 gMonBackPic_Latias[]; extern const u8 gMonShinyPalette_Latias[]; +extern const u8 gMonStillFrontPic_Latias[]; extern const u8 gMonIcon_Latias[]; extern const u8 gMonFootprint_Latias[]; extern const u8 gMonFrontPic_Latios[]; extern const u8 gMonPalette_Latios[]; extern const u8 gMonBackPic_Latios[]; extern const u8 gMonShinyPalette_Latios[]; +extern const u8 gMonStillFrontPic_Latios[]; extern const u8 gMonIcon_Latios[]; extern const u8 gMonFootprint_Latios[]; extern const u8 gMonFrontPic_Jirachi[]; extern const u8 gMonPalette_Jirachi[]; extern const u8 gMonBackPic_Jirachi[]; extern const u8 gMonShinyPalette_Jirachi[]; +extern const u8 gMonStillFrontPic_Jirachi[]; extern const u8 gMonIcon_Jirachi[]; extern const u8 gMonFootprint_Jirachi[]; extern const u8 gMonFrontPic_Deoxys[]; extern const u8 gMonPalette_Deoxys[]; extern const u8 gMonBackPic_Deoxys[]; extern const u8 gMonShinyPalette_Deoxys[]; +extern const u8 gMonStillFrontPic_Deoxys[]; extern const u8 gMonIcon_Deoxys[]; extern const u8 gMonFootprint_Deoxys[]; extern const u8 gMonFrontPic_Chimecho[]; extern const u8 gMonPalette_Chimecho[]; extern const u8 gMonBackPic_Chimecho[]; extern const u8 gMonShinyPalette_Chimecho[]; +extern const u8 gMonStillFrontPic_Chimecho[]; extern const u8 gMonIcon_Chimecho[]; extern const u8 gMonFootprint_Chimecho[]; extern const u8 gMonPic_Egg[]; extern const u8 gMonPalette_Egg[]; +extern const u8 gMonFrontPic_Egg[]; +extern const u8 gMonStillFrontPic_Egg[]; +extern const u8 gMonIcon_Egg[]; extern const u8 gMonFrontPic_UnownB[]; extern const u8 gMonBackPic_UnownB[]; +extern const u8 gMonStillFrontPic_UnownB[]; extern const u8 gMonIcon_UnownB[]; extern const u8 gMonFrontPic_UnownC[]; extern const u8 gMonBackPic_UnownC[]; +extern const u8 gMonStillFrontPic_UnownC[]; extern const u8 gMonIcon_UnownC[]; extern const u8 gMonFrontPic_UnownD[]; extern const u8 gMonBackPic_UnownD[]; +extern const u8 gMonStillFrontPic_UnownD[]; extern const u8 gMonIcon_UnownD[]; extern const u8 gMonFrontPic_UnownE[]; extern const u8 gMonBackPic_UnownE[]; +extern const u8 gMonStillFrontPic_UnownE[]; extern const u8 gMonIcon_UnownE[]; extern const u8 gMonFrontPic_UnownF[]; extern const u8 gMonBackPic_UnownF[]; +extern const u8 gMonStillFrontPic_UnownF[]; extern const u8 gMonIcon_UnownF[]; extern const u8 gMonFrontPic_UnownG[]; extern const u8 gMonBackPic_UnownG[]; +extern const u8 gMonStillFrontPic_UnownG[]; extern const u8 gMonIcon_UnownG[]; extern const u8 gMonFrontPic_UnownH[]; extern const u8 gMonBackPic_UnownH[]; +extern const u8 gMonStillFrontPic_UnownH[]; extern const u8 gMonIcon_UnownH[]; extern const u8 gMonFrontPic_UnownI[]; extern const u8 gMonBackPic_UnownI[]; +extern const u8 gMonStillFrontPic_UnownI[]; extern const u8 gMonIcon_UnownI[]; extern const u8 gMonFrontPic_UnownJ[]; extern const u8 gMonBackPic_UnownJ[]; +extern const u8 gMonStillFrontPic_UnownJ[]; extern const u8 gMonIcon_UnownJ[]; extern const u8 gMonFrontPic_UnownK[]; extern const u8 gMonBackPic_UnownK[]; +extern const u8 gMonStillFrontPic_UnownK[]; extern const u8 gMonIcon_UnownK[]; extern const u8 gMonFrontPic_UnownL[]; extern const u8 gMonBackPic_UnownL[]; +extern const u8 gMonStillFrontPic_UnownL[]; extern const u8 gMonIcon_UnownL[]; extern const u8 gMonFrontPic_UnownM[]; extern const u8 gMonBackPic_UnownM[]; +extern const u8 gMonStillFrontPic_UnownM[]; extern const u8 gMonIcon_UnownM[]; extern const u8 gMonFrontPic_UnownN[]; extern const u8 gMonBackPic_UnownN[]; +extern const u8 gMonStillFrontPic_UnownN[]; extern const u8 gMonIcon_UnownN[]; extern const u8 gMonFrontPic_UnownO[]; extern const u8 gMonBackPic_UnownO[]; +extern const u8 gMonStillFrontPic_UnownO[]; extern const u8 gMonIcon_UnownO[]; extern const u8 gMonFrontPic_UnownP[]; extern const u8 gMonBackPic_UnownP[]; +extern const u8 gMonStillFrontPic_UnownP[]; extern const u8 gMonIcon_UnownP[]; extern const u8 gMonFrontPic_UnownQ[]; extern const u8 gMonBackPic_UnownQ[]; +extern const u8 gMonStillFrontPic_UnownQ[]; extern const u8 gMonIcon_UnownQ[]; extern const u8 gMonFrontPic_UnownR[]; extern const u8 gMonBackPic_UnownR[]; +extern const u8 gMonStillFrontPic_UnownR[]; extern const u8 gMonIcon_UnownR[]; extern const u8 gMonFrontPic_UnownS[]; extern const u8 gMonBackPic_UnownS[]; +extern const u8 gMonStillFrontPic_UnownS[]; extern const u8 gMonIcon_UnownS[]; extern const u8 gMonFrontPic_UnownT[]; extern const u8 gMonBackPic_UnownT[]; +extern const u8 gMonStillFrontPic_UnownT[]; extern const u8 gMonIcon_UnownT[]; extern const u8 gMonFrontPic_UnownU[]; extern const u8 gMonBackPic_UnownU[]; +extern const u8 gMonStillFrontPic_UnownU[]; extern const u8 gMonIcon_UnownU[]; extern const u8 gMonFrontPic_UnownV[]; extern const u8 gMonBackPic_UnownV[]; +extern const u8 gMonStillFrontPic_UnownV[]; extern const u8 gMonIcon_UnownV[]; extern const u8 gMonFrontPic_UnownW[]; extern const u8 gMonBackPic_UnownW[]; +extern const u8 gMonStillFrontPic_UnownW[]; extern const u8 gMonIcon_UnownW[]; extern const u8 gMonFrontPic_UnownX[]; extern const u8 gMonBackPic_UnownX[]; +extern const u8 gMonStillFrontPic_UnownX[]; extern const u8 gMonIcon_UnownX[]; extern const u8 gMonFrontPic_UnownY[]; extern const u8 gMonBackPic_UnownY[]; +extern const u8 gMonStillFrontPic_UnownY[]; extern const u8 gMonIcon_UnownY[]; extern const u8 gMonFrontPic_UnownZ[]; extern const u8 gMonBackPic_UnownZ[]; +extern const u8 gMonStillFrontPic_UnownZ[]; extern const u8 gMonIcon_UnownZ[]; extern const u8 gMonFrontPic_UnownExclamationMark[]; extern const u8 gMonBackPic_UnownExclamationMark[]; +extern const u8 gMonStillFrontPic_UnownExclamationMark[]; extern const u8 gMonIcon_UnownExclamationMark[]; extern const u8 gMonFrontPic_UnownQuestionMark[]; +extern const u8 gMonStillFrontPic_UnownQuestionMark[]; extern const u8 gMonBackPic_UnownQuestionMark[]; extern const u8 gMonIcon_UnownQuestionMark[]; @@ -2441,14 +2858,13 @@ extern const u8 gMonFrontPic_CircledQuestionMark[]; extern const u8 gMonBackPic_CircledQuestionMark[]; extern const u8 gMonPalette_CircledQuestionMark[]; extern const u8 gMonShinyPalette_CircledQuestionMark[]; +extern const u8 gMonStillFrontPic_CircledQuestionMark[]; extern const u8 gMonIcon_QuestionMark[]; extern const u8 gMonFrontPic_DoubleQuestionMark[]; extern const u8 gMonBackPic_DoubleQuestionMark[]; extern const u8 gMonPalette_DoubleQuestionMark[]; extern const u8 gMonShinyPalette_DoubleQuestionMark[]; -extern const u8 gMonFrontPic_Egg[]; -extern const u8 gMonStillFrontPic_Egg[]; -extern const u8 gMonIcon_Egg[]; +extern const u8 gMonStillFrontPic_DoubleQuestionMark[]; extern const u16 gMonIconPalettes[][16]; // trainer sprites diff --git a/src/data/pokemon_graphics/back_pic_coordinates.h b/src/data/pokemon_graphics/back_pic_coordinates.h new file mode 100644 index 0000000000..f54b409e4e --- /dev/null +++ b/src/data/pokemon_graphics/back_pic_coordinates.h @@ -0,0 +1,443 @@ +const struct MonCoords gUnknown_083021D8[] = +{ + {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_VENONAT + {0x77, 0x06}, // SPECIES_VENOMOTH + {0x77, 0x04}, // SPECIES_DIGLETT + {0x54, 0x10}, // SPECIES_DUGTRIO + {0x66, 0x0b}, // SPECIES_MEOWTH + {0x65, 0x0c}, // SPECIES_PERSIAN + {0x87, 0x07}, // SPECIES_PSYDUCK + {0x67, 0x07}, // SPECIES_GOLDUCK + {0x77, 0x05}, // SPECIES_MANKEY + {0x76, 0x0b}, // SPECIES_PRIMEAPE + {0x77, 0x07}, // SPECIES_GROWLITHE + {0x66, 0x08}, // SPECIES_ARCANINE + {0x87, 0x06}, // SPECIES_POLIWAG + {0x74, 0x10}, // SPECIES_POLIWHIRL + {0x65, 0x0c}, // SPECIES_POLIWRATH + {0x86, 0x0b}, // SPECIES_ABRA + {0x66, 0x0b}, // SPECIES_KADABRA + {0x76, 0x08}, // SPECIES_ALAKAZAM + {0x67, 0x05}, // SPECIES_MACHOP + {0x65, 0x0c}, // SPECIES_MACHOKE + {0x76, 0x09}, // SPECIES_MACHAMP + {0x67, 0x04}, // SPECIES_BELLSPROUT + {0x66, 0x0a}, // SPECIES_WEEPINBELL + {0x66, 0x09}, // SPECIES_VICTREEBEL + {0x87, 0x06}, // SPECIES_TENTACOOL + {0x56, 0x0a}, // SPECIES_TENTACRUEL + {0x86, 0x0b}, // SPECIES_GEODUDE + {0x66, 0x0b}, // SPECIES_GRAVELER + {0x75, 0x0c}, // SPECIES_GOLEM + {0x84, 0x10}, // SPECIES_PONYTA + {0x66, 0x09}, // SPECIES_RAPIDASH + {0x87, 0x05}, // SPECIES_SLOWPOKE + {0x85, 0x0e}, // SPECIES_SLOWBRO + {0x86, 0x0a}, // SPECIES_MAGNEMITE + {0x43, 0x14}, // SPECIES_MAGNETON + {0x66, 0x0a}, // SPECIES_FARFETCHD + {0x66, 0x0a}, // SPECIES_DODUO + {0x66, 0x08}, // SPECIES_DODRIO + {0x88, 0x01}, // SPECIES_SEEL + {0x66, 0x0a}, // SPECIES_DEWGONG + {0x77, 0x05}, // SPECIES_GRIMER + {0x75, 0x0c}, // SPECIES_MUK + {0x87, 0x05}, // SPECIES_SHELLDER + {0x76, 0x0b}, // SPECIES_CLOYSTER + {0x87, 0x06}, // SPECIES_GASTLY + {0x85, 0x0e}, // SPECIES_HAUNTER + {0x76, 0x08}, // SPECIES_GENGAR + {0x76, 0x09}, // SPECIES_ONIX + {0x78, 0x00}, // SPECIES_DROWZEE + {0x65, 0x0d}, // SPECIES_HYPNO + {0x66, 0x09}, // SPECIES_KRABBY + {0x66, 0x0a}, // SPECIES_KINGLER + {0x77, 0x04}, // SPECIES_VOLTORB + {0x55, 0x0e}, // SPECIES_ELECTRODE + {0x65, 0x0d}, // SPECIES_EXEGGCUTE + {0x65, 0x0d}, // SPECIES_EXEGGUTOR + {0x87, 0x04}, // SPECIES_CUBONE + {0x66, 0x0a}, // SPECIES_MAROWAK + {0x66, 0x08}, // SPECIES_HITMONLEE + {0x65, 0x0c}, // SPECIES_HITMONCHAN + {0x65, 0x0c}, // SPECIES_LICKITUNG + {0x65, 0x0e}, // SPECIES_KOFFING + {0x66, 0x09}, // SPECIES_WEEZING + {0x77, 0x06}, // SPECIES_RHYHORN + {0x85, 0x0c}, // SPECIES_RHYDON + {0x88, 0x03}, // SPECIES_CHANSEY + {0x86, 0x0b}, // SPECIES_TANGELA + {0x85, 0x0e}, // SPECIES_KANGASKHAN + {0x77, 0x05}, // SPECIES_HORSEA + {0x66, 0x09}, // SPECIES_SEADRA + {0x66, 0x08}, // SPECIES_GOLDEEN + {0x66, 0x08}, // SPECIES_SEAKING + {0x76, 0x0b}, // SPECIES_STARYU + {0x65, 0x0d}, // SPECIES_STARMIE + {0x85, 0x0e}, // SPECIES_MR_MIME + {0x85, 0x0d}, // SPECIES_SCYTHER + {0x77, 0x07}, // SPECIES_JYNX + {0x86, 0x0a}, // SPECIES_ELECTABUZZ + {0x66, 0x08}, // SPECIES_MAGMAR + {0x66, 0x08}, // SPECIES_PINSIR + {0x66, 0x09}, // SPECIES_TAUROS + {0x85, 0x0d}, // SPECIES_MAGIKARP + {0x76, 0x09}, // SPECIES_GYARADOS + {0x78, 0x00}, // SPECIES_LAPRAS + {0x77, 0x04}, // SPECIES_DITTO + {0x54, 0x11}, // SPECIES_EEVEE + {0x66, 0x0a}, // SPECIES_VAPOREON + {0x66, 0x0a}, // SPECIES_JOLTEON + {0x87, 0x06}, // SPECIES_FLAREON + {0x67, 0x05}, // SPECIES_PORYGON + {0x65, 0x0d}, // SPECIES_OMANYTE + {0x66, 0x0a}, // SPECIES_OMASTAR + {0x66, 0x08}, // SPECIES_KABUTO + {0x65, 0x0d}, // SPECIES_KABUTOPS + {0x77, 0x05}, // SPECIES_AERODACTYL + {0x86, 0x08}, // SPECIES_SNORLAX + {0x86, 0x0b}, // SPECIES_ARTICUNO + {0x65, 0x0c}, // SPECIES_ZAPDOS + {0x76, 0x0b}, // SPECIES_MOLTRES + {0x87, 0x04}, // SPECIES_DRATINI + {0x66, 0x09}, // SPECIES_DRAGONAIR + {0x78, 0x00}, // SPECIES_DRAGONITE + {0x87, 0x06}, // SPECIES_MEWTWO + {0x78, 0x01}, // SPECIES_MEW + {0x66, 0x08}, // SPECIES_CHIKORITA + {0x56, 0x0a}, // SPECIES_BAYLEEF + {0x66, 0x08}, // SPECIES_MEGANIUM + {0x78, 0x00}, // SPECIES_CYNDAQUIL + {0x76, 0x09}, // SPECIES_QUILAVA + {0x87, 0x04}, // SPECIES_TYPHLOSION + {0x87, 0x04}, // SPECIES_TOTODILE + {0x66, 0x0b}, // SPECIES_CROCONAW + {0x67, 0x07}, // SPECIES_FERALIGATR + {0x88, 0x01}, // SPECIES_SENTRET + {0x67, 0x05}, // SPECIES_FURRET + {0x66, 0x08}, // SPECIES_HOOTHOOT + {0x66, 0x08}, // SPECIES_NOCTOWL + {0x68, 0x03}, // SPECIES_LEDYBA + {0x76, 0x0b}, // SPECIES_LEDIAN + {0x77, 0x07}, // SPECIES_SPINARAK + {0x73, 0x15}, // SPECIES_ARIADOS + {0x86, 0x0b}, // SPECIES_CROBAT + {0x87, 0x05}, // SPECIES_CHINCHOU + {0x86, 0x08}, // SPECIES_LANTURN + {0x86, 0x08}, // SPECIES_PICHU + {0x66, 0x0b}, // SPECIES_CLEFFA + {0x65, 0x0f}, // SPECIES_IGGLYBUFF + {0x66, 0x0b}, // SPECIES_TOGEPI + {0x54, 0x10}, // SPECIES_TOGETIC + {0x66, 0x08}, // SPECIES_NATU + {0x54, 0x11}, // SPECIES_XATU + {0x76, 0x08}, // SPECIES_MAREEP + {0x66, 0x09}, // SPECIES_FLAAFFY + {0x66, 0x09}, // SPECIES_AMPHAROS + {0x88, 0x01}, // SPECIES_BELLOSSOM + {0x66, 0x0b}, // SPECIES_MARILL + {0x75, 0x0c}, // SPECIES_AZUMARILL + {0x86, 0x08}, // SPECIES_SUDOWOODO + {0x66, 0x08}, // SPECIES_POLITOED + {0x66, 0x09}, // SPECIES_HOPPIP + {0x66, 0x0b}, // SPECIES_SKIPLOOM + {0x65, 0x0d}, // SPECIES_JUMPLUFF + {0x87, 0x04}, // SPECIES_AIPOM + {0x66, 0x09}, // SPECIES_SUNKERN + {0x56, 0x0a}, // SPECIES_SUNFLORA + {0x66, 0x08}, // SPECIES_YANMA + {0x77, 0x04}, // SPECIES_WOOPER + {0x85, 0x0f}, // SPECIES_QUAGSIRE + {0x76, 0x08}, // SPECIES_ESPEON + {0x76, 0x0b}, // SPECIES_UMBREON + {0x87, 0x04}, // SPECIES_MURKROW + {0x66, 0x09}, // SPECIES_SLOWKING + {0x66, 0x08}, // SPECIES_MISDREAVUS + {0x66, 0x0a}, // SPECIES_UNOWN + {0x36, 0x08}, // SPECIES_WOBBUFFET + {0x75, 0x0c}, // SPECIES_GIRAFARIG + {0x87, 0x05}, // SPECIES_PINECO + {0x65, 0x0f}, // SPECIES_FORRETRESS + {0x84, 0x10}, // SPECIES_DUNSPARCE + {0x85, 0x0f}, // SPECIES_GLIGAR + {0x87, 0x05}, // SPECIES_STEELIX + {0x88, 0x00}, // SPECIES_SNUBBULL + {0x76, 0x0a}, // SPECIES_GRANBULL + {0x87, 0x05}, // SPECIES_QWILFISH + {0x77, 0x07}, // SPECIES_SCIZOR + {0x77, 0x04}, // SPECIES_SHUCKLE + {0x56, 0x0b}, // SPECIES_HERACROSS + {0x77, 0x04}, // SPECIES_SNEASEL + {0x66, 0x08}, // SPECIES_TEDDIURSA + {0x66, 0x08}, // SPECIES_URSARING + {0x88, 0x03}, // SPECIES_SLUGMA + {0x66, 0x08}, // SPECIES_MAGCARGO + {0x76, 0x09}, // SPECIES_SWINUB + {0x63, 0x15}, // SPECIES_PILOSWINE + {0x75, 0x0d}, // SPECIES_CORSOLA + {0x65, 0x0c}, // SPECIES_REMORAID + {0x75, 0x0d}, // SPECIES_OCTILLERY + {0x66, 0x0a}, // SPECIES_DELIBIRD + {0x67, 0x06}, // SPECIES_MANTINE + {0x87, 0x07}, // SPECIES_SKARMORY + {0x87, 0x04}, // SPECIES_HOUNDOUR + {0x55, 0x0c}, // SPECIES_HOUNDOOM + {0x87, 0x07}, // SPECIES_KINGDRA + {0x87, 0x06}, // SPECIES_PHANPY + {0x65, 0x0e}, // SPECIES_DONPHAN + {0x85, 0x0d}, // SPECIES_PORYGON2 + {0x76, 0x0a}, // SPECIES_STANTLER + {0x78, 0x03}, // SPECIES_SMEARGLE + {0x76, 0x0a}, // SPECIES_TYROGUE + {0x66, 0x08}, // SPECIES_HITMONTOP + {0x87, 0x05}, // SPECIES_SMOOCHUM + {0x56, 0x09}, // SPECIES_ELEKID + {0x66, 0x08}, // SPECIES_MAGBY + {0x66, 0x0b}, // SPECIES_MILTANK + {0x87, 0x07}, // SPECIES_BLISSEY + {0x85, 0x0d}, // SPECIES_RAIKOU + {0x86, 0x0a}, // SPECIES_ENTEI + {0x87, 0x06}, // SPECIES_SUICUNE + {0x88, 0x03}, // SPECIES_LARVITAR + {0x66, 0x08}, // SPECIES_PUPITAR + {0x67, 0x05}, // SPECIES_TYRANITAR + {0x88, 0x00}, // SPECIES_LUGIA + {0x88, 0x01}, // SPECIES_HO_OH + {0x88, 0x01}, // SPECIES_CELEBI + {0x66, 0x08}, // 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 + {0x88, 0x02}, // SPECIES_TREECKO + {0x87, 0x06}, // SPECIES_GROVYLE + {0x86, 0x08}, // SPECIES_SCEPTILE + {0x88, 0x01}, // SPECIES_TORCHIC + {0x67, 0x05}, // SPECIES_COMBUSKEN + {0x88, 0x00}, // SPECIES_BLAZIKEN + {0x88, 0x00}, // SPECIES_MUDKIP + {0x77, 0x05}, // SPECIES_MARSHTOMP + {0x87, 0x04}, // SPECIES_SWAMPERT + {0x87, 0x05}, // SPECIES_POOCHYENA + {0x76, 0x09}, // SPECIES_MIGHTYENA + {0x87, 0x04}, // SPECIES_ZIGZAGOON + {0x76, 0x0b}, // SPECIES_LINOONE + {0x85, 0x0f}, // SPECIES_WURMPLE + {0x76, 0x0b}, // SPECIES_SILCOON + {0x83, 0x15}, // SPECIES_BEAUTIFLY + {0x88, 0x00}, // SPECIES_CASCOON + {0x73, 0x14}, // SPECIES_DUSTOX + {0x83, 0x14}, // SPECIES_LOTAD + {0x75, 0x0f}, // SPECIES_LOMBRE + {0x86, 0x08}, // SPECIES_LUDICOLO + {0x86, 0x0a}, // SPECIES_SEEDOT + {0x86, 0x09}, // SPECIES_NUZLEAF + {0x76, 0x0a}, // SPECIES_SHIFTRY + {0x86, 0x08}, // SPECIES_NINCADA + {0x83, 0x14}, // SPECIES_NINJASK + {0x86, 0x08}, // SPECIES_SHEDINJA + {0x77, 0x06}, // SPECIES_TAILLOW + {0x64, 0x11}, // SPECIES_SWELLOW + {0x86, 0x08}, // SPECIES_SHROOMISH + {0x85, 0x0d}, // SPECIES_BRELOOM + {0x87, 0x04}, // SPECIES_SPINDA + {0x77, 0x04}, // SPECIES_WINGULL + {0x85, 0x0e}, // SPECIES_PELIPPER + {0x87, 0x06}, // SPECIES_SURSKIT + {0x86, 0x0b}, // SPECIES_MASQUERAIN + {0x88, 0x00}, // SPECIES_WAILMER + {0x83, 0x15}, // SPECIES_WAILORD + {0x83, 0x16}, // SPECIES_SKITTY + {0x86, 0x0a}, // SPECIES_DELCATTY + {0x86, 0x08}, // SPECIES_KECLEON + {0x87, 0x06}, // SPECIES_BALTOY + {0x86, 0x08}, // SPECIES_CLAYDOL + {0x87, 0x07}, // SPECIES_NOSEPASS + {0x85, 0x0c}, // SPECIES_TORKOAL + {0x86, 0x0a}, // SPECIES_SABLEYE + {0x76, 0x08}, // SPECIES_BARBOACH + {0x66, 0x0a}, // SPECIES_WHISCASH + {0x86, 0x0a}, // SPECIES_LUVDISC + {0x46, 0x0a}, // SPECIES_CORPHISH + {0x77, 0x07}, // SPECIES_CRAWDAUNT + {0x87, 0x05}, // SPECIES_FEEBAS + {0x67, 0x07}, // SPECIES_MILOTIC + {0x68, 0x02}, // SPECIES_CARVANHA + {0x87, 0x07}, // SPECIES_SHARPEDO + {0x88, 0x02}, // SPECIES_TRAPINCH + {0x75, 0x0e}, // SPECIES_VIBRAVA + {0x74, 0x11}, // SPECIES_FLYGON + {0x88, 0x02}, // SPECIES_MAKUHITA + {0x76, 0x0b}, // SPECIES_HARIYAMA + {0x87, 0x07}, // SPECIES_ELECTRIKE + {0x84, 0x10}, // SPECIES_MANECTRIC + {0x87, 0x04}, // SPECIES_NUMEL + {0x86, 0x0b}, // SPECIES_CAMERUPT + {0x84, 0x13}, // SPECIES_SPHEAL + {0x64, 0x12}, // SPECIES_SEALEO + {0x86, 0x0a}, // SPECIES_WALREIN + {0x87, 0x06}, // SPECIES_CACNEA + {0x85, 0x0f}, // SPECIES_CACTURNE + {0x87, 0x07}, // SPECIES_SNORUNT + {0x76, 0x0a}, // SPECIES_GLALIE + {0x85, 0x0c}, // SPECIES_LUNATONE + {0x87, 0x05}, // SPECIES_SOLROCK + {0x87, 0x05}, // SPECIES_AZURILL + {0x86, 0x0a}, // SPECIES_SPOINK + {0x56, 0x0b}, // SPECIES_GRUMPIG + {0x87, 0x04}, // SPECIES_PLUSLE + {0x76, 0x08}, // SPECIES_MINUN + {0x76, 0x08}, // SPECIES_MAWILE + {0x87, 0x04}, // SPECIES_MEDITITE + {0x76, 0x0b}, // SPECIES_MEDICHAM + {0x68, 0x03}, // SPECIES_SWABLU + {0x86, 0x09}, // SPECIES_ALTARIA + {0x87, 0x06}, // SPECIES_WYNAUT + {0x77, 0x07}, // SPECIES_DUSKULL + {0x66, 0x0b}, // SPECIES_DUSCLOPS + {0x86, 0x08}, // SPECIES_ROSELIA + {0x86, 0x08}, // SPECIES_SLAKOTH + {0x85, 0x0f}, // SPECIES_VIGOROTH + {0x86, 0x0a}, // SPECIES_SLAKING + {0x86, 0x08}, // SPECIES_GULPIN + {0x66, 0x0b}, // SPECIES_SWALOT + {0x77, 0x06}, // SPECIES_TROPIUS + {0x87, 0x07}, // SPECIES_WHISMUR + {0x85, 0x0d}, // SPECIES_LOUDRED + {0x86, 0x09}, // SPECIES_EXPLOUD + {0x88, 0x03}, // SPECIES_CLAMPERL + {0x85, 0x0d}, // SPECIES_HUNTAIL + {0x68, 0x02}, // SPECIES_GOREBYSS + {0x77, 0x05}, // SPECIES_ABSOL + {0x78, 0x03}, // SPECIES_SHUPPET + {0x77, 0x06}, // SPECIES_BANETTE + {0x65, 0x0c}, // SPECIES_SEVIPER + {0x88, 0x03}, // SPECIES_ZANGOOSE + {0x88, 0x01}, // SPECIES_RELICANTH + {0x86, 0x0a}, // SPECIES_ARON + {0x54, 0x11}, // SPECIES_LAIRON + {0x84, 0x11}, // SPECIES_AGGRON + {0x87, 0x07}, // SPECIES_CASTFORM + {0x45, 0x0d}, // SPECIES_VOLBEAT + {0x76, 0x08}, // SPECIES_ILLUMISE + {0x67, 0x06}, // SPECIES_LILEEP + {0x86, 0x09}, // SPECIES_CRADILY + {0x77, 0x04}, // SPECIES_ANORITH + {0x83, 0x17}, // SPECIES_ARMALDO + {0x77, 0x05}, // SPECIES_RALTS + {0x45, 0x0d}, // SPECIES_KIRLIA + {0x57, 0x06}, // SPECIES_GARDEVOIR + {0x77, 0x04}, // SPECIES_BAGON + {0x66, 0x08}, // SPECIES_SHELGON + {0x85, 0x0d}, // SPECIES_SALAMENCE + {0x77, 0x06}, // SPECIES_BELDUM + {0x66, 0x0a}, // SPECIES_METANG + {0x84, 0x10}, // SPECIES_METAGROSS + {0x83, 0x14}, // SPECIES_REGIROCK + {0x86, 0x0a}, // SPECIES_REGICE + {0x85, 0x0e}, // SPECIES_REGISTEEL + {0x85, 0x0e}, // SPECIES_KYOGRE + {0x84, 0x13}, // SPECIES_GROUDON + {0x87, 0x07}, // SPECIES_RAYQUAZA + {0x78, 0x00}, // SPECIES_LATIAS + {0x88, 0x02}, // SPECIES_LATIOS + {0x88, 0x03}, // SPECIES_JIRACHI + {0x87, 0x05}, // SPECIES_DEOXYS + {0x86, 0x09}, // SPECIES_CHIMECHO + {0x47, 0x07}, // SPECIES_EGG + {0x36, 0x0a}, // SPECIES_UNOWN_B + {0x56, 0x09}, // SPECIES_UNOWN_C + {0x67, 0x06}, // SPECIES_UNOWN_D + {0x56, 0x08}, // SPECIES_UNOWN_E + {0x56, 0x0a}, // SPECIES_UNOWN_F + {0x66, 0x0a}, // SPECIES_UNOWN_G + {0x57, 0x05}, // SPECIES_UNOWN_H + {0x66, 0x08}, // SPECIES_UNOWN_I + {0x37, 0x07}, // SPECIES_UNOWN_J + {0x46, 0x09}, // SPECIES_UNOWN_K + {0x57, 0x07}, // SPECIES_UNOWN_L + {0x46, 0x0a}, // SPECIES_UNOWN_M + {0x65, 0x0d}, // SPECIES_UNOWN_N + {0x65, 0x0d}, // SPECIES_UNOWN_O + {0x66, 0x08}, // SPECIES_UNOWN_P + {0x46, 0x0a}, // SPECIES_UNOWN_Q + {0x55, 0x0f}, // SPECIES_UNOWN_R + {0x45, 0x0c}, // SPECIES_UNOWN_S + {0x57, 0x04}, // SPECIES_UNOWN_T + {0x45, 0x0d}, // SPECIES_UNOWN_U + {0x65, 0x0d}, // SPECIES_UNOWN_V + {0x56, 0x0b}, // SPECIES_UNOWN_W + {0x55, 0x0d}, // SPECIES_UNOWN_X + {0x55, 0x0f}, // SPECIES_UNOWN_Y + {0x46, 0x0a}, // SPECIES_UNOWN_Z + {0x46, 0x0a}, // SPECIES_UNOWN_EMARK + {0x37, 0x06}, // SPECIES_UNOWN_QMARK + {0x47, 0x06}, +}; diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h new file mode 100644 index 0000000000..fde423570e --- /dev/null +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -0,0 +1,443 @@ +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_VENONAT + {0x66, 0x08}, // SPECIES_VENOMOTH + {0x88, 0x02}, // SPECIES_DIGLETT + {0x54, 0x12}, // SPECIES_DUGTRIO + {0x75, 0x0d}, // SPECIES_MEOWTH + {0x55, 0x0c}, // SPECIES_PERSIAN + {0x77, 0x07}, // SPECIES_PSYDUCK + {0x56, 0x09}, // SPECIES_GOLDUCK + {0x78, 0x02}, // SPECIES_MANKEY + {0x65, 0x0e}, // SPECIES_PRIMEAPE + {0x77, 0x07}, // SPECIES_GROWLITHE + {0x66, 0x0b}, // SPECIES_ARCANINE + {0x88, 0x02}, // SPECIES_POLIWAG + {0x74, 0x13}, // SPECIES_POLIWHIRL + {0x76, 0x0a}, // SPECIES_POLIWRATH + {0x76, 0x08}, // SPECIES_ABRA + {0x66, 0x0b}, // SPECIES_KADABRA + {0x77, 0x05}, // SPECIES_ALAKAZAM + {0x87, 0x04}, // SPECIES_MACHOP + {0x56, 0x0b}, // SPECIES_MACHOKE + {0x67, 0x06}, // SPECIES_MACHAMP + {0x88, 0x01}, // SPECIES_BELLSPROUT + {0x65, 0x0f}, // SPECIES_WEEPINBELL + {0x66, 0x0b}, // SPECIES_VICTREEBEL + {0x77, 0x05}, // SPECIES_TENTACOOL + {0x46, 0x09}, // SPECIES_TENTACRUEL + {0x87, 0x04}, // SPECIES_GEODUDE + {0x54, 0x12}, // SPECIES_GRAVELER + {0x87, 0x04}, // SPECIES_GOLEM + {0x77, 0x05}, // SPECIES_PONYTA + {0x66, 0x08}, // SPECIES_RAPIDASH + {0x88, 0x01}, // SPECIES_SLOWPOKE + {0x66, 0x0b}, // SPECIES_SLOWBRO + {0x86, 0x08}, // SPECIES_MAGNEMITE + {0x43, 0x15}, // SPECIES_MAGNETON + {0x76, 0x08}, // SPECIES_FARFETCHD + {0x66, 0x09}, // SPECIES_DODUO + {0x57, 0x05}, // SPECIES_DODRIO + {0x88, 0x00}, // SPECIES_SEEL + {0x76, 0x0a}, // SPECIES_DEWGONG + {0x87, 0x07}, // SPECIES_GRIMER + {0x65, 0x0c}, // SPECIES_MUK + {0x87, 0x04}, // SPECIES_SHELLDER + {0x55, 0x10}, // SPECIES_CLOYSTER + {0x87, 0x05}, // SPECIES_GASTLY + {0x77, 0x06}, // SPECIES_HAUNTER + {0x77, 0x05}, // SPECIES_GENGAR + {0x77, 0x05}, // SPECIES_ONIX + {0x78, 0x02}, // SPECIES_DROWZEE + {0x77, 0x07}, // SPECIES_HYPNO + {0x77, 0x04}, // SPECIES_KRABBY + {0x65, 0x0d}, // SPECIES_KINGLER + {0x88, 0x03}, // SPECIES_VOLTORB + {0x44, 0x13}, // SPECIES_ELECTRODE + {0x55, 0x0e}, // SPECIES_EXEGGCUTE + {0x87, 0x07}, // SPECIES_EXEGGUTOR + {0x88, 0x00}, // SPECIES_CUBONE + {0x55, 0x0f}, // SPECIES_MAROWAK + {0x76, 0x0b}, // SPECIES_HITMONLEE + {0x87, 0x04}, // SPECIES_HITMONCHAN + {0x67, 0x04}, // SPECIES_LICKITUNG + {0x86, 0x08}, // SPECIES_KOFFING + {0x66, 0x08}, // SPECIES_WEEZING + {0x88, 0x02}, // SPECIES_RHYHORN + {0x76, 0x09}, // SPECIES_RHYDON + {0x88, 0x02}, // SPECIES_CHANSEY + {0x76, 0x09}, // SPECIES_TANGELA + {0x67, 0x07}, // SPECIES_KANGASKHAN + {0x88, 0x00}, // SPECIES_HORSEA + {0x45, 0x0f}, // SPECIES_SEADRA + {0x67, 0x07}, // SPECIES_GOLDEEN + {0x66, 0x0a}, // SPECIES_SEAKING + {0x77, 0x04}, // SPECIES_STARYU + {0x66, 0x0a}, // SPECIES_STARMIE + {0x77, 0x06}, // SPECIES_MR_MIME + {0x66, 0x08}, // SPECIES_SCYTHER + {0x88, 0x00}, // SPECIES_JYNX + {0x77, 0x04}, // SPECIES_ELECTABUZZ + {0x78, 0x02}, // SPECIES_MAGMAR + {0x77, 0x04}, // SPECIES_PINSIR + {0x77, 0x04}, // SPECIES_TAUROS + {0x78, 0x00}, // SPECIES_MAGIKARP + {0x67, 0x06}, // SPECIES_GYARADOS + {0x88, 0x08}, // SPECIES_LAPRAS + {0x85, 0x0d}, // SPECIES_DITTO + {0x54, 0x11}, // SPECIES_EEVEE + {0x56, 0x09}, // SPECIES_VAPOREON + {0x67, 0x06}, // SPECIES_JOLTEON + {0x76, 0x09}, // SPECIES_FLAREON + {0x66, 0x0a}, // SPECIES_PORYGON + {0x55, 0x0d}, // SPECIES_OMANYTE + {0x45, 0x0f}, // SPECIES_OMASTAR + {0x67, 0x07}, // SPECIES_KABUTO + {0x54, 0x11}, // SPECIES_KABUTOPS + {0x88, 0x03}, // SPECIES_AERODACTYL + {0x88, 0x01}, // SPECIES_SNORLAX + {0x87, 0x05}, // SPECIES_ARTICUNO + {0x88, 0x03}, // SPECIES_ZAPDOS + {0x87, 0x04}, // SPECIES_MOLTRES + {0x88, 0x00}, // SPECIES_DRATINI + {0x75, 0x0e}, // SPECIES_DRAGONAIR + {0x87, 0x06}, // SPECIES_DRAGONITE + {0x88, 0x00}, // SPECIES_MEWTWO + {0x88, 0x00}, // SPECIES_MEW + {0x55, 0x0d}, // SPECIES_CHIKORITA + {0x75, 0x0d}, // SPECIES_BAYLEEF + {0x77, 0x04}, // SPECIES_MEGANIUM + {0x88, 0x00}, // SPECIES_CYNDAQUIL + {0x55, 0x0e}, // SPECIES_QUILAVA + {0x76, 0x08}, // SPECIES_TYPHLOSION + {0x78, 0x00}, // SPECIES_TOTODILE + {0x55, 0x0f}, // SPECIES_CROCONAW + {0x67, 0x06}, // SPECIES_FERALIGATR + {0x88, 0x00}, // SPECIES_SENTRET + {0x47, 0x04}, // SPECIES_FURRET + {0x67, 0x07}, // SPECIES_HOOTHOOT + {0x55, 0x0d}, // SPECIES_NOCTOWL + {0x58, 0x03}, // SPECIES_LEDYBA + {0x56, 0x0c}, // SPECIES_LEDIAN + {0x67, 0x04}, // SPECIES_SPINARAK + {0x54, 0x13}, // SPECIES_ARIADOS + {0x87, 0x05}, // SPECIES_CROBAT + {0x88, 0x00}, // SPECIES_CHINCHOU + {0x75, 0x10}, // SPECIES_LANTURN + {0x87, 0x0b}, // SPECIES_PICHU + {0x45, 0x0c}, // SPECIES_CLEFFA + {0x44, 0x14}, // SPECIES_IGGLYBUFF + {0x44, 0x12}, // SPECIES_TOGEPI + {0x34, 0x14}, // SPECIES_TOGETIC + {0x46, 0x09}, // SPECIES_NATU + {0x44, 0x14}, // SPECIES_XATU + {0x47, 0x07}, // SPECIES_MAREEP + {0x55, 0x10}, // SPECIES_FLAAFFY + {0x56, 0x0a}, // SPECIES_AMPHAROS + {0x77, 0x05}, // SPECIES_BELLOSSOM + {0x45, 0x0e}, // SPECIES_MARILL + {0x65, 0x0e}, // SPECIES_AZUMARILL + {0x76, 0x09}, // SPECIES_SUDOWOODO + {0x67, 0x06}, // SPECIES_POLITOED + {0x67, 0x06}, // SPECIES_HOPPIP + {0x66, 0x0a}, // SPECIES_SKIPLOOM + {0x55, 0x0f}, // SPECIES_JUMPLUFF + {0x77, 0x07}, // SPECIES_AIPOM + {0x58, 0x03}, // SPECIES_SUNKERN + {0x44, 0x10}, // SPECIES_SUNFLORA + {0x56, 0x08}, // SPECIES_YANMA + {0x86, 0x0a}, // SPECIES_WOOPER + {0x54, 0x10}, // SPECIES_QUAGSIRE + {0x77, 0x07}, // SPECIES_ESPEON + {0x66, 0x08}, // SPECIES_UMBREON + {0x67, 0x08}, // SPECIES_MURKROW + {0x66, 0x0b}, // SPECIES_SLOWKING + {0x58, 0x01}, // SPECIES_MISDREAVUS + {0x55, 0x0c}, // SPECIES_UNOWN + {0x35, 0x0f}, // SPECIES_WOBBUFFET + {0x77, 0x06}, // SPECIES_GIRAFARIG + {0x88, 0x03}, // SPECIES_PINECO + {0x56, 0x0a}, // SPECIES_FORRETRESS + {0x76, 0x09}, // SPECIES_DUNSPARCE + {0x74, 0x11}, // SPECIES_GLIGAR + {0x78, 0x03}, // SPECIES_STEELIX + {0x88, 0x00}, // SPECIES_SNUBBULL + {0x55, 0x0d}, // SPECIES_GRANBULL + {0x57, 0x06}, // SPECIES_QWILFISH + {0x56, 0x0a}, // SPECIES_SCIZOR + {0x88, 0x00}, // SPECIES_SHUCKLE + {0x66, 0x09}, // SPECIES_HERACROSS + {0x88, 0x03}, // SPECIES_SNEASEL + {0x67, 0x05}, // SPECIES_TEDDIURSA + {0x45, 0x0d}, // SPECIES_URSARING + {0x78, 0x01}, // SPECIES_SLUGMA + {0x45, 0x0d}, // SPECIES_MAGCARGO + {0x57, 0x0d}, // SPECIES_SWINUB + {0x43, 0x14}, // SPECIES_PILOSWINE + {0x66, 0x08}, // SPECIES_CORSOLA + {0x65, 0x0c}, // SPECIES_REMORAID + {0x55, 0x0e}, // SPECIES_OCTILLERY + {0x66, 0x0a}, // SPECIES_DELIBIRD + {0x56, 0x08}, // SPECIES_MANTINE + {0x88, 0x01}, // SPECIES_SKARMORY + {0x88, 0x00}, // SPECIES_HOUNDOUR + {0x56, 0x0b}, // SPECIES_HOUNDOOM + {0x77, 0x05}, // SPECIES_KINGDRA + {0x78, 0x04}, // SPECIES_PHANPY + {0x54, 0x10}, // SPECIES_DONPHAN + {0x86, 0x08}, // SPECIES_PORYGON2 + {0x55, 0x0f}, // SPECIES_STANTLER + {0x88, 0x00}, // SPECIES_SMEARGLE + {0x77, 0x06}, // SPECIES_TYROGUE + {0x46, 0x09}, // SPECIES_HITMONTOP + {0x67, 0x05}, // SPECIES_SMOOCHUM + {0x35, 0x0f}, // SPECIES_ELEKID + {0x76, 0x0a}, // SPECIES_MAGBY + {0x45, 0x0d}, // SPECIES_MILTANK + {0x77, 0x04}, // SPECIES_BLISSEY + {0x77, 0x06}, // SPECIES_RAIKOU + {0x88, 0x00}, // SPECIES_ENTEI + {0x88, 0x00}, // SPECIES_SUICUNE + {0x88, 0x00}, // SPECIES_LARVITAR + {0x46, 0x09}, // SPECIES_PUPITAR + {0x56, 0x09}, // SPECIES_TYRANITAR + {0x88, 0x00}, // SPECIES_LUGIA + {0x88, 0x00}, // SPECIES_HO_OH + {0x88, 0x00}, // SPECIES_CELEBI + {0x55, 0x0e}, // 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 + {0x87, 0x04}, // SPECIES_TREECKO + {0x66, 0x08}, // SPECIES_GROVYLE + {0x87, 0x04}, // SPECIES_SCEPTILE + {0x88, 0x00}, // SPECIES_TORCHIC + {0x56, 0x08}, // SPECIES_COMBUSKEN + {0x88, 0x01}, // SPECIES_BLAZIKEN + {0x88, 0x00}, // SPECIES_MUDKIP + {0x56, 0x0c}, // SPECIES_MARSHTOMP + {0x67, 0x06}, // SPECIES_SWAMPERT + {0x88, 0x00}, // SPECIES_POOCHYENA + {0x55, 0x0c}, // SPECIES_MIGHTYENA + {0x87, 0x04}, // SPECIES_ZIGZAGOON + {0x85, 0x0f}, // SPECIES_LINOONE + {0x78, 0x03}, // SPECIES_WURMPLE + {0x45, 0x0e}, // SPECIES_SILCOON + {0x75, 0x11}, // SPECIES_BEAUTIFLY + {0x86, 0x09}, // SPECIES_CASCOON + {0x74, 0x10}, // SPECIES_DUSTOX + {0x86, 0x0f}, // SPECIES_LOTAD + {0x65, 0x0e}, // SPECIES_LOMBRE + {0x66, 0x09}, // SPECIES_LUDICOLO + {0x88, 0x00}, // SPECIES_SEEDOT + {0x46, 0x10}, // SPECIES_NUZLEAF + {0x56, 0x08}, // SPECIES_SHIFTRY + {0x88, 0x02}, // SPECIES_NINCADA + {0x74, 0x12}, // SPECIES_NINJASK + {0x86, 0x0a}, // SPECIES_SHEDINJA + {0x66, 0x0a}, // SPECIES_TAILLOW + {0x64, 0x10}, // SPECIES_SWELLOW + {0x87, 0x06}, // SPECIES_SHROOMISH + {0x54, 0x10}, // SPECIES_BRELOOM + {0x77, 0x04}, // SPECIES_SPINDA + {0x68, 0x08}, // SPECIES_WINGULL + {0x84, 0x18}, // SPECIES_PELIPPER + {0x77, 0x04}, // SPECIES_SURSKIT + {0x65, 0x0f}, // SPECIES_MASQUERAIN + {0x88, 0x01}, // SPECIES_WAILMER + {0x75, 0x0f}, // SPECIES_WAILORD + {0x87, 0x0a}, // SPECIES_SKITTY + {0x66, 0x0b}, // SPECIES_DELCATTY + {0x66, 0x08}, // SPECIES_KECLEON + {0x67, 0x07}, // SPECIES_BALTOY + {0x55, 0x10}, // SPECIES_CLAYDOL + {0x78, 0x06}, // SPECIES_NOSEPASS + {0x56, 0x0c}, // SPECIES_TORKOAL + {0x88, 0x02}, // SPECIES_SABLEYE + {0x66, 0x09}, // SPECIES_BARBOACH + {0x46, 0x0b}, // SPECIES_WHISCASH + {0x76, 0x09}, // SPECIES_LUVDISC + {0x46, 0x18}, // SPECIES_CORPHISH + {0x66, 0x0c}, // SPECIES_CRAWDAUNT + {0x88, 0x01}, // SPECIES_FEEBAS + {0x46, 0x0d}, // SPECIES_MILOTIC + {0x88, 0x00}, // SPECIES_CARVANHA + {0x67, 0x06}, // SPECIES_SHARPEDO + {0x78, 0x03}, // SPECIES_TRAPINCH + {0x54, 0x10}, // SPECIES_VIBRAVA + {0x86, 0x0c}, // SPECIES_FLYGON + {0x88, 0x01}, // SPECIES_MAKUHITA + {0x65, 0x0c}, // SPECIES_HARIYAMA + {0x88, 0x01}, // SPECIES_ELECTRIKE + {0x64, 0x12}, // SPECIES_MANECTRIC + {0x67, 0x04}, // SPECIES_NUMEL + {0x65, 0x0f}, // SPECIES_CAMERUPT + {0x87, 0x09}, // SPECIES_SPHEAL + {0x65, 0x10}, // SPECIES_SEALEO + {0x86, 0x0a}, // SPECIES_WALREIN + {0x88, 0x01}, // SPECIES_CACNEA + {0x74, 0x10}, // SPECIES_CACTURNE + {0x88, 0x00}, // SPECIES_SNORUNT + {0x56, 0x0b}, // SPECIES_GLALIE + {0x76, 0x0a}, // SPECIES_LUNATONE + {0x66, 0x09}, // SPECIES_SOLROCK + {0x88, 0x01}, // SPECIES_AZURILL + {0x55, 0x0f}, // SPECIES_SPOINK + {0x46, 0x09}, // SPECIES_GRUMPIG + {0x77, 0x05}, // SPECIES_PLUSLE + {0x56, 0x0e}, // SPECIES_MINUN + {0x66, 0x0c}, // SPECIES_MAWILE + {0x76, 0x08}, // SPECIES_MEDITITE + {0x65, 0x0c}, // SPECIES_MEDICHAM + {0x68, 0x01}, // SPECIES_SWABLU + {0x76, 0x11}, // SPECIES_ALTARIA + {0x88, 0x02}, // SPECIES_WYNAUT + {0x55, 0x0c}, // SPECIES_DUSKULL + {0x66, 0x0a}, // SPECIES_DUSCLOPS + {0x77, 0x05}, // SPECIES_ROSELIA + {0x76, 0x08}, // SPECIES_SLAKOTH + {0x74, 0x12}, // SPECIES_VIGOROTH + {0x78, 0x00}, // SPECIES_SLAKING + {0x86, 0x08}, // SPECIES_GULPIN + {0x55, 0x12}, // SPECIES_SWALOT + {0x66, 0x08}, // SPECIES_TROPIUS + {0x88, 0x00}, // SPECIES_WHISMUR + {0x55, 0x0e}, // SPECIES_LOUDRED + {0x78, 0x03}, // SPECIES_EXPLOUD + {0x88, 0x01}, // SPECIES_CLAMPERL + {0x55, 0x0e}, // SPECIES_HUNTAIL + {0x78, 0x03}, // SPECIES_GOREBYSS + {0x86, 0x0b}, // SPECIES_ABSOL + {0x68, 0x00}, // SPECIES_SHUPPET + {0x56, 0x0e}, // SPECIES_BANETTE + {0x55, 0x0c}, // SPECIES_SEVIPER + {0x77, 0x08}, // SPECIES_ZANGOOSE + {0x87, 0x05}, // SPECIES_RELICANTH + {0x77, 0x0b}, // SPECIES_ARON + {0x43, 0x14}, // SPECIES_LAIRON + {0x75, 0x0d}, // SPECIES_AGGRON + {0x88, 0x00}, // SPECIES_CASTFORM + {0x34, 0x11}, // SPECIES_VOLBEAT + {0x66, 0x08}, // SPECIES_ILLUMISE + {0x56, 0x08}, // SPECIES_LILEEP + {0x67, 0x07}, // SPECIES_CRADILY + {0x78, 0x00}, // SPECIES_ANORITH + {0x66, 0x08}, // SPECIES_ARMALDO + {0x88, 0x00}, // SPECIES_RALTS + {0x35, 0x0f}, // SPECIES_KIRLIA + {0x47, 0x06}, // SPECIES_GARDEVOIR + {0x78, 0x01}, // SPECIES_BAGON + {0x56, 0x0b}, // SPECIES_SHELGON + {0x66, 0x09}, // SPECIES_SALAMENCE + {0x87, 0x04}, // SPECIES_BELDUM + {0x55, 0x0f}, // SPECIES_METANG + {0x87, 0x07}, // SPECIES_METAGROSS + {0x87, 0x06}, // SPECIES_REGIROCK + {0x78, 0x04}, // SPECIES_REGICE + {0x88, 0x02}, // SPECIES_REGISTEEL + {0x88, 0x03}, // SPECIES_KYOGRE + {0x87, 0x04}, // SPECIES_GROUDON + {0x88, 0x01}, // SPECIES_RAYQUAZA + {0x88, 0x00}, // SPECIES_LATIAS + {0x88, 0x01}, // SPECIES_LATIOS + {0x88, 0x02}, // SPECIES_JIRACHI + {0x66, 0x0d}, // SPECIES_DEOXYS + {0x88, 0x01}, // SPECIES_CHIMECHO + {0x37, 0x06}, // SPECIES_EGG + {0x33, 0x14}, // SPECIES_UNOWN_B + {0x34, 0x10}, // SPECIES_UNOWN_C + {0x44, 0x10}, // SPECIES_UNOWN_D + {0x44, 0x10}, // SPECIES_UNOWN_E + {0x44, 0x11}, // SPECIES_UNOWN_F + {0x44, 0x11}, // SPECIES_UNOWN_G + {0x35, 0x0e}, // SPECIES_UNOWN_H + {0x44, 0x10}, // SPECIES_UNOWN_I + {0x34, 0x10}, // SPECIES_UNOWN_J + {0x34, 0x11}, // SPECIES_UNOWN_K + {0x44, 0x11}, // SPECIES_UNOWN_L + {0x34, 0x13}, // SPECIES_UNOWN_M + {0x44, 0x13}, // SPECIES_UNOWN_N + {0x43, 0x14}, // SPECIES_UNOWN_O + {0x44, 0x10}, // SPECIES_UNOWN_P + {0x34, 0x13}, // SPECIES_UNOWN_Q + {0x43, 0x15}, // SPECIES_UNOWN_R + {0x34, 0x13}, // SPECIES_UNOWN_S + {0x45, 0x0c}, // SPECIES_UNOWN_T + {0x34, 0x12}, // SPECIES_UNOWN_U + {0x44, 0x12}, // SPECIES_UNOWN_V + {0x44, 0x12}, // SPECIES_UNOWN_W + {0x44, 0x13}, // SPECIES_UNOWN_X + {0x33, 0x15}, // SPECIES_UNOWN_Y + {0x34, 0x11}, // SPECIES_UNOWN_Z + {0x34, 0x10}, // SPECIES_UNOWN_EMARK + {0x35, 0x0f}, // SPECIES_UNOWN_QMARK + {0x35, 0x0d}, +}; diff --git a/src/data/pokemon_graphics/still_front_pic_table.h b/src/data/pokemon_graphics/still_front_pic_table.h new file mode 100644 index 0000000000..a345a3d439 --- /dev/null +++ b/src/data/pokemon_graphics/still_front_pic_table.h @@ -0,0 +1,446 @@ +const struct CompressedSpriteSheet gMonStillFrontPicTable[] = +{ //.data .size .tag + gMonStillFrontPic_CircledQuestionMark, 0x800, 0, + gMonStillFrontPic_Bulbasaur, 0x800, 1, + gMonStillFrontPic_Ivysaur, 0x800, 2, + gMonStillFrontPic_Venusaur, 0x800, 3, + gMonStillFrontPic_Charmander, 0x800, 4, + gMonStillFrontPic_Charmeleon, 0x800, 5, + gMonStillFrontPic_Charizard, 0x800, 6, + gMonStillFrontPic_Squirtle, 0x800, 7, + gMonStillFrontPic_Wartortle, 0x800, 8, + gMonStillFrontPic_Blastoise, 0x800, 9, + gMonStillFrontPic_Caterpie, 0x800, 10, + gMonStillFrontPic_Metapod, 0x800, 11, + gMonStillFrontPic_Butterfree, 0x800, 12, + gMonStillFrontPic_Weedle, 0x800, 13, + gMonStillFrontPic_Kakuna, 0x800, 14, + gMonStillFrontPic_Beedrill, 0x800, 15, + gMonStillFrontPic_Pidgey, 0x800, 16, + gMonStillFrontPic_Pidgeotto, 0x800, 17, + gMonStillFrontPic_Pidgeot, 0x800, 18, + gMonStillFrontPic_Rattata, 0x800, 19, + gMonStillFrontPic_Raticate, 0x800, 20, + gMonStillFrontPic_Spearow, 0x800, 21, + gMonStillFrontPic_Fearow, 0x800, 22, + gMonStillFrontPic_Ekans, 0x800, 23, + gMonStillFrontPic_Arbok, 0x800, 24, + gMonStillFrontPic_Pikachu, 0x800, 25, + gMonStillFrontPic_Raichu, 0x800, 26, + gMonStillFrontPic_Sandshrew, 0x800, 27, + gMonStillFrontPic_Sandslash, 0x800, 28, + gMonStillFrontPic_NidoranF, 0x800, 29, + gMonStillFrontPic_Nidorina, 0x800, 30, + gMonStillFrontPic_Nidoqueen, 0x800, 31, + gMonStillFrontPic_NidoranM, 0x800, 32, + gMonStillFrontPic_Nidorino, 0x800, 33, + gMonStillFrontPic_Nidoking, 0x800, 34, + gMonStillFrontPic_Clefairy, 0x800, 35, + gMonStillFrontPic_Clefable, 0x800, 36, + gMonStillFrontPic_Vulpix, 0x800, 37, + gMonStillFrontPic_Ninetales, 0x800, 38, + gMonStillFrontPic_Jigglypuff, 0x800, 39, + gMonStillFrontPic_Wigglytuff, 0x800, 40, + gMonStillFrontPic_Zubat, 0x800, 41, + gMonStillFrontPic_Golbat, 0x800, 42, + gMonStillFrontPic_Oddish, 0x800, 43, + gMonStillFrontPic_Gloom, 0x800, 44, + gMonStillFrontPic_Vileplume, 0x800, 45, + gMonStillFrontPic_Paras, 0x800, 46, + gMonStillFrontPic_Parasect, 0x800, 47, + gMonStillFrontPic_Venonat, 0x800, 48, + gMonStillFrontPic_Venomoth, 0x800, 49, + gMonStillFrontPic_Diglett, 0x800, 50, + gMonStillFrontPic_Dugtrio, 0x800, 51, + gMonStillFrontPic_Meowth, 0x800, 52, + gMonStillFrontPic_Persian, 0x800, 53, + gMonStillFrontPic_Psyduck, 0x800, 54, + gMonStillFrontPic_Golduck, 0x800, 55, + gMonStillFrontPic_Mankey, 0x800, 56, + gMonStillFrontPic_Primeape, 0x800, 57, + gMonStillFrontPic_Growlithe, 0x800, 58, + gMonStillFrontPic_Arcanine, 0x800, 59, + gMonStillFrontPic_Poliwag, 0x800, 60, + gMonStillFrontPic_Poliwhirl, 0x800, 61, + gMonStillFrontPic_Poliwrath, 0x800, 62, + gMonStillFrontPic_Abra, 0x800, 63, + gMonStillFrontPic_Kadabra, 0x800, 64, + gMonStillFrontPic_Alakazam, 0x800, 65, + gMonStillFrontPic_Machop, 0x800, 66, + gMonStillFrontPic_Machoke, 0x800, 67, + gMonStillFrontPic_Machamp, 0x800, 68, + gMonStillFrontPic_Bellsprout, 0x800, 69, + gMonStillFrontPic_Weepinbell, 0x800, 70, + gMonStillFrontPic_Victreebel, 0x800, 71, + gMonStillFrontPic_Tentacool, 0x800, 72, + gMonStillFrontPic_Tentacruel, 0x800, 73, + gMonStillFrontPic_Geodude, 0x800, 74, + gMonStillFrontPic_Graveler, 0x800, 75, + gMonStillFrontPic_Golem, 0x800, 76, + gMonStillFrontPic_Ponyta, 0x800, 77, + gMonStillFrontPic_Rapidash, 0x800, 78, + gMonStillFrontPic_Slowpoke, 0x800, 79, + gMonStillFrontPic_Slowbro, 0x800, 80, + gMonStillFrontPic_Magnemite, 0x800, 81, + gMonStillFrontPic_Magneton, 0x800, 82, + gMonStillFrontPic_Farfetchd, 0x800, 83, + gMonStillFrontPic_Doduo, 0x800, 84, + gMonStillFrontPic_Dodrio, 0x800, 85, + gMonStillFrontPic_Seel, 0x800, 86, + gMonStillFrontPic_Dewgong, 0x800, 87, + gMonStillFrontPic_Grimer, 0x800, 88, + gMonStillFrontPic_Muk, 0x800, 89, + gMonStillFrontPic_Shellder, 0x800, 90, + gMonStillFrontPic_Cloyster, 0x800, 91, + gMonStillFrontPic_Gastly, 0x800, 92, + gMonStillFrontPic_Haunter, 0x800, 93, + gMonStillFrontPic_Gengar, 0x800, 94, + gMonStillFrontPic_Onix, 0x800, 95, + gMonStillFrontPic_Drowzee, 0x800, 96, + gMonStillFrontPic_Hypno, 0x800, 97, + gMonStillFrontPic_Krabby, 0x800, 98, + gMonStillFrontPic_Kingler, 0x800, 99, + gMonStillFrontPic_Voltorb, 0x800, 100, + gMonStillFrontPic_Electrode, 0x800, 101, + gMonStillFrontPic_Exeggcute, 0x800, 102, + gMonStillFrontPic_Exeggutor, 0x800, 103, + gMonStillFrontPic_Cubone, 0x800, 104, + gMonStillFrontPic_Marowak, 0x800, 105, + gMonStillFrontPic_Hitmonlee, 0x800, 106, + gMonStillFrontPic_Hitmonchan, 0x800, 107, + gMonStillFrontPic_Lickitung, 0x800, 108, + gMonStillFrontPic_Koffing, 0x800, 109, + gMonStillFrontPic_Weezing, 0x800, 110, + gMonStillFrontPic_Rhyhorn, 0x800, 111, + gMonStillFrontPic_Rhydon, 0x800, 112, + gMonStillFrontPic_Chansey, 0x800, 113, + gMonStillFrontPic_Tangela, 0x800, 114, + gMonStillFrontPic_Kangaskhan, 0x800, 115, + gMonStillFrontPic_Horsea, 0x800, 116, + gMonStillFrontPic_Seadra, 0x800, 117, + gMonStillFrontPic_Goldeen, 0x800, 118, + gMonStillFrontPic_Seaking, 0x800, 119, + gMonStillFrontPic_Staryu, 0x800, 120, + gMonStillFrontPic_Starmie, 0x800, 121, + gMonStillFrontPic_Mrmime, 0x800, 122, + gMonStillFrontPic_Scyther, 0x800, 123, + gMonStillFrontPic_Jynx, 0x800, 124, + gMonStillFrontPic_Electabuzz, 0x800, 125, + gMonStillFrontPic_Magmar, 0x800, 126, + gMonStillFrontPic_Pinsir, 0x800, 127, + gMonStillFrontPic_Tauros, 0x800, 128, + gMonStillFrontPic_Magikarp, 0x800, 129, + gMonStillFrontPic_Gyarados, 0x800, 130, + gMonStillFrontPic_Lapras, 0x800, 131, + gMonStillFrontPic_Ditto, 0x800, 132, + gMonStillFrontPic_Eevee, 0x800, 133, + gMonStillFrontPic_Vaporeon, 0x800, 134, + gMonStillFrontPic_Jolteon, 0x800, 135, + gMonStillFrontPic_Flareon, 0x800, 136, + gMonStillFrontPic_Porygon, 0x800, 137, + gMonStillFrontPic_Omanyte, 0x800, 138, + gMonStillFrontPic_Omastar, 0x800, 139, + gMonStillFrontPic_Kabuto, 0x800, 140, + gMonStillFrontPic_Kabutops, 0x800, 141, + gMonStillFrontPic_Aerodactyl, 0x800, 142, + gMonStillFrontPic_Snorlax, 0x800, 143, + gMonStillFrontPic_Articuno, 0x800, 144, + gMonStillFrontPic_Zapdos, 0x800, 145, + gMonStillFrontPic_Moltres, 0x800, 146, + gMonStillFrontPic_Dratini, 0x800, 147, + gMonStillFrontPic_Dragonair, 0x800, 148, + gMonStillFrontPic_Dragonite, 0x800, 149, + gMonStillFrontPic_Mewtwo, 0x800, 150, + gMonStillFrontPic_Mew, 0x800, 151, +// Gen II + gMonStillFrontPic_Chikorita, 0x800, 152, + gMonStillFrontPic_Bayleef, 0x800, 153, + gMonStillFrontPic_Meganium, 0x800, 154, + gMonStillFrontPic_Cyndaquil, 0x800, 155, + gMonStillFrontPic_Quilava, 0x800, 156, + gMonStillFrontPic_Typhlosion, 0x800, 157, + gMonStillFrontPic_Totodile, 0x800, 158, + gMonStillFrontPic_Croconaw, 0x800, 159, + gMonStillFrontPic_Feraligatr, 0x800, 160, + gMonStillFrontPic_Sentret, 0x800, 161, + gMonStillFrontPic_Furret, 0x800, 162, + gMonStillFrontPic_Hoothoot, 0x800, 163, + gMonStillFrontPic_Noctowl, 0x800, 164, + gMonStillFrontPic_Ledyba, 0x800, 165, + gMonStillFrontPic_Ledian, 0x800, 166, + gMonStillFrontPic_Spinarak, 0x800, 167, + gMonStillFrontPic_Ariados, 0x800, 168, + gMonStillFrontPic_Crobat, 0x800, 169, + gMonStillFrontPic_Chinchou, 0x800, 170, + gMonStillFrontPic_Lanturn, 0x800, 171, + gMonStillFrontPic_Pichu, 0x800, 172, + gMonStillFrontPic_Cleffa, 0x800, 173, + gMonStillFrontPic_Igglybuff, 0x800, 174, + gMonStillFrontPic_Togepi, 0x800, 175, + gMonStillFrontPic_Togetic, 0x800, 176, + gMonStillFrontPic_Natu, 0x800, 177, + gMonStillFrontPic_Xatu, 0x800, 178, + gMonStillFrontPic_Mareep, 0x800, 179, + gMonStillFrontPic_Flaaffy, 0x800, 180, + gMonStillFrontPic_Ampharos, 0x800, 181, + gMonStillFrontPic_Bellossom, 0x800, 182, + gMonStillFrontPic_Marill, 0x800, 183, + gMonStillFrontPic_Azumarill, 0x800, 184, + gMonStillFrontPic_Sudowoodo, 0x800, 185, + gMonStillFrontPic_Politoed, 0x800, 186, + gMonStillFrontPic_Hoppip, 0x800, 187, + gMonStillFrontPic_Skiploom, 0x800, 188, + gMonStillFrontPic_Jumpluff, 0x800, 189, + gMonStillFrontPic_Aipom, 0x800, 190, + gMonStillFrontPic_Sunkern, 0x800, 191, + gMonStillFrontPic_Sunflora, 0x800, 192, + gMonStillFrontPic_Yanma, 0x800, 193, + gMonStillFrontPic_Wooper, 0x800, 194, + gMonStillFrontPic_Quagsire, 0x800, 195, + gMonStillFrontPic_Espeon, 0x800, 196, + gMonStillFrontPic_Umbreon, 0x800, 197, + gMonStillFrontPic_Murkrow, 0x800, 198, + gMonStillFrontPic_Slowking, 0x800, 199, + gMonStillFrontPic_Misdreavus, 0x800, 200, + gMonStillFrontPic_UnownA, 0x800, 201, + gMonStillFrontPic_Wobbuffet, 0x800, 202, + gMonStillFrontPic_Girafarig, 0x800, 203, + gMonStillFrontPic_Pineco, 0x800, 204, + gMonStillFrontPic_Forretress, 0x800, 205, + gMonStillFrontPic_Dunsparce, 0x800, 206, + gMonStillFrontPic_Gligar, 0x800, 207, + gMonStillFrontPic_Steelix, 0x800, 208, + gMonStillFrontPic_Snubbull, 0x800, 209, + gMonStillFrontPic_Granbull, 0x800, 210, + gMonStillFrontPic_Qwilfish, 0x800, 211, + gMonStillFrontPic_Scizor, 0x800, 212, + gMonStillFrontPic_Shuckle, 0x800, 213, + gMonStillFrontPic_Heracross, 0x800, 214, + gMonStillFrontPic_Sneasel, 0x800, 215, + gMonStillFrontPic_Teddiursa, 0x800, 216, + gMonStillFrontPic_Ursaring, 0x800, 217, + gMonStillFrontPic_Slugma, 0x800, 218, + gMonStillFrontPic_Magcargo, 0x800, 219, + gMonStillFrontPic_Swinub, 0x800, 220, + gMonStillFrontPic_Piloswine, 0x800, 221, + gMonStillFrontPic_Corsola, 0x800, 222, + gMonStillFrontPic_Remoraid, 0x800, 223, + gMonStillFrontPic_Octillery, 0x800, 224, + gMonStillFrontPic_Delibird, 0x800, 225, + gMonStillFrontPic_Mantine, 0x800, 226, + gMonStillFrontPic_Skarmory, 0x800, 227, + gMonStillFrontPic_Houndour, 0x800, 228, + gMonStillFrontPic_Houndoom, 0x800, 229, + gMonStillFrontPic_Kingdra, 0x800, 230, + gMonStillFrontPic_Phanpy, 0x800, 231, + gMonStillFrontPic_Donphan, 0x800, 232, + gMonStillFrontPic_Porygon2, 0x800, 233, + gMonStillFrontPic_Stantler, 0x800, 234, + gMonStillFrontPic_Smeargle, 0x800, 235, + gMonStillFrontPic_Tyrogue, 0x800, 236, + gMonStillFrontPic_Hitmontop, 0x800, 237, + gMonStillFrontPic_Smoochum, 0x800, 238, + gMonStillFrontPic_Elekid, 0x800, 239, + gMonStillFrontPic_Magby, 0x800, 240, + gMonStillFrontPic_Miltank, 0x800, 241, + gMonStillFrontPic_Blissey, 0x800, 242, + gMonStillFrontPic_Raikou, 0x800, 243, + gMonStillFrontPic_Entei, 0x800, 244, + gMonStillFrontPic_Suicune, 0x800, 245, + gMonStillFrontPic_Larvitar, 0x800, 246, + gMonStillFrontPic_Pupitar, 0x800, 247, + gMonStillFrontPic_Tyranitar, 0x800, 248, + gMonStillFrontPic_Lugia, 0x800, 249, + gMonStillFrontPic_HoOh, 0x800, 250, + gMonStillFrontPic_Celebi, 0x800, 251, +// Empty slots + gMonStillFrontPic_DoubleQuestionMark, 0x800, 252, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 253, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 254, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 255, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 256, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 257, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 258, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 259, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 260, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 261, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 262, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 263, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 264, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 265, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 266, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 267, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 268, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 269, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 270, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 271, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 272, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 273, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 274, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 275, + gMonStillFrontPic_DoubleQuestionMark, 0x800, 276, +// Gen III + gMonStillFrontPic_Treecko, 0x800, 277, + gMonStillFrontPic_Grovyle, 0x800, 278, + gMonStillFrontPic_Sceptile, 0x800, 279, + gMonStillFrontPic_Torchic, 0x800, 280, + gMonStillFrontPic_Combusken, 0x800, 281, + gMonStillFrontPic_Blaziken, 0x800, 282, + gMonStillFrontPic_Mudkip, 0x800, 283, + gMonStillFrontPic_Marshtomp, 0x800, 284, + gMonStillFrontPic_Swampert, 0x800, 285, + gMonStillFrontPic_Poochyena, 0x800, 286, + gMonStillFrontPic_Mightyena, 0x800, 287, + gMonStillFrontPic_Zigzagoon, 0x800, 288, + gMonStillFrontPic_Linoone, 0x800, 289, + gMonStillFrontPic_Wurmple, 0x800, 290, + gMonStillFrontPic_Silcoon, 0x800, 291, + gMonStillFrontPic_Beautifly, 0x800, 292, + gMonStillFrontPic_Cascoon, 0x800, 293, + gMonStillFrontPic_Dustox, 0x800, 294, + gMonStillFrontPic_Lotad, 0x800, 295, + gMonStillFrontPic_Lombre, 0x800, 296, + gMonStillFrontPic_Ludicolo, 0x800, 297, + gMonStillFrontPic_Seedot, 0x800, 298, + gMonStillFrontPic_Nuzleaf, 0x800, 299, + gMonStillFrontPic_Shiftry, 0x800, 300, + gMonStillFrontPic_Nincada, 0x800, 301, + gMonStillFrontPic_Ninjask, 0x800, 302, + gMonStillFrontPic_Shedinja, 0x800, 303, + gMonStillFrontPic_Taillow, 0x800, 304, + gMonStillFrontPic_Swellow, 0x800, 305, + gMonStillFrontPic_Shroomish, 0x800, 306, + gMonStillFrontPic_Breloom, 0x800, 307, + gMonStillFrontPic_Spinda, 0x800, 308, + gMonStillFrontPic_Wingull, 0x800, 309, + gMonStillFrontPic_Pelipper, 0x800, 310, + gMonStillFrontPic_Surskit, 0x800, 311, + gMonStillFrontPic_Masquerain, 0x800, 312, + gMonStillFrontPic_Wailmer, 0x800, 313, + gMonStillFrontPic_Wailord, 0x800, 314, + gMonStillFrontPic_Skitty, 0x800, 315, + gMonStillFrontPic_Delcatty, 0x800, 316, + gMonStillFrontPic_Kecleon, 0x800, 317, + gMonStillFrontPic_Baltoy, 0x800, 318, + gMonStillFrontPic_Claydol, 0x800, 319, + gMonStillFrontPic_Nosepass, 0x800, 320, + gMonStillFrontPic_Torkoal, 0x800, 321, + gMonStillFrontPic_Sableye, 0x800, 322, + gMonStillFrontPic_Barboach, 0x800, 323, + gMonStillFrontPic_Whiscash, 0x800, 324, + gMonStillFrontPic_Luvdisc, 0x800, 325, + gMonStillFrontPic_Corphish, 0x800, 326, + gMonStillFrontPic_Crawdaunt, 0x800, 327, + gMonStillFrontPic_Feebas, 0x800, 328, + gMonStillFrontPic_Milotic, 0x800, 329, + gMonStillFrontPic_Carvanha, 0x800, 330, + gMonStillFrontPic_Sharpedo, 0x800, 331, + gMonStillFrontPic_Trapinch, 0x800, 332, + gMonStillFrontPic_Vibrava, 0x800, 333, + gMonStillFrontPic_Flygon, 0x800, 334, + gMonStillFrontPic_Makuhita, 0x800, 335, + gMonStillFrontPic_Hariyama, 0x800, 336, + gMonStillFrontPic_Electrike, 0x800, 337, + gMonStillFrontPic_Manectric, 0x800, 338, + gMonStillFrontPic_Numel, 0x800, 339, + gMonStillFrontPic_Camerupt, 0x800, 340, + gMonStillFrontPic_Spheal, 0x800, 341, + gMonStillFrontPic_Sealeo, 0x800, 342, + gMonStillFrontPic_Walrein, 0x800, 343, + gMonStillFrontPic_Cacnea, 0x800, 344, + gMonStillFrontPic_Cacturne, 0x800, 345, + gMonStillFrontPic_Snorunt, 0x800, 346, + gMonStillFrontPic_Glalie, 0x800, 347, + gMonStillFrontPic_Lunatone, 0x800, 348, + gMonStillFrontPic_Solrock, 0x800, 349, + gMonStillFrontPic_Azurill, 0x800, 350, + gMonStillFrontPic_Spoink, 0x800, 351, + gMonStillFrontPic_Grumpig, 0x800, 352, + gMonStillFrontPic_Plusle, 0x800, 353, + gMonStillFrontPic_Minun, 0x800, 354, + gMonStillFrontPic_Mawile, 0x800, 355, + gMonStillFrontPic_Meditite, 0x800, 356, + gMonStillFrontPic_Medicham, 0x800, 357, + gMonStillFrontPic_Swablu, 0x800, 358, + gMonStillFrontPic_Altaria, 0x800, 359, + gMonStillFrontPic_Wynaut, 0x800, 360, + gMonStillFrontPic_Duskull, 0x800, 361, + gMonStillFrontPic_Dusclops, 0x800, 362, + gMonStillFrontPic_Roselia, 0x800, 363, + gMonStillFrontPic_Slakoth, 0x800, 364, + gMonStillFrontPic_Vigoroth, 0x800, 365, + gMonStillFrontPic_Slaking, 0x800, 366, + gMonStillFrontPic_Gulpin, 0x800, 367, + gMonStillFrontPic_Swalot, 0x800, 368, + gMonStillFrontPic_Tropius, 0x800, 369, + gMonStillFrontPic_Whismur, 0x800, 370, + gMonStillFrontPic_Loudred, 0x800, 371, + gMonStillFrontPic_Exploud, 0x800, 372, + gMonStillFrontPic_Clamperl, 0x800, 373, + gMonStillFrontPic_Huntail, 0x800, 374, + gMonStillFrontPic_Gorebyss, 0x800, 375, + gMonStillFrontPic_Absol, 0x800, 376, + gMonStillFrontPic_Shuppet, 0x800, 377, + gMonStillFrontPic_Banette, 0x800, 378, + gMonStillFrontPic_Seviper, 0x800, 379, + gMonStillFrontPic_Zangoose, 0x800, 380, + gMonStillFrontPic_Relicanth, 0x800, 381, + gMonStillFrontPic_Aron, 0x800, 382, + gMonStillFrontPic_Lairon, 0x800, 383, + gMonStillFrontPic_Aggron, 0x800, 384, + gMonStillFrontPic_Castform, 0x800, 385, + gMonStillFrontPic_Volbeat, 0x800, 386, + gMonStillFrontPic_Illumise, 0x800, 387, + gMonStillFrontPic_Lileep, 0x800, 388, + gMonStillFrontPic_Cradily, 0x800, 389, + gMonStillFrontPic_Anorith, 0x800, 390, + gMonStillFrontPic_Armaldo, 0x800, 391, + gMonStillFrontPic_Ralts, 0x800, 392, + gMonStillFrontPic_Kirlia, 0x800, 393, + gMonStillFrontPic_Gardevoir, 0x800, 394, + gMonStillFrontPic_Bagon, 0x800, 395, + gMonStillFrontPic_Shelgon, 0x800, 396, + gMonStillFrontPic_Salamence, 0x800, 397, + gMonStillFrontPic_Beldum, 0x800, 398, + gMonStillFrontPic_Metang, 0x800, 399, + gMonStillFrontPic_Metagross, 0x800, 400, + gMonStillFrontPic_Regirock, 0x800, 401, + gMonStillFrontPic_Regice, 0x800, 402, + gMonStillFrontPic_Registeel, 0x800, 403, + gMonStillFrontPic_Kyogre, 0x800, 404, + gMonStillFrontPic_Groudon, 0x800, 405, + gMonStillFrontPic_Rayquaza, 0x800, 406, + gMonStillFrontPic_Latias, 0x800, 407, + gMonStillFrontPic_Latios, 0x800, 408, + gMonStillFrontPic_Jirachi, 0x800, 409, + gMonStillFrontPic_Deoxys, 0x800, 410, + gMonStillFrontPic_Chimecho, 0x800, 411, + gMonStillFrontPic_Egg, 0x800, 412, + gMonStillFrontPic_UnownB, 0x800, 413, + gMonStillFrontPic_UnownC, 0x800, 414, + gMonStillFrontPic_UnownD, 0x800, 415, + gMonStillFrontPic_UnownE, 0x800, 416, + gMonStillFrontPic_UnownF, 0x800, 417, + gMonStillFrontPic_UnownG, 0x800, 418, + gMonStillFrontPic_UnownH, 0x800, 419, + gMonStillFrontPic_UnownI, 0x800, 420, + gMonStillFrontPic_UnownJ, 0x800, 421, + gMonStillFrontPic_UnownK, 0x800, 422, + gMonStillFrontPic_UnownL, 0x800, 423, + gMonStillFrontPic_UnownM, 0x800, 424, + gMonStillFrontPic_UnownN, 0x800, 425, + gMonStillFrontPic_UnownO, 0x800, 426, + gMonStillFrontPic_UnownP, 0x800, 427, + gMonStillFrontPic_UnownQ, 0x800, 428, + gMonStillFrontPic_UnownR, 0x800, 429, + gMonStillFrontPic_UnownS, 0x800, 430, + gMonStillFrontPic_UnownT, 0x800, 431, + gMonStillFrontPic_UnownU, 0x800, 432, + gMonStillFrontPic_UnownV, 0x800, 433, + gMonStillFrontPic_UnownW, 0x800, 434, + gMonStillFrontPic_UnownX, 0x800, 435, + gMonStillFrontPic_UnownY, 0x800, 436, + gMonStillFrontPic_UnownZ, 0x800, 437, + gMonStillFrontPic_UnownExclamationMark, 0x800, 438, + gMonStillFrontPic_UnownQuestionMark, 0x800, 439, +}; diff --git a/src/data/pokemon_graphics/unknown_anims.h b/src/data/pokemon_graphics/unknown_anims.h new file mode 100644 index 0000000000..a4ae43eb60 --- /dev/null +++ b/src/data/pokemon_graphics/unknown_anims.h @@ -0,0 +1,2347 @@ +const union AnimCmd gUnknown_082FF6EC[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF6F4[] = +{ + ANIMCMD_FRAME(1, 0), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF6FC[] = +{ + ANIMCMD_FRAME(2, 0), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF704[] = +{ + ANIMCMD_FRAME(3, 0), + ANIMCMD_END, +}; + +const union AnimCmd *const gPlayerMonSpriteAnimsTable[] = +{ + gUnknown_082FF6EC, + gUnknown_082FF6F4, + gUnknown_082FF6FC, + gUnknown_082FF704, +}; + +const union AnimCmd gUnknown_082FF71C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF734[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF744[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(2, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF750[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF758[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF774[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(2, 12), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(2, 12), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(2, 12), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF790[] = +{ + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(2, 12), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF79C[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF7B0[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(2, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(2, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF7C4[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF7CC[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF7D4[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF7DC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF7E4[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF7EC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF7F4[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF7FC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF804[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF80C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF814[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF81C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF824[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF82C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF834[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF83C[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF844[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF84C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF854[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF85C[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF864[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF86C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF874[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF87C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF884[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF88C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF894[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF89C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF8A4[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF8AC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF8B4[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF8BC[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(8, 15), + ANIMCMD_FRAME(2, 22), + ANIMCMD_FRAME(8, 5), + ANIMCMD_FRAME(3, 8), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(6, 5), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(6, 5), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(6, 5), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(6, 5), + ANIMCMD_FRAME(5, 5), + ANIMCMD_FRAME(7, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF8FC[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(8, 15), + ANIMCMD_FRAME(2, 15), + ANIMCMD_FRAME(8, 15), + ANIMCMD_FRAME(9, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(9, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF91C[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(9, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(10, 20), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF930[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(11, 15), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF93C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF944[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF94C[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(2, 7), + ANIMCMD_FRAME(3, 4), + ANIMCMD_FRAME(4, 4), + ANIMCMD_FRAME(3, 4), + ANIMCMD_FRAME(4, 4), + ANIMCMD_FRAME(3, 4), + ANIMCMD_FRAME(4, 4), + ANIMCMD_FRAME(3, 4), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(5, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(5, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(5, 2), + ANIMCMD_FRAME(6, 2), + ANIMCMD_FRAME(5, 2), + ANIMCMD_FRAME(6, 2), + ANIMCMD_FRAME(6, 10), + ANIMCMD_FRAME(5, 4), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FF9A8[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(7, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(7, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(7, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(7, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(7, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(9, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(9, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(7, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFA00[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(7, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(7, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(7, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(7, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(7, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(9, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(9, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(7, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFA58[] = +{ + ANIMCMD_FRAME(0,18), + ANIMCMD_FRAME(10, 18), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFA64[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFA6C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFA74[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFA7C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFA84[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFA8C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFA94[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFA9C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFAA4[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFAAC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFAB4[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFABC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFAC4[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFACC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFAD4[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFADC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFAE4[] = +{ + ANIMCMD_FRAME(0, 63), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFAEC[] = +{ + ANIMCMD_FRAME(0, 63), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFAF4[] = +{ + ANIMCMD_FRAME(0, 63), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFAFC[] = +{ + ANIMCMD_FRAME(0, 63), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFB04[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFB0C[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFB14[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFB1C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFB24[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFB2C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFB34[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFB3C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFB44[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 18), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFB60[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(2, 18), + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(2, 18), + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(2, 18), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFB7C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(2, 5), + ANIMCMD_FRAME(3, 6), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(2, 5), + ANIMCMD_FRAME(3, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(4, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(4, 4), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFBBC[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(2, 6), + ANIMCMD_FRAME(3, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFBE0[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(5, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(6, 12), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFBF4[] = +{ + ANIMCMD_FRAME(7, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFBFC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC04[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC0C[] = +{ + ANIMCMD_FRAME(0, 63), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC14[] = +{ + ANIMCMD_FRAME(0, 63), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC1C[] = +{ + ANIMCMD_FRAME(0, 63), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC24[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC2C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC34[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC3C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC58[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(2, 8), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC74[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC7C[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC84[] = +{ + ANIMCMD_FRAME(1, 9), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC8C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC94[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFC9C[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFCA4[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFCAC[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFCB4[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFCBC[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFCC4[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFCCC[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFCD4[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFCDC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFCE4[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFCEC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFCF4[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFCFC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD04[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD0C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD14[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD1C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD24[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD2C[] = +{ + ANIMCMD_FRAME(2, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD34[] = +{ + ANIMCMD_FRAME(3, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD3C[] = +{ + ANIMCMD_FRAME(0, 63), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD44[] = +{ + ANIMCMD_FRAME(0, 63), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD4C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD54[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD5C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD64[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD6C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD74[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD7C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD84[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFD8C[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 30), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFDA0[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFDB4[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFDBC[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_082FFDC4[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_082FFDCC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFDD0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFDD4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFDD8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFDDC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFDE0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFDE4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFDE8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFDEC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFDF0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFDF4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFDF8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFDFC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE00[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE04[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE08[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE0C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE10[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE14[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE18[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE1C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE20[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE24[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE28[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE2C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE30[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE34[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE38[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE3C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE40[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE44[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE48[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE4C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE50[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE54[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE58[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE5C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE60[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE64[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE68[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE6C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE70[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE74[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE78[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE7C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE80[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE84[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE88[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE8C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE90[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE94[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE98[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFE9C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEA0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEA4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEA8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEAC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEB0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEB4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEB8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEBC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEC0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEC4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEC8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFECC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFED0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFED4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFED8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEDC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEE0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEE4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEE8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEEC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEF0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEF4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEF8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFEFC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF00[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF04[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF08[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF0C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF10[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF14[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF18[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF1C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF20[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF24[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF28[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF2C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF30[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF34[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF38[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF3C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF40[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF44[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF48[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF4C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF50[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF54[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF58[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF5C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF60[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF64[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF68[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF6C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF70[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF74[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF78[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF7C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF80[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF84[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF88[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF8C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF90[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF94[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF98[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFF9C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFA0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFA4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFA8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFAC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFB0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFB4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFB8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFBC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFC0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFC4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFC8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFCC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFD0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFD4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFD8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFDC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFE0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFE4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFE8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFEC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFF0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFF4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFF8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_082FFFFC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300000[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300004[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300008[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830000C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300010[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300014[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300018[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830001C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300020[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300024[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300028[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830002C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300030[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300034[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300038[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830003C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300040[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300044[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300048[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830004C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300050[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300054[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300058[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830005C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300060[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300064[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300068[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830006C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300070[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300074[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300078[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830007C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300080[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300084[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300088[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830008C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300090[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300094[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300098[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830009C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000A0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000A4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000A8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000AC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000B0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000B4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000B8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000BC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000C0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000C4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000C8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000CC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000D0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000D4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000D8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000DC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000E0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000E4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000E8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000EC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000F0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000F4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000F8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083000FC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300100[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300104[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300108[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830010C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300110[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300114[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300118[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830011C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300120[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300124[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300128[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830012C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300130[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300134[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300138[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830013C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300140[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300144[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300148[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830014C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300150[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300154[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300158[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830015C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300160[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300164[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300168[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830016C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300170[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300174[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300178[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830017C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300180[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300184[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300188[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830018C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300190[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300194[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300198[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830019C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001A0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001A4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001A8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001AC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001B0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001B4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001B8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001BC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001C0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001C4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001C8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001CC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083001D0[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_083001D4[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF71C, + gUnknown_082FF734, + gUnknown_082FF744, + gUnknown_082FF750, +}; + +const union AnimCmd *const gUnknown_083001E8[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_083001EC[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF758, + gUnknown_082FF774, + gUnknown_082FF790, +}; + +const union AnimCmd *const gUnknown_083001FC[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_08300200[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF79C, + gUnknown_082FF7B0, +}; + +const union AnimCmd *const gUnknown_0830020C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF7C4, +}; + +const union AnimCmd *const gUnknown_08300214[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF7CC, +}; + +const union AnimCmd *const gUnknown_0830021C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF7D4, +}; + +const union AnimCmd *const gUnknown_08300224[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF7DC, + gUnknown_082FF7E4, +}; + +const union AnimCmd *const gUnknown_08300230[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF7EC, + gUnknown_082FF7F4, +}; + +const union AnimCmd *const gUnknown_0830023C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF7FC, + gUnknown_082FF804, +}; + +const union AnimCmd *const gUnknown_08300248[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF80C, + gUnknown_082FF814, +}; + +const union AnimCmd *const gUnknown_08300254[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF81C, + gUnknown_082FF824, +}; + +const union AnimCmd *const gUnknown_08300260[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_08300264[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF82C, +}; + +const union AnimCmd *const gUnknown_0830026C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF834, + gUnknown_082FF83C, +}; + +const union AnimCmd *const gUnknown_08300278[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF844, +}; + +const union AnimCmd *const gUnknown_08300280[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF84C, +}; + +const union AnimCmd *const gUnknown_08300288[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF854, + gUnknown_082FF85C, +}; + +const union AnimCmd *const gUnknown_08300294[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300298[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830029C[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_083002A0[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF864, +}; + +const union AnimCmd *const gUnknown_083002A8[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF86C, +}; + +const union AnimCmd *const gUnknown_083002B0[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF874, +}; + +const union AnimCmd *const gUnknown_083002B8[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF87C, +}; + +const union AnimCmd *const gUnknown_083002C0[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_083002C4[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF884, +}; + +const union AnimCmd *const gUnknown_083002CC[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF88C, + gUnknown_082FF894, +}; + +const union AnimCmd *const gUnknown_083002D8[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF89C, + gUnknown_082FF8A4, +}; + +const union AnimCmd *const gUnknown_083002E4[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF8AC, + gUnknown_082FF8B4, +}; + +const union AnimCmd *const gUnknown_083002F0[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF8BC, + gUnknown_082FF8FC, + gUnknown_082FF91C, + gUnknown_082FF930, +}; + +const union AnimCmd *const gUnknown_08300304[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_08300308[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF93C, +}; + +const union AnimCmd *const gUnknown_08300310[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF944, +}; + +const union AnimCmd *const gUnknown_08300318[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FF94C, + gUnknown_082FF9A8, + gUnknown_082FFA00, + gUnknown_082FFA58, +}; + +const union AnimCmd *const gUnknown_0830032C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFA64, +}; + +const union AnimCmd *const gUnknown_08300334[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFA6C, +}; + +const union AnimCmd *const gUnknown_0830033C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFA74, +}; + +const union AnimCmd *const gUnknown_08300344[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_08300348[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFA7C, + gUnknown_082FFA84, +}; + +const union AnimCmd *const gUnknown_08300354[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300358[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_0830035C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFA8C, + gUnknown_082FFA94, +}; + +const union AnimCmd *const gUnknown_08300368[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830036C[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_08300370[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFA9C, + gUnknown_082FFAA4, +}; + +const union AnimCmd *const gUnknown_0830037C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFAAC, + gUnknown_082FFAB4, +}; + +const union AnimCmd *const gUnknown_08300388[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFABC, + gUnknown_082FFAC4, +}; + +const union AnimCmd *const gUnknown_08300394[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFACC, + gUnknown_082FFAD4, +}; + +const union AnimCmd *const gUnknown_083003A0[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFADC, +}; + +const union AnimCmd *const gUnknown_083003A8[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFAE4, +}; + +const union AnimCmd *const gUnknown_083003B0[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFAEC, +}; + +const union AnimCmd *const gUnknown_083003B8[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFAF4, +}; + +const union AnimCmd *const gUnknown_083003C0[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFAFC, +}; + +const union AnimCmd *const gUnknown_083003C8[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFB04, + gUnknown_082FFB0C, +}; + +const union AnimCmd *const gUnknown_083003D4[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFB14, +}; + +const union AnimCmd *const gUnknown_083003DC[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFB1C, + gUnknown_082FFB24, +}; + +const union AnimCmd *const gUnknown_083003E8[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFB2C, +}; + +const union AnimCmd *const gUnknown_083003F0[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFB34, +}; + +const union AnimCmd *const gUnknown_083003F8[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFB3C, +}; + +const union AnimCmd *const gUnknown_08300400[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFB44, + gUnknown_082FFB60, +}; + +const union AnimCmd *const gUnknown_0830040C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300410[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300414[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300418[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830041C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300420[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_08300424[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFB7C, + gUnknown_082FFBBC, + gUnknown_082FFBE0, + gUnknown_082FFBF4, +}; + +const union AnimCmd *const gUnknown_08300438[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFBFC, + gUnknown_082FFC04, +}; + +const union AnimCmd *const gUnknown_08300444[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFC0C, +}; + +const union AnimCmd *const gUnknown_0830044C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFC14, +}; + +const union AnimCmd *const gUnknown_08300454[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFC1C, +}; + +const union AnimCmd *const gUnknown_0830045C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFC24, +}; + +const union AnimCmd *const gUnknown_08300464[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFC2C, +}; + +const union AnimCmd *const gUnknown_0830046C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFC34, +}; + +const union AnimCmd *const gUnknown_08300474[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFC3C, + gUnknown_082FFC58, +}; + +const union AnimCmd *const gUnknown_08300480[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFC74, +}; + +const union AnimCmd *const gUnknown_08300488[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFC7C, + gUnknown_082FFC84, +}; + +const union AnimCmd *const gUnknown_08300494[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFC8C, + gUnknown_082FFC94, +}; + +const union AnimCmd *const gUnknown_083004A0[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFC9C, + gUnknown_082FFCA4, +}; + +const union AnimCmd *const gUnknown_083004AC[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_083004B0[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFCAC, +}; + +const union AnimCmd *const gUnknown_083004B8[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFCB4, +}; + +const union AnimCmd *const gUnknown_083004C0[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFCBC, +}; + +const union AnimCmd *const gUnknown_083004C8[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFCC4, +}; + +const union AnimCmd *const gUnknown_083004D0[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFCCC, +}; + +const union AnimCmd *const gUnknown_083004D8[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFCD4, +}; + +const union AnimCmd *const gUnknown_083004E0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083004E4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083004E8[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_083004EC[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFCDC, +}; + +const union AnimCmd *const gUnknown_083004F4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083004F8[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_083004FC[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFCE4, +}; + +const union AnimCmd *const gUnknown_08300504[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFCEC, + gUnknown_082FFCF4, +}; + +const union AnimCmd *const gUnknown_08300510[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFCFC, +}; + +const union AnimCmd *const gUnknown_08300518[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830051C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300520[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_08300524[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFD04, +}; + +const union AnimCmd *const gUnknown_0830052C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFD0C, +}; + +const union AnimCmd *const gUnknown_08300534[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFD14, +}; + +const union AnimCmd *const gUnknown_0830053C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFD1C, + gUnknown_082FFD24, + gUnknown_082FFD2C, + gUnknown_082FFD34, +}; + +const union AnimCmd *const gUnknown_08300550[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFD3C, +}; + +const union AnimCmd *const gUnknown_08300558[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFD44, +}; + +const union AnimCmd *const gUnknown_08300560[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300564[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300568[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830056C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300570[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300574[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300578[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_0830057C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFD4C, + gUnknown_082FFD54, +}; + +const union AnimCmd *const gUnknown_08300588[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_0830058C[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFD5C, + gUnknown_082FFD64, +}; + +const union AnimCmd *const gUnknown_08300598[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830059C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083005A0[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_083005A4[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFD6C, +}; + +const union AnimCmd *const gUnknown_083005AC[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFD74, +}; + +const union AnimCmd *const gUnknown_083005B4[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFD7C, + gUnknown_082FFD84, +}; + +const union AnimCmd *const gUnknown_083005C0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083005C4[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_083005C8[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFD8C, + gUnknown_082FFDA0, +}; + +const union AnimCmd *const gUnknown_083005D4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083005D8[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const gUnknown_083005DC[] = +{ + gAnimCmd_General_Frame0, + gUnknown_082FFDC4, +}; + +const union AnimCmd *const gUnknown_083005E4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083005E8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083005EC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083005F0[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083005F4[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083005F8[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_083005FC[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300600[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300604[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300608[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830060C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300610[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300614[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300618[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830061C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300620[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300624[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300628[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830062C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300630[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300634[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300638[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830063C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300640[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300644[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300648[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_0830064C[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300650[] = {gAnimCmd_General_Frame0}; +const union AnimCmd *const gUnknown_08300654[] = {gAnimCmd_General_Frame0}; + +const union AnimCmd *const *const gUnknownAnimationsSpriteAnimsPtrTable[] = +{ + gUnknown_082FFDCC, + gUnknown_082FFDD0, + gUnknown_082FFDD4, + gUnknown_082FFDD8, + gUnknown_082FFDDC, + gUnknown_082FFDE0, + gUnknown_082FFDE4, + gUnknown_082FFDE8, + gUnknown_082FFDEC, + gUnknown_082FFDF0, + gUnknown_082FFDF4, + gUnknown_082FFDF8, + gUnknown_082FFDFC, + gUnknown_082FFE00, + gUnknown_082FFE04, + gUnknown_082FFE08, + gUnknown_082FFE0C, + gUnknown_082FFE10, + gUnknown_082FFE14, + gUnknown_082FFE18, + gUnknown_082FFE1C, + gUnknown_082FFE20, + gUnknown_082FFE24, + gUnknown_082FFE28, + gUnknown_082FFE2C, + gUnknown_082FFE30, + gUnknown_082FFE34, + gUnknown_082FFE38, + gUnknown_082FFE3C, + gUnknown_082FFE40, + gUnknown_082FFE44, + gUnknown_082FFE48, + gUnknown_082FFE4C, + gUnknown_082FFE50, + gUnknown_082FFE54, + gUnknown_082FFE58, + gUnknown_082FFE5C, + gUnknown_082FFE60, + gUnknown_082FFE64, + gUnknown_082FFE68, + gUnknown_082FFE6C, + gUnknown_082FFE70, + gUnknown_082FFE74, + gUnknown_082FFE78, + gUnknown_082FFE7C, + gUnknown_082FFE80, + gUnknown_082FFE84, + gUnknown_082FFE88, + gUnknown_082FFE8C, + gUnknown_082FFE90, + gUnknown_082FFE94, + gUnknown_082FFE98, + gUnknown_082FFE9C, + gUnknown_082FFEA0, + gUnknown_082FFEA4, + gUnknown_082FFEA8, + gUnknown_082FFEAC, + gUnknown_082FFEB0, + gUnknown_082FFEB4, + gUnknown_082FFEB8, + gUnknown_082FFEBC, + gUnknown_082FFEC0, + gUnknown_082FFEC4, + gUnknown_082FFEC8, + gUnknown_082FFECC, + gUnknown_082FFED0, + gUnknown_082FFED4, + gUnknown_082FFED8, + gUnknown_082FFEDC, + gUnknown_082FFEE0, + gUnknown_082FFEE4, + gUnknown_082FFEE8, + gUnknown_082FFEEC, + gUnknown_082FFEF0, + gUnknown_082FFEF4, + gUnknown_082FFEF8, + gUnknown_082FFEFC, + gUnknown_082FFF00, + gUnknown_082FFF04, + gUnknown_082FFF08, + gUnknown_082FFF0C, + gUnknown_082FFF10, + gUnknown_082FFF14, + gUnknown_082FFF18, + gUnknown_082FFF1C, + gUnknown_082FFF20, + gUnknown_082FFF24, + gUnknown_082FFF28, + gUnknown_082FFF2C, + gUnknown_082FFF30, + gUnknown_082FFF34, + gUnknown_082FFF38, + gUnknown_082FFF3C, + gUnknown_082FFF40, + gUnknown_082FFF44, + gUnknown_082FFF48, + gUnknown_082FFF4C, + gUnknown_082FFF50, + gUnknown_082FFF54, + gUnknown_082FFF58, + gUnknown_082FFF5C, + gUnknown_082FFF60, + gUnknown_082FFF64, + gUnknown_082FFF68, + gUnknown_082FFF6C, + gUnknown_082FFF70, + gUnknown_082FFF74, + gUnknown_082FFF78, + gUnknown_082FFF7C, + gUnknown_082FFF80, + gUnknown_082FFF84, + gUnknown_082FFF88, + gUnknown_082FFF8C, + gUnknown_082FFF90, + gUnknown_082FFF94, + gUnknown_082FFF98, + gUnknown_082FFF9C, + gUnknown_082FFFA0, + gUnknown_082FFFA4, + gUnknown_082FFFA8, + gUnknown_082FFFAC, + gUnknown_082FFFB0, + gUnknown_082FFFB4, + gUnknown_082FFFB8, + gUnknown_082FFFBC, + gUnknown_082FFFC0, + gUnknown_082FFFC4, + gUnknown_082FFFC8, + gUnknown_082FFFCC, + gUnknown_082FFFD0, + gUnknown_082FFFD4, + gUnknown_082FFFD8, + gUnknown_082FFFDC, + gUnknown_082FFFE0, + gUnknown_082FFFE4, + gUnknown_082FFFE8, + gUnknown_082FFFEC, + gUnknown_082FFFF0, + gUnknown_082FFFF4, + gUnknown_082FFFF8, + gUnknown_082FFFFC, + gUnknown_08300000, + gUnknown_08300004, + gUnknown_08300008, + gUnknown_0830000C, + gUnknown_08300010, + gUnknown_08300014, + gUnknown_08300018, + gUnknown_0830001C, + gUnknown_08300020, + gUnknown_08300024, + gUnknown_08300028, + gUnknown_0830002C, + gUnknown_08300030, + gUnknown_08300034, + gUnknown_08300038, + gUnknown_0830003C, + gUnknown_08300040, + gUnknown_08300044, + gUnknown_08300048, + gUnknown_0830004C, + gUnknown_08300050, + gUnknown_08300054, + gUnknown_08300058, + gUnknown_0830005C, + gUnknown_08300060, + gUnknown_08300064, + gUnknown_08300068, + gUnknown_0830006C, + gUnknown_08300070, + gUnknown_08300074, + gUnknown_08300078, + gUnknown_0830007C, + gUnknown_08300080, + gUnknown_08300084, + gUnknown_08300088, + gUnknown_0830008C, + gUnknown_08300090, + gUnknown_08300094, + gUnknown_08300098, + gUnknown_0830009C, + gUnknown_083000A0, + gUnknown_083000A4, + gUnknown_083000A8, + gUnknown_083000AC, + gUnknown_083000B0, + gUnknown_083000B4, + gUnknown_083000B8, + gUnknown_083000BC, + gUnknown_083000C0, + gUnknown_083000C4, + gUnknown_083000C8, + gUnknown_083000CC, + gUnknown_083000D0, + gUnknown_083000D4, + gUnknown_083000D8, + gUnknown_083000DC, + gUnknown_083000E0, + gUnknown_083000E4, + gUnknown_083000E8, + gUnknown_083000EC, + gUnknown_083000F0, + gUnknown_083000F4, + gUnknown_083000F8, + gUnknown_083000FC, + gUnknown_08300100, + gUnknown_08300104, + gUnknown_08300108, + gUnknown_0830010C, + gUnknown_08300110, + gUnknown_08300114, + gUnknown_08300118, + gUnknown_0830011C, + gUnknown_08300120, + gUnknown_08300124, + gUnknown_08300128, + gUnknown_0830012C, + gUnknown_08300130, + gUnknown_08300134, + gUnknown_08300138, + gUnknown_0830013C, + gUnknown_08300140, + gUnknown_08300144, + gUnknown_08300148, + gUnknown_0830014C, + gUnknown_08300150, + gUnknown_08300154, + gUnknown_08300158, + gUnknown_0830015C, + gUnknown_08300160, + gUnknown_08300164, + gUnknown_08300168, + gUnknown_0830016C, + gUnknown_08300170, + gUnknown_08300174, + gUnknown_08300178, + gUnknown_0830017C, + gUnknown_08300180, + gUnknown_08300184, + gUnknown_08300188, + gUnknown_0830018C, + gUnknown_08300190, + gUnknown_08300194, + gUnknown_08300198, + gUnknown_0830019C, + gUnknown_083001A0, + gUnknown_083001A4, + gUnknown_083001A8, + gUnknown_083001AC, + gUnknown_083001B0, + gUnknown_083001B4, + gUnknown_083001B8, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001BC, + gUnknown_083001C0, + gUnknown_083001C4, + gUnknown_083001C8, + gUnknown_083001CC, + gUnknown_083001D0, + gUnknown_083001D4, + gUnknown_083001E8, + gUnknown_083001EC, + gUnknown_083001FC, + gUnknown_08300200, + gUnknown_0830020C, + gUnknown_08300214, + gUnknown_0830021C, + gUnknown_08300224, + gUnknown_08300230, + gUnknown_0830023C, + gUnknown_08300248, + gUnknown_08300254, + gUnknown_08300260, + gUnknown_08300264, + gUnknown_0830026C, + gUnknown_08300278, + gUnknown_08300280, + gUnknown_08300288, + gUnknown_08300294, + gUnknown_08300298, + gUnknown_0830029C, + gUnknown_083002A0, + gUnknown_083002A8, + gUnknown_083002B0, + gUnknown_083002B8, + gUnknown_083002C0, + gUnknown_083002C4, + gUnknown_083002CC, + gUnknown_083002D8, + gUnknown_083002E4, + gUnknown_083002F0, + gUnknown_08300304, + gUnknown_08300308, + gUnknown_08300310, + gUnknown_08300318, + gUnknown_0830032C, + gUnknown_08300334, + gUnknown_0830033C, + gUnknown_08300344, + gUnknown_08300348, + gUnknown_08300354, + gUnknown_08300358, + gUnknown_0830035C, + gUnknown_08300368, + gUnknown_0830036C, + gUnknown_08300370, + gUnknown_0830037C, + gUnknown_08300388, + gUnknown_08300394, + gUnknown_083003A0, + gUnknown_083003A8, + gUnknown_083003B0, + gUnknown_083003B8, + gUnknown_083003C0, + gUnknown_083003C8, + gUnknown_083003D4, + gUnknown_083003DC, + gUnknown_083003E8, + gUnknown_083003F0, + gUnknown_083003F8, + gUnknown_08300400, + gUnknown_0830040C, + gUnknown_08300410, + gUnknown_08300414, + gUnknown_08300418, + gUnknown_0830041C, + gUnknown_08300420, + gUnknown_08300424, + gUnknown_08300438, + gUnknown_08300444, + gUnknown_0830044C, + gUnknown_08300454, + gUnknown_0830045C, + gUnknown_08300464, + gUnknown_0830046C, + gUnknown_08300474, + gUnknown_08300480, + gUnknown_08300488, + gUnknown_08300494, + gUnknown_083004A0, + gUnknown_083004AC, + gUnknown_083004B0, + gUnknown_083004B8, + gUnknown_083004C0, + gUnknown_083004C8, + gUnknown_083004D0, + gUnknown_083004D8, + gUnknown_083004E0, + gUnknown_083004E4, + gUnknown_083004E8, + gUnknown_083004EC, + gUnknown_083004F4, + gUnknown_083004F8, + gUnknown_083004FC, + gUnknown_08300504, + gUnknown_08300510, + gUnknown_08300518, + gUnknown_0830051C, + gUnknown_08300520, + gUnknown_08300524, + gUnknown_0830052C, + gUnknown_08300534, + gUnknown_0830053C, + gUnknown_08300550, + gUnknown_08300558, + gUnknown_08300560, + gUnknown_08300564, + gUnknown_08300568, + gUnknown_0830056C, + gUnknown_08300570, + gUnknown_08300574, + gUnknown_08300578, + gUnknown_0830057C, + gUnknown_08300588, + gUnknown_0830058C, + gUnknown_08300598, + gUnknown_0830059C, + gUnknown_083005A0, + gUnknown_083005A4, + gUnknown_083005AC, + gUnknown_083005B4, + gUnknown_083005C0, + gUnknown_083005C4, + gUnknown_083005C8, + gUnknown_083005D4, + gUnknown_083005D8, + gUnknown_083005DC, + gUnknown_083005E4, + gUnknown_083005E8, + gUnknown_083005EC, + gUnknown_083005EC, + gUnknown_083005F0, + gUnknown_083005F4, + gUnknown_083005F8, + gUnknown_083005FC, + gUnknown_08300600, + gUnknown_08300604, + gUnknown_08300608, + gUnknown_0830060C, + gUnknown_08300610, + gUnknown_08300614, + gUnknown_08300618, + gUnknown_0830061C, + gUnknown_08300620, + gUnknown_08300624, + gUnknown_08300628, + gUnknown_0830062C, + gUnknown_08300630, + gUnknown_08300634, + gUnknown_08300638, + gUnknown_0830063C, + gUnknown_08300640, + gUnknown_08300644, + gUnknown_08300648, + gUnknown_0830064C, + gUnknown_08300650, + gUnknown_08300654, +}; diff --git a/src/data/trainer_graphics/back_pic_tables.h b/src/data/trainer_graphics/back_pic_tables.h index ba7f73ebb6..3e74902d8e 100644 --- a/src/data/trainer_graphics/back_pic_tables.h +++ b/src/data/trainer_graphics/back_pic_tables.h @@ -1,13 +1,13 @@ -const u8 gTrainerBackPicCoords[] = +const struct MonCoords gTrainerBackPicCoords[] = { - 8, 4, 0, 0, - 8, 4, 0, 0, - 8, 5, 0, 0, - 8, 5, 0, 0, - 8, 4, 0, 0, - 8, 4, 0, 0, - 8, 4, 0, 0, - 8, 4, 0, 0, + {8, 4}, + {8, 4}, + {8, 5}, + {8, 5}, + {8, 4}, + {8, 4}, + {8, 4}, + {8, 4}, }; const struct CompressedSpriteSheet gTrainerBackPicTable[] = diff --git a/src/data/trainer_graphics/front_pic_tables.h b/src/data/trainer_graphics/front_pic_tables.h index 7c1e10683b..db80c9d4f8 100644 --- a/src/data/trainer_graphics/front_pic_tables.h +++ b/src/data/trainer_graphics/front_pic_tables.h @@ -1,98 +1,98 @@ -const u8 gTrainerFrontPicCoords[] = +const struct MonCoords gTrainerFrontPicCoords[] = { - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 2, 0, 0, - 8, 2, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 2, 0, 0, - 8, 1, 0, 0, - 8, 2, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 2, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 2, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, - 8, 1, 0, 0, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 2}, + {8, 2}, + {8, 1}, + {8, 1}, + {8, 2}, + {8, 1}, + {8, 2}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 2}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 2}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, + {8, 1}, }; const struct CompressedSpriteSheet gTrainerFrontPicTable[] = diff --git a/src/data2b.c b/src/data2b.c index e7ca473a99..46a158e09b 100644 --- a/src/data2b.c +++ b/src/data2b.c @@ -1,9 +1,15 @@ #include "global.h" +#include "data2.h" #include "graphics.h" extern const union AnimCmd gAnimCmd_General_Frame0[]; extern const union AnimCmd AnimCmd_82FF540[]; +#include "data/pokemon_graphics/unknown_anims.h" +#include "data/pokemon_graphics/front_pic_coordinates.h" +#include "data/pokemon_graphics/still_front_pic_table.h" +#include "data/pokemon_graphics/back_pic_coordinates.h" + #include "data/pokemon_graphics/back_pic_table.h" #include "data/pokemon_graphics/palette_table.h" #include "data/pokemon_graphics/shiny_palette_table.h" From 3dea8fa2658cb1055fb835983e8a738cf543e232 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 29 Aug 2018 20:38:54 +0200 Subject: [PATCH 144/174] battle tent review changes --- asm/battle_tent.s | 188 ------------------------------------ include/gba/io_reg.h | 2 + src/battle_dome.c | 47 ++++----- src/battle_tent.c | 225 +++++++++++++++++++++++++++++++++++++++---- 4 files changed, 233 insertions(+), 229 deletions(-) diff --git a/asm/battle_tent.s b/asm/battle_tent.s index ba4a31530f..8de98850f6 100644 --- a/asm/battle_tent.s +++ b/asm/battle_tent.s @@ -6,194 +6,6 @@ .text - thumb_func_start sub_81B9EC0 -sub_81B9EC0: @ 81B9EC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - ldr r1, =gFacilityTrainers - ldr r0, =gSlateportBattleTentTrainers - str r0, [r1] - add r0, sp, 0xC - mov r9, r0 - mov r1, sp - adds r1, 0x18 - str r1, [sp, 0x2C] - ldr r5, =gFacilityTrainerMons - ldr r4, =gSlateportBattleTentMons - movs r2, 0 - adds r3, r1, 0 - mov r1, r9 - mov r0, sp - movs r6, 0x5 - mov r8, r6 -_081B9EEC: - strh r2, [r0] - strh r2, [r1] - strh r2, [r3] - adds r3, 0x2 - adds r1, 0x2 - adds r0, 0x2 - movs r7, 0x1 - negs r7, r7 - add r8, r7 - mov r6, r8 - cmp r6, 0 - bge _081B9EEC - str r4, [r5] - movs r7, 0 - mov r10, r7 - movs r0, 0 - mov r8, r0 - ldr r1, [sp, 0x2C] - str r1, [sp, 0x30] - mov r2, sp - str r2, [sp, 0x34] - lsls r6, r0, 1 - str r6, [sp, 0x24] - add r6, r9 - str r6, [sp, 0x28] -_081B9F1E: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x46 - bl __umodsi3 - lsls r0, 16 - lsrs r5, r0, 16 - movs r2, 0 - mov r7, r8 - adds r6, r2, r7 - cmp r2, r6 - bge _081B9F7C - ldr r1, [sp, 0x28] - ldrh r0, [r1] - cmp r0, r5 - beq _081B9F7C - ldr r0, =gFacilityTrainerMons - ldr r1, [r0] - lsls r0, r5, 4 - adds r4, r0, r1 - ldrh r7, [r4] - mov r12, r7 - lsls r3, r2, 1 - ldr r1, [sp, 0x24] - add r1, sp - str r6, [sp, 0x38] -_081B9F56: - ldrh r0, [r1] - cmp r0, r12 - bne _081B9F66 - mov r0, r10 - cmp r0, 0 - bne _081B9F7C - ldrh r7, [r4] - mov r10, r7 -_081B9F66: - adds r3, 0x2 - adds r1, 0x2 - adds r2, 0x1 - ldr r0, [sp, 0x38] - cmp r2, r0 - bge _081B9F7C - mov r7, r9 - adds r0, r7, r3 - ldrh r0, [r0] - cmp r0, r5 - bne _081B9F56 -_081B9F7C: - cmp r2, r6 - bne _081BA01C - movs r2, 0 - cmp r2, r6 - bge _081B9FD4 - ldr r0, =gBattleFrontierHeldItems - mov r12, r0 - ldr r7, =gFacilityTrainerMons - ldr r1, [sp, 0x24] - ldr r0, [sp, 0x2C] - adds r4, r1, r0 -_081B9F92: - ldrh r3, [r4] - cmp r3, 0 - beq _081B9FCC - ldr r1, [r7] - lsls r0, r5, 4 - adds r1, r0, r1 - ldrb r0, [r1, 0xA] - lsls r0, 1 - add r0, r12 - ldrh r0, [r0] - cmp r3, r0 - bne _081B9FCC - ldrh r0, [r1] - cmp r0, r10 - bne _081B9FD4 - movs r1, 0 - mov r10, r1 - b _081B9FD4 - .pool -_081B9FCC: - adds r4, 0x2 - adds r2, 0x1 - cmp r2, r6 - blt _081B9F92 -_081B9FD4: - cmp r2, r6 - bne _081BA01C - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - mov r2, r8 - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r1, r0 - movs r6, 0xE7 - lsls r6, 4 - adds r1, r6 - strh r5, [r1] - ldr r0, =gFacilityTrainerMons - ldr r0, [r0] - lsls r1, r5, 4 - adds r1, r0 - ldrh r0, [r1] - ldr r7, [sp, 0x34] - strh r0, [r7] - ldr r2, =gBattleFrontierHeldItems - ldrb r0, [r1, 0xA] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - ldr r1, [sp, 0x30] - strh r0, [r1] - add r3, r9 - strh r5, [r3] - adds r1, 0x2 - str r1, [sp, 0x30] - adds r2, r7, 0 - adds r2, 0x2 - str r2, [sp, 0x34] - movs r6, 0x1 - add r8, r6 -_081BA01C: - mov r7, r8 - cmp r7, 0x6 - beq _081BA024 - b _081B9F1E -_081BA024: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9EC0 thumb_func_start sub_81BA040 sub_81BA040: @ 81BA040 diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h index 01d8c311eb..9327d6cb0e 100644 --- a/include/gba/io_reg.h +++ b/include/gba/io_reg.h @@ -550,12 +550,14 @@ #define WININ_WIN0_BG1 (1 << 1) #define WININ_WIN0_BG2 (1 << 2) #define WININ_WIN0_BG3 (1 << 3) +#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3) #define WININ_WIN0_OBJ (1 << 4) #define WININ_WIN0_CLR (1 << 5) #define WININ_WIN1_BG0 (1 << 8) #define WININ_WIN1_BG1 (1 << 9) #define WININ_WIN1_BG2 (1 << 10) #define WININ_WIN1_BG3 (1 << 11) +#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3) #define WININ_WIN1_OBJ (1 << 12) #define WININ_WIN1_CLR (1 << 13) diff --git a/src/battle_dome.c b/src/battle_dome.c index 4505ce8b02..0183811cd4 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -31,6 +31,7 @@ #include "constants/abilities.h" #include "constants/songs.h" #include "constants/battle_frontier.h" +#include "constants/rgb.h" #define DOME_ROUND1 0 #define DOME_ROUND2 1 @@ -2784,7 +2785,7 @@ static void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 natu count++; } - resultingEvs = 510 / count; + resultingEvs = MAX_TOTAL_EVS / count; for (i = 0; i < 6; bits <<= 1, i++) { evs[i] = 0; @@ -3933,7 +3934,7 @@ static void sub_8190CD4(u8 taskId) case 0: if (!gPaletteFade.active) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); gTasks[taskId].data[0] = 1; } break; @@ -3946,7 +3947,7 @@ static void sub_8190CD4(u8 taskId) switch (i) { case 9: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].data[0] = 8; break; case 1 ... 8: @@ -4986,7 +4987,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) k++; evBits >>= 1; } - k = 510 / k; + k = MAX_TOTAL_EVS / k; evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].evSpread; for (j = 0; j < 6; j++) { @@ -5412,7 +5413,7 @@ static void sub_819395C(u8 taskId) case 0: if (!gPaletteFade.active) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); gTasks[taskId].data[0] = 1; StartSpriteAnim(&gSprites[spriteId], 1); } @@ -5426,17 +5427,17 @@ static void sub_819395C(u8 taskId) { case 0: default: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].data[0] = 7; break; case 1: break; case 2: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].data[0] = 3; break; case 3: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].data[0] = 5; break; } @@ -5930,7 +5931,7 @@ static void sub_8194950(u8 taskId) switch (gTasks[taskId].data[0]) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); gTasks[taskId].data[0] = 1; break; case 1: @@ -5978,7 +5979,7 @@ static void sub_8194950(u8 taskId) case 3: if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].data[0] = 4; } break; @@ -6029,44 +6030,44 @@ static void HblankCb_BattleDome(void) { if (vCount < 50) { - REG_WININ = 0x3B3B; - SET_WIN0H_WIN1H(0x989B, 0x5558); + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + SET_WIN0H_WIN1H(WINHV_COORDS(152, 155), WINHV_COORDS(85, 88)); return; } else if (vCount > 57) { if (vCount < 75) { - REG_WININ = 0x3B3B; - SET_WIN0H_WIN1H(0x9098, 0x5860); + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + SET_WIN0H_WIN1H(WINHV_COORDS(144, 152), WINHV_COORDS(88, 96)); return; } else if (vCount < 82) { - REG_WININ = 0x3B3B; - SET_WIN0H_WIN1H(0x989B, 0x5558); + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + SET_WIN0H_WIN1H(WINHV_COORDS(152, 155), WINHV_COORDS(85, 88)); return; } else if (vCount > 94) { if (vCount < 103) { - REG_WININ = 0x3737; - SET_WIN0H_WIN1H(0x989B, 0x5558); + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + SET_WIN0H_WIN1H(WINHV_COORDS(152, 155), WINHV_COORDS(85, 88)); return; } else if (vCount < 119) { - REG_WININ = 0x3737; - SET_WIN0H_WIN1H(0x9098, 0x5860); + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + SET_WIN0H_WIN1H(WINHV_COORDS(144, 152), WINHV_COORDS(88, 96)); return; } else if (vCount > 126) { if (vCount_ < 135) { - REG_WININ = 0x3737; - SET_WIN0H_WIN1H(0x989B, 0x5558); + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + SET_WIN0H_WIN1H(WINHV_COORDS(152, 155), WINHV_COORDS(85, 88)); return; } } @@ -6074,7 +6075,7 @@ static void HblankCb_BattleDome(void) } } - REG_WININ = 0x3F3F; + REG_WININ = WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ | WININ_WIN1_BG_ALL | WININ_WIN1_CLR | WININ_WIN1_OBJ; SET_WIN0H_WIN1H(0, 0); } diff --git a/src/battle_tent.c b/src/battle_tent.c index f39bf88379..516f3fc4d7 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -272,15 +272,15 @@ bool8 sub_81B9E94(void) } // This function was written very...oddly. -/* +#ifdef NONMATCHING void sub_81B9EC0(void) { s32 i, j; - u16 currMonId, currSpecies; + u16 currMonId = 0, currSpecies = 0; u16 species[PARTY_SIZE]; u16 monIds[PARTY_SIZE]; u16 heldItems[PARTY_SIZE]; - s32 var; + s32 zero = 0; gFacilityTrainers = gSlateportBattleTentTrainers; for (i = 0; i < PARTY_SIZE; i++) @@ -290,17 +290,15 @@ void sub_81B9EC0(void) heldItems[i] = 0; } gFacilityTrainerMons = gSlateportBattleTentMons; - currSpecies = 0; - i = 0; - while (i != PARTY_SIZE) + for (i = 0; i != PARTY_SIZE;) { // Cannot have two pokemon of the same species. currMonId = Random() % 70; - j = 0; - var = 0 + i; - while (j < var && monIds[j] != currMonId) + for (j = zero; j < i + zero; j++) { + if (monIds[j] == currMonId) + break; if (species[j] == gFacilityTrainerMons[currMonId].species) { if (currSpecies == 0) @@ -308,13 +306,12 @@ void sub_81B9EC0(void) else break; } - j++; } - if (j != var) + if (j != i + zero) continue; // Cannot have two same held items. - for (j = 0; j < var; j++) + for (j = zero; j < i + zero; j++) { if (heldItems[j] == 0) continue; @@ -326,14 +323,206 @@ void sub_81B9EC0(void) break; } } - if (j != var) + if (j != i + zero) continue; - gSaveBlock2Ptr->frontier.field_E70[var].monId = currMonId; - species[var] = gFacilityTrainerMons[currMonId].species; - heldItems[var] = gBattleFrontierHeldItems[gFacilityTrainerMons[currMonId].itemTableId]; - monIds[var] = currMonId; + gSaveBlock2Ptr->frontier.field_E70[i].monId = currMonId; + species[i] = gFacilityTrainerMons[currMonId].species; + heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[currMonId].itemTableId]; + monIds[i] = currMonId; i++; } } -*/ +#else +NAKED +void sub_81B9EC0(void) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x3C\n\ + ldr r1, =gFacilityTrainers\n\ + ldr r0, =gSlateportBattleTentTrainers\n\ + str r0, [r1]\n\ + add r0, sp, 0xC\n\ + mov r9, r0\n\ + mov r1, sp\n\ + adds r1, 0x18\n\ + str r1, [sp, 0x2C]\n\ + ldr r5, =gFacilityTrainerMons\n\ + ldr r4, =gSlateportBattleTentMons\n\ + movs r2, 0\n\ + adds r3, r1, 0\n\ + mov r1, r9\n\ + mov r0, sp\n\ + movs r6, 0x5\n\ + mov r8, r6\n\ +_081B9EEC:\n\ + strh r2, [r0]\n\ + strh r2, [r1]\n\ + strh r2, [r3]\n\ + adds r3, 0x2\n\ + adds r1, 0x2\n\ + adds r0, 0x2\n\ + movs r7, 0x1\n\ + negs r7, r7\n\ + add r8, r7\n\ + mov r6, r8\n\ + cmp r6, 0\n\ + bge _081B9EEC\n\ + str r4, [r5]\n\ + movs r7, 0\n\ + mov r10, r7\n\ + movs r0, 0\n\ + mov r8, r0\n\ + ldr r1, [sp, 0x2C]\n\ + str r1, [sp, 0x30]\n\ + mov r2, sp\n\ + str r2, [sp, 0x34]\n\ + lsls r6, r0, 1\n\ + str r6, [sp, 0x24]\n\ + add r6, r9\n\ + str r6, [sp, 0x28]\n\ +_081B9F1E:\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0x46\n\ + bl __umodsi3\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + movs r2, 0\n\ + mov r7, r8\n\ + adds r6, r2, r7\n\ + cmp r2, r6\n\ + bge _081B9F7C\n\ + ldr r1, [sp, 0x28]\n\ + ldrh r0, [r1]\n\ + cmp r0, r5\n\ + beq _081B9F7C\n\ + ldr r0, =gFacilityTrainerMons\n\ + ldr r1, [r0]\n\ + lsls r0, r5, 4\n\ + adds r4, r0, r1\n\ + ldrh r7, [r4]\n\ + mov r12, r7\n\ + lsls r3, r2, 1\n\ + ldr r1, [sp, 0x24]\n\ + add r1, sp\n\ + str r6, [sp, 0x38]\n\ +_081B9F56:\n\ + ldrh r0, [r1]\n\ + cmp r0, r12\n\ + bne _081B9F66\n\ + mov r0, r10\n\ + cmp r0, 0\n\ + bne _081B9F7C\n\ + ldrh r7, [r4]\n\ + mov r10, r7\n\ +_081B9F66:\n\ + adds r3, 0x2\n\ + adds r1, 0x2\n\ + adds r2, 0x1\n\ + ldr r0, [sp, 0x38]\n\ + cmp r2, r0\n\ + bge _081B9F7C\n\ + mov r7, r9\n\ + adds r0, r7, r3\n\ + ldrh r0, [r0]\n\ + cmp r0, r5\n\ + bne _081B9F56\n\ +_081B9F7C:\n\ + cmp r2, r6\n\ + bne _081BA01C\n\ + movs r2, 0\n\ + cmp r2, r6\n\ + bge _081B9FD4\n\ + ldr r0, =gBattleFrontierHeldItems\n\ + mov r12, r0\n\ + ldr r7, =gFacilityTrainerMons\n\ + ldr r1, [sp, 0x24]\n\ + ldr r0, [sp, 0x2C]\n\ + adds r4, r1, r0\n\ +_081B9F92:\n\ + ldrh r3, [r4]\n\ + cmp r3, 0\n\ + beq _081B9FCC\n\ + ldr r1, [r7]\n\ + lsls r0, r5, 4\n\ + adds r1, r0, r1\n\ + ldrb r0, [r1, 0xA]\n\ + lsls r0, 1\n\ + add r0, r12\n\ + ldrh r0, [r0]\n\ + cmp r3, r0\n\ + bne _081B9FCC\n\ + ldrh r0, [r1]\n\ + cmp r0, r10\n\ + bne _081B9FD4\n\ + movs r1, 0\n\ + mov r10, r1\n\ + b _081B9FD4\n\ + .pool\n\ +_081B9FCC:\n\ + adds r4, 0x2\n\ + adds r2, 0x1\n\ + cmp r2, r6\n\ + blt _081B9F92\n\ +_081B9FD4:\n\ + cmp r2, r6\n\ + bne _081BA01C\n\ + ldr r0, =gSaveBlock2Ptr\n\ + ldr r1, [r0]\n\ + mov r2, r8\n\ + lsls r3, r2, 1\n\ + adds r0, r3, r2\n\ + lsls r0, 2\n\ + adds r1, r0\n\ + movs r6, 0xE7\n\ + lsls r6, 4\n\ + adds r1, r6\n\ + strh r5, [r1]\n\ + ldr r0, =gFacilityTrainerMons\n\ + ldr r0, [r0]\n\ + lsls r1, r5, 4\n\ + adds r1, r0\n\ + ldrh r0, [r1]\n\ + ldr r7, [sp, 0x34]\n\ + strh r0, [r7]\n\ + ldr r2, =gBattleFrontierHeldItems\n\ + ldrb r0, [r1, 0xA]\n\ + lsls r0, 1\n\ + adds r0, r2\n\ + ldrh r0, [r0]\n\ + ldr r1, [sp, 0x30]\n\ + strh r0, [r1]\n\ + add r3, r9\n\ + strh r5, [r3]\n\ + adds r1, 0x2\n\ + str r1, [sp, 0x30]\n\ + adds r2, r7, 0\n\ + adds r2, 0x2\n\ + str r2, [sp, 0x34]\n\ + movs r6, 0x1\n\ + add r8, r6\n\ +_081BA01C:\n\ + mov r7, r8\n\ + cmp r7, 0x6\n\ + beq _081BA024\n\ + b _081B9F1E\n\ +_081BA024:\n\ + add sp, 0x3C\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 From 7737025f4e839b71477fca6690e95a9ed9325b8a Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 29 Aug 2018 16:34:59 -0500 Subject: [PATCH 145/174] Use gbafix to generate header and checksum --- Makefile | 8 +++++++- asm/rom_header.inc | 39 ++++++++------------------------------- 2 files changed, 15 insertions(+), 32 deletions(-) diff --git a/Makefile b/Makefile index 9637d98a80..4e504aecbf 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,11 @@ include $(DEVKITARM)/base_tools export CPP := $(PREFIX)cpp export LD := $(PREFIX)ld +TITLE := POKEMON EMER +GAME_CODE := BPEE +MAKER_CODE := 01 +REVISION := 0 + SHELL := /bin/bash -o pipefail ROM := pokeemerald.gba @@ -165,5 +170,6 @@ $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB) $(ROM): $(ELF) - $(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@ + $(OBJCOPY) -O binary $< $@ + gbafix $@ -p -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) diff --git a/asm/rom_header.inc b/asm/rom_header.inc index 1cef6393c6..6730efae28 100644 --- a/asm/rom_header.inc +++ b/asm/rom_header.inc @@ -1,38 +1,19 @@ .global RomHeaderNintendoLogo RomHeaderNintendoLogo: - .byte 0x24,0xff,0xae,0x51,0x69,0x9a,0xa2,0x21 - .byte 0x3d,0x84,0x82,0x0a,0x84,0xe4,0x09,0xad - .byte 0x11,0x24,0x8b,0x98,0xc0,0x81,0x7f,0x21 - .byte 0xa3,0x52,0xbe,0x19,0x93,0x09,0xce,0x20 - .byte 0x10,0x46,0x4a,0x4a,0xf8,0x27,0x31,0xec - .byte 0x58,0xc7,0xe8,0x33,0x82,0xe3,0xce,0xbf - .byte 0x85,0xf4,0xdf,0x94,0xce,0x4b,0x09,0xc1 - .byte 0x94,0x56,0x8a,0xc0,0x13,0x72,0xa7,0xfc - .byte 0x9f,0x84,0x4d,0x73,0xa3,0xca,0x9a,0x61 - .byte 0x58,0x97,0xa3,0x27,0xfc,0x03,0x98,0x76 - .byte 0x23,0x1d,0xc7,0x61,0x03,0x04,0xae,0x56 - .byte 0xbf,0x38,0x84,0x00,0x40,0xa7,0x0e,0xfd - .byte 0xff,0x52,0xfe,0x03,0x6f,0x95,0x30,0xf1 - .byte 0x97,0xfb,0xc0,0x85,0x60,0xd6,0x80,0x25 - .byte 0xa9,0x63,0xbe,0x03,0x01,0x4e,0x38,0xe2 - .byte 0xf9,0xa2,0x34,0xff,0xbb,0x3e,0x03,0x44 - .byte 0x78,0x00,0x90,0xcb,0x88,0x11,0x3a,0x94 - .byte 0x65,0xc0,0x7c,0x63,0x87,0xf0,0x3c,0xaf - .byte 0xd6,0x25,0xe4,0x8b,0x38,0x0a,0xac,0x72 - .byte 0x21,0xd4,0xf8,0x07 + .space 156 RomHeaderGameTitle: - .ascii "POKEMON EMER" + .space 12 .global RomHeaderGameCode RomHeaderGameCode: - .ascii "BPEE" + .space 4 RomHeaderMakerCode: - .ascii "01" + .space 2 RomHeaderMagic: - .byte 0x96 + .byte 0 RomHeaderMainUnitCode: .byte 0 @@ -41,18 +22,14 @@ RomHeaderDeviceType: .byte 0 RomHeaderReserved1: - .rept 7 - .byte 0 - .endr + .space 7 .global RomHeaderSoftwareVersion RomHeaderSoftwareVersion: .byte 0 RomHeaderChecksum: - .byte 0x72 + .byte 0 RomHeaderReserved2: - .rept 2 - .byte 0 - .endr + .space 2 From 064216d3bed05719129d54079ce066ee94bee24e Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 29 Aug 2018 23:08:57 -0500 Subject: [PATCH 146/174] Add gbafix from devkitPro/gba-tools --- Makefile | 3 +- build_tools.sh | 1 + tools/gbafix/.gitignore | 1 + tools/gbafix/COPYING | 674 ++++++++++++++++++++++++++++++++++++++++ tools/gbafix/Makefile | 10 + tools/gbafix/gbafix.c | 281 +++++++++++++++++ 6 files changed, 969 insertions(+), 1 deletion(-) create mode 100644 tools/gbafix/.gitignore create mode 100644 tools/gbafix/COPYING create mode 100644 tools/gbafix/Makefile create mode 100644 tools/gbafix/gbafix.c diff --git a/Makefile b/Makefile index 4e504aecbf..ce3a6ec18d 100644 --- a/Makefile +++ b/Makefile @@ -43,6 +43,7 @@ MID := $(abspath tools/mid2agb/mid2agb) SCANINC := tools/scaninc/scaninc PREPROC := tools/preproc/preproc RAMSCRGEN := tools/ramscrgen/ramscrgen +FIX := tools/gbafix/gbafix # Clear the default suffixes .SUFFIXES: @@ -171,5 +172,5 @@ $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) $(ROM): $(ELF) $(OBJCOPY) -O binary $< $@ - gbafix $@ -p -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) + $(FIX) $@ -p -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) diff --git a/build_tools.sh b/build_tools.sh index 824ed025b8..ad8adf1320 100755 --- a/build_tools.sh +++ b/build_tools.sh @@ -6,3 +6,4 @@ make -C tools/bin2c CXX=${1:-g++} make -C tools/rsfont CXX=${1:-g++} make -C tools/aif2pcm CXX=${1:-g++} make -C tools/ramscrgen CXX=${1:-g++} +make -C tools/gbafix CXX=${1:-g++} diff --git a/tools/gbafix/.gitignore b/tools/gbafix/.gitignore new file mode 100644 index 0000000000..23abdd29c6 --- /dev/null +++ b/tools/gbafix/.gitignore @@ -0,0 +1 @@ +gbafix diff --git a/tools/gbafix/COPYING b/tools/gbafix/COPYING new file mode 100644 index 0000000000..94a9ed024d --- /dev/null +++ b/tools/gbafix/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/tools/gbafix/Makefile b/tools/gbafix/Makefile new file mode 100644 index 0000000000..f12c8cc4fa --- /dev/null +++ b/tools/gbafix/Makefile @@ -0,0 +1,10 @@ +CC = gcc +.PHONY: clean + +SRCS = gbafix.c + +gbafix: $(SRCS) + $(CC) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) gbafix gbafix.exe diff --git a/tools/gbafix/gbafix.c b/tools/gbafix/gbafix.c new file mode 100644 index 0000000000..60e4ccb4f5 --- /dev/null +++ b/tools/gbafix/gbafix.c @@ -0,0 +1,281 @@ +/* + "$Id: gbafix.c,v 1.2 2008-07-30 17:12:51 wntrmute Exp $" + + DevkitPro GBA ROM fix utility + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. + + Please report all bugs and problems through the bug tracker at + "http://sourceforge.net/tracker/?group_id=114505&atid=668551". + + "$Header: /lvm/shared/ds/ds/cvs/devkitpro-cvsbackup/tools/gba/gbatools/gbafix.c,v 1.2 2008-07-30 17:12:51 wntrmute Exp $" + +*/ +//--------------------------------------------------------------------------------- +// gbafix.c +//--------------------------------------------------------------------------------- +/* + Gameboy Advance ROM fixer (by Dark Fader / BlackThunder / WinterMute / Diegoisawesome) + Validates header of GBA roms. + + History + ------- + v1.05 - added debug offset argument, (Diegoisawesome) + v1.04 - converted to plain C, (WinterMute) + v1.03 - header.fixed, header.device_type + v1.02 - redefined the options (rgbfix style), checksum=0 + v1.01 - fix in parameters + v1.00 - logo, complement +*/ + +#pragma pack(1) + +#include +#include +#include +#include + +#define VER "1.05" +#define ARGV argv[arg] +#define VALUE (ARGV+2) +#define NUMBER strtoul(VALUE, NULL, 0) + +typedef struct +{ + uint32_t start_code; // B instruction + uint8_t logo[0xA0-0x04]; // logo data + uint8_t title[0xC]; // game title name + uint32_t game_code; // + uint16_t maker_code; // + uint8_t fixed; // 0x96 + uint8_t unit_code; // 0x00 + uint8_t device_type; // 0x00 + uint8_t unused[7]; // + uint8_t game_version; // 0x00 + uint8_t complement; // 800000A0..800000BC + uint16_t checksum; // 0x0000 +} Header; + + +Header header; + +unsigned short checksum_without_header = 0; + +const Header good_header = +{ + // start_code + 0xEA00002E, + // logo + { 0x24,0xFF,0xAE,0x51,0x69,0x9A,0xA2,0x21,0x3D,0x84,0x82,0x0A,0x84,0xE4,0x09,0xAD, + 0x11,0x24,0x8B,0x98,0xC0,0x81,0x7F,0x21,0xA3,0x52,0xBE,0x19,0x93,0x09,0xCE,0x20, + 0x10,0x46,0x4A,0x4A,0xF8,0x27,0x31,0xEC,0x58,0xC7,0xE8,0x33,0x82,0xE3,0xCE,0xBF, + 0x85,0xF4,0xDF,0x94,0xCE,0x4B,0x09,0xC1,0x94,0x56,0x8A,0xC0,0x13,0x72,0xA7,0xFC, + 0x9F,0x84,0x4D,0x73,0xA3,0xCA,0x9A,0x61,0x58,0x97,0xA3,0x27,0xFC,0x03,0x98,0x76, + 0x23,0x1D,0xC7,0x61,0x03,0x04,0xAE,0x56,0xBF,0x38,0x84,0x00,0x40,0xA7,0x0E,0xFD, + 0xFF,0x52,0xFE,0x03,0x6F,0x95,0x30,0xF1,0x97,0xFB,0xC0,0x85,0x60,0xD6,0x80,0x25, + 0xA9,0x63,0xBE,0x03,0x01,0x4E,0x38,0xE2,0xF9,0xA2,0x34,0xFF,0xBB,0x3E,0x03,0x44, + 0x78,0x00,0x90,0xCB,0x88,0x11,0x3A,0x94,0x65,0xC0,0x7C,0x63,0x87,0xF0,0x3C,0xAF, + 0xD6,0x25,0xE4,0x8B,0x38,0x0A,0xAC,0x72,0x21,0xD4,0xF8,0x07 } , + // title + { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, + // game code + 0x00000000, + // maker code + 0x3130, + // fixed + 0x96, + // unit_code + 0x00, + // device type + 0x00, + // unused + { 0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, + // game version + 0x00, + // complement + 0x00, + // checksum + 0x0000 +}; + +//--------------------------------------------------------------------------------- +char HeaderComplement() +/*--------------------------------------------------------------------------------- + Calculate Header complement check +---------------------------------------------------------------------------------*/ +{ + int n; + char c = 0; + char *p = (char *)&header + 0xA0; + for (n=0; n<0xBD-0xA0; n++) + { + c += *p++; + } + return -(0x19+c); +} + + +//--------------------------------------------------------------------------------- +int main(int argc, char *argv[]) +//--------------------------------------------------------------------------------- +{ + int arg; + char *argfile = 0; + FILE *infile; + + int size,bit; + + // show syntax + if (argc <= 1) + { + printf("GBA ROM fixer v"VER" by Dark Fader / BlackThunder / WinterMute / Diegoisawesome \n"); + printf("Syntax: gbafix [-p] [-t[title]] [-c] [-m] [-r] [-d]\n"); + printf("\n"); + printf("parameters:\n"); + printf(" -p Pad to next exact power of 2. No minimum size!\n"); + printf(" -t[] Patch title. Stripped filename if none given.\n"); + printf(" -c<game_code> Patch game code (four characters)\n"); + printf(" -m<maker_code> Patch maker code (two characters)\n"); + printf(" -r<version> Patch game version (number)\n"); + printf(" -d<debug> Enable debugging handler and set debug entry point (0 or 1)\n"); + return -1; + } + + // get filename + for (arg=1; arg<argc; arg++) + { + if ((ARGV[0] != '-')) { argfile=ARGV; break; } + } + + // check filename + if (!argfile) + { + printf("Filename needed!\n"); + return -1; + } + + // read file + infile = fopen(argfile, "r+b"); + if (!infile) { printf("Error opening input file!\n"); return -1; } + fseek(infile, 0, SEEK_SET); + fread(&header, sizeof(header), 1, infile); + + // fix some data + memcpy(header.logo, good_header.logo, sizeof(header.logo)); + memcpy(&header.fixed, &good_header.fixed, sizeof(header.fixed)); + memcpy(&header.device_type, &good_header.device_type, sizeof(header.device_type)); + + // parse command line + for (arg=1; arg<argc; arg++) + { + if ((ARGV[0] == '-')) + { + switch (ARGV[1]) + { + case 'p': // pad + { + fseek(infile, 0, SEEK_END); + size = ftell(infile); + for (bit=31; bit>=0; bit--) if (size & (1<<bit)) break; + if (size != (1<<bit)) + { + int todo = (1<<(bit+1)) - size; + while (todo--) fputc(0xFF, infile); + } + fseek(infile, 0, SEEK_SET); + break; + } + + case 't': // title + { + char title[256]; + memset(title, 0, sizeof(title)); + if (VALUE[0]) + { + strncpy(title, VALUE, sizeof(header.title)); + } + else + { + // use filename + char s[256], *begin=s, *t; strcpy(s, argfile); + t = strrchr(s, '\\'); if (t) begin = t+1; + t = strrchr(s, '/'); if (t) begin = t+1; + t = strrchr(s, '.'); if (t) *t = 0; + strncpy(title, begin, sizeof(header.title)); + printf("%s\n",begin); + } + memcpy(header.title, title, sizeof(header.title)); // copy + break; + } + + case 'c': // game code + { + //if (!VALUE[0]) { printf("Need value for %s\n", ARGV); break; } + //header.game_code = NUMBER; + header.game_code = VALUE[0] | VALUE[1]<<8 | VALUE[2]<<16 | VALUE[3]<<24; + break; + } + + case 'm': // maker code + { + //if (!VALUE[0]) { printf("Need value for %s\n", ARGV); break; } + //header.maker_code = (unsigned short)NUMBER; + header.maker_code = VALUE[0] | VALUE[1]<<8; + break; + } + + case 'v': // ignored, compatability with other gbafix + { + break; + } + + case 'r': // version + { + if (!VALUE[0]) { printf("Need value for %s\n", ARGV); break; } + header.game_version = (unsigned char)NUMBER; + break; + } + + case 'd': // debug + { + if (!VALUE[0]) { printf("Need value for %s\n", ARGV); break; } + header.logo[0x9C-0x04] = 0xA5; // debug enable + header.device_type = (unsigned char)((NUMBER & 1) << 7); // debug handler entry point + break; + } + + default: + { + printf("Invalid option: %s\n", ARGV); + } + } + } + } + + // update complement check & total checksum + header.complement = 0; + header.checksum = 0; // must be 0 + header.complement = HeaderComplement(); + //header.checksum = checksum_without_header + HeaderChecksum(); + + fseek(infile, 0, SEEK_SET); + fwrite(&header, sizeof(header), 1, infile); + fclose(infile); + + printf("ROM fixed!\n"); + + return 0; +} From b22b6c505756c637fb172f54848d0511e0389417 Mon Sep 17 00:00:00 2001 From: Diegoisawesome <diego@domoreaweso.me> Date: Wed, 29 Aug 2018 23:48:35 -0500 Subject: [PATCH 147/174] Update devkitARM to r49 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index aad16906c2..302d10a728 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,7 @@ cache: apt: true install: - pushd $HOME - - travis_retry wget https://github.com/devkitPro/buildscripts/releases/download/devkitARM_r48/devkitARM_r48-linux.tar.xz + - travis_retry wget https://github.com/devkitPro/buildscripts/releases/download/devkitARM_r49/devkitARM_r49-linux.tar.xz - tar xJf devkitARM*.tar.xz - travis_retry git clone https://github.com/pret/agbcc.git - cd agbcc && ./build.sh && ./install.sh $TRAVIS_BUILD_DIR From bc9fe72c6e85b1930f137ed49c5d2b0c4e4b10de Mon Sep 17 00:00:00 2001 From: DizzyEggg <jajkodizzy@wp.pl> Date: Thu, 30 Aug 2018 15:01:07 +0200 Subject: [PATCH 148/174] Do some pyramid bag --- asm/battle_pyramid_bag.s | 3129 +------------------------------------- include/global.h | 7 + include/item_use.h | 3 +- include/list_menu.h | 3 +- include/menu.h | 6 +- include/strings.h | 19 + src/battle_dome.c | 13 +- src/battle_main.c | 11 +- src/battle_pyramid_bag.c | 1043 ++++++++++++- src/item.c | 5 +- src/item_use.c | 40 +- 11 files changed, 1075 insertions(+), 3204 deletions(-) diff --git a/asm/battle_pyramid_bag.s b/asm/battle_pyramid_bag.s index ea07fdd0a6..23ad7172ea 100644 --- a/asm/battle_pyramid_bag.s +++ b/asm/battle_pyramid_bag.s @@ -5,3131 +5,8 @@ .text - thumb_func_start sub_81C5238 -sub_81C5238: @ 81C5238 - push {r4,lr} - sub sp, 0x4 - ldr r4, =gUnknown_0203CF2C - ldr r0, [r4] - ldr r1, =0x00000984 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x4 - bhi _081C52F0 - lsls r0, 2 - ldr r1, =_081C5264 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C5264: - .4byte _081C5278 - .4byte _081C5294 - .4byte _081C52B8 - .4byte _081C52C8 - .4byte _081C52D4 -_081C5278: - bl reset_temp_tile_data_buffers - ldr r1, =gBagScreen_Gfx - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _081C52D8 - .pool -_081C5294: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C5308 - ldr r0, =gUnknown_08D9AE04 - ldr r4, =gUnknown_0203CF2C - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r1, [r4] - b _081C52DC - .pool -_081C52B8: - ldr r0, =gUnknown_08D9AF44 - movs r1, 0 - movs r2, 0x20 - bl LoadCompressedPalette - b _081C52D8 - .pool -_081C52C8: - ldr r0, =gUnknown_0861F3CC - bl LoadCompressedObjectPic - b _081C52D8 - .pool -_081C52D4: - bl sub_81C6E98 -_081C52D8: - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] -_081C52DC: - ldr r0, =0x00000984 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _081C5308 - .pool -_081C52F0: - bl LoadListMenuArrowsGfx - ldr r0, [r4] - ldr r1, =0x00000984 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - movs r0, 0x1 - b _081C530A - .pool -_081C5308: - movs r0, 0 -_081C530A: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C5238 - thumb_func_start sub_81C5314 -sub_81C5314: @ 81C5314 - push {r4-r7,lr} - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, =0x00000ca9 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r3, =0x00000e2c - adds r0, r3 - adds r7, r2, r0 - movs r6, 0 - ldr r1, =gUnknown_0203CF2C - ldr r0, [r1] - ldr r4, =0x00000821 - adds r0, r4 - ldrb r0, [r0] - subs r0, 0x1 - cmp r6, r0 - bge _081C5382 - adds r5, r1, 0 -_081C5344: - lsls r1, r6, 1 - adds r4, r1, r6 - lsls r4, 3 - ldr r0, =0x0000087c - adds r4, r0 - ldr r0, [r5] - adds r0, r4 - adds r1, r7 - ldrh r1, [r1] - bl sub_81C540C - ldr r1, [r5] - lsls r2, r6, 3 - ldr r3, =0x00000824 - adds r0, r1, r3 - adds r0, r2 - adds r4, r1, r4 - str r4, [r0] - ldr r4, =0x00000828 - adds r0, r1, r4 - adds r0, r2 - str r6, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =0x00000821 - adds r1, r0 - ldrb r0, [r1] - subs r0, 0x1 - cmp r6, r0 - blt _081C5344 -_081C5382: - ldr r5, =gUnknown_0203CF2C - lsls r4, r6, 1 - adds r4, r6 - lsls r4, 3 - ldr r1, =0x0000087c - adds r4, r1 - ldr r0, [r5] - adds r0, r4 - ldr r1, =gText_CloseBag - bl StringCopy - ldr r1, [r5] - lsls r2, r6, 3 - ldr r3, =0x00000824 - adds r0, r1, r3 - adds r0, r2 - adds r4, r1, r4 - str r4, [r0] - ldr r4, =0x00000828 - adds r1, r4 - adds r1, r2 - movs r0, 0x2 - negs r0, r0 - str r0, [r1] - ldr r2, =gMultiuseListMenuTemplate - adds r1, r2, 0 - ldr r0, =gUnknown_0861F2C0 - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldr r1, [r5] - ldr r6, =0x00000821 - adds r0, r1, r6 - ldrb r0, [r0] - strh r0, [r2, 0xC] - adds r3, r1, r3 - str r3, [r2] - ldr r7, =0x00000822 - adds r1, r7 - ldrb r0, [r1] - strh r0, [r2, 0xE] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5314 - thumb_func_start sub_81C540C -sub_81C540C: @ 81C540C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _081C5450 - ldr r0, =gStringVar1 - adds r1, r4, 0 - subs r1, 0x84 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, =gStringVar2 - adds r0, r4, 0 - bl CopyItemName - ldr r1, =gText_UnkF908Var1Clear7Var2 - adds r0, r5, 0 - bl StringExpandPlaceholders - b _081C5458 - .pool -_081C5450: - adds r0, r4, 0 - adds r1, r5, 0 - bl CopyItemName -_081C5458: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C540C - - thumb_func_start sub_81C5460 -sub_81C5460: @ 81C5460 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _081C5476 - movs r0, 0x5 - bl PlaySE - bl sub_81C6F20 -_081C5476: - ldr r5, =gUnknown_0203CF2C - ldr r1, [r5] - ldr r2, =0x00000814 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081C5504 - adds r2, 0x1 - adds r0, r1, r2 - ldrb r1, [r0] - movs r0, 0x1 - eors r0, r1 - bl sub_81C6FF8 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _081C54E0 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - lsls r3, r4, 1 - ldr r1, =0x00000ca9 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - ldr r0, =0x00000e2c - adds r2, r0 - adds r2, r3 - ldrh r0, [r2] - ldr r1, [r5] - ldr r2, =0x00000815 - adds r1, r2 - ldrb r1, [r1] - bl sub_81C6F90 - b _081C54EE - .pool -_081C54E0: - ldr r0, =0x0000ffff - ldr r1, [r5] - ldr r2, =0x00000815 - adds r1, r2 - ldrb r1, [r1] - bl sub_81C6F90 -_081C54EE: - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - ldr r0, =0x00000815 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x1 - eors r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl sub_81C55D8 -_081C5504: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5460 - - thumb_func_start sub_81C5518 -sub_81C5518: @ 81C5518 - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _081C55B8 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000814 - adds r0, r1 - ldrb r1, [r0] - cmp r1, 0xFF - beq _081C5560 - lsls r0, r4, 24 - lsrs r0, 24 - cmp r1, r0 - bne _081C5558 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81C5AB8 - b _081C5560 - .pool -_081C5558: - adds r0, r5, 0 - movs r1, 0xFF - bl sub_81C5AB8 -_081C5560: - ldr r0, =gStringVar1 - ldr r1, =gSaveBlock2Ptr - ldr r3, [r1] - ldr r2, =0x00000ca9 - adds r1, r3, r2 - ldrb r2, [r1] - lsls r2, 30 - lsrs r2, 30 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 1 - adds r1, r4, r1 - ldr r2, =0x00000e54 - adds r3, r2 - adds r3, r1 - ldrb r1, [r3] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gText_xVar1 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x7 - adds r1, r4, 0 - movs r2, 0x77 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r0, 0xFF - str r0, [sp, 0x8] - str r1, [sp, 0xC] - adds r0, r6, 0 - adds r1, r4, 0 - adds r3, r5, 0 - bl sub_81C6C94 -_081C55B8: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5518 - - thumb_func_start sub_81C55D8 -sub_81C55D8: @ 81C55D8 - push {r4,lr} - sub sp, 0x10 - adds r3, r0, 0 - movs r0, 0x2 - negs r0, r0 - cmp r3, r0 - beq _081C561C - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - lsls r3, 1 - ldr r1, =0x00000ca9 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - ldr r0, =0x00000e2c - adds r2, r0 - adds r2, r3 - ldrh r0, [r2] - bl ItemId_GetDescription - adds r4, r0, 0 - b _081C5638 - .pool -_081C561C: - ldr r0, =gStringVar1 - ldr r2, =gReturnToXStringsTable2 - ldr r1, =gUnknown_0203CF30 - ldrb r1, [r1, 0x4] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gText_ReturnToVar1 - adds r0, r4, 0 - bl StringExpandPlaceholders -_081C5638: - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_81C6C3C - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C55D8 - - thumb_func_start sub_81C5674 -sub_81C5674: @ 81C5674 - push {r4,lr} - sub sp, 0x10 - ldr r4, =gUnknown_0203CF2C - ldr r1, [r4] - ldr r2, =0x00000816 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081C56B4 - adds r2, 0xB - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - subs r0, r1 - str r0, [sp] - ldr r0, =0x00000b5e - str r0, [sp, 0x4] - str r0, [sp, 0x8] - ldr r0, =gUnknown_0203CF30+8 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xAC - movs r2, 0xC - movs r3, 0x94 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r4] - ldr r2, =0x00000816 - adds r1, r2 - strb r0, [r1] -_081C56B4: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5674 - - thumb_func_start sub_81C56CC -sub_81C56CC: @ 81C56CC - push {r4,lr} - ldr r4, =gUnknown_0203CF2C - ldr r0, [r4] - ldr r2, =0x00000816 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081C56EA - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, =0x00000816 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] -_081C56EA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C56CC - - thumb_func_start sub_81C56F8 -sub_81C56F8: @ 81C56F8 - push {r4,lr} - ldr r0, =sub_81C5BC8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldr r0, =gMultiuseListMenuTemplate - ldr r2, =gUnknown_0203CF30 - ldrh r1, [r2, 0x8] - ldrh r2, [r2, 0x6] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C56F8 - - thumb_func_start sub_81C5738 -sub_81C5738: @ 81C5738 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gSaveBlock2Ptr - ldr r6, [r2] - ldr r3, =0x00000ca9 - adds r2, r6, r3 - ldrb r3, [r2] - lsls r3, 30 - lsrs r2, r3, 30 - lsls r4, r2, 2 - adds r4, r2 - lsls r4, 2 - ldr r2, =0x00000e2c - adds r4, r2 - adds r4, r6, r4 - lsrs r3, 30 - lsls r2, r3, 2 - adds r2, r3 - lsls r2, 1 - ldr r3, =0x00000e54 - adds r2, r3 - adds r6, r2 - lsls r5, r0, 1 - adds r5, r4 - ldrh r2, [r5] - mov r8, r2 - lsls r2, r1, 1 - adds r2, r4 - ldrh r3, [r2] - strh r3, [r5] - mov r3, r8 - strh r3, [r2] - adds r0, r6, r0 - ldrb r2, [r0] - adds r6, r1 - ldrb r1, [r6] - strb r1, [r0] - strb r2, [r6] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5738 - - thumb_func_start sub_81C57A8 -sub_81C57A8: @ 81C57A8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r1, =0x00000ca9 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r2, r1, 30 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 2 - ldr r2, =0x00000e2c - adds r0, r2 - adds r6, r3, r0 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - ldr r1, =0x00000e54 - adds r0, r1 - adds r3, r0 - cmp r4, r5 - beq _081C5862 - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - mov r12, r0 - adds r0, r3, r4 - ldrb r0, [r0] - mov r8, r0 - cmp r5, r4 - bls _081C5830 - subs r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r2, r4, 16 - cmp r4, r5 - bge _081C5854 -_081C5802: - asrs r2, 16 - lsls r0, r2, 1 - adds r0, r6 - ldrh r1, [r0, 0x2] - strh r1, [r0] - adds r1, r3, r2 - ldrb r0, [r1, 0x1] - strb r0, [r1] - adds r2, 0x1 - lsls r2, 16 - asrs r0, r2, 16 - cmp r0, r5 - blt _081C5802 - b _081C5854 - .pool -_081C5830: - lsls r2, r7, 16 - cmp r7, r5 - ble _081C5854 -_081C5836: - asrs r2, 16 - lsls r1, r2, 1 - adds r1, r6 - subs r0, r1, 0x2 - ldrh r0, [r0] - strh r0, [r1] - adds r1, r3, r2 - subs r0, r1, 0x1 - ldrb r0, [r0] - strb r0, [r1] - subs r2, 0x1 - lsls r2, 16 - asrs r0, r2, 16 - cmp r0, r5 - bgt _081C5836 -_081C5854: - lsls r0, r5, 1 - adds r0, r6 - mov r2, r12 - strh r2, [r0] - adds r0, r3, r5 - mov r1, r8 - strb r1, [r0] -_081C5862: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C57A8 - - thumb_func_start sub_81C586C -sub_81C586C: @ 81C586C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r1, =0x00000ca9 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r2, r1, 30 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 2 - ldr r2, =0x00000e2c - adds r0, r2 - adds r0, r3 - mov r9, r0 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - ldr r4, =0x00000e54 - adds r0, r4 - adds r3, r0 - mov r8, r3 - movs r5, 0 - movs r3, 0 -_081C58A4: - lsls r0, r5, 1 - mov r1, r9 - adds r2, r0, r1 - ldrh r0, [r2] - mov r4, r8 - adds r1, r4, r5 - cmp r0, 0 - beq _081C58BA - ldrb r0, [r1] - cmp r0, 0 - bne _081C58BE -_081C58BA: - strh r3, [r2] - strb r3, [r1] -_081C58BE: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _081C58A4 - movs r5, 0 -_081C58CA: - adds r1, r5, 0x1 - lsls r0, r1, 24 - lsrs r4, r0, 24 - adds r7, r1, 0 - cmp r4, 0x9 - bhi _081C58FE - lsls r0, r5, 1 - mov r1, r9 - adds r6, r0, r1 -_081C58DC: - ldrh r0, [r6] - cmp r0, 0 - beq _081C58EC - mov r2, r8 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _081C58F4 -_081C58EC: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81C5738 -_081C58F4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _081C58DC -_081C58FE: - lsls r0, r7, 24 - lsrs r5, r0, 24 - cmp r5, 0x8 - bls _081C58CA - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C586C - - thumb_func_start sub_81C5924 -sub_81C5924: @ 81C5924 - push {r4-r6,lr} - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, =0x00000ca9 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x00000e2c - adds r0, r1 - adds r5, r2, r0 - bl sub_81C586C - ldr r3, =gUnknown_0203CF2C - ldr r0, [r3] - ldr r2, =0x00000821 - adds r0, r2 - movs r1, 0 - strb r1, [r0] - movs r4, 0 - adds r6, r3, 0 -_081C5954: - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - ldr r3, =gUnknown_0203CF2C - cmp r0, 0 - beq _081C596A - ldr r1, [r6] - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_081C596A: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x9 - bls _081C5954 - ldr r0, [r3] - ldr r2, =0x00000821 - adds r0, r2 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, [r3] - adds r2, r0, r2 - ldrb r2, [r2] - cmp r2, 0x8 - bls _081C59AC - ldr r2, =0x00000822 - adds r1, r0, r2 - movs r0, 0x8 - strb r0, [r1] - b _081C59B2 - .pool -_081C59AC: - ldr r1, =0x00000822 - adds r0, r1 - strb r2, [r0] -_081C59B2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5924 - - thumb_func_start sub_81C59BC -sub_81C59BC: @ 81C59BC - push {r4,r5,lr} - ldr r0, =gUnknown_0203CF30 - ldrh r1, [r0, 0x8] - adds r3, r0, 0 - ldr r4, =gUnknown_0203CF2C - cmp r1, 0 - beq _081C59E4 - ldrh r0, [r3, 0x8] - ldr r1, [r4] - ldr r5, =0x00000822 - adds r2, r1, r5 - ldrb r2, [r2] - adds r0, r2 - subs r5, 0x1 - adds r1, r5 - ldrb r1, [r1] - cmp r0, r1 - ble _081C59E4 - subs r0, r1, r2 - strh r0, [r3, 0x8] -_081C59E4: - adds r2, r3, 0 - ldrh r1, [r2, 0x8] - ldrh r0, [r2, 0x6] - adds r1, r0 - ldr r0, [r4] - ldr r4, =0x00000821 - adds r0, r4 - ldrb r0, [r0] - cmp r1, r0 - blt _081C5A18 - adds r1, r0, 0 - cmp r1, 0 - bne _081C5A14 - strh r1, [r2, 0x6] - b _081C5A18 - .pool -_081C5A14: - subs r0, 0x1 - strh r0, [r3, 0x6] -_081C5A18: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C59BC - - thumb_func_start sub_81C5A20 -sub_81C5A20: @ 81C5A20 - push {r4-r7,lr} - ldr r0, =gUnknown_0203CF30 - ldrh r1, [r0, 0x6] - adds r5, r0, 0 - cmp r1, 0x4 - bls _081C5A80 - movs r4, 0 - ldrh r0, [r5, 0x6] - subs r0, 0x4 - cmp r4, r0 - bgt _081C5A80 - ldrh r2, [r5, 0x8] - ldr r6, =gUnknown_0203CF2C - ldr r0, [r6] - ldr r3, =0x00000822 - adds r1, r0, r3 - ldrb r1, [r1] - adds r2, r1 - ldr r7, =0x00000821 - adds r0, r7 - ldrb r0, [r0] - cmp r2, r0 - beq _081C5A80 - adds r3, r5, 0 -_081C5A50: - ldrh r0, [r3, 0x6] - subs r0, 0x1 - strh r0, [r3, 0x6] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrh r0, [r3, 0x6] - subs r0, 0x4 - cmp r4, r0 - bgt _081C5A80 - ldrh r2, [r5, 0x8] - ldr r1, [r6] - ldr r7, =0x00000822 - adds r0, r1, r7 - ldrb r0, [r0] - adds r2, r0 - ldr r0, =0x00000821 - adds r1, r0 - ldrb r1, [r1] - cmp r2, r1 - bne _081C5A50 -_081C5A80: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5A20 - - thumb_func_start sub_81C5A98 -sub_81C5A98: @ 81C5A98 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_81C5AB8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C5A98 - - thumb_func_start sub_81C5AB8 -sub_81C5AB8: @ 81C5AB8 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - cmp r2, 0xFF - bne _081C5AF4 - movs r0, 0x1 - movs r1, 0 - bl GetMenuCursorDimensionByFont - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0x1 - bl GetMenuCursorDimensionByFont - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl FillWindowPixelRect - b _081C5B08 -_081C5AF4: - ldr r1, =gText_SelectorArrow2 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r2, [sp, 0xC] - movs r2, 0 - adds r3, r5, 0 - bl sub_81C6C3C -_081C5B08: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5AB8 - - thumb_func_start sub_81C5B14 -sub_81C5B14: @ 81C5B14 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C5B4C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5B14 - - thumb_func_start sub_81C5B4C -sub_81C5B4C: @ 81C5B4C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r2, r0, r1 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081C5BBC - ldrb r0, [r2] - ldr r4, =gUnknown_0203CF30+8 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl DestroyListMenuTask - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _081C5B94 - bl SetMainCallback2 - b _081C5B9E - .pool -_081C5B94: - adds r0, r4, 0 - subs r0, 0x8 - ldr r0, [r0] - bl SetMainCallback2 -_081C5B9E: - bl sub_81C56CC - bl ResetSpriteData - bl FreeAllSpritePalettes - bl FreeAllWindowBuffers - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - bl Free - adds r0, r5, 0 - bl DestroyTask -_081C5BBC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5B4C - - thumb_func_start sub_81C5BC8 -sub_81C5BC8: @ 81C5BC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r7, r0, r1 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C5BEA - b _081C5D16 -_081C5BEA: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C5BF8 - b _081C5D16 -_081C5BF8: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _081C5C5C - ldr r4, =gUnknown_0203CF30 - ldrb r0, [r4, 0x4] - cmp r0, 0x2 - bne _081C5C12 - b _081C5D16 -_081C5C12: - ldrb r0, [r7] - adds r1, r4, 0 - adds r1, 0x8 - adds r2, r4, 0x6 - bl ListMenuGetScrollAndRow - ldrh r1, [r4, 0x8] - ldrh r0, [r4, 0x6] - adds r1, r0 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r2, =0x00000821 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _081C5D16 - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_81C67CC - b _081C5D16 - .pool -_081C5C5C: - ldrb r0, [r7] - bl ListMenuHandleInputGetItemId - adds r6, r0, 0 - ldrb r0, [r7] - ldr r1, =gUnknown_0203CF30+8 - mov r8, r1 - mov r2, r8 - subs r2, 0x2 - bl ListMenuGetScrollAndRow - movs r0, 0x2 - negs r0, r0 - cmp r6, r0 - beq _081C5C88 - adds r0, 0x1 - cmp r6, r0 - bne _081C5CA0 - b _081C5D16 - .pool -_081C5C88: - movs r0, 0x5 - bl PlaySE - ldr r0, =gSpecialVar_ItemId - strh r4, [r0] - adds r0, r5, 0 - bl sub_81C5B14 - b _081C5D16 - .pool -_081C5CA0: - movs r0, 0x5 - bl PlaySE - ldr r2, =gSpecialVar_ItemId - mov r12, r2 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - lsls r3, r6, 1 - ldr r0, =0x00000ca9 - adds r4, r2, r0 - ldrb r1, [r4] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - ldr r1, =0x00000e2c - adds r0, r2, r1 - adds r0, r3 - ldrh r0, [r0] - mov r1, r12 - strh r0, [r1] - strh r6, [r7, 0x2] - ldrb r1, [r4] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - adds r0, r6, r0 - ldr r1, =0x00000e54 - adds r2, r1 - adds r2, r0 - ldrb r0, [r2] - strh r0, [r7, 0x4] - mov r0, r8 - subs r0, 0x8 - ldrb r0, [r0, 0x4] - cmp r0, 0x2 - bne _081C5D10 - adds r0, r5, 0 - bl sub_81C674C - b _081C5D16 - .pool -_081C5D10: - adds r0, r5, 0 - bl sub_81C5D20 -_081C5D16: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C5BC8 - - thumb_func_start sub_81C5D20 -sub_81C5D20: @ 81C5D20 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - bl sub_81C56CC - ldrb r0, [r4] - movs r1, 0x1 - bl sub_81C5A98 - ldr r0, =gUnknown_0203CF30 - ldrb r4, [r0, 0x4] - cmp r4, 0x1 - beq _081C5D74 - cmp r4, 0x3 - beq _081C5DC4 - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - ldr r0, =0x00000818 - adds r2, r1, r0 - ldr r0, =gUnknown_0861F308 - str r0, [r2] - movs r0, 0x82 - lsls r0, 4 - adds r1, r0 - movs r0, 0x4 - b _081C5DD8 - .pool -_081C5D74: - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - bl ItemId_GetBattleUsage - lsls r0, 24 - cmp r0, 0 - beq _081C5DA0 - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - ldr r0, =0x00000818 - adds r2, r1, r0 - ldr r0, =gUnknown_0861F30E - b _081C5DCE - .pool -_081C5DA0: - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000818 - adds r2, r0, r1 - ldr r1, =gUnknown_0861F310 - str r1, [r2] - movs r1, 0x82 - lsls r1, 4 - adds r0, r1 - strb r4, [r0] - b _081C5DDA - .pool -_081C5DC4: - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - ldr r0, =0x00000818 - adds r2, r1, r0 - ldr r0, =gUnknown_0861F30C -_081C5DCE: - str r0, [r2] - movs r0, 0x82 - lsls r0, 4 - adds r1, r0 - movs r0, 0x2 -_081C5DD8: - strb r0, [r1] -_081C5DDA: - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl CopyItemName - ldr r4, =gStringVar4 - ldr r1, =gText_Var1IsSelected - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_81C6C3C - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - movs r1, 0x82 - lsls r1, 4 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C5E3C - movs r0, 0 - b _081C5E42 - .pool -_081C5E3C: - cmp r0, 0x2 - bne _081C5E50 - movs r0, 0x1 -_081C5E42: - bl sub_81C6D24 - lsls r0, 24 - lsrs r0, 24 - bl sub_81C5EAC - b _081C5E62 -_081C5E50: - movs r0, 0x2 - bl sub_81C6D24 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - movs r2, 0x2 - bl sub_81C5F08 -_081C5E62: - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - movs r1, 0x82 - lsls r1, 4 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bne _081C5E8C - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81C5FE4 - b _081C5E98 - .pool -_081C5E8C: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81C5F68 -_081C5E98: - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5D20 - - thumb_func_start sub_81C5EAC -sub_81C5EAC: @ 81C5EAC - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - ldr r6, =gUnknown_0203CF2C - ldr r1, [r6] - movs r5, 0x82 - lsls r5, 4 - adds r0, r1, r5 - ldrb r0, [r0] - str r0, [sp, 0x8] - ldr r0, =gUnknown_0861F2D8 - str r0, [sp, 0xC] - ldr r0, =0x00000818 - adds r1, r0 - ldr r0, [r1] - str r0, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0x8 - movs r3, 0x1 - bl AddItemMenuActionTextPrinters - ldr r0, [r6] - adds r0, r5 - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5EAC - - thumb_func_start sub_81C5F08 -sub_81C5F08: @ 81C5F08 - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x38 - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - ldr r0, =gUnknown_0861F2D8 - str r0, [sp, 0xC] - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000818 - adds r0, r1 - ldr r0, [r0] - str r0, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0x8 - movs r3, 0x1 - bl sub_8198DBC - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x38 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_8199944 - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5F08 - - thumb_func_start sub_81C5F68 -sub_81C5F68: @ 81C5F68 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C5FD0 - bl Menu_ProcessInputNoWrapAround - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _081C5FD0 - adds r0, 0x1 - cmp r4, r0 - bne _081C5FA8 - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_0861F2D8 - ldr r1, [r0, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - b _081C5FD0 - .pool -_081C5FA8: - movs r0, 0x5 - bl PlaySE - ldr r1, =gUnknown_0861F2D8 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r2, =0x00000818 - adds r0, r2 - ldr r0, [r0] - adds r0, r4 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - cmp r1, 0 - beq _081C5FD0 - adds r0, r6, 0 - bl _call_via_r1 -_081C5FD0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5F68 - - thumb_func_start sub_81C5FE4 -sub_81C5FE4: @ 81C5FE4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C5FF8 - b _081C6160 -_081C5FF8: - bl GetMenuCursorPos - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, =gMain - ldrh r1, [r5, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081C6040 - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0 - bgt _081C6016 - b _081C6160 -_081C6016: - subs r0, 0x2 - lsls r0, 24 - asrs r0, 24 - bl sub_81C616C - lsls r0, 24 - cmp r0, 0 - bne _081C6028 - b _081C6160 -_081C6028: - movs r0, 0x5 - bl PlaySE - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - bl sub_8199134 - b _081C6160 - .pool -_081C6040: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C6084 - lsls r0, r4, 24 - asrs r1, r0, 24 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - movs r2, 0x82 - lsls r2, 4 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x2 - cmp r1, r0 - blt _081C6060 - b _081C6160 -_081C6060: - adds r0, r1, 0x2 - lsls r0, 24 - asrs r0, 24 - bl sub_81C616C - lsls r0, 24 - cmp r0, 0 - beq _081C6160 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - movs r1, 0x1 - bl sub_8199134 - b _081C6160 - .pool -_081C6084: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _081C6098 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C60C0 -_081C6098: - lsls r0, r4, 24 - asrs r1, r0, 24 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C6160 - subs r0, r1, 0x1 - lsls r0, 24 - asrs r0, 24 - bl sub_81C616C - lsls r0, 24 - cmp r0, 0 - beq _081C6160 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _081C60FA -_081C60C0: - ldrh r1, [r5, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081C60D6 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _081C6102 -_081C60D6: - lsls r0, r4, 24 - asrs r1, r0, 24 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081C6160 - adds r0, r1, 0x1 - lsls r0, 24 - asrs r0, 24 - bl sub_81C616C - lsls r0, 24 - cmp r0, 0 - beq _081C6160 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 -_081C60FA: - movs r1, 0 - bl sub_8199134 - b _081C6160 -_081C6102: - ldrh r1, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C6148 - movs r0, 0x5 - bl PlaySE - ldr r2, =gUnknown_0861F2D8 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - lsls r1, r4, 24 - asrs r1, 24 - ldr r3, =0x00000818 - adds r0, r3 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 3 - adds r2, 0x4 - adds r0, r2 - ldr r1, [r0] - cmp r1, 0 - beq _081C6160 - adds r0, r6, 0 - bl _call_via_r1 - b _081C6160 - .pool -_081C6148: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C6160 - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_0861F2D8 - ldr r1, [r0, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 -_081C6160: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5FE4 - - thumb_func_start sub_81C616C -sub_81C616C: @ 81C616C - push {lr} - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - blt _081C61A0 - ldr r0, =gUnknown_0203CF2C - ldr r2, [r0] - movs r3, 0x82 - lsls r3, 4 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r1, r0 - bgt _081C61A0 - ldr r3, =0x00000818 - adds r0, r2, r3 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x5 - beq _081C61A0 - movs r0, 0x1 - b _081C61A2 - .pool -_081C61A0: - movs r0, 0 -_081C61A2: - pop {r1} - bx r1 - thumb_func_end sub_81C616C - - thumb_func_start sub_81C61A8 -sub_81C61A8: @ 81C61A8 - push {lr} - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - movs r1, 0x82 - lsls r1, 4 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C61C8 - movs r0, 0 - bl sub_81C6D6C - b _081C61DA - .pool -_081C61C8: - cmp r0, 0x2 - bne _081C61D4 - movs r0, 0x1 - bl sub_81C6D6C - b _081C61DA -_081C61D4: - movs r0, 0x2 - bl sub_81C6D6C -_081C61DA: - pop {r0} - bx r0 - thumb_func_end sub_81C61A8 - - thumb_func_start sub_81C61E0 -sub_81C61E0: @ 81C61E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gSpecialVar_ItemId - ldrh r0, [r4] - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - beq _081C620C - cmp r0, 0x2 - beq _081C620C - cmp r0, 0x3 - beq _081C620C - ldrh r0, [r4] - bl ItemIsMail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C6228 -_081C620C: - bl sub_81C61A8 - ldr r1, =gText_DadsAdvice - ldr r2, =sub_81C6714 - adds r0, r5, 0 - bl DisplayItemMessageInBattlePyramid - b _081C6252 - .pool -_081C6228: - ldrh r0, [r4] - bl ItemId_GetFieldFunc - cmp r0, 0 - beq _081C6252 - bl sub_81C61A8 - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldrh r0, [r4] - bl ItemId_GetFieldFunc - adds r1, r0, 0 - adds r0, r5, 0 - bl _call_via_r1 -_081C6252: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C61E0 - - thumb_func_start sub_81C6258 -sub_81C6258: @ 81C6258 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - bl sub_81C61A8 - movs r1, 0x2 - ldrsh r0, [r4, r1] - bl sub_81C55D8 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - ldrb r0, [r4] - movs r1, 0 - bl sub_81C5A98 - adds r0, r5, 0 - bl sub_81C629C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6258 - - thumb_func_start sub_81C629C -sub_81C629C: @ 81C629C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_81C5674 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C5BC8 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C629C - - thumb_func_start sub_81C62C4 -sub_81C62C4: @ 81C62C4 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, =gTasks + 0x8 - adds r4, r6, r7 - bl sub_81C61A8 - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _081C62F4 - adds r0, r5, 0 - bl sub_81C6350 - b _081C6334 - .pool -_081C62F4: - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl CopyItemName - ldr r4, =gStringVar4 - ldr r1, =gText_TossHowManyVar1s - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_81C6C3C - bl sub_81C6404 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, =sub_81C64B4 - str r1, [r0] -_081C6334: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C62C4 - - thumb_func_start sub_81C6350 -sub_81C6350: @ 81C6350 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl CopyItemName - ldr r0, =gStringVar2 - movs r2, 0x10 - ldrsh r1, [r4, r2] - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gText_ConfirmTossItems - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_81C6C3C - ldr r1, =gUnknown_0861F314 - adds r0, r5, 0 - bl sub_81C6DAC - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6350 - - thumb_func_start sub_81C63D0 -sub_81C63D0: @ 81C63D0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - bl sub_81C55D8 - ldrb r0, [r4] - movs r1, 0 - bl sub_81C5A98 - adds r0, r5, 0 - bl sub_81C629C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C63D0 - - thumb_func_start sub_81C6404 -sub_81C6404: @ 81C6404 - push {r4,lr} - sub sp, 0xC - ldr r0, =gStringVar1 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gText_xVar1 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x3 - bl sub_81C6CEC - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x28 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - adds r2, r4, 0 - bl PrintTextOnWindow - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6404 - - thumb_func_start sub_81C645C -sub_81C645C: @ 81C645C - push {r4,lr} - sub sp, 0xC - adds r1, r0, 0 - ldr r0, =gStringVar1 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gText_xVar1 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x28 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - adds r2, r4, 0 - bl PrintTextOnWindow - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C645C - - thumb_func_start sub_81C64B4 -sub_81C64B4: @ 81C64B4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x10 - ldrh r1, [r4, 0x4] - bl AdjustQuantityAccordingToDPadInput - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C64E8 - movs r1, 0x10 - ldrsh r0, [r4, r1] - bl sub_81C645C - b _081C6544 - .pool -_081C64E8: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C651C - movs r0, 0x5 - bl PlaySE - movs r0, 0x3 - movs r1, 0 - bl sub_8198070 - movs r0, 0x3 - bl ClearWindowTilemap - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_81C6350 - b _081C6544 - .pool -_081C651C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C6544 - movs r0, 0x5 - bl PlaySE - movs r0, 0x3 - movs r1, 0 - bl sub_8198070 - movs r0, 0x3 - bl ClearWindowTilemap - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl sub_81C63D0 -_081C6544: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C64B4 - - thumb_func_start sub_81C654C -sub_81C654C: @ 81C654C - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, =gTasks + 0x8 - adds r6, r4, r5 - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl CopyItemName - ldr r0, =gStringVar2 - movs r2, 0x10 - ldrsh r1, [r6, r2] - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r6, =gStringVar4 - ldr r1, =gText_ThrewAwayVar2Var1s - adds r0, r6, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - adds r1, r6, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_81C6C3C - subs r5, 0x8 - adds r4, r5 - ldr r0, =sub_81C65CC - str r0, [r4] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C654C - - thumb_func_start sub_81C65CC -sub_81C65CC: @ 81C65CC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r6, =gUnknown_0203CF30+8 - subs r7, r6, 0x2 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081C662E - movs r0, 0x5 - bl PlaySE - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - ldrh r1, [r4, 0x10] - bl RemovePyramidBagItem - ldrb r0, [r4] - adds r1, r6, 0 - adds r2, r7, 0 - bl DestroyListMenuTask - bl sub_81C5924 - bl sub_81C59BC - bl sub_81C5314 - ldr r0, =gMultiuseListMenuTemplate - ldrh r1, [r6] - ldrh r2, [r7] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_81C629C -_081C662E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C65CC - - thumb_func_start sub_81C6648 -sub_81C6648: @ 81C6648 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - bl sub_81C61A8 - ldr r5, =gSpecialVar_ItemId - ldrh r0, [r5] - bl ItemIsMail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C667C - ldr r1, =gText_CantWriteMail - ldr r2, =sub_81C66EC - adds r0, r4, 0 - bl DisplayItemMessageInBattlePyramid - b _081C66A6 - .pool -_081C667C: - ldrh r0, [r5] - bl ItemId_GetImportance - lsls r0, 24 - cmp r0, 0 - bne _081C66A0 - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - ldr r0, =sub_81B7F60 - str r0, [r1] - adds r0, r4, 0 - bl sub_81C5B14 - b _081C66A6 - .pool -_081C66A0: - adds r0, r6, 0 - bl sub_81C66AC -_081C66A6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C6648 - - thumb_func_start sub_81C66AC -sub_81C66AC: @ 81C66AC - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl CopyItemName - ldr r5, =gStringVar4 - ldr r1, =gText_Var1CantBeHeld - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r2, =sub_81C66EC - adds r0, r4, 0 - adds r1, r5, 0 - bl DisplayItemMessageInBattlePyramid - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C66AC - - thumb_func_start sub_81C66EC -sub_81C66EC: @ 81C66EC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C670A - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_81C6714 -_081C670A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C66EC - - thumb_func_start sub_81C6714 -sub_81C6714: @ 81C6714 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - bl sub_81C6E1C - movs r1, 0x2 - ldrsh r0, [r4, r1] - bl sub_81C55D8 - ldrb r0, [r4] - movs r1, 0 - bl sub_81C5A98 - adds r0, r5, 0 - bl sub_81C629C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6714 - - thumb_func_start sub_81C674C -sub_81C674C: @ 81C674C - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r5, =gSpecialVar_ItemId - ldrh r0, [r5] - bl itemid_80BF6D8_mail_related - lsls r0, 24 - cmp r0, 0 - bne _081C677C - ldr r1, =gText_CantWriteMail - ldr r2, =sub_81C66EC - adds r0, r4, 0 - bl DisplayItemMessageInBattlePyramid - b _081C6796 - .pool -_081C677C: - ldrh r0, [r5] - bl ItemId_GetImportance - lsls r0, 24 - cmp r0, 0 - bne _081C6790 - adds r0, r4, 0 - bl sub_81C5B14 - b _081C6796 -_081C6790: - adds r0, r6, 0 - bl sub_81C66AC -_081C6796: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C674C - - thumb_func_start sub_81C679C -sub_81C679C: @ 81C679C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gSpecialVar_ItemId - ldrh r0, [r4] - bl ItemId_GetBattleFunc - cmp r0, 0 - beq _081C67C0 - bl sub_81C61A8 - ldrh r0, [r4] - bl ItemId_GetBattleFunc - adds r1, r0, 0 - adds r0, r5, 0 - bl _call_via_r1 -_081C67C0: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C679C - - thumb_func_start sub_81C67CC -sub_81C67CC: @ 81C67CC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - mov r9, r0 - adds r5, r4, r0 - ldr r0, =gUnknown_0203CF30 - ldrh r1, [r0, 0x6] - ldrh r0, [r0, 0x8] - adds r1, r0 - strh r1, [r5, 0x2] - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r2, =0x00000814 - adds r0, r2 - movs r2, 0 - mov r8, r2 - strb r1, [r0] - ldrb r0, [r5] - movs r1, 0x10 - movs r2, 0x1 - bl ListMenuSetUnkIndicatorsStructField - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - movs r0, 0x2 - ldrsh r2, [r5, r0] - lsls r2, 1 - ldr r1, =0x00000ca9 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r0, =0x00000e2c - adds r3, r0 - adds r3, r2 - ldrh r0, [r3] - ldr r1, =gStringVar1 - bl CopyItemName - ldr r6, =gStringVar4 - ldr r1, =gText_MoveVar1Where - adds r0, r6, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - mov r1, r8 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - adds r1, r6, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_81C6C3C - ldrb r0, [r5] - movs r1, 0x1 - bl sub_81C5A98 - ldrb r0, [r5, 0x2] - bl sub_81C704C - movs r2, 0x8 - negs r2, r2 - add r9, r2 - add r4, r9 - ldr r0, =sub_81C68B0 - str r0, [r4] - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C67CC - - thumb_func_start sub_81C68B0 -sub_81C68B0: @ 81C68B0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C695C - ldr r7, =gMain - ldrh r1, [r7, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081C68F8 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4] - ldr r1, =gUnknown_0203CF30+8 - subs r2, r1, 0x2 - bl ListMenuGetScrollAndRow - b _081C6940 - .pool -_081C68F8: - ldrb r0, [r4] - bl ListMenuHandleInputGetItemId - adds r6, r0, 0 - ldrb r0, [r4] - ldr r4, =gUnknown_0203CF30+8 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl ListMenuGetScrollAndRow - movs r0, 0 - bl sub_81C7028 - subs r4, 0x8 - ldrb r0, [r4, 0x6] - bl sub_81C704C - movs r0, 0x2 - negs r0, r0 - cmp r6, r0 - beq _081C6930 - adds r0, 0x1 - cmp r6, r0 - bne _081C6950 - b _081C695C - .pool -_081C6930: - movs r0, 0x5 - bl PlaySE - ldrh r1, [r7, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C6948 -_081C6940: - adds r0, r5, 0 - bl sub_81C6964 - b _081C695C -_081C6948: - adds r0, r5, 0 - bl sub_81C6A14 - b _081C695C -_081C6950: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_81C6964 -_081C695C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C68B0 - - thumb_func_start sub_81C6964 -sub_81C6964: @ 81C6964 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldr r7, =gUnknown_0203CF30+8 - subs r0, r7, 0x2 - mov r8, r0 - ldrh r0, [r0] - ldrh r1, [r7] - adds r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - movs r3, 0x2 - ldrsh r1, [r5, r3] - cmp r1, r4 - beq _081C6996 - subs r0, r4, 0x1 - cmp r1, r0 - bne _081C69A8 -_081C6996: - adds r0, r6, 0 - bl sub_81C6A14 - b _081C69FC - .pool -_081C69A8: - ldrb r0, [r5, 0x2] - lsls r1, r4, 24 - lsrs r1, 24 - bl sub_81C57A8 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000814 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - movs r0, 0x1 - bl sub_81C7028 - ldrb r0, [r5] - adds r1, r7, 0 - mov r2, r8 - bl DestroyListMenuTask - movs r3, 0x2 - ldrsh r0, [r5, r3] - cmp r0, r4 - bge _081C69E0 - adds r1, r7, 0 - subs r1, 0x8 - ldrh r0, [r1, 0x6] - subs r0, 0x1 - strh r0, [r1, 0x6] -_081C69E0: - bl sub_81C5314 - ldr r0, =gMultiuseListMenuTemplate - ldrh r1, [r7] - mov r3, r8 - ldrh r2, [r3] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - adds r0, r6, 0 - bl sub_81C629C -_081C69FC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6964 - - thumb_func_start sub_81C6A14 -sub_81C6A14: @ 81C6A14 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r5, =gUnknown_0203CF30+8 - subs r7, r5, 0x2 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000814 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - movs r0, 0x1 - bl sub_81C7028 - ldrb r0, [r4] - adds r1, r5, 0 - adds r2, r7, 0 - bl DestroyListMenuTask - movs r0, 0x2 - ldrsh r2, [r4, r0] - ldrh r0, [r5] - ldrh r1, [r7] - adds r0, r1 - cmp r2, r0 - bge _081C6A5E - adds r1, r5, 0 - subs r1, 0x8 - ldrh r0, [r1, 0x6] - subs r0, 0x1 - strh r0, [r1, 0x6] -_081C6A5E: - bl sub_81C5314 - ldr r0, =gMultiuseListMenuTemplate - ldrh r1, [r5] - ldrh r2, [r7] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - adds r0, r6, 0 - bl sub_81C629C - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6A14 - - thumb_func_start sub_81C6A94 -sub_81C6A94: @ 81C6A94 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r0, =gPlayerParty - mov r9, r0 - movs r0, 0x14 - bl Alloc - adds r7, r0, 0 - movs r0, 0xA - bl Alloc - adds r5, r0, 0 - ldr r1, =gSaveBlock2Ptr - mov r8, r1 - ldr r2, [r1] - ldr r4, =0x00000ca9 - adds r0, r2, r4 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, =0x00000e2c - adds r1, r0 - adds r0, r7, 0 - movs r2, 0x14 - bl memcpy - mov r1, r8 - ldr r2, [r1] - adds r0, r2, r4 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - adds r1, r2 - ldr r0, =0x00000e54 - adds r1, r0 - adds r0, r5, 0 - movs r2, 0xA - bl memcpy - movs r6, 0 -_081C6AF8: - movs r0, 0x64 - muls r0, r6 - add r0, r9 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r1, sp - strh r0, [r1] - cmp r0, 0 - beq _081C6B88 - movs r1, 0x1 - bl AddBagItem - lsls r0, 24 - cmp r0, 0 - bne _081C6B88 - mov r1, r8 - ldr r2, [r1] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x00000e2c - adds r0, r1 - adds r1, r7, 0 - movs r2, 0x14 - bl memcpy - mov r0, r8 - ldr r2, [r0] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - adds r0, r2 - ldr r1, =0x00000e54 - adds r0, r1 - adds r1, r5, 0 - movs r2, 0xA - bl memcpy - adds r0, r7, 0 - bl Free - adds r0, r5, 0 - bl Free - ldr r1, =gSpecialVar_Result - movs r0, 0x1 - strh r0, [r1] - b _081C6BC6 - .pool -_081C6B88: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _081C6AF8 - movs r1, 0 - mov r0, sp - strh r1, [r0] - movs r6, 0 - movs r4, 0x64 -_081C6B9C: - adds r0, r6, 0 - muls r0, r4 - add r0, r9 - movs r1, 0xC - mov r2, sp - bl SetMonData - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _081C6B9C - ldr r1, =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] - adds r0, r7, 0 - bl Free - adds r0, r5, 0 - bl Free -_081C6BC6: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6A94 - - thumb_func_start sub_81C6BD8 -sub_81C6BD8: @ 81C6BD8 - push {r4,lr} - ldr r0, =gUnknown_0861F328 - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0x1 - movs r2, 0xE0 - bl LoadUserWindowBorderGfx - movs r0, 0 - movs r1, 0xA - movs r2, 0xD0 - bl LoadMessageBoxGfx - ldr r0, =gUnknown_0860F074 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - movs r4, 0 -_081C6C04: - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _081C6C04 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6BD8 - - thumb_func_start sub_81C6C3C -sub_81C6C3C: @ 81C6C3C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x14 - ldr r4, [sp, 0x28] - ldr r6, [sp, 0x2C] - ldr r5, [sp, 0x30] - mov r8, r5 - ldr r5, [sp, 0x34] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r6, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, =gUnknown_0861F31C - adds r4, r5 - str r4, [sp, 0x8] - mov r4, r8 - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x1 - bl AddTextPrinterParameterized2 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6C3C - - thumb_func_start sub_81C6C94 -sub_81C6C94: @ 81C6C94 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x14 - ldr r4, [sp, 0x28] - ldr r6, [sp, 0x2C] - ldr r5, [sp, 0x30] - mov r8, r5 - ldr r5, [sp, 0x34] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r6, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, =gUnknown_0861F31C - adds r4, r5 - str r4, [sp, 0x8] - mov r4, r8 - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x7 - bl AddTextPrinterParameterized2 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6C94 - - thumb_func_start sub_81C6CEC -sub_81C6CEC: @ 81C6CEC - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - movs r2, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - thumb_func_end sub_81C6CEC - - thumb_func_start sub_81C6D08 -sub_81C6D08: @ 81C6D08 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CF2C - ldr r1, [r1] - ldr r2, =0x0000080f - adds r1, r2 - adds r1, r0 - ldrb r0, [r1] - bx lr - .pool - thumb_func_end sub_81C6D08 - - thumb_func_start sub_81C6D24 -sub_81C6D24: @ 81C6D24 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_0203CF2C - ldr r3, =0x0000080f - adds r1, r2, r3 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _081C6D58 - lsls r0, r2, 3 - ldr r1, =gUnknown_0861F350 - adds r0, r1 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - movs r2, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram -_081C6D58: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C6D24 - - thumb_func_start sub_81C6D6C -sub_81C6D6C: @ 81C6D6C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CF2C - ldr r2, =0x0000080f - adds r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _081C6D9E - movs r1, 0 - bl sub_8198070 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0xFF - strb r0, [r4] -_081C6D9E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6D6C thumb_func_start sub_81C6DAC sub_81C6DAC: @ 81C6DAC @@ -3353,8 +230,8 @@ _081C6F84: .pool thumb_func_end sub_81C6F68 - thumb_func_start sub_81C6F90 -sub_81C6F90: @ 81C6F90 + thumb_func_start ShowItemImage +ShowItemImage: @ 81C6F90 push {r4-r6,lr} lsls r0, 16 lsrs r6, r0, 16 @@ -3397,7 +274,7 @@ _081C6FE0: pop {r0} bx r0 .pool - thumb_func_end sub_81C6F90 + thumb_func_end ShowItemImage thumb_func_start sub_81C6FF8 sub_81C6FF8: @ 81C6FF8 diff --git a/include/global.h b/include/global.h index ab31e3c5d8..0fff11d09d 100644 --- a/include/global.h +++ b/include/global.h @@ -27,6 +27,13 @@ #define ARRAY_COUNT(array) (size_t)(sizeof(array) / sizeof((array)[0])) +#define SWAP(a, b, temp) \ +{ \ + temp = a; \ + a = b; \ + b = temp; \ +} + // useful math macros // Converts a number to Q8.8 fixed-point format diff --git a/include/item_use.h b/include/item_use.h index 7874f7ee9f..8f0ce272bb 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -1,8 +1,6 @@ #ifndef GUARD_ITEM_USE_H #define GUARD_ITEM_USE_H -extern u16 gSpecialVar_ItemId; - void ItemUseOutOfBattle_Mail(u8); void ItemUseOutOfBattle_Bike(u8); void ItemUseOnFieldCB_Bike(u8); @@ -53,5 +51,6 @@ void ItemUseInBattle_EnigmaBerry(u8); void ItemUseOutOfBattle_CannotUse(u8); u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId); void sub_80FDD10(u8); +void DisplayItemMessageInBattlePyramid(u8 taskId, const u8* str, void(*callback)(u8 taskId)); #endif // GUARD_ITEM_USE_H diff --git a/include/list_menu.h b/include/list_menu.h index ee3d60f3da..84c38306b6 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -11,7 +11,8 @@ #define LIST_MULTIPLE_SCROLL_DPAD 1 #define LIST_MULTIPLE_SCROLL_L_R 2 -enum { +enum +{ SCROLL_ARROW_LEFT, SCROLL_ARROW_RIGHT, SCROLL_ARROW_UP, diff --git a/include/menu.h b/include/menu.h index 8ead4ea081..a13fe73ec7 100644 --- a/include/menu.h +++ b/include/menu.h @@ -66,9 +66,9 @@ u16 sub_8198AA4(u8, u8, u8, u8, u8, u8, u16); void *malloc_and_decompress(const void *src, int *sizeOut); u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode); void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress); -void AddItemMenuActionTextPrinters (u8, u8, u8, u8, u8, u8, u8, const struct MenuAction*, const u8*); -void sub_8198DBC(u8, u8, u8, u8, u8, u8, u8, const struct MenuAction*, const u8*); -u8 sub_8199944(u8, u8, u8, u8, u8); +void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8); +void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8); +u8 sub_8199944(u8 windowId, u8 optionWidth, u8 horizontalCount, u8 verticalCount, u8 initialCursorPos); u8 sub_8199134(s8, s8); u8 GetStartMenuWindowId(void); void sub_819A2BC(u8, u8); diff --git a/include/strings.h b/include/strings.h index f88425b26d..e72360563d 100644 --- a/include/strings.h +++ b/include/strings.h @@ -776,6 +776,23 @@ extern const u8 gText_TeachWhichMoveToPkmn[]; extern const u8 gText_GiveUpTeachingNewMove[]; extern const u8 gText_TeachX[]; +extern const u8 gText_DadsAdvice[]; +extern const u8 gText_CantDismountBike[]; +extern const u8 gText_ItemFinderNothing[]; +extern const u8 gText_ItemFinderNearby[]; +extern const u8 gText_ItemFinderOnTop[]; +extern const u8 gText_CoinCase[]; +extern const u8 gText_PowderQty[]; +extern const u8 gText_BootedUpHM[]; +extern const u8 gText_BootedUpTM[]; +extern const u8 gText_TMHMContainedVar1[]; +extern const u8 gText_PlayerUsedVar2[]; +extern const u8 gText_RepelEffectsLingered[]; +extern const u8 gText_UsedVar2WildLured[]; +extern const u8 gText_UsedVar2WildRepelled[]; +extern const u8 gText_BoxFull[]; +extern const u8 gText_WontHaveEffect[]; + extern const u8 gText_LevelSymbol[]; extern const u8 gText_PkmnInfo[]; extern const u8 gText_PkmnSkills[]; @@ -824,4 +841,6 @@ extern const u8 gText_RibbonsVar1[]; extern const u8 gText_OneDash[]; extern const u8 gText_TwoDashes[]; +extern const u8 *const gReturnToXStringsTable2[]; + #endif //GUARD_STRINGS_H diff --git a/src/battle_dome.c b/src/battle_dome.c index 0183811cd4..9f400bc7a0 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -2810,23 +2810,16 @@ static void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 natu CALC_STAT(baseSpDefense, STAT_SPDEF); } -#define SWAP_16(x, y) \ -{ \ - temp = x; \ - x = y; \ - y = temp; \ -} - static void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray) { s32 i; u16 temp; - SWAP_16(statsArray[id1], statsArray[id2]); - SWAP_16(gSaveBlock2Ptr->frontier.domeTrainers[id1].trainerId, gSaveBlock2Ptr->frontier.domeTrainers[id2].trainerId); + SWAP(statsArray[id1], statsArray[id2], temp); + SWAP(gSaveBlock2Ptr->frontier.domeTrainers[id1].trainerId, gSaveBlock2Ptr->frontier.domeTrainers[id2].trainerId, temp); for (i = 0; i < 3; i++) - SWAP_16(gSaveBlock2Ptr->frontier.domeMonId[id1][i], gSaveBlock2Ptr->frontier.domeMonId[id2][i]); + SWAP(gSaveBlock2Ptr->frontier.domeMonId[id1][i], gSaveBlock2Ptr->frontier.domeMonId[id2][i], temp); } static void sub_818F9B0(void) diff --git a/src/battle_main.c b/src/battle_main.c index 9f9511c380..c31fb48d5d 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4596,13 +4596,10 @@ static void sub_803CDF8(void) void SwapTurnOrder(u8 id1, u8 id2) { - u32 temp = gActionsByTurnOrder[id1]; - gActionsByTurnOrder[id1] = gActionsByTurnOrder[id2]; - gActionsByTurnOrder[id2] = temp; - - temp = gBattlerByTurnOrder[id1]; - gBattlerByTurnOrder[id1] = gBattlerByTurnOrder[id2]; - gBattlerByTurnOrder[id2] = temp; + u32 temp; + + SWAP(gActionsByTurnOrder[id1], gActionsByTurnOrder[id2], temp); + SWAP(gBattlerByTurnOrder[id1], gBattlerByTurnOrder[id2], temp); } u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves) diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index f9cc48a9a8..721dfca988 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -7,6 +7,7 @@ #include "gpu_regs.h" #include "malloc.h" #include "menu.h" +#include "overworld.h" #include "menu_helpers.h" #include "overworld.h" #include "palette.h" @@ -14,21 +15,46 @@ #include "scanline_effect.h" #include "script.h" #include "task.h" +#include "decompress.h" +#include "graphics.h" +#include "string_util.h" +#include "list_menu.h" +#include "strings.h" +#include "item.h" +#include "sound.h" +#include "item_menu.h" +#include "mail.h" +#include "item_use.h" +#include "event_data.h" +#include "text_window.h" +#include "international_string_util.h" +#include "constants/items.h" #include "constants/rgb.h" +#include "constants/songs.h" EWRAM_DATA struct { - u32 unk0; - u8 filler4[0x804 - 0x4]; - u8 unk804[11]; - u8 unk80F[5]; + MainCallback callback2; + u8 tilemapBuffer[0x800]; + u8 itemsSpriteIds[PYRAMID_BAG_ITEMS_COUNT + 1]; + u8 windowIds[5]; u8 unk814; - u8 filler815; - s8 unk816; - u8 filler817[0x984 - 0x817]; - u16 unk984; + u8 unk815; + u8 unk816; + const u8 *menuActionIds; + u8 filler81C; + u8 filler81D; + u8 filler81E; + u8 filler81F; + u8 menuActionsCount; + u8 listMenuCount; + u8 listMenuMaxShown; + struct ListMenuItem bagListItems[PYRAMID_BAG_ITEMS_COUNT + 1]; + u8 itemStrings[PYRAMID_BAG_ITEMS_COUNT + 1][ITEM_NAME_LENGTH + 10]; + s16 unk984; u8 filler986[0x98C - 0x986]; } *gUnknown_0203CF2C = NULL; + EWRAM_DATA struct { void (*callback)(void); @@ -38,14 +64,44 @@ EWRAM_DATA struct } gUnknown_0203CF30 = {0}; extern const struct BgTemplate gUnknown_0861F2B4[3]; +extern const struct WindowTemplate gUnknown_0861F328[]; +extern const struct WindowTemplate gUnknown_0861F350[]; +extern const struct CompressedSpriteSheet gUnknown_0861F3CC; +extern const struct ListMenuTemplate gUnknown_0861F2C0; +extern const u8 gUnknown_0861F310[1]; +extern const u8 gUnknown_0861F308[4]; +extern const u8 gUnknown_0861F30E[2]; +extern const u8 gUnknown_0861F30C[2]; +extern const struct MenuAction gUnknown_0861F2D8[]; +extern const struct YesNoFuncTable gUnknown_0861F314; +extern const u16 gUnknown_0860F074[]; +extern const u8 gUnknown_0861F31C[][3]; +// This file's functions. void sub_81C4F98(u8 a0, void (*callback)(void)); void sub_81C4F44(u8 taskId); +void Task_HandlePyramidBagInput(u8 taskId); +void sub_81C5B4C(u8 taskId); +void sub_81C67CC(u8 taskId); +void sub_81C5D20(u8 taskId); +void sub_81C674C(u8 taskId); +void sub_81C5FE4(u8 taskId); +void sub_81C5F68(u8 taskId); +void sub_81C6714(u8 taskId); +void sub_81C66EC(u8 taskId); +void sub_81C629C(u8 taskId); +void sub_81C6350(u8 taskId); +void sub_81C64B4(u8 taskId); +void sub_81C65CC(u8 taskId); +void sub_81C66AC(u8 taskId); +void sub_81C6964(u8 taskId); +void sub_81C68B0(u8 taskId); +void sub_81C6A14(u8 taskId); void sub_81C504C(void); bool8 sub_81C5078(void); void sub_81C51DC(void); bool8 sub_81C5238(void); -void sub_81C5314(void); +void SetBagItemsListTemplate(void); void sub_81C5674(void); void sub_81C56F8(void); void sub_81C5924(void); @@ -54,7 +110,28 @@ void sub_81C5A20(void); void sub_81C6BD8(void); void sub_81C6EF4(void); void sub_81C700C(void); +void sub_81C6E98(void); +void sub_81C6F20(void); +void sub_81C6404(void); +void sub_81C6E1C(void); +void ShowItemImage(u16 itemId, u8 tagIdAdder); +void PyramidBag_CopyItemName(u8 *dst, u16 itemId); +void sub_81C6FF8(u8 arg0); +void PrintItemDescription(s32 listMenuId); +void sub_81C5AB8(u8 y, u8 arg1); +void PrintOnWindow_Font1(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId); +void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId); +u8 sub_81C6D24(u8 windowArrayId); +void sub_81C6D6C(u8 windowArrayId); +void sub_81C5EAC(u8 windowId); +void sub_81C5F08(u8 windowId, u8 horizontalCount, u8 verticalCount); +bool8 sub_81C616C(s8 arg0); +void sub_81C6DAC(u8 taskId, const struct YesNoFuncTable *yesNoTable); +void sub_81C6CEC(u8 windowId); +void sub_81C704C(u8 arg0); +void sub_81C7028(u8 arg0); +// code void sub_81C4EEC(void) { gUnknown_0203CF30.unk6 = 0; @@ -99,22 +176,18 @@ void sub_81C4F98(u8 a0, void (*callback)(void)) gUnknown_0203CF2C = AllocZeroed(sizeof(*gUnknown_0203CF2C)); if (a0 != 4) - { gUnknown_0203CF30.unk4 = a0; - } if (callback != NULL) - { gUnknown_0203CF30.callback = callback; - } - gUnknown_0203CF2C->unk0 = 0; - gUnknown_0203CF2C->unk814 = -1; - gUnknown_0203CF2C->unk816 = -1; + gUnknown_0203CF2C->callback2 = NULL; + gUnknown_0203CF2C->unk814 = 0xFF; + gUnknown_0203CF2C->unk816 = 0xFF; + + memset(gUnknown_0203CF2C->itemsSpriteIds, 0xFF, sizeof(gUnknown_0203CF2C->itemsSpriteIds)); + memset(gUnknown_0203CF2C->windowIds, 0xFF, sizeof(gUnknown_0203CF2C->windowIds)); - memset(gUnknown_0203CF2C->unk804, 0xFF, sizeof(gUnknown_0203CF2C->unk804)); - memset(gUnknown_0203CF2C->unk80F, 0xFF, sizeof(gUnknown_0203CF2C->unk80F)); - SetMainCallback2(sub_81C504C); } @@ -194,7 +267,7 @@ bool8 sub_81C5078(void) gMain.state++; break; case 10: - sub_81C5314(); + SetBagItemsListTemplate(); gMain.state++; break; case 11: @@ -235,14 +308,940 @@ void sub_81C51DC(void) ResetVramOamAndBgCntRegs(); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gUnknown_0861F2B4, ARRAY_COUNT(gUnknown_0861F2B4)); - SetBgTilemapBuffer(2, gUnknown_0203CF2C->filler4); + SetBgTilemapBuffer(2, gUnknown_0203CF2C->tilemapBuffer); ResetAllBgsCoordinates(); schedule_bg_copy_tilemap_to_vram(2); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | - DISPCNT_OBJ_1D_MAP | + DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); ShowBg(0); ShowBg(1); ShowBg(2); SetGpuReg(REG_OFFSET_BLDCNT, 0); } + +extern const u8 gUnknown_08D9AE04[]; +extern const u8 gUnknown_08D9AF44[]; + +bool8 sub_81C5238(void) +{ + switch (gUnknown_0203CF2C->unk984) + { + case 0: + reset_temp_tile_data_buffers(); + decompress_and_copy_tile_data_to_vram(2, gBagScreen_Gfx, 0, 0, 0); + gUnknown_0203CF2C->unk984++; + break; + case 1: + if (free_temp_tile_data_buffers_if_possible() != TRUE) + { + LZDecompressWram(gUnknown_08D9AE04, gUnknown_0203CF2C->tilemapBuffer); + gUnknown_0203CF2C->unk984++; + } + break; + case 2: + LoadCompressedPalette(gUnknown_08D9AF44, 0, 0x20); + gUnknown_0203CF2C->unk984++; + break; + case 3: + LoadCompressedObjectPic(&gUnknown_0861F3CC); + gUnknown_0203CF2C->unk984++; + break; + case 4: + sub_81C6E98(); + gUnknown_0203CF2C->unk984++; + break; + default: + LoadListMenuArrowsGfx(); + gUnknown_0203CF2C->unk984 = 0; + return TRUE; + } + + return FALSE; +} + +void SetBagItemsListTemplate(void) +{ + u16 i; + u16 *pyramidItems = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; + + for (i = 0; i < gUnknown_0203CF2C->listMenuCount - 1; i++) + { + PyramidBag_CopyItemName(gUnknown_0203CF2C->itemStrings[i], pyramidItems[i]); + gUnknown_0203CF2C->bagListItems[i].name = gUnknown_0203CF2C->itemStrings[i]; + gUnknown_0203CF2C->bagListItems[i].id = i; + } + StringCopy(gUnknown_0203CF2C->itemStrings[i], gText_CloseBag); + gUnknown_0203CF2C->bagListItems[i].name = gUnknown_0203CF2C->itemStrings[i]; + gUnknown_0203CF2C->bagListItems[i].id = LIST_B_PRESSED; + gMultiuseListMenuTemplate = gUnknown_0861F2C0; + gMultiuseListMenuTemplate.totalItems = gUnknown_0203CF2C->listMenuCount; + gMultiuseListMenuTemplate.items = gUnknown_0203CF2C->bagListItems; + gMultiuseListMenuTemplate.maxShowed = gUnknown_0203CF2C->listMenuMaxShown; +} + +void PyramidBag_CopyItemName(u8 *dst, u16 itemId) +{ + if (ItemId_GetPocket(itemId) == POCKET_BERRIES) + { + ConvertIntToDecimalStringN(gStringVar1, ITEM_TO_BERRY(itemId), STR_CONV_MODE_LEADING_ZEROS, 2); + CopyItemName(itemId, gStringVar2); + StringExpandPlaceholders(dst, gText_UnkF908Var1Clear7Var2); + } + else + { + CopyItemName(itemId, dst); + } +} + +void PyramidBagMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + if (onInit != TRUE) + { + PlaySE(SE_SELECT); + sub_81C6F20(); + } + if (gUnknown_0203CF2C->unk814 == 0xFF) + { + sub_81C6FF8(gUnknown_0203CF2C->unk815 ^ 1); + if (itemIndex != LIST_B_PRESSED) + ShowItemImage(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][itemIndex], gUnknown_0203CF2C->unk815); + else + ShowItemImage(0xFFFF, gUnknown_0203CF2C->unk815); + gUnknown_0203CF2C->unk815 ^= 1; + PrintItemDescription(itemIndex); + } +} + +void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y) +{ + s32 xAlign; + if (itemIndex == LIST_B_PRESSED) + return; + + if (gUnknown_0203CF2C->unk814 != 0xFF) + { + if (gUnknown_0203CF2C->unk814 == (u8)(itemIndex)) + sub_81C5AB8(y, 1); + else + sub_81C5AB8(y, 0xFF); + } + ConvertIntToDecimalStringN(gStringVar1, + gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode][itemIndex], + STR_CONV_MODE_RIGHT_ALIGN, + 2); + StringExpandPlaceholders(gStringVar4, gText_xVar1); + xAlign = GetStringRightAlignXOffset(7, gStringVar4, 0x77); + PrintOnWindow_Font7(windowId, gStringVar4, xAlign, y, 0, 0, TEXT_SPEED_FF, 0); +} + +void PrintItemDescription(s32 listMenuId) +{ + const u8 *desc; + if (listMenuId != LIST_B_PRESSED) + { + desc = ItemId_GetDescription(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][listMenuId]); + } + else + { + StringCopy(gStringVar1, gReturnToXStringsTable2[gUnknown_0203CF30.unk4]); + StringExpandPlaceholders(gStringVar4, gText_ReturnToVar1); + desc = gStringVar4; + } + FillWindowPixelBuffer(1, 0); + PrintOnWindow_Font1(1, desc, 3, 0, 0, 1, 0, 0); +} + +void sub_81C5674(void) +{ + if (gUnknown_0203CF2C->unk816 == 0xFF) + gUnknown_0203CF2C->unk816 = AddScrollIndicatorArrowPairParameterized(2, 172, 12, 148, gUnknown_0203CF2C->listMenuCount - gUnknown_0203CF2C->listMenuMaxShown, 0xB5E, 0xB5E, &gUnknown_0203CF30.unk8); +} + +void sub_81C56CC(void) +{ + if (gUnknown_0203CF2C->unk816 != 0xFF) + { + RemoveScrollIndicatorArrowPair(gUnknown_0203CF2C->unk816); + gUnknown_0203CF2C->unk816 = 0xFF; + } +} + +void sub_81C56F8(void) +{ + u8 taskId = CreateTask(Task_HandlePyramidBagInput, 0); + s16 *data = gTasks[taskId].data; + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203CF30.unk8, gUnknown_0203CF30.unk6); +} + +void SwapItems(u8 id1, u8 id2) +{ + u16 temp; + u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; + u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode]; + + SWAP(itemIds[id1], itemIds[id2], temp); + SWAP(quantities[id1], quantities[id2], temp); +} + +void MovePyramidBagItemSlotInList(u8 from, u8 to) +{ + u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; + u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode]; + + if (from != to) + { + s16 i; + u16 firstSlotItemId = itemIds[from]; + u8 firstSlotQuantity = quantities[from]; + + if (to > from) + { + to--; + for (i = from; i < to; i++) + { + itemIds[i] = itemIds[i + 1]; + quantities[i] = quantities[i + 1]; + } + } + else + { + for (i = from; i > to; i--) + { + itemIds[i] = itemIds[i - 1]; + quantities[i] = quantities[i - 1]; + } + } + itemIds[to] = firstSlotItemId; + quantities[to] = firstSlotQuantity; + } +} + +void CompactItems(void) +{ + u8 i, j; + u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; + u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode]; + + for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++) + { + if (itemIds[i] == 0 || quantities[i] == 0) + { + itemIds[i] = 0; + quantities[i] = 0; + } + } + for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT - 1; i++) + { + for (j = i + 1; j < PYRAMID_BAG_ITEMS_COUNT; j++) + { + if (itemIds[i] == 0 || quantities[i] == 0) + SwapItems(i, j); + } + } +} + +void sub_81C5924(void) +{ + u16 i; + u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; + + CompactItems(); + gUnknown_0203CF2C->listMenuCount = 0; + for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++) + { + if (itemIds[i] != 0) + gUnknown_0203CF2C->listMenuCount++; + } + gUnknown_0203CF2C->listMenuCount++; + if (gUnknown_0203CF2C->listMenuCount > 8) + gUnknown_0203CF2C->listMenuMaxShown = 8; + else + gUnknown_0203CF2C->listMenuMaxShown = gUnknown_0203CF2C->listMenuCount; +} + +void sub_81C59BC(void) +{ + if (gUnknown_0203CF30.unk8 != 0 && gUnknown_0203CF30.unk8 + gUnknown_0203CF2C->listMenuMaxShown > gUnknown_0203CF2C->listMenuCount) + gUnknown_0203CF30.unk8 = gUnknown_0203CF2C->listMenuCount - gUnknown_0203CF2C->listMenuMaxShown; + if (gUnknown_0203CF30.unk8 + gUnknown_0203CF30.unk6 >= gUnknown_0203CF2C->listMenuCount) + { + if (gUnknown_0203CF2C->listMenuCount == 0) + gUnknown_0203CF30.unk6 = 0; + else + gUnknown_0203CF30.unk6 = gUnknown_0203CF2C->listMenuCount - 1; + } +} + +void sub_81C5A20(void) +{ + u8 i; + + if (gUnknown_0203CF30.unk6 > 4) + { + for (i = 0; i <= gUnknown_0203CF30.unk6 - 4; i++) + { + if (gUnknown_0203CF30.unk8 + gUnknown_0203CF2C->listMenuMaxShown == gUnknown_0203CF2C->listMenuCount) + { + // daycare.c sends its regards. + break; + } + gUnknown_0203CF30.unk6--; + gUnknown_0203CF30.unk8++; + } + } +} + +void sub_81C5A98(u8 listMenuTaskId, u8 arg1) +{ + u8 y = ListMenuGetYCoordForPrintingArrowCursor(listMenuTaskId); + sub_81C5AB8(y, arg1); +} + +void sub_81C5AB8(u8 y, u8 arg1) +{ + if (arg1 == 0xFF) + FillWindowPixelRect(0, 0, 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); + else + PrintOnWindow_Font1(0, gText_SelectorArrow2, 0, y, 0, 0, 0, arg1); +} + +void sub_81C5B14(u8 taskId) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + gTasks[taskId].func = sub_81C5B4C; +} + +void sub_81C5B4C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active) + { + DestroyListMenuTask(data[0], &gUnknown_0203CF30.unk8, &gUnknown_0203CF30.unk6); + if (gUnknown_0203CF2C->callback2 != NULL) + SetMainCallback2(gUnknown_0203CF2C->callback2); + else + SetMainCallback2(gUnknown_0203CF30.callback); + sub_81C56CC(); + ResetSpriteData(); + FreeAllSpritePalettes(); + FreeAllWindowBuffers(); + Free(gUnknown_0203CF2C); + DestroyTask(taskId); + } +} + +void Task_HandlePyramidBagInput(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (sub_81221EC() != TRUE && !gPaletteFade.active) + { + if (gMain.newKeys & SELECT_BUTTON) + { + if (gUnknown_0203CF30.unk4 != 2) + { + ListMenuGetScrollAndRow(data[0], &gUnknown_0203CF30.unk8, &gUnknown_0203CF30.unk6); + if (gUnknown_0203CF30.unk8 + gUnknown_0203CF30.unk6 != gUnknown_0203CF2C->listMenuCount - 1) + { + PlaySE(SE_SELECT); + sub_81C67CC(taskId); + } + } + } + else + { + s32 listId = ListMenuHandleInputGetItemId(data[0]); + ListMenuGetScrollAndRow(data[0], &gUnknown_0203CF30.unk8, &gUnknown_0203CF30.unk6); + switch (listId) + { + case LIST_NOTHING_CHOSEN: + break; + case LIST_B_PRESSED: + PlaySE(SE_SELECT); + gSpecialVar_ItemId = 0; + sub_81C5B14(taskId); + break; + default: + PlaySE(SE_SELECT); + gSpecialVar_ItemId = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][listId]; + data[1] = listId; + data[2] = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode][listId]; + if (gUnknown_0203CF30.unk4 == 2) + sub_81C674C(taskId); + else + sub_81C5D20(taskId); + break; + } + } + } +} + +void sub_81C5D20(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + sub_81C56CC(); + sub_81C5A98(data[0], 1); + switch (gUnknown_0203CF30.unk4) + { + default: + gUnknown_0203CF2C->menuActionIds = gUnknown_0861F308; + gUnknown_0203CF2C->menuActionsCount = ARRAY_COUNT(gUnknown_0861F308); + break; + case 1: + if (ItemId_GetBattleUsage(gSpecialVar_ItemId)) + { + gUnknown_0203CF2C->menuActionIds = gUnknown_0861F30E; + gUnknown_0203CF2C->menuActionsCount = ARRAY_COUNT(gUnknown_0861F30E); + } + else + { + gUnknown_0203CF2C->menuActionIds = gUnknown_0861F310; + gUnknown_0203CF2C->menuActionsCount = ARRAY_COUNT(gUnknown_0861F310); + } + break; + case 3: + gUnknown_0203CF2C->menuActionIds = gUnknown_0861F30C; + gUnknown_0203CF2C->menuActionsCount = ARRAY_COUNT(gUnknown_0861F30C); + break; + } + + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_Var1IsSelected); + FillWindowPixelBuffer(1, 0); + PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); + if (gUnknown_0203CF2C->menuActionsCount == 1) + sub_81C5EAC(sub_81C6D24(0)); + else if (gUnknown_0203CF2C->menuActionsCount == 2) + sub_81C5EAC(sub_81C6D24(1)); + else + sub_81C5F08(sub_81C6D24(2), 2, 2); + + if (gUnknown_0203CF2C->menuActionsCount == 4) + gTasks[taskId].func = sub_81C5FE4; + else + gTasks[taskId].func = sub_81C5F68; +} + +void sub_81C5EAC(u8 windowId) +{ + AddItemMenuActionTextPrinters(windowId, 7, 8, 1, 0, 0x10, gUnknown_0203CF2C->menuActionsCount, gUnknown_0861F2D8, gUnknown_0203CF2C->menuActionIds); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, gUnknown_0203CF2C->menuActionsCount, 0); +} + +void sub_81C5F08(u8 windowId, u8 horizontalCount, u8 verticalCount) +{ + sub_8198DBC(windowId, 7, 8, 1, 0x38, horizontalCount, verticalCount, gUnknown_0861F2D8, gUnknown_0203CF2C->menuActionIds); + sub_8199944(windowId, 0x38, horizontalCount, verticalCount, 0); +} + +void sub_81C5F68(u8 taskId) +{ + if (sub_81221EC() != TRUE) + { + s32 id = Menu_ProcessInputNoWrapAround(); + switch (id) + { + case -2: + break; + case -1: + PlaySE(SE_SELECT); + gUnknown_0861F2D8[3].func.void_u8(taskId); + break; + default: + PlaySE(SE_SELECT); + if (gUnknown_0861F2D8[gUnknown_0203CF2C->menuActionIds[id]].func.void_u8 != NULL) + gUnknown_0861F2D8[gUnknown_0203CF2C->menuActionIds[id]].func.void_u8(taskId); + break; + } + } +} + +void sub_81C5FE4(u8 taskId) +{ + if (sub_81221EC() != TRUE) + { + s8 id = GetMenuCursorPos(); + if (gMain.newKeys & DPAD_UP) + { + if (id > 0 && sub_81C616C(id - 2)) + { + PlaySE(SE_SELECT); + sub_8199134(0, -1); + } + } + else if (gMain.newKeys & DPAD_DOWN) + { + if (id < gUnknown_0203CF2C->menuActionsCount - 2 && sub_81C616C(id + 2)) + { + PlaySE(SE_SELECT); + sub_8199134(0, 1); + } + } + else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) + { + if (id & 1 && sub_81C616C(id - 1)) + { + PlaySE(SE_SELECT); + sub_8199134(-1, 0); + } + } + else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2) + { + if (!(id & 1) && sub_81C616C(id + 1)) + { + PlaySE(SE_SELECT); + sub_8199134(1, 0); + } + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gUnknown_0861F2D8[gUnknown_0203CF2C->menuActionIds[id]].func.void_u8 != NULL) + gUnknown_0861F2D8[gUnknown_0203CF2C->menuActionIds[id]].func.void_u8(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gUnknown_0861F2D8[3].func.void_u8(taskId); + } + } +} + +bool8 sub_81C616C(s8 arg0) +{ + if (arg0 < 0) + return FALSE; + else if (arg0 > gUnknown_0203CF2C->menuActionsCount) + return FALSE; + else if (gUnknown_0203CF2C->menuActionIds[arg0] == 5) + return FALSE; + else + return TRUE; +} + +void sub_81C61A8(void) +{ + if (gUnknown_0203CF2C->menuActionsCount == 1) + sub_81C6D6C(0); + else if (gUnknown_0203CF2C->menuActionsCount == 2) + sub_81C6D6C(1); + else + sub_81C6D6C(2); +} + +void sub_81C61E0(u8 taskId) +{ + u8 pocketId = ItemId_GetPocket(gSpecialVar_ItemId); + + if (pocketId == POCKET_KEY_ITEMS + || pocketId == POCKET_POKE_BALLS + || pocketId == POCKET_TM_HM + || ItemIsMail(gSpecialVar_ItemId) == TRUE) + { + sub_81C61A8(); + DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, sub_81C6714); + } + else if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL) + { + sub_81C61A8(); + FillWindowPixelBuffer(1, 0); + schedule_bg_copy_tilemap_to_vram(0); + ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); + } +} + +void sub_81C6258(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + sub_81C61A8(); + PrintItemDescription(data[1]); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + sub_81C5A98(data[0], 0); + sub_81C629C(taskId); +} + +void sub_81C629C(u8 taskId) +{ + sub_81C5674(); + gTasks[taskId].func = Task_HandlePyramidBagInput; +} + +void sub_81C62C4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + sub_81C61A8(); + data[8] = 1; + if (data[2] == 1) + { + sub_81C6350(taskId); + } + else + { + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_TossHowManyVar1s); + FillWindowPixelBuffer(1, 0); + PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); + sub_81C6404(); + gTasks[taskId].func = sub_81C64B4; + } +} + +void sub_81C6350(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + CopyItemName(gSpecialVar_ItemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 2); + StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems); + FillWindowPixelBuffer(1, 0); + PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); + sub_81C6DAC(taskId, &gUnknown_0861F314); +} + +void sub_81C63D0(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + PrintItemDescription(data[1]); + sub_81C5A98(data[0], 0); + sub_81C629C(taskId); +} + +void sub_81C6404(void) +{ + s32 x; + + ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2); + StringExpandPlaceholders(gStringVar4, gText_xVar1); + sub_81C6CEC(3); + x = GetStringCenterAlignXOffset(1, gStringVar4, 0x28); + PrintTextOnWindow(3, 1, gStringVar4, x, 2, 0, NULL); +} + +void sub_81C645C(s16 value) +{ + s32 x; + + ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEADING_ZEROS, 2); + StringExpandPlaceholders(gStringVar4, gText_xVar1); + x = GetStringCenterAlignXOffset(1, gStringVar4, 0x28); + PrintTextOnWindow(3, 1, gStringVar4, x, 2, 0, NULL); +} + +void sub_81C64B4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) + { + sub_81C645C(data[8]); + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sub_8198070(3, 0); + ClearWindowTilemap(3); + schedule_bg_copy_tilemap_to_vram(1); + sub_81C6350(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_8198070(3, 0); + ClearWindowTilemap(3); + schedule_bg_copy_tilemap_to_vram(1); + sub_81C63D0(taskId); + } +} + +void sub_81C654C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + CopyItemName(gSpecialVar_ItemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 2); + StringExpandPlaceholders(gStringVar4, gText_ThrewAwayVar2Var1s); + FillWindowPixelBuffer(1, 0); + PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); + gTasks[taskId].func = sub_81C65CC; +} + +void sub_81C65CC(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 *scrollOffset = &gUnknown_0203CF30.unk8; + u16 *selectedRow = &gUnknown_0203CF30.unk6; + + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + PlaySE(SE_SELECT); + RemovePyramidBagItem(gSpecialVar_ItemId, data[8]); + DestroyListMenuTask(data[0], scrollOffset, selectedRow); + sub_81C5924(); + sub_81C59BC(); + SetBagItemsListTemplate(); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); + schedule_bg_copy_tilemap_to_vram(0); + sub_81C629C(taskId); + } +} + +void sub_81C6648(u8 taskId) +{ + sub_81C61A8(); + if (ItemIsMail(gSpecialVar_ItemId) == TRUE) + { + DisplayItemMessageInBattlePyramid(taskId, gText_CantWriteMail, sub_81C66EC); + } + else if (!ItemId_GetImportance(gSpecialVar_ItemId)) + { + gUnknown_0203CF2C->callback2 = sub_81B7F60; + sub_81C5B14(taskId); + } + else + { + sub_81C66AC(taskId); + } +} + +void sub_81C66AC(u8 taskId) +{ + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeld); + DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C66EC); +} + +void sub_81C66EC(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sub_81C6714(taskId); + } +} + +void sub_81C6714(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + sub_81C6E1C(); + PrintItemDescription(data[1]); + sub_81C5A98(data[0], 0); + sub_81C629C(taskId); +} + +void sub_81C674C(u8 taskId) +{ + if (!itemid_80BF6D8_mail_related(gSpecialVar_ItemId)) + DisplayItemMessageInBattlePyramid(taskId, gText_CantWriteMail, sub_81C66EC); + else if (!ItemId_GetImportance(gSpecialVar_ItemId)) + sub_81C5B14(taskId); + else + sub_81C66AC(taskId); +} + +void sub_81C679C(u8 taskId) +{ + if (ItemId_GetBattleFunc(gSpecialVar_ItemId) != NULL) + { + sub_81C61A8(); + ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId); + } +} + +void sub_81C67CC(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + data[1] = gUnknown_0203CF30.unk8 + gUnknown_0203CF30.unk6; + gUnknown_0203CF2C->unk814 = data[1]; + ListMenuSetUnkIndicatorsStructField(data[0], 0x10, 1); + CopyItemName(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][data[1]], gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where); + FillWindowPixelBuffer(1, 0); + PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); + sub_81C5A98(data[0], 1); + sub_81C704C(data[1]); + gTasks[taskId].func = sub_81C68B0; +} + +void sub_81C68B0(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (sub_81221EC() != TRUE) + { + if (gMain.newKeys & SELECT_BUTTON) + { + PlaySE(SE_SELECT); + ListMenuGetScrollAndRow(data[0], &gUnknown_0203CF30.unk8, &gUnknown_0203CF30.unk6); + sub_81C6964(taskId); + } + else + { + s32 id = ListMenuHandleInputGetItemId(data[0]); + ListMenuGetScrollAndRow(data[0], &gUnknown_0203CF30.unk8, &gUnknown_0203CF30.unk6); + sub_81C7028(0); + sub_81C704C(gUnknown_0203CF30.unk6); + switch (id) + { + case LIST_NOTHING_CHOSEN: + break; + case LIST_B_PRESSED: + PlaySE(SE_SELECT); + if (gMain.newKeys & A_BUTTON) + sub_81C6964(taskId); + else + sub_81C6A14(taskId); + break; + default: + PlaySE(SE_SELECT); + sub_81C6964(taskId); + break; + } + } + } +} + +void sub_81C6964(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 *scrollOffset = &gUnknown_0203CF30.unk8; + u16 *selectedRow = &gUnknown_0203CF30.unk6; + u16 var = *scrollOffset + *selectedRow; + + if (data[1] == var || data[1] == var - 1) + { + sub_81C6A14(taskId); + } + else + { + MovePyramidBagItemSlotInList(data[1], var); + gUnknown_0203CF2C->unk814 = 0xFF; + sub_81C7028(1); + DestroyListMenuTask(data[0], scrollOffset, selectedRow); + if (data[1] < var) + gUnknown_0203CF30.unk6--; + SetBagItemsListTemplate(); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); + sub_81C629C(taskId); + } +} + +void sub_81C6A14(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 *scrollOffset = &gUnknown_0203CF30.unk8; + u16 *selectedRow = &gUnknown_0203CF30.unk6; + + gUnknown_0203CF2C->unk814 = 0xFF; + sub_81C7028(1); + DestroyListMenuTask(data[0], scrollOffset, selectedRow); + if (data[1] < *scrollOffset + *selectedRow) + gUnknown_0203CF30.unk6--; + SetBagItemsListTemplate(); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); + sub_81C629C(taskId); +} + +void sub_81C6A94(void) +{ + u8 i; + struct Pokemon *party = gPlayerParty; + u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); + u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); + u16 heldItem; + + memcpy(newItems, gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); + memcpy(newQuantities, gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); + for (i = 0; i < 3; i++) + { + heldItem = GetMonData(&party[i], MON_DATA_HELD_ITEM); + if (heldItem != 0 && !AddBagItem(heldItem, 1)) + { + memcpy(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], newItems, PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); + memcpy(gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], newQuantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); + Free(newItems); + Free(newQuantities); + gSpecialVar_Result = 1; + return; + } + } + + heldItem = 0; + for (i = 0; i < 3; i++) + { + SetMonData(&party[i], MON_DATA_HELD_ITEM, &heldItem); + } + gSpecialVar_Result = 0; + Free(newItems); + Free(newQuantities); +} + +void sub_81C6BD8(void) +{ + u8 i; + + InitWindows(gUnknown_0861F328); + DeactivateAllTextPrinters(); + LoadUserWindowBorderGfx(0, 0x1, 0xE0); + LoadMessageBoxGfx(0, 0xA, 0xD0); + LoadPalette(gUnknown_0860F074, 0xF0, 0x20); + + for (i = 0; i < 5; i++) + FillWindowPixelBuffer(i, 0); + + PutWindowTilemap(0); + PutWindowTilemap(1); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); +} + +void PrintOnWindow_Font1(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId) +{ + AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, lineSpacing, gUnknown_0861F31C[colorTableId], speed, src); +} + +void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId) +{ + AddTextPrinterParameterized2(windowId, 7, x, y, letterSpacing, lineSpacing, gUnknown_0861F31C[colorTableId], speed, src); +} + +void sub_81C6CEC(u8 windowId) +{ + SetWindowBorderStyle(windowId, 0, 1, 0xE); + schedule_bg_copy_tilemap_to_vram(1); +} + +u8 sub_81C6D08(u8 windowArrayId) +{ + return gUnknown_0203CF2C->windowIds[windowArrayId]; +} + +u8 sub_81C6D24(u8 windowArrayId) +{ + u8 *windowId = &gUnknown_0203CF2C->windowIds[windowArrayId]; + if (*windowId == 0xFF) + { + *windowId = AddWindow(&gUnknown_0861F350[windowArrayId]); + SetWindowBorderStyle(*windowId, FALSE, 1, 0xE); + schedule_bg_copy_tilemap_to_vram(1); + } + return *windowId; +} + +void sub_81C6D6C(u8 windowArrayId) +{ + u8 *windowId = &gUnknown_0203CF2C->windowIds[windowArrayId]; + if (*windowId != 0xFF) + { + sub_8198070(*windowId, FALSE); + ClearWindowTilemap(*windowId); + RemoveWindow(*windowId); + schedule_bg_copy_tilemap_to_vram(1); + *windowId = 0xFF; + } +} diff --git a/src/item.c b/src/item.c index 22894bbfff..29c2509892 100644 --- a/src/item.c +++ b/src/item.c @@ -752,9 +752,8 @@ u16 BagGetQuantityByPocketPosition(u8 pocketId, u16 pocketPos) static void SwapItemSlots(struct ItemSlot *a, struct ItemSlot *b) { - struct ItemSlot temp = *a; - *a = *b; - *b = temp; + struct ItemSlot temp; + SWAP(*a, *b, temp); } void CompactItemsInBagPocket(struct BagPocket *bagPocket) diff --git a/src/item_use.c b/src/item_use.c index 9031338dd4..23c829391b 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -29,44 +29,26 @@ #include "string_util.h" #include "task.h" #include "text.h" +#include "strings.h" +#include "pokeblock.h" +#include "menu.h" +#include "item_menu.h" -extern void(**gUnknown_0203CE54)(void); extern void(**gUnknown_0203CF2C)(void); extern void(*gUnknown_0203A0F4)(u8 taskId); extern void(*gUnknown_085920D8[])(void); extern void (*gUnknown_03006328)(u8, u16, TaskFunc); extern void unknown_ItemMenu_Confirm(u8 taskId); extern void sub_81C5B14(u8 taskId); -extern u8 gText_DadsAdvice[]; -extern u8 gText_CantDismountBike[]; -extern void sub_8197434(u8 a, u8 b); extern void ScriptUnfreezeEventObjects(void); extern void ItemUseOutOfBattle_TMHM(u8 a); extern void ItemUseOutOfBattle_EvolutionStone(u8 b); -extern void bag_menu_mail_related(void); -extern void OpenPokeblockCase(u8 a, void(*b)(void)); -extern void overworld_free_bg_tilemaps(void); -extern bool32 Overworld_IsBikingAllowed(void); extern bool8 IsPlayerFacingSurfableFishableWater(void); extern bool8 sub_81221AC(void); -extern u8 gText_ItemFinderNothing[]; -extern u8 gText_ItemFinderNearby[]; -extern u8 gText_ItemFinderOnTop[]; -extern u8 gText_CoinCase[]; -extern u8 gText_PowderQty[]; extern u8 gUnknown_085920E4[]; extern u8 Route102_EventScript_274482[]; extern u8 Route102_EventScript_2744C0[]; extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[]; -extern u8 gText_BootedUpHM[]; -extern u8 gText_BootedUpTM[]; -extern u8 gText_TMHMContainedVar1[]; -extern u8 gText_PlayerUsedVar2[]; -extern u8 gText_RepelEffectsLingered[]; -extern u8 gText_UsedVar2WildLured[]; -extern u8 gText_UsedVar2WildRepelled[]; -extern u8 gText_BoxFull[]; -extern u8 gText_WontHaveEffect[]; extern int sub_80247BC(void); extern struct MapHeader* mapconnection_get_mapheader(struct MapConnection *connection); extern void SetUpItemUseCallback(u8 taskId); @@ -86,7 +68,6 @@ extern void sub_81C59BC(void); extern void sub_81AB9A8(u8); extern void sub_81ABA88(u8); extern void sub_80B7CC8(void); -extern void Overworld_ResetStateAfterDigEscRope(void); extern u8* sub_806CF78(u16); extern void sub_81B89F0(void); extern u8 GetItemEffectType(u16); @@ -115,8 +96,7 @@ void sub_80FE124(u8 taskId); void sub_80FE164(u8 taskId); void DisplayItemMessage(u8 taskId, u8 a, const u8* str, void(*callback)(u8 taskId)); -void DisplayItemMessageInBattlePyramid(u8 taskId, u8* str, void(*callback)(u8 taskId)); -void DisplayItemMessageOnField(u8 taskId, u8* str, void(*callback)(u8 taskId)); +void DisplayItemMessageOnField(u8 taskId, const u8* str, void(*callback)(u8 taskId)); void sub_81C6714(u8 taskId); void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId); void StartFishing(u8 a); @@ -137,7 +117,7 @@ void SetUpItemUseCallback(u8 taskId) type = ItemId_GetType(gSpecialVar_ItemId) - 1; if (!InBattlePyramid()) { - *gUnknown_0203CE54 = gUnknown_085920D8[type]; + gUnknown_0203CE54->unk0 = gUnknown_085920D8[type]; unknown_ItemMenu_Confirm(taskId); } else @@ -221,7 +201,7 @@ void sub_80FD254() void ItemUseOutOfBattle_Mail(u8 taskId) { - *gUnknown_0203CE54 = sub_80FD254; + gUnknown_0203CE54->unk0 = sub_80FD254; unknown_ItemMenu_Confirm(taskId); } @@ -617,7 +597,7 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId) } else if (gTasks[taskId].data[3] != TRUE) { - *gUnknown_0203CE54 = sub_80FDBEC; + gUnknown_0203CE54->unk0 = sub_80FDBEC; unknown_ItemMenu_Confirm(taskId); } else @@ -679,7 +659,7 @@ void sub_80FDD10(u8 taskId) { gUnknown_0203A0F4 = sub_80FDD74; gFieldCallback = MapPostLoadHook_UseItem; - *gUnknown_0203CE54 = CB2_ReturnToField; + gUnknown_0203CE54->unk0 = CB2_ReturnToField; unknown_ItemMenu_Confirm(taskId); } else @@ -1002,7 +982,7 @@ void sub_80FE54C(u8 taskId) { if (!InBattlePyramid()) { - *gUnknown_0203CE54 = sub_81B89F0; + gUnknown_0203CE54->unk0 = sub_81B89F0; unknown_ItemMenu_Confirm(taskId); } else From 917b32ffbe15243207de849683f8933f56bdeb07 Mon Sep 17 00:00:00 2001 From: DizzyEggg <jajkodizzy@wp.pl> Date: Thu, 30 Aug 2018 20:10:57 +0200 Subject: [PATCH 149/174] Finish decompiling pyramid bag. --- asm/battle_pyramid_bag.s | 576 ------------------------- asm/party_menu.s | 2 +- asm/pokenav.s | 233 +++++++++++ data/battle_pyramid_bag.s | 54 --- include/battle_pyramid_bag.h | 49 +++ include/item_use.h | 1 - include/save.h | 2 +- ld_script.txt | 2 +- src/battle_pyramid_bag.c | 789 ++++++++++++++++++++++------------- src/item.c | 3 +- src/item_use.c | 6 +- src/start_menu.c | 9 +- 12 files changed, 782 insertions(+), 944 deletions(-) delete mode 100644 asm/battle_pyramid_bag.s create mode 100644 include/battle_pyramid_bag.h diff --git a/asm/battle_pyramid_bag.s b/asm/battle_pyramid_bag.s deleted file mode 100644 index 23ad7172ea..0000000000 --- a/asm/battle_pyramid_bag.s +++ /dev/null @@ -1,576 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - - - thumb_func_start sub_81C6DAC -sub_81C6DAC: @ 81C6DAC - push {lr} - sub sp, 0x10 - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0861F370 - movs r2, 0x2 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0xE - str r2, [sp, 0x8] - str r3, [sp, 0xC] - movs r2, 0x1 - movs r3, 0 - bl CreateYesNoMenuWithCallbacks - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6DAC - - thumb_func_start DisplayItemMessageInBattlePyramid -@ void DisplayItemMessageInBattlePyramid(u8 taskId, u8 *str, void ( *callback)(u8 taskId)) -DisplayItemMessageInBattlePyramid: @ 81C6DD8 - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x11 - bl FillWindowPixelBuffer - bl GetPlayerTextSpeed - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - str r1, [sp] - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0xA - movs r3, 0xD - bl DisplayMessageAndContinueTask - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end DisplayItemMessageInBattlePyramid - - thumb_func_start sub_81C6E1C -sub_81C6E1C: @ 81C6E1C - push {lr} - movs r0, 0x2 - movs r1, 0 - bl sub_8197DF8 - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - thumb_func_end sub_81C6E1C - - thumb_func_start sub_81C6E38 -sub_81C6E38: @ 81C6E38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_0203CF2C - ldr r2, =0x00000804 - adds r1, r4, r2 - ldr r0, [r0] - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, 0xFF - beq _081C6E80 - ldr r0, =0x00001024 - adds r4, r0 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - movs r0, 0xFF - strb r0, [r5] -_081C6E80: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6E38 - - thumb_func_start sub_81C6E98 -sub_81C6E98: @ 81C6E98 - push {r4,lr} - sub sp, 0x8 - movs r0, 0x40 - bl Alloc - adds r4, r0, 0 - ldr r0, =gUnknown_08D9ADD0 - adds r1, r4, 0 - bl LZDecompressWram - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 25 - adds r0, r4, r0 - str r0, [sp] - ldr r1, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - ldr r1, =0x00001024 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpritePalette - adds r0, r4, 0 - bl Free - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6E98 - - thumb_func_start sub_81C6EF4 -sub_81C6EF4: @ 81C6EF4 - push {r4,lr} - ldr r0, =gUnknown_0203CF2C - ldr r4, [r0] - ldr r0, =0x00000804 - adds r4, r0 - ldr r0, =gUnknown_0861F3D4 - movs r1, 0x44 - movs r2, 0x38 - movs r3, 0 - bl CreateSprite - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6EF4 - - thumb_func_start sub_81C6F20 -sub_81C6F20: @ 81C6F20 - push {r4,lr} - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000804 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081C6F50 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, =sub_81C6F68 - str r0, [r4, 0x1C] -_081C6F50: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6F20 - - thumb_func_start sub_81C6F68 -sub_81C6F68: @ 81C6F68 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081C6F84 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnim - ldr r0, =SpriteCallbackDummy - str r0, [r4, 0x1C] -_081C6F84: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6F68 - - thumb_func_start ShowItemImage -ShowItemImage: @ 81C6F90 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, =gUnknown_0203CF2C - ldr r2, =0x00000805 - adds r1, r4, r2 - ldr r0, [r0] - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, 0xFF - bne _081C6FE0 - ldr r0, =0x00001025 - adds r4, r0 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl AddItemIconSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _081C6FE0 - strb r2, [r5] - ldr r1, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x18 - strh r1, [r0, 0x24] - movs r1, 0x58 - strh r1, [r0, 0x26] -_081C6FE0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ShowItemImage - - thumb_func_start sub_81C6FF8 -sub_81C6FF8: @ 81C6FF8 - push {lr} - lsls r0, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 24 - bl sub_81C6E38 - pop {r0} - bx r0 - thumb_func_end sub_81C6FF8 - - thumb_func_start sub_81C700C -sub_81C700C: @ 81C700C - push {lr} - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000807 - adds r0, r1 - movs r1, 0x8 - bl sub_8122344 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C700C - - thumb_func_start sub_81C7028 -sub_81C7028: @ 81C7028 - push {lr} - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000807 - adds r0, r1 - movs r1, 0x8 - bl sub_81223FC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7028 - - thumb_func_start sub_81C704C -sub_81C704C: @ 81C704C - push {lr} - adds r3, r0, 0 - lsls r3, 24 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000807 - adds r0, r1 - lsrs r3, 4 - movs r1, 0x80 - lsls r1, 13 - adds r3, r1 - lsrs r3, 16 - movs r1, 0x88 - movs r2, 0x78 - bl sub_8122448 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C704C - - thumb_func_start sub_81C7078 -sub_81C7078: @ 81C7078 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl is_c1_link_related_active - cmp r0, 0 - bne _081C7090 - ldr r0, =sub_81C7170 - b _081C7092 - .pool -_081C7090: - ldr r0, =sub_81C71E4 -_081C7092: - lsls r1, r4, 24 - lsrs r1, 24 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl SetWordTaskArg - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, =gUnknown_0203CF3C - ldrb r1, [r2] - strh r1, [r0, 0xE] - ldrb r0, [r2] - adds r1, r0, 0x1 - strb r1, [r2] - lsls r0, 24 - lsrs r0, 8 - orrs r0, r4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C7078 - - thumb_func_start sub_81C70D8 -sub_81C70D8: @ 81C70D8 - push {lr} - ldr r1, =0x0000ffff - ands r1, r0 - lsrs r3, r0, 16 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r0, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _081C711C - ldr r2, [r1] - ldr r0, =sub_81C7170 - cmp r2, r0 - beq _081C70FE - ldr r0, =sub_81C71E4 - cmp r2, r0 - bne _081C711C -_081C70FE: - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, r3 - bne _081C711C - movs r0, 0x1 - b _081C711E - .pool -_081C711C: - movs r0, 0 -_081C711E: - pop {r1} - bx r1 - thumb_func_end sub_81C70D8 - - thumb_func_start sub_81C7124 -sub_81C7124: @ 81C7124 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - ldr r4, =gTasks -_081C712C: - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _081C7160 - ldr r1, [r4] - ldr r0, =sub_81C7170 - cmp r1, r0 - beq _081C7140 - ldr r0, =sub_81C71E4 - cmp r1, r0 - bne _081C7160 -_081C7140: - lsls r0, r5, 24 - lsrs r0, 24 - movs r1, 0x1 - bl GetWordTaskArg - cmp r0, r6 - bne _081C7160 - movs r0, 0x1 - b _081C716A - .pool -_081C7160: - adds r4, 0x28 - adds r5, 0x1 - cmp r5, 0xF - ble _081C712C - movs r0, 0 -_081C716A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81C7124 - - thumb_func_start sub_81C7170 -sub_81C7170: @ 81C7170 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl GetWordTaskArg - adds r6, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r7, 0 -_081C718C: - movs r1, 0 - ldrsh r0, [r4, r1] - bl _call_via_r6 - cmp r0, 0x4 - bhi _081C71D6 - lsls r0, 2 - ldr r1, =_081C71AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C71AC: - .4byte _081C71C6 - .4byte _081C71C0 - .4byte _081C71DE - .4byte _081C71DA - .4byte _081C71CE -_081C71C0: - ldrh r0, [r4] - adds r0, 0x1 - b _081C71D8 -_081C71C6: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _081C71DE -_081C71CE: - adds r0, r5, 0 - bl DestroyTask - b _081C71DE -_081C71D6: - subs r0, 0x5 -_081C71D8: - strh r0, [r4] -_081C71DA: - cmp r7, 0 - beq _081C718C -_081C71DE: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C7170 - - thumb_func_start sub_81C71E4 -sub_81C71E4: @ 81C71E4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8087598 - cmp r0, 0 - bne _081C724A - adds r0, r5, 0 - movs r1, 0x1 - bl GetWordTaskArg - adds r2, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - bl _call_via_r2 - cmp r0, 0x4 - bhi _081C7246 - lsls r0, 2 - ldr r1, =_081C7224 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C7224: - .4byte _081C7238 - .4byte _081C7238 - .4byte _081C724A - .4byte _081C724A - .4byte _081C723E -_081C7238: - ldrh r0, [r4] - adds r0, 0x1 - b _081C7248 -_081C723E: - adds r0, r5, 0 - bl DestroyTask - b _081C724A -_081C7246: - subs r0, 0x5 -_081C7248: - strh r0, [r4] -_081C724A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C71E4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/party_menu.s b/asm/party_menu.s index 92c4905a49..2d1faadab5 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -11626,7 +11626,7 @@ c2_815ABFC: @ 81B6254 bl GoToBagMenu b _081B6276 _081B626C: - ldr r0, =gUnknown_0203CF30 + ldr r0, =gPyramidBagCursorData ldr r1, [r0] movs r0, 0x4 bl sub_81C4F98 diff --git a/asm/pokenav.s b/asm/pokenav.s index 8adb3cbd91..b8165ec809 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -4,6 +4,239 @@ .syntax unified .text + + + + thumb_func_start sub_81C7078 +sub_81C7078: @ 81C7078 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl is_c1_link_related_active + cmp r0, 0 + bne _081C7090 + ldr r0, =sub_81C7170 + b _081C7092 + .pool +_081C7090: + ldr r0, =sub_81C71E4 +_081C7092: + lsls r1, r4, 24 + lsrs r1, 24 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl SetWordTaskArg + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, =gUnknown_0203CF3C + ldrb r1, [r2] + strh r1, [r0, 0xE] + ldrb r0, [r2] + adds r1, r0, 0x1 + strb r1, [r2] + lsls r0, 24 + lsrs r0, 8 + orrs r0, r4 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C7078 + + thumb_func_start sub_81C70D8 +sub_81C70D8: @ 81C70D8 + push {lr} + ldr r1, =0x0000ffff + ands r1, r0 + lsrs r3, r0, 16 + ldr r2, =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r1, r0, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _081C711C + ldr r2, [r1] + ldr r0, =sub_81C7170 + cmp r2, r0 + beq _081C70FE + ldr r0, =sub_81C71E4 + cmp r2, r0 + bne _081C711C +_081C70FE: + movs r2, 0xE + ldrsh r0, [r1, r2] + cmp r0, r3 + bne _081C711C + movs r0, 0x1 + b _081C711E + .pool +_081C711C: + movs r0, 0 +_081C711E: + pop {r1} + bx r1 + thumb_func_end sub_81C70D8 + + thumb_func_start sub_81C7124 +sub_81C7124: @ 81C7124 + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 + ldr r4, =gTasks +_081C712C: + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _081C7160 + ldr r1, [r4] + ldr r0, =sub_81C7170 + cmp r1, r0 + beq _081C7140 + ldr r0, =sub_81C71E4 + cmp r1, r0 + bne _081C7160 +_081C7140: + lsls r0, r5, 24 + lsrs r0, 24 + movs r1, 0x1 + bl GetWordTaskArg + cmp r0, r6 + bne _081C7160 + movs r0, 0x1 + b _081C716A + .pool +_081C7160: + adds r4, 0x28 + adds r5, 0x1 + cmp r5, 0xF + ble _081C712C + movs r0, 0 +_081C716A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81C7124 + + thumb_func_start sub_81C7170 +sub_81C7170: @ 81C7170 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl GetWordTaskArg + adds r6, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r7, 0 +_081C718C: + movs r1, 0 + ldrsh r0, [r4, r1] + bl _call_via_r6 + cmp r0, 0x4 + bhi _081C71D6 + lsls r0, 2 + ldr r1, =_081C71AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C71AC: + .4byte _081C71C6 + .4byte _081C71C0 + .4byte _081C71DE + .4byte _081C71DA + .4byte _081C71CE +_081C71C0: + ldrh r0, [r4] + adds r0, 0x1 + b _081C71D8 +_081C71C6: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _081C71DE +_081C71CE: + adds r0, r5, 0 + bl DestroyTask + b _081C71DE +_081C71D6: + subs r0, 0x5 +_081C71D8: + strh r0, [r4] +_081C71DA: + cmp r7, 0 + beq _081C718C +_081C71DE: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C7170 + + thumb_func_start sub_81C71E4 +sub_81C71E4: @ 81C71E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8087598 + cmp r0, 0 + bne _081C724A + adds r0, r5, 0 + movs r1, 0x1 + bl GetWordTaskArg + adds r2, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + bl _call_via_r2 + cmp r0, 0x4 + bhi _081C7246 + lsls r0, 2 + ldr r1, =_081C7224 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C7224: + .4byte _081C7238 + .4byte _081C7238 + .4byte _081C724A + .4byte _081C724A + .4byte _081C723E +_081C7238: + ldrh r0, [r4] + adds r0, 0x1 + b _081C7248 +_081C723E: + adds r0, r5, 0 + bl DestroyTask + b _081C724A +_081C7246: + subs r0, 0x5 +_081C7248: + strh r0, [r4] +_081C724A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C71E4 thumb_func_start CB2_PokeNav CB2_PokeNav: @ 81C7250 diff --git a/data/battle_pyramid_bag.s b/data/battle_pyramid_bag.s index 7327fb1f80..de459075f0 100644 --- a/data/battle_pyramid_bag.s +++ b/data/battle_pyramid_bag.s @@ -3,60 +3,6 @@ .section .rodata - .align 2 -gUnknown_0861F2B4:: @ 861F2B4 - .4byte 0x000011f0, 0x000001e1, 0x000021de - - .align 2 -gUnknown_0861F2C0:: @ 861F2C0 - .4byte 0x00000000, sub_81C5460, sub_81C5518, 0x00000000, 0x00080000, 0x07003021 - - .align 2 -gUnknown_0861F2D8:: @ 861F2D8 - .4byte gMenuText_Use, sub_81C61E0 - .4byte gMenuText_Toss, sub_81C62C4 - .4byte gMenuText_Give, sub_81C6648 - .4byte gText_Cancel2, sub_81C6258 - .4byte gMenuText_Use, sub_81C679C - .4byte gText_EmptyString2, NULL - -gUnknown_0861F308:: @ 861F308 - .byte 0x00, 0x02, 0x01, 0x03 - -gUnknown_0861F30C:: @ 861F30C - .byte 0x01, 0x03 - -gUnknown_0861F30E:: @ 861F30E - .byte 0x04, 0x03 - -gUnknown_0861F310:: @ 861F310 - .byte 0x03, 0x00, 0x00, 0x00 - -gUnknown_0861F314:: @ 861F314 - .4byte sub_81C654C - .4byte sub_81C63D0 - -gUnknown_0861F31C:: @ 861F31C - .byte 0x00, 0x02, 0x03, 0x00, 0x03, 0x01, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_0861F328:: @ 861F328 - window_template 0x00, 0x0e, 0x02, 0x0f, 0x10, 0x0f, 0x001e - window_template 0x00, 0x00, 0x0d, 0x0e, 0x06, 0x0f, 0x010e - window_template 0x01, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x0162 - window_template 0x01, 0x18, 0x11, 0x05, 0x02, 0x0f, 0x01ce - null_window_template - - .align 2 -gUnknown_0861F350:: @ 861F350 - window_template 0x01, 0x16, 0x11, 0x07, 0x02, 0x0f, 0x01d8 - window_template 0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01d8 - window_template 0x01, 0x0f, 0x0f, 0x0e, 0x04, 0x0f, 0x01d8 - window_template 0x01, 0x0f, 0x0d, 0x0e, 0x06, 0x0f, 0x01d8 - - .align 2 -gUnknown_0861F370:: @ 861F370 - window_template 0x01, 0x18, 0x0f, 0x05, 0x04, 0x0f, 0x01d8 .align 2 gOamData_861F378:: @ 861F378 diff --git a/include/battle_pyramid_bag.h b/include/battle_pyramid_bag.h new file mode 100644 index 0000000000..5d5d8ccfa1 --- /dev/null +++ b/include/battle_pyramid_bag.h @@ -0,0 +1,49 @@ +#ifndef GUARD_BATTLE_PYRAMID_BAG_H +#define GUARD_BATTLE_PYRAMID_BAG_H + +#include "list_menu.h" + +struct PyramidBagResources +{ + void (*callback2)(void); + u8 tilemapBuffer[0x800]; + u8 itemsSpriteIds[PYRAMID_BAG_ITEMS_COUNT + 1]; + u8 windowIds[5]; + u8 unk814; + u8 unk815; + u8 scrollArrowSpriteId; + const u8 *menuActionIds; + u8 filler81C[0x820 - 0x81C]; + u8 menuActionsCount; + u8 listMenuCount; + u8 listMenuMaxShown; + struct ListMenuItem bagListItems[PYRAMID_BAG_ITEMS_COUNT + 1]; + u8 itemStrings[PYRAMID_BAG_ITEMS_COUNT + 1][ITEM_NAME_LENGTH + 10]; + s16 state; + u8 filler986[0x98C - 0x986]; +}; + +struct PyramidBagCursorData +{ + void (*callback)(void); + u8 unk4; + u16 cursorPosition; + u16 scrollPosition; +}; + +extern struct PyramidBagResources *gPyramidBagResources; +extern struct PyramidBagCursorData gPyramidBagCursorData; + +void CB2_PyramidBagMenuFromStartMenu(void); +void sub_81C4F84(void); +void sub_81C5924(void); +void sub_81C59BC(void); +void sub_81C4EFC(void); +void sub_81C4F98(u8 a0, void (*callback)(void)); +void sub_81C6714(u8 taskId); +void sub_81C6A94(void); +void sub_81C4F24(void); +void sub_81C5B14(u8 taskId); +void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId)); + +#endif // GUARD_BATTLE_PYRAMID_BAG_H diff --git a/include/item_use.h b/include/item_use.h index 8f0ce272bb..37343f6e7a 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -51,6 +51,5 @@ void ItemUseInBattle_EnigmaBerry(u8); void ItemUseOutOfBattle_CannotUse(u8); u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId); void sub_80FDD10(u8); -void DisplayItemMessageInBattlePyramid(u8 taskId, const u8* str, void(*callback)(u8 taskId)); #endif // GUARD_ITEM_USE_H diff --git a/include/save.h b/include/save.h index 7b271129a2..9859870b49 100644 --- a/include/save.h +++ b/include/save.h @@ -32,7 +32,7 @@ struct SaveSectionOffsets }; // Emerald changes this definition to be the sectors per slot. -#define NUM_SECTORS_PER_SLOT 16 // move to save.h +#define NUM_SECTORS_PER_SLOT 16 #define UNKNOWN_CHECK_VALUE 0x8012025 diff --git a/ld_script.txt b/ld_script.txt index a4219faf30..668cf7c5a7 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -267,7 +267,6 @@ SECTIONS { src/pokemon_summary_screen.o(.text); src/unk_pokedex_area_screen_helper.o(.text); src/battle_pyramid_bag.o(.text); - asm/battle_pyramid_bag.o(.text); asm/pokenav.o(.text); src/match_call.o(.text); asm/pokenav.o(.text.after.match.call); @@ -545,6 +544,7 @@ SECTIONS { src/berry_fix_program.o(.rodata); src/pokemon_summary_screen.o(.rodata); src/unk_pokedex_area_screen_helper.o(.rodata); + src/battle_pyramid_bag.o(.rodata); data/battle_pyramid_bag.o(.rodata); data/pokenav.o(.rodata); src/match_call.o(.rodata); diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 721dfca988..9cb35074b7 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -1,4 +1,5 @@ #include "global.h" +#include "battle_pyramid_bag.h" #include "main.h" #include "battle_controllers.h" #include "bg.h" @@ -28,122 +29,202 @@ #include "event_data.h" #include "text_window.h" #include "international_string_util.h" +#include "item_icon.h" #include "constants/items.h" #include "constants/rgb.h" #include "constants/songs.h" -EWRAM_DATA struct -{ - MainCallback callback2; - u8 tilemapBuffer[0x800]; - u8 itemsSpriteIds[PYRAMID_BAG_ITEMS_COUNT + 1]; - u8 windowIds[5]; - u8 unk814; - u8 unk815; - u8 unk816; - const u8 *menuActionIds; - u8 filler81C; - u8 filler81D; - u8 filler81E; - u8 filler81F; - u8 menuActionsCount; - u8 listMenuCount; - u8 listMenuMaxShown; - struct ListMenuItem bagListItems[PYRAMID_BAG_ITEMS_COUNT + 1]; - u8 itemStrings[PYRAMID_BAG_ITEMS_COUNT + 1][ITEM_NAME_LENGTH + 10]; - s16 unk984; - u8 filler986[0x98C - 0x986]; -} *gUnknown_0203CF2C = NULL; +EWRAM_DATA struct PyramidBagResources *gPyramidBagResources = NULL; +EWRAM_DATA struct PyramidBagCursorData gPyramidBagCursorData = {0}; -EWRAM_DATA struct -{ - void (*callback)(void); - u8 unk4; - u16 unk6; - u16 unk8; -} gUnknown_0203CF30 = {0}; - -extern const struct BgTemplate gUnknown_0861F2B4[3]; -extern const struct WindowTemplate gUnknown_0861F328[]; -extern const struct WindowTemplate gUnknown_0861F350[]; -extern const struct CompressedSpriteSheet gUnknown_0861F3CC; -extern const struct ListMenuTemplate gUnknown_0861F2C0; -extern const u8 gUnknown_0861F310[1]; -extern const u8 gUnknown_0861F308[4]; -extern const u8 gUnknown_0861F30E[2]; -extern const u8 gUnknown_0861F30C[2]; -extern const struct MenuAction gUnknown_0861F2D8[]; -extern const struct YesNoFuncTable gUnknown_0861F314; +// gfx +extern const u8 gUnknown_08D9ADD0[]; +extern const u8 gUnknown_08D9AE04[]; +extern const u8 gUnknown_08D9AF44[]; extern const u16 gUnknown_0860F074[]; -extern const u8 gUnknown_0861F31C[][3]; // This file's functions. -void sub_81C4F98(u8 a0, void (*callback)(void)); -void sub_81C4F44(u8 taskId); -void Task_HandlePyramidBagInput(u8 taskId); -void sub_81C5B4C(u8 taskId); -void sub_81C67CC(u8 taskId); -void sub_81C5D20(u8 taskId); -void sub_81C674C(u8 taskId); -void sub_81C5FE4(u8 taskId); -void sub_81C5F68(u8 taskId); -void sub_81C6714(u8 taskId); -void sub_81C66EC(u8 taskId); -void sub_81C629C(u8 taskId); -void sub_81C6350(u8 taskId); -void sub_81C64B4(u8 taskId); -void sub_81C65CC(u8 taskId); -void sub_81C66AC(u8 taskId); -void sub_81C6964(u8 taskId); -void sub_81C68B0(u8 taskId); -void sub_81C6A14(u8 taskId); -void sub_81C504C(void); -bool8 sub_81C5078(void); -void sub_81C51DC(void); -bool8 sub_81C5238(void); -void SetBagItemsListTemplate(void); -void sub_81C5674(void); -void sub_81C56F8(void); -void sub_81C5924(void); -void sub_81C59BC(void); -void sub_81C5A20(void); -void sub_81C6BD8(void); -void sub_81C6EF4(void); -void sub_81C700C(void); -void sub_81C6E98(void); -void sub_81C6F20(void); -void sub_81C6404(void); -void sub_81C6E1C(void); -void ShowItemImage(u16 itemId, u8 tagIdAdder); -void PyramidBag_CopyItemName(u8 *dst, u16 itemId); -void sub_81C6FF8(u8 arg0); -void PrintItemDescription(s32 listMenuId); -void sub_81C5AB8(u8 y, u8 arg1); -void PrintOnWindow_Font1(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId); -void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId); -u8 sub_81C6D24(u8 windowArrayId); -void sub_81C6D6C(u8 windowArrayId); -void sub_81C5EAC(u8 windowId); -void sub_81C5F08(u8 windowId, u8 horizontalCount, u8 verticalCount); -bool8 sub_81C616C(s8 arg0); -void sub_81C6DAC(u8 taskId, const struct YesNoFuncTable *yesNoTable); -void sub_81C6CEC(u8 windowId); -void sub_81C704C(u8 arg0); -void sub_81C7028(u8 arg0); +static void Task_HandlePyramidBagInput(u8 taskId); +static void sub_81C4F44(u8 taskId); +static void sub_81C5B4C(u8 taskId); +static void Task_BeginItemSwap(u8 taskId); +static void sub_81C5D20(u8 taskId); +static void sub_81C674C(u8 taskId); +static void HandleMenuActionInput(u8 taskId); +static void HandleFewMenuActionsInput(u8 taskId); +static void sub_81C66EC(u8 taskId); +static void SetTaskToMainPyramidBagInputHandler(u8 taskId); +static void sub_81C6350(u8 taskId); +static void sub_81C64B4(u8 taskId); +static void sub_81C65CC(u8 taskId); +static void sub_81C66AC(u8 taskId); +static void PerformItemSwap(u8 taskId); +static void Task_ItemSwapHandleInput(u8 taskId); +static void sub_81C6A14(u8 taskId); +static void SetBagItemsListTemplate(void); +static void sub_81C504C(void); +static void sub_81C51DC(void); +static void AddScrollArrow(void); +static void sub_81C56F8(void); +static void sub_81C5A20(void); +static void sub_81C6BD8(void); +static void sub_81C6EF4(void); +static void sub_81C700C(void); +static void sub_81C6E98(void); +static void sub_81C6F20(void); +static void sub_81C6404(void); +static void sub_81C6E1C(void); +static bool8 sub_81C5238(void); +static bool8 sub_81C5078(void); +static void ShowItemImage(u16 itemId, u8 itemSpriteArrayId); +static void PyramidBag_CopyItemName(u8 *dst, u16 itemId); +static void sub_81C6FF8(u8 arg0); +static void PrintItemDescription(s32 listMenuId); +static void sub_81C5AB8(u8 y, u8 arg1); +static void PrintOnWindow_Font1(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId); +static void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId); +static u8 sub_81C6D24(u8 windowArrayId); +static void sub_81C6D6C(u8 windowArrayId); +static void sub_81C5EAC(u8 windowId); +static void sub_81C5F08(u8 windowId, u8 horizontalCount, u8 verticalCount); +static bool8 IsAValidMenuAction(s8 arg0); +static void sub_81C6DAC(u8 taskId, const struct YesNoFuncTable *yesNoTable); +static void sub_81C6CEC(u8 windowId); +static void sub_81C704C(u8 y); +static void sub_81C7028(bool8 invisible); +static void sub_81C6F68(struct Sprite *sprite); +static void BagAction_UseOnField(u8 taskId); +static void BagAction_Toss(u8 taskId); +static void BagAction_Give(u8 taskId); +static void BagAction_Cancel(u8 taskId); +static void BagAction_UseInBattle(u8 taskId); +static void PyramidBagMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y); +static void TossItem(u8 taskId); +static void DontTossItem(u8 taskId); + +// Const rom data. +static const struct BgTemplate gUnknown_0861F2B4[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 3, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, +}; + +static const struct ListMenuTemplate gUnknown_0861F2C0 = +{ + .items = NULL, + .moveCursorFunc = PyramidBagMoveCursorFunc, + .itemPrintFunc = PrintItemQuantity, + .totalItems = 0, + .maxShowed = 0, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 0, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = LIST_NO_MULTIPLE_SCROLL, + .fontId = 7, + .cursorKind = 0 +}; + +#define ACTION_USE_FIELD 0 +#define ACTION_TOSS 1 +#define ACTION_GIVE 2 +#define ACTION_CANCEL 3 +#define ACTION_USE_BATTLE 4 +#define ACTION_DUMMY 5 + +static const struct MenuAction sMenuActions[] = +{ + [ACTION_USE_FIELD] = { gMenuText_Use, BagAction_UseOnField }, + [ACTION_TOSS] = { gMenuText_Toss, BagAction_Toss }, + [ACTION_GIVE] = { gMenuText_Give, BagAction_Give }, + [ACTION_CANCEL] = { gText_Cancel2, BagAction_Cancel }, + [ACTION_USE_BATTLE] = { gMenuText_Use, BagAction_UseInBattle }, + [ACTION_DUMMY] = { gText_EmptyString2, NULL }, +}; + +static const u8 sFieldMenuActionIds[] = {ACTION_USE_FIELD, ACTION_GIVE, ACTION_TOSS, ACTION_CANCEL}; +static const u8 gUnknown_0861F30C[] = {ACTION_TOSS, ACTION_CANCEL}; +static const u8 sBattleMenuActionIds[] = {ACTION_USE_BATTLE, ACTION_CANCEL}; +static const u8 gUnknown_0861F310[] = {ACTION_CANCEL}; + +static const struct YesNoFuncTable sYesNoTossFuncions = +{ + TossItem, DontTossItem +}; + +static const u8 sColorTable[][3] = +{ + {0, 2, 3}, + {0, 3, 1}, + {1, 2, 3}, +}; + +static const struct WindowTemplate gUnknown_0861F328[] = +{ + {0x00, 0x0e, 0x02, 0x0f, 0x10, 0x0f, 0x001e}, + {0x00, 0x00, 0x0d, 0x0e, 0x06, 0x0f, 0x010e}, + {0x01, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x0162}, + {0x01, 0x18, 0x11, 0x05, 0x02, 0x0f, 0x01ce}, + DUMMY_WIN_TEMPLATE, +}; + +static const struct WindowTemplate gUnknown_0861F350[] = +{ + {0x01, 0x16, 0x11, 0x07, 0x02, 0x0f, 0x01d8}, + {0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01d8}, + {0x01, 0x0f, 0x0f, 0x0e, 0x04, 0x0f, 0x01d8}, + {0x01, 0x0f, 0x0d, 0x0e, 0x06, 0x0f, 0x01d8}, + {0x01, 0x18, 0x0f, 0x05, 0x04, 0x0f, 0x01d8}, +}; + +extern const struct CompressedSpriteSheet gUnknown_0861F3CC; +extern const struct SpriteTemplate gUnknown_0861F3D4; // code void sub_81C4EEC(void) { - gUnknown_0203CF30.unk6 = 0; - gUnknown_0203CF30.unk8 = 0; + gPyramidBagCursorData.cursorPosition = 0; + gPyramidBagCursorData.scrollPosition = 0; } -void sub_81C4EFC(void) +void CB2_PyramidBagMenuFromStartMenu(void) { sub_81C4F98(0, CB2_ReturnToFieldWithOpenMenu); } -void sub_81C4F10(void) +static void sub_81C4F10(void) { sub_81C4F98(1, SetCB2ToReshowScreenAfterMenu2); } @@ -155,7 +236,7 @@ void sub_81C4F24(void) CreateTask(sub_81C4F44, 10); } -void sub_81C4F44(u8 taskId) +static void sub_81C4F44(u8 taskId) { if (!gPaletteFade.active) { @@ -168,30 +249,30 @@ void sub_81C4F44(u8 taskId) void sub_81C4F84(void) { - sub_81C4F98(4, gUnknown_0203CF30.callback); + sub_81C4F98(4, gPyramidBagCursorData.callback); } void sub_81C4F98(u8 a0, void (*callback)(void)) { - gUnknown_0203CF2C = AllocZeroed(sizeof(*gUnknown_0203CF2C)); + gPyramidBagResources = AllocZeroed(sizeof(*gPyramidBagResources)); if (a0 != 4) - gUnknown_0203CF30.unk4 = a0; + gPyramidBagCursorData.unk4 = a0; if (callback != NULL) - gUnknown_0203CF30.callback = callback; + gPyramidBagCursorData.callback = callback; - gUnknown_0203CF2C->callback2 = NULL; - gUnknown_0203CF2C->unk814 = 0xFF; - gUnknown_0203CF2C->unk816 = 0xFF; + gPyramidBagResources->callback2 = NULL; + gPyramidBagResources->unk814 = 0xFF; + gPyramidBagResources->scrollArrowSpriteId = 0xFF; - memset(gUnknown_0203CF2C->itemsSpriteIds, 0xFF, sizeof(gUnknown_0203CF2C->itemsSpriteIds)); - memset(gUnknown_0203CF2C->windowIds, 0xFF, sizeof(gUnknown_0203CF2C->windowIds)); + memset(gPyramidBagResources->itemsSpriteIds, 0xFF, sizeof(gPyramidBagResources->itemsSpriteIds)); + memset(gPyramidBagResources->windowIds, 0xFF, sizeof(gPyramidBagResources->windowIds)); SetMainCallback2(sub_81C504C); } -void sub_81C501C(void) +static void sub_81C501C(void) { RunTasks(); AnimateSprites(); @@ -200,19 +281,19 @@ void sub_81C501C(void) UpdatePaletteFade(); } -void sub_81C5038(void) +static void sub_81C5038(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void sub_81C504C(void) +static void sub_81C504C(void) { while (sub_81221EC() != TRUE && sub_81C5078() != TRUE && sub_81221AC() != TRUE); } -bool8 sub_81C5078(void) +static bool8 sub_81C5078(void) { switch (gMain.state) { @@ -247,7 +328,7 @@ bool8 sub_81C5078(void) break; case 6: sub_81C51DC(); - gUnknown_0203CF2C->unk984 = 0; + gPyramidBagResources->state = 0; gMain.state++; break; case 7: @@ -279,7 +360,7 @@ bool8 sub_81C5078(void) gMain.state++; break; case 13: - sub_81C5674(); + AddScrollArrow(); gMain.state++; break; case 14: @@ -303,12 +384,12 @@ bool8 sub_81C5078(void) return FALSE; } -void sub_81C51DC(void) +static void sub_81C51DC(void) { ResetVramOamAndBgCntRegs(); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gUnknown_0861F2B4, ARRAY_COUNT(gUnknown_0861F2B4)); - SetBgTilemapBuffer(2, gUnknown_0203CF2C->tilemapBuffer); + SetBgTilemapBuffer(2, gPyramidBagResources->tilemapBuffer); ResetAllBgsCoordinates(); schedule_bg_copy_tilemap_to_vram(2); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | @@ -320,67 +401,64 @@ void sub_81C51DC(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); } -extern const u8 gUnknown_08D9AE04[]; -extern const u8 gUnknown_08D9AF44[]; - -bool8 sub_81C5238(void) +static bool8 sub_81C5238(void) { - switch (gUnknown_0203CF2C->unk984) + switch (gPyramidBagResources->state) { case 0: reset_temp_tile_data_buffers(); decompress_and_copy_tile_data_to_vram(2, gBagScreen_Gfx, 0, 0, 0); - gUnknown_0203CF2C->unk984++; + gPyramidBagResources->state++; break; case 1: if (free_temp_tile_data_buffers_if_possible() != TRUE) { - LZDecompressWram(gUnknown_08D9AE04, gUnknown_0203CF2C->tilemapBuffer); - gUnknown_0203CF2C->unk984++; + LZDecompressWram(gUnknown_08D9AE04, gPyramidBagResources->tilemapBuffer); + gPyramidBagResources->state++; } break; case 2: LoadCompressedPalette(gUnknown_08D9AF44, 0, 0x20); - gUnknown_0203CF2C->unk984++; + gPyramidBagResources->state++; break; case 3: LoadCompressedObjectPic(&gUnknown_0861F3CC); - gUnknown_0203CF2C->unk984++; + gPyramidBagResources->state++; break; case 4: sub_81C6E98(); - gUnknown_0203CF2C->unk984++; + gPyramidBagResources->state++; break; default: LoadListMenuArrowsGfx(); - gUnknown_0203CF2C->unk984 = 0; + gPyramidBagResources->state = 0; return TRUE; } return FALSE; } -void SetBagItemsListTemplate(void) +static void SetBagItemsListTemplate(void) { u16 i; u16 *pyramidItems = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; - for (i = 0; i < gUnknown_0203CF2C->listMenuCount - 1; i++) + for (i = 0; i < gPyramidBagResources->listMenuCount - 1; i++) { - PyramidBag_CopyItemName(gUnknown_0203CF2C->itemStrings[i], pyramidItems[i]); - gUnknown_0203CF2C->bagListItems[i].name = gUnknown_0203CF2C->itemStrings[i]; - gUnknown_0203CF2C->bagListItems[i].id = i; + PyramidBag_CopyItemName(gPyramidBagResources->itemStrings[i], pyramidItems[i]); + gPyramidBagResources->bagListItems[i].name = gPyramidBagResources->itemStrings[i]; + gPyramidBagResources->bagListItems[i].id = i; } - StringCopy(gUnknown_0203CF2C->itemStrings[i], gText_CloseBag); - gUnknown_0203CF2C->bagListItems[i].name = gUnknown_0203CF2C->itemStrings[i]; - gUnknown_0203CF2C->bagListItems[i].id = LIST_B_PRESSED; + StringCopy(gPyramidBagResources->itemStrings[i], gText_CloseBag); + gPyramidBagResources->bagListItems[i].name = gPyramidBagResources->itemStrings[i]; + gPyramidBagResources->bagListItems[i].id = LIST_B_PRESSED; gMultiuseListMenuTemplate = gUnknown_0861F2C0; - gMultiuseListMenuTemplate.totalItems = gUnknown_0203CF2C->listMenuCount; - gMultiuseListMenuTemplate.items = gUnknown_0203CF2C->bagListItems; - gMultiuseListMenuTemplate.maxShowed = gUnknown_0203CF2C->listMenuMaxShown; + gMultiuseListMenuTemplate.totalItems = gPyramidBagResources->listMenuCount; + gMultiuseListMenuTemplate.items = gPyramidBagResources->bagListItems; + gMultiuseListMenuTemplate.maxShowed = gPyramidBagResources->listMenuMaxShown; } -void PyramidBag_CopyItemName(u8 *dst, u16 itemId) +static void PyramidBag_CopyItemName(u8 *dst, u16 itemId) { if (ItemId_GetPocket(itemId) == POCKET_BERRIES) { @@ -394,34 +472,34 @@ void PyramidBag_CopyItemName(u8 *dst, u16 itemId) } } -void PyramidBagMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void PyramidBagMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) { if (onInit != TRUE) { PlaySE(SE_SELECT); sub_81C6F20(); } - if (gUnknown_0203CF2C->unk814 == 0xFF) + if (gPyramidBagResources->unk814 == 0xFF) { - sub_81C6FF8(gUnknown_0203CF2C->unk815 ^ 1); + sub_81C6FF8(gPyramidBagResources->unk815 ^ 1); if (itemIndex != LIST_B_PRESSED) - ShowItemImage(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][itemIndex], gUnknown_0203CF2C->unk815); + ShowItemImage(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][itemIndex], gPyramidBagResources->unk815); else - ShowItemImage(0xFFFF, gUnknown_0203CF2C->unk815); - gUnknown_0203CF2C->unk815 ^= 1; + ShowItemImage(0xFFFF, gPyramidBagResources->unk815); + gPyramidBagResources->unk815 ^= 1; PrintItemDescription(itemIndex); } } -void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y) +static void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y) { s32 xAlign; if (itemIndex == LIST_B_PRESSED) return; - if (gUnknown_0203CF2C->unk814 != 0xFF) + if (gPyramidBagResources->unk814 != 0xFF) { - if (gUnknown_0203CF2C->unk814 == (u8)(itemIndex)) + if (gPyramidBagResources->unk814 == (u8)(itemIndex)) sub_81C5AB8(y, 1); else sub_81C5AB8(y, 0xFF); @@ -435,7 +513,7 @@ void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y) PrintOnWindow_Font7(windowId, gStringVar4, xAlign, y, 0, 0, TEXT_SPEED_FF, 0); } -void PrintItemDescription(s32 listMenuId) +static void PrintItemDescription(s32 listMenuId) { const u8 *desc; if (listMenuId != LIST_B_PRESSED) @@ -444,7 +522,7 @@ void PrintItemDescription(s32 listMenuId) } else { - StringCopy(gStringVar1, gReturnToXStringsTable2[gUnknown_0203CF30.unk4]); + StringCopy(gStringVar1, gReturnToXStringsTable2[gPyramidBagCursorData.unk4]); StringExpandPlaceholders(gStringVar4, gText_ReturnToVar1); desc = gStringVar4; } @@ -452,29 +530,29 @@ void PrintItemDescription(s32 listMenuId) PrintOnWindow_Font1(1, desc, 3, 0, 0, 1, 0, 0); } -void sub_81C5674(void) +static void AddScrollArrow(void) { - if (gUnknown_0203CF2C->unk816 == 0xFF) - gUnknown_0203CF2C->unk816 = AddScrollIndicatorArrowPairParameterized(2, 172, 12, 148, gUnknown_0203CF2C->listMenuCount - gUnknown_0203CF2C->listMenuMaxShown, 0xB5E, 0xB5E, &gUnknown_0203CF30.unk8); + if (gPyramidBagResources->scrollArrowSpriteId == 0xFF) + gPyramidBagResources->scrollArrowSpriteId = AddScrollIndicatorArrowPairParameterized(2, 172, 12, 148, gPyramidBagResources->listMenuCount - gPyramidBagResources->listMenuMaxShown, 0xB5E, 0xB5E, &gPyramidBagCursorData.scrollPosition); } -void sub_81C56CC(void) +static void RemoveScrollArrow(void) { - if (gUnknown_0203CF2C->unk816 != 0xFF) + if (gPyramidBagResources->scrollArrowSpriteId != 0xFF) { - RemoveScrollIndicatorArrowPair(gUnknown_0203CF2C->unk816); - gUnknown_0203CF2C->unk816 = 0xFF; + RemoveScrollIndicatorArrowPair(gPyramidBagResources->scrollArrowSpriteId); + gPyramidBagResources->scrollArrowSpriteId = 0xFF; } } -void sub_81C56F8(void) +static void sub_81C56F8(void) { u8 taskId = CreateTask(Task_HandlePyramidBagInput, 0); s16 *data = gTasks[taskId].data; - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203CF30.unk8, gUnknown_0203CF30.unk6); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gPyramidBagCursorData.scrollPosition, gPyramidBagCursorData.cursorPosition); } -void SwapItems(u8 id1, u8 id2) +static void SwapItems(u8 id1, u8 id2) { u16 temp; u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; @@ -484,7 +562,7 @@ void SwapItems(u8 id1, u8 id2) SWAP(quantities[id1], quantities[id2], temp); } -void MovePyramidBagItemSlotInList(u8 from, u8 to) +static void MovePyramidBagItemSlotInList(u8 from, u8 to) { u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode]; @@ -517,7 +595,7 @@ void MovePyramidBagItemSlotInList(u8 from, u8 to) } } -void CompactItems(void) +static void CompactItems(void) { u8 i, j; u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; @@ -547,58 +625,58 @@ void sub_81C5924(void) u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; CompactItems(); - gUnknown_0203CF2C->listMenuCount = 0; + gPyramidBagResources->listMenuCount = 0; for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++) { if (itemIds[i] != 0) - gUnknown_0203CF2C->listMenuCount++; + gPyramidBagResources->listMenuCount++; } - gUnknown_0203CF2C->listMenuCount++; - if (gUnknown_0203CF2C->listMenuCount > 8) - gUnknown_0203CF2C->listMenuMaxShown = 8; + gPyramidBagResources->listMenuCount++; + if (gPyramidBagResources->listMenuCount > 8) + gPyramidBagResources->listMenuMaxShown = 8; else - gUnknown_0203CF2C->listMenuMaxShown = gUnknown_0203CF2C->listMenuCount; + gPyramidBagResources->listMenuMaxShown = gPyramidBagResources->listMenuCount; } void sub_81C59BC(void) { - if (gUnknown_0203CF30.unk8 != 0 && gUnknown_0203CF30.unk8 + gUnknown_0203CF2C->listMenuMaxShown > gUnknown_0203CF2C->listMenuCount) - gUnknown_0203CF30.unk8 = gUnknown_0203CF2C->listMenuCount - gUnknown_0203CF2C->listMenuMaxShown; - if (gUnknown_0203CF30.unk8 + gUnknown_0203CF30.unk6 >= gUnknown_0203CF2C->listMenuCount) + if (gPyramidBagCursorData.scrollPosition != 0 && gPyramidBagCursorData.scrollPosition + gPyramidBagResources->listMenuMaxShown > gPyramidBagResources->listMenuCount) + gPyramidBagCursorData.scrollPosition = gPyramidBagResources->listMenuCount - gPyramidBagResources->listMenuMaxShown; + if (gPyramidBagCursorData.scrollPosition + gPyramidBagCursorData.cursorPosition >= gPyramidBagResources->listMenuCount) { - if (gUnknown_0203CF2C->listMenuCount == 0) - gUnknown_0203CF30.unk6 = 0; + if (gPyramidBagResources->listMenuCount == 0) + gPyramidBagCursorData.cursorPosition = 0; else - gUnknown_0203CF30.unk6 = gUnknown_0203CF2C->listMenuCount - 1; + gPyramidBagCursorData.cursorPosition = gPyramidBagResources->listMenuCount - 1; } } -void sub_81C5A20(void) +static void sub_81C5A20(void) { u8 i; - if (gUnknown_0203CF30.unk6 > 4) + if (gPyramidBagCursorData.cursorPosition > 4) { - for (i = 0; i <= gUnknown_0203CF30.unk6 - 4; i++) + for (i = 0; i <= gPyramidBagCursorData.cursorPosition - 4; i++) { - if (gUnknown_0203CF30.unk8 + gUnknown_0203CF2C->listMenuMaxShown == gUnknown_0203CF2C->listMenuCount) + if (gPyramidBagCursorData.scrollPosition + gPyramidBagResources->listMenuMaxShown == gPyramidBagResources->listMenuCount) { // daycare.c sends its regards. break; } - gUnknown_0203CF30.unk6--; - gUnknown_0203CF30.unk8++; + gPyramidBagCursorData.cursorPosition--; + gPyramidBagCursorData.scrollPosition++; } } } -void sub_81C5A98(u8 listMenuTaskId, u8 arg1) +static void sub_81C5A98(u8 listMenuTaskId, u8 arg1) { u8 y = ListMenuGetYCoordForPrintingArrowCursor(listMenuTaskId); sub_81C5AB8(y, arg1); } -void sub_81C5AB8(u8 y, u8 arg1) +static void sub_81C5AB8(u8 y, u8 arg1) { if (arg1 == 0xFF) FillWindowPixelRect(0, 0, 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); @@ -612,46 +690,46 @@ void sub_81C5B14(u8 taskId) gTasks[taskId].func = sub_81C5B4C; } -void sub_81C5B4C(u8 taskId) +static void sub_81C5B4C(u8 taskId) { s16 *data = gTasks[taskId].data; if (!gPaletteFade.active) { - DestroyListMenuTask(data[0], &gUnknown_0203CF30.unk8, &gUnknown_0203CF30.unk6); - if (gUnknown_0203CF2C->callback2 != NULL) - SetMainCallback2(gUnknown_0203CF2C->callback2); + DestroyListMenuTask(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition); + if (gPyramidBagResources->callback2 != NULL) + SetMainCallback2(gPyramidBagResources->callback2); else - SetMainCallback2(gUnknown_0203CF30.callback); - sub_81C56CC(); + SetMainCallback2(gPyramidBagCursorData.callback); + RemoveScrollArrow(); ResetSpriteData(); FreeAllSpritePalettes(); FreeAllWindowBuffers(); - Free(gUnknown_0203CF2C); + Free(gPyramidBagResources); DestroyTask(taskId); } } -void Task_HandlePyramidBagInput(u8 taskId) +static void Task_HandlePyramidBagInput(u8 taskId) { s16 *data = gTasks[taskId].data; if (sub_81221EC() != TRUE && !gPaletteFade.active) { if (gMain.newKeys & SELECT_BUTTON) { - if (gUnknown_0203CF30.unk4 != 2) + if (gPyramidBagCursorData.unk4 != 2) { - ListMenuGetScrollAndRow(data[0], &gUnknown_0203CF30.unk8, &gUnknown_0203CF30.unk6); - if (gUnknown_0203CF30.unk8 + gUnknown_0203CF30.unk6 != gUnknown_0203CF2C->listMenuCount - 1) + ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition); + if (gPyramidBagCursorData.scrollPosition + gPyramidBagCursorData.cursorPosition != gPyramidBagResources->listMenuCount - 1) { PlaySE(SE_SELECT); - sub_81C67CC(taskId); + Task_BeginItemSwap(taskId); } } } else { s32 listId = ListMenuHandleInputGetItemId(data[0]); - ListMenuGetScrollAndRow(data[0], &gUnknown_0203CF30.unk8, &gUnknown_0203CF30.unk6); + ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition); switch (listId) { case LIST_NOTHING_CHOSEN: @@ -666,7 +744,7 @@ void Task_HandlePyramidBagInput(u8 taskId) gSpecialVar_ItemId = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][listId]; data[1] = listId; data[2] = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode][listId]; - if (gUnknown_0203CF30.unk4 == 2) + if (gPyramidBagCursorData.unk4 == 2) sub_81C674C(taskId); else sub_81C5D20(taskId); @@ -676,33 +754,33 @@ void Task_HandlePyramidBagInput(u8 taskId) } } -void sub_81C5D20(u8 taskId) +static void sub_81C5D20(u8 taskId) { s16 *data = gTasks[taskId].data; - sub_81C56CC(); + RemoveScrollArrow(); sub_81C5A98(data[0], 1); - switch (gUnknown_0203CF30.unk4) + switch (gPyramidBagCursorData.unk4) { default: - gUnknown_0203CF2C->menuActionIds = gUnknown_0861F308; - gUnknown_0203CF2C->menuActionsCount = ARRAY_COUNT(gUnknown_0861F308); + gPyramidBagResources->menuActionIds = sFieldMenuActionIds; + gPyramidBagResources->menuActionsCount = ARRAY_COUNT(sFieldMenuActionIds); break; case 1: if (ItemId_GetBattleUsage(gSpecialVar_ItemId)) { - gUnknown_0203CF2C->menuActionIds = gUnknown_0861F30E; - gUnknown_0203CF2C->menuActionsCount = ARRAY_COUNT(gUnknown_0861F30E); + gPyramidBagResources->menuActionIds = sBattleMenuActionIds; + gPyramidBagResources->menuActionsCount = ARRAY_COUNT(sBattleMenuActionIds); } else { - gUnknown_0203CF2C->menuActionIds = gUnknown_0861F310; - gUnknown_0203CF2C->menuActionsCount = ARRAY_COUNT(gUnknown_0861F310); + gPyramidBagResources->menuActionIds = gUnknown_0861F310; + gPyramidBagResources->menuActionsCount = ARRAY_COUNT(gUnknown_0861F310); } break; case 3: - gUnknown_0203CF2C->menuActionIds = gUnknown_0861F30C; - gUnknown_0203CF2C->menuActionsCount = ARRAY_COUNT(gUnknown_0861F30C); + gPyramidBagResources->menuActionIds = gUnknown_0861F30C; + gPyramidBagResources->menuActionsCount = ARRAY_COUNT(gUnknown_0861F30C); break; } @@ -710,32 +788,32 @@ void sub_81C5D20(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_Var1IsSelected); FillWindowPixelBuffer(1, 0); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); - if (gUnknown_0203CF2C->menuActionsCount == 1) + if (gPyramidBagResources->menuActionsCount == 1) sub_81C5EAC(sub_81C6D24(0)); - else if (gUnknown_0203CF2C->menuActionsCount == 2) + else if (gPyramidBagResources->menuActionsCount == 2) sub_81C5EAC(sub_81C6D24(1)); else sub_81C5F08(sub_81C6D24(2), 2, 2); - if (gUnknown_0203CF2C->menuActionsCount == 4) - gTasks[taskId].func = sub_81C5FE4; + if (gPyramidBagResources->menuActionsCount == 4) + gTasks[taskId].func = HandleMenuActionInput; else - gTasks[taskId].func = sub_81C5F68; + gTasks[taskId].func = HandleFewMenuActionsInput; } -void sub_81C5EAC(u8 windowId) +static void sub_81C5EAC(u8 windowId) { - AddItemMenuActionTextPrinters(windowId, 7, 8, 1, 0, 0x10, gUnknown_0203CF2C->menuActionsCount, gUnknown_0861F2D8, gUnknown_0203CF2C->menuActionIds); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, gUnknown_0203CF2C->menuActionsCount, 0); + AddItemMenuActionTextPrinters(windowId, 7, 8, 1, 0, 0x10, gPyramidBagResources->menuActionsCount, sMenuActions, gPyramidBagResources->menuActionIds); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, gPyramidBagResources->menuActionsCount, 0); } -void sub_81C5F08(u8 windowId, u8 horizontalCount, u8 verticalCount) +static void sub_81C5F08(u8 windowId, u8 horizontalCount, u8 verticalCount) { - sub_8198DBC(windowId, 7, 8, 1, 0x38, horizontalCount, verticalCount, gUnknown_0861F2D8, gUnknown_0203CF2C->menuActionIds); + sub_8198DBC(windowId, 7, 8, 1, 0x38, horizontalCount, verticalCount, sMenuActions, gPyramidBagResources->menuActionIds); sub_8199944(windowId, 0x38, horizontalCount, verticalCount, 0); } -void sub_81C5F68(u8 taskId) +static void HandleFewMenuActionsInput(u8 taskId) { if (sub_81221EC() != TRUE) { @@ -746,25 +824,25 @@ void sub_81C5F68(u8 taskId) break; case -1: PlaySE(SE_SELECT); - gUnknown_0861F2D8[3].func.void_u8(taskId); + sMenuActions[ACTION_CANCEL].func.void_u8(taskId); break; default: PlaySE(SE_SELECT); - if (gUnknown_0861F2D8[gUnknown_0203CF2C->menuActionIds[id]].func.void_u8 != NULL) - gUnknown_0861F2D8[gUnknown_0203CF2C->menuActionIds[id]].func.void_u8(taskId); + if (sMenuActions[gPyramidBagResources->menuActionIds[id]].func.void_u8 != NULL) + sMenuActions[gPyramidBagResources->menuActionIds[id]].func.void_u8(taskId); break; } } } -void sub_81C5FE4(u8 taskId) +static void HandleMenuActionInput(u8 taskId) { if (sub_81221EC() != TRUE) { s8 id = GetMenuCursorPos(); if (gMain.newKeys & DPAD_UP) { - if (id > 0 && sub_81C616C(id - 2)) + if (id > 0 && IsAValidMenuAction(id - 2)) { PlaySE(SE_SELECT); sub_8199134(0, -1); @@ -772,7 +850,7 @@ void sub_81C5FE4(u8 taskId) } else if (gMain.newKeys & DPAD_DOWN) { - if (id < gUnknown_0203CF2C->menuActionsCount - 2 && sub_81C616C(id + 2)) + if (id < gPyramidBagResources->menuActionsCount - 2 && IsAValidMenuAction(id + 2)) { PlaySE(SE_SELECT); sub_8199134(0, 1); @@ -780,7 +858,7 @@ void sub_81C5FE4(u8 taskId) } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { - if (id & 1 && sub_81C616C(id - 1)) + if (id & 1 && IsAValidMenuAction(id - 1)) { PlaySE(SE_SELECT); sub_8199134(-1, 0); @@ -788,7 +866,7 @@ void sub_81C5FE4(u8 taskId) } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2) { - if (!(id & 1) && sub_81C616C(id + 1)) + if (!(id & 1) && IsAValidMenuAction(id + 1)) { PlaySE(SE_SELECT); sub_8199134(1, 0); @@ -797,40 +875,40 @@ void sub_81C5FE4(u8 taskId) else if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - if (gUnknown_0861F2D8[gUnknown_0203CF2C->menuActionIds[id]].func.void_u8 != NULL) - gUnknown_0861F2D8[gUnknown_0203CF2C->menuActionIds[id]].func.void_u8(taskId); + if (sMenuActions[gPyramidBagResources->menuActionIds[id]].func.void_u8 != NULL) + sMenuActions[gPyramidBagResources->menuActionIds[id]].func.void_u8(taskId); } else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); - gUnknown_0861F2D8[3].func.void_u8(taskId); + sMenuActions[ACTION_CANCEL].func.void_u8(taskId); } } } -bool8 sub_81C616C(s8 arg0) +static bool8 IsAValidMenuAction(s8 actionTableId) { - if (arg0 < 0) + if (actionTableId < 0) return FALSE; - else if (arg0 > gUnknown_0203CF2C->menuActionsCount) + else if (actionTableId > gPyramidBagResources->menuActionsCount) return FALSE; - else if (gUnknown_0203CF2C->menuActionIds[arg0] == 5) + else if (gPyramidBagResources->menuActionIds[actionTableId] == ACTION_DUMMY) return FALSE; else return TRUE; } -void sub_81C61A8(void) +static void sub_81C61A8(void) { - if (gUnknown_0203CF2C->menuActionsCount == 1) + if (gPyramidBagResources->menuActionsCount == 1) sub_81C6D6C(0); - else if (gUnknown_0203CF2C->menuActionsCount == 2) + else if (gPyramidBagResources->menuActionsCount == 2) sub_81C6D6C(1); else sub_81C6D6C(2); } -void sub_81C61E0(u8 taskId) +static void BagAction_UseOnField(u8 taskId) { u8 pocketId = ItemId_GetPocket(gSpecialVar_ItemId); @@ -851,7 +929,7 @@ void sub_81C61E0(u8 taskId) } } -void sub_81C6258(u8 taskId) +static void BagAction_Cancel(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -860,16 +938,16 @@ void sub_81C6258(u8 taskId) schedule_bg_copy_tilemap_to_vram(0); schedule_bg_copy_tilemap_to_vram(1); sub_81C5A98(data[0], 0); - sub_81C629C(taskId); + SetTaskToMainPyramidBagInputHandler(taskId); } -void sub_81C629C(u8 taskId) +static void SetTaskToMainPyramidBagInputHandler(u8 taskId) { - sub_81C5674(); + AddScrollArrow(); gTasks[taskId].func = Task_HandlePyramidBagInput; } -void sub_81C62C4(u8 taskId) +static void BagAction_Toss(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -890,7 +968,7 @@ void sub_81C62C4(u8 taskId) } } -void sub_81C6350(u8 taskId) +static void sub_81C6350(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -899,19 +977,19 @@ void sub_81C6350(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems); FillWindowPixelBuffer(1, 0); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); - sub_81C6DAC(taskId, &gUnknown_0861F314); + sub_81C6DAC(taskId, &sYesNoTossFuncions); } -void sub_81C63D0(u8 taskId) +static void DontTossItem(u8 taskId) { s16 *data = gTasks[taskId].data; PrintItemDescription(data[1]); sub_81C5A98(data[0], 0); - sub_81C629C(taskId); + SetTaskToMainPyramidBagInputHandler(taskId); } -void sub_81C6404(void) +static void sub_81C6404(void) { s32 x; @@ -922,7 +1000,7 @@ void sub_81C6404(void) PrintTextOnWindow(3, 1, gStringVar4, x, 2, 0, NULL); } -void sub_81C645C(s16 value) +static void sub_81C645C(s16 value) { s32 x; @@ -932,7 +1010,7 @@ void sub_81C645C(s16 value) PrintTextOnWindow(3, 1, gStringVar4, x, 2, 0, NULL); } -void sub_81C64B4(u8 taskId) +static void sub_81C64B4(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -954,11 +1032,11 @@ void sub_81C64B4(u8 taskId) sub_8198070(3, 0); ClearWindowTilemap(3); schedule_bg_copy_tilemap_to_vram(1); - sub_81C63D0(taskId); + DontTossItem(taskId); } } -void sub_81C654C(u8 taskId) +static void TossItem(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -970,11 +1048,11 @@ void sub_81C654C(u8 taskId) gTasks[taskId].func = sub_81C65CC; } -void sub_81C65CC(u8 taskId) +static void sub_81C65CC(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 *scrollOffset = &gUnknown_0203CF30.unk8; - u16 *selectedRow = &gUnknown_0203CF30.unk6; + u16 *scrollOffset = &gPyramidBagCursorData.scrollPosition; + u16 *selectedRow = &gPyramidBagCursorData.cursorPosition; if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -986,11 +1064,11 @@ void sub_81C65CC(u8 taskId) SetBagItemsListTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); schedule_bg_copy_tilemap_to_vram(0); - sub_81C629C(taskId); + SetTaskToMainPyramidBagInputHandler(taskId); } } -void sub_81C6648(u8 taskId) +static void BagAction_Give(u8 taskId) { sub_81C61A8(); if (ItemIsMail(gSpecialVar_ItemId) == TRUE) @@ -999,7 +1077,7 @@ void sub_81C6648(u8 taskId) } else if (!ItemId_GetImportance(gSpecialVar_ItemId)) { - gUnknown_0203CF2C->callback2 = sub_81B7F60; + gPyramidBagResources->callback2 = sub_81B7F60; sub_81C5B14(taskId); } else @@ -1008,14 +1086,14 @@ void sub_81C6648(u8 taskId) } } -void sub_81C66AC(u8 taskId) +static void sub_81C66AC(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeld); DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C66EC); } -void sub_81C66EC(u8 taskId) +static void sub_81C66EC(u8 taskId) { if (gMain.newKeys & A_BUTTON) { @@ -1031,10 +1109,10 @@ void sub_81C6714(u8 taskId) sub_81C6E1C(); PrintItemDescription(data[1]); sub_81C5A98(data[0], 0); - sub_81C629C(taskId); + SetTaskToMainPyramidBagInputHandler(taskId); } -void sub_81C674C(u8 taskId) +static void sub_81C674C(u8 taskId) { if (!itemid_80BF6D8_mail_related(gSpecialVar_ItemId)) DisplayItemMessageInBattlePyramid(taskId, gText_CantWriteMail, sub_81C66EC); @@ -1044,7 +1122,7 @@ void sub_81C674C(u8 taskId) sub_81C66AC(taskId); } -void sub_81C679C(u8 taskId) +static void BagAction_UseInBattle(u8 taskId) { if (ItemId_GetBattleFunc(gSpecialVar_ItemId) != NULL) { @@ -1053,12 +1131,12 @@ void sub_81C679C(u8 taskId) } } -void sub_81C67CC(u8 taskId) +static void Task_BeginItemSwap(u8 taskId) { s16 *data = gTasks[taskId].data; - data[1] = gUnknown_0203CF30.unk8 + gUnknown_0203CF30.unk6; - gUnknown_0203CF2C->unk814 = data[1]; + data[1] = gPyramidBagCursorData.scrollPosition + gPyramidBagCursorData.cursorPosition; + gPyramidBagResources->unk814 = data[1]; ListMenuSetUnkIndicatorsStructField(data[0], 0x10, 1); CopyItemName(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][data[1]], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where); @@ -1066,10 +1144,10 @@ void sub_81C67CC(u8 taskId) PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); sub_81C5A98(data[0], 1); sub_81C704C(data[1]); - gTasks[taskId].func = sub_81C68B0; + gTasks[taskId].func = Task_ItemSwapHandleInput; } -void sub_81C68B0(u8 taskId) +static void Task_ItemSwapHandleInput(u8 taskId) { s16 *data = gTasks[taskId].data; if (sub_81221EC() != TRUE) @@ -1077,15 +1155,15 @@ void sub_81C68B0(u8 taskId) if (gMain.newKeys & SELECT_BUTTON) { PlaySE(SE_SELECT); - ListMenuGetScrollAndRow(data[0], &gUnknown_0203CF30.unk8, &gUnknown_0203CF30.unk6); - sub_81C6964(taskId); + ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition); + PerformItemSwap(taskId); } else { s32 id = ListMenuHandleInputGetItemId(data[0]); - ListMenuGetScrollAndRow(data[0], &gUnknown_0203CF30.unk8, &gUnknown_0203CF30.unk6); - sub_81C7028(0); - sub_81C704C(gUnknown_0203CF30.unk6); + ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition); + sub_81C7028(FALSE); + sub_81C704C(gPyramidBagCursorData.cursorPosition); switch (id) { case LIST_NOTHING_CHOSEN: @@ -1093,24 +1171,24 @@ void sub_81C68B0(u8 taskId) case LIST_B_PRESSED: PlaySE(SE_SELECT); if (gMain.newKeys & A_BUTTON) - sub_81C6964(taskId); + PerformItemSwap(taskId); else sub_81C6A14(taskId); break; default: PlaySE(SE_SELECT); - sub_81C6964(taskId); + PerformItemSwap(taskId); break; } } } } -void sub_81C6964(u8 taskId) +static void PerformItemSwap(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 *scrollOffset = &gUnknown_0203CF30.unk8; - u16 *selectedRow = &gUnknown_0203CF30.unk6; + u16 *scrollOffset = &gPyramidBagCursorData.scrollPosition; + u16 *selectedRow = &gPyramidBagCursorData.cursorPosition; u16 var = *scrollOffset + *selectedRow; if (data[1] == var || data[1] == var - 1) @@ -1120,31 +1198,31 @@ void sub_81C6964(u8 taskId) else { MovePyramidBagItemSlotInList(data[1], var); - gUnknown_0203CF2C->unk814 = 0xFF; - sub_81C7028(1); + gPyramidBagResources->unk814 = 0xFF; + sub_81C7028(TRUE); DestroyListMenuTask(data[0], scrollOffset, selectedRow); if (data[1] < var) - gUnknown_0203CF30.unk6--; + gPyramidBagCursorData.cursorPosition--; SetBagItemsListTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); - sub_81C629C(taskId); + SetTaskToMainPyramidBagInputHandler(taskId); } } -void sub_81C6A14(u8 taskId) +static void sub_81C6A14(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 *scrollOffset = &gUnknown_0203CF30.unk8; - u16 *selectedRow = &gUnknown_0203CF30.unk6; + u16 *scrollOffset = &gPyramidBagCursorData.scrollPosition; + u16 *selectedRow = &gPyramidBagCursorData.cursorPosition; - gUnknown_0203CF2C->unk814 = 0xFF; - sub_81C7028(1); + gPyramidBagResources->unk814 = 0xFF; + sub_81C7028(TRUE); DestroyListMenuTask(data[0], scrollOffset, selectedRow); if (data[1] < *scrollOffset + *selectedRow) - gUnknown_0203CF30.unk6--; + gPyramidBagCursorData.cursorPosition--; SetBagItemsListTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); - sub_81C629C(taskId); + SetTaskToMainPyramidBagInputHandler(taskId); } void sub_81C6A94(void) @@ -1181,7 +1259,7 @@ void sub_81C6A94(void) Free(newQuantities); } -void sub_81C6BD8(void) +static void sub_81C6BD8(void) { u8 i; @@ -1200,30 +1278,30 @@ void sub_81C6BD8(void) schedule_bg_copy_tilemap_to_vram(1); } -void PrintOnWindow_Font1(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId) +static void PrintOnWindow_Font1(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId) { - AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, lineSpacing, gUnknown_0861F31C[colorTableId], speed, src); + AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src); } -void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId) +static void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId) { - AddTextPrinterParameterized2(windowId, 7, x, y, letterSpacing, lineSpacing, gUnknown_0861F31C[colorTableId], speed, src); + AddTextPrinterParameterized2(windowId, 7, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src); } -void sub_81C6CEC(u8 windowId) +static void sub_81C6CEC(u8 windowId) { SetWindowBorderStyle(windowId, 0, 1, 0xE); schedule_bg_copy_tilemap_to_vram(1); } -u8 sub_81C6D08(u8 windowArrayId) +static u8 sub_81C6D08(u8 windowArrayId) { - return gUnknown_0203CF2C->windowIds[windowArrayId]; + return gPyramidBagResources->windowIds[windowArrayId]; } -u8 sub_81C6D24(u8 windowArrayId) +static u8 sub_81C6D24(u8 windowArrayId) { - u8 *windowId = &gUnknown_0203CF2C->windowIds[windowArrayId]; + u8 *windowId = &gPyramidBagResources->windowIds[windowArrayId]; if (*windowId == 0xFF) { *windowId = AddWindow(&gUnknown_0861F350[windowArrayId]); @@ -1233,9 +1311,9 @@ u8 sub_81C6D24(u8 windowArrayId) return *windowId; } -void sub_81C6D6C(u8 windowArrayId) +static void sub_81C6D6C(u8 windowArrayId) { - u8 *windowId = &gUnknown_0203CF2C->windowIds[windowArrayId]; + u8 *windowId = &gPyramidBagResources->windowIds[windowArrayId]; if (*windowId != 0xFF) { sub_8198070(*windowId, FALSE); @@ -1245,3 +1323,112 @@ void sub_81C6D6C(u8 windowArrayId) *windowId = 0xFF; } } + +static void sub_81C6DAC(u8 taskId, const struct YesNoFuncTable *yesNoTable) +{ + CreateYesNoMenuWithCallbacks(taskId, &gUnknown_0861F350[4], 1, 0, 2, 1, 0xE, yesNoTable); +} + +void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId)) +{ + FillWindowPixelBuffer(2, 0x11); + DisplayMessageAndContinueTask(taskId, 2, 0xA, 0xD, 1, GetPlayerTextSpeed(), str, callback); + schedule_bg_copy_tilemap_to_vram(1); +} + +static void sub_81C6E1C(void) +{ + sub_8197DF8(2, FALSE); + ClearWindowTilemap(2); + schedule_bg_copy_tilemap_to_vram(1); +} + +#define ITEM_IMAGE_TAG 0x1024 + +static void sub_81C6E38(u8 itemSpriteArrayId) +{ + u8 *spriteId = &gPyramidBagResources->itemsSpriteIds[itemSpriteArrayId]; + if (*spriteId != 0xFF) + { + FreeSpriteTilesByTag(ITEM_IMAGE_TAG + itemSpriteArrayId); + FreeSpritePaletteByTag(ITEM_IMAGE_TAG + itemSpriteArrayId); + FreeSpriteOamMatrix(&gSprites[*spriteId]); + DestroySprite(&gSprites[*spriteId]); + *spriteId = 0xFF; + } +} + +static void sub_81C6E98(void) +{ + struct SpritePalette spritePalette; + u16 *palPtr = Alloc(0x40); + + LZDecompressWram(gUnknown_08D9ADD0, palPtr); + spritePalette.data = palPtr + (gSaveBlock2Ptr->frontier.lvlMode * 16); + spritePalette.tag = ITEM_IMAGE_TAG; + LoadSpritePalette(&spritePalette); + Free(palPtr); +} + +static void sub_81C6EF4(void) +{ + u8 *spriteId = &gPyramidBagResources->itemsSpriteIds[0]; + *spriteId = CreateSprite(&gUnknown_0861F3D4, 0x44, 0x38, 0); +} + +static void sub_81C6F20(void) +{ + struct Sprite *sprite = &gSprites[gPyramidBagResources->itemsSpriteIds[0]]; + if (sprite->affineAnimEnded) + { + StartSpriteAffineAnim(sprite, 1); + sprite->callback = sub_81C6F68; + } +} + +static void sub_81C6F68(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + { + StartSpriteAffineAnim(sprite, 0); + sprite->callback = SpriteCallbackDummy; + } +} + +static void ShowItemImage(u16 itemId, u8 itemSpriteArrayId) +{ + u8 itemSpriteId; + u8 *spriteId = &gPyramidBagResources->itemsSpriteIds[itemSpriteArrayId + 1]; + if (*spriteId == 0xFF) + { + FreeSpriteTilesByTag(ITEM_IMAGE_TAG + 1 + itemSpriteArrayId); + FreeSpritePaletteByTag(ITEM_IMAGE_TAG + 1 + itemSpriteArrayId); + itemSpriteId = AddItemIconSprite(ITEM_IMAGE_TAG + 1 + itemSpriteArrayId, ITEM_IMAGE_TAG + 1 + itemSpriteArrayId, itemId); + if (itemSpriteId != MAX_SPRITES) + { + *spriteId = itemSpriteId; + gSprites[itemSpriteId].pos2.x = 24; + gSprites[itemSpriteId].pos2.y = 88; + } + } +} + +static void sub_81C6FF8(u8 itemSpriteArrayId) +{ + sub_81C6E38(itemSpriteArrayId + 1); +} + +static void sub_81C700C(void) +{ + sub_8122344(&gPyramidBagResources->itemsSpriteIds[3], 8); +} + +static void sub_81C7028(bool8 invisible) +{ + sub_81223FC(&gPyramidBagResources->itemsSpriteIds[3], 8, invisible); +} + +static void sub_81C704C(u8 y) +{ + sub_8122448(&gPyramidBagResources->itemsSpriteIds[3], 8 | 0x80, 120, (y + 1) * 16); +} diff --git a/src/item.c b/src/item.c index 29c2509892..3866d73169 100644 --- a/src/item.c +++ b/src/item.c @@ -10,6 +10,7 @@ #include "item_menu.h" #include "strings.h" #include "load_save.h" +#include "battle_pyramid_bag.h" extern bool8 InBattlePyramid(void); extern u16 gUnknown_0203CF30[]; @@ -965,7 +966,7 @@ bool8 RemovePyramidBagItem(u16 itemId, u16 count) u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode]; - i = gUnknown_0203CF30[3] + gUnknown_0203CF30[4]; + i = gPyramidBagCursorData.cursorPosition + gPyramidBagCursorData.scrollPosition; if (items[i] == itemId && quantities[i] >= count) { quantities[i] -= count; diff --git a/src/item_use.c b/src/item_use.c index 23c829391b..bf7c2a386a 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -33,8 +33,8 @@ #include "pokeblock.h" #include "menu.h" #include "item_menu.h" +#include "battle_pyramid_bag.h" -extern void(**gUnknown_0203CF2C)(void); extern void(*gUnknown_0203A0F4)(u8 taskId); extern void(*gUnknown_085920D8[])(void); extern void (*gUnknown_03006328)(u8, u16, TaskFunc); @@ -122,7 +122,7 @@ void SetUpItemUseCallback(u8 taskId) } else { - *gUnknown_0203CF2C = gUnknown_085920D8[type]; + gPyramidBagResources->callback2 = gUnknown_085920D8[type]; sub_81C5B14(taskId); } } @@ -987,7 +987,7 @@ void sub_80FE54C(u8 taskId) } else { - *gUnknown_0203CF2C = sub_81B89F0; + gPyramidBagResources->callback2 = sub_81B89F0; sub_81C5B14(taskId); } } diff --git a/src/start_menu.c b/src/start_menu.c index 60271317a3..4a58c146ef 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -33,6 +33,7 @@ #include "international_string_util.h" #include "constants/songs.h" #include "field_player_avatar.h" +#include "battle_pyramid_bag.h" // Menu actions enum @@ -73,12 +74,11 @@ EWRAM_DATA static u8 sSaveDialogTimer = 0; EWRAM_DATA static bool8 sSavingComplete = FALSE; EWRAM_DATA static u8 sSaveInfoWindowId = 0; -// Extern variables +// Extern variables. extern u8 gDifferentSaveFile; -extern u16 gSaveFileStatus; extern u8 gUnknown_03005DB4; -// Extern functions in uncompiled files +// Extern functions in not decompiled files. extern void sub_80AF688(void); extern void var_800D_set_xB(void); extern void sub_808B864(void); @@ -89,7 +89,6 @@ extern void CB2_PokeNav(void); extern void sub_80C4DDC(void (*)(void)); extern void sub_80C51C4(void (*)(void)); extern void sub_80C4E74(u8, void (*)(void)); -extern void sub_81C4EFC(void); extern void ScriptUnfreezeEventObjects(void); extern void sub_81A9EC8(void); extern void save_serialize_map(void); @@ -781,7 +780,7 @@ static bool8 StartMenuBattlePyramidBagCallback(void) play_some_sound(); RemoveExtraStartMenuWindows(); overworld_free_bg_tilemaps(); - SetMainCallback2(sub_81C4EFC); // Display battle pyramid bag + SetMainCallback2(CB2_PyramidBagMenuFromStartMenu); return TRUE; } From 43b74032fa981a06e2e66fe5a2d4cf2edaad27c8 Mon Sep 17 00:00:00 2001 From: DizzyEggg <jajkodizzy@wp.pl> Date: Thu, 30 Aug 2018 20:25:57 +0200 Subject: [PATCH 150/174] Make pyramid bag compile. --- src/battle_controller_player.c | 4 +--- src/battle_controller_safari.c | 2 +- src/battle_controller_wally.c | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index ffe8936a09..7f038a0c3f 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -28,7 +28,7 @@ #include "pokeball.h" #include "data2.h" #include "battle_setup.h" -#include "item_use.h" +#include "item_menu.h" #include "recorded_battle.h" #include "party_menu.h" #include "battle_dome.h" @@ -40,7 +40,6 @@ extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; extern struct UnusedControllerStruct gUnknown_02022D0C; extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern struct SpriteTemplate gMultiuseSpriteTemplate; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; @@ -52,7 +51,6 @@ extern void sub_81851A8(u8 *); // this file's functions static void PlayerHandleGetMonData(void); -void PlayerHandleGetRawMonData(void); static void PlayerHandleSetMonData(void); static void PlayerHandleSetRawMonData(void); static void PlayerHandleLoadMonSprite(void); diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index bc97c01f9c..aab804b417 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -21,7 +21,7 @@ #include "pokeball.h" #include "data2.h" #include "pokeblock.h" -#include "item_use.h" +#include "item_menu.h" extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 960181fbc5..4faf78681c 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -29,7 +29,7 @@ #include "data2.h" #include "party_menu.h" #include "battle_setup.h" -#include "item_use.h" +#include "item_menu.h" extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; From 96f2b995dc67d1278bd65b3661426da95503cb5d Mon Sep 17 00:00:00 2001 From: DizzyEggg <jajkodizzy@wp.pl> Date: Thu, 30 Aug 2018 21:28:03 +0200 Subject: [PATCH 151/174] Pyramid bag review changes --- src/battle_pyramid_bag.c | 12 ++++++------ src/item.c | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 9cb35074b7..8a5ce7a99a 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -87,7 +87,7 @@ static u8 sub_81C6D24(u8 windowArrayId); static void sub_81C6D6C(u8 windowArrayId); static void sub_81C5EAC(u8 windowId); static void sub_81C5F08(u8 windowId, u8 horizontalCount, u8 verticalCount); -static bool8 IsAValidMenuAction(s8 arg0); +static bool8 IsValidMenuAction(s8 arg0); static void sub_81C6DAC(u8 taskId, const struct YesNoFuncTable *yesNoTable); static void sub_81C6CEC(u8 windowId); static void sub_81C704C(u8 y); @@ -842,7 +842,7 @@ static void HandleMenuActionInput(u8 taskId) s8 id = GetMenuCursorPos(); if (gMain.newKeys & DPAD_UP) { - if (id > 0 && IsAValidMenuAction(id - 2)) + if (id > 0 && IsValidMenuAction(id - 2)) { PlaySE(SE_SELECT); sub_8199134(0, -1); @@ -850,7 +850,7 @@ static void HandleMenuActionInput(u8 taskId) } else if (gMain.newKeys & DPAD_DOWN) { - if (id < gPyramidBagResources->menuActionsCount - 2 && IsAValidMenuAction(id + 2)) + if (id < gPyramidBagResources->menuActionsCount - 2 && IsValidMenuAction(id + 2)) { PlaySE(SE_SELECT); sub_8199134(0, 1); @@ -858,7 +858,7 @@ static void HandleMenuActionInput(u8 taskId) } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { - if (id & 1 && IsAValidMenuAction(id - 1)) + if (id & 1 && IsValidMenuAction(id - 1)) { PlaySE(SE_SELECT); sub_8199134(-1, 0); @@ -866,7 +866,7 @@ static void HandleMenuActionInput(u8 taskId) } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2) { - if (!(id & 1) && IsAValidMenuAction(id + 1)) + if (!(id & 1) && IsValidMenuAction(id + 1)) { PlaySE(SE_SELECT); sub_8199134(1, 0); @@ -886,7 +886,7 @@ static void HandleMenuActionInput(u8 taskId) } } -static bool8 IsAValidMenuAction(s8 actionTableId) +static bool8 IsValidMenuAction(s8 actionTableId) { if (actionTableId < 0) return FALSE; diff --git a/src/item.c b/src/item.c index 3866d73169..b4a2fd6f07 100644 --- a/src/item.c +++ b/src/item.c @@ -754,7 +754,7 @@ u16 BagGetQuantityByPocketPosition(u8 pocketId, u16 pocketPos) static void SwapItemSlots(struct ItemSlot *a, struct ItemSlot *b) { struct ItemSlot temp; - SWAP(*a, *b, temp); + SWAP(*a, *b, temp); } void CompactItemsInBagPocket(struct BagPocket *bagPocket) From ce949ba70575c2aebac64a04153529875f9b9758 Mon Sep 17 00:00:00 2001 From: DizzyEggg <jajkodizzy@wp.pl> Date: Sat, 1 Sep 2018 18:31:53 +0200 Subject: [PATCH 152/174] document move type variables in pss --- include/contest.h | 1 + src/pokemon_summary_screen.c | 195 ++++++++++++++++++++--------------- 2 files changed, 113 insertions(+), 83 deletions(-) diff --git a/include/contest.h b/include/contest.h index 33080225bc..0a8fa4436e 100644 --- a/include/contest.h +++ b/include/contest.h @@ -8,6 +8,7 @@ enum CONTEST_CATEGORY_CUTE, CONTEST_CATEGORY_SMART, CONTEST_CATEGORY_TOUGH, + CONTEST_CATEGORIES_COUNT, }; enum diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 1afbaab7a7..9648747e71 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -393,7 +393,10 @@ static const u8 gUnknown_0861CE7B[] = _("{COLOR WHITE}{SHADOW DARK_GREY}"); static const u8 gUnknown_0861CE82[] = _("{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}\n{SPECIAL_F7 0x03}"); static const u8 gUnknown_0861CE8E[] = _("{SPECIAL_F7 0x00}\n{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}"); static const u8 gUnknown_0861CE97[] = _("{PP}{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}"); -static const struct OamData gOamData_861CEA0 = + +#define TAG_MOVE_TYPES 30002 + +static const struct OamData sOamData_MoveTypes = { .y = 0, .affineMode = 0, @@ -409,140 +412,166 @@ static const struct OamData gOamData_861CEA0 = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gSpriteAnim_861CEA8[] = { - ANIMCMD_FRAME(0, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeNormal[] = { + ANIMCMD_FRAME(TYPE_NORMAL * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CEB0[] = { - ANIMCMD_FRAME(8, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeFighting[] = { + ANIMCMD_FRAME(TYPE_FIGHTING * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CEB8[] = { - ANIMCMD_FRAME(16, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeFlying[] = { + ANIMCMD_FRAME(TYPE_FLYING * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CEC0[] = { - ANIMCMD_FRAME(24, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypePoison[] = { + ANIMCMD_FRAME(TYPE_POISON * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CEC8[] = { - ANIMCMD_FRAME(32, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeGround[] = { + ANIMCMD_FRAME(TYPE_GROUND * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CED0[] = { - ANIMCMD_FRAME(40, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeRock[] = { + ANIMCMD_FRAME(TYPE_ROCK * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CED8[] = { - ANIMCMD_FRAME(48, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeBug[] = { + ANIMCMD_FRAME(TYPE_BUG * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CEE0[] = { - ANIMCMD_FRAME(56, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeGhost[] = { + ANIMCMD_FRAME(TYPE_GHOST * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CEE8[] = { - ANIMCMD_FRAME(64, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeSteel[] = { + ANIMCMD_FRAME(TYPE_STEEL * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CEF0[] = { - ANIMCMD_FRAME(72, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeMystery[] = { + ANIMCMD_FRAME(TYPE_MYSTERY * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CEF8[] = { - ANIMCMD_FRAME(80, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeFire[] = { + ANIMCMD_FRAME(TYPE_FIRE * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CF00[] = { - ANIMCMD_FRAME(88, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeWater[] = { + ANIMCMD_FRAME(TYPE_WATER * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CF08[] = { - ANIMCMD_FRAME(96, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeGrass[] = { + ANIMCMD_FRAME(TYPE_GRASS * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CF10[] = { - ANIMCMD_FRAME(104, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeElectric[] = { + ANIMCMD_FRAME(TYPE_ELECTRIC * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CF18[] = { - ANIMCMD_FRAME(112, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypePsychic[] = { + ANIMCMD_FRAME(TYPE_PSYCHIC * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CF20[] = { - ANIMCMD_FRAME(120, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeIce[] = { + ANIMCMD_FRAME(TYPE_ICE * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CF28[] = { - ANIMCMD_FRAME(128, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeDragon[] = { + ANIMCMD_FRAME(TYPE_DRAGON * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CF30[] = { - ANIMCMD_FRAME(136, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_TypeDark[] = { + ANIMCMD_FRAME(TYPE_DARK * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CF38[] = { - ANIMCMD_FRAME(144, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_CategoryCool[] = { + ANIMCMD_FRAME((CONTEST_CATEGORY_COOL + NUMBER_OF_MON_TYPES) * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CF40[] = { - ANIMCMD_FRAME(152, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_CategoryBeauty[] = { + ANIMCMD_FRAME((CONTEST_CATEGORY_BEAUTY + NUMBER_OF_MON_TYPES) * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CF48[] = { - ANIMCMD_FRAME(160, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_CategoryCute[] = { + ANIMCMD_FRAME((CONTEST_CATEGORY_CUTE + NUMBER_OF_MON_TYPES) * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CF50[] = { - ANIMCMD_FRAME(168, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_CategorySmart[] = { + ANIMCMD_FRAME((CONTEST_CATEGORY_SMART + NUMBER_OF_MON_TYPES) * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861CF58[] = { - ANIMCMD_FRAME(176, 0, FALSE, FALSE), +static const union AnimCmd sSpriteAnim_CategoryTough[] = { + ANIMCMD_FRAME((CONTEST_CATEGORY_TOUGH + NUMBER_OF_MON_TYPES) * 8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_861CF60[] = { - gSpriteAnim_861CEA8, - gSpriteAnim_861CEB0, - gSpriteAnim_861CEB8, - gSpriteAnim_861CEC0, - gSpriteAnim_861CEC8, - gSpriteAnim_861CED0, - gSpriteAnim_861CED8, - gSpriteAnim_861CEE0, - gSpriteAnim_861CEE8, - gSpriteAnim_861CEF0, - gSpriteAnim_861CEF8, - gSpriteAnim_861CF00, - gSpriteAnim_861CF08, - gSpriteAnim_861CF10, - gSpriteAnim_861CF18, - gSpriteAnim_861CF20, - gSpriteAnim_861CF28, - gSpriteAnim_861CF30, - gSpriteAnim_861CF38, - gSpriteAnim_861CF40, - gSpriteAnim_861CF48, - gSpriteAnim_861CF50, - gSpriteAnim_861CF58, +static const union AnimCmd *const sSpriteAnimTable_MoveTypes[NUMBER_OF_MON_TYPES + CONTEST_CATEGORIES_COUNT] = { + sSpriteAnim_TypeNormal, + sSpriteAnim_TypeFighting, + sSpriteAnim_TypeFlying, + sSpriteAnim_TypePoison, + sSpriteAnim_TypeGround, + sSpriteAnim_TypeRock, + sSpriteAnim_TypeBug, + sSpriteAnim_TypeGhost, + sSpriteAnim_TypeSteel, + sSpriteAnim_TypeMystery, + sSpriteAnim_TypeFire, + sSpriteAnim_TypeWater, + sSpriteAnim_TypeGrass, + sSpriteAnim_TypeElectric, + sSpriteAnim_TypePsychic, + sSpriteAnim_TypeIce, + sSpriteAnim_TypeDragon, + sSpriteAnim_TypeDark, + sSpriteAnim_CategoryCool, + sSpriteAnim_CategoryBeauty, + sSpriteAnim_CategoryCute, + sSpriteAnim_CategorySmart, + sSpriteAnim_CategoryTough, }; -static const struct CompressedSpriteSheet gUnknown_0861CFBC = + +static const struct CompressedSpriteSheet sSpriteSheet_MoveTypes = { .data = gMoveTypes_Gfx, - .size = 0x1700, - .tag = 30002 + .size = (NUMBER_OF_MON_TYPES + CONTEST_CATEGORIES_COUNT) * 0x100, + .tag = TAG_MOVE_TYPES }; -static const struct SpriteTemplate gUnknown_0861CFC4 = +static const struct SpriteTemplate sSpriteTemplate_MoveTypes = { - .tileTag = 30002, - .paletteTag = 30002, - .oam = &gOamData_861CEA0, - .anims = gSpriteAnimTable_861CF60, + .tileTag = TAG_MOVE_TYPES, + .paletteTag = TAG_MOVE_TYPES, + .oam = &sOamData_MoveTypes, + .anims = sSpriteAnimTable_MoveTypes, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const u8 gUnknown_0861CFDC[] = {13, 13, 14, 14, 13, 13, 15, 14, 13, 15, 13, 14, 15, 13, 14, 14, 15, 13, 13, 14, 14, 15, 13}; +static const u8 sMoveTypeToOamPaletteNum[NUMBER_OF_MON_TYPES + CONTEST_CATEGORIES_COUNT] = +{ + [TYPE_NORMAL] = 13, + [TYPE_FIGHTING] = 13, + [TYPE_FLYING] = 14, + [TYPE_POISON] = 14, + [TYPE_GROUND] = 13, + [TYPE_ROCK] = 13, + [TYPE_BUG] = 15, + [TYPE_GHOST] = 14, + [TYPE_STEEL] = 13, + [TYPE_MYSTERY] = 15, + [TYPE_FIRE] = 13, + [TYPE_WATER] = 14, + [TYPE_GRASS] = 15, + [TYPE_ELECTRIC] = 13, + [TYPE_PSYCHIC] = 14, + [TYPE_ICE] = 14, + [TYPE_DRAGON] = 15, + [TYPE_DARK] = 13, + [NUMBER_OF_MON_TYPES + CONTEST_CATEGORY_COOL] = 13, + [NUMBER_OF_MON_TYPES + CONTEST_CATEGORY_BEAUTY] = 14, + [NUMBER_OF_MON_TYPES + CONTEST_CATEGORY_CUTE] = 14, + [NUMBER_OF_MON_TYPES + CONTEST_CATEGORY_SMART] = 15, + [NUMBER_OF_MON_TYPES + CONTEST_CATEGORY_TOUGH] = 13, +}; static const struct OamData gOamData_861CFF4 = { .y = 0, @@ -968,7 +997,7 @@ static bool8 SummaryScreen_DecompressGraphics(void) pssData->unk40F0++; break; case 7: - LoadCompressedObjectPic(&gUnknown_0861CFBC); + LoadCompressedObjectPic(&sSpriteSheet_MoveTypes); pssData->unk40F0++; break; case 8: @@ -3415,7 +3444,7 @@ static void sub_81C42C8(void) for (i = 3; i < 8; i++) { if (pssData->spriteIds[i] == 0xFF) - pssData->spriteIds[i] = CreateSprite(&gUnknown_0861CFC4, 0, 0, 2); + pssData->spriteIds[i] = CreateSprite(&sSpriteTemplate_MoveTypes, 0, 0, 2); sub_81C4204(i, TRUE); } @@ -3425,7 +3454,7 @@ static void SetMoveTypeSpritePosAndType(u8 typeId, u8 x, u8 y, u8 spriteArrayId) { struct Sprite *sprite = &gSprites[pssData->spriteIds[spriteArrayId]]; StartSpriteAnim(sprite, typeId); - sprite->oam.paletteNum = gUnknown_0861CFDC[typeId]; + sprite->oam.paletteNum = sMoveTypeToOamPaletteNum[typeId]; sprite->pos1.x = x + 16; sprite->pos1.y = y + 8; sub_81C4204(spriteArrayId, FALSE); From 38c89b9d0f0c71a2a8dfe2f38473338530a97ab9 Mon Sep 17 00:00:00 2001 From: DizzyEggg <jajkodizzy@wp.pl> Date: Sat, 1 Sep 2018 18:36:08 +0200 Subject: [PATCH 153/174] Bank to battler --- asm/macros/battle_ai_script.inc | 168 +++++++++++++++--------------- asm/macros/battle_anim_script.inc | 40 +++---- include/battle_interface.h | 10 +- include/battle_message.h | 8 +- include/battle_util2.h | 6 +- include/pokeball.h | 6 +- src/berry_blender.c | 12 +-- src/pokemon_animation.c | 6 +- 8 files changed, 128 insertions(+), 128 deletions(-) diff --git a/asm/macros/battle_ai_script.inc b/asm/macros/battle_ai_script.inc index 5e81686bf9..28f60be469 100644 --- a/asm/macros/battle_ai_script.inc +++ b/asm/macros/battle_ai_script.inc @@ -27,86 +27,86 @@ .byte \param0 .endm - .macro if_hp_less_than bank, param1, param2 + .macro if_hp_less_than battler, param1, param2 .byte 0x5 - .byte \bank + .byte \battler .byte \param1 .4byte \param2 .endm - .macro if_hp_more_than bank, param1, param2 + .macro if_hp_more_than battler, param1, param2 .byte 0x6 - .byte \bank + .byte \battler .byte \param1 .4byte \param2 .endm - .macro if_hp_equal bank, param1, param2 + .macro if_hp_equal battler, param1, param2 .byte 0x7 - .byte \bank + .byte \battler .byte \param1 .4byte \param2 .endm - .macro if_hp_not_equal bank, param1, param2 + .macro if_hp_not_equal battler, param1, param2 .byte 0x8 - .byte \bank + .byte \battler .byte \param1 .4byte \param2 .endm - .macro if_status bank, status1, param2 + .macro if_status battler, status1, param2 .byte 0x9 - .byte \bank + .byte \battler .4byte \status1 .4byte \param2 .endm - .macro if_not_status bank, status1, param2 + .macro if_not_status battler, status1, param2 .byte 0xa - .byte \bank + .byte \battler .4byte \status1 .4byte \param2 .endm - .macro if_status2 bank, status2, param2 + .macro if_status2 battler, status2, param2 .byte 0xb - .byte \bank + .byte \battler .4byte \status2 .4byte \param2 .endm - .macro if_not_status2 bank, status2, param2 + .macro if_not_status2 battler, status2, param2 .byte 0xc - .byte \bank + .byte \battler .4byte \status2 .4byte \param2 .endm - .macro if_status3 bank, status3, param2 + .macro if_status3 battler, status3, param2 .byte 0xd - .byte \bank + .byte \battler .4byte \status3 .4byte \param2 .endm - .macro if_not_status3 bank, status3, param2 + .macro if_not_status3 battler, status3, param2 .byte 0xe - .byte \bank + .byte \battler .4byte \status3 .4byte \param2 .endm - .macro if_side_affecting bank, sidestatus, param2 + .macro if_side_affecting battler, sidestatus, param2 .byte 0xf - .byte \bank + .byte \battler .4byte \sidestatus .4byte \param2 .endm - .macro if_not_side_affecting bank, sidestatus, param2 + .macro if_not_side_affecting battler, sidestatus, param2 .byte 0x10 - .byte \bank + .byte \battler .4byte \sidestatus .4byte \param2 .endm @@ -222,9 +222,9 @@ .byte 0x24 .endm - .macro get_last_used_bank_move bank + .macro get_last_used_bank_move battler .byte 0x25 - .byte \bank + .byte \battler .endm .macro if_equal_ param0, param1 @@ -259,9 +259,9 @@ .byte 0x2b .endm - .macro count_usable_party_mons bank + .macro count_usable_party_mons battler .byte 0x2c - .byte \bank + .byte \battler .endm .macro get_considered_move @@ -272,9 +272,9 @@ .byte 0x2e .endm - .macro get_ability bank + .macro get_ability battler .byte 0x2f - .byte \bank + .byte \battler .endm .macro get_highest_type_effectiveness @@ -295,16 +295,16 @@ .byte 0x33 .endm - .macro if_status_in_party bank, status1, param2 + .macro if_status_in_party battler, status1, param2 .byte 0x34 - .byte \bank + .byte \battler .4byte \status1 .4byte \param2 .endm - .macro if_status_not_in_party bank, status1, param2 + .macro if_status_not_in_party battler, status1, param2 .byte 0x35 - .byte \bank + .byte \battler .4byte \status1 .4byte \param2 .endm @@ -325,33 +325,33 @@ .4byte \param1 .endm - .macro if_stat_level_less_than bank, stat, param2, param3 + .macro if_stat_level_less_than battler, stat, param2, param3 .byte 0x39 - .byte \bank + .byte \battler .byte \stat .byte \param2 .4byte \param3 .endm - .macro if_stat_level_more_than bank, stat, param2, param3 + .macro if_stat_level_more_than battler, stat, param2, param3 .byte 0x3a - .byte \bank + .byte \battler .byte \stat .byte \param2 .4byte \param3 .endm - .macro if_stat_level_equal bank, stat, param2, param3 + .macro if_stat_level_equal battler, stat, param2, param3 .byte 0x3b - .byte \bank + .byte \battler .byte \stat .byte \param2 .4byte \param3 .endm - .macro if_stat_level_not_equal bank, stat, param2, param3 + .macro if_stat_level_not_equal battler, stat, param2, param3 .byte 0x3c - .byte \bank + .byte \battler .byte \stat .byte \param2 .4byte \param3 @@ -367,37 +367,37 @@ .4byte \param0 .endm - .macro if_has_move bank, param1, param2 + .macro if_has_move battler, param1, param2 .byte 0x3f - .byte \bank + .byte \battler .2byte \param1 .4byte \param2 .endm - .macro if_doesnt_have_move bank, param1, param2 + .macro if_doesnt_have_move battler, param1, param2 .byte 0x40 - .byte \bank + .byte \battler .2byte \param1 .4byte \param2 .endm - .macro if_has_move_with_effect bank, param1, param2 + .macro if_has_move_with_effect battler, param1, param2 .byte 0x41 - .byte \bank + .byte \battler .byte \param1 .4byte \param2 .endm - .macro if_doesnt_have_move_with_effect bank, param1, param2 + .macro if_doesnt_have_move_with_effect battler, param1, param2 .byte 0x42 - .byte \bank + .byte \battler .byte \param1 .4byte \param2 .endm - .macro if_any_move_disabled_or_encored bank, param1, param2 + .macro if_any_move_disabled_or_encored battler, param1, param2 .byte 0x43 - .byte \bank + .byte \battler .byte \param1 .4byte \param2 .endm @@ -421,33 +421,33 @@ .byte 0x47 .endm - .macro get_hold_effect bank + .macro get_hold_effect battler .byte 0x48 - .byte \bank + .byte \battler .endm - .macro get_gender bank + .macro get_gender battler .byte 0x49 - .byte \bank + .byte \battler .endm - .macro is_first_turn_for bank + .macro is_first_turn_for battler .byte 0x4a - .byte \bank + .byte \battler .endm - .macro get_stockpile_count bank + .macro get_stockpile_count battler .byte 0x4b - .byte \bank + .byte \battler .endm .macro is_double_battle .byte 0x4c .endm - .macro get_used_held_item bank + .macro get_used_held_item battler .byte 0x4d - .byte \bank + .byte \battler .endm .macro get_move_type_from_result @@ -462,9 +462,9 @@ .byte 0x50 .endm - .macro get_protect_count bank + .macro get_protect_count battler .byte 0x51 - .byte \bank + .byte \battler .endm .macro nullsub_52 @@ -526,27 +526,27 @@ .4byte \param0 .endm - .macro is_of_type bank, type + .macro is_of_type battler, type .byte 0x5f - .byte \bank + .byte \battler .byte \type .endm - .macro check_ability bank, ability + .macro check_ability battler, ability .byte 0x60 - .byte \bank + .byte \battler .byte \ability .endm - .macro if_flash_fired bank, param1 + .macro if_flash_fired battler, param1 .byte 0x61 - .byte \bank + .byte \battler .4byte \param1 .endm - .macro if_holds_item bank, param1, param2 + .macro if_holds_item battler, param1, param2 .byte 0x62 - .byte \bank + .byte \battler .2byte \param1 .4byte \param2 .endm @@ -572,23 +572,23 @@ get_type AI_TYPE2_TARGET .endm - .macro if_ability bank, ability, ptr - check_ability \bank, \ability + .macro if_ability battler, ability, ptr + check_ability \battler, \ability if_equal 1, \ptr .endm - .macro if_no_ability bank, ability, ptr - check_ability \bank, \ability + .macro if_no_ability battler, ability, ptr + check_ability \battler, \ability if_equal 0, \ptr .endm - .macro if_type bank, type, ptr - is_of_type \bank, \type + .macro if_type battler, type, ptr + is_of_type \battler, \type if_equal 1, \ptr .endm - .macro if_no_type bank, type, ptr - is_of_type \bank, \type + .macro if_no_type battler, type, ptr + is_of_type \battler, \type if_equal 0, \ptr .endm @@ -610,10 +610,10 @@ if_equal 0, \ptr .endm - .macro if_any_move_disabled bank, ptr - if_any_move_disabled_or_encored \bank, 0, \ptr + .macro if_any_move_disabled battler, ptr + if_any_move_disabled_or_encored \battler, 0, \ptr .endm - .macro if_any_move_encored bank, ptr - if_any_move_disabled_or_encored \bank, 1, \ptr + .macro if_any_move_encored battler, ptr + if_any_move_disabled_or_encored \battler, 1, \ptr .endm diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc index b26d1218d6..d1a8f66564 100644 --- a/asm/macros/battle_anim_script.inc +++ b/asm/macros/battle_anim_script.inc @@ -56,14 +56,14 @@ .2byte \param0 .endm - .macro monbg bank + .macro monbg battler .byte 0xa - .byte \bank + .byte \battler .endm - .macro clearmonbg bank + .macro clearmonbg battler .byte 0xb - .byte \bank + .byte \battler .endm .macro setalpha param0 @@ -189,14 +189,14 @@ .4byte \param2 .endm - .macro monbg_22 bank + .macro monbg_22 battler .byte 0x22 - .byte \bank + .byte \battler .endm - .macro clearmonbg_23 bank + .macro clearmonbg_23 battler .byte 0x23 - .byte \bank + .byte \battler .endm .macro jumpifcontest param0 @@ -229,38 +229,38 @@ .byte \param4 .endm - .macro monbgprio_28 bank + .macro monbgprio_28 battler .byte 0x28 - .byte \bank + .byte \battler .endm .macro monbgprio_29 .byte 0x29 .endm - .macro monbgprio_2A bank + .macro monbgprio_2A battler .byte 0x2a - .byte \bank + .byte \battler .endm - .macro invisible bank + .macro invisible battler .byte 0x2b - .byte \bank + .byte \battler .endm - .macro visible bank + .macro visible battler .byte 0x2c - .byte \bank + .byte \battler .endm - .macro doublebattle_2D bank + .macro doublebattle_2D battler .byte 0x2d - .byte \bank + .byte \battler .endm - .macro doublebattle_2E bank + .macro doublebattle_2E battler .byte 0x2e - .byte \bank + .byte \battler .endm .macro stopsound diff --git a/include/battle_interface.h b/include/battle_interface.h index 2d93811f18..3145939d0c 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -60,21 +60,21 @@ enum HEALTHBOX_SAFARI_BALLS_TEXT }; -u8 CreateBattlerHealthboxSprites(u8 bank); +u8 CreateBattlerHealthboxSprites(u8 battler); u8 CreateSafariPlayerHealthboxSprites(void); -void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue); +void SetBattleBarStruct(u8 battler, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue); void SetHealthboxSpriteInvisible(u8 healthboxSpriteId); void SetHealthboxSpriteVisible(u8 healthboxSpriteId); void DestoryHealthboxSprite(u8 healthboxSpriteId); void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly); void UpdateOamPriorityInAllHealthboxes(u8 priority); -void InitBattlerHealthboxCoords(u8 bank); +void InitBattlerHealthboxCoords(u8 battler); void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent); void SwapHpBarsWithHpText(void); -u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart); +u8 CreatePartyStatusSummarySprites(u8 battler, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart); void Task_HidePartyStatusSummary(u8 taskId); void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId); -s32 MoveBattleBar(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3); +s32 MoveBattleBar(u8 battler, u8 healthboxSpriteId, u8 whichBar, u8 arg3); u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale); u8 GetHPBarLevel(s16 hp, s16 maxhp); diff --git a/include/battle_message.h b/include/battle_message.h index c686072469..94f584935c 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -177,20 +177,20 @@ textVar[4] = B_BUFF_EOS; \ } -#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, bank, partyId) \ +#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, battler, partyId) \ { \ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ textVar[1] = B_BUFF_MON_NICK_WITH_PREFIX; \ - textVar[2] = bank; \ + textVar[2] = battler; \ textVar[3] = partyId; \ textVar[4] = B_BUFF_EOS; \ } -#define PREPARE_MON_NICK_BUFFER(textVar, bank, partyId) \ +#define PREPARE_MON_NICK_BUFFER(textVar, battler, partyId) \ { \ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ textVar[1] = B_BUFF_MON_NICK; \ - textVar[2] = bank; \ + textVar[2] = battler; \ textVar[3] = partyId; \ textVar[4] = B_BUFF_EOS; \ } diff --git a/include/battle_util2.h b/include/battle_util2.h index 3954e42dc9..336698ea32 100644 --- a/include/battle_util2.h +++ b/include/battle_util2.h @@ -3,8 +3,8 @@ void AllocateBattleResources(void); void FreeBattleResources(void); -void AdjustFriendshipOnBattleFaint(u8 bank); -void sub_80571DC(u8 bank, u8 arg1); -u32 sub_805725C(u8 bank); +void AdjustFriendshipOnBattleFaint(u8 battler); +void sub_80571DC(u8 battler, u8 arg1); +u32 sub_805725C(u8 battler); #endif // GUARD_BATTLE_UTIL_H diff --git a/include/pokeball.h b/include/pokeball.h index 30a1d8b11e..8e1d8b8ecb 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -24,10 +24,10 @@ extern const struct SpriteTemplate gBallSpriteTemplates[]; #define POKEBALL_OPPONENT_SENDOUT 0xFE u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow); -void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h, u16 species); +void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 battler, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h, u16 species); u8 sub_807671C(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h); -void sub_8076918(u8 bank); -void DoHitAnimHealthboxEffect(u8 bank); +void sub_8076918(u8 battler); +void DoHitAnimHealthboxEffect(u8 battler); void LoadBallGfx(u8 ballId); void FreeBallGfx(u8 ballId); diff --git a/src/berry_blender.c b/src/berry_blender.c index 46b0f76ada..1fd6d1cddb 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -188,7 +188,7 @@ static bool8 sub_8083380(void); static void sub_808074C(void); static void Blender_PrintPlayerNames(void); static void sub_8080588(void); -static void Blender_SetBankBerryData(u8 bank, u16 itemId); +static void Blender_SetParticipantBerryData(u8 participantId, u16 itemId); static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s32 speed, s32 caseId); static void sub_8080DF8(void); static void sub_8082E84(void); @@ -1391,7 +1391,7 @@ static void Blender_SetOpponentsBerryData(u16 playerBerryItemId, u8 playersNum, if (var <= 4) opponentBerryId -= 5; } - Blender_SetBankBerryData(i + 1, opponentBerryId + FIRST_BERRY_INDEX); + Blender_SetParticipantBerryData(i + 1, opponentBerryId + FIRST_BERRY_INDEX); } } @@ -1454,7 +1454,7 @@ static void sub_80808D4(void) case 0: sub_800B4C0(); sub_8080588(); - Blender_SetBankBerryData(0, gSpecialVar_ItemId); + Blender_SetParticipantBerryData(0, gSpecialVar_ItemId); Blender_CopyBerryData(&sBerryBlenderData->blendedBerries[0], gSpecialVar_ItemId); Blender_SetOpponentsBerryData(gSpecialVar_ItemId, sBerryBlenderData->playersNo, &sBerryBlenderData->blendedBerries[0]); @@ -2956,10 +2956,10 @@ static void sub_8082F9C(struct Sprite* sprite) DestroySprite(sprite); } -static void Blender_SetBankBerryData(u8 bank, u16 itemId) +static void Blender_SetParticipantBerryData(u8 participantId, u16 itemId) { - sBerryBlenderData->chosenItemId[bank] = itemId; - Blender_CopyBerryData(&sBerryBlenderData->blendedBerries[bank], itemId); + sBerryBlenderData->chosenItemId[participantId] = itemId; + Blender_CopyBerryData(&sBerryBlenderData->blendedBerries[participantId], itemId); } static void sub_8083010(struct Sprite* sprite) diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index c50aa4a757..9c307f7f87 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -938,14 +938,14 @@ void StartMonSummaryAnimation(struct Sprite *sprite, u8 frontAnimId) void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet) { - u8 nature, taskId, animId, bank; + u8 nature, taskId, animId, battlerId; taskId = CreateTask(Task_HandleMonAnimation, 128); gTasks[taskId].tPtrLO = (u32)(sprite) >> 0x10; gTasks[taskId].tPtrHI = (u32)(sprite); - bank = sprite->data[0]; - nature = GetNature(&gPlayerParty[gBattlerPartyIndexes[bank]]); + battlerId = sprite->data[0]; + nature = GetNature(&gPlayerParty[gBattlerPartyIndexes[battlerId]]); animId = 3 * backAnimSet + sBackAnimNatureModTable[nature]; gTasks[taskId].tAnimId = sBackAnimationIds[animId]; From ead21250a6e1ef3ebb4f7e69fd22dcb09be31ef8 Mon Sep 17 00:00:00 2001 From: DizzyEggg <jajkodizzy@wp.pl> Date: Sat, 1 Sep 2018 19:05:06 +0200 Subject: [PATCH 154/174] Label all battle ai scripts --- data/battle_ai_scripts.s | 176 +++++++++++++++++----------------- include/constants/battle_ai.h | 4 +- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 2db1c5728e..c227391ca1 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -13,8 +13,8 @@ .align 2 gBattleAI_ScriptsTable:: @ 82DBEF8 .4byte AI_CheckBadMove - .4byte AI_CheckViability .4byte AI_TryToFaint + .4byte AI_CheckViability .4byte AI_SetupFirstTurn .4byte AI_Risky .4byte AI_PreferStrongestMove @@ -47,12 +47,12 @@ gBattleAI_ScriptsTable:: @ 82DBEF8 AI_CheckBadMove: if_target_is_ally AI_Ret - if_move MOVE_FISSURE, BattleAIScript_82DBF92 - if_move MOVE_HORN_DRILL, BattleAIScript_82DBF92 + if_move MOVE_FISSURE, AI_CBM_CheckIfNegatesType + if_move MOVE_HORN_DRILL, AI_CBM_CheckIfNegatesType get_how_powerful_move_is if_equal 0, AI_CheckBadMove_CheckSoundproof -BattleAIScript_82DBF92: @ 82DBF92 +AI_CBM_CheckIfNegatesType: @ 82DBF92 if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_VOLT_ABSORB, CheckIfVoltAbsorbCancelsElectric @@ -60,32 +60,32 @@ BattleAIScript_82DBF92: @ 82DBF92 if_equal ABILITY_FLASH_FIRE, CheckIfFlashFireCancelsFire if_equal ABILITY_WONDER_GUARD, CheckIfWonderGuardCancelsMove if_equal ABILITY_LEVITATE, CheckIfLevitateCancelsGroundMove - goto BattleAIScript_82DBFF7 + goto AI_CheckBadMove_CheckSoundproof_ CheckIfVoltAbsorbCancelsElectric: @ 82DBFBD get_curr_move_type if_equal_ TYPE_ELECTRIC, Score_Minus12 - goto BattleAIScript_82DBFF7 + goto AI_CheckBadMove_CheckSoundproof_ CheckIfWaterAbsorbCancelsWater: @ 82DBFCA get_curr_move_type if_equal_ TYPE_WATER, Score_Minus12 - goto BattleAIScript_82DBFF7 + goto AI_CheckBadMove_CheckSoundproof_ CheckIfFlashFireCancelsFire: @ 82DBFD7 get_curr_move_type if_equal_ TYPE_FIRE, Score_Minus12 - goto BattleAIScript_82DBFF7 + goto AI_CheckBadMove_CheckSoundproof_ CheckIfWonderGuardCancelsMove: @ 82DBFE4 - if_type_effectiveness AI_EFFECTIVENESS_x2, BattleAIScript_82DBFF7 + if_type_effectiveness AI_EFFECTIVENESS_x2, AI_CheckBadMove_CheckSoundproof_ goto Score_Minus10 CheckIfLevitateCancelsGroundMove: @ 82DBFEF get_curr_move_type if_equal_ TYPE_GROUND, Score_Minus10 -BattleAIScript_82DBFF7: @ 82DBFF7 +AI_CheckBadMove_CheckSoundproof_: @ 82DBFF7 get_how_powerful_move_is if_equal 0, AI_CheckBadMove_CheckSoundproof @@ -654,7 +654,7 @@ Score_Plus10: score +10 end -AI_TryToFaint: +AI_CheckViability: if_target_is_ally AI_Ret if_effect EFFECT_SLEEP, AI_CV_Sleep if_effect EFFECT_ABSORB, AI_CV_Absorb @@ -707,7 +707,7 @@ AI_TryToFaint: if_effect EFFECT_REFLECT, AI_CV_Reflect if_effect EFFECT_POISON, AI_CV_Poison if_effect EFFECT_PARALYZE, AI_CV_Paralyze - if_effect EFFECT_SWAGGER, BattleAIScript_82DD286 + if_effect EFFECT_SWAGGER, AI_CV_Swagger if_effect EFFECT_SPEED_DOWN_HIT, AI_CV_SpeedDownFromChance if_effect EFFECT_SKY_ATTACK, AI_CV_ChargeUpMove if_effect EFFECT_VITAL_THROW, AI_CV_VitalThrow @@ -1547,8 +1547,8 @@ AI_CV_HighCrit2: AI_CV_HighCrit_End: end -BattleAIScript_82DD286: - if_has_move AI_USER, MOVE_PSYCH_UP, BattleAIScript_82DD2B8 +AI_CV_Swagger: + if_has_move AI_USER, MOVE_PSYCH_UP, AI_CV_SwaggerHasPsychUp AI_CV_Flatter: if_random_less_than 128, AI_CV_Confuse @@ -1568,18 +1568,18 @@ AI_CV_Confuse2: AI_CV_Confuse_End: end -BattleAIScript_82DD2B8: - if_stat_level_more_than AI_TARGET, STAT_ATK, 3, BattleAIScript_82DD2D0 +AI_CV_SwaggerHasPsychUp: + if_stat_level_more_than AI_TARGET, STAT_ATK, 3, AI_CV_SwaggerHasPsychUp_Minus5 score +3 get_turn_count - if_not_equal 0, BattleAIScript_82DD2D2 + if_not_equal 0, AI_CV_SwaggerHasPsychUp_End score +2 - goto BattleAIScript_82DD2D2 + goto AI_CV_SwaggerHasPsychUp_End -BattleAIScript_82DD2D0: +AI_CV_SwaggerHasPsychUp_Minus5: score -5 -BattleAIScript_82DD2D2: +AI_CV_SwaggerHasPsychUp_End: end AI_CV_Reflect: @@ -1735,7 +1735,7 @@ AI_CV_Counter2: score -1 AI_CV_Counter3: - if_has_move AI_USER, MOVE_MIRROR_COAT, BattleAIScript_82DD4CD + if_has_move AI_USER, MOVE_MIRROR_COAT, AI_CV_Counter7 get_last_used_bank_move AI_TARGET get_move_power_from_result if_equal 0, AI_CV_Counter5 @@ -1763,11 +1763,11 @@ AI_CV_Counter6: if_in_bytes AI_CV_Counter_PhysicalTypeList, AI_CV_Counter_End if_random_less_than 50, AI_CV_Counter_End -BattleAIScript_82DD4CD: - if_random_less_than 100, BattleAIScript_82DD4D5 +AI_CV_Counter7: + if_random_less_than 100, AI_CV_Counter8 score +4 -BattleAIScript_82DD4D5: +AI_CV_Counter8: end AI_CV_Counter_ScoreDown1: @@ -2756,15 +2756,15 @@ AI_CV_DragonDance2: AI_CV_DragonDance_End: end -AI_CheckViability: +AI_TryToFaint: if_target_is_ally AI_Ret if_can_faint AI_TryToFaint_TryToEncourageQuickAttack get_how_powerful_move_is - if_equal 1, Score_Minus1 - if_type_effectiveness AI_EFFECTIVENESS_x4, BattleAIScript_82DDE57 + if_equal MOVE_NOT_MOST_POWERFUL, Score_Minus1 + if_type_effectiveness AI_EFFECTIVENESS_x4, AI_TryToFaint_DoubleSuperEffective end -BattleAIScript_82DDE57: +AI_TryToFaint_DoubleSuperEffective: if_random_less_than 80, AI_TryToFaint_End score +2 end @@ -2895,9 +2895,9 @@ AI_Risky_EffectsToEncourage: AI_PreferBatonPass: if_target_is_ally AI_Ret count_usable_party_mons AI_USER - if_equal 0, BattleAIScript_82DDFB3 + if_equal 0, AI_PreferBatonPassEnd get_how_powerful_move_is - if_not_equal 0, BattleAIScript_82DDFB3 + if_not_equal 0, AI_PreferBatonPassEnd if_has_move_with_effect AI_USER, EFFECT_BATON_PASS, AI_PreferBatonPass_GoForBatonPass if_random_less_than 80, AI_Risky_End @@ -2906,7 +2906,7 @@ AI_PreferBatonPass_GoForBatonPass: if_move MOVE_DRAGON_DANCE, AI_PreferBatonPass2 if_move MOVE_CALM_MIND, AI_PreferBatonPass2 if_effect EFFECT_PROTECT, AI_PreferBatonPass_End - if_move MOVE_BATON_PASS, BattleAIScript_82DDF7B + if_move MOVE_BATON_PASS, AI_PreferBatonPass_EncourageIfHighStats if_random_less_than 20, AI_Risky_End score +3 @@ -2918,16 +2918,16 @@ AI_PreferBatonPass2: AI_PreferBatonPass_End: get_last_used_bank_move AI_USER - if_in_hwords sMovesTable_82DDF75, Score_Minus2 + if_in_hwords sMovesTable_ProtectMoves, Score_Minus2 score +2 end -sMovesTable_82DDF75: +sMovesTable_ProtectMoves: .2byte MOVE_PROTECT .2byte MOVE_DETECT .2byte -1 -BattleAIScript_82DDF7B: +AI_PreferBatonPass_EncourageIfHighStats: get_turn_count if_equal 0, Score_Minus2 if_stat_level_more_than AI_USER, STAT_ATK, 8, Score_Plus3 @@ -2938,39 +2938,39 @@ BattleAIScript_82DDF7B: if_stat_level_more_than AI_USER, STAT_SPATK, 6, Score_Plus1 end -BattleAIScript_82DDFB3: +AI_PreferBatonPassEnd: end AI_DoubleBattle: if_target_is_ally AI_TryOnAlly - if_move MOVE_SKILL_SWAP, BattleAIScript_82DE04B + if_move MOVE_SKILL_SWAP, AI_DoubleBattleSkillSwap get_curr_move_type - if_move MOVE_EARTHQUAKE, BattleAIScript_82DE010 - if_move MOVE_MAGNITUDE, BattleAIScript_82DE010 - if_equal 13, BattleAIScript_82DE062 - if_equal 10, BattleAIScript_82DE079 + if_move MOVE_EARTHQUAKE, AI_DoubleBattleAllHittingGroundMove + if_move MOVE_MAGNITUDE, AI_DoubleBattleAllHittingGroundMove + if_equal TYPE_ELECTRIC, AI_DoubleBattleElectricMove + if_equal TYPE_FIRE, AI_DoubleBattleFireMove get_ability AI_USER - if_not_equal ABILITY_GUTS, BattleAIScript_82DDFF5 - if_has_move AI_USER_PARTNER, MOVE_HELPING_HAND, BattleAIScript_82DDFED + if_not_equal ABILITY_GUTS, AI_DoubleBattleCheckUserStatus + if_has_move AI_USER_PARTNER, MOVE_HELPING_HAND, AI_DoubleBattlePartnerHasHelpingHand end -BattleAIScript_82DDFED: +AI_DoubleBattlePartnerHasHelpingHand: get_how_powerful_move_is if_not_equal 0, Score_Plus1 end -BattleAIScript_82DDFF5: - if_status AI_USER, STATUS1_ANY, BattleAIScript_82DE000 +AI_DoubleBattleCheckUserStatus: + if_status AI_USER, STATUS1_ANY, AI_DoubleBattleCheckUserStatus2 end -BattleAIScript_82DE000: +AI_DoubleBattleCheckUserStatus2: get_how_powerful_move_is - if_equal 0, Score_Minus5 + if_equal MOVE_POWER_DISCOURAGED, Score_Minus5 score +1 - if_equal 2, Score_Plus2 + if_equal MOVE_MOST_POWERFUL, Score_Plus2 end -BattleAIScript_82DE010: +AI_DoubleBattleAllHittingGroundMove: if_ability AI_USER_PARTNER, ABILITY_LEVITATE, Score_Plus2 if_type AI_USER_PARTNER, TYPE_FLYING, Score_Plus2 if_type AI_USER_PARTNER, TYPE_FIRE, Score_Minus10 @@ -2979,7 +2979,7 @@ BattleAIScript_82DE010: if_type AI_USER_PARTNER, TYPE_ROCK, Score_Minus10 goto Score_Minus3 -BattleAIScript_82DE04B: +AI_DoubleBattleSkillSwap: get_ability AI_USER if_equal ABILITY_TRUANT, Score_Plus5 get_ability AI_TARGET @@ -2987,96 +2987,96 @@ BattleAIScript_82DE04B: if_equal ABILITY_PURE_POWER, Score_Plus2 end -BattleAIScript_82DE062: - if_no_ability AI_TARGET_PARTNER, ABILITY_LIGHTNING_ROD, BattleAIScript_82DE078 +AI_DoubleBattleElectricMove: + if_no_ability AI_TARGET_PARTNER, ABILITY_LIGHTNING_ROD, AI_DoubleBattleElectricMoveEnd score -2 - if_no_type AI_TARGET_PARTNER, TYPE_GROUND, BattleAIScript_82DE078 + if_no_type AI_TARGET_PARTNER, TYPE_GROUND, AI_DoubleBattleElectricMoveEnd score -8 -BattleAIScript_82DE078: +AI_DoubleBattleElectricMoveEnd: end -BattleAIScript_82DE079: - if_flash_fired AI_USER, BattleAIScript_82DE080 +AI_DoubleBattleFireMove: + if_flash_fired AI_USER, AI_DoubleBattleFireMove2 end -BattleAIScript_82DE080: +AI_DoubleBattleFireMove2: goto Score_Plus1 AI_TryOnAlly: get_how_powerful_move_is - if_equal 0, BattleAIScript_82DE0B2 + if_equal 0, AI_TryStatusMoveOnAlly get_curr_move_type - if_equal TYPE_FIRE, BattleAIScript_82DE099 + if_equal TYPE_FIRE, AI_TryFireMoveOnAlly AI_DiscourageOnAlly: goto Score_Minus30 -BattleAIScript_82DE099: - if_ability AI_USER_PARTNER, ABILITY_FLASH_FIRE, BattleAIScript_82DE0A7 +AI_TryFireMoveOnAlly: + if_ability AI_USER_PARTNER, ABILITY_FLASH_FIRE, AI_TryFireMoveOnAlly_FlashFire goto AI_DiscourageOnAlly -BattleAIScript_82DE0A7: +AI_TryFireMoveOnAlly_FlashFire: if_flash_fired AI_USER_PARTNER, AI_DiscourageOnAlly goto Score_Plus3 -BattleAIScript_82DE0B2: - if_move MOVE_SKILL_SWAP, BattleAIScript_82DE0DA - if_move MOVE_WILL_O_WISP, BattleAIScript_82DE14F - if_move MOVE_TOXIC, BattleAIScript_82DE14F - if_move MOVE_HELPING_HAND, BattleAIScript_82DE16D - if_move MOVE_SWAGGER, BattleAIScript_82DE178 +AI_TryStatusMoveOnAlly: + if_move MOVE_SKILL_SWAP, AI_TrySkillSwapOnAlly + if_move MOVE_WILL_O_WISP, AI_TryStatusOnAlly + if_move MOVE_TOXIC, AI_TryStatusOnAlly + if_move MOVE_HELPING_HAND, AI_TryHelpingHandOnAlly + if_move MOVE_SWAGGER, AI_TrySwaggerOnAlly goto Score_Minus30_ -BattleAIScript_82DE0DA: +AI_TrySkillSwapOnAlly: get_ability AI_TARGET if_equal ABILITY_TRUANT, Score_Plus10 get_ability AI_USER - if_not_equal ABILITY_LEVITATE, BattleAIScript_82DE107 + if_not_equal ABILITY_LEVITATE, AI_TrySkillSwapOnAlly2 get_ability AI_TARGET if_equal ABILITY_LEVITATE, Score_Minus30_ get_target_type1 - if_not_equal TYPE_ELECTRIC, BattleAIScript_82DE107 + if_not_equal TYPE_ELECTRIC, AI_TrySkillSwapOnAlly2 score +1 get_target_type2 - if_not_equal TYPE_ELECTRIC, BattleAIScript_82DE107 + if_not_equal TYPE_ELECTRIC, AI_TrySkillSwapOnAlly2 score +1 end -BattleAIScript_82DE107: +AI_TrySkillSwapOnAlly2: if_not_equal 14, Score_Minus30_ - if_has_move AI_USER_PARTNER, MOVE_FIRE_BLAST, BattleAIScript_82DE14A - if_has_move AI_USER_PARTNER, MOVE_THUNDER, BattleAIScript_82DE14A - if_has_move AI_USER_PARTNER, MOVE_CROSS_CHOP, BattleAIScript_82DE14A - if_has_move AI_USER_PARTNER, MOVE_HYDRO_PUMP, BattleAIScript_82DE14A - if_has_move AI_USER_PARTNER, MOVE_DYNAMIC_PUNCH, BattleAIScript_82DE14A - if_has_move AI_USER_PARTNER, MOVE_BLIZZARD, BattleAIScript_82DE14A - if_has_move AI_USER_PARTNER, MOVE_MEGAHORN, BattleAIScript_82DE14A + if_has_move AI_USER_PARTNER, MOVE_FIRE_BLAST, AI_TrySkillSwapOnAllyEnd + if_has_move AI_USER_PARTNER, MOVE_THUNDER, AI_TrySkillSwapOnAllyEnd + if_has_move AI_USER_PARTNER, MOVE_CROSS_CHOP, AI_TrySkillSwapOnAllyEnd + if_has_move AI_USER_PARTNER, MOVE_HYDRO_PUMP, AI_TrySkillSwapOnAllyEnd + if_has_move AI_USER_PARTNER, MOVE_DYNAMIC_PUNCH, AI_TrySkillSwapOnAllyEnd + if_has_move AI_USER_PARTNER, MOVE_BLIZZARD, AI_TrySkillSwapOnAllyEnd + if_has_move AI_USER_PARTNER, MOVE_MEGAHORN, AI_TrySkillSwapOnAllyEnd goto Score_Minus30_ -BattleAIScript_82DE14A: +AI_TrySkillSwapOnAllyEnd: goto Score_Plus3 -BattleAIScript_82DE14F: +AI_TryStatusOnAlly: get_ability AI_TARGET if_not_equal ABILITY_GUTS, Score_Minus30_ if_status AI_TARGET, STATUS1_ANY, Score_Minus30_ if_hp_less_than AI_USER, 91, Score_Minus30_ goto Score_Plus5 -BattleAIScript_82DE16D: +AI_TryHelpingHandOnAlly: if_random_less_than 64, Score_Minus1 goto Score_Plus2 -BattleAIScript_82DE178: - if_holds_item AI_TARGET, ITEM_PERSIM_BERRY, BattleAIScript_82DE185 +AI_TrySwaggerOnAlly: + if_holds_item AI_TARGET, ITEM_PERSIM_BERRY, AI_TrySwaggerOnAlly2 goto Score_Minus30_ -BattleAIScript_82DE185: - if_stat_level_more_than AI_TARGET, STAT_ATK, 7, BattleAIScript_82DE18F +AI_TrySwaggerOnAlly2: + if_stat_level_more_than AI_TARGET, STAT_ATK, 7, AI_TrySwaggerOnAlly_End score +3 -BattleAIScript_82DE18F: +AI_TrySwaggerOnAlly_End: end Score_Minus30_: diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index 7d2c70307d..4c3a45dc6c 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -35,8 +35,8 @@ // script's table id to bit #define AI_SCRIPT_CHECK_BAD_MOVE (1 << 0) -#define AI_SCRIPT_CHECK_VIABILITY (1 << 1) -#define AI_SCRIPT_TRY_TO_FAINT (1 << 2) +#define AI_SCRIPT_TRY_TO_FAINT (1 << 1) +#define AI_SCRIPT_CHECK_VIABILITY (1 << 2) #define AI_SCRIPT_SETUP_FIRST_TURN (1 << 3) #define AI_SCRIPT_RISKY (1 << 4) #define AI_SCRIPT_PREFER_STRONGEST_MOVE (1 << 5) From 44ba432dadc1d370cf02d4e6d64dbb55afdc3e0f Mon Sep 17 00:00:00 2001 From: DizzyEggg <jajkodizzy@wp.pl> Date: Sat, 1 Sep 2018 20:00:13 +0200 Subject: [PATCH 155/174] Label various battle scripts --- data/battle_ai_scripts.s | 18 +++--- data/battle_scripts_1.s | 106 +++++++++++++++++------------------ include/battle_scripts.h | 79 +++----------------------- include/battle_util.h | 4 +- include/constants/battle.h | 2 +- src/battle_main.c | 2 +- src/battle_script_commands.c | 94 ++++++++++++++++++------------- src/battle_util.c | 22 ++++---- 8 files changed, 140 insertions(+), 187 deletions(-) diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index c227391ca1..8f3cfb6571 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -3044,17 +3044,17 @@ AI_TrySkillSwapOnAlly: end AI_TrySkillSwapOnAlly2: - if_not_equal 14, Score_Minus30_ - if_has_move AI_USER_PARTNER, MOVE_FIRE_BLAST, AI_TrySkillSwapOnAllyEnd - if_has_move AI_USER_PARTNER, MOVE_THUNDER, AI_TrySkillSwapOnAllyEnd - if_has_move AI_USER_PARTNER, MOVE_CROSS_CHOP, AI_TrySkillSwapOnAllyEnd - if_has_move AI_USER_PARTNER, MOVE_HYDRO_PUMP, AI_TrySkillSwapOnAllyEnd - if_has_move AI_USER_PARTNER, MOVE_DYNAMIC_PUNCH, AI_TrySkillSwapOnAllyEnd - if_has_move AI_USER_PARTNER, MOVE_BLIZZARD, AI_TrySkillSwapOnAllyEnd - if_has_move AI_USER_PARTNER, MOVE_MEGAHORN, AI_TrySkillSwapOnAllyEnd + if_not_equal ABILITY_COMPOUND_EYES, Score_Minus30_ + if_has_move AI_USER_PARTNER, MOVE_FIRE_BLAST, AI_TrySkillSwapOnAllyPlus3 + if_has_move AI_USER_PARTNER, MOVE_THUNDER, AI_TrySkillSwapOnAllyPlus3 + if_has_move AI_USER_PARTNER, MOVE_CROSS_CHOP, AI_TrySkillSwapOnAllyPlus3 + if_has_move AI_USER_PARTNER, MOVE_HYDRO_PUMP, AI_TrySkillSwapOnAllyPlus3 + if_has_move AI_USER_PARTNER, MOVE_DYNAMIC_PUNCH, AI_TrySkillSwapOnAllyPlus3 + if_has_move AI_USER_PARTNER, MOVE_BLIZZARD, AI_TrySkillSwapOnAllyPlus3 + if_has_move AI_USER_PARTNER, MOVE_MEGAHORN, AI_TrySkillSwapOnAllyPlus3 goto Score_Minus30_ -AI_TrySkillSwapOnAllyEnd: +AI_TrySkillSwapOnAllyPlus3: goto Score_Plus3 AI_TryStatusOnAlly: diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 2125fc47ef..fec030bb5c 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -399,19 +399,19 @@ BattleScript_EffectExplosion:: faintifabilitynotdamp setatkhptozero waitstate - jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_82D8B94 - call BattleScript_82D8BEA - goto BattleScript_82D8B96 -BattleScript_82D8B94:: + jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop + call BattleScript_PreserveMissedBitDoMoveAnim + goto BattleScript_ExplosionLoop +BattleScript_ExplosionDoAnimStartLoop: attackanimation waitanimation -BattleScript_82D8B96:: +BattleScript_ExplosionLoop: movevaluescleanup critcalc damagecalc typecalc adjustnormaldamage - accuracycheck BattleScript_82D8BCF, ACC_CURR_MOVE + accuracycheck BattleScript_ExplosionMissed, ACC_CURR_MOVE effectivenesssound hitanimation BS_TARGET waitstate @@ -424,20 +424,20 @@ BattleScript_82D8B96:: tryfaintmon BS_TARGET, FALSE, NULL setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 - jumpifnexttargetvalid BattleScript_82D8B96 + jumpifnexttargetvalid BattleScript_ExplosionLoop tryfaintmon BS_ATTACKER, FALSE, NULL end -BattleScript_82D8BCF:: +BattleScript_ExplosionMissed: effectivenesssound resultmessage waitmessage 0x40 setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 - jumpifnexttargetvalid BattleScript_82D8B96 + jumpifnexttargetvalid BattleScript_ExplosionLoop tryfaintmon BS_ATTACKER, FALSE, NULL end -BattleScript_82D8BEA:: +BattleScript_PreserveMissedBitDoMoveAnim: bicbyte gMoveResultFlags, MOVE_RESULT_MISSED attackanimation waitanimation @@ -446,14 +446,14 @@ BattleScript_82D8BEA:: BattleScript_EffectDreamEater:: attackcanceler - jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_82D8C0E - jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_82D8C18 -BattleScript_82D8C0E:: + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_DreamEaterNoEffect + jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_DreamEaterWorked +BattleScript_DreamEaterNoEffect: attackstring ppreduce waitmessage 0x40 goto BattleScript_WasntAffected -BattleScript_82D8C18:: +BattleScript_DreamEaterWorked: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce @@ -479,7 +479,7 @@ BattleScript_82D8C18:: jumpifmovehadnoeffect BattleScript_DreamEaterTryFaintEnd printstring STRINGID_PKMNDREAMEATEN waitmessage 0x40 -BattleScript_DreamEaterTryFaintEnd:: +BattleScript_DreamEaterTryFaintEnd: tryfaintmon BS_TARGET, FALSE, NULL goto BattleScript_MoveEnd @@ -606,9 +606,9 @@ BattleScript_EffectRampage:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring - jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D8DAE + jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_EffectRampage2 ppreduce -BattleScript_82D8DAE:: +BattleScript_EffectRampage2: confuseifrepeatingattackends goto BattleScript_HitFromCritCalc @@ -2297,8 +2297,7 @@ BattleScript_EffectSmellingsalt:: setmoveeffect MOVE_EFFECT_REMOVE_PARALYSIS | MOVE_EFFECT_CERTAIN jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_SmellingsaltDoubleDmg goto BattleScript_EffectHit - -BattleScript_SmellingsaltDoubleDmg:: +BattleScript_SmellingsaltDoubleDmg: setbyte sDMG_MULTIPLIER, 0x2 goto BattleScript_EffectHit @@ -2593,7 +2592,7 @@ BattleScript_EffectSecretPower:: goto BattleScript_EffectHit BattleScript_EffectDoubleEdge:: - setmoveeffect MOVE_EFFECT_RECOIL_33_PARALYSIS | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN + setmoveeffect MOVE_EFFECT_RECOIL_33 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN goto BattleScript_EffectHit BattleScript_EffectTeeterDance:: @@ -3050,12 +3049,12 @@ BattleScript_82DAA83:: BattleScript_FrontierTrainerBattleWon:: jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_PayDayMoneyAndPickUpItems - jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAAAB + jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_FrontierTrainerBattleWon_TwoDefeated printstring STRINGID_PLAYERDEFEATEDTRAINER1 - goto BattleScript_82DAAAE -BattleScript_82DAAAB:: + goto BattleScript_FrontierTrainerBattleWon_LoseTexts +BattleScript_FrontierTrainerBattleWon_TwoDefeated: printstring STRINGID_TWOENEMIESDEFEATED -BattleScript_82DAAAE:: +BattleScript_FrontierTrainerBattleWon_LoseTexts: trainerslidein BS_ATTACKER waitstate printstring STRINGID_TRAINER1LOSETEXT @@ -3065,10 +3064,10 @@ BattleScript_82DAAAE:: trainerslidein BS_FAINTED waitstate printstring STRINGID_TRAINER2LOSETEXT -BattleScript_82DAACB:: - jumpifnotbattletype BATTLE_TYPE_PYRAMID, BattleScript_82DAADA +BattleScript_82DAACB: + jumpifnotbattletype BATTLE_TYPE_PYRAMID, BattleScript_FrontierTrainerBattleWon_End pickup -BattleScript_82DAADA:: +BattleScript_FrontierTrainerBattleWon_End: end2 BattleScript_SmokeBallEscape:: @@ -3172,7 +3171,7 @@ BattleScript_PursuitDmgOnSwitchOut:: jumpifbyte CMP_EQUAL, gBattleCommunication, 0x0, BattleScript_PursuitDmgOnSwitchOutRet setbyte sGIVEEXP_STATE, 0x0 getexp BS_TARGET -BattleScript_PursuitDmgOnSwitchOutRet:: +BattleScript_PursuitDmgOnSwitchOutRet: return BattleScript_Pausex20:: @@ -3968,17 +3967,17 @@ BattleScript_MoveEffectConfusion:: waitmessage 0x40 return -BattleScript_MoveEffectRecoil33:: - jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil33 - jumpifability BS_ATTACKER, ABILITY_ROCK_HEAD, BattleScript_Recoil33End -BattleScript_DoRecoil33:: +BattleScript_MoveEffectRecoil:: + jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil + jumpifability BS_ATTACKER, ABILITY_ROCK_HEAD, BattleScript_RecoilEnd +BattleScript_DoRecoil:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNHITWITHRECOIL waitmessage 0x40 tryfaintmon BS_ATTACKER, FALSE, NULL -BattleScript_Recoil33End:: +BattleScript_RecoilEnd:: return BattleScript_ItemSteal:: @@ -4048,38 +4047,37 @@ BattleScript_82DB4AF:: waitmessage 0x40 return -BattleScript_82DB4B8:: - call BattleScript_82DB4BE +BattleScript_IntimidateActivatesEnd3:: + call BattleScript_PauseIntimidateActivates end3 -BattleScript_82DB4BE:: +BattleScript_PauseIntimidateActivates: pause 0x20 -BattleScript_82DB4C1:: +BattleScript_IntimidateActivates:: setbyte gBattlerTarget, 0x0 setstatchanger STAT_ATK, 1, TRUE -BattleScript_82DB4CD:: - trygetintimidatetarget BattleScript_82DB51B - jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_82DB510 - jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_82DB51C - jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_82DB51C - jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_82DB51C - statbuffchange 0x21, BattleScript_82DB510 - jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DB510 +BattleScript_IntimidateActivatesLoop: + trygetintimidatetarget BattleScript_IntimidateActivatesReturn + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_IntimidateActivatesLoopIncrement + jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_IntimidatePrevented + jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_IntimidatePrevented + jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_IntimidatePrevented + statbuffchange 0x21, BattleScript_IntimidateActivatesLoopIncrement + jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_IntimidateActivatesLoopIncrement setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printstring STRINGID_PKMNCUTSATTACKWITH waitmessage 0x40 -BattleScript_82DB510:: +BattleScript_IntimidateActivatesLoopIncrement: addbyte gBattlerTarget, 0x1 - goto BattleScript_82DB4CD -BattleScript_82DB51B:: + goto BattleScript_IntimidateActivatesLoop +BattleScript_IntimidateActivatesReturn: return - -BattleScript_82DB51C:: +BattleScript_IntimidatePrevented: pause 0x20 printstring STRINGID_PREVENTEDFROMWORKING waitmessage 0x40 - goto BattleScript_82DB510 + goto BattleScript_IntimidateActivatesLoopIncrement BattleScript_DroughtActivates:: pause 0x20 @@ -4252,7 +4250,7 @@ BattleScript_AbilityCuredStatus:: updatestatusicon BS_SCRIPTING return -BattleScript_82DB695:: +BattleScript_IgnoresWhileAsleep:: printstring STRINGID_PKMNIGNORESASLEEP waitmessage 0x40 setbyte sMOVEEND_STATE, 0x0 @@ -4285,7 +4283,7 @@ BattleScript_IgnoresAndFallsAsleep:: moveend 0x2, 0x10 end -BattleScript_82DB6F0:: +BattleScript_IgnoresAndHitsItself:: printstring STRINGID_PKMNWONTOBEY waitmessage 0x40 goto BattleScript_DoSelfConfusionDmg @@ -4463,7 +4461,7 @@ BattleScript_ActionSelectionItemsCantBeUsed:: printselectionstring STRINGID_ITEMSCANTBEUSEDNOW endselectionscript -BattleScript_82DB87D:: +BattleScript_FlushMessageBox:: printstring STRINGID_EMPTYSTRING3 return diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 1197dfb6ef..a52d256fc4 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -26,16 +26,9 @@ extern const u8 BattleScript_LocalBattleLost[]; extern const u8 BattleScript_LocalBattleLostPrintWhiteOut[]; extern const u8 BattleScript_LocalBattleLostEnd[]; extern const u8 BattleScript_CheckDomeDrew[]; -extern const u8 BattleScript_82DAA0B[]; -extern const u8 BattleScript_82DAA31[]; +extern const u8 BattleScript_FlushMessageBox[]; extern const u8 BattleScript_LinkBattleWonOrLost[]; -extern const u8 BattleScript_82DAA5C[]; -extern const u8 BattleScript_82DAA83[]; extern const u8 BattleScript_FrontierTrainerBattleWon[]; -extern const u8 BattleScript_82DAAAB[]; -extern const u8 BattleScript_82DAAAE[]; -extern const u8 BattleScript_82DAACB[]; -extern const u8 BattleScript_82DAADA[]; extern const u8 BattleScript_SmokeBallEscape[]; extern const u8 BattleScript_RanAwayUsingMonAbility[]; extern const u8 BattleScript_GotAwaySafely[]; @@ -45,11 +38,6 @@ extern const u8 BattleScript_PrintFailedToRunString[]; extern const u8 BattleScript_PrintCantEscapeFromBattle[]; extern const u8 BattleScript_PrintFullBox[]; extern const u8 BattleScript_ActionSwitch[]; -extern const u8 BattleScript_82DAB35[]; -extern const u8 BattleScript_82DAB37[]; -extern const u8 BattleScript_82DAB44[]; -extern const u8 BattleScript_82DAB77[]; -extern const u8 BattleScript_82DABB8[]; extern const u8 BattleScript_Pausex20[]; extern const u8 BattleScript_LevelUp[]; extern const u8 BattleScript_RainContinuesOrEnds[]; @@ -62,13 +50,10 @@ extern const u8 BattleScript_SideStatusWoreOff[]; extern const u8 BattleScript_SafeguardProtected[]; extern const u8 BattleScript_SafeguardEnds[]; extern const u8 BattleScript_LeechSeedTurnDrain[]; -extern const u8 BattleScript_82DAD47[]; -extern const u8 BattleScript_82DAD4D[]; extern const u8 BattleScript_BideStoringEnergy[]; extern const u8 BattleScript_BideAttack[]; extern const u8 BattleScript_BideNoEnergyToAttack[]; extern const u8 BattleScript_SuccessForceOut[]; -extern const u8 BattleScript_82DADF1[]; extern const u8 BattleScript_MistProtected[]; extern const u8 BattleScript_RageIsBuilding[]; extern const u8 BattleScript_MoveUsedIsDisabled[]; @@ -79,32 +64,16 @@ extern const u8 BattleScript_SelectingUnusableMoveInPalace[]; extern const u8 BattleScript_EncoredNoMore[]; extern const u8 BattleScript_DestinyBondTakesLife[]; extern const u8 BattleScript_SpikesOnAttacker[]; -extern const u8 BattleScript_82DAE7A[]; extern const u8 BattleScript_SpikesOnTarget[]; -extern const u8 BattleScript_82DAEB1[]; extern const u8 BattleScript_SpikesOnFaintedBattler[]; -extern const u8 BattleScript_82DAEE8[]; -extern const u8 BattleScript_82DAEFE[]; extern const u8 BattleScript_PerishSongTakesLife[]; extern const u8 BattleScript_PerishSongCountGoesDown[]; extern const u8 BattleScript_AllStatsUp[]; -extern const u8 BattleScript_82DAF54[]; -extern const u8 BattleScript_82DAF72[]; -extern const u8 BattleScript_82DAF86[]; -extern const u8 BattleScript_82DAF9A[]; -extern const u8 BattleScript_82DAFAE[]; -extern const u8 BattleScript_82DAFC2[]; extern const u8 BattleScript_RapidSpinAway[]; extern const u8 BattleScript_WrapFree[]; extern const u8 BattleScript_LeechSeedFree[]; extern const u8 BattleScript_SpikesFree[]; extern const u8 BattleScript_MonTookFutureAttack[]; -extern const u8 BattleScript_82DB001[]; -extern const u8 BattleScript_82DB008[]; -extern const u8 BattleScript_82DB020[]; -extern const u8 BattleScript_82DB027[]; -extern const u8 BattleScript_82DB03F[]; -extern const u8 BattleScript_82DB058[]; extern const u8 BattleScript_NoMovesLeft[]; extern const u8 BattleScript_SelectingMoveWithNoPP[]; extern const u8 BattleScript_NoPPForMove[]; @@ -117,8 +86,6 @@ extern const u8 BattleScript_SelectingNotAllowedMoveTauntInPalace[]; extern const u8 BattleScript_WishComesTrue[]; extern const u8 BattleScript_IngrainTurnHeal[]; extern const u8 BattleScript_AtkDefDown[]; -extern const u8 BattleScript_82DB144[]; -extern const u8 BattleScript_82DB167[]; extern const u8 BattleScript_KnockedOff[]; extern const u8 BattleScript_MoveUsedIsImprisoned[]; extern const u8 BattleScript_SelectingImprisionedMove[]; @@ -129,15 +96,11 @@ extern const u8 BattleScript_SnatchedMove[]; extern const u8 BattleScript_EnduredMsg[]; extern const u8 BattleScript_OneHitKOMsg[]; extern const u8 BattleScript_SAtkDown2[]; -extern const u8 BattleScript_82DB1FE[]; extern const u8 BattleScript_FocusPunchSetUp[]; extern const u8 BattleScript_MoveUsedIsAsleep[]; extern const u8 BattleScript_MoveUsedWokeUp[]; extern const u8 BattleScript_MonWokeUpInUproar[]; extern const u8 BattleScript_PoisonTurnDmg[]; -extern const u8 BattleScript_82DB243[]; -extern const u8 BattleScript_82DB245[]; -extern const u8 BattleScript_82DB25E[]; extern const u8 BattleScript_BurnTurnDmg[]; extern const u8 BattleScript_MoveUsedIsFrozen[]; extern const u8 BattleScript_MoveUsedUnfroze[]; @@ -147,8 +110,6 @@ extern const u8 BattleScript_MoveUsedFlinched[]; extern const u8 BattleScript_PrintUproarOverTurns[]; extern const u8 BattleScript_ThrashConfuses[]; extern const u8 BattleScript_MoveUsedIsConfused[]; -extern const u8 BattleScript_82DB2D4[]; -extern const u8 BattleScript_82DB2FF[]; extern const u8 BattleScript_MoveUsedIsConfusedNoMore[]; extern const u8 BattleScript_PrintPayDayMoneyString[]; extern const u8 BattleScript_WrapTurnDmg[]; @@ -159,7 +120,6 @@ extern const u8 BattleScript_NightmareTurnDmg[]; extern const u8 BattleScript_CurseTurnDmg[]; extern const u8 BattleScript_TargetPRLZHeal[]; extern const u8 BattleScript_MoveEffectSleep[]; -extern const u8 BattleScript_82DB374[]; extern const u8 BattleScript_YawnMakesAsleep[]; extern const u8 BattleScript_MoveEffectPoison[]; extern const u8 BattleScript_MoveEffectBurn[]; @@ -170,7 +130,7 @@ extern const u8 BattleScript_MoveEffectToxic[]; extern const u8 BattleScript_MoveEffectPayDay[]; extern const u8 BattleScript_MoveEffectWrap[]; extern const u8 BattleScript_MoveEffectConfusion[]; -extern const u8 BattleScript_MoveEffectRecoil33[]; +extern const u8 BattleScript_MoveEffectRecoil[]; extern const u8 BattleScript_DoRecoil33[]; extern const u8 BattleScript_Recoil33End[]; extern const u8 BattleScript_ItemSteal[]; @@ -183,14 +143,8 @@ extern const u8 BattleScript_ShedSkinActivates[]; extern const u8 BattleScript_WeatherFormChanges[]; extern const u8 BattleScript_WeatherFormChangesLoop[]; extern const u8 BattleScript_CastformChange[]; -extern const u8 BattleScript_82DB4AF[]; -extern const u8 BattleScript_82DB4B8[]; -extern const u8 BattleScript_82DB4BE[]; -extern const u8 BattleScript_82DB4C1[]; -extern const u8 BattleScript_82DB4CD[]; -extern const u8 BattleScript_82DB510[]; -extern const u8 BattleScript_82DB51B[]; -extern const u8 BattleScript_82DB51C[]; +extern const u8 BattleScript_IntimidateActivatesEnd3[]; +extern const u8 BattleScript_IntimidateActivates[]; extern const u8 BattleScript_DroughtActivates[]; extern const u8 BattleScript_TookAttack[]; extern const u8 BattleScript_SturdyPreventsOHKO[]; @@ -218,12 +172,11 @@ extern const u8 BattleScript_ApplySecondaryEffect[]; extern const u8 BattleScript_SynchronizeActivates[]; extern const u8 BattleScript_NoItemSteal[]; extern const u8 BattleScript_AbilityCuredStatus[]; -extern const u8 BattleScript_82DB695[]; +extern const u8 BattleScript_IgnoresWhileAsleep[]; extern const u8 BattleScript_IgnoresAndUsesRandomMove[]; extern const u8 BattleScript_MoveUsedLoafingAround[]; -extern const u8 BattleScript_82DB6C7[]; extern const u8 BattleScript_IgnoresAndFallsAsleep[]; -extern const u8 BattleScript_82DB6F0[]; +extern const u8 BattleScript_IgnoresAndHitsItself[]; extern const u8 BattleScript_SubstituteFade[]; extern const u8 BattleScript_BerryCurePrlzEnd2[]; extern const u8 BattleScript_BerryCureParRet[]; @@ -249,18 +202,11 @@ extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[]; extern const u8 BattleScript_HangedOnMsg[]; extern const u8 BattleScript_BerryConfuseHealEnd2[]; extern const u8 BattleScript_BerryStatRaiseEnd2[]; -extern const u8 BattleScript_82DB85B[]; extern const u8 BattleScript_BerryFocusEnergyEnd2[]; extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[]; -extern const u8 BattleScript_82DB87D[]; -extern const u8 BattleScript_82DB881[]; -extern const u8 BattleScript_82DB887[]; -extern const u8 BattleScript_82DB89D[]; extern const u8 BattleScript_ArenaTurnBeginning[]; -extern const u8 BattleScript_82DB8E0[]; +extern const u8 BattleScript_82DB881[]; extern const u8 BattleScript_82DB8F3[]; -extern const u8 BattleScript_82DB973[]; -extern const u8 BattleScript_82DB992[]; extern const u8 BattleScript_AskIfWantsToForfeitMatch[]; extern const u8 BattleScript_PrintPlayerForfeited[]; extern const u8 BattleScript_PrintPlayerForfeitedLinkBattle[]; @@ -268,23 +214,12 @@ extern const u8 BattleScript_BallThrow[]; extern const u8 BattleScript_BallThrowByWally[]; extern const u8 BattleScript_SafariBallThrow[]; extern const u8 BattleScript_SuccessBallThrow[]; -extern const u8 BattleScript_82DBD92[]; -extern const u8 BattleScript_82DBDA5[]; -extern const u8 BattleScript_82DBDC2[]; -extern const u8 BattleScript_82DBDC3[]; extern const u8 BattleScript_WallyBallThrow[]; extern const u8 BattleScript_ShakeBallThrow[]; -extern const u8 BattleScript_82DBE01[]; extern const u8 BattleScript_TrainerBallBlock[]; -extern const u8 BattleScript_82DBE12[]; -extern const u8 BattleScript_82DBE1C[]; -extern const u8 BattleScript_82DBE4B[]; -extern const u8 BattleScript_82DBE6F[]; -extern const u8 BattleScript_82DBE91[]; extern const u8 BattleScript_RunByUsingItem[]; extern const u8 BattleScript_ActionWatchesCarefully[]; extern const u8 BattleScript_ActionGetNear[]; extern const u8 BattleScript_ActionThrowPokeblock[]; -extern const u8 BattleScript_82DBEE3[]; #endif // GUARD_BATTLE_SCRIPTS_H diff --git a/include/battle_util.h b/include/battle_util.h index be9b5f1fee..b3fff196e7 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -12,7 +12,7 @@ #define ABILITYEFFECT_ENDTURN 0x1 #define ABILITYEFFECT_MOVES_BLOCK 0x2 #define ABILITYEFFECT_ABSORBING 0x3 -#define ABILITYEFFECT_CONTACT 0x4 +#define ABILITYEFFECT_MOVE_END 0x4 #define ABILITYEFFECT_IMMUNITY 0x5 #define ABILITYEFFECT_FORECAST 0x6 #define ABILITYEFFECT_SYNCHRONIZE 0x7 @@ -35,6 +35,8 @@ #define ABILITY_ON_FIELD2(abilityId)(AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, abilityId, 0, 0)) #define ITEMEFFECT_ON_SWITCH_IN 0x0 +#define ITEMEFFECT_MOVE_END 0x3 +#define ITEMEFFECT_KINGSROCK_SHELLBELL 0x4 #define WEATHER_HAS_EFFECT ((!ABILITY_ON_FIELD(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD(ABILITY_AIR_LOCK))) #define WEATHER_HAS_EFFECT2 ((!ABILITY_ON_FIELD2(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD2(ABILITY_AIR_LOCK))) diff --git a/include/constants/battle.h b/include/constants/battle.h index b3f9d919ad..e5ca9d7ae5 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -252,7 +252,7 @@ #define MOVE_EFFECT_RAPIDSPIN 0x23 #define MOVE_EFFECT_REMOVE_PARALYSIS 0x24 #define MOVE_EFFECT_ATK_DEF_DOWN 0x25 -#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26 +#define MOVE_EFFECT_RECOIL_33 0x26 #define MOVE_EFFECT_ATK_PLUS_2 0x27 #define MOVE_EFFECT_DEF_PLUS_2 0x28 #define MOVE_EFFECT_SPD_PLUS_2 0x29 diff --git a/src/battle_main.c b/src/battle_main.c index c31fb48d5d..be6f789ecb 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3888,7 +3888,7 @@ static void TryDoEventsBeforeFirstTurn(void) // Check all switch in items having effect from the fastest mon to slowest. while (gBattleStruct->switchInItemsCounter < gBattlersCount) { - if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBattlerByTurnOrder[gBattleStruct->switchInItemsCounter], 0) != 0) + if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBattlerByTurnOrder[gBattleStruct->switchInItemsCounter], FALSE)) effect++; gBattleStruct->switchInItemsCounter++; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 12a66df801..44194deda0 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -700,7 +700,7 @@ static const u8* const sMoveEffectBS_Ptrs[] = BattleScript_MoveEffectPayDay, // MOVE_EFFECT_PAYDAY BattleScript_MoveEffectSleep, // MOVE_EFFECT_CHARGING BattleScript_MoveEffectWrap, // MOVE_EFFECT_WRAP - BattleScript_MoveEffectRecoil33, // MOVE_EFFECT_RECOIL_25 + 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 @@ -724,7 +724,7 @@ static const u8* const sMoveEffectBS_Ptrs[] = BattleScript_MoveEffectSleep, // MOVE_EFFECT_RAPIDSPIN BattleScript_MoveEffectSleep, // MOVE_EFFECT_REMOVE_PARALYSIS BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_DEF_DOWN - BattleScript_MoveEffectRecoil33, // MOVE_EFFECT_RECOIL_33_PARALYSIS + BattleScript_MoveEffectRecoil, // MOVE_EFFECT_RECOIL_33 }; static const struct WindowTemplate sUnusedWinTemplate = {0, 1, 3, 7, 0xF, 0x1F, 0x3F}; @@ -2843,7 +2843,7 @@ void SetMoveEffect(bool8 primary, u8 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_AtkDefDown; break; - case MOVE_EFFECT_RECOIL_33_PARALYSIS: // Volt Tackle + case MOVE_EFFECT_RECOIL_33: // Double Edge gBattleMoveDamage = gHpDealt / 3; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -4497,20 +4497,38 @@ static void atk48_playstatchangeanimation(void) } } -#define ATK49_LAST_CASE 17 +enum +{ + ATK49_RAGE, + ATK49_DEFROST, + ATK49_SYNCHRONIZE_TARGET, + ATK49_MOVE_END_ABILITIES, + ATK49_STATUS_IMMUNITY_ABILITIES, + ATK49_SYNCHRONIZE_ATTACKER, + ATK49_CHOICE_MOVE, + ATK49_CHANGED_ITEMS, + ATK49_ATTACKER_INVISIBLE, + ATK49_ATTACKER_VISIBLE, + ATK49_TARGET_VISIBLE, + ATK49_ITEM_EFFECTS_ALL, + ATK49_KINGSROCK_SHELLBELL, + ATK49_SUBSTITUTE, + ATK49_UPDATE_LAST_MOVES, + ATK49_MIRROR_MOVE, + ATK49_NEXT_TARGET, + ATK49_COUNT, +}; static void atk49_moveend(void) { s32 i; - bool32 effect; - u8 moveType; - u8 holdEffectAtk; - u16 *choicedMoveAtk; + bool32 effect = FALSE; + u8 moveType = 0; + u8 holdEffectAtk = 0; + u16 *choicedMoveAtk = NULL; u8 arg1, arg2; u16 originallyUsedMove; - effect = FALSE; - if (gChosenMove == 0xFFFF) originallyUsedMove = 0; else @@ -4531,7 +4549,7 @@ static void atk49_moveend(void) { switch (gBattleScripting.atk49_state) { - case 0: // rage check + case ATK49_RAGE: // rage check if (gBattleMons[gBattlerTarget].status2 & STATUS2_RAGE && gBattleMons[gBattlerTarget].hp != 0 && gBattlerAttacker != gBattlerTarget && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget) @@ -4545,7 +4563,7 @@ static void atk49_moveend(void) } gBattleScripting.atk49_state++; break; - case 1: // defrosting check + case ATK49_DEFROST: // defrosting check if (gBattleMons[gBattlerTarget].status1 & STATUS1_FREEZE && gBattleMons[gBattlerTarget].hp != 0 && gBattlerAttacker != gBattlerTarget && gSpecialStatuses[gBattlerTarget].specialDmg @@ -4561,28 +4579,28 @@ static void atk49_moveend(void) } gBattleScripting.atk49_state++; break; - case 2: // target synchronize + case ATK49_SYNCHRONIZE_TARGET: // target synchronize if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBattlerTarget, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; - case 3: // contact abilities - if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBattlerTarget, 0, 0, 0)) + case ATK49_MOVE_END_ABILITIES: // Such as abilities activating on contact(Poison Spore, Rough Skin, etc.). + if (AbilityBattleEffects(ABILITYEFFECT_MOVE_END, gBattlerTarget, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; - case 4: // status immunities + case ATK49_STATUS_IMMUNITY_ABILITIES: // status immunities if (AbilityBattleEffects(ABILITYEFFECT_IMMUNITY, 0, 0, 0, 0)) effect = TRUE; // it loops through all battlers, so we increment after its done with all battlers else gBattleScripting.atk49_state++; break; - case 5: // attacker synchronize + case ATK49_SYNCHRONIZE_ATTACKER: // attacker synchronize if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBattlerAttacker, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; - case 6: // update choice band move + case ATK49_CHOICE_MOVE: // update choice band move if (!(gHitMarker & HITMARKER_OBEYS) || holdEffectAtk != HOLD_EFFECT_CHOICE_BAND || gChosenMove == MOVE_STRUGGLE || (*choicedMoveAtk != 0 && *choicedMoveAtk != 0xFFFF)) goto LOOP; @@ -4605,7 +4623,7 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; } break; - case 7: // changed held items + case ATK49_CHANGED_ITEMS: // changed held items for (i = 0; i < gBattlersCount; i++) { u16* changedItem = &gBattleStruct->changedItems[i]; @@ -4617,18 +4635,18 @@ static void atk49_moveend(void) } gBattleScripting.atk49_state++; break; - case 11: // item effects for all battlers - if (ItemBattleEffects(3, 0, FALSE)) + case ATK49_ITEM_EFFECTS_ALL: // item effects for all battlers + if (ItemBattleEffects(ITEMEFFECT_MOVE_END, 0, FALSE)) effect = TRUE; else gBattleScripting.atk49_state++; break; - case 12: // king's rock and shell bell - if (ItemBattleEffects(4, 0, FALSE)) + case ATK49_KINGSROCK_SHELLBELL: // king's rock and shell bell + if (ItemBattleEffects(ITEMEFFECT_KINGSROCK_SHELLBELL, 0, FALSE)) effect = TRUE; gBattleScripting.atk49_state++; break; - case 8: // make attacker sprite invisible + case ATK49_ATTACKER_INVISIBLE: // make attacker sprite invisible if (gStatuses3[gBattlerAttacker] & (STATUS3_SEMI_INVULNERABLE) && gHitMarker & HITMARKER_NO_ANIMATIONS) { @@ -4640,7 +4658,7 @@ static void atk49_moveend(void) } gBattleScripting.atk49_state++; break; - case 9: // make attacker sprite visible + case ATK49_ATTACKER_VISIBLE: // make attacker sprite visible if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || !(gStatuses3[gBattlerAttacker] & (STATUS3_SEMI_INVULNERABLE)) || WasUnableToUseMove(gBattlerAttacker)) @@ -4655,7 +4673,7 @@ static void atk49_moveend(void) } gBattleScripting.atk49_state++; break; - case 10: // make target sprite visible + case ATK49_TARGET_VISIBLE: // make target sprite visible if (!gSpecialStatuses[gBattlerTarget].restoredBattlerSprite && gBattlerTarget < gBattlersCount && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE)) { @@ -4668,7 +4686,7 @@ static void atk49_moveend(void) } gBattleScripting.atk49_state++; break; - case 13: // update substitute + case ATK49_SUBSTITUTE: // update substitute for (i = 0; i < gBattlersCount; i++) { if (gDisableStructs[i].substituteHP == 0) @@ -4676,7 +4694,7 @@ static void atk49_moveend(void) } gBattleScripting.atk49_state++; break; - case 14: // This case looks interesting, although I am not certain what it does. Probably fine tunes edge cases. + case ATK49_UPDATE_LAST_MOVES: if (gHitMarker & HITMARKER_SWAP_ATTACKER_TARGET) { gActiveBattler = gBattlerAttacker; @@ -4725,7 +4743,7 @@ static void atk49_moveend(void) } gBattleScripting.atk49_state++; break; - case 15: // mirror move + case ATK49_MIRROR_MOVE: // mirror move if (!(gAbsentBattlerFlags & gBitTable[gBattlerAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBattlerAttacker]) && gBattleMoves[originallyUsedMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS && gBattlerAttacker != gBattlerTarget && !(gHitMarker & HITMARKER_FAINTED(gBattlerTarget)) @@ -4746,7 +4764,7 @@ static void atk49_moveend(void) } gBattleScripting.atk49_state++; break; - case 16: // + case ATK49_NEXT_TARGET: // For moves hitting two opposing Pokemon. if (!(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !gProtectStructs[gBattlerAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) @@ -4759,7 +4777,7 @@ static void atk49_moveend(void) gBattleScripting.atk49_state = 0; MoveValuesCleanUp(); BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); - gBattlescriptCurrInstr = BattleScript_82DB87D; + gBattlescriptCurrInstr = BattleScript_FlushMessageBox; return; } else @@ -4769,18 +4787,18 @@ static void atk49_moveend(void) } gBattleScripting.atk49_state++; break; - case ATK49_LAST_CASE: + case ATK49_COUNT: break; } if (arg1 == 1 && effect == FALSE) - gBattleScripting.atk49_state = ATK49_LAST_CASE; + gBattleScripting.atk49_state = ATK49_COUNT; if (arg1 == 2 && arg2 == gBattleScripting.atk49_state) - gBattleScripting.atk49_state = ATK49_LAST_CASE; + gBattleScripting.atk49_state = ATK49_COUNT; - } while (gBattleScripting.atk49_state != ATK49_LAST_CASE && effect == FALSE); + } while (gBattleScripting.atk49_state != ATK49_COUNT && effect == FALSE); - if (gBattleScripting.atk49_state == ATK49_LAST_CASE && effect == FALSE) + if (gBattleScripting.atk49_state == ATK49_COUNT && effect == FALSE) gBattlescriptCurrInstr += 3; } @@ -5550,8 +5568,8 @@ static void atk52_switchineffects(void) gDisableStructs[gActiveBattler].truantUnknownBit = 0; - if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBattler, 0, 0, 0) == 0 && - ItemBattleEffects(0, gActiveBattler, 0) == 0) + if (!AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBattler, 0, 0, 0) + && !ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gActiveBattler, FALSE)) { gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); diff --git a/src/battle_util.c b/src/battle_util.c index 875244d799..5096a2f3ae 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -821,12 +821,12 @@ u8 DoBattlerEndTurnEffects(void) gBattleStruct->turnEffectsTracker++; break; case ENDTURN_ITEMS1: // item effects - if (ItemBattleEffects(1, gActiveBattler, 0)) + if (ItemBattleEffects(1, gActiveBattler, FALSE)) effect++; gBattleStruct->turnEffectsTracker++; break; case ENDTURN_ITEMS2: // item effects again - if (ItemBattleEffects(1, gActiveBattler, 1)) + if (ItemBattleEffects(1, gActiveBattler, TRUE)) effect++; gBattleStruct->turnEffectsTracker++; break; @@ -1280,7 +1280,7 @@ bool8 HandleFaintedMonActions(void) gBattleStruct->faintedActionsState = 4; break; case 6: - if (AbilityBattleEffects(ABILITYEFFECT_INTIMIDATE1, 0, 0, 0, 0) || AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) || ItemBattleEffects(1, 0, 1) || AbilityBattleEffects(ABILITYEFFECT_FORECAST, 0, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_INTIMIDATE1, 0, 0, 0, 0) || AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) || ItemBattleEffects(1, 0, TRUE) || AbilityBattleEffects(ABILITYEFFECT_FORECAST, 0, 0, 0, 0)) return TRUE; gBattleStruct->faintedActionsState++; break; @@ -2083,7 +2083,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } } break; - case ABILITYEFFECT_CONTACT: // 4 + case ABILITYEFFECT_MOVE_END: // Think contact abilities. switch (gLastUsedAbility) { case ABILITY_COLOR_CHANGE: @@ -2343,7 +2343,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA { gLastUsedAbility = ABILITY_INTIMIDATE; gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); - BattleScriptPushCursorAndCallback(BattleScript_82DB4B8); + BattleScriptPushCursorAndCallback(BattleScript_IntimidateActivatesEnd3); gBattleStruct->intimidateBattler = i; effect++; break; @@ -2415,7 +2415,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gLastUsedAbility = ABILITY_INTIMIDATE; gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_82DB4C1; + gBattlescriptCurrInstr = BattleScript_IntimidateActivates; gBattleStruct->intimidateBattler = i; effect++; break; @@ -3044,7 +3044,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) break; case 2: break; - case 3: + case ITEMEFFECT_MOVE_END: for (battlerId = 0; battlerId < gBattlersCount; battlerId++) { gLastUsedItem = gBattleMons[battlerId].item; @@ -3177,7 +3177,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gPotentialItemEffectBattler = battlerId; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_WhiteHerbRet; - return effect; // unnecessary return + return effect; } break; } @@ -3192,7 +3192,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } } break; - case 4: + case ITEMEFFECT_KINGSROCK_SHELLBELL: if (gBattleMoveDamage) { switch (atkHoldEffect) @@ -3386,7 +3386,7 @@ u8 IsMonDisobedient(void) gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_RAGE); if (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) { - gBattlescriptCurrInstr = BattleScript_82DB695; + gBattlescriptCurrInstr = BattleScript_IgnoresWhileAsleep; return 1; } @@ -3440,7 +3440,7 @@ u8 IsMonDisobedient(void) { gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerAttacker], MOVE_POUND, 0, 40, 0, gBattlerAttacker, gBattlerAttacker); gBattlerTarget = gBattlerAttacker; - gBattlescriptCurrInstr = BattleScript_82DB6F0; + gBattlescriptCurrInstr = BattleScript_IgnoresAndHitsItself; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; return 2; } From 5c7ca813e75e6b87f1dc41e96aa55ebbbbc9e844 Mon Sep 17 00:00:00 2001 From: DizzyEggg <jajkodizzy@wp.pl> Date: Sat, 1 Sep 2018 21:25:19 +0200 Subject: [PATCH 156/174] Add AI flags to trainers data --- src/battle_data.c | 1 + src/data/trainers.h | 3138 +++++++++++++++++++++---------------------- 2 files changed, 1570 insertions(+), 1569 deletions(-) diff --git a/src/battle_data.c b/src/battle_data.c index f3719ac2d8..7f86385aab 100644 --- a/src/battle_data.c +++ b/src/battle_data.c @@ -5,6 +5,7 @@ #include "constants/moves.h" #include "constants/species.h" #include "constants/trainers.h" +#include "constants/battle_ai.h" #include "data/trainer_parties.h" #include "data/text/trainer_class_names.h" diff --git a/src/data/trainers.h b/src/data/trainers.h index 19e210acc0..214a72df1a 100644 --- a/src/data/trainers.h +++ b/src/data/trainers.h @@ -6,9 +6,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _(""), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 0, .party = {.NoItemDefaultMoves = NULL } }, @@ -20,9 +20,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("SAWYER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer1 } }, @@ -34,9 +34,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt1 } }, @@ -48,9 +48,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt2 } }, @@ -62,9 +62,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt3 } }, @@ -76,9 +76,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt4 } }, @@ -90,9 +90,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt5 } }, @@ -104,9 +104,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt6 } }, @@ -118,9 +118,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt7 } }, @@ -132,9 +132,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F, .trainerName = _("GABRIELLE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle1 } }, @@ -146,9 +146,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt8 } }, @@ -162,7 +162,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARCEL"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Marcel } }, @@ -174,9 +174,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("ALBERTO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Alberto } }, @@ -188,9 +188,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_COLLECTOR, .trainerName = _("ED"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Ed } }, @@ -202,9 +202,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt9 } }, @@ -216,9 +216,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("DECLAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Declan } }, @@ -230,9 +230,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt10 } }, @@ -244,9 +244,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt11 } }, @@ -258,9 +258,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt12 } }, @@ -272,9 +272,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt13 } }, @@ -286,9 +286,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt14 } }, @@ -300,9 +300,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt15 } }, @@ -314,9 +314,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt16 } }, @@ -328,9 +328,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt17 } }, @@ -342,9 +342,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt18 } }, @@ -356,9 +356,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt19 } }, @@ -370,9 +370,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt20 } }, @@ -384,9 +384,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt21 } }, @@ -398,9 +398,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt22 } }, @@ -412,9 +412,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_M, .trainerName = _("FREDRICK"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Fredrick } }, @@ -428,7 +428,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MATT"), .items = {ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Matt } }, @@ -440,9 +440,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("ZANDER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Zander } }, @@ -454,9 +454,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_ADMIN_F, .trainerName = _("SHELLY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Shelly1 } }, @@ -468,9 +468,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_ADMIN_F, .trainerName = _("SHELLY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Shelly2 } }, @@ -484,7 +484,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ARCHIE"), .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Archie } }, @@ -496,9 +496,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_HEX_MANIAC, .trainerName = _("LEAH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Leah } }, @@ -510,9 +510,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_AROMA_LADY, .trainerName = _("DAISY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Daisy } }, @@ -524,9 +524,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_AROMA_LADY, .trainerName = _("ROSE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Rose1 } }, @@ -540,7 +540,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FELIX"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Felix } }, @@ -552,9 +552,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_AROMA_LADY, .trainerName = _("VIOLET"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Violet } }, @@ -566,9 +566,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_AROMA_LADY, .trainerName = _("ROSE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Rose2 } }, @@ -580,9 +580,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_AROMA_LADY, .trainerName = _("ROSE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Rose3 } }, @@ -594,9 +594,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_AROMA_LADY, .trainerName = _("ROSE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Rose4 } }, @@ -608,9 +608,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_AROMA_LADY, .trainerName = _("ROSE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Rose5 } }, @@ -622,9 +622,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("DUSTY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Dusty1 } }, @@ -636,9 +636,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("CHIP"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemCustomMoves = gTrainerParty_Chip } }, @@ -650,9 +650,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("FOSTER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Foster } }, @@ -664,9 +664,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("DUSTY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Dusty2 } }, @@ -678,9 +678,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("DUSTY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Dusty3 } }, @@ -692,9 +692,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("DUSTY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Dusty4 } }, @@ -706,9 +706,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("DUSTY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Dusty5 } }, @@ -720,9 +720,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTERVIEWER, .trainerPic = TRAINER_PIC_INTERVIEWER, .trainerName = _("GABBY & TY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy1 } }, @@ -734,9 +734,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTERVIEWER, .trainerPic = TRAINER_PIC_INTERVIEWER, .trainerName = _("GABBY & TY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy2 } }, @@ -748,9 +748,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTERVIEWER, .trainerPic = TRAINER_PIC_INTERVIEWER, .trainerName = _("GABBY & TY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy3 } }, @@ -762,9 +762,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTERVIEWER, .trainerPic = TRAINER_PIC_INTERVIEWER, .trainerName = _("GABBY & TY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy4 } }, @@ -776,9 +776,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTERVIEWER, .trainerPic = TRAINER_PIC_INTERVIEWER, .trainerName = _("GABBY & TY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy5 } }, @@ -790,9 +790,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTERVIEWER, .trainerPic = TRAINER_PIC_INTERVIEWER, .trainerName = _("GABBY & TY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_GabbyAndTy6 } }, @@ -804,9 +804,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("LOLA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Lola1 } }, @@ -818,9 +818,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("AUSTINA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Austina } }, @@ -832,9 +832,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("GWEN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Gwen } }, @@ -846,9 +846,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("LOLA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Lola2 } }, @@ -860,9 +860,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("LOLA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Lola3 } }, @@ -874,9 +874,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("LOLA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Lola4 } }, @@ -888,9 +888,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("LOLA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Lola5 } }, @@ -902,9 +902,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("RICKY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Ricky1 } }, @@ -916,9 +916,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("SIMON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Simon } }, @@ -930,9 +930,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("CHARLIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Charlie } }, @@ -944,9 +944,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("RICKY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Ricky2 } }, @@ -958,9 +958,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("RICKY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Ricky3 } }, @@ -972,9 +972,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("RICKY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Ricky4 } }, @@ -986,9 +986,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("RICKY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Ricky5 } }, @@ -1002,7 +1002,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RANDALL"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.ItemCustomMoves = gTrainerParty_Randall } }, @@ -1016,7 +1016,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PARKER"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.ItemCustomMoves = gTrainerParty_Parker } }, @@ -1030,7 +1030,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GEORGE"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.ItemCustomMoves = gTrainerParty_George } }, @@ -1044,7 +1044,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BERKE"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.ItemCustomMoves = gTrainerParty_Berke } }, @@ -1058,7 +1058,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRAXTON"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.NoItemCustomMoves = gTrainerParty_Braxton } }, @@ -1072,7 +1072,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VINCENT"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Vincent } }, @@ -1086,7 +1086,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LEROY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Leroy } }, @@ -1100,7 +1100,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WILTON"), .items = {ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Wilton1 } }, @@ -1114,7 +1114,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("EDGAR"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Edgar } }, @@ -1128,7 +1128,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALBERT"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Albert } }, @@ -1142,7 +1142,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SAMUEL"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Samuel } }, @@ -1156,7 +1156,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VITO"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Vito } }, @@ -1170,7 +1170,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("OWEN"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Owen } }, @@ -1184,7 +1184,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WILTON"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Wilton2 } }, @@ -1198,7 +1198,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WILTON"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Wilton3 } }, @@ -1212,7 +1212,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WILTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Wilton4 } }, @@ -1226,7 +1226,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WILTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Wilton5 } }, @@ -1240,7 +1240,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WARREN"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Warren } }, @@ -1254,7 +1254,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARY"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.ItemCustomMoves = gTrainerParty_Mary } }, @@ -1268,7 +1268,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALEXIA"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.ItemCustomMoves = gTrainerParty_Alexia } }, @@ -1282,7 +1282,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JODY"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 1, .party = {.ItemCustomMoves = gTrainerParty_Jody } }, @@ -1296,7 +1296,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WENDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 3, .party = {.NoItemCustomMoves = gTrainerParty_Wendy } }, @@ -1310,7 +1310,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KEIRA"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Keira } }, @@ -1324,7 +1324,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BROOKE"), .items = {ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Brooke1 } }, @@ -1338,7 +1338,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JENNIFER"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jennifer } }, @@ -1352,7 +1352,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HOPE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Hope } }, @@ -1366,7 +1366,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHANNON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Shannon } }, @@ -1380,7 +1380,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MICHELLE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Michelle } }, @@ -1394,7 +1394,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CAROLINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Caroline } }, @@ -1408,7 +1408,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JULIE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Julie } }, @@ -1422,7 +1422,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BROOKE"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Brooke2 } }, @@ -1436,7 +1436,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BROOKE"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Brooke3 } }, @@ -1450,7 +1450,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BROOKE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Brooke4 } }, @@ -1464,7 +1464,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BROOKE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Brooke5 } }, @@ -1476,9 +1476,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_HEX_MANIAC, .trainerName = _("PATRICIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Patricia } }, @@ -1490,9 +1490,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_HEX_MANIAC, .trainerName = _("KINDRA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Kindra } }, @@ -1504,9 +1504,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_HEX_MANIAC, .trainerName = _("TAMMY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Tammy } }, @@ -1518,9 +1518,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_HEX_MANIAC, .trainerName = _("VALERIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Valerie1 } }, @@ -1532,9 +1532,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_HEX_MANIAC, .trainerName = _("TASHA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Tasha } }, @@ -1546,9 +1546,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_HEX_MANIAC, .trainerName = _("VALERIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Valerie2 } }, @@ -1560,9 +1560,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_HEX_MANIAC, .trainerName = _("VALERIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Valerie3 } }, @@ -1574,9 +1574,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_HEX_MANIAC, .trainerName = _("VALERIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Valerie4 } }, @@ -1588,9 +1588,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_HEX_MANIAC, .trainerName = _("VALERIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Valerie5 } }, @@ -1604,7 +1604,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CINDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Cindy1 } }, @@ -1618,7 +1618,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DAPHNE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.ItemCustomMoves = gTrainerParty_Daphne } }, @@ -1630,9 +1630,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt23 } }, @@ -1646,7 +1646,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CINDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemCustomMoves = gTrainerParty_Cindy2 } }, @@ -1660,7 +1660,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRIANNA"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Brianna } }, @@ -1674,7 +1674,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NAOMI"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Naomi } }, @@ -1688,7 +1688,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CINDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Cindy3 } }, @@ -1702,7 +1702,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CINDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Cindy4 } }, @@ -1716,7 +1716,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CINDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Cindy5 } }, @@ -1730,7 +1730,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CINDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemCustomMoves = gTrainerParty_Cindy6 } }, @@ -1742,9 +1742,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("MELISSA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Melissa } }, @@ -1756,9 +1756,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("SHEILA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Sheila } }, @@ -1770,9 +1770,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("SHIRLEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Shirley } }, @@ -1784,9 +1784,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("JESSICA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Jessica1 } }, @@ -1798,9 +1798,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("CONNIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Connie } }, @@ -1812,9 +1812,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("BRIDGET"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Bridget } }, @@ -1826,9 +1826,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("OLIVIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemCustomMoves = gTrainerParty_Olivia } }, @@ -1840,9 +1840,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("TIFFANY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Tiffany } }, @@ -1854,9 +1854,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("JESSICA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Jessica2 } }, @@ -1868,9 +1868,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("JESSICA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Jessica3 } }, @@ -1882,9 +1882,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("JESSICA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Jessica4 } }, @@ -1896,9 +1896,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("JESSICA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Jessica5 } }, @@ -1912,7 +1912,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINSTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Winston1 } }, @@ -1924,9 +1924,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_F, .trainerName = _("MOLLIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Mollie } }, @@ -1940,7 +1940,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GARRET"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Garret } }, @@ -1954,7 +1954,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINSTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Winston2 } }, @@ -1968,7 +1968,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINSTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Winston3 } }, @@ -1982,7 +1982,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINSTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Winston4 } }, @@ -1996,7 +1996,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINSTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemCustomMoves = gTrainerParty_Winston5 } }, @@ -2008,9 +2008,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_POKEMANIAC, .trainerName = _("STEVE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Steve1 } }, @@ -2022,9 +2022,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("THALIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Thalia1 } }, @@ -2036,9 +2036,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_POKEMANIAC, .trainerName = _("MARK"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Mark } }, @@ -2050,9 +2050,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt24 } }, @@ -2064,9 +2064,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_POKEMANIAC, .trainerName = _("STEVE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Steve2 } }, @@ -2078,9 +2078,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_POKEMANIAC, .trainerName = _("STEVE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Steve3 } }, @@ -2092,9 +2092,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_POKEMANIAC, .trainerName = _("STEVE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Steve4 } }, @@ -2106,9 +2106,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_POKEMANIAC, .trainerName = _("STEVE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Steve5 } }, @@ -2120,9 +2120,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("LUIS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Luis } }, @@ -2134,9 +2134,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("DOMINIK"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Dominik } }, @@ -2148,9 +2148,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("DOUGLAS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Douglas } }, @@ -2162,9 +2162,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("DARRIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Darrin } }, @@ -2176,9 +2176,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("TONY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Tony1 } }, @@ -2190,9 +2190,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("JEROME"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jerome } }, @@ -2204,9 +2204,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("MATTHEW"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Matthew } }, @@ -2218,9 +2218,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("DAVID"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_David } }, @@ -2232,9 +2232,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("SPENCER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Spencer } }, @@ -2246,9 +2246,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("ROLAND"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Roland } }, @@ -2260,9 +2260,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("NOLEN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Nolen } }, @@ -2274,9 +2274,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("STAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Stan } }, @@ -2288,9 +2288,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("BARRY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Barry } }, @@ -2302,9 +2302,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("DEAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Dean } }, @@ -2316,9 +2316,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("RODNEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Rodney } }, @@ -2330,9 +2330,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("RICHARD"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Richard } }, @@ -2344,9 +2344,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("HERMAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Herman } }, @@ -2358,9 +2358,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("SANTIAGO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Santiago } }, @@ -2372,9 +2372,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("GILBERT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Gilbert } }, @@ -2386,9 +2386,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("FRANKLIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Franklin } }, @@ -2400,9 +2400,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("KEVIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Kevin } }, @@ -2414,9 +2414,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("JACK"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jack } }, @@ -2428,9 +2428,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("DUDLEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Dudley } }, @@ -2442,9 +2442,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("CHAD"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Chad } }, @@ -2456,9 +2456,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("TONY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Tony2 } }, @@ -2470,9 +2470,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("TONY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Tony3 } }, @@ -2484,9 +2484,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("TONY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Tony4 } }, @@ -2498,9 +2498,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("TONY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Tony5 } }, @@ -2512,9 +2512,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("TAKAO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Takao } }, @@ -2526,9 +2526,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("HITOSHI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Hitoshi } }, @@ -2540,9 +2540,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("KIYO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Kiyo } }, @@ -2554,9 +2554,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("KOICHI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Koichi } }, @@ -2568,9 +2568,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("NOB"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Nob1 } }, @@ -2582,9 +2582,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("NOB"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Nob2 } }, @@ -2596,9 +2596,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("NOB"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Nob3 } }, @@ -2610,9 +2610,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("NOB"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Nob4 } }, @@ -2624,9 +2624,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("NOB"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.ItemDefaultMoves = gTrainerParty_Nob5 } }, @@ -2638,9 +2638,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("YUJI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Yuji } }, @@ -2652,9 +2652,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("DAISUKE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Daisuke } }, @@ -2666,9 +2666,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("ATSUSHI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Atsushi } }, @@ -2680,9 +2680,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("KIRK"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Kirk } }, @@ -2694,9 +2694,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt25 } }, @@ -2708,9 +2708,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt26 } }, @@ -2722,9 +2722,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("SHAWN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Shawn } }, @@ -2736,9 +2736,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("FERNANDO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Fernando1 } }, @@ -2750,9 +2750,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("DALTON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Dalton1 } }, @@ -2764,9 +2764,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("DALTON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Dalton2 } }, @@ -2778,9 +2778,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("DALTON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Dalton3 } }, @@ -2792,9 +2792,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("DALTON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Dalton4 } }, @@ -2806,9 +2806,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("DALTON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Dalton5 } }, @@ -2820,9 +2820,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("COLE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Cole } }, @@ -2834,9 +2834,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("JEFF"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jeff } }, @@ -2848,9 +2848,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("AXLE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Axle } }, @@ -2862,9 +2862,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("JACE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jace } }, @@ -2876,9 +2876,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("KEEGAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Keegan } }, @@ -2890,9 +2890,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("BERNIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Bernie1 } }, @@ -2904,9 +2904,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("BERNIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Bernie2 } }, @@ -2918,9 +2918,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("BERNIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Bernie3 } }, @@ -2932,9 +2932,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("BERNIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Bernie4 } }, @@ -2946,9 +2946,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("BERNIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Bernie5 } }, @@ -2960,9 +2960,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("DREW"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Drew } }, @@ -2974,9 +2974,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("BEAU"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemCustomMoves = gTrainerParty_Beau } }, @@ -2988,9 +2988,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("LARRY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Larry } }, @@ -3002,9 +3002,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("SHANE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Shane } }, @@ -3016,9 +3016,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("JUSTIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Justin } }, @@ -3030,9 +3030,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("ETHAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Ethan1 } }, @@ -3044,9 +3044,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("AUTUMN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Autumn } }, @@ -3058,9 +3058,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("TRAVIS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Travis } }, @@ -3072,9 +3072,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("ETHAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Ethan2 } }, @@ -3086,9 +3086,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("ETHAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Ethan3 } }, @@ -3100,9 +3100,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("ETHAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Ethan4 } }, @@ -3114,9 +3114,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("ETHAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Ethan5 } }, @@ -3128,9 +3128,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_BUG_MANIAC, .trainerName = _("BRENT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Brent } }, @@ -3142,9 +3142,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_BUG_MANIAC, .trainerName = _("DONALD"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Donald } }, @@ -3156,9 +3156,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_BUG_MANIAC, .trainerName = _("TAYLOR"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Taylor } }, @@ -3170,9 +3170,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_BUG_MANIAC, .trainerName = _("JEFFREY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Jeffrey1 } }, @@ -3184,9 +3184,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_BUG_MANIAC, .trainerName = _("DEREK"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Derek } }, @@ -3198,9 +3198,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_BUG_MANIAC, .trainerName = _("JEFFREY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Jeffrey2 } }, @@ -3212,9 +3212,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_BUG_MANIAC, .trainerName = _("JEFFREY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Jeffrey3 } }, @@ -3226,9 +3226,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_BUG_MANIAC, .trainerName = _("JEFFREY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Jeffrey4 } }, @@ -3240,9 +3240,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_BUG_MANIAC, .trainerName = _("JEFFREY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 5, .party = {.ItemDefaultMoves = gTrainerParty_Jeffrey5 } }, @@ -3254,9 +3254,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("EDWARD"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Edward } }, @@ -3268,9 +3268,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("PRESTON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Preston } }, @@ -3282,9 +3282,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("VIRGIL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Virgil } }, @@ -3296,9 +3296,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("BLAKE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Blake } }, @@ -3310,9 +3310,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("WILLIAM"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_William } }, @@ -3324,9 +3324,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("JOSHUA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Joshua } }, @@ -3338,9 +3338,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("CAMERON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Cameron1 } }, @@ -3352,9 +3352,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("CAMERON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Cameron2 } }, @@ -3366,9 +3366,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("CAMERON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Cameron3 } }, @@ -3380,9 +3380,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("CAMERON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Cameron4 } }, @@ -3394,9 +3394,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("CAMERON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Cameron5 } }, @@ -3408,9 +3408,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("JACLYN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Jaclyn } }, @@ -3422,9 +3422,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("HANNAH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Hannah } }, @@ -3436,9 +3436,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("SAMANTHA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Samantha } }, @@ -3450,9 +3450,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("MAURA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Maura } }, @@ -3464,9 +3464,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("KAYLA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Kayla } }, @@ -3478,9 +3478,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("ALEXIS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Alexis } }, @@ -3492,9 +3492,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("JACKI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jacki1 } }, @@ -3506,9 +3506,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("JACKI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jacki2 } }, @@ -3520,9 +3520,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("JACKI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jacki3 } }, @@ -3534,9 +3534,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("JACKI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jacki4 } }, @@ -3548,9 +3548,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("JACKI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jacki5 } }, @@ -3562,9 +3562,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH, .trainerPic = TRAINER_PIC_GENTLEMAN, .trainerName = _("WALTER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Walter1 } }, @@ -3576,9 +3576,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH, .trainerPic = TRAINER_PIC_GENTLEMAN, .trainerName = _("MICAH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Micah } }, @@ -3590,9 +3590,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH, .trainerPic = TRAINER_PIC_GENTLEMAN, .trainerName = _("THOMAS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Thomas } }, @@ -3604,9 +3604,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH, .trainerPic = TRAINER_PIC_GENTLEMAN, .trainerName = _("WALTER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Walter2 } }, @@ -3618,9 +3618,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH, .trainerPic = TRAINER_PIC_GENTLEMAN, .trainerName = _("WALTER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Walter3 } }, @@ -3632,9 +3632,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH, .trainerPic = TRAINER_PIC_GENTLEMAN, .trainerName = _("WALTER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Walter4 } }, @@ -3646,9 +3646,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH, .trainerPic = TRAINER_PIC_GENTLEMAN, .trainerName = _("WALTER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemCustomMoves = gTrainerParty_Walter5 } }, @@ -3662,7 +3662,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SIDNEY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0xf, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Sidney } }, @@ -3676,7 +3676,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PHOEBE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Phoebe } }, @@ -3690,7 +3690,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GLACIA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Glacia } }, @@ -3704,7 +3704,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DRAKE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Drake } }, @@ -3718,7 +3718,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROXANNE"), .items = {ITEM_POTION, ITEM_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.ItemCustomMoves = gTrainerParty_Roxanne1 } }, @@ -3732,7 +3732,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRAWLY"), .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.ItemCustomMoves = gTrainerParty_Brawly1 } }, @@ -3746,7 +3746,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WATTSON"), .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.ItemCustomMoves = gTrainerParty_Wattson1 } }, @@ -3760,7 +3760,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FLANNERY"), .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.ItemCustomMoves = gTrainerParty_Flannery1 } }, @@ -3774,7 +3774,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NORMAN"), .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.ItemCustomMoves = gTrainerParty_Norman1 } }, @@ -3788,7 +3788,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINONA"), .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x17, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Winona1 } }, @@ -3802,7 +3802,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TATE&LIZA"), .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_HYPER_POTION}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza1 } }, @@ -3816,7 +3816,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JUAN"), .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Juan1 } }, @@ -3828,9 +3828,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SCHOOL_KID_M, .trainerName = _("JERRY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jerry1 } }, @@ -3842,9 +3842,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SCHOOL_KID_M, .trainerName = _("TED"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Ted } }, @@ -3856,9 +3856,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SCHOOL_KID_M, .trainerName = _("PAUL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Paul } }, @@ -3870,9 +3870,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SCHOOL_KID_M, .trainerName = _("JERRY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jerry2 } }, @@ -3884,9 +3884,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SCHOOL_KID_M, .trainerName = _("JERRY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jerry3 } }, @@ -3898,9 +3898,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SCHOOL_KID_M, .trainerName = _("JERRY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jerry4 } }, @@ -3912,9 +3912,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SCHOOL_KID_M, .trainerName = _("JERRY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Jerry5 } }, @@ -3926,9 +3926,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_SCHOOL_KID_F, .trainerName = _("KAREN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Karen1 } }, @@ -3940,9 +3940,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_SCHOOL_KID_F, .trainerName = _("GEORGIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Georgia } }, @@ -3954,9 +3954,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_SCHOOL_KID_F, .trainerName = _("KAREN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Karen2 } }, @@ -3968,9 +3968,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_SCHOOL_KID_F, .trainerName = _("KAREN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Karen3 } }, @@ -3982,9 +3982,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_SCHOOL_KID_F, .trainerName = _("KAREN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Karen4 } }, @@ -3996,9 +3996,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_SCHOOL_KID_F, .trainerName = _("KAREN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Karen5 } }, @@ -4010,9 +4010,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_SR_AND_JR, .trainerName = _("KATE & JOY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_KateAndJoy } }, @@ -4024,9 +4024,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_SR_AND_JR, .trainerName = _("ANNA & MEG"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg1 } }, @@ -4038,9 +4038,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_SR_AND_JR, .trainerName = _("ANNA & MEG"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg2 } }, @@ -4052,9 +4052,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_SR_AND_JR, .trainerName = _("ANNA & MEG"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg3 } }, @@ -4066,9 +4066,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_SR_AND_JR, .trainerName = _("ANNA & MEG"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg4 } }, @@ -4080,9 +4080,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_SR_AND_JR, .trainerName = _("ANNA & MEG"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg5 } }, @@ -4094,9 +4094,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_M, .trainerName = _("VICTOR"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.ItemDefaultMoves = gTrainerParty_Victor } }, @@ -4108,9 +4108,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_M, .trainerName = _("MIGUEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Miguel1 } }, @@ -4122,9 +4122,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_M, .trainerName = _("COLTON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Colton } }, @@ -4136,9 +4136,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_M, .trainerName = _("MIGUEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Miguel2 } }, @@ -4150,9 +4150,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_M, .trainerName = _("MIGUEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Miguel3 } }, @@ -4164,9 +4164,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_M, .trainerName = _("MIGUEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Miguel4 } }, @@ -4178,9 +4178,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_M, .trainerName = _("MIGUEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Miguel5 } }, @@ -4192,9 +4192,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_F, .trainerName = _("VICTORIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x3, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Victoria } }, @@ -4206,9 +4206,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_F, .trainerName = _("VANESSA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.ItemDefaultMoves = gTrainerParty_Vanessa } }, @@ -4220,9 +4220,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_F, .trainerName = _("BETHANY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.ItemDefaultMoves = gTrainerParty_Bethany } }, @@ -4234,9 +4234,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_F, .trainerName = _("ISABEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.ItemDefaultMoves = gTrainerParty_Isabel1 } }, @@ -4248,9 +4248,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_F, .trainerName = _("ISABEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.ItemDefaultMoves = gTrainerParty_Isabel2 } }, @@ -4262,9 +4262,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_F, .trainerName = _("ISABEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.ItemDefaultMoves = gTrainerParty_Isabel3 } }, @@ -4276,9 +4276,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_F, .trainerName = _("ISABEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.ItemDefaultMoves = gTrainerParty_Isabel4 } }, @@ -4290,9 +4290,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_F, .trainerName = _("ISABEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.ItemDefaultMoves = gTrainerParty_Isabel5 } }, @@ -4304,9 +4304,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_M, .trainerName = _("TIMOTHY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Timothy1 } }, @@ -4318,9 +4318,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_M, .trainerName = _("TIMOTHY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Timothy2 } }, @@ -4332,9 +4332,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_M, .trainerName = _("TIMOTHY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Timothy3 } }, @@ -4346,9 +4346,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_M, .trainerName = _("TIMOTHY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Timothy4 } }, @@ -4360,9 +4360,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_M, .trainerName = _("TIMOTHY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Timothy5 } }, @@ -4374,9 +4374,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_F, .trainerName = _("VICKY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Vicky } }, @@ -4388,9 +4388,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_F, .trainerName = _("SHELBY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Shelby1 } }, @@ -4402,9 +4402,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_F, .trainerName = _("SHELBY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Shelby2 } }, @@ -4416,9 +4416,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_F, .trainerName = _("SHELBY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Shelby3 } }, @@ -4430,9 +4430,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_F, .trainerName = _("SHELBY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Shelby4 } }, @@ -4444,9 +4444,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_F, .trainerName = _("SHELBY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Shelby5 } }, @@ -4458,9 +4458,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("CALVIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Calvin1 } }, @@ -4472,9 +4472,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("BILLY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Billy } }, @@ -4486,9 +4486,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("JOSH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Josh } }, @@ -4500,9 +4500,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("TOMMY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Tommy } }, @@ -4514,9 +4514,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("JOEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Joey } }, @@ -4528,9 +4528,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("BEN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Ben } }, @@ -4544,7 +4544,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("QUINCY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Quincy } }, @@ -4558,7 +4558,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KATELYNN"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Katelynn } }, @@ -4570,9 +4570,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("JAYLEN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jaylen } }, @@ -4584,9 +4584,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("DILLON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Dillon } }, @@ -4598,9 +4598,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("CALVIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Calvin2 } }, @@ -4612,9 +4612,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("CALVIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Calvin3 } }, @@ -4626,9 +4626,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("CALVIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Calvin4 } }, @@ -4640,9 +4640,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("CALVIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Calvin5 } }, @@ -4654,9 +4654,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("EDDIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Eddie } }, @@ -4668,9 +4668,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("ALLEN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Allen } }, @@ -4682,9 +4682,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("TIMMY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Timmy } }, @@ -4698,7 +4698,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLACE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Wallace } }, @@ -4710,9 +4710,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("ANDREW"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Andrew } }, @@ -4724,9 +4724,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("IVAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Ivan } }, @@ -4738,9 +4738,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("CLAUDE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Claude } }, @@ -4752,9 +4752,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("ELLIOT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Elliot1 } }, @@ -4766,9 +4766,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("NED"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Ned } }, @@ -4780,9 +4780,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("DALE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Dale } }, @@ -4794,9 +4794,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("NOLAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Nolan } }, @@ -4808,9 +4808,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("BARNY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Barny } }, @@ -4822,9 +4822,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("WADE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Wade } }, @@ -4836,9 +4836,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("CARTER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Carter } }, @@ -4850,9 +4850,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("ELLIOT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Elliot2 } }, @@ -4864,9 +4864,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("ELLIOT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Elliot3 } }, @@ -4878,9 +4878,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("ELLIOT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Elliot4 } }, @@ -4892,9 +4892,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("ELLIOT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x3, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Elliot5 } }, @@ -4906,9 +4906,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("RONALD"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Ronald } }, @@ -4920,9 +4920,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M, .trainerName = _("JACOB"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Jacob } }, @@ -4934,9 +4934,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M, .trainerName = _("ANTHONY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Anthony } }, @@ -4948,9 +4948,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M, .trainerName = _("BENJAMIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin1 } }, @@ -4962,9 +4962,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M, .trainerName = _("BENJAMIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin2 } }, @@ -4976,9 +4976,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M, .trainerName = _("BENJAMIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin3 } }, @@ -4990,9 +4990,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M, .trainerName = _("BENJAMIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin4 } }, @@ -5004,9 +5004,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M, .trainerName = _("BENJAMIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin5 } }, @@ -5018,9 +5018,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F, .trainerName = _("ABIGAIL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Abigail1 } }, @@ -5032,9 +5032,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F, .trainerName = _("JASMINE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Jasmine } }, @@ -5046,9 +5046,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F, .trainerName = _("ABIGAIL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Abigail2 } }, @@ -5060,9 +5060,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F, .trainerName = _("ABIGAIL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Abigail3 } }, @@ -5074,9 +5074,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F, .trainerName = _("ABIGAIL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Abigail4 } }, @@ -5088,9 +5088,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F, .trainerName = _("ABIGAIL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Abigail5 } }, @@ -5102,9 +5102,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_M, .trainerName = _("DYLAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Dylan1 } }, @@ -5116,9 +5116,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_M, .trainerName = _("DYLAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Dylan2 } }, @@ -5130,9 +5130,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_M, .trainerName = _("DYLAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Dylan3 } }, @@ -5144,9 +5144,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_M, .trainerName = _("DYLAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Dylan4 } }, @@ -5158,9 +5158,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_M, .trainerName = _("DYLAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Dylan5 } }, @@ -5172,9 +5172,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F, .trainerName = _("MARIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Maria1 } }, @@ -5186,9 +5186,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F, .trainerName = _("MARIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Maria2 } }, @@ -5200,9 +5200,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F, .trainerName = _("MARIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Maria3 } }, @@ -5214,9 +5214,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F, .trainerName = _("MARIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Maria4 } }, @@ -5228,9 +5228,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F, .trainerName = _("MARIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Maria5 } }, @@ -5242,9 +5242,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("CAMDEN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Camden } }, @@ -5256,9 +5256,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("DEMETRIUS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Demetrius } }, @@ -5270,9 +5270,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("ISAIAH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah1 } }, @@ -5284,9 +5284,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("PABLO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Pablo1 } }, @@ -5298,9 +5298,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("CHASE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Chase } }, @@ -5312,9 +5312,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("ISAIAH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah2 } }, @@ -5326,9 +5326,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("ISAIAH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah3 } }, @@ -5340,9 +5340,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("ISAIAH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah4 } }, @@ -5354,9 +5354,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("ISAIAH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah5 } }, @@ -5368,9 +5368,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F, .trainerName = _("ISOBEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Isobel } }, @@ -5382,9 +5382,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F, .trainerName = _("DONNY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Donny } }, @@ -5396,9 +5396,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F, .trainerName = _("TALIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Talia } }, @@ -5410,9 +5410,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F, .trainerName = _("KATELYN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn1 } }, @@ -5424,9 +5424,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F, .trainerName = _("ALLISON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Allison } }, @@ -5438,9 +5438,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F, .trainerName = _("KATELYN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn2 } }, @@ -5452,9 +5452,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F, .trainerName = _("KATELYN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn3 } }, @@ -5466,9 +5466,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F, .trainerName = _("KATELYN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn4 } }, @@ -5480,9 +5480,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F, .trainerName = _("KATELYN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn5 } }, @@ -5494,9 +5494,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_DRAGON_TAMER, .trainerName = _("NICOLAS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Nicolas1 } }, @@ -5508,9 +5508,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_DRAGON_TAMER, .trainerName = _("NICOLAS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Nicolas2 } }, @@ -5522,9 +5522,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_DRAGON_TAMER, .trainerName = _("NICOLAS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Nicolas3 } }, @@ -5536,9 +5536,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_DRAGON_TAMER, .trainerName = _("NICOLAS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Nicolas4 } }, @@ -5550,9 +5550,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_DRAGON_TAMER, .trainerName = _("NICOLAS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.ItemDefaultMoves = gTrainerParty_Nicolas5 } }, @@ -5564,9 +5564,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_DRAGON_TAMER, .trainerName = _("AARON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Aaron } }, @@ -5578,9 +5578,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("PERRY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Perry } }, @@ -5592,9 +5592,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("HUGH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Hugh } }, @@ -5606,9 +5606,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("PHIL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Phil } }, @@ -5620,9 +5620,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("JARED"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Jared } }, @@ -5634,9 +5634,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("HUMBERTO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Humberto } }, @@ -5648,9 +5648,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("PRESLEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Presley } }, @@ -5662,9 +5662,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("EDWARDO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Edwardo } }, @@ -5676,9 +5676,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("COLIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Colin } }, @@ -5690,9 +5690,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("ROBERT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Robert1 } }, @@ -5704,9 +5704,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("BENNY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Benny } }, @@ -5718,9 +5718,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("CHESTER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Chester } }, @@ -5732,9 +5732,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("ROBERT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Robert2 } }, @@ -5746,9 +5746,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("ROBERT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Robert3 } }, @@ -5760,9 +5760,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("ROBERT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Robert4 } }, @@ -5774,9 +5774,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("ROBERT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Robert5 } }, @@ -5788,9 +5788,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("ALEX"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Alex } }, @@ -5802,9 +5802,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("BECK"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Beck } }, @@ -5816,9 +5816,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("YASU"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x3, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Yasu } }, @@ -5830,9 +5830,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("TAKASHI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x3, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Takashi } }, @@ -5846,7 +5846,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DIANNE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 2, .party = {.ItemCustomMoves = gTrainerParty_Dianne } }, @@ -5858,9 +5858,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("JANI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jani } }, @@ -5872,9 +5872,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("LAO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 3, .party = {.NoItemCustomMoves = gTrainerParty_Lao1 } }, @@ -5886,9 +5886,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("LUNG"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Lung } }, @@ -5900,9 +5900,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("LAO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 4, .party = {.NoItemCustomMoves = gTrainerParty_Lao2 } }, @@ -5914,9 +5914,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("LAO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 4, .party = {.NoItemCustomMoves = gTrainerParty_Lao3 } }, @@ -5928,9 +5928,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("LAO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 4, .party = {.NoItemCustomMoves = gTrainerParty_Lao4 } }, @@ -5942,9 +5942,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("LAO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 4, .party = {.ItemCustomMoves = gTrainerParty_Lao5 } }, @@ -5956,9 +5956,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("JOCELYN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jocelyn } }, @@ -5970,9 +5970,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("LAURA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Laura } }, @@ -5984,9 +5984,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("CYNDY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy1 } }, @@ -5998,9 +5998,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("CORA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Cora } }, @@ -6012,9 +6012,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("PAULA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Paula } }, @@ -6026,9 +6026,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("CYNDY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy2 } }, @@ -6040,9 +6040,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("CYNDY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy3 } }, @@ -6054,9 +6054,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("CYNDY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy4 } }, @@ -6068,9 +6068,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("CYNDY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy5 } }, @@ -6082,9 +6082,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_PARASOL_LADY, .trainerName = _("MADELINE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Madeline1 } }, @@ -6096,9 +6096,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_PARASOL_LADY, .trainerName = _("CLARISSA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Clarissa } }, @@ -6110,9 +6110,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_PARASOL_LADY, .trainerName = _("ANGELICA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Angelica } }, @@ -6124,9 +6124,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_PARASOL_LADY, .trainerName = _("MADELINE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Madeline2 } }, @@ -6138,9 +6138,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_PARASOL_LADY, .trainerName = _("MADELINE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Madeline3 } }, @@ -6152,9 +6152,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_PARASOL_LADY, .trainerName = _("MADELINE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Madeline4 } }, @@ -6166,9 +6166,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_PARASOL_LADY, .trainerName = _("MADELINE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Madeline5 } }, @@ -6180,9 +6180,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("BEVERLY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Beverly } }, @@ -6194,9 +6194,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("IMANI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Imani } }, @@ -6208,9 +6208,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("KYLA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Kyla } }, @@ -6222,9 +6222,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("DENISE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Denise } }, @@ -6236,9 +6236,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("BETH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Beth } }, @@ -6250,9 +6250,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("TARA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Tara } }, @@ -6264,9 +6264,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("MISSY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Missy } }, @@ -6278,9 +6278,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("ALICE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Alice } }, @@ -6292,9 +6292,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("JENNY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jenny1 } }, @@ -6306,9 +6306,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("GRACE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grace } }, @@ -6320,9 +6320,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("TANYA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Tanya } }, @@ -6334,9 +6334,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("SHARON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Sharon } }, @@ -6348,9 +6348,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("NIKKI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Nikki } }, @@ -6362,9 +6362,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("BRENDA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Brenda } }, @@ -6376,9 +6376,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("KATIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Katie } }, @@ -6390,9 +6390,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("SUSIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Susie } }, @@ -6404,9 +6404,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("KARA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Kara } }, @@ -6418,9 +6418,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("DANA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Dana } }, @@ -6432,9 +6432,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("SIENNA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Sienna } }, @@ -6446,9 +6446,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("DEBRA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Debra } }, @@ -6460,9 +6460,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("LINDA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Linda } }, @@ -6474,9 +6474,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("KAYLEE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Kaylee } }, @@ -6488,9 +6488,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("LAUREL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Laurel } }, @@ -6502,9 +6502,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("CARLEE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Carlee } }, @@ -6516,9 +6516,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("JENNY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jenny2 } }, @@ -6530,9 +6530,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("JENNY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jenny3 } }, @@ -6544,9 +6544,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("JENNY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jenny4 } }, @@ -6558,9 +6558,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("JENNY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Jenny5 } }, @@ -6572,9 +6572,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("HEIDI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Heidi } }, @@ -6586,9 +6586,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("BECKY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Becky } }, @@ -6600,9 +6600,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("CAROL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Carol } }, @@ -6614,9 +6614,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("NANCY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Nancy } }, @@ -6628,9 +6628,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("MARTHA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Martha } }, @@ -6642,9 +6642,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("DIANA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Diana1 } }, @@ -6656,9 +6656,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("CEDRIC"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Cedric } }, @@ -6670,9 +6670,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("IRENE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Irene } }, @@ -6684,9 +6684,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("DIANA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Diana2 } }, @@ -6698,9 +6698,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("DIANA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Diana3 } }, @@ -6712,9 +6712,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("DIANA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Diana4 } }, @@ -6726,9 +6726,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("DIANA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Diana5 } }, @@ -6740,9 +6740,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_TWINS, .trainerName = _("AMY & LIV"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_AmyAndLiv1 } }, @@ -6754,9 +6754,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_TWINS, .trainerName = _("AMY & LIV"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_AmyAndLiv2 } }, @@ -6768,9 +6768,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_TWINS, .trainerName = _("GINA & MIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_GinaAndMia1 } }, @@ -6782,9 +6782,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_TWINS, .trainerName = _("MIU & YUKI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_MiuAndYuki } }, @@ -6796,9 +6796,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_TWINS, .trainerName = _("AMY & LIV"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_AmyAndLiv3 } }, @@ -6810,9 +6810,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_TWINS, .trainerName = _("GINA & MIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_GinaAndMia2 } }, @@ -6824,9 +6824,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_TWINS, .trainerName = _("AMY & LIV"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_AmyAndLiv4 } }, @@ -6838,9 +6838,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_TWINS, .trainerName = _("AMY & LIV"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_AmyAndLiv5 } }, @@ -6852,9 +6852,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_TWINS, .trainerName = _("AMY & LIV"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_AmyAndLiv6 } }, @@ -6866,9 +6866,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("HUEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Huey } }, @@ -6880,9 +6880,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("EDMOND"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Edmond } }, @@ -6894,9 +6894,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("ERNEST"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Ernest1 } }, @@ -6908,9 +6908,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("DWAYNE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Dwayne } }, @@ -6922,9 +6922,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("PHILLIP"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Phillip } }, @@ -6936,9 +6936,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("LEONARD"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Leonard } }, @@ -6950,9 +6950,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("DUNCAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Duncan } }, @@ -6964,9 +6964,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("ERNEST"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Ernest2 } }, @@ -6978,9 +6978,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("ERNEST"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Ernest3 } }, @@ -6992,9 +6992,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("ERNEST"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Ernest4 } }, @@ -7006,9 +7006,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("ERNEST"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Ernest5 } }, @@ -7020,9 +7020,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("ELI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Eli } }, @@ -7034,9 +7034,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_F, .trainerName = _("ANNIKA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.ItemCustomMoves = gTrainerParty_Annika } }, @@ -7050,7 +7050,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JAZMYN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jazmyn } }, @@ -7062,9 +7062,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("JONAS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Jonas } }, @@ -7076,9 +7076,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_PARASOL_LADY, .trainerName = _("KAYLEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Kayley } }, @@ -7090,9 +7090,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_M, .trainerName = _("AURON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Auron } }, @@ -7104,9 +7104,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("KELVIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Kelvin } }, @@ -7120,7 +7120,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARLEY"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.ItemCustomMoves = gTrainerParty_Marley } }, @@ -7132,9 +7132,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("REYNA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Reyna } }, @@ -7146,9 +7146,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("HUDSON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Hudson } }, @@ -7160,9 +7160,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_M, .trainerName = _("CONOR"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Conor } }, @@ -7174,9 +7174,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_COLLECTOR, .trainerName = _("EDWIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Edwin1 } }, @@ -7188,9 +7188,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_COLLECTOR, .trainerName = _("HECTOR"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Hector } }, @@ -7202,9 +7202,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_ADMIN, .trainerName = _("TABITHA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Tabitha1 } }, @@ -7216,9 +7216,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_COLLECTOR, .trainerName = _("EDWIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Edwin2 } }, @@ -7230,9 +7230,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_COLLECTOR, .trainerName = _("EDWIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Edwin3 } }, @@ -7244,9 +7244,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_COLLECTOR, .trainerName = _("EDWIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Edwin4 } }, @@ -7258,9 +7258,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_COLLECTOR, .trainerName = _("EDWIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Edwin5 } }, @@ -7274,7 +7274,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.NoItemCustomMoves = gTrainerParty_Wally1 } }, @@ -7286,9 +7286,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan1 } }, @@ -7300,9 +7300,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan2 } }, @@ -7314,9 +7314,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan3 } }, @@ -7328,9 +7328,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan4 } }, @@ -7342,9 +7342,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan5 } }, @@ -7356,9 +7356,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan6 } }, @@ -7370,9 +7370,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan7 } }, @@ -7384,9 +7384,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan8 } }, @@ -7398,9 +7398,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan9 } }, @@ -7412,9 +7412,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_May1 } }, @@ -7426,9 +7426,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_May2 } }, @@ -7440,9 +7440,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_May3 } }, @@ -7454,9 +7454,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_May4 } }, @@ -7468,9 +7468,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_May5 } }, @@ -7482,9 +7482,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_May6 } }, @@ -7496,9 +7496,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_May7 } }, @@ -7510,9 +7510,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_May8 } }, @@ -7524,9 +7524,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_May9 } }, @@ -7538,9 +7538,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_M, .trainerName = _("ISAAC"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Isaac1 } }, @@ -7552,9 +7552,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BUG_CATCHER, .trainerName = _("DAVIS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Davis } }, @@ -7566,9 +7566,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_COOL_TRAINER_M, .trainerName = _("MITCHELL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Mitchell } }, @@ -7580,9 +7580,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_M, .trainerName = _("ISAAC"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Isaac2 } }, @@ -7594,9 +7594,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_M, .trainerName = _("ISAAC"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Isaac3 } }, @@ -7608,9 +7608,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_M, .trainerName = _("ISAAC"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Isaac4 } }, @@ -7622,9 +7622,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_M, .trainerName = _("ISAAC"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Isaac5 } }, @@ -7636,9 +7636,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F, .trainerName = _("LYDIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Lydia1 } }, @@ -7652,7 +7652,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HALLE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Halle } }, @@ -7664,9 +7664,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("GARRISON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Garrison } }, @@ -7678,9 +7678,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F, .trainerName = _("LYDIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Lydia2 } }, @@ -7692,9 +7692,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F, .trainerName = _("LYDIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Lydia3 } }, @@ -7706,9 +7706,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F, .trainerName = _("LYDIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Lydia4 } }, @@ -7720,9 +7720,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F, .trainerName = _("LYDIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Lydia5 } }, @@ -7736,7 +7736,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKSON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jackson1 } }, @@ -7750,7 +7750,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LORENZO"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Lorenzo } }, @@ -7764,7 +7764,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SEBASTIAN"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Sebastian } }, @@ -7778,7 +7778,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKSON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jackson2 } }, @@ -7792,7 +7792,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKSON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jackson3 } }, @@ -7806,7 +7806,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKSON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Jackson4 } }, @@ -7820,7 +7820,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKSON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jackson5 } }, @@ -7834,7 +7834,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CATHERINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Catherine1 } }, @@ -7848,7 +7848,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JENNA"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Jenna } }, @@ -7862,7 +7862,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SOPHIA"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Sophia } }, @@ -7876,7 +7876,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CATHERINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Catherine2 } }, @@ -7890,7 +7890,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CATHERINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Catherine3 } }, @@ -7904,7 +7904,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CATHERINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Catherine4 } }, @@ -7918,7 +7918,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CATHERINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Catherine5 } }, @@ -7930,9 +7930,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M, .trainerName = _("JULIO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Julio } }, @@ -7944,9 +7944,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt27 } }, @@ -7958,9 +7958,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt28 } }, @@ -7972,9 +7972,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt29 } }, @@ -7986,9 +7986,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt30 } }, @@ -8000,9 +8000,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("MARC"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Marc } }, @@ -8014,9 +8014,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("BRENDEN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Brenden } }, @@ -8028,9 +8028,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("LILITH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Lilith } }, @@ -8042,9 +8042,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("CRISTIAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Cristian } }, @@ -8056,9 +8056,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_HEX_MANIAC, .trainerName = _("SYLVIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Sylvia } }, @@ -8070,9 +8070,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("LEONARDO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Leonardo } }, @@ -8086,7 +8086,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ATHENA"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.ItemCustomMoves = gTrainerParty_Athena } }, @@ -8098,9 +8098,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("HARRISON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Harrison } }, @@ -8112,9 +8112,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt31 } }, @@ -8126,9 +8126,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("CLARENCE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Clarence } }, @@ -8140,9 +8140,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("TERRY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Terry } }, @@ -8154,9 +8154,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH, .trainerPic = TRAINER_PIC_GENTLEMAN, .trainerName = _("NATE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Nate } }, @@ -8168,9 +8168,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_HEX_MANIAC, .trainerName = _("KATHLEEN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Kathleen } }, @@ -8182,9 +8182,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH, .trainerPic = TRAINER_PIC_GENTLEMAN, .trainerName = _("CLIFFORD"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Clifford } }, @@ -8196,9 +8196,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("NICHOLAS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Nicholas } }, @@ -8210,9 +8210,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt32 } }, @@ -8224,9 +8224,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt33 } }, @@ -8238,9 +8238,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt34 } }, @@ -8252,9 +8252,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt35 } }, @@ -8266,9 +8266,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt36 } }, @@ -8280,9 +8280,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("MACEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Macey } }, @@ -8294,9 +8294,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan10 } }, @@ -8308,9 +8308,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan11 } }, @@ -8322,9 +8322,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_EXPERT_M, .trainerName = _("PAXTON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Paxton } }, @@ -8336,9 +8336,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F, .trainerName = _("ISABELLA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Isabella } }, @@ -8350,9 +8350,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA, .trainerPic = TRAINER_PIC_AQUA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt37 } }, @@ -8364,9 +8364,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_ADMIN, .trainerName = _("TABITHA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Tabitha2 } }, @@ -8380,7 +8380,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JONATHAN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jonathan } }, @@ -8392,9 +8392,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan12 } }, @@ -8406,9 +8406,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_May10 } }, @@ -8422,7 +8422,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAXIE"), .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Maxie1 } }, @@ -8436,7 +8436,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAXIE"), .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Maxie2 } }, @@ -8448,9 +8448,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_LASS, .trainerName = _("TIANA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Tiana } }, @@ -8462,9 +8462,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_LASS, .trainerName = _("HALEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Haley1 } }, @@ -8476,9 +8476,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_LASS, .trainerName = _("JANICE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Janice } }, @@ -8490,9 +8490,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_LASS, .trainerName = _("VIVI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Vivi } }, @@ -8504,9 +8504,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_LASS, .trainerName = _("HALEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Haley2 } }, @@ -8518,9 +8518,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_LASS, .trainerName = _("HALEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Haley3 } }, @@ -8532,9 +8532,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_LASS, .trainerName = _("HALEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Haley4 } }, @@ -8546,9 +8546,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_LASS, .trainerName = _("HALEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Haley5 } }, @@ -8560,9 +8560,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_LASS, .trainerName = _("SALLY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Sally } }, @@ -8574,9 +8574,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_LASS, .trainerName = _("ROBIN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Robin } }, @@ -8588,9 +8588,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_LASS, .trainerName = _("ANDREA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Andrea } }, @@ -8602,9 +8602,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_LASS, .trainerName = _("CRISSY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Crissy } }, @@ -8616,9 +8616,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BUG_CATCHER, .trainerName = _("RICK"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Rick } }, @@ -8630,9 +8630,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BUG_CATCHER, .trainerName = _("LYLE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Lyle } }, @@ -8644,9 +8644,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BUG_CATCHER, .trainerName = _("JOSE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jose } }, @@ -8658,9 +8658,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BUG_CATCHER, .trainerName = _("DOUG"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Doug } }, @@ -8672,9 +8672,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BUG_CATCHER, .trainerName = _("GREG"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Greg } }, @@ -8686,9 +8686,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BUG_CATCHER, .trainerName = _("KENT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Kent } }, @@ -8700,9 +8700,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BUG_CATCHER, .trainerName = _("JAMES"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_James1 } }, @@ -8714,9 +8714,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BUG_CATCHER, .trainerName = _("JAMES"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_James2 } }, @@ -8728,9 +8728,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BUG_CATCHER, .trainerName = _("JAMES"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_James3 } }, @@ -8742,9 +8742,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BUG_CATCHER, .trainerName = _("JAMES"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_James4 } }, @@ -8756,9 +8756,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BUG_CATCHER, .trainerName = _("JAMES"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_James5 } }, @@ -8770,9 +8770,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("BRICE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Brice } }, @@ -8784,9 +8784,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("TRENT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Trent1 } }, @@ -8798,9 +8798,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("LENNY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Lenny } }, @@ -8812,9 +8812,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("LUCAS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Lucas1 } }, @@ -8826,9 +8826,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("ALAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Alan } }, @@ -8840,9 +8840,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("CLARK"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Clark } }, @@ -8854,9 +8854,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("ERIC"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Eric } }, @@ -8868,9 +8868,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("LUCAS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Lucas2 } }, @@ -8882,9 +8882,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("MIKE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Mike1 } }, @@ -8896,9 +8896,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("MIKE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Mike2 } }, @@ -8910,9 +8910,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("TRENT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Trent2 } }, @@ -8924,9 +8924,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("TRENT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Trent3 } }, @@ -8938,9 +8938,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("TRENT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Trent4 } }, @@ -8952,9 +8952,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("TRENT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Trent5 } }, @@ -8966,9 +8966,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_YOUNG_COUPLE, .trainerName = _("DEZ & LUKE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_DezAndLuke } }, @@ -8980,9 +8980,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_YOUNG_COUPLE, .trainerName = _("LEA & JED"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_LeaAndJed } }, @@ -8994,9 +8994,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_YOUNG_COUPLE, .trainerName = _("KIRA & DAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan1 } }, @@ -9008,9 +9008,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_YOUNG_COUPLE, .trainerName = _("KIRA & DAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan2 } }, @@ -9022,9 +9022,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_YOUNG_COUPLE, .trainerName = _("KIRA & DAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan3 } }, @@ -9036,9 +9036,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_YOUNG_COUPLE, .trainerName = _("KIRA & DAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan4 } }, @@ -9050,9 +9050,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_YOUNG_COUPLE, .trainerName = _("KIRA & DAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan5 } }, @@ -9064,9 +9064,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("JOHANNA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Johanna } }, @@ -9080,7 +9080,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GERALD"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Gerald } }, @@ -9092,9 +9092,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("VIVIAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Vivian } }, @@ -9106,9 +9106,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("DANIELLE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Danielle } }, @@ -9120,9 +9120,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("HIDEO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x3, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Hideo } }, @@ -9134,9 +9134,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("KEIGO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x3, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Keigo } }, @@ -9148,9 +9148,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("RILEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x3, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_Riley } }, @@ -9162,9 +9162,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("FLINT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Flint } }, @@ -9176,9 +9176,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("ASHLEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Ashley } }, @@ -9190,9 +9190,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_WALLY, .trainerName = _("WALLY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Wally2 } }, @@ -9206,7 +9206,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.NoItemCustomMoves = gTrainerParty_Wally3 } }, @@ -9220,7 +9220,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.NoItemCustomMoves = gTrainerParty_Wally4 } }, @@ -9234,7 +9234,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.NoItemCustomMoves = gTrainerParty_Wally5 } }, @@ -9248,7 +9248,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.NoItemCustomMoves = gTrainerParty_Wally6 } }, @@ -9260,9 +9260,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan13 } }, @@ -9274,9 +9274,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan14 } }, @@ -9288,9 +9288,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan15 } }, @@ -9302,9 +9302,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_May11 } }, @@ -9316,9 +9316,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_May12 } }, @@ -9330,9 +9330,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_May13 } }, @@ -9344,9 +9344,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("JONAH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Jonah } }, @@ -9358,9 +9358,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("HENRY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Henry } }, @@ -9372,9 +9372,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("ROGER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Roger } }, @@ -9388,7 +9388,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALEXA"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Alexa } }, @@ -9402,7 +9402,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RUBEN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Ruben } }, @@ -9414,9 +9414,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("KOJI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Koji1 } }, @@ -9428,9 +9428,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("WAYNE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Wayne } }, @@ -9442,9 +9442,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("AIDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Aidan } }, @@ -9456,9 +9456,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("REED"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Reed } }, @@ -9470,9 +9470,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("TISHA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Tisha } }, @@ -9484,9 +9484,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_TWINS, .trainerName = _("TORI & TIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_ToriAndTia } }, @@ -9498,9 +9498,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_SR_AND_JR, .trainerName = _("KIM & IRIS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_KimAndIris } }, @@ -9512,9 +9512,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_SR_AND_JR, .trainerName = _("TYRA & IVY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_TyraAndIvy } }, @@ -9526,9 +9526,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_YOUNG_COUPLE, .trainerName = _("MEL & PAUL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_MelAndPaul } }, @@ -9540,9 +9540,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_OLD_COUPLE, .trainerName = _("JOHN & JAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay1 } }, @@ -9554,9 +9554,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_OLD_COUPLE, .trainerName = _("JOHN & JAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay2 } }, @@ -9568,9 +9568,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_OLD_COUPLE, .trainerName = _("JOHN & JAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay3 } }, @@ -9582,9 +9582,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_OLD_COUPLE, .trainerName = _("JOHN & JAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0xb, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay4 } }, @@ -9596,9 +9596,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_OLD_COUPLE, .trainerName = _("JOHN & JAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay5 } }, @@ -9610,9 +9610,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SIS_AND_BRO, .trainerName = _("RELI & IAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_ReliAndIan } }, @@ -9624,9 +9624,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SIS_AND_BRO, .trainerName = _("LILA & ROY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy1 } }, @@ -9638,9 +9638,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SIS_AND_BRO, .trainerName = _("LILA & ROY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy2 } }, @@ -9652,9 +9652,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SIS_AND_BRO, .trainerName = _("LILA & ROY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy3 } }, @@ -9666,9 +9666,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SIS_AND_BRO, .trainerName = _("LILA & ROY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy4 } }, @@ -9680,9 +9680,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SIS_AND_BRO, .trainerName = _("LILA & ROY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy5 } }, @@ -9694,9 +9694,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SIS_AND_BRO, .trainerName = _("LISA & RAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = TRUE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_LisaAndRay } }, @@ -9708,9 +9708,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("CHRIS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Chris } }, @@ -9722,9 +9722,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH, .trainerPic = TRAINER_PIC_RICH_BOY, .trainerName = _("DAWSON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.ItemDefaultMoves = gTrainerParty_Dawson } }, @@ -9738,7 +9738,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SARAH"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.ItemDefaultMoves = gTrainerParty_Sarah } }, @@ -9750,9 +9750,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("DARIAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Darian } }, @@ -9764,9 +9764,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("HAILEY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Hailey } }, @@ -9778,9 +9778,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("CHANDLER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Chandler } }, @@ -9792,9 +9792,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, .trainerPic = TRAINER_PIC_WINSTRATE_M, .trainerName = _("KALEB"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.ItemDefaultMoves = gTrainerParty_Kaleb } }, @@ -9806,9 +9806,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("JOSEPH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Joseph } }, @@ -9820,9 +9820,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F, .trainerName = _("ALYSSA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Alyssa } }, @@ -9834,9 +9834,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("MARCOS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Marcos } }, @@ -9848,9 +9848,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("RHETT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Rhett } }, @@ -9862,9 +9862,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("TYRON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Tyron } }, @@ -9876,9 +9876,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_AROMA_LADY, .trainerName = _("CELINA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Celina } }, @@ -9890,9 +9890,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("BIANCA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Bianca } }, @@ -9904,9 +9904,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("HAYDEN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Hayden } }, @@ -9918,9 +9918,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("SOPHIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Sophie } }, @@ -9932,9 +9932,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("COBY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Coby } }, @@ -9946,9 +9946,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("LAWRENCE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Lawrence } }, @@ -9960,9 +9960,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_POKEMANIAC, .trainerName = _("WYATT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Wyatt } }, @@ -9974,9 +9974,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("ANGELINA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Angelina } }, @@ -9988,9 +9988,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_FISHERMAN, .trainerName = _("KAI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Kai } }, @@ -10002,9 +10002,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("CHARLOTTE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Charlotte } }, @@ -10016,9 +10016,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("DEANDRE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Deandre } }, @@ -10030,9 +10030,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt38 } }, @@ -10044,9 +10044,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt39 } }, @@ -10058,9 +10058,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt40 } }, @@ -10072,9 +10072,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt41 } }, @@ -10086,9 +10086,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt42 } }, @@ -10100,9 +10100,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt43 } }, @@ -10114,9 +10114,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt44 } }, @@ -10128,9 +10128,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt45 } }, @@ -10142,9 +10142,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt46 } }, @@ -10156,9 +10156,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt47 } }, @@ -10170,9 +10170,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt48 } }, @@ -10184,9 +10184,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt49 } }, @@ -10198,9 +10198,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt50 } }, @@ -10212,9 +10212,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt51 } }, @@ -10226,9 +10226,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt52 } }, @@ -10240,9 +10240,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_GRUNT_F, .trainerName = _("GRUNT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Grunt53 } }, @@ -10254,9 +10254,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_ADMIN, .trainerName = _("TABITHA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, .party = {.NoItemDefaultMoves = gTrainerParty_Tabitha3 } }, @@ -10270,7 +10270,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DARCY"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Darcy } }, @@ -10282,9 +10282,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA, .trainerPic = TRAINER_PIC_MAGMA_LEADER_MAXIE, .trainerName = _("MAXIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Maxie3 } }, @@ -10296,9 +10296,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_M, .trainerName = _("PETE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Pete } }, @@ -10310,9 +10310,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMER_F, .trainerName = _("ISABELLE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Isabelle } }, @@ -10324,9 +10324,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("ANDRES"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Andres1 } }, @@ -10338,9 +10338,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("JOSUE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Josue } }, @@ -10352,9 +10352,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("CAMRON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Camron } }, @@ -10366,9 +10366,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("CORY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Cory1 } }, @@ -10382,7 +10382,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CAROLINA"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Carolina } }, @@ -10394,9 +10394,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("ELIJAH"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Elijah } }, @@ -10408,9 +10408,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_PICNICKER, .trainerName = _("CELIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Celia } }, @@ -10422,9 +10422,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("BRYAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Bryan } }, @@ -10436,9 +10436,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_CAMPER, .trainerName = _("BRANDEN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Branden } }, @@ -10450,9 +10450,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("BRYANT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Bryant } }, @@ -10464,9 +10464,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_AROMA_LADY, .trainerName = _("SHAYLA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Shayla } }, @@ -10478,9 +10478,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F, .trainerName = _("KYRA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Kyra } }, @@ -10492,9 +10492,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_NINJA_BOY, .trainerName = _("JAIDEN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Jaiden } }, @@ -10506,9 +10506,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("ALIX"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Alix } }, @@ -10520,9 +10520,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("HELENE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Helene } }, @@ -10534,9 +10534,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("MARLENE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Marlene } }, @@ -10548,9 +10548,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("DEVAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Devan } }, @@ -10562,9 +10562,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_YOUNGSTER, .trainerName = _("JOHNSON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Johnson } }, @@ -10576,9 +10576,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F, .trainerName = _("MELINA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Melina } }, @@ -10590,9 +10590,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("BRANDI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Brandi } }, @@ -10604,9 +10604,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("AISHA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Aisha } }, @@ -10620,7 +10620,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAKAYLA"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Makayla } }, @@ -10632,9 +10632,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("FABIAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Fabian } }, @@ -10646,9 +10646,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_KINDLER, .trainerName = _("DAYTON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Dayton } }, @@ -10660,9 +10660,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_PARASOL_LADY, .trainerName = _("RACHEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Rachel } }, @@ -10676,7 +10676,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LEONEL"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemCustomMoves = gTrainerParty_Leonel } }, @@ -10688,9 +10688,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BATTLE_GIRL, .trainerName = _("CALLIE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Callie } }, @@ -10702,9 +10702,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_BUG_MANIAC, .trainerName = _("CALE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Cale } }, @@ -10716,9 +10716,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_M, .trainerName = _("MYLES"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Myles } }, @@ -10730,9 +10730,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F, .trainerName = _("PAT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Pat } }, @@ -10746,7 +10746,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Cristin1 } }, @@ -10758,9 +10758,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_May14 } }, @@ -10772,9 +10772,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_May15 } }, @@ -10788,7 +10788,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROXANNE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.ItemCustomMoves = gTrainerParty_Roxanne2 } }, @@ -10802,7 +10802,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROXANNE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Roxanne3 } }, @@ -10816,7 +10816,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROXANNE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Roxanne4 } }, @@ -10830,7 +10830,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROXANNE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Roxanne5 } }, @@ -10844,7 +10844,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRAWLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.ItemCustomMoves = gTrainerParty_Brawly2 } }, @@ -10858,7 +10858,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRAWLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.ItemCustomMoves = gTrainerParty_Brawly3 } }, @@ -10872,7 +10872,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRAWLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Brawly4 } }, @@ -10886,7 +10886,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRAWLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Brawly5 } }, @@ -10900,7 +10900,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WATTSON"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.ItemCustomMoves = gTrainerParty_Wattson2 } }, @@ -10914,7 +10914,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WATTSON"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Wattson3 } }, @@ -10928,7 +10928,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WATTSON"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Wattson4 } }, @@ -10942,7 +10942,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WATTSON"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Wattson5 } }, @@ -10956,7 +10956,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FLANNERY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.ItemCustomMoves = gTrainerParty_Flannery2 } }, @@ -10970,7 +10970,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FLANNERY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Flannery3 } }, @@ -10984,7 +10984,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FLANNERY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Flannery4 } }, @@ -10998,7 +10998,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FLANNERY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Flannery5 } }, @@ -11012,7 +11012,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NORMAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, .party = {.ItemCustomMoves = gTrainerParty_Norman2 } }, @@ -11026,7 +11026,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NORMAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Norman3 } }, @@ -11040,7 +11040,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NORMAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Norman4 } }, @@ -11054,7 +11054,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NORMAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Norman5 } }, @@ -11068,7 +11068,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINONA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x17, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Winona2 } }, @@ -11082,7 +11082,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINONA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x17, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Winona3 } }, @@ -11096,7 +11096,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINONA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x17, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Winona4 } }, @@ -11110,7 +11110,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINONA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x17, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Winona5 } }, @@ -11124,7 +11124,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TATE&LIZA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza2 } }, @@ -11138,7 +11138,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TATE&LIZA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza3 } }, @@ -11152,7 +11152,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TATE&LIZA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza4 } }, @@ -11166,7 +11166,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TATE&LIZA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza5 } }, @@ -11180,7 +11180,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JUAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Juan2 } }, @@ -11194,7 +11194,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JUAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, .party = {.ItemCustomMoves = gTrainerParty_Juan3 } }, @@ -11208,7 +11208,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JUAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Juan4 } }, @@ -11222,7 +11222,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JUAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Juan5 } }, @@ -11234,9 +11234,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, .trainerPic = TRAINER_PIC_BUG_MANIAC, .trainerName = _("ANGELO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.ItemCustomMoves = gTrainerParty_Angelo } }, @@ -11248,9 +11248,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, .trainerPic = TRAINER_PIC_BIRD_KEEPER, .trainerName = _("DARIUS"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Darius } }, @@ -11264,7 +11264,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("STEVEN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, .party = {.ItemCustomMoves = gTrainerParty_Steven } }, @@ -11276,9 +11276,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SALON_MAIDEN_ANABEL, .trainerName = _("ANABEL"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Anabel } }, @@ -11290,9 +11290,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_DOME_ACE_TUCKER, .trainerName = _("TUCKER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Tucker } }, @@ -11304,9 +11304,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_PALACE_MAVEN_SPENSER, .trainerName = _("SPENSER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Spenser } }, @@ -11318,9 +11318,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_ARENA_TYCOON_GRETA, .trainerName = _("GRETA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Greta } }, @@ -11332,9 +11332,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_FACTORY_HEAD_NOLAND, .trainerName = _("NOLAND"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Noland } }, @@ -11346,9 +11346,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_PIKE_QUEEN_LUCY, .trainerName = _("LUCY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Lucy } }, @@ -11360,9 +11360,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_PYRAMID_KING_BRANDON, .trainerName = _("BRANDON"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Brandon } }, @@ -11374,9 +11374,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("ANDRES"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Andres2 } }, @@ -11388,9 +11388,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("ANDRES"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Andres3 } }, @@ -11402,9 +11402,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("ANDRES"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Andres4 } }, @@ -11416,9 +11416,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_RUIN_MANIAC, .trainerName = _("ANDRES"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Andres5 } }, @@ -11430,9 +11430,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("CORY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Cory2 } }, @@ -11444,9 +11444,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("CORY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Cory3 } }, @@ -11458,9 +11458,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("CORY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Cory4 } }, @@ -11472,9 +11472,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_SAILOR, .trainerName = _("CORY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Cory5 } }, @@ -11486,9 +11486,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("PABLO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Pablo2 } }, @@ -11500,9 +11500,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("PABLO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Pablo3 } }, @@ -11514,9 +11514,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("PABLO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Pablo4 } }, @@ -11528,9 +11528,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER, .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M, .trainerName = _("PABLO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Pablo5 } }, @@ -11542,9 +11542,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("KOJI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Koji2 } }, @@ -11556,9 +11556,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("KOJI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Koji3 } }, @@ -11570,9 +11570,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("KOJI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Koji4 } }, @@ -11584,9 +11584,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_BLACK_BELT, .trainerName = _("KOJI"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Koji5 } }, @@ -11600,7 +11600,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Cristin2 } }, @@ -11614,7 +11614,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Cristin3 } }, @@ -11628,7 +11628,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Cristin4 } }, @@ -11642,7 +11642,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Cristin5 } }, @@ -11654,9 +11654,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("FERNANDO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Fernando2 } }, @@ -11668,9 +11668,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("FERNANDO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Fernando3 } }, @@ -11682,9 +11682,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("FERNANDO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Fernando4 } }, @@ -11696,9 +11696,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_GUITARIST, .trainerName = _("FERNANDO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Fernando5 } }, @@ -11710,9 +11710,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("SAWYER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer2 } }, @@ -11724,9 +11724,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("SAWYER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer3 } }, @@ -11738,9 +11738,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("SAWYER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer4 } }, @@ -11752,9 +11752,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER, .trainerPic = TRAINER_PIC_HIKER, .trainerName = _("SAWYER"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x7, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer5 } }, @@ -11766,9 +11766,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F, .trainerName = _("GABRIELLE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle2 } }, @@ -11780,9 +11780,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F, .trainerName = _("GABRIELLE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle3 } }, @@ -11794,9 +11794,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F, .trainerName = _("GABRIELLE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle4 } }, @@ -11808,9 +11808,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F, .trainerName = _("GABRIELLE"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle5 } }, @@ -11822,9 +11822,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("THALIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Thalia2 } }, @@ -11836,9 +11836,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("THALIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Thalia3 } }, @@ -11850,9 +11850,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("THALIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Thalia4 } }, @@ -11864,9 +11864,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_BEAUTY, .trainerName = _("THALIA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x1, + .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, .party = {.NoItemDefaultMoves = gTrainerParty_Thalia5 } }, @@ -11878,9 +11878,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_F, .trainerName = _("MARIELA"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Mariela } }, @@ -11892,9 +11892,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE, .trainerPic = TRAINER_PIC_PSYCHIC_M, .trainerName = _("ALVARO"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 2, .party = {.NoItemDefaultMoves = gTrainerParty_Alvaro } }, @@ -11906,9 +11906,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH, .trainerPic = TRAINER_PIC_GENTLEMAN, .trainerName = _("EVERETT"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Everett } }, @@ -11920,9 +11920,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_RED, .trainerName = _("RED"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Red } }, @@ -11934,9 +11934,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_LEAF, .trainerName = _("LEAF"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Leaf } }, @@ -11948,9 +11948,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, .trainerName = _("BRENDAN"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_Brendan16 } }, @@ -11962,9 +11962,9 @@ const struct Trainer gTrainers[] = { .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MALE, .trainerPic = TRAINER_PIC_RUBY_SAPPHIRE_MAY, .trainerName = _("MAY"), - .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, + .items = {}, .doubleBattle = FALSE, - .aiFlags = 0x0, + .aiFlags = 0, .partySize = 1, .party = {.NoItemDefaultMoves = gTrainerParty_May16 } }, From e28ce3be7886eb38a29f1839a762598c8dfaec19 Mon Sep 17 00:00:00 2001 From: DizzyEggg <jajkodizzy@wp.pl> Date: Sat, 1 Sep 2018 22:03:21 +0200 Subject: [PATCH 157/174] Fix the strings length issue --- include/battle_scripts.h | 1 + include/battle_tower.h | 6 ++++-- include/global.berry.h | 8 ++++---- include/global.h | 31 ++++++++++++++----------------- include/pokemon.h | 2 +- include/record_mixing.h | 6 +++--- src/battle_dome.c | 6 +++--- src/battle_main.c | 12 ++++++------ src/battle_records.c | 4 ++-- src/berry.c | 4 ++-- src/berry_blender.c | 2 +- src/daycare.c | 2 +- src/mail_data.c | 4 ++-- src/mystery_event_script.c | 4 ++-- src/pokemon.c | 6 +++--- src/recorded_battle.c | 12 ++++++------ src/rom_8011DC0.c | 2 +- src/secret_base.c | 4 ++-- 18 files changed, 58 insertions(+), 58 deletions(-) diff --git a/include/battle_scripts.h b/include/battle_scripts.h index a52d256fc4..9c45373632 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -207,6 +207,7 @@ extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[]; extern const u8 BattleScript_ArenaTurnBeginning[]; extern const u8 BattleScript_82DB881[]; extern const u8 BattleScript_82DB8F3[]; +extern const u8 BattleScript_82DAA0B[]; extern const u8 BattleScript_AskIfWantsToForfeitMatch[]; extern const u8 BattleScript_PrintPlayerForfeited[]; extern const u8 BattleScript_PrintPlayerForfeitedLinkBattle[]; diff --git a/include/battle_tower.h b/include/battle_tower.h index d7ff700069..f07e9e5443 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -6,7 +6,7 @@ struct RSBattleTowerRecord /*0x00*/ u8 battleTowerLevelType; // 0 = level 50, 1 = level 100 /*0x01*/ u8 trainerClass; /*0x02*/ u16 winStreak; - /*0x04*/ u8 name[8]; + /*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1]; /*0x0C*/ u8 trainerId[4]; /*0x10*/ struct { u16 easyChat[6]; @@ -22,10 +22,12 @@ union BattleTowerRecord struct EmeraldBattleTowerRecord emerald; }; +#define FRONTIER_TRAINER_NAME_LENGTH 7 + struct BattleFrontierTrainer { u32 facilityClass; - u8 trainerName[8]; + u8 trainerName[FRONTIER_TRAINER_NAME_LENGTH + 1]; u16 speechBefore[6]; u16 speechWin[6]; u16 speechLose[6]; diff --git a/include/global.berry.h b/include/global.berry.h index 5c8a43a021..8046d344e0 100644 --- a/include/global.berry.h +++ b/include/global.berry.h @@ -1,12 +1,12 @@ #ifndef GUARD_GLOBAL_BERRY_H #define GUARD_GLOBAL_BERRY_H -#define BERRY_NAME_COUNT 7 +#define BERRY_NAME_LENGTH 6 #define BERRY_ITEM_EFFECT_COUNT 18 struct Berry { - const u8 name[BERRY_NAME_COUNT]; + const u8 name[BERRY_NAME_LENGTH + 1]; u8 firmness; u16 size; u8 maxYield; @@ -26,7 +26,7 @@ struct Berry struct Berry2 { - u8 name[BERRY_NAME_COUNT]; + u8 name[BERRY_NAME_LENGTH + 1]; u8 firmness; u16 size; u8 maxYield; @@ -53,7 +53,7 @@ struct EnigmaBerry struct BattleEnigmaBerry { - /*0x00*/ u8 name[BERRY_NAME_COUNT]; + /*0x00*/ u8 name[BERRY_NAME_LENGTH + 1]; /*0x07*/ u8 holdEffect; /*0x08*/ u8 itemEffect[BERRY_ITEM_EFFECT_COUNT]; /*0x1A*/ u8 holdEffectParam; diff --git a/include/global.h b/include/global.h index 0fff11d09d..6977d4059f 100644 --- a/include/global.h +++ b/include/global.h @@ -57,8 +57,6 @@ #define PARTY_SIZE 6 #define POKEMON_SLOTS_NUMBER 412 -#define POKEMON_NAME_LENGTH 10 -#define OT_NAME_LENGTH 7 #define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) >= (b) ? (a) : (b)) @@ -134,8 +132,7 @@ enum LanguageId // string lengths #define ITEM_NAME_LENGTH 14 #define POKEMON_NAME_LENGTH 10 -#define OT_NAME_LENGTH 7 -#define PLAYER_NAME_LENGTH 8 +#define PLAYER_NAME_LENGTH 7 #define MAIL_WORDS_COUNT 9 enum @@ -326,7 +323,7 @@ struct EmeraldBattleTowerRecord /*0x00*/ u8 battleTowerLevelType; // 0 = level 50, 1 = level 100 /*0x01*/ u8 trainerClass; /*0x02*/ u16 winStreak; - /*0x04*/ u8 name[8]; + /*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1]; /*0x0C*/ u8 trainerId[4]; /*0x10*/ struct { u16 easyChat[6]; @@ -450,7 +447,7 @@ struct BattleFrontier /*0xEBF*/ u8 field_EBF; /*0xEC0*/ u16 field_EC0[16]; /*0xEE0*/ u8 field_EE0; - /*0xEE1*/ u8 field_EE1[2][PLAYER_NAME_LENGTH]; + /*0xEE1*/ u8 field_EE1[2][PLAYER_NAME_LENGTH + 1]; /*0xEF1*/ u8 field_EF1[2][4]; /*0xEF9*/ u8 field_EF9; /*0xEFA*/ u8 field_EFA; @@ -460,7 +457,7 @@ struct BattleFrontier struct SaveBlock2 { - /*0x00*/ u8 playerName[PLAYER_NAME_LENGTH]; + /*0x00*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x08*/ u8 playerGender; // MALE, FEMALE /*0x09*/ u8 specialSaveWarp; /*0x0A*/ u8 playerTrainerId[4]; @@ -516,7 +513,7 @@ struct SecretBaseRecord /*0x1A9D*/ u8 gender:1; /*0x1A9D*/ u8 sbr_field_1_5:1; /*0x1A9D*/ u8 sbr_field_1_6:2; - /*0x1A9E*/ u8 trainerName[OT_NAME_LENGTH]; + /*0x1A9E*/ u8 trainerName[PLAYER_NAME_LENGTH]; /*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class /*0x1AA9*/ u8 language; /*0x1AAA*/ u16 sbr_field_e; @@ -602,7 +599,7 @@ struct EasyChatPair struct MailStruct { /*0x00*/ u16 words[MAIL_WORDS_COUNT]; - /*0x12*/ u8 playerName[PLAYER_NAME_LENGTH]; + /*0x12*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x1A*/ u8 trainerId[4]; /*0x1E*/ u16 species; /*0x20*/ u16 itemId; @@ -691,7 +688,7 @@ struct RecordMixing_UnknownStruct struct LinkBattleRecord { - u8 name[8]; + u8 name[PLAYER_NAME_LENGTH + 1]; u16 trainerId; u16 wins; u16 losses; @@ -724,15 +721,15 @@ struct ContestWinner u32 trainerId; u16 species; u8 contestCategory; - u8 monName[11]; - u8 trainerName[8]; + u8 monName[POKEMON_NAME_LENGTH + 1]; + u8 trainerName[PLAYER_NAME_LENGTH + 1]; u8 contestRank; }; struct DayCareMail { struct MailStruct message; - u8 OT_name[OT_NAME_LENGTH + 1]; + u8 OT_name[PLAYER_NAME_LENGTH + 1]; u8 monName[POKEMON_NAME_LENGTH + 1]; u8 gameLanguage:4; u8 monLanguage:4; @@ -773,7 +770,7 @@ struct LilycoveLadyQuiz /*0x002*/ u16 unk_002[9]; /*0x014*/ u16 unk_014; /*0x016*/ u16 unk_016; - /*0x018*/ u8 playerName[8]; + /*0x018*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x020*/ u16 playerTrainerId[4]; /*0x028*/ u16 itemId; /*0x02a*/ u8 unk_02a; @@ -788,7 +785,7 @@ struct LilycoveLadyFavour /*0x001*/ u8 phase; /*0x002*/ u8 unk_002; /*0x003*/ u8 unk_003; - /*0x004*/ u8 playerName[8]; + /*0x004*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x00c*/ u8 unk_00c; /*0x00e*/ u16 itemId; /*0x010*/ u16 unk_010; @@ -801,7 +798,7 @@ struct LilycoveLadyContest /*0x001*/ u8 phase; /*0x002*/ u8 fave_pkblk; /*0x003*/ u8 other_pkblk; - /*0x004*/ u8 playerName[8]; + /*0x004*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x00c*/ u8 max_sheen; /*0x00d*/ u8 category; /*0x00e*/ u8 language; @@ -828,7 +825,7 @@ struct WaldaPhrase struct UnkSaveSubstruct_3b98 { u32 trainerId; - u8 trainerName[8]; + u8 trainerName[PLAYER_NAME_LENGTH + 1]; }; struct SaveBlock1 diff --git a/include/pokemon.h b/include/pokemon.h index 09496b5c3d..abfb360f0d 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -205,7 +205,7 @@ struct BoxPokemon u8 hasSpecies:1; u8 isEgg:1; u8 unused:5; - u8 otName[OT_NAME_LENGTH]; + u8 otName[PLAYER_NAME_LENGTH]; u8 markings; u16 checksum; u16 unknown; diff --git a/include/record_mixing.h b/include/record_mixing.h index 3cd4d649eb..f1b74c1433 100644 --- a/include/record_mixing.h +++ b/include/record_mixing.h @@ -6,7 +6,7 @@ struct UnkRecordMixingStruct2a { u8 playerId[4]; u16 field_4; - u8 playerName[PLAYER_NAME_LENGTH]; + u8 playerName[PLAYER_NAME_LENGTH + 1]; u8 language; }; @@ -15,8 +15,8 @@ struct UnkRecordMixingStruct2b u8 playerId1[4]; u8 playerId2[4]; u16 field_8; - u8 playerName1[PLAYER_NAME_LENGTH]; - u8 playerName2[PLAYER_NAME_LENGTH]; + u8 playerName1[PLAYER_NAME_LENGTH + 1]; + u8 playerName2[PLAYER_NAME_LENGTH + 1]; u8 language; }; diff --git a/src/battle_dome.c b/src/battle_dome.c index 9f400bc7a0..ff284b564b 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -6449,12 +6449,12 @@ static void CopyDomeTrainerName(u8 *dst, u16 trainerId) { if (trainerId == TRAINER_PLAYER) { - for (i = 0; i < OT_NAME_LENGTH; i++) + for (i = 0; i < PLAYER_NAME_LENGTH; i++) dst[i] = gSaveBlock2Ptr->playerName[i]; } else if (trainerId < 300) { - for (i = 0; i < 7; i++) + for (i = 0; i < FRONTIER_TRAINER_NAME_LENGTH; i++) dst[i] = gFacilityTrainers[trainerId].trainerName[i]; } dst[i] = EOS; @@ -6475,7 +6475,7 @@ static void CopyDomeBrainTrainerName(u8 *dst) { s32 i; - for (i = 0; i < 7; i++) + for (i = 0; i < FRONTIER_TRAINER_NAME_LENGTH; i++) dst[i] = gTrainers[TRAINER_TUCKER].trainerName[i]; dst[i] = EOS; } diff --git a/src/battle_main.c b/src/battle_main.c index be6f789ecb..1a1f6f61a6 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -734,7 +734,7 @@ static void SetPlayerBerryDataInBattleStruct(void) if (IsEnigmaBerryValid() == TRUE) { - for (i = 0; i < BERRY_NAME_COUNT - 1; i++) + for (i = 0; i < BERRY_NAME_LENGTH; i++) battleBerry->name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i]; battleBerry->name[i] = EOS; @@ -748,7 +748,7 @@ static void SetPlayerBerryDataInBattleStruct(void) { const struct Berry *berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY)); - for (i = 0; i < BERRY_NAME_COUNT - 1; i++) + for (i = 0; i < BERRY_NAME_LENGTH; i++) battleBerry->name[i] = berryData->name[i]; battleBerry->name[i] = EOS; @@ -769,7 +769,7 @@ static void SetAllPlayersBerryData(void) { if (IsEnigmaBerryValid() == TRUE) { - for (i = 0; i < BERRY_NAME_COUNT - 1; i++) + for (i = 0; i < BERRY_NAME_LENGTH; i++) { gEnigmaBerries[0].name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i]; gEnigmaBerries[2].name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i]; @@ -792,7 +792,7 @@ static void SetAllPlayersBerryData(void) { const struct Berry *berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY)); - for (i = 0; i < BERRY_NAME_COUNT - 1; i++) + for (i = 0; i < BERRY_NAME_LENGTH; i++) { gEnigmaBerries[0].name[i] = berryData->name[i]; gEnigmaBerries[2].name[i] = berryData->name[i]; @@ -830,7 +830,7 @@ static void SetAllPlayersBerryData(void) src = (struct BattleEnigmaBerry *)(gBlockRecvBuffer[i] + 2); battlerId = gLinkPlayers[i].id; - for (j = 0; j < BERRY_NAME_COUNT - 1; j++) + for (j = 0; j < BERRY_NAME_LENGTH; j++) gEnigmaBerries[battlerId].name[j] = src->name[j]; gEnigmaBerries[battlerId].name[j] = EOS; @@ -847,7 +847,7 @@ static void SetAllPlayersBerryData(void) { src = (struct BattleEnigmaBerry *)(gBlockRecvBuffer[i] + 2); - for (j = 0; j < BERRY_NAME_COUNT - 1; j++) + for (j = 0; j < BERRY_NAME_LENGTH; j++) { gEnigmaBerries[i].name[j] = src->name[j]; gEnigmaBerries[i + 2].name[j] = src->name[j]; diff --git a/src/battle_records.c b/src/battle_records.c index 8e9d045cba..1680f3cc4e 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -107,7 +107,7 @@ static s32 FindLinkBattleRecord(struct LinkBattleRecord *records, const u8 *name for (i = 0; i < LINK_B_RECORDS_COUNT; i++) { - if (!StringCompareN(records[i].name, name, OT_NAME_LENGTH) && records[i].trainerId == trainerId) + if (!StringCompareN(records[i].name, name, PLAYER_NAME_LENGTH) && records[i].trainerId == trainerId) return i; } @@ -198,7 +198,7 @@ static void UpdateLinkBattleRecords(struct LinkBattleRecords *records, const u8 { index = LINK_B_RECORDS_COUNT - 1; ClearLinkBattleRecord(&records->entries[index]); - StringCopyN(records->entries[index].name, name, OT_NAME_LENGTH); + StringCopyN(records->entries[index].name, name, PLAYER_NAME_LENGTH); records->entries[index].trainerId = trainerId; records->languages[index] = gLinkPlayers[battlerId].language; } diff --git a/src/berry.c b/src/berry.c index f8a0204c44..ea216b61c4 100644 --- a/src/berry.c +++ b/src/berry.c @@ -1076,8 +1076,8 @@ u16 BerryTypeToItemId(u16 berry) void GetBerryNameByBerryType(u8 berry, u8 *string) { - memcpy(string, GetBerryInfo(berry)->name, BERRY_NAME_COUNT - 1); - string[BERRY_NAME_COUNT - 1] = EOS; + memcpy(string, GetBerryInfo(berry)->name, BERRY_NAME_LENGTH); + string[BERRY_NAME_LENGTH] = EOS; } void GetBerryCountStringByBerryType(u8 berry, u8* dest, u32 berryCount) diff --git a/src/berry_blender.c b/src/berry_blender.c index 1fd6d1cddb..02df933f29 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -51,7 +51,7 @@ enum struct BlenderBerry { u16 itemId; - u8 name[BERRY_NAME_COUNT]; + u8 name[BERRY_NAME_LENGTH + 1]; u8 flavors[FLAVOR_COUNT]; u8 smoothness; }; diff --git a/src/daycare.c b/src/daycare.c index c73d915213..7599d70abe 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -368,7 +368,7 @@ static void ClearDaycareMonMail(struct DayCareMail *mail) { s32 i; - for (i = 0; i < OT_NAME_LENGTH + 1; i++) + for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++) mail->OT_name[i] = 0; for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++) mail->monName[i] = 0; diff --git a/src/mail_data.c b/src/mail_data.c index ebb49febf2..809dcc2a8f 100644 --- a/src/mail_data.c +++ b/src/mail_data.c @@ -22,7 +22,7 @@ void ClearMailStruct(struct MailStruct *mail) for (i = 0; i < MAIL_WORDS_COUNT; i++) mail->words[i] = 0xFFFF; - for (i = 0; i < PLAYER_NAME_LENGTH; i++) + for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++) mail->playerName[i] = EOS; for (i = 0; i < 4; i++) @@ -58,7 +58,7 @@ u8 GiveMailToMon(struct Pokemon *mon, u16 itemId) for (i = 0; i < MAIL_WORDS_COUNT; i++) gSaveBlock1Ptr->mail[id].words[i] = 0xFFFF; - for (i = 0; i < PLAYER_NAME_LENGTH - 1; i++) + for (i = 0; i < PLAYER_NAME_LENGTH + 1 - 1; i++) gSaveBlock1Ptr->mail[id].playerName[i] = gSaveBlock2Ptr->playerName[i]; gSaveBlock1Ptr->mail[id].playerName[i] = EOS; PadNameString(gSaveBlock1Ptr->mail[id].playerName, CHAR_SPACE); diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 8822cd05af..921c8e97c5 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -226,9 +226,9 @@ bool8 MEScrCmd_setenigmaberry(struct ScriptContext *ctx) const u8 *message; bool32 haveBerry = IsEnigmaBerryValid(); u8 *berry = (u8 *)(ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]); - StringCopyN(gStringVar1, gSaveBlock1Ptr->enigmaBerry.berry.name, BERRY_NAME_COUNT); + StringCopyN(gStringVar1, gSaveBlock1Ptr->enigmaBerry.berry.name, BERRY_NAME_LENGTH + 1); SetEnigmaBerry(berry); - StringCopyN(gStringVar2, gSaveBlock1Ptr->enigmaBerry.berry.name, BERRY_NAME_COUNT); + StringCopyN(gStringVar2, gSaveBlock1Ptr->enigmaBerry.berry.name, BERRY_NAME_LENGTH + 1); if (!haveBerry) { diff --git a/src/pokemon.c b/src/pokemon.c index 9022f69eab..2922549852 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -4112,7 +4112,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data) { retVal = 0; - while (retVal < OT_NAME_LENGTH) + while (retVal < PLAYER_NAME_LENGTH) { data[retVal] = boxMon->otName[retVal]; retVal++; @@ -4480,7 +4480,7 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg) case MON_DATA_OT_NAME: { s32 i; - for (i = 0; i < OT_NAME_LENGTH; i++) + for (i = 0; i < PLAYER_NAME_LENGTH; i++) boxMon->otName[i] = data[i]; break; } @@ -6778,7 +6778,7 @@ s8 GetFlavorRelationByPersonality(u32 personality, u8 flavor) bool8 IsTradedMon(struct Pokemon *mon) { - u8 otName[OT_NAME_LENGTH + 1]; + u8 otName[PLAYER_NAME_LENGTH + 1]; u32 otId; GetMonData(mon, MON_DATA_OT_NAME, otName); otId = GetMonData(mon, MON_DATA_OT_ID, 0); diff --git a/src/recorded_battle.c b/src/recorded_battle.c index e19f3047f7..fc3b8b94a1 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -28,7 +28,7 @@ extern u8 gUnknown_03001279; struct PlayerInfo { u32 trainerId; - u8 name[PLAYER_NAME_LENGTH]; + u8 name[PLAYER_NAME_LENGTH + 1]; u8 gender; u16 battlerId; u16 language; @@ -44,7 +44,7 @@ struct RecordedBattleSave { struct Pokemon playerParty[PARTY_SIZE]; struct Pokemon opponentParty[PARTY_SIZE]; - u8 playersName[MAX_BATTLERS_COUNT][PLAYER_NAME_LENGTH]; + u8 playersName[MAX_BATTLERS_COUNT][PLAYER_NAME_LENGTH + 1]; u8 playersGender[MAX_BATTLERS_COUNT]; u32 playersTrainerId[MAX_BATTLERS_COUNT]; u8 playersLanguage[MAX_BATTLERS_COUNT]; @@ -170,7 +170,7 @@ void sub_8184E58(void) } else { - for (j = 0; j < PLAYER_NAME_LENGTH; j++) + for (j = 0; j < PLAYER_NAME_LENGTH + 1; j++) sPlayers[i].name[j] = gLinkPlayers[i].name[j]; } } @@ -186,7 +186,7 @@ void sub_8184E58(void) sPlayers[0].battlerId = 0; sPlayers[0].language = gGameLanguage; - for (i = 0; i < PLAYER_NAME_LENGTH; i++) + for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++) sPlayers[0].name[i] = gSaveBlock2Ptr->playerName[i]; } } @@ -343,7 +343,7 @@ u32 MoveRecordedBattleToSaveData(void) for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - for (j = 0; j < PLAYER_NAME_LENGTH; j++) + for (j = 0; j < PLAYER_NAME_LENGTH + 1; j++) { battleSave->playersName[i][j] = sPlayers[i].name[j]; } @@ -1332,7 +1332,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src) for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - for (var = FALSE, j = 0; j < PLAYER_NAME_LENGTH; j++) + for (var = FALSE, j = 0; j < PLAYER_NAME_LENGTH + 1; j++) { gLinkPlayers[i].name[j] = src->playersName[i][j]; if (src->playersName[i][j] == EOS) diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 993dc0f4f3..b2bd2eb784 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -40,7 +40,7 @@ struct UnkStruct_Shared { struct UnkLinkRfuStruct_02022B14 field_0; u8 needingPadding[3]; - u8 playerName[PLAYER_NAME_LENGTH]; + u8 playerName[PLAYER_NAME_LENGTH + 1]; }; struct UnkStruct_x1C diff --git a/src/secret_base.c b/src/secret_base.c index b75163200e..d357261fe5 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -1354,7 +1354,7 @@ bool8 sub_80EA904(struct SecretBaseRecord *sbr1, struct SecretBaseRecord *sbr2) { u8 i; - for (i = 0; i < OT_NAME_LENGTH && (sbr1->trainerName[i] != EOS || sbr2->trainerName[i] != EOS); i++) + for (i = 0; i < PLAYER_NAME_LENGTH && (sbr1->trainerName[i] != EOS || sbr2->trainerName[i] != EOS); i++) { if (sbr1->trainerName[i] != sbr2->trainerName[i]) { @@ -1509,7 +1509,7 @@ bool8 DoesSecretBaseBelongToPlayer(struct SecretBaseRecord *secretBase) return FALSE; } - for (i = 0; i < OT_NAME_LENGTH && (secretBase->trainerName[i] != EOS || gSaveBlock2Ptr->playerName[i] != EOS); i ++) + for (i = 0; i < PLAYER_NAME_LENGTH && (secretBase->trainerName[i] != EOS || gSaveBlock2Ptr->playerName[i] != EOS); i ++) { if (secretBase->trainerName[i] != gSaveBlock2Ptr->playerName[i]) return FALSE; From 528a1e9ed0f64040fce6148eac875cda913384ec Mon Sep 17 00:00:00 2001 From: DizzyEggg <jajkodizzy@wp.pl> Date: Sat, 1 Sep 2018 22:53:29 +0200 Subject: [PATCH 158/174] Match CopySpriteTiles --- src/util.c | 257 ++--------------------------------------------------- 1 file changed, 7 insertions(+), 250 deletions(-) diff --git a/src/util.c b/src/util.c index 88be4e4a13..9c8766a974 100644 --- a/src/util.c +++ b/src/util.c @@ -152,10 +152,6 @@ void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s BgAffineSet(&src, dest, 1); } -#ifdef NONMATCHING - -// Functionally equivalent. -// Only the two yflip loops don't match. void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) { u8 x, y; @@ -166,32 +162,18 @@ void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) for (y = 0; y < h; y++) { - int filler = 32 - w; - for (x = 0; x < w; x++) { int tile = (*tilemap & 0x3ff) * 32; - int attr = *tilemap & 0xc00; - if (attr == 0) + if ((*tilemap & 0xc00) == 0) { - void *src = tiles + tile; - void *dest = output; - int length = 32; - DmaCopy32(3, src, dest, length); + CpuCopy32(tiles + tile, output, 32); } - else if (attr == 0x800) // yflip + else if ((*tilemap & 0xc00) == 0x800) // yflip { for (i = 0; i < 8; i++) - { - void *src = tiles; - void *dest = output; - int length = 4; - // this is likely wrong, but makes it closer to matching - src += tile + (7 - i) * 4; - dest += i * 4; - DmaCopy32(3, src, dest, length); - } + CpuCopy32(tiles + (tile + (7 - i) * 4), output + i * 4, 4); } else // xflip { @@ -207,245 +189,20 @@ void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) if (*tilemap & 0x800) // yflip { for (i = 0; i < 8; i++) - { - void *src = xflip + (7-i) * 4; - void *dest = output + i*4; - int length = 4; - DmaCopy32(3, src, dest, length); - } + CpuCopy32(xflip + (7 - i) * 4, output + i * 4, 4); } else { - void *src = xflip; - void *dest = output; - int length = 32; - DmaCopy32(3, src, dest, length); + CpuCopy32(xflip, output, 32); } } tilemap++; output += 32; } - tilemap += filler; + tilemap += (32 - w); } } -#else -NAKED void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) -{ - asm("\n\ - .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, 0x38\n\ - str r2, [sp, 0x20]\n\ - adds r4, r3, 0\n\ - ldr r7, [sp, 0x58]\n\ - lsls r0, 24\n\ - lsls r1, 24\n\ - ldr r2, =sSpriteDimensions\n\ - lsrs r1, 23\n\ - lsrs r0, 21\n\ - adds r1, r0\n\ - adds r0, r2, 0x1\n\ - adds r0, r1, r0\n\ - ldrb r0, [r0]\n\ - str r0, [sp, 0x24]\n\ - adds r1, r2\n\ - ldrb r1, [r1]\n\ - str r1, [sp, 0x28]\n\ - movs r0, 0\n\ - b _0806F88C\n\ - .pool\n\ - _0806F740:\n\ - movs r5, 0\n\ - adds r0, 0x1\n\ - str r0, [sp, 0x30]\n\ - b _0806F874\n\ - _0806F748:\n\ - ldrh r0, [r4]\n\ - ldr r2, =0x000003ff\n\ - adds r1, r2, 0\n\ - ands r1, r0\n\ - lsls r1, 5\n\ - mov r8, r1\n\ - movs r2, 0xC0\n\ - lsls r2, 4\n\ - adds r1, r2, 0\n\ - ands r1, r0\n\ - mov r2, sp\n\ - strh r0, [r2, 0x34]\n\ - cmp r1, 0\n\ - bne _0806F788\n\ - ldr r0, [sp, 0x20]\n\ - add r0, r8\n\ - adds r1, r7, 0\n\ - ldr r2, =0x04000008\n\ - bl CpuSet\n\ - adds r4, 0x2\n\ - str r4, [sp, 0x2C]\n\ - adds r7, 0x20\n\ - mov r10, r7\n\ - adds r5, 0x1\n\ - mov r9, r5\n\ - b _0806F86A\n\ - .pool\n\ - _0806F788:\n\ - movs r0, 0x80\n\ - lsls r0, 4\n\ - cmp r1, r0\n\ - bne _0806F7CC\n\ - movs r1, 0\n\ - adds r4, 0x2\n\ - str r4, [sp, 0x2C]\n\ - movs r2, 0x20\n\ - adds r2, r7\n\ - mov r10, r2\n\ - adds r5, 0x1\n\ - mov r9, r5\n\ - _0806F7A0:\n\ - lsls r4, r1, 24\n\ - asrs r4, 24\n\ - movs r0, 0x7\n\ - subs r0, r4\n\ - lsls r0, 2\n\ - add r0, r8\n\ - ldr r1, [sp, 0x20]\n\ - adds r0, r1, r0\n\ - lsls r1, r4, 2\n\ - adds r1, r7, r1\n\ - ldr r2, =0x04000001\n\ - bl CpuSet\n\ - adds r4, 0x1\n\ - lsls r4, 24\n\ - lsrs r1, r4, 24\n\ - asrs r4, 24\n\ - cmp r4, 0x7\n\ - ble _0806F7A0\n\ - b _0806F86A\n\ - .pool\n\ - _0806F7CC:\n\ - movs r1, 0\n\ - adds r4, 0x2\n\ - str r4, [sp, 0x2C]\n\ - movs r2, 0x20\n\ - adds r2, r7\n\ - mov r10, r2\n\ - adds r5, 0x1\n\ - mov r9, r5\n\ - movs r0, 0xF\n\ - mov r12, r0\n\ - _0806F7E0:\n\ - movs r2, 0\n\ - lsls r4, r1, 24\n\ - lsls r0, r4, 2\n\ - lsrs r0, 24\n\ - adds r6, r0, 0x3\n\ - mov r1, r8\n\ - adds r5, r1, r0\n\ - _0806F7EE:\n\ - lsls r1, r2, 24\n\ - asrs r1, 24\n\ - subs r0, r6, r1\n\ - mov r2, sp\n\ - adds r3, r2, r0\n\ - adds r0, r5, r1\n\ - ldr r2, [sp, 0x20]\n\ - adds r0, r2, r0\n\ - ldrb r2, [r0]\n\ - mov r0, r12\n\ - ands r0, r2\n\ - lsls r0, 4\n\ - lsrs r2, 4\n\ - orrs r0, r2\n\ - strb r0, [r3]\n\ - adds r1, 0x1\n\ - lsls r1, 24\n\ - lsrs r2, r1, 24\n\ - asrs r1, 24\n\ - cmp r1, 0x3\n\ - ble _0806F7EE\n\ - movs r1, 0x80\n\ - lsls r1, 17\n\ - adds r0, r4, r1\n\ - lsrs r1, r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0x7\n\ - ble _0806F7E0\n\ - mov r2, sp\n\ - ldrh r0, [r2, 0x34]\n\ - movs r2, 0x80\n\ - lsls r2, 4\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0806F860\n\ - movs r1, 0\n\ - _0806F836:\n\ - lsls r4, r1, 24\n\ - asrs r4, 24\n\ - movs r0, 0x7\n\ - subs r0, r4\n\ - lsls r0, 2\n\ - add r0, sp\n\ - lsls r1, r4, 2\n\ - adds r1, r7, r1\n\ - ldr r2, =0x04000001\n\ - bl CpuSet\n\ - adds r4, 0x1\n\ - lsls r4, 24\n\ - lsrs r1, r4, 24\n\ - asrs r4, 24\n\ - cmp r4, 0x7\n\ - ble _0806F836\n\ - b _0806F86A\n\ - .pool\n\ - _0806F860:\n\ - mov r0, sp\n\ - adds r1, r7, 0\n\ - ldr r2, =0x04000008\n\ - bl CpuSet\n\ - _0806F86A:\n\ - ldr r4, [sp, 0x2C]\n\ - mov r7, r10\n\ - mov r1, r9\n\ - lsls r0, r1, 24\n\ - lsrs r5, r0, 24\n\ - _0806F874:\n\ - ldr r2, [sp, 0x28]\n\ - cmp r5, r2\n\ - bcs _0806F87C\n\ - b _0806F748\n\ - _0806F87C:\n\ - movs r0, 0x20\n\ - ldr r1, [sp, 0x28]\n\ - subs r0, r1\n\ - lsls r0, 1\n\ - adds r4, r0\n\ - ldr r2, [sp, 0x30]\n\ - lsls r0, r2, 24\n\ - lsrs r0, 24\n\ - _0806F88C:\n\ - ldr r1, [sp, 0x24]\n\ - cmp r0, r1\n\ - bcs _0806F894\n\ - b _0806F740\n\ - _0806F894:\n\ - add sp, 0x38\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} - -#endif // NONMATCHING - int CountTrailingZeroBits(u32 value) { u8 i; From 23aab35b96c53351448adab00829768a5837f7da Mon Sep 17 00:00:00 2001 From: DizzyEggg <jajkodizzy@wp.pl> Date: Sun, 2 Sep 2018 00:28:03 +0200 Subject: [PATCH 159/174] Update item_menu.c Don't use signed values for unsigned variables --- src/item_menu.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/item_menu.c b/src/item_menu.c index f58c2b8b3e..c52d1b08ff 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -675,7 +675,7 @@ void sub_81AB520(u8 rboxId, int item_index_in_pocket, u8 a) } itemId = BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, item_index_in_pocket); itemQuantity = BagGetQuantityByPocketPosition(gUnknown_0203CE58.pocket + 1, item_index_in_pocket); - if ((u16)(itemId - ITEM_HM01) <= 7) + if (itemId >= ITEM_HM01 && itemId <= ITEM_HM08) BlitBitmapToWindow(rboxId, gBagMenuHMIcon_Gfx, 8, a - 1, 16, 16); if (gUnknown_0203CE58.pocket == 3) { @@ -701,10 +701,10 @@ void sub_81AB520(u8 rboxId, int item_index_in_pocket, u8 a) void bag_menu_print_description_box_text(int a) { - u8* str; + const u8 *str; if (a != -2) { - str = (u8*)ItemId_GetDescription(BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, a)); + str = ItemId_GetDescription(BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, a)); } else { @@ -2103,9 +2103,9 @@ void setup_bag_menu_textboxes(void) InitWindows(gUnknown_08614174); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, -32); - LoadMessageBoxGfx(0, 10, -48); - sub_819A2BC(-64, 1); + LoadUserWindowBorderGfx(0, 1, 0xE0); + LoadMessageBoxGfx(0, 10, 0xD0); + sub_819A2BC(0xC0, 1); LoadPalette(&gUnknown_0860F074, 0xF0, 0x20); for (i = 0; i < 3; i++) { From ef4695a72cb89eb18f31057fd86a9e00091ebf20 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 2 Sep 2018 13:47:12 +0100 Subject: [PATCH 160/174] Minor labelling --- src/pokemon_summary_screen.c | 393 +++++++++++++++++++++++++++++------ 1 file changed, 326 insertions(+), 67 deletions(-) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 9648747e71..2c59cb57b5 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -172,7 +172,7 @@ static void sub_81C2074(u16 a, s16 b); static void sub_81C20F0(u8 taskId); static void sub_81C2194(u16 *a, u16 b, u8 c); static void sub_81C2228(struct Pokemon* mon); -static void sub_81C22CC(struct Pokemon* mon); +static void DrawExperienceProgressBar(struct Pokemon* mon); static void sub_81C240C(u16 a); static void sub_81C2524(void); static void sub_81C2554(void); @@ -313,48 +313,304 @@ static const struct UnkStruct_61CC04 gUnknown_0861CC10 = static const s8 gUnknown_0861CC1C[] = {0, 2, 3, 1, 4, 5}; static const struct WindowTemplate gUnknown_0861CC24[] = { - { 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x0001 }, - { 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x0017 }, - { 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x002d }, - { 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x0043 }, - { 0x00, 0x16, 0x00, 0x08, 0x02, 0x07, 0x0059 }, - { 0x00, 0x16, 0x00, 0x08, 0x02, 0x07, 0x0069 }, - { 0x00, 0x16, 0x00, 0x08, 0x02, 0x07, 0x0079 }, - { 0x00, 0x0b, 0x04, 0x00, 0x02, 0x06, 0x0089 }, - { 0x00, 0x0b, 0x04, 0x12, 0x02, 0x06, 0x0089 }, - { 0x00, 0x0b, 0x06, 0x12, 0x02, 0x06, 0x00ad }, - { 0x00, 0x0a, 0x07, 0x06, 0x06, 0x06, 0x00d1 }, - { 0x00, 0x16, 0x07, 0x05, 0x06, 0x06, 0x00f5 }, - { 0x00, 0x0a, 0x0e, 0x0b, 0x04, 0x06, 0x0113 }, - { 0x00, 0x00, 0x12, 0x06, 0x02, 0x06, 0x013f }, - { 0x00, 0x01, 0x0f, 0x09, 0x04, 0x06, 0x014b }, - { 0x00, 0x01, 0x0f, 0x05, 0x04, 0x06, 0x016f }, - { 0x00, 0x16, 0x04, 0x00, 0x02, 0x06, 0x0183 }, - { 0x00, 0x01, 0x02, 0x04, 0x02, 0x07, 0x0183 }, - { 0x00, 0x01, 0x0c, 0x09, 0x02, 0x06, 0x018b }, - { 0x00, 0x01, 0x0e, 0x09, 0x04, 0x06, 0x019d }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 11, + .height = 2, + .paletteNum = 6, + .baseBlock = 1, + }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 11, + .height = 2, + .paletteNum = 6, + .baseBlock = 23, + }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 11, + .height = 2, + .paletteNum = 6, + .baseBlock = 45, + }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 11, + .height = 2, + .paletteNum = 6, + .baseBlock = 67, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 0, + .width = 8, + .height = 2, + .paletteNum = 7, + .baseBlock = 89, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 0, + .width = 8, + .height = 2, + .paletteNum = 7, + .baseBlock = 105, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 0, + .width = 8, + .height = 2, + .paletteNum = 7, + .baseBlock = 121, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 4, + .width = 0, + .height = 2, + .paletteNum = 6, + .baseBlock = 137, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 4, + .width = 18, + .height = 2, + .paletteNum = 6, + .baseBlock = 137, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 6, + .width = 18, + .height = 2, + .paletteNum = 6, + .baseBlock = 173, + }, + { + .priority = 0, + .tilemapLeft = 10, + .tilemapTop = 7, + .width = 6, + .height = 6, + .paletteNum = 6, + .baseBlock = 209, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 7, + .width = 5, + .height = 6, + .paletteNum = 6, + .baseBlock = 245, + }, + { + .priority = 0, + .tilemapLeft = 10, + .tilemapTop = 14, + .width = 11, + .height = 4, + .paletteNum = 6, + .baseBlock = 275, + }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 18, + .width = 6, + .height = 2, + .paletteNum = 6, + .baseBlock = 319, + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 15, + .width = 9, + .height = 4, + .paletteNum = 6, + .baseBlock = 331, + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 15, + .width = 5, + .height = 4, + .paletteNum = 6, + .baseBlock = 367, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 4, + .width = 0, + .height = 2, + .paletteNum = 6, + .baseBlock = 387, + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 2, + .width = 4, + .height = 2, + .paletteNum = 7, + .baseBlock = 387, + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 12, + .width = 9, + .height = 2, + .paletteNum = 6, + .baseBlock = 395, + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 14, + .width = 9, + .height = 4, + .paletteNum = 6, + .baseBlock = 413, + }, DUMMY_WIN_TEMPLATE }; static const struct WindowTemplate gUnknown_0861CCCC[] = { - { 0x00, 0x0b, 0x04, 0x0b, 0x02, 0x06, 0x01c1 }, - { 0x00, 0x16, 0x04, 0x07, 0x02, 0x06, 0x01d7 }, - { 0x00, 0x0b, 0x09, 0x12, 0x04, 0x06, 0x01e5 }, - { 0x00, 0x0b, 0x0e, 0x12, 0x06, 0x06, 0x022d }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 4, + .width = 11, + .height = 2, + .paletteNum = 6, + .baseBlock = 449, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 4, + .width = 7, + .height = 2, + .paletteNum = 6, + .baseBlock = 471, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 9, + .width = 18, + .height = 4, + .paletteNum = 6, + .baseBlock = 485, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 14, + .width = 18, + .height = 6, + .paletteNum = 6, + .baseBlock = 557, + }, }; static const struct WindowTemplate gUnknown_0861CCEC[] = { - { 0x00, 0x0a, 0x04, 0x0a, 0x02, 0x06, 0x01c1 }, - { 0x00, 0x14, 0x04, 0x0a, 0x02, 0x06, 0x01d5 }, - { 0x00, 0x10, 0x07, 0x06, 0x06, 0x06, 0x01e9 }, - { 0x00, 0x1b, 0x07, 0x03, 0x06, 0x06, 0x020d }, - { 0x00, 0x18, 0x0e, 0x06, 0x04, 0x06, 0x021f }, + { + .priority = 0, + .tilemapLeft = 10, + .tilemapTop = 4, + .width = 10, + .height = 2, + .paletteNum = 6, + .baseBlock = 449, + }, + { + .priority = 0, + .tilemapLeft = 20, + .tilemapTop = 4, + .width = 10, + .height = 2, + .paletteNum = 6, + .baseBlock = 469, + }, + { + .priority = 0, + .tilemapLeft = 16, + .tilemapTop = 7, + .width = 6, + .height = 6, + .paletteNum = 6, + .baseBlock = 489, + }, + { + .priority = 0, + .tilemapLeft = 27, + .tilemapTop = 7, + .width = 3, + .height = 6, + .paletteNum = 6, + .baseBlock = 525, + }, + { + .priority = 0, + .tilemapLeft = 24, + .tilemapTop = 14, + .width = 6, + .height = 4, + .paletteNum = 6, + .baseBlock = 543, + }, }; static const struct WindowTemplate gUnknown_0861CD14[] = { - { 0x00, 0x0f, 0x04, 0x09, 0x0a, 0x06, 0x01c1 }, - { 0x00, 0x18, 0x04, 0x06, 0x0a, 0x08, 0x021b }, - { 0x00, 0x0a, 0x0f, 0x14, 0x04, 0x06, 0x0257 }, + { + .priority = 0, + .tilemapLeft = 15, + .tilemapTop = 4, + .width = 9, + .height = 10, + .paletteNum = 6, + .baseBlock = 449, + }, + { + .priority = 0, + .tilemapLeft = 24, + .tilemapTop = 4, + .width = 6, + .height = 10, + .paletteNum = 8, + .baseBlock = 539, + }, + { + .priority = 0, + .tilemapLeft = 10, + .tilemapTop = 15, + .width = 20, + .height = 4, + .paletteNum = 6, + .baseBlock = 599, + }, }; static const u8 sTextColors_861CD2C[][3] = { @@ -661,7 +917,7 @@ static const struct SpriteTemplate gUnknown_0861D084 = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_861D09C = +static const struct OamData sOamData_StatusCondition = { .y = 0, .affineMode = 0, @@ -677,42 +933,42 @@ static const struct OamData gOamData_861D09C = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gSpriteAnim_861D0A4[] = { +static const union AnimCmd sSpriteAnim_StatusPoison[] = { ANIMCMD_FRAME(0, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D0AC[] = { +static const union AnimCmd sSpriteAnim_StatusParalyzed[] = { ANIMCMD_FRAME(4, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D0B4[] = { +static const union AnimCmd sSpriteAnim_StatusSleep[] = { ANIMCMD_FRAME(8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D0BC[] = { +static const union AnimCmd sSpriteAnim_StatusFrozen[] = { ANIMCMD_FRAME(12, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D0C4[] = { +static const union AnimCmd sSpriteAnim_StatusBurn[] = { ANIMCMD_FRAME(16, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D0CC[] = { +static const union AnimCmd sSpriteAnim_StatusPokerus[] = { ANIMCMD_FRAME(20, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D0D4[] = { +static const union AnimCmd sSpriteAnim_StatusFaint[] = { ANIMCMD_FRAME(24, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_861D0DC[] = { - gSpriteAnim_861D0A4, - gSpriteAnim_861D0AC, - gSpriteAnim_861D0B4, - gSpriteAnim_861D0BC, - gSpriteAnim_861D0C4, - gSpriteAnim_861D0CC, - gSpriteAnim_861D0D4, +static const union AnimCmd *const sSpriteAnimTable_StatusCondition[] = { + sSpriteAnim_StatusPoison, + sSpriteAnim_StatusParalyzed, + sSpriteAnim_StatusSleep, + sSpriteAnim_StatusFrozen, + sSpriteAnim_StatusBurn, + sSpriteAnim_StatusPokerus, + sSpriteAnim_StatusFaint, }; static const struct CompressedSpriteSheet gUnknown_0861D0F8 = { @@ -725,12 +981,12 @@ static const struct CompressedSpritePalette gUnknown_0861D100 = .data = gStatusPal_Icons, .tag = 30001 }; -static const struct SpriteTemplate gUnknown_0861D108 = +static const struct SpriteTemplate sSpriteTemplate_StatusCondition = { .tileTag = 30001, .paletteTag = 30001, - .oam = &gOamData_861D09C, - .anims = gSpriteAnimTable_861D0DC, + .oam = &sOamData_StatusCondition, + .anims = sSpriteAnimTable_StatusCondition, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -1521,7 +1777,7 @@ static void sub_81C0D44(u8 taskId) static void sub_81C0E24(void) { if (pssData->currPageIndex == 1) - sub_81C22CC(&pssData->currentMon); + DrawExperienceProgressBar(&pssData->currentMon); } static void sub_81C0E48(u8 taskId) @@ -2270,37 +2526,40 @@ static void sub_81C228C(bool8 isMonShiny) schedule_bg_copy_tilemap_to_vram(3); } -static void sub_81C22CC(struct Pokemon *unused) +static void DrawExperienceProgressBar(struct Pokemon *unused) { - s64 r6r7; + s64 numExpProgressBarTicks; struct PokeSummary *summary = &pssData->summary; u16 *r9; u8 i; if (summary->level < MAX_MON_LEVEL) { - u32 r1 = gExperienceTables[gBaseStats[summary->species].growthRate][summary->level + 1] - gExperienceTables[gBaseStats[summary->species].growthRate][summary->level]; - u32 r4 = summary->exp - gExperienceTables[gBaseStats[summary->species].growthRate][summary->level]; + u32 expBetweenLevels = gExperienceTables[gBaseStats[summary->species].growthRate][summary->level + 1] - gExperienceTables[gBaseStats[summary->species].growthRate][summary->level]; + u32 expSinceLastLevel = summary->exp - gExperienceTables[gBaseStats[summary->species].growthRate][summary->level]; - r6r7 = r4 * 64 / r1; - if (r6r7 == 0 && r4 != 0) - r6r7 = 1; + // Calculate the number of 1-pixel "ticks" to illuminate in the experience progress bar. + // There are 8 tiles that make up the bar, and each tile has 8 "ticks". Hence, the numerator + // is multiplied by 64. + numExpProgressBarTicks = expSinceLastLevel * 64 / expBetweenLevels; + if (numExpProgressBarTicks == 0 && expSinceLastLevel != 0) + numExpProgressBarTicks = 1; } else { - r6r7 = 0; + numExpProgressBarTicks = 0; } r9 = &pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][1][0x255]; for (i = 0; i < 8; i++) { - if (r6r7 > 7) + if (numExpProgressBarTicks > 7) r9[i] = 0x206A; else - r9[i] = 0x2062 + (r6r7 % 8); - r6r7 -= 8; - if (r6r7 < 0) - r6r7 = 0; + r9[i] = 0x2062 + (numExpProgressBarTicks % 8); + numExpProgressBarTicks -= 8; + if (numExpProgressBarTicks < 0) + numExpProgressBarTicks = 0; } if (GetBgTilemapBuffer(1) == pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][0]) @@ -3735,7 +3994,7 @@ static void CreateSetStatusSprite(void) if (*spriteId == 0xFF) { - *spriteId = CreateSprite(&gUnknown_0861D108, 64, 152, 0); + *spriteId = CreateSprite(&sSpriteTemplate_StatusCondition, 64, 152, 0); } anim = sub_81B205C(&pssData->currentMon); From f45c9e75db789c951b6e227ef3291c6801a92a55 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 2 Sep 2018 14:49:29 +0100 Subject: [PATCH 161/174] Format templates in item_menu.c --- src/item_menu.c | 223 +++++++++++++++++++++++++++++++---- src/pokemon_summary_screen.c | 2 +- 2 files changed, 199 insertions(+), 26 deletions(-) diff --git a/src/item_menu.c b/src/item_menu.c index f58c2b8b3e..5fea1326ee 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -149,14 +149,57 @@ void sub_81AD6FC(u8 taskId); // .rodata -const struct BgTemplate gUnknown_08613F90[3] = { - {0, 0, 31, 0, 0, 1, 0}, - {1, 0, 30, 0, 0, 0, 0}, - {2, 3, 29, 0, 0, 2, 0} +const struct BgTemplate gUnknown_08613F90[3] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0, + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, + { + .bg = 2, + .charBaseIndex = 3, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0, + }, }; -const struct ListMenuTemplate gUnknown_08613F9C = { - NULL, bag_menu_change_item_callback, sub_81AB520, 0, 0, 0, 0, 8, 0, 1, 1, 0, 3, 0, 0, 0, 7, 0 +const struct ListMenuTemplate gUnknown_08613F9C = +{ + NULL, + bag_menu_change_item_callback, + sub_81AB520, + .totalItems = 0, + .maxShowed = 0, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 1, + .fillValue = 0, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 7, + .cursorKind = 0 }; const struct MenuAction gUnknown_08613FB4[] = { @@ -221,27 +264,157 @@ const u8 gUnknown_08614164[][3] = { {0, 14, 10} }; -const struct WindowTemplate gUnknown_08614174[] = { - {0, 14, 2, 15, 16, 1, 0x27}, - {0, 0, 13, 14, 6, 1, 0x117}, - {0, 4, 1, 8, 2, 1, 0x1A1}, - {0, 1, 13, 5, 6, 12, 0x16B}, - {0, 7, 13, 4, 6, 12, 0x189}, - {1, 2, 15, 27, 4, 15, 0x1B1}, - {0xFF, 0, 0, 0, 0, 0, 0} +const struct WindowTemplate gUnknown_08614174[] = +{ + { + .priority = 0, + .tilemapLeft = 14, + .tilemapTop = 2, + .width = 15, + .height = 16, + .paletteNum = 1, + .baseBlock = 0x27, + }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 13, + .width = 14, + .height = 6, + .paletteNum = 1, + .baseBlock = 0x117, + }, + { + .priority = 0, + .tilemapLeft = 4, + .tilemapTop = 1, + .width = 8, + .height = 2, + .paletteNum = 1, + .baseBlock = 0x1A1, + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 13, + .width = 5, + .height = 6, + .paletteNum = 12, + .baseBlock = 0x16B, + }, + { + .priority = 0, + .tilemapLeft = 7, + .tilemapTop = 13, + .width = 4, + .height = 6, + .paletteNum = 12, + .baseBlock = 0x189, + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 27, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x1B1, + }, + DUMMY_WIN_TEMPLATE, }; -const struct WindowTemplate gUnknown_086141AC[] = { - {1, 22, 17, 7, 2, 15, 0x21D}, - {1, 22, 15, 7, 4, 15, 0x21D}, - {1, 15, 15, 14, 4, 15, 0x21D}, - {1, 15, 13, 14, 6, 15, 0x21D}, - {1, 2, 15, 27, 4, 15, 0x1B1}, - {1, 24, 15, 5, 4, 15, 0x21D}, - {1, 21, 9, 5, 4, 15, 0x21D}, - {1, 24, 17, 5, 2, 15, 0x21D}, - {1, 18, 11, 10, 2, 15, 0x245}, - {1, 1, 1, 10, 2, 15, 0x231} +const struct WindowTemplate gUnknown_086141AC[] = +{ + { + .priority = 1, + .tilemapLeft = 22, + .tilemapTop = 17, + .width = 7, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x21D, + }, + { + .priority = 1, + .tilemapLeft = 22, + .tilemapTop = 15, + .width = 7, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x21D, + }, + { + .priority = 1, + .tilemapLeft = 15, + .tilemapTop = 15, + .width = 14, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x21D, + }, + { + .priority = 1, + .tilemapLeft = 15, + .tilemapTop = 13, + .width = 14, + .height = 6, + .paletteNum = 15, + .baseBlock = 0x21D, + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 27, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x1B1, + }, + { + .priority = 1, + .tilemapLeft = 24, + .tilemapTop = 15, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x21D, + }, + { + .priority = 1, + .tilemapLeft = 21, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x21D, + }, + { + .priority = 1, + .tilemapLeft = 24, + .tilemapTop = 17, + .width = 5, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x21D, + }, + { + .priority = 1, + .tilemapLeft = 18, + .tilemapTop = 11, + .width = 10, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x245, + }, + { + .priority = 1, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 10, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x231, + }, }; // .text diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 2c59cb57b5..6b51c6e07d 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -357,7 +357,7 @@ static const struct WindowTemplate gUnknown_0861CC24[] = .height = 2, .paletteNum = 7, .baseBlock = 89, - }, + }, { .priority = 0, .tilemapLeft = 22, From 3119aae4b2665052c38b3badaadddd34df91a7ba Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 2 Sep 2018 15:02:39 +0100 Subject: [PATCH 162/174] Format WindowTemplate in berry_tag_screen.c --- src/berry_tag_screen.c | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index fb4bf68177..0c13e7085a 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -101,10 +101,42 @@ static const u8 sTextColors[2][3] = static const struct WindowTemplate sWindowTemplates[] = { - {0x01, 0x0b, 0x04, 0x08, 0x02, 0x0f, 0x0045}, // WIN_BERRY_NAME - {0x01, 0x0b, 0x07, 0x12, 0x04, 0x0f, 0x0055}, // WIN_SIZE_FIRM - {0x01, 0x04, 0x0e, 0x19, 0x04, 0x0f, 0x009d}, // WIN_DESC - {0x00, 0x02, 0x00, 0x08, 0x02, 0x0f, 0x0101}, // WIN_BERRY_TAG + { // WIN_BERRY_NAME + .priority = 1, + .tilemapLeft = 11, + .tilemapTop = 4, + .width = 8, + .height = 2, + .paletteNum = 15, + .baseBlock = 69, + }, + { // WIN_SIZE_FIRM + .priority = 1, + .tilemapLeft = 11, + .tilemapTop = 7, + .width = 18, + .height = 4, + .paletteNum = 15, + .baseBlock = 85, + }, + { // WIN_DESC + .priority = 1, + .tilemapLeft = 4, + .tilemapTop = 14, + .width = 25, + .height = 4, + .paletteNum = 15, + .baseBlock = 157, + }, + { // WIN_BERRY_TAG + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 0, + .width = 8, + .height = 2, + .paletteNum = 15, + .baseBlock = 257, + }, DUMMY_WIN_TEMPLATE }; From c9db9b7a59cd2e4821eae59bf208807e9f70951d Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 2 Sep 2018 15:14:23 +0100 Subject: [PATCH 163/174] Format WindowTemplate in berry_blender.c --- src/berry_blender.c | 68 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 61 insertions(+), 7 deletions(-) diff --git a/src/berry_blender.c b/src/berry_blender.c index 02df933f29..c905a2422d 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -322,18 +322,72 @@ static const struct BgTemplate sBerryBlenderBgTemplates[3] = static const struct WindowTemplate sBerryBlender_WindowTemplates[] = { - {0, 1, 6, 7, 2, 0xE, 0x28}, - {0, 0x16, 6, 7, 2, 0xE, 0x36}, - {0, 1, 0xC, 7, 2, 0xE, 0x44}, - {0, 0x16, 0xC, 7, 2, 0xE, 0x52}, - {0, 2, 0xF, 0x1B, 4, 0xE, 0x60}, - {0, 5, 3, 0x15, 0xE, 0xE, 0x60}, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 6, + .width = 7, + .height = 2, + .paletteNum = 14, + .baseBlock = 0x28, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 6, + .width = 7, + .height = 2, + .paletteNum = 14, + .baseBlock = 0x36, + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 12, + .width = 7, + .height = 2, + .paletteNum = 14, + .baseBlock = 0x44, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 12, + .width = 7, + .height = 2, + .paletteNum = 14, + .baseBlock = 0x52, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 27, + .height = 4, + .paletteNum = 14, + .baseBlock = 0x60, + }, + { + .priority = 0, + .tilemapLeft = 5, + .tilemapTop = 3, + .width = 21, + .height = 14, + .paletteNum = 14, + .baseBlock = 0x60, + }, DUMMY_WIN_TEMPLATE }; static const struct WindowTemplate sBlender_YesNoWindowTemplate = { - 0, 0x15, 9, 5, 4, 0xE, 0xCC + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 14, + .baseBlock = 0xCC }; static const s8 sUnknown_083399C0[][2] = From c1b3dfa15a353ec52d8c37c25b6a9c9be9f05b0f Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 2 Sep 2018 16:10:06 +0100 Subject: [PATCH 164/174] Format templates in wallclock.c --- src/berry_blender.c | 11 ++++- src/wallclock.c | 103 ++++++++++++++++++++++++++++---------------- 2 files changed, 76 insertions(+), 38 deletions(-) diff --git a/src/berry_blender.c b/src/berry_blender.c index c905a2422d..96c3a933d7 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -844,7 +844,16 @@ static const u8 sUnknown_08339CD2[] = 0x05, 0x03, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02 }; -static const struct WindowTemplate sBlenderRecordWindowTemplate = {0, 6, 4, 0x12, 0xB, 0xF, 8}; +static const struct WindowTemplate sBlenderRecordWindowTemplate = +{ + .priority = 0, + .tilemapLeft = 6, + .tilemapTop = 4, + .width = 18, + .height = 11, + .paletteNum = 15, + .baseBlock = 8 +}; // code diff --git a/src/wallclock.c b/src/wallclock.c index 5be20d5c9c..f3feab1d4d 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -59,13 +59,38 @@ static void SpriteCB_PMIndicator(struct Sprite *sprite); static const u8 sUnknown_085B1F58[] = INCBIN_U8("graphics/wallclock/graphics_85b1f58.4bpp.lz"); static const u16 sUnknown_085B21D4[] = INCBIN_U16("graphics/wallclock/palette_85b21d4.gbapal"); -static const struct WindowTemplate gUnknown_085B21DC[] = { - { 0x00, 0x03, 0x11, 0x18, 0x02, 0x0e, 0x200 }, - { 0x02, 0x18, 0x10, 0x06, 0x02, 0x0c, 0x230 }, + +static const struct WindowTemplate gUnknown_085B21DC[] = +{ + { + .priority = 0, + .tilemapLeft = 3, + .tilemapTop = 17, + .width = 24, + .height = 2, + .paletteNum = 14, + .baseBlock = 512 + }, + { + .priority = 2, + .tilemapLeft = 24, + .tilemapTop = 16, + .width = 6, + .height = 2, + .paletteNum = 12, + .baseBlock = 560 + }, DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate gUnknown_085B21F4 = { - 0x00, 0x18, 0x09, 0x05, 0x04, 0x0e, 0x23c +static const struct WindowTemplate gUnknown_085B21F4 = +{ + .priority = 0, + .tilemapLeft = 24, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 14, + .baseBlock = 572 }; static const struct BgTemplate gUnknown_085B21FC[] = { { @@ -115,23 +140,25 @@ static const union AnimCmd *const gUnknown_085B2248[] = { static const union AnimCmd *const gUnknown_085B224C[] = { Unknown_085B2240 }; -static const struct SpriteTemplate gUnknown_085B2250 = { - TAG_GFX_WALL_CLOCK_HAND, - TAG_PAL_WALL_CLOCK_HAND, - &Unknown_085B2230, - gUnknown_085B2248, - NULL, - gDummySpriteAffineAnimTable, - SpriteCB_MinuteHand +static const struct SpriteTemplate gUnknown_085B2250 = +{ + .tileTag = TAG_GFX_WALL_CLOCK_HAND, + .paletteTag = TAG_PAL_WALL_CLOCK_HAND, + .oam = &Unknown_085B2230, + .anims = gUnknown_085B2248, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_MinuteHand }; -static const struct SpriteTemplate gUnknown_085B2268 = { - TAG_GFX_WALL_CLOCK_HAND, - TAG_PAL_WALL_CLOCK_HAND, - &Unknown_085B2230, - gUnknown_085B224C, - NULL, - gDummySpriteAffineAnimTable, - SpriteCB_HourHand +static const struct SpriteTemplate gUnknown_085B2268 = +{ + .tileTag = TAG_GFX_WALL_CLOCK_HAND, + .paletteTag = TAG_PAL_WALL_CLOCK_HAND, + .oam = &Unknown_085B2230, + .anims = gUnknown_085B224C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_HourHand }; static const struct OamData Unknown_085B2280 = { .y = 0xa0, @@ -152,23 +179,25 @@ static const union AnimCmd *const gUnknown_085B2298[] = { static const union AnimCmd *const gUnknown_085B229C[] = { Unknown_085B2290 }; -static const struct SpriteTemplate gUnknown_085B22A0 = { - TAG_GFX_WALL_CLOCK_HAND, - TAG_PAL_WALL_CLOCK_HAND, - &Unknown_085B2280, - gUnknown_085B2298, - NULL, - gDummySpriteAffineAnimTable, - SpriteCB_AMIndicator +static const struct SpriteTemplate gUnknown_085B22A0 = +{ + .tileTag = TAG_GFX_WALL_CLOCK_HAND, + .paletteTag = TAG_PAL_WALL_CLOCK_HAND, + .oam = &Unknown_085B2280, + .anims = gUnknown_085B2298, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_AMIndicator }; -static const struct SpriteTemplate gUnknown_085B22B8 = { - TAG_GFX_WALL_CLOCK_HAND, - TAG_PAL_WALL_CLOCK_HAND, - &Unknown_085B2280, - gUnknown_085B229C, - NULL, - gDummySpriteAffineAnimTable, - SpriteCB_PMIndicator +static const struct SpriteTemplate gUnknown_085B22B8 = +{ + .tileTag = TAG_GFX_WALL_CLOCK_HAND, + .paletteTag = TAG_PAL_WALL_CLOCK_HAND, + .oam = &Unknown_085B2280, + .anims = gUnknown_085B229C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_PMIndicator }; static const s8 sClockHandCoords[][2] = { { 0x00, -0x18}, From 61061548016a66bc1d981e7c5c77f6a849f1486c Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 2 Sep 2018 16:26:23 +0100 Subject: [PATCH 165/174] Format WindowTemplate in battle_pyramid_bag.c --- src/battle_pyramid_bag.c | 90 ++++++++++++++++++++++++++++++++++++---- src/item_menu.c | 6 +-- 2 files changed, 84 insertions(+), 12 deletions(-) diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 8a5ce7a99a..6629e6a0a0 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -193,20 +193,92 @@ static const u8 sColorTable[][3] = static const struct WindowTemplate gUnknown_0861F328[] = { - {0x00, 0x0e, 0x02, 0x0f, 0x10, 0x0f, 0x001e}, - {0x00, 0x00, 0x0d, 0x0e, 0x06, 0x0f, 0x010e}, - {0x01, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x0162}, - {0x01, 0x18, 0x11, 0x05, 0x02, 0x0f, 0x01ce}, + { + .priority = 0, + .tilemapLeft = 14, + .tilemapTop = 2, + .width = 15, + .height = 16, + .paletteNum = 15, + .baseBlock = 30 + }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 13, + .width = 14, + .height = 6, + .paletteNum = 15, + .baseBlock = 270 + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 27, + .height = 4, + .paletteNum = 15, + .baseBlock = 354 + }, + { + .priority = 1, + .tilemapLeft = 24, + .tilemapTop = 17, + .width = 5, + .height = 2, + .paletteNum = 15, + .baseBlock = 462 + }, DUMMY_WIN_TEMPLATE, }; static const struct WindowTemplate gUnknown_0861F350[] = { - {0x01, 0x16, 0x11, 0x07, 0x02, 0x0f, 0x01d8}, - {0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01d8}, - {0x01, 0x0f, 0x0f, 0x0e, 0x04, 0x0f, 0x01d8}, - {0x01, 0x0f, 0x0d, 0x0e, 0x06, 0x0f, 0x01d8}, - {0x01, 0x18, 0x0f, 0x05, 0x04, 0x0f, 0x01d8}, + { + .priority = 1, + .tilemapLeft = 22, + .tilemapTop = 17, + .width = 7, + .height = 2, + .paletteNum = 15, + .baseBlock = 472 + }, + { + .priority = 1, + .tilemapLeft = 22, + .tilemapTop = 15, + .width = 7, + .height = 4, + .paletteNum = 15, + .baseBlock = 472 + }, + { + .priority = 1, + .tilemapLeft = 15, + .tilemapTop = 15, + .width = 14, + .height = 4, + .paletteNum = 15, + .baseBlock = 472 + }, + { + .priority = 1, + .tilemapLeft = 15, + .tilemapTop = 13, + .width = 14, + .height = 6, + .paletteNum = 15, + .baseBlock = 472 + }, + { + .priority = 1, + .tilemapLeft = 24, + .tilemapTop = 15, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 472 + }, }; extern const struct CompressedSpriteSheet gUnknown_0861F3CC; diff --git a/src/item_menu.c b/src/item_menu.c index 5fea1326ee..196ba94740 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -182,9 +182,9 @@ const struct BgTemplate gUnknown_08613F90[3] = const struct ListMenuTemplate gUnknown_08613F9C = { - NULL, - bag_menu_change_item_callback, - sub_81AB520, + .items = NULL, + .moveCursorFunc = bag_menu_change_item_callback, + .itemPrintFunc = sub_81AB520, .totalItems = 0, .maxShowed = 0, .windowId = 0, From f74adc80c126bd451767c917d53e7240ebcc7950 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 2 Sep 2018 17:53:52 +0100 Subject: [PATCH 166/174] Format more templates --- src/battle_records.c | 21 ++++++- src/credits.c | 10 +++- src/daycare.c | 11 +++- src/decoration.c | 69 +++++++++++++++++---- src/egg_hatch.c | 18 +++++- src/field_region_map.c | 23 ++++++- src/main_menu.c | 126 +++++++++++++++++++++++++++++++++------ src/menu.c | 18 +++++- src/mystery_event_menu.c | 20 ++++++- src/naming_screen.c | 53 ++++++++++++++-- src/option_menu.c | 20 ++++++- src/player_pc.c | 114 ++++++++++++++++++++++++++++++----- src/pokeblock.c | 121 +++++++++++++++++++++++++++++++++---- 13 files changed, 546 insertions(+), 78 deletions(-) diff --git a/src/battle_records.c b/src/battle_records.c index 1680f3cc4e..fc9826e5bf 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -64,11 +64,28 @@ static const struct BgTemplate sTrainerHillRecordsBgTemplates[] = static const struct WindowTemplate sTrainerHillRecordsWindowTemplates[] = { - {0x0, 0x2, 0x1, 0x1A, 0x12, 0xF, 0x14}, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 1, + .width = 26, + .height = 18, + .paletteNum = 15, + .baseBlock = 20 + }, DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate sLinkBattleRecordsWindow = {0x0, 0x2, 0x1, 0x1A, 0x11, 0xF, 0x1}; +static const struct WindowTemplate sLinkBattleRecordsWindow = +{ + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 1, + .width = 26, + .height = 17, + .paletteNum = 15, + .baseBlock = 1 +}; static const u8 sText_DashesNoPlayer[] = _("-------"); static const u8 sText_DashesNoScore[] = _("----"); diff --git a/src/credits.c b/src/credits.c index c054958ce3..cbf77f1b3f 100644 --- a/src/credits.c +++ b/src/credits.c @@ -948,7 +948,15 @@ static const struct BgTemplate gUnknown_085E6F68[] = }; static const struct WindowTemplate gUnknown_085E6F6C[] = { - { 0x00, 0x00, 0x09, 0x1E, 0x0C, 0x08, 0x0001 }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 9, + .width = 30, + .height = 12, + .paletteNum = 8, + .baseBlock = 1 + }, DUMMY_WIN_TEMPLATE, }; static const u8 gUnknown_085E6F7C[][2] = diff --git a/src/daycare.c b/src/daycare.c index 7599d70abe..934cdea439 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -61,7 +61,16 @@ EWRAM_DATA static u16 sHatchedEggMotherMoves[4] = {0}; #include "data/pokemon/egg_moves.h" -static const struct WindowTemplate sDaycareLevelMenuWindowTemplate = {0, 0xF, 1, 0xE, 6, 0xF, 8}; +static const struct WindowTemplate sDaycareLevelMenuWindowTemplate = +{ + .priority = 0, + .tilemapLeft = 15, + .tilemapTop = 1, + .width = 14, + .height = 6, + .paletteNum = 15, + .baseBlock = 8 +}; static const struct ListMenuItem sLevelMenuItems[] = { diff --git a/src/decoration.c b/src/decoration.c index b21d512780..4f9ad298de 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -214,22 +214,67 @@ void (*const SecretBasePC_SelectedDecorActions[][2])(u8 taskId) = { } }; -const struct WindowTemplate gUnknown_085A6B90[4] = { - { 0, 1, 1, 18, 8, 15, 0x0001 }, - { 0, 1, 1, 13, 18, 13, 0x0091 }, - { 0, 17, 1, 12, 2, 15, 0x017b }, - { 0, 16, 13, 13, 6, 15, 0x0193 } +const struct WindowTemplate gUnknown_085A6B90[4] = +{ + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 18, + .height = 8, + .paletteNum = 15, + .baseBlock = 0x0001 + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 13, + .height = 18, + .paletteNum = 13, + .baseBlock = 0x0091 + }, + { + .priority = 0, + .tilemapLeft = 17, + .tilemapTop = 1, + .width = 12, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x017b + }, + { + .priority = 0, + .tilemapLeft = 16, + .tilemapTop = 13, + .width = 13, + .height = 6, + .paletteNum = 15, + .baseBlock = 0x0193 + } }; const u16 gUnknown_085A6BB0[] = INCBIN_U16("graphics/decorations/unk_85a6bb0.gbapal"); -const struct ListMenuTemplate gUnknown_085A6BD0 = { - NULL, - sub_8127480, - sub_81274A0, - 0, 0, - 0, 0, 8, 0, - 9, 2, 1, 3, FALSE, 0, FALSE, 7 +const struct ListMenuTemplate gUnknown_085A6BD0 = +{ + .items = NULL, + .moveCursorFunc = sub_8127480, + .itemPrintFunc = sub_81274A0, + .totalItems = 0, + .maxShowed = 0, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 9, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = FALSE, + .itemVerticalPadding = 0, + .scrollMultiple = FALSE, + .fontId = 7 }; #include "data/decoration/icon.h" diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 1c626cc868..25af28da4b 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -253,13 +253,27 @@ static const struct BgTemplate sBgTemplates_EggHatch[2] = static const struct WindowTemplate sWinTemplates_EggHatch[2] = { - {0, 2, 0xF, 0x1A, 4, 0, 0x40}, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 0, + .baseBlock = 64 + }, DUMMY_WIN_TEMPLATE }; static const struct WindowTemplate sYesNoWinTemplate = { - 0, 0x15, 9, 5, 4, 0xF, 0x1A8 + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 424 }; static const s16 sEggShardVelocities[][2] = diff --git a/src/field_region_map.c b/src/field_region_map.c index f565480682..d77bde01b3 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -55,9 +55,26 @@ static const struct BgTemplate gUnknown_085E5068[] = { } }; -static const struct WindowTemplate gUnknown_085E5070[] = { - { 0, 17, 17, 12, 2, 15, 0x0001 }, - { 0, 22, 1, 7, 2, 15, 0x0019 }, +static const struct WindowTemplate gUnknown_085E5070[] = +{ + { + .priority = 0, + .tilemapLeft = 17, + .tilemapTop = 17, + .width = 12, + .height = 2, + .paletteNum = 15, + .baseBlock = 1 + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 1, + .width = 7, + .height = 2, + .paletteNum = 15, + .baseBlock = 25 + }, DUMMY_WIN_TEMPLATE }; diff --git a/src/main_menu.c b/src/main_menu.c index e28faf986a..3d8d5acc29 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -131,29 +131,121 @@ const u8 gUnknown_082FEEF0[] = INCBIN_U8("graphics/birch_speech/map.bin.lz"); const u16 gUnknown_082FF018[] = INCBIN_U16("graphics/birch_speech/bg2.gbapal"); const u16 gUnknown_082FF028[] = {0, 0, 0, 0, 0, 0, 0, 0}; -const struct WindowTemplate sWindowTemplates_NoSavedGame[] = { - {0, 2, 1, 26, 2, 15, 1}, - {0, 2, 5, 26, 2, 15, 0x35} +const struct WindowTemplate sWindowTemplates_NoSavedGame[] = +{ + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 1, + .width = 26, + .height = 2, + .paletteNum = 15, + .baseBlock = 1 + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 5, + .width = 26, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x35 + } }; -const struct WindowTemplate sWindowTemplates_HasSavedGame[] = { - {0, 2, 1, 26, 6, 15, 1}, - {0, 2, 9, 26, 2, 15, 0x9D}, - {0, 2, 13, 26, 2, 15, 0xD1}, - {0, 2, 17, 26, 2, 15, 0x105}, - {0, 2, 21, 26, 2, 15, 0x139} +const struct WindowTemplate sWindowTemplates_HasSavedGame[] = +{ + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 1, + .width = 26, + .height = 6, + .paletteNum = 15, + .baseBlock = 1 + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 9, + .width = 26, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x9D + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 13, + .width = 26, + .height = 2, + .paletteNum = 15, + .baseBlock = 0xD1 + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 17, + .width = 26, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x105 + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 21, + .width = 26, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x139 + } }; -const struct WindowTemplate sWindowTemplate_ErrorWindow[] = { - {0, 2, 15, 26, 4, 15, 0x16D}, - {0xFF, 0, 0, 0, 0, 0, 0} +const struct WindowTemplate sWindowTemplate_ErrorWindow[] = +{ + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x16D + }, + DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate gUnknown_082FF080[] = { - {0, 2, 15, 27, 4, 15, 1}, - {0, 3, 5, 6, 4, 15, 0x6D}, - {0, 3, 2, 9, 10, 15, 0x85}, - {0xFF, 0, 0, 0, 0, 0, 0} +const struct WindowTemplate gUnknown_082FF080[] = +{ + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 27, + .height = 4, + .paletteNum = 15, + .baseBlock = 1 + }, + { + .priority = 0, + .tilemapLeft = 3, + .tilemapTop = 5, + .width = 6, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x6D + }, + { + .priority = 0, + .tilemapLeft = 3, + .tilemapTop = 2, + .width = 9, + .height = 10, + .paletteNum = 15, + .baseBlock = 0x85 + }, + DUMMY_WIN_TEMPLATE }; const u16 gMainMenuBgPal[] = INCBIN_U16("graphics/misc/main_menu_bg.gbapal"); diff --git a/src/menu.c b/src/menu.c index 8a4b4fce55..3acb44985f 100644 --- a/src/menu.c +++ b/src/menu.c @@ -65,13 +65,27 @@ static const u8 gUnknown_0860F094[] = { 8, 4, 1 }; static const struct WindowTemplate gUnknown_0860F098[] = { - { 0x00, 0x02, 0x0F, 0x1B, 0x04, 0x0F, 0x194 }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 27, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x194 + }, DUMMY_WIN_TEMPLATE }; static const struct WindowTemplate gUnknown_0860F0A8 = { - 0x00, 0x15, 0x09, 0x05, 0x04, 0x0F, 0x125 + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x125 }; const u16 gUnknown_0860F0B0[] = INCBIN_U16("graphics/interface/860F0B0.gbapal"); diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 68f31584b8..7f031c704d 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -42,8 +42,24 @@ static const struct BgTemplate sBgTemplates[] = static const struct WindowTemplate sWindowTemplates[] = { - {0, 4, 15, 22, 4, 14, 20}, - {0, 7, 6, 16, 4, 14, 0x6C}, + { + .priority = 0, + .tilemapLeft = 4, + .tilemapTop = 15, + .width = 22, + .height = 4, + .paletteNum = 14, + .baseBlock = 20 + }, + { + .priority = 0, + .tilemapLeft = 7, + .tilemapTop = 6, + .width = 16, + .height = 4, + .paletteNum = 14, + .baseBlock = 0x6C + }, DUMMY_WIN_TEMPLATE }; diff --git a/src/naming_screen.c b/src/naming_screen.c index f99d23bc3d..42525380b4 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -113,12 +113,53 @@ static const struct BgTemplate gUnknown_0858BE00[] = } }; -static const struct WindowTemplate gUnknown_0858BE10[] = { - { 0x01, 0x03, 0x0A, 0x13, 0x08, 0x0A, 0x030 }, - { 0x02, 0x03, 0x0A, 0x13, 0x08, 0x0A, 0x0C8 }, - { 0x03, 0x08, 0x06, 0x11, 0x02, 0x0A, 0x030 }, - { 0x03, 0x08, 0x04, 0x11, 0x02, 0x0A, 0x052 }, - { 0x00, 0x00, 0x00, 0x1E, 0x02, 0x0B, 0x074 }, +static const struct WindowTemplate gUnknown_0858BE10[] = +{ + { + .priority = 1, + .tilemapLeft = 3, + .tilemapTop = 10, + .width = 19, + .height = 8, + .paletteNum = 10, + .baseBlock = 0x030 + }, + { + .priority = 2, + .tilemapLeft = 3, + .tilemapTop = 10, + .width = 19, + .height = 8, + .paletteNum = 10, + .baseBlock = 0x0C8 + }, + { + .priority = 3, + .tilemapLeft = 8, + .tilemapTop = 6, + .width = 17, + .height = 2, + .paletteNum = 10, + .baseBlock = 0x030 + }, + { + .priority = 3, + .tilemapLeft = 8, + .tilemapTop = 4, + .width = 17, + .height = 2, + .paletteNum = 10, + .baseBlock = 0x052 + }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 30, + .height = 2, + .paletteNum = 11, + .baseBlock = 0x074 + }, DUMMY_WIN_TEMPLATE }; diff --git a/src/option_menu.c b/src/option_menu.c index fc0c0c24e8..d48a1e4484 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -91,8 +91,24 @@ static const u8 *const sOptionMenuItemsNames[MENUITEM_COUNT] = static const struct WindowTemplate sOptionMenuWinTemplates[] = { - {1, 2, 1, 0x1A, 2, 1, 2}, - {0, 2, 5, 0x1A, 0xE, 1, 0x36}, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 1, + .width = 26, + .height = 2, + .paletteNum = 1, + .baseBlock = 2 + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 5, + .width = 26, + .height = 14, + .paletteNum = 1, + .baseBlock = 0x36 + }, DUMMY_WIN_TEMPLATE }; diff --git a/src/player_pc.c b/src/player_pc.c index ef00e2e062..26ea834fa3 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -184,9 +184,33 @@ const struct MenuAction gMailboxMailOptions[] = static const struct WindowTemplate gUnknown_085DFF24[3] = { - {0x00, 0x01, 0x01, 0x09, 0x06, 0x0F, 0x0001}, - {0x00, 0x01, 0x01, 0x09, 0x08, 0x0F, 0x0001}, - {0x00, 0x01, 0x01, 0x0A, 0x08, 0x0F, 0x0001} + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 9, + .height = 6, + .paletteNum = 15, + .baseBlock = 1 + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 9, + .height = 8, + .paletteNum = 15, + .baseBlock = 1 + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 10, + .height = 8, + .paletteNum = 15, + .baseBlock = 1 + } }; static const struct YesNoFuncTable ResumeFromWithdrawYesNoFuncList = // ResumeFromWithdrawYesNoFuncList @@ -195,27 +219,85 @@ static const struct YesNoFuncTable ResumeFromWithdrawYesNoFuncList = // ResumeFr ItemStorage_ResumeInputFromNoToss }; -static const struct ListMenuTemplate gUnknown_085DFF44 = { - NULL, - ItemStorage_MoveCursor, - fish4_goto_x5_or_x6, - 0, 0, - 0, 0, 8, 0, - 9, 2, 1, 3, FALSE, 0, FALSE, 7 +static const struct ListMenuTemplate gUnknown_085DFF44 = +{ + .items = NULL, + .moveCursorFunc = ItemStorage_MoveCursor, + .itemPrintFunc = fish4_goto_x5_or_x6, + .totalItems = 0, + .maxShowed = 0, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 9, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = FALSE, + .itemVerticalPadding = 0, + .scrollMultiple = FALSE, + .fontId = 7 }; static const struct WindowTemplate gUnknown_085DFF5C[5] = { - {0x00, 0x10, 0x01, 0x0D, 0x12, 0x0F, 0x0001}, - {0x00, 0x01, 0x0D, 0x0D, 0x06, 0x0F, 0x00EB}, - {0x00, 0x01, 0x08, 0x03, 0x03, 0x0F, 0x0153}, - {0x00, 0x01, 0x01, 0x0D, 0x02, 0x0F, 0x0139}, - {0x00, 0x08, 0x09, 0x06, 0x02, 0x0F, 0x015C} + { + .priority = 0, + .tilemapLeft = 16, + .tilemapTop = 1, + .width = 13, + .height = 18, + .paletteNum = 15, + .baseBlock = 0x0001 + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 13, + .width = 13, + .height = 6, + .paletteNum = 15, + .baseBlock = 0x00EB + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 8, + .width = 3, + .height = 3, + .paletteNum = 15, + .baseBlock = 0x0153 + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 13, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x0139 + }, + { + .priority = 0, + .tilemapLeft = 8, + .tilemapTop = 9, + .width = 6, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x015C + } }; static const struct WindowTemplate gUnknown_085DFF84 = { - 0x00, 0x09, 0x07, 0x05, 0x04, 0x0F, 0x0168 + .priority = 0, + .tilemapLeft = 9, + .tilemapTop = 7, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x0168 }; static const u8 gUnknown_085DFF8C[] = {0x01, 0x03, 0x02, 0x00}; diff --git a/src/pokeblock.c b/src/pokeblock.c index e615693b94..0fa2cde041 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -294,21 +294,118 @@ static const struct Pokeblock sFavoritePokeblocksTable[] = static const struct WindowTemplate sWindowTemplatesForPokeblockMenu[] = { - {0, 2, 1, 9, 2, 0xF, 0x1E}, - {0, 0xF, 1, 0xE, 0x12, 0xF, 0x30}, - {0, 2, 0xD, 5, 2, 0xF, 0x12C}, - {0, 2, 0xF, 5, 2, 0xF, 0x136}, - {0, 2, 0x11, 5, 2, 0xF, 0x140}, - {0, 8, 0xD, 5, 2, 0xF, 0x14A}, - {0, 8, 0xF, 5, 2, 0xF, 0x154}, - {0, 0xB, 0x11, 2, 2, 0xF, 0x15E}, - {1, 7, 5, 6, 6, 0xF, 0x162}, - {1, 7, 7, 6, 4, 0xF, 0x186}, - {1, 2, 0xF, 0x1B, 4, 0xF, 0x19E}, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 1, + .width = 9, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x1E + }, + { + .priority = 0, + .tilemapLeft = 15, + .tilemapTop = 1, + .width = 14, + .height = 18, + .paletteNum = 15, + .baseBlock = 0x30 + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 13, + .width = 5, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x12C + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 5, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x136 + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 17, + .width = 5, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x140 + }, + { + .priority = 0, + .tilemapLeft = 8, + .tilemapTop = 13, + .width = 5, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x14A + }, + { + .priority = 0, + .tilemapLeft = 8, + .tilemapTop = 15, + .width = 5, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x154 + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 17, + .width = 2, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x15E + }, + { + .priority = 1, + .tilemapLeft = 7, + .tilemapTop = 5, + .width = 6, + .height = 6, + .paletteNum = 15, + .baseBlock = 0x162 + }, + { + .priority = 1, + .tilemapLeft = 7, + .tilemapTop = 7, + .width = 6, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x186 + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 27, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x19E + }, DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate sTossPkblockWindowTemplate = {1, 0x15, 9, 5, 4, 0xF, 0x20A}; +static const struct WindowTemplate sTossPkblockWindowTemplate = +{ + .priority = 1, + .tilemapLeft = 21, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x20A +}; static const struct ListMenuTemplate sPokeblockListMenuTemplate = { From 5c66b8a7eff886b72bb98e22b5b34421d1a601d2 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 2 Sep 2018 23:20:45 +0100 Subject: [PATCH 167/174] Label event_object_movement.c --- asm/field_effect_helpers.s | 16 +-- include/event_object_movement.h | 9 +- src/event_object_movement.c | 166 ++++++++++++++++---------------- src/overworld.c | 5 +- src/player_pc.c | 2 +- sym_ewram.txt | 10 +- 6 files changed, 100 insertions(+), 108 deletions(-) diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index 6cf62ba8bd..9a019f60ca 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -20,7 +20,7 @@ SetUpReflection: @ 8153ED4 ldrsh r2, [r4, r0] adds r0, r4, 0 movs r3, 0x98 - bl obj_unfreeze + bl CreateCopySpriteAt lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -34,7 +34,7 @@ SetUpReflection: @ 8153ED4 movs r0, 0xC orrs r1, r0 strb r1, [r7, 0x5] - ldr r2, =gUnknown_084975C4 + ldr r2, =gReflectionEffectPaletteMap lsrs r0, r1, 4 adds r0, r2 ldrb r0, [r0] @@ -185,7 +185,7 @@ npc_pal_op_B: @ 815401C bne _0815404C ldrh r0, [r2, 0x2] adds r1, r4, 0 - bl npc_load_two_palettes__no_record + bl LoadPlayerObjectReflectionPalette b _0815406A .pool _0815404C: @@ -193,15 +193,15 @@ _0815404C: bne _0815405A ldrh r0, [r2, 0x2] adds r1, r4, 0 - bl npc_load_two_palettes__and_record + bl LoadSpecialObjectReflectionPalette b _0815406A _0815405A: adds r0, r4, 0 - bl npc_paltag_by_palslot + bl GetObjectPaletteTag lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 - bl pal_patch_for_npc + bl PatchObjectPalette _0815406A: adds r0, r4, 0 bl UpdateSpritePaletteWithWeather @@ -225,7 +225,7 @@ npc_pal_op_A: @ 8154078 beq _0815409C adds r0, r1, 0 adds r1, r4, 0 - bl pal_patch_for_npc + bl PatchObjectPalette adds r0, r4, 0 bl UpdateSpritePaletteWithWeather _0815409C: @@ -277,7 +277,7 @@ _081540E0: b _08154214 .pool _081540FC: - ldr r1, =gUnknown_084975C4 + ldr r1, =gReflectionEffectPaletteMap ldrb r0, [r5, 0x5] lsrs r0, 4 adds r0, r1 diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 1a473eea99..d43dd78ea7 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -89,10 +89,10 @@ u8 GetEventObjectIdByXY(s16, s16); void SetEventObjectDirection(struct EventObject *, u8); u8 GetFirstInactiveEventObjectId(void); void RemoveEventObjectByLocalIdAndMap(u8, u8, u8); -void npc_load_two_palettes__no_record(u16, u8); -void npc_load_two_palettes__and_record(u16, u8); +void LoadPlayerObjectReflectionPalette(u16, u8); +void LoadSpecialObjectReflectionPalette(u16, u8); void sub_808EBA8(u8, u8, u8, s16, s16); -void pal_patch_for_npc(u16, u8); +void PatchObjectPalette(u16, u8); void sub_808E16C(s16, s16); void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat); void sub_8092FF0(s16, s16, s16 *, s16 *); @@ -113,7 +113,7 @@ void EventObjectTurn(struct EventObject *, u8); void EventObjectTurnByLocalIdAndMap(u8, u8, u8, u8); const struct EventObjectGraphicsInfo *GetEventObjectGraphicsInfo(u8); void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); -void gpu_pal_allocator_reset__manage_upper_four(void); +void FreeAndReserveObjectSpritePalettes(void); void sub_808E82C(u8, u8, u8, s16, s16); void sub_808E7E4(u8, u8, u8); void sub_808E78C(u8, u8, u8, u8); @@ -122,6 +122,7 @@ void EventObjectGetLocalIdAndMap(struct EventObject *eventObject, void *localId, void ShiftEventObjectCoords(struct EventObject *, s16, s16); void sub_808EB08(struct EventObject *, s16, s16); void sub_808F254(u8, u8, u8); +void InitEventObjectPalettes(u8 palSlot); void UpdateEventObjectCurrentMovement(struct EventObject *, struct Sprite *, bool8(struct EventObject *, struct Sprite *)); u8 EventObjectFaceOppositeDirection(struct EventObject *, u8); u8 GetOppositeDirection(u8); diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 5fdceb4c35..b54936db4a 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -26,9 +26,9 @@ // this file was known as evobjmv.c in Game Freak's original source -extern u8 gUnknown_020375B4; -extern u16 gUnknown_020375B6; -extern struct LockedAnimEventObjects *gLockedAnimEventObjects; +EWRAM_DATA u8 sCurrentReflectionType = 0; +EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0; +EWRAM_DATA struct LockedAnimEventObjects *gLockedAnimEventObjects = {0}; static void MoveCoordsInDirection(u32, s16 *, s16 *, s16, s16); static bool8 EventObjectExecSingleMovementAction(struct EventObject *, struct Sprite *); @@ -102,7 +102,7 @@ static struct EventObjectTemplate *FindEventObjectTemplateByLocalId(u8 localId, static void ClearEventObjectMovement(struct EventObject *, struct Sprite *); static void EventObjectSetSingleMovement(struct EventObject *, struct Sprite *, u8); -const u8 gUnknown_084975C4[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0}; +const u8 gReflectionEffectPaletteMap[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0}; const struct SpriteTemplate gCameraSpriteTemplate = {0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, ObjectCB_CameraObject}; @@ -376,7 +376,7 @@ const u8 gInitialMovementTypeFacingDirections[] = { #include "data/field_event_obj/event_object_subsprites.h" #include "data/field_event_obj/event_object_graphics_info.h" -const struct SpritePalette gUnknown_0850BBC8[] = { +const struct SpritePalette sEventObjectSpritePalettes[] = { {gEventObjectPalette0, 0x1103}, {gEventObjectPalette1, 0x1104}, {gEventObjectPalette2, 0x1105}, @@ -415,7 +415,7 @@ const struct SpritePalette gUnknown_0850BBC8[] = { {NULL, 0x0000}, }; -const u16 Unknown_0850BCE8[] = { +const u16 gPlayerReflectionPaletteTags[] = { 0x1101, 0x1101, 0x1101, @@ -429,115 +429,115 @@ const u16 Unknown_0850BCF0[] = { 0x1111, }; -const u16 Unknown_0850BCF8[] = { +const u16 gPlayerUnderwaterReflectionPaletteTags[] = { 0x1115, 0x1115, 0x1115, 0x1115, }; -const struct PairedPalettes gUnknown_0850BD00[] = { - {0x1100, Unknown_0850BCE8}, +const struct PairedPalettes gPlayerReflectionPaletteSets[] = { + {0x1100, gPlayerReflectionPaletteTags}, {0x1110, Unknown_0850BCF0}, - {0x1115, Unknown_0850BCF8}, + {0x1115, gPlayerUnderwaterReflectionPaletteTags}, {0x11FF, NULL}, }; -const u16 Unknown_0850BD20[] = { +const u16 gQuintyPlumpReflectionPaletteTags[] = { 0x110C, 0x110C, 0x110C, 0x110C, }; -const u16 Unknown_0850BD28[] = { +const u16 gTruckReflectionPaletteTags[] = { 0x110D, 0x110D, 0x110D, 0x110D, }; -const u16 Unknown_0850BD30[] = { +const u16 gVigorothMoverReflectionPaletteTags[] = { 0x110E, 0x110E, 0x110E, 0x110E, }; -const u16 Unknown_0850BD38[] = { +const u16 gMovingBoxReflectionPaletteTags[] = { 0x1112, 0x1112, 0x1112, 0x1112, }; -const u16 Unknown_0850BD40[] = { +const u16 gCableCarReflectionPaletteTags[] = { 0x1113, 0x1113, 0x1113, 0x1113, }; -const u16 Unknown_0850BD48[] = { +const u16 gSSTidalReflectionPaletteTags[] = { 0x1114, 0x1114, 0x1114, 0x1114, }; -const u16 Unknown_0850BD50[] = { +const u16 gSubmarineShadowReflectionPaletteTags[] = { 0x111B, 0x111B, 0x111B, 0x111B, }; -const u16 Unknown_0850BD58[] = { +const u16 Unknown_0850BD58[] = { // Kyogre2? 0x1117, 0x1117, 0x1117, 0x1117, }; -const u16 Unknown_0850BD60[] = { +const u16 Unknown_0850BD60[] = { // Groudon2? 0x1119, 0x1119, 0x1119, 0x1119, }; -const u16 Unknown_0850BD68[] = { +const u16 Unknown_0850BD68[] = { // Invisible Keckleon? 0x1109, 0x1109, 0x1109, 0x1109, }; -const u16 Unknown_0850BD70[] = { +const u16 gRedLeafReflectionPaletteTags[] = { 0x111D, 0x111D, 0x111D, 0x111D, }; -const struct PairedPalettes gUnknown_0850BD78[] = { - {4352, Unknown_0850BCE8}, +const struct PairedPalettes gSpecialObjectReflectionPaletteSets[] = { + {4352, gPlayerReflectionPaletteTags}, {4368, Unknown_0850BCF0}, - {4363, Unknown_0850BD20}, - {4365, Unknown_0850BD28}, - {4366, Unknown_0850BD30}, - {4370, Unknown_0850BD38}, - {4371, Unknown_0850BD40}, - {4372, Unknown_0850BD48}, + {4363, gQuintyPlumpReflectionPaletteTags}, + {4365, gTruckReflectionPaletteTags}, + {4366, gVigorothMoverReflectionPaletteTags}, + {4370, gMovingBoxReflectionPaletteTags}, + {4371, gCableCarReflectionPaletteTags}, + {4372, gSSTidalReflectionPaletteTags}, {4374, Unknown_0850BD58}, {4376, Unknown_0850BD60}, {4357, Unknown_0850BD68}, - {4379, Unknown_0850BD50}, - {4381, Unknown_0850BD70}, + {4379, gSubmarineShadowReflectionPaletteTags}, + {4381, gRedLeafReflectionPaletteTags}, {4607, NULL}, }; -const u16 gUnknown_0850BDE8[] = { +const u16 gObjectPaletteTags0[] = { 0x1100, 0x1101, 0x1103, @@ -550,7 +550,7 @@ const u16 gUnknown_0850BDE8[] = { 0x110A, }; -const u16 gUnknown_0850BDFC[] = { +const u16 gObjectPaletteTags1[] = { 0x1100, 0x1101, 0x1103, @@ -563,7 +563,7 @@ const u16 gUnknown_0850BDFC[] = { 0x110A, }; -const u16 gUnknown_0850BE10[] = { +const u16 gObjectPaletteTags2[] = { 0x1100, 0x1101, 0x1103, @@ -576,7 +576,7 @@ const u16 gUnknown_0850BE10[] = { 0x110A, }; -const u16 gUnknown_0850BE24[] = { +const u16 gObjectPaletteTags3[] = { 0x1100, 0x1101, 0x1103, @@ -590,11 +590,11 @@ const u16 gUnknown_0850BE24[] = { }; -const u16 *const gUnknown_0850BE38[] = { - gUnknown_0850BDE8, - gUnknown_0850BDFC, - gUnknown_0850BE10, - gUnknown_0850BE24, +const u16 *const gObjectPaletteTagSets[] = { + gObjectPaletteTags0, + gObjectPaletteTags1, + gObjectPaletteTags2, + gObjectPaletteTags3, }; #include "data/field_event_obj/berry_tree_graphics_tables.h" @@ -1461,11 +1461,11 @@ static u8 TrySetupEventObjectSprite(struct EventObjectTemplate *eventObjectTempl paletteSlot = graphicsInfo->paletteSlot; if (paletteSlot == 0) { - npc_load_two_palettes__no_record(graphicsInfo->paletteTag1, 0); + LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag1, 0); } else if (paletteSlot == 10) { - npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, 10); + LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, 10); } else if (paletteSlot >= 16) { @@ -1653,7 +1653,7 @@ u8 sprite_new(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) sprite->data[1] = z; if (graphicsInfo->paletteSlot == 10) { - npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); + LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); } else if (graphicsInfo->paletteSlot >= 16) { @@ -1806,11 +1806,11 @@ static void sub_808E1B8(u8 eventObjectId, s16 x, s16 y) paletteSlot = graphicsInfo->paletteSlot; if (paletteSlot == 0) { - npc_load_two_palettes__no_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); + LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); } else if (paletteSlot == 10) { - npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); + LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); } else if (paletteSlot >= 16) { @@ -1882,11 +1882,11 @@ void EventObjectSetGraphicsId(struct EventObject *eventObject, u8 graphicsId) paletteSlot = graphicsInfo->paletteSlot; if (paletteSlot == 0) { - pal_patch_for_npc(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); + PatchObjectPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); } else if (paletteSlot == 10) { - npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); + LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); } else if (paletteSlot >= 16) { @@ -1980,14 +1980,14 @@ const struct EventObjectGraphicsInfo *GetEventObjectGraphicsInfo(u8 graphicsId) { graphicsId = VarGetEventObjectGraphicsId(graphicsId - SPRITE_VAR); } - if (graphicsId == 0x45) + if (graphicsId == EVENT_OBJ_GFX_BARD) { bard = GetCurrentMauvilleOldMan(); return gMauvilleOldManGraphicsInfoPointers[bard]; } if (graphicsId >= NUM_OBJECT_GRAPHICS_INFO) { - graphicsId = 0x05; // LittleBoy1 + graphicsId = EVENT_OBJ_GFX_LITTLE_BOY_1; } return gEventObjectGraphicsInfoPointers[graphicsId]; } @@ -2071,7 +2071,7 @@ void sub_808E82C(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) } } -void gpu_pal_allocator_reset__manage_upper_four(void) +void FreeAndReserveObjectSpritePalettes(void) { FreeAllSpritePalettes(); gReservedSpritePaletteCount = 12; @@ -2084,7 +2084,7 @@ static void sub_808E894(u16 paletteTag) paletteSlot = FindEventObjectPaletteIndexByTag(paletteTag); if (paletteSlot != 0x11ff) // always true { - sub_808E8F4(&gUnknown_0850BBC8[paletteSlot]); + sub_808E8F4(&sEventObjectSpritePalettes[paletteSlot]); } } @@ -2107,19 +2107,19 @@ static u8 sub_808E8F4(const struct SpritePalette *spritePalette) return LoadSpritePalette(spritePalette); } -void pal_patch_for_npc(u16 paletteTag, u8 paletteSlot) +void PatchObjectPalette(u16 paletteTag, u8 paletteSlot) { u16 paletteIdx; paletteIdx = FindEventObjectPaletteIndexByTag(paletteTag); - LoadPalette(gUnknown_0850BBC8[paletteIdx].data, 16 * paletteSlot + 256, 0x20); + LoadPalette(sEventObjectSpritePalettes[paletteIdx].data, 16 * paletteSlot + 256, 0x20); } -void pal_patch_for_npc_range(const u16 *paletteTags, u8 minSlot, u8 maxSlot) +void PatchObjectPaletteRange(const u16 *paletteTags, u8 minSlot, u8 maxSlot) { while (minSlot < maxSlot) { - pal_patch_for_npc(*paletteTags, minSlot); + PatchObjectPalette(*paletteTags, minSlot); paletteTags++; minSlot++; } @@ -2129,9 +2129,9 @@ static u8 FindEventObjectPaletteIndexByTag(u16 tag) { u8 i; - for (i = 0; gUnknown_0850BBC8[i].tag != 0x11ff; i++) + for (i = 0; sEventObjectSpritePalettes[i].tag != 0x11ff; i++) { - if (gUnknown_0850BBC8[i].tag == tag) + if (sEventObjectSpritePalettes[i].tag == tag) { return i; } @@ -2139,32 +2139,32 @@ static u8 FindEventObjectPaletteIndexByTag(u16 tag) return 0xff; } -void npc_load_two_palettes__no_record(u16 tag, u8 slot) +void LoadPlayerObjectReflectionPalette(u16 tag, u8 slot) { u8 i; - pal_patch_for_npc(tag, slot); - for (i = 0; gUnknown_0850BD00[i].tag != 0x11ff; i++) + PatchObjectPalette(tag, slot); + for (i = 0; gPlayerReflectionPaletteSets[i].tag != 0x11ff; i++) { - if (gUnknown_0850BD00[i].tag == tag) + if (gPlayerReflectionPaletteSets[i].tag == tag) { - pal_patch_for_npc(gUnknown_0850BD00[i].data[gUnknown_020375B4], gUnknown_084975C4[slot]); + PatchObjectPalette(gPlayerReflectionPaletteSets[i].data[sCurrentReflectionType], gReflectionEffectPaletteMap[slot]); return; } } } -void npc_load_two_palettes__and_record(u16 tag, u8 slot) +void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot) { u8 i; - gUnknown_020375B6 = tag; - pal_patch_for_npc(tag, slot); - for (i = 0; gUnknown_0850BD78[i].tag != 0x11ff; i++) + sCurrentSpecialObjectPaletteTag = tag; + PatchObjectPalette(tag, slot); + for (i = 0; gSpecialObjectReflectionPaletteSets[i].tag != 0x11ff; i++) { - if (gUnknown_0850BD78[i].tag == tag) + if (gSpecialObjectReflectionPaletteSets[i].tag == tag) { - pal_patch_for_npc(gUnknown_0850BD78[i].data[gUnknown_020375B4], gUnknown_084975C4[slot]); + PatchObjectPalette(gSpecialObjectReflectionPaletteSets[i].data[sCurrentReflectionType], gReflectionEffectPaletteMap[slot]); return; } } @@ -2172,7 +2172,7 @@ void npc_load_two_palettes__and_record(u16 tag, u8 slot) static void sub_808EAB0(u16 tag, u8 slot) { - pal_patch_for_npc(tag, slot); + PatchObjectPalette(tag, slot); } void unref_sub_808EAC4(struct EventObject *eventObject, s16 x, s16 y) @@ -2191,7 +2191,7 @@ void ShiftEventObjectCoords(struct EventObject *eventObject, s16 x, s16 y) eventObject->currentCoords.y = y; } -/*static*/ void npc_coords_set(struct EventObject *eventObject, s16 x, s16 y) +/*static*/ void SetEventObjectCoords(struct EventObject *eventObject, s16 x, s16 y) { eventObject->previousCoords.x = x; eventObject->previousCoords.y = y; @@ -2206,7 +2206,7 @@ void sub_808EB08(struct EventObject *eventObject, s16 x, s16 y) sprite = &gSprites[eventObject->spriteId]; graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId); - npc_coords_set(eventObject, x, y); + SetEventObjectCoords(eventObject, x, y); sub_8093038(eventObject->currentCoords.x, eventObject->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y); sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); @@ -2414,7 +2414,7 @@ u8 CopySprite(struct Sprite *sprite, s16 x, s16 y, u8 subpriority) return i; } -u8 obj_unfreeze(struct Sprite *sprite, s16 x, s16 y, u8 subpriority) +u8 CreateCopySpriteAt(struct Sprite *sprite, s16 x, s16 y, u8 subpriority) { s16 i; @@ -2610,35 +2610,35 @@ void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat) } } -void npc_paltag_set_load(u8 palSlot) +void InitEventObjectPalettes(u8 palSlot) { - gpu_pal_allocator_reset__manage_upper_four(); - gUnknown_020375B6 = 0x11ff; - gUnknown_020375B4 = palSlot; + FreeAndReserveObjectSpritePalettes(); + sCurrentSpecialObjectPaletteTag = 0x11ff; + sCurrentReflectionType = palSlot; if (palSlot == 1) { - pal_patch_for_npc_range(gUnknown_0850BE38[gUnknown_020375B4], 0, 6); + PatchObjectPaletteRange(gObjectPaletteTagSets[sCurrentReflectionType], 0, 6); gReservedSpritePaletteCount = 8; } else { - pal_patch_for_npc_range(gUnknown_0850BE38[gUnknown_020375B4], 0, 10); + PatchObjectPaletteRange(gObjectPaletteTagSets[sCurrentReflectionType], 0, 10); } } -u16 npc_paltag_by_palslot(u8 palSlot) +u16 GetObjectPaletteTag(u8 palSlot) { u8 i; if (palSlot < 10) { - return gUnknown_0850BE38[gUnknown_020375B4][palSlot]; + return gObjectPaletteTagSets[sCurrentReflectionType][palSlot]; } - for (i = 0; gUnknown_0850BD78[i].tag != 0x11ff; i++) + for (i = 0; gSpecialObjectReflectionPaletteSets[i].tag != 0x11ff; i++) { - if (gUnknown_0850BD78[i].tag == gUnknown_020375B6) + if (gSpecialObjectReflectionPaletteSets[i].tag == sCurrentSpecialObjectPaletteTag) { - return gUnknown_0850BD78[i].data[gUnknown_020375B4]; + return gSpecialObjectReflectionPaletteSets[i].data[sCurrentReflectionType]; } } return 0x11ff; diff --git a/src/overworld.c b/src/overworld.c index 1cf830cf70..d4425effc8 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -159,7 +159,6 @@ extern void sub_80AAFA4(void); extern void ShowStartMenu(void); extern void sub_80AEE84(void); extern void mapldr_default(void); -extern void npc_paltag_set_load(u8); extern void sub_8088B3C(u16, u16); extern bool32 sub_800F0B8(void); extern bool32 sub_8009F3C(void); @@ -2153,9 +2152,9 @@ static void sub_8086988(u32 a1) ResetCameraUpdateInfo(); InstallCameraPanAheadCallback(); if (!a1) - npc_paltag_set_load(0); + InitEventObjectPalettes(0); else - npc_paltag_set_load(1); + InitEventObjectPalettes(1); FieldEffectActiveListClear(); sub_80AAFA4(); diff --git a/src/player_pc.c b/src/player_pc.c index 26ea834fa3..7ac8e78d55 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -558,7 +558,7 @@ static void ItemStorage_WithdrawToss_Helper(u8 taskId, bool8 toss) playerPCItemPageInfo.scrollIndicatorId = 0xFF; ItemStorage_SetItemAndMailCount(taskId); sub_816BC14(); - gpu_pal_allocator_reset__manage_upper_four(); + FreeAndReserveObjectSpritePalettes(); LoadListMenuArrowsGfx(); sub_8122344(gUnknown_0203BCC4->spriteIds, 7); sub_8197434(0,0); diff --git a/sym_ewram.txt b/sym_ewram.txt index bf2632e91b..426ec93075 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -226,15 +226,7 @@ gUnknown_020375A4: @ 20375A4 gUnknown_020375AC: @ 20375AC .space 0x8 -gUnknown_020375B4: @ 20375B4 - .space 0x2 - -gUnknown_020375B6: @ 20375B6 - .space 0x2 - -gLockedAnimEventObjects: @ 20375B8 - .space 0x4 - + .include "src/event_object_movement.o" .include "src/field_message_box.o" .align 2 From 4c54212b1f559a110fc7f6fffebe3a54748f3fec Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 4 Sep 2018 23:31:37 +0100 Subject: [PATCH 168/174] Bring labels for overworld.c over from pokeruby --- asm/cable_car.s | 2 +- asm/field_control_avatar.s | 20 +-- asm/field_screen.s | 24 ++-- include/overworld.h | 40 +++--- src/decoration.c | 2 +- src/event_object_movement.c | 38 +++--- src/field_effect.c | 24 ++-- src/field_specials.c | 4 +- src/fieldmap.c | 4 +- src/item_use.c | 2 +- src/new_game.c | 2 +- src/overworld.c | 265 ++++++++++++++++++------------------ src/rom_8011DC0.c | 4 +- src/safari_zone.c | 4 +- src/scrcmd.c | 22 +-- src/secret_base.c | 6 +- 16 files changed, 231 insertions(+), 232 deletions(-) diff --git a/asm/cable_car.s b/asm/cable_car.s index 59245a1b20..276b878e2e 100644 --- a/asm/cable_car.s +++ b/asm/cable_car.s @@ -774,7 +774,7 @@ _08150340: orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] - bl warp_in + bl WarpIntoMap ldr r0, =gFieldCallback str r4, [r0] ldr r0, =CB2_LoadMap diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index c2b13e2bfc..666e440a6e 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -530,7 +530,7 @@ sub_809C2C8: @ 809C2C8 ldrh r1, [r4, 0x2] b _0809C30E _0809C2F0: - ldr r1, =gUnknown_08339D64 + ldr r1, =gDirectionToVectors lsls r2, r6, 3 adds r0, r2, r1 ldr r3, [r0] @@ -631,7 +631,7 @@ _0809C3B4: lsrs r0, 24 cmp r0, 0x1 bne _0809C400 - ldr r1, =gUnknown_08339D64 + ldr r1, =gDirectionToVectors lsls r2, r7, 3 adds r0, r2, r1 ldr r3, [r0] @@ -1658,7 +1658,7 @@ mapheader_run_first_tag2_script_list_match_conditionally: @ 809CC38 negs r0, r0 cmp r4, r0 beq _0809CC90 - bl walkrun_find_lowest_active_bit_in_bitfield + bl StoreInitialPlayerAvatarState mov r0, r8 adds r1, r4, 0 adds r2, r7, 0 @@ -1699,7 +1699,7 @@ sub_809CC9C: @ 809CC9C lsrs r0, 24 cmp r0, 0x1 bne _0809CD8A - bl walkrun_find_lowest_active_bit_in_bitfield + bl StoreInitialPlayerAvatarState adds r0, r7, 0 adds r1, r4, 0 adds r2, r6, 0 @@ -2083,7 +2083,7 @@ _0809CFB0: lsrs r0, 24 cmp r0, 0x1 bne _0809CFFC - bl walkrun_find_lowest_active_bit_in_bitfield + bl StoreInitialPlayerAvatarState adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 @@ -2334,7 +2334,7 @@ dive_warp: @ 809D16C subs r1, 0x7 lsls r1, 16 lsrs r1, 16 - bl sub_8085058 + bl SetDiveWarpEmerge b _0809D1C8 .pool _0809D1A4: @@ -2353,12 +2353,12 @@ _0809D1A4: subs r1, 0x7 lsls r1, 16 lsrs r1, 16 - bl sub_8085078 + bl SetDiveWarpDive _0809D1C8: lsls r0, 24 cmp r0, 0 beq _0809D1E0 - bl walkrun_find_lowest_active_bit_in_bitfield + bl StoreInitialPlayerAvatarState bl sp13E_warp_to_last_warp movs r0, 0xE9 bl PlaySE @@ -2407,7 +2407,7 @@ sub_809D1E8: @ 809D1E8 subs r1, 0x7 lsls r1, 16 lsrs r1, 16 - bl sub_8085058 + bl SetDiveWarpEmerge lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2431,7 +2431,7 @@ _0809D244: subs r1, 0x7 lsls r1, 16 lsrs r1, 16 - bl sub_8085078 + bl SetDiveWarpDive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/field_screen.s b/asm/field_screen.s index 27627ac587..c11aef1b49 100644 --- a/asm/field_screen.s +++ b/asm/field_screen.s @@ -7914,7 +7914,7 @@ sub_80AF0B4: @ 80AF0B4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl warp1_get_mapheader + bl GetDestinationWarpMapHeader ldrb r1, [r0, 0x17] adds r0, r4, 0 bl sub_8137360 @@ -8924,7 +8924,7 @@ _080AF914: bl sub_80AF710 cmp r0, 0 bne _080AF93E - bl sub_80859A0 + bl BGMusicStopped lsls r0, 24 cmp r0, 0 beq _080AF93E @@ -8934,7 +8934,7 @@ _080AF926: strh r0, [r4, 0x8] b _080AF93E _080AF92E: - bl warp_in + bl WarpIntoMap ldr r0, =sub_8086074 bl SetMainCallback2 adds r0, r5, 0 @@ -8999,7 +8999,7 @@ _080AF9B2: bl sub_80AF710 cmp r0, 0 bne _080AF9E8 - bl sub_80859A0 + bl BGMusicStopped lsls r0, 24 cmp r0, 0 beq _080AF9E8 @@ -9014,7 +9014,7 @@ _080AF9D0: ldrb r0, [r0] cmp r0, 0 bne _080AF9E8 - bl warp_in + bl WarpIntoMap ldr r0, =CB2_LoadMap bl SetMainCallback2 adds r0, r5, 0 @@ -9076,7 +9076,7 @@ _080AFA44: bl sub_81BE72C strh r5, [r4, 0xA] _080AFA5A: - bl sub_80859A0 + bl BGMusicStopped lsls r0, 24 cmp r0, 0 beq _080AFA7C @@ -9086,7 +9086,7 @@ _080AFA64: strh r0, [r4, 0x8] b _080AFA7C _080AFA6C: - bl warp_in + bl WarpIntoMap ldr r0, =CB2_LoadMap bl SetMainCallback2 adds r0, r6, 0 @@ -9297,7 +9297,7 @@ _080AFC2C: bl sub_80AF710 cmp r0, 0 bne _080AFC56 - bl sub_80859A0 + bl BGMusicStopped lsls r0, 24 cmp r0, 0 beq _080AFC56 @@ -9307,7 +9307,7 @@ _080AFC3E: strh r0, [r4, 0x8] b _080AFC56 _080AFC46: - bl warp_in + bl WarpIntoMap ldr r0, =sub_8086024 bl SetMainCallback2 adds r0, r5, 0 @@ -10049,7 +10049,7 @@ _080B0210: bl sub_80AF710 cmp r0, 0 bne _080B023A - bl sub_80859A0 + bl BGMusicStopped lsls r0, 24 cmp r0, 0 beq _080B023A @@ -10059,7 +10059,7 @@ _080B0222: strh r0, [r4, 0x8] b _080B023A _080B022A: - bl warp_in + bl WarpIntoMap ldr r0, =CB2_LoadMap bl SetMainCallback2 adds r0, r5, 0 @@ -10492,7 +10492,7 @@ task50_0807F0C8: @ 80B05CC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_80859A0 + bl BGMusicStopped lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/include/overworld.h b/include/overworld.h index 341e442783..f6856ab0c1 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -1,10 +1,10 @@ #ifndef GUARD_OVERWORLD_H #define GUARD_OVERWORLD_H -struct UnkPlayerStruct +struct InitialPlayerAvatarState { - u8 player_field_0; - u8 player_field_1; + u8 transitionFlags; + u8 direction; }; struct LinkPlayerEventObject @@ -16,7 +16,7 @@ struct LinkPlayerEventObject }; // Exported RAM declarations -extern struct WarpData gUnknown_020322DC; +extern struct WarpData gLastUsedWarp; extern struct LinkPlayerEventObject gLinkPlayerEventObjects[4]; extern u16 *gBGTilemapBuffers1; @@ -26,7 +26,7 @@ extern u16 *gBGTilemapBuffers3; extern void (*gFieldCallback)(void); // Exported ROM declarations -extern const struct UCoords32 gUnknown_08339D64[]; +extern const struct UCoords32 gDirectionToVectors[]; void DoWhiteOut(void); void Overworld_ResetStateAfterFly(void); @@ -45,13 +45,13 @@ const struct MapLayout *GetMapLayout(void); void ApplyCurrentWarp(void); void set_warp2_warp3_to_neg_1(void); void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); -bool32 warp_data_is_not_neg_1(struct WarpData *warp); +bool32 IsDummyWarp(struct WarpData *warp); struct MapHeader const *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum); -struct MapHeader const *const warp1_get_mapheader(void); -void set_current_map_header_from_sav1_save_old_name(void); +struct MapHeader const *const GetDestinationWarpMapHeader(void); +void LoadCurrentMapData(void); void LoadSaveblockMapHeader(void); -void update_camera_pos_from_warpid(void); -void warp_in(void); +void SetPlayerCoordsFromWarp(void); +void WarpIntoMap(void); void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpId); void saved_warp2_set(s32 unused, s8 mapGroup, s8 mapNum, s8 warpId); @@ -63,21 +63,21 @@ void Overworld_SetHealLocationWarp(u8 healLocationId); void sub_8084D5C(s16 a1, s16 a2); void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void sub_8084E14(void); -void sub_8084E2C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); -void warp1_set_to_warp2(void); -void sub_8084E80(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); -void sub_8084EBC(s16 x, s16 y); +void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void SetFixedDiveWarpAsDestination(void); +void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void SetFixedHoleWarpAsDestination(s16 x, s16 y); void warp1_set_to_sav1w(void); void sub_8084F2C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void sub_8084F6C(u8 a1); void sub_8084FAC(void); const struct MapConnection *GetMapConnection(u8 dir); -bool8 sub_8084FF8(u8 dir, u16 x, u16 y); -bool8 sub_8085058(u16 x, u16 y); -bool8 sub_8085078(u16 x, u16 y); +bool8 SetDiveWarp(u8 dir, u16 x, u16 y); +bool8 SetDiveWarpEmerge(u16 x, u16 y); +bool8 SetDiveWarpDive(u16 x, u16 y); void mliX_load_map(u8 mapGroup, u8 mapNum); -void player_avatar_init_params_reset(void); -void walkrun_find_lowest_active_bit_in_bitfield(void); +void ResetInitialPlayerAvatarState(void); +void StoreInitialPlayerAvatarState(void); bool32 Overworld_IsBikingAllowed(void); void SetDefaultFlashLevel(void); void Overworld_SetFlashLevel(s32 flashLevel); @@ -96,7 +96,7 @@ void Overworld_ChangeMusicToDefault(void); void Overworld_ChangeMusicTo(u16 newMusic); u8 GetMapMusicFadeoutSpeed(void); void music_something(void); -bool8 sub_80859A0(void); +bool8 BGMusicStopped(void); void Overworld_FadeOutMapMusic(void); void UpdateAmbientCry(s16 *state, u16 *delayCounter); u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum); diff --git a/src/decoration.c b/src/decoration.c index 4f9ad298de..e1def6d38e 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1132,7 +1132,7 @@ void sub_8127B04(u8 taskId) { DrawWholeMapView(); Overworld_SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, gTasks[taskId].data[3], gTasks[taskId].data[4]); - warp_in(); + WarpIntoMap(); } u16 sub_8127B54(u8 decor, u8 a1) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index b54936db4a..9a1e711c32 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -798,7 +798,7 @@ bool8 (*const gDirectionBlockedMetatileFuncs[])(u8) = { MetatileBehavior_IsWestBlocked }; -const struct Coords16 gDirectionToVectors[] = { +static const struct Coords16 sDirectionToVectors[] = { { 0, 0}, { 0, 1}, { 0, -1}, @@ -4957,14 +4957,14 @@ void sub_8092EF0(u8 localId, u8 mapNum, u8 mapGroup) void MoveCoords(u8 direction, s16 *x, s16 *y) { - *x += gDirectionToVectors[direction].x; - *y += gDirectionToVectors[direction].y; + *x += sDirectionToVectors[direction].x; + *y += sDirectionToVectors[direction].y; } void sub_8092F60(u8 direction, s16 *x, s16 *y) { - *x += gDirectionToVectors[direction].x << 4; - *y += gDirectionToVectors[direction].y << 4; + *x += sDirectionToVectors[direction].x << 4; + *y += sDirectionToVectors[direction].y << 4; } static void MoveCoordsInDirection(u32 dir, s16 *x, s16 *y, s16 deltaX, s16 deltaY) @@ -4972,13 +4972,13 @@ static void MoveCoordsInDirection(u32 dir, s16 *x, s16 *y, s16 deltaX, s16 delta u8 direction = dir; s16 dx2 = (u16)deltaX; s16 dy2 = (u16)deltaY; - if (gDirectionToVectors[direction].x > 0) + if (sDirectionToVectors[direction].x > 0) *x += dx2; - if (gDirectionToVectors[direction].x < 0) + if (sDirectionToVectors[direction].x < 0) *x -= dx2; - if (gDirectionToVectors[direction].y > 0) + if (sDirectionToVectors[direction].y > 0) *y += dy2; - if (gDirectionToVectors[direction].y < 0) + if (sDirectionToVectors[direction].y < 0) *y -= dy2; } @@ -8389,32 +8389,32 @@ void UnfreezeEventObjects(void) void Step1(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += gDirectionToVectors[dir].x; - sprite->pos1.y += gDirectionToVectors[dir].y; + sprite->pos1.x += sDirectionToVectors[dir].x; + sprite->pos1.y += sDirectionToVectors[dir].y; } void Step2(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 2 * (u16) gDirectionToVectors[dir].x; - sprite->pos1.y += 2 * (u16) gDirectionToVectors[dir].y; + sprite->pos1.x += 2 * (u16) sDirectionToVectors[dir].x; + sprite->pos1.y += 2 * (u16) sDirectionToVectors[dir].y; } void Step3(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 2 * (u16) gDirectionToVectors[dir].x + (u16) gDirectionToVectors[dir].x; - sprite->pos1.y += 2 * (u16) gDirectionToVectors[dir].y + (u16) gDirectionToVectors[dir].y; + sprite->pos1.x += 2 * (u16) sDirectionToVectors[dir].x + (u16) sDirectionToVectors[dir].x; + sprite->pos1.y += 2 * (u16) sDirectionToVectors[dir].y + (u16) sDirectionToVectors[dir].y; } void Step4(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 4 * (u16) gDirectionToVectors[dir].x; - sprite->pos1.y += 4 * (u16) gDirectionToVectors[dir].y; + sprite->pos1.x += 4 * (u16) sDirectionToVectors[dir].x; + sprite->pos1.y += 4 * (u16) sDirectionToVectors[dir].y; } void Step8(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 8 * (u16) gDirectionToVectors[dir].x; - sprite->pos1.y += 8 * (u16) gDirectionToVectors[dir].y; + sprite->pos1.x += 8 * (u16) sDirectionToVectors[dir].x; + sprite->pos1.y += 8 * (u16) sDirectionToVectors[dir].y; } void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3) diff --git a/src/field_effect.c b/src/field_effect.c index 13de58aa4a..ecda8578b9 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1170,7 +1170,7 @@ void task00_8084310(u8 taskId) if (!FieldEffectActiveListContains(FLDEFF_USE_FLY)) { Overworld_ResetStateAfterFly(); - warp_in(); + WarpIntoMap(); SetMainCallback2(CB2_LoadMap); gFieldCallback = mapldr_08084390; DestroyTask(taskId); @@ -1355,7 +1355,7 @@ void sub_80B6FB8(struct Task *); void sub_80B7004(struct Task *); void sub_80B7050(void); void sub_80B7060(void); -bool8 sub_80859A0(void); +bool8 BGMusicStopped(void); void sub_80B70B4(void); void sub_80E1570(void); void sub_80B70DC(u8); @@ -1476,10 +1476,10 @@ void sub_80B7050(void) void sub_80B7060(void) { - if (!gPaletteFade.active && sub_80859A0() == TRUE) + if (!gPaletteFade.active && BGMusicStopped() == TRUE) { sub_80E1570(); - warp_in(); + WarpIntoMap(); gFieldCallback = sub_80B70B4; SetMainCallback2(CB2_LoadMap); DestroyTask(FindTaskIdByFunc(sub_80B6E88)); @@ -1838,9 +1838,9 @@ bool8 sub_80B77F8(struct Task *task, struct EventObject *eventObject, struct Spr bool8 sub_80B7814(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { - if (!gPaletteFade.active && sub_80859A0() == TRUE) + if (!gPaletteFade.active && BGMusicStopped() == TRUE) { - warp_in(); + WarpIntoMap(); gFieldCallback = mapldr_080851BC; SetMainCallback2(CB2_LoadMap); DestroyTask(FindTaskIdByFunc(sub_80B75F0)); @@ -2004,9 +2004,9 @@ void mapldr_080859D4(void); bool8 sub_80B7BF4(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { - if (!gPaletteFade.active && sub_80859A0() == TRUE) + if (!gPaletteFade.active && BGMusicStopped() == TRUE) { - warp_in(); + WarpIntoMap(); gFieldCallback = sub_80B6B68; SetMainCallback2(CB2_LoadMap); DestroyTask(FindTaskIdByFunc(sub_80B7A8C)); @@ -2063,11 +2063,11 @@ void sub_80B7D34(struct Task *task) eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; if (!EventObjectIsMovementOverridden(eventObject) || EventObjectClearHeldMovementIfFinished(eventObject)) { - if (task->data[14] == 0 && !gPaletteFade.active && sub_80859A0() == TRUE) + if (task->data[14] == 0 && !gPaletteFade.active && BGMusicStopped() == TRUE) { SetEventObjectDirection(eventObject, task->data[15]); sub_8084E14(); - warp_in(); + WarpIntoMap(); gFieldCallback = mapldr_080859D4; SetMainCallback2(CB2_LoadMap); DestroyTask(FindTaskIdByFunc(sub_80B7CE4)); @@ -2234,10 +2234,10 @@ static void TeleportFieldEffectTask4(struct Task *task) task->data[5] = TRUE; } - if (sub_80859A0() == TRUE) + if (BGMusicStopped() == TRUE) { Overworld_SetWarpDestToLastHealLoc(); - warp_in(); + WarpIntoMap(); SetMainCallback2(CB2_LoadMap); gFieldCallback = mapldr_08085D88; DestroyTask(FindTaskIdByFunc(ExecuteTeleportFieldEffectTask)); diff --git a/src/field_specials.c b/src/field_specials.c index 84852e6b5c..14f99b426c 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -269,7 +269,7 @@ u16 GetRecordedCyclingRoadResults(void) { } void UpdateCyclingRoadState(void) { - if (gUnknown_020322DC.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE) && gUnknown_020322DC.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE)) + if (gLastUsedWarp.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE) && gLastUsedWarp.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE)) { return; } @@ -2094,7 +2094,7 @@ 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 }; int i; - u16 map = (gUnknown_020322DC.mapGroup << 8) + gUnknown_020322DC.mapNum; + u16 map = (gLastUsedWarp.mapGroup << 8) + gLastUsedWarp.mapNum; for (i = 0; gUnknown_085B2C2A[i] != 0xFFFF; i++) { diff --git a/src/fieldmap.c b/src/fieldmap.c index 8d1988686c..019db9d0db 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -712,8 +712,8 @@ int GetPostCameraMoveMapBorderId(int x, int y) int CanCameraMoveInDirection(int direction) { int x, y; - x = gSaveBlock1Ptr->pos.x + 7 + gUnknown_08339D64[direction].x; - y = gSaveBlock1Ptr->pos.y + 7 + gUnknown_08339D64[direction].y; + x = gSaveBlock1Ptr->pos.x + 7 + gDirectionToVectors[direction].x; + y = gSaveBlock1Ptr->pos.y + 7 + gDirectionToVectors[direction].y; if (GetMapBorderIdAt(x, y) == -1) { return 0; diff --git a/src/item_use.c b/src/item_use.c index bf7c2a386a..ea8206502d 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -878,7 +878,7 @@ void ItemUseOutOfBattle_BlackWhiteFlute(u8 taskId) void task08_080A1C44(u8 taskId) { - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); sub_80B7CC8(); DestroyTask(taskId); } diff --git a/src/new_game.c b/src/new_game.c index da5e91229c..36c028ce80 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -133,7 +133,7 @@ static void ClearFrontierRecord(void) static void WarpToTruck(void) { Overworld_SetWarpDestination(25, 40, -1, -1, -1); // inside of truck - warp_in(); + WarpIntoMap(); } void Sav2_ClearSetDefault(void) diff --git a/src/overworld.c b/src/overworld.c index d4425effc8..683679218c 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1,8 +1,8 @@ #include "global.h" #include "overworld.h" -#include "main.h" #include "battle_setup.h" #include "berry.h" +#include "bg.h" // #include "cable_club.h" #include "clock.h" #include "event_data.h" @@ -20,15 +20,18 @@ #include "field_weather.h" #include "fieldmap.h" // #include "fldeff_flash.h" +#include "gpu_regs.h" #include "heal_location.h" #include "link.h" +#include "link_rfu.h" #include "load_save.h" #include "main.h" +#include "malloc.h" #include "m4a.h" -#include "constants/maps.h" #include "map_name_popup.h" #include "menu.h" #include "metatile_behavior.h" +#include "money.h" #include "new_game.h" #include "palette.h" #include "play_time.h" @@ -37,12 +40,11 @@ // #include "rotating_gate.h" #include "safari_zone.h" #include "save.h" +#include "save_location.h" #include "script.h" // #include "script_pokemon_80C4.h" #include "secret_base.h" -#include "constants/songs.h" #include "sound.h" -#include "constants/species.h" #include "start_menu.h" #include "task.h" // #include "tileset_anim.h" @@ -50,14 +52,11 @@ #include "tv.h" #include "scanline_effect.h" #include "wild_encounter.h" -#include "bg.h" -#include "money.h" -#include "save_location.h" #include "constants/abilities.h" -#include "malloc.h" -#include "gpu_regs.h" -#include "link_rfu.h" #include "constants/map_types.h" +#include "constants/maps.h" +#include "constants/songs.h" +#include "constants/species.h" // event scripts extern const u8 EventScript_WhiteOut[]; @@ -184,7 +183,7 @@ static bool32 sub_8086638(u8 *state); static bool32 load_map_stuff(u8 *state, u32); static bool32 map_loading_iteration_2_link(u8 *state); static void mli4_mapscripts_and_other(void); -static void map_loading_lcd_reset(void); +static void InitOverworldGraphicsRegisters(void); static u8 sub_8087858(u8); static u16 sub_80871C0(u32 a1); static void sub_80867C8(void); @@ -245,9 +244,9 @@ static void c1_link_related_func_set(u16 (*func)(u32)); static void SetFieldVBlankCallback(void); static void FieldClearVBlankHBlankCallbacks(void); static void sub_8085810(void); -static u8 sub_808532C(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3); -static u8 sub_808538C(struct UnkPlayerStruct *playerStruct, u8 a2, u16 a3, u8 a4); -static u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void); +static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 a2, u8 a3); +static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 a2, u16 a3, u8 a4); +static u16 GetCenterScreenMetatileBehavior(void); // IWRAM bss vars IWRAM_DATA static void *sUnknown_03000E0C; @@ -259,12 +258,12 @@ IWRAM_DATA static u32 sUnusedVar; // EWRAM vars EWRAM_DATA static u8 sUnknown_020322D8 = 0; -EWRAM_DATA struct WarpData gUnknown_020322DC = {0}; +EWRAM_DATA struct WarpData gLastUsedWarp = {0}; EWRAM_DATA static struct WarpData sWarpDestination = {0}; // new warp position -EWRAM_DATA static struct WarpData sUnknown_020322EC = {0}; -EWRAM_DATA static struct WarpData sUnknown_020322F4 = {0}; +EWRAM_DATA static struct WarpData gFixedDiveWarp = {0}; +EWRAM_DATA static struct WarpData gFixedHoleWarp = {0}; EWRAM_DATA static u16 sLastMapSectionId = 0; -EWRAM_DATA static struct UnkPlayerStruct sUnknown_02032300 = {0}; +EWRAM_DATA static struct InitialPlayerAvatarState gInitialPlayerAvatarState = {0}; EWRAM_DATA static u16 sAmbientCrySpecies = 0; EWRAM_DATA static bool8 sIsAmbientCryWaterMon = FALSE; EWRAM_DATA struct LinkPlayerEventObject gLinkPlayerEventObjects[4] = {0}; @@ -291,17 +290,17 @@ static const u8 sUnusedData[] = 0x2C, 0x00, 0x00, 0x00, }; -const struct UCoords32 gUnknown_08339D64[] = +const struct UCoords32 gDirectionToVectors[] = { - { 0, 0}, - { 0, 1}, - { 0, -1}, - {-1, 0}, - { 1, 0}, - {-1, 1}, - { 1, 1}, - {-1, -1}, - { 1, -1}, + { 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 }; static const struct BgTemplate gUnknown_08339DAC[] = @@ -344,7 +343,7 @@ static const struct BgTemplate gUnknown_08339DAC[] = } }; -static const struct ScanlineEffectParams gUnknown_08339DBC = +static const struct ScanlineEffectParams sFlashEffectParams = { (void *)REG_ADDR_WIN0H, ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1, @@ -399,12 +398,12 @@ void DoWhiteOut(void) HealPlayerParty(); Overworld_ResetStateAfterWhiteOut(); Overworld_SetWarpDestToLastHealLoc(); - warp_in(); + WarpIntoMap(); } void Overworld_ResetStateAfterFly(void) { - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); FlagClear(FLAG_SYS_CYCLING_ROAD); FlagClear(FLAG_SYS_CRUISE_MODE); FlagClear(FLAG_SYS_SAFARI_MODE); @@ -414,7 +413,7 @@ void Overworld_ResetStateAfterFly(void) void Overworld_ResetStateAfterTeleport(void) { - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); FlagClear(FLAG_SYS_CYCLING_ROAD); FlagClear(FLAG_SYS_CRUISE_MODE); FlagClear(FLAG_SYS_SAFARI_MODE); @@ -425,7 +424,7 @@ void Overworld_ResetStateAfterTeleport(void) void Overworld_ResetStateAfterDigEscRope(void) { - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); FlagClear(FLAG_SYS_CYCLING_ROAD); FlagClear(FLAG_SYS_CRUISE_MODE); FlagClear(FLAG_SYS_SAFARI_MODE); @@ -435,7 +434,7 @@ void Overworld_ResetStateAfterDigEscRope(void) static void Overworld_ResetStateAfterWhiteOut(void) { - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); FlagClear(FLAG_SYS_CYCLING_ROAD); FlagClear(FLAG_SYS_CRUISE_MODE); FlagClear(FLAG_SYS_SAFARI_MODE); @@ -574,16 +573,16 @@ const struct MapLayout *GetMapLayout(void) void ApplyCurrentWarp(void) { - gUnknown_020322DC = gSaveBlock1Ptr->location; + gLastUsedWarp = gSaveBlock1Ptr->location; gSaveBlock1Ptr->location = sWarpDestination; - sUnknown_020322EC = sDummyWarpData; - sUnknown_020322F4 = sDummyWarpData; + gFixedDiveWarp = sDummyWarpData; + gFixedHoleWarp = sDummyWarpData; } void set_warp2_warp3_to_neg_1(void) { - sUnknown_020322EC = sDummyWarpData; - sUnknown_020322F4 = sDummyWarpData; + gFixedDiveWarp = sDummyWarpData; + gFixedHoleWarp = sDummyWarpData; } void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) @@ -595,7 +594,7 @@ void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, warp->y = y; } -bool32 warp_data_is_not_neg_1(struct WarpData *warp) +bool32 IsDummyWarp(struct WarpData *warp) { if (warp->mapGroup != -1) return FALSE; @@ -616,12 +615,12 @@ struct MapHeader const *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u return gMapGroups[mapGroup][mapNum]; } -struct MapHeader const *const warp1_get_mapheader(void) +struct MapHeader const *const GetDestinationWarpMapHeader(void) { return Overworld_GetMapHeaderByGroupAndId(sWarpDestination.mapGroup, sWarpDestination.mapNum); } -void set_current_map_header_from_sav1_save_old_name(void) +void LoadCurrentMapData(void) { sLastMapSectionId = gMapHeader.regionMapSectionId; gMapHeader = *Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum); @@ -635,7 +634,7 @@ void LoadSaveblockMapHeader(void) gMapHeader.mapLayout = GetMapLayout(); } -void update_camera_pos_from_warpid(void) +void SetPlayerCoordsFromWarp(void) { if (gSaveBlock1Ptr->location.warpId >= 0 && gSaveBlock1Ptr->location.warpId < gMapHeader.events->warpCount) { @@ -654,11 +653,11 @@ void update_camera_pos_from_warpid(void) } } -void warp_in(void) +void WarpIntoMap(void) { ApplyCurrentWarp(); - set_current_map_header_from_sav1_save_old_name(); - update_camera_pos_from_warpid(); + LoadCurrentMapData(); + SetPlayerCoordsFromWarp(); } void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) @@ -725,27 +724,27 @@ void sub_8084E14(void) sWarpDestination = gSaveBlock1Ptr->warp4; } -void sub_8084E2C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) +void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) { - SetWarpData(&sUnknown_020322EC, mapGroup, mapNum, warpId, x, y); + SetWarpData(&gFixedDiveWarp, mapGroup, mapNum, warpId, x, y); } -void warp1_set_to_warp2(void) +void SetFixedDiveWarpAsDestination(void) { - sWarpDestination = sUnknown_020322EC; + sWarpDestination = gFixedDiveWarp; } -void sub_8084E80(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) +void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) { - SetWarpData(&sUnknown_020322F4, mapGroup, mapNum, warpId, x, y); + SetWarpData(&gFixedHoleWarp, mapGroup, mapNum, warpId, x, y); } -void sub_8084EBC(s16 x, s16 y) +void SetFixedHoleWarpAsDestination(s16 x, s16 y) { - if (warp_data_is_not_neg_1(&sUnknown_020322F4) == TRUE) - sWarpDestination = gUnknown_020322DC; + if (IsDummyWarp(&gFixedHoleWarp) == TRUE) + sWarpDestination = gLastUsedWarp; else - Overworld_SetWarpDestination(sUnknown_020322F4.mapGroup, sUnknown_020322F4.mapNum, -1, x, y); + Overworld_SetWarpDestination(gFixedHoleWarp.mapGroup, gFixedHoleWarp.mapNum, -1, x, y); } void warp1_set_to_sav1w(void) @@ -786,7 +785,7 @@ const struct MapConnection *GetMapConnection(u8 dir) return NULL; } -bool8 sub_8084FF8(u8 dir, u16 x, u16 y) +bool8 SetDiveWarp(u8 dir, u16 x, u16 y) { const struct MapConnection *connection = GetMapConnection(dir); @@ -797,21 +796,21 @@ bool8 sub_8084FF8(u8 dir, u16 x, u16 y) else { mapheader_run_script_with_tag_x6(); - if (warp_data_is_not_neg_1(&sUnknown_020322EC)) + if (IsDummyWarp(&gFixedDiveWarp)) return FALSE; - warp1_set_to_warp2(); + SetFixedDiveWarpAsDestination(); } return TRUE; } -bool8 sub_8085058(u16 x, u16 y) +bool8 SetDiveWarpEmerge(u16 x, u16 y) { - return sub_8084FF8(CONNECTION_EMERGE, x, y); + return SetDiveWarp(CONNECTION_EMERGE, x, y); } -bool8 sub_8085078(u16 x, u16 y) +bool8 SetDiveWarpDive(u16 x, u16 y) { - return sub_8084FF8(CONNECTION_DIVE, x, y); + return SetDiveWarp(CONNECTION_DIVE, x, y); } void mliX_load_map(u8 mapGroup, u8 mapNum) @@ -823,7 +822,7 @@ void mliX_load_map(u8 mapGroup, u8 mapNum) sub_8085810(); ApplyCurrentWarp(); - set_current_map_header_from_sav1_save_old_name(); + LoadCurrentMapData(); LoadEventObjTemplatesFromHeader(); TrySetMapSaveWarpStatus(); ClearTempFieldEventData(); @@ -859,7 +858,7 @@ static void mli0_load_map(u32 a1) bool8 v2; bool8 indoors; - set_current_map_header_from_sav1_save_old_name(); + LoadCurrentMapData(); if (!(sUnknown_020322D8 & 1)) { if (gMapHeader.mapLayoutId == 0x169) @@ -904,84 +903,84 @@ static void mli0_load_map(u32 a1) } } -void player_avatar_init_params_reset(void) +void ResetInitialPlayerAvatarState(void) { - sUnknown_02032300.player_field_1 = 1; - sUnknown_02032300.player_field_0 = 1; + gInitialPlayerAvatarState.direction = 1; + gInitialPlayerAvatarState.transitionFlags = 1; } -void walkrun_find_lowest_active_bit_in_bitfield(void) +void StoreInitialPlayerAvatarState(void) { - sUnknown_02032300.player_field_1 = GetPlayerFacingDirection(); + gInitialPlayerAvatarState.direction = GetPlayerFacingDirection(); if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE)) - sUnknown_02032300.player_field_0 = 2; + gInitialPlayerAvatarState.transitionFlags = 2; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE)) - sUnknown_02032300.player_field_0 = 4; + gInitialPlayerAvatarState.transitionFlags = 4; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) - sUnknown_02032300.player_field_0 = 8; + gInitialPlayerAvatarState.transitionFlags = 8; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_4)) - sUnknown_02032300.player_field_0 = 16; + gInitialPlayerAvatarState.transitionFlags = 16; else - sUnknown_02032300.player_field_0 = 1; + gInitialPlayerAvatarState.transitionFlags = 1; } -static struct UnkPlayerStruct *sub_80852D4(void) +static struct InitialPlayerAvatarState *GetInitialPlayerAvatarState(void) { - struct UnkPlayerStruct playerStruct; + struct InitialPlayerAvatarState playerStruct; u8 mapType = Overworld_GetMapTypeOfSaveblockLocation(); - u16 v2 = cur_mapdata_block_role_at_screen_center_acc_to_sav1(); - u8 v4 = sub_808532C(&sUnknown_02032300, v2, mapType); - playerStruct.player_field_0 = v4; - playerStruct.player_field_1 = sub_808538C(&sUnknown_02032300, v4, v2, mapType); - sUnknown_02032300 = playerStruct; - return &sUnknown_02032300; + u16 metatileBehavior = GetCenterScreenMetatileBehavior(); + u8 transitionFlags = GetAdjustedInitialTransitionFlags(&gInitialPlayerAvatarState, metatileBehavior, mapType); + playerStruct.transitionFlags = transitionFlags; + playerStruct.direction = GetAdjustedInitialDirection(&gInitialPlayerAvatarState, transitionFlags, metatileBehavior, mapType); + gInitialPlayerAvatarState = playerStruct; + return &gInitialPlayerAvatarState; } -static u8 sub_808532C(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3) +static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 metatileBehavior, u8 mapType) { - if (a3 != 8 && FlagGet(FLAG_SYS_CRUISE_MODE)) + if (mapType != MAP_TYPE_INDOOR && FlagGet(FLAG_SYS_CRUISE_MODE)) return 1; - else if (a3 == 5) + else if (mapType == MAP_TYPE_UNDERWATER) return 16; - else if (MetatileBehavior_IsSurfableWaterOrUnderwater(a2) == 1) + else if (MetatileBehavior_IsSurfableWaterOrUnderwater(metatileBehavior) == TRUE) return 8; else if (Overworld_IsBikingAllowed() != TRUE) return 1; - else if (playerStruct->player_field_0 == 2) + else if (playerStruct->transitionFlags == 2) return 2; - else if (playerStruct->player_field_0 != 4) + else if (playerStruct->transitionFlags != 4) return 1; else return 4; } -static u8 sub_808538C(struct UnkPlayerStruct *playerStruct, u8 a2, u16 a3, u8 a4) +static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 transitionFlags, u16 metatileBehavior, u8 mapType) { - if (FlagGet(FLAG_SYS_CRUISE_MODE) && a4 == 6) + if (FlagGet(FLAG_SYS_CRUISE_MODE) && mapType == MAP_TYPE_6) return 4; - else if (MetatileBehavior_IsDeepSouthWarp(a3) == TRUE) + else if (MetatileBehavior_IsDeepSouthWarp(metatileBehavior) == TRUE) return 2; - else if (MetatileBehavior_IsNonAnimDoor(a3) == TRUE || MetatileBehavior_IsDoor(a3) == TRUE) + else if (MetatileBehavior_IsNonAnimDoor(metatileBehavior) == TRUE || MetatileBehavior_IsDoor(metatileBehavior) == TRUE) return 1; - else if (MetatileBehavior_IsSouthArrowWarp(a3) == TRUE) + else if (MetatileBehavior_IsSouthArrowWarp(metatileBehavior) == TRUE) return 2; - else if (MetatileBehavior_IsNorthArrowWarp(a3) == TRUE) + else if (MetatileBehavior_IsNorthArrowWarp(metatileBehavior) == TRUE) return 1; - else if (MetatileBehavior_IsWestArrowWarp(a3) == TRUE) + else if (MetatileBehavior_IsWestArrowWarp(metatileBehavior) == TRUE) return 4; - else if (MetatileBehavior_IsEastArrowWarp(a3) == TRUE) + else if (MetatileBehavior_IsEastArrowWarp(metatileBehavior) == TRUE) return 3; - else if ((playerStruct->player_field_0 == 16 && a2 == 8) - || (playerStruct->player_field_0 == 8 && a2 == 16)) - return playerStruct->player_field_1; - else if (MetatileBehavior_IsLadder(a3) == TRUE) - return playerStruct->player_field_1; + else if ((playerStruct->transitionFlags == 16 && transitionFlags == 8) + || (playerStruct->transitionFlags == 8 && transitionFlags == 16)) + return playerStruct->direction; + else if (MetatileBehavior_IsLadder(metatileBehavior) == TRUE) + return playerStruct->direction; else return 1; } -static u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void) +static u16 GetCenterScreenMetatileBehavior(void) { return MapGridGetMetatileBehaviorAt(gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7); } @@ -1231,7 +1230,7 @@ void Overworld_ChangeMusicTo(u16 newMusic) u8 GetMapMusicFadeoutSpeed(void) { - const struct MapHeader *mapHeader = warp1_get_mapheader(); + const struct MapHeader *mapHeader = GetDestinationWarpMapHeader(); if (Overworld_MapTypeIsIndoors(mapHeader->mapType) == TRUE) return 2; else @@ -1257,7 +1256,7 @@ void music_something(void) } } -bool8 sub_80859A0(void) +bool8 BGMusicStopped(void) { return IsNotWaitingForBGMStop(); } @@ -1360,7 +1359,7 @@ u8 Overworld_GetMapTypeOfSaveblockLocation(void) u8 get_map_light_from_warp0(void) { - return GetMapTypeByWarpData(&gUnknown_020322DC); + return GetMapTypeByWarpData(&gLastUsedWarp); } bool8 is_map_type_1_2_3_5_or_6(u8 mapType) @@ -1549,7 +1548,7 @@ void CB2_NewGame(void) StopMapMusic(); ResetSafariZoneFlag_(); NewGameInitData(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); PlayTimeCounter_Start(); ScriptContext1_Init(); ScriptContext2_Disable(); @@ -1571,7 +1570,7 @@ void CB2_WhiteOut(void) StopMapMusic(); ResetSafariZoneFlag_(); DoWhiteOut(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); ScriptContext1_Init(); ScriptContext2_Disable(); gFieldCallback = sub_80AF3C8; @@ -1754,7 +1753,7 @@ void CB2_ContinueSavedGame(void) { ClearSecretBase2Field_9(); warp1_set_to_sav1w(); - warp_in(); + WarpIntoMap(); sub_80EDB44(); SetMainCallback2(CB2_LoadMap); } @@ -1805,19 +1804,19 @@ static void VBlankCB_Field(void) TransferTilesetAnimsBuffer(); } -static void sub_80863B0(void) +static void InitCurrentFlashLevelScanlineEffect(void) { - u8 val; + u8 flashLevel; if (sub_81A9E6C()) { door_upload_tiles(); - ScanlineEffect_SetParams(gUnknown_08339DBC); + ScanlineEffect_SetParams(sFlashEffectParams); } - else if ((val = Overworld_GetFlashLevel())) + else if ((flashLevel = Overworld_GetFlashLevel())) { - sub_80B00E8(val); - ScanlineEffect_SetParams(gUnknown_08339DBC); + sub_80B00E8(flashLevel); + ScanlineEffect_SetParams(sFlashEffectParams); } } @@ -1849,8 +1848,8 @@ static bool32 map_loading_iteration_3(u8 *state) (*state)++; break; case 4: - sub_80863B0(); - map_loading_lcd_reset(); + InitCurrentFlashLevelScanlineEffect(); + InitOverworldGraphicsRegisters(); sub_8197200(); (*state)++; break; @@ -1924,8 +1923,8 @@ static bool32 load_map_stuff(u8 *state, u32 a2) (*state)++; break; case 4: - sub_80863B0(); - map_loading_lcd_reset(); + InitCurrentFlashLevelScanlineEffect(); + InitOverworldGraphicsRegisters(); sub_8197200(); (*state)++; break; @@ -2021,8 +2020,8 @@ static bool32 map_loading_iteration_2_link(u8 *state) (*state)++; break; case 3: - sub_80863B0(); - map_loading_lcd_reset(); + InitCurrentFlashLevelScanlineEffect(); + InitOverworldGraphicsRegisters(); sub_8197200(); (*state)++; break; @@ -2101,13 +2100,13 @@ static void sub_80867D8(void) static void sub_8086860(void) { - sub_80863B0(); - map_loading_lcd_reset(); + InitCurrentFlashLevelScanlineEffect(); + InitOverworldGraphicsRegisters(); sub_8197200(); mapdata_load_assets_to_gpu_and_full_redraw(); } -static void map_loading_lcd_reset(void) +static void InitOverworldGraphicsRegisters(void) { clear_scheduled_bg_copies_to_vram(); reset_temp_tile_data_buffers(); @@ -2177,16 +2176,16 @@ static void sub_80869DC(void) static void mli4_mapscripts_and_other(void) { s16 x, y; - struct UnkPlayerStruct *player; + struct InitialPlayerAvatarState *player; gUnknown_03005DEC = 0; gUnknown_03005DE8 = 0; sub_808D438(); sav1_camera_get_focus_coords(&x, &y); - player = sub_80852D4(); - InitPlayerAvatar(x, y, player->player_field_1, gSaveBlock2Ptr->playerGender); - SetPlayerAvatarTransitionFlags(player->player_field_0); - player_avatar_init_params_reset(); + player = GetInitialPlayerAvatarState(); + InitPlayerAvatar(x, y, player->direction, gSaveBlock2Ptr->playerGender); + SetPlayerAvatarTransitionFlags(player->transitionFlags); + ResetInitialPlayerAvatarState(); TrySpawnEventObjects(0, 0); mapheader_run_first_tag4_script_list_match(); } @@ -2731,8 +2730,8 @@ static const u8 *sub_80873B4(struct UnkStruct_8054FF8 *a1) return 0; unkStruct = a1->sub; - unkStruct.x += gUnknown_08339D64[a1->d].x; - unkStruct.y += gUnknown_08339D64[a1->d].y; + unkStruct.x += gDirectionToVectors[a1->d].x; + unkStruct.y += gDirectionToVectors[a1->d].y; unkStruct.height = 0; linkPlayerId = GetLinkPlayerIdAt(unkStruct.x, unkStruct.y); @@ -3165,12 +3164,12 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) SetObjectSubpriorityByZCoord(eventObj->previousElevation, sprite, 1); sprite->oam.priority = ZCoordToPriority(eventObj->previousElevation); - if (!linkPlayerEventObj->mode) + if (!linkPlayerEventObj->mode) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(eventObj->range.as_byte)); else StartSpriteAnimIfDifferent(sprite, GetMoveDirectionAnimNum(eventObj->range.as_byte)); - UpdateEventObjectSpriteVisibility(sprite, 0); + UpdateEventObjectSpriteVisibility(sprite, 0); if (eventObj->triggerGroundEffectsOnMove) { sprite->invisible = ((sprite->data[7] & 4) >> 2); diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index b2bd2eb784..56c31f89f7 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -1637,7 +1637,7 @@ void sub_8014290(u16 arg0, u16 x, u16 y) VarSet(VAR_0x4087, arg0); Overworld_SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); saved_warp2_set_2(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); - warp_in(); + WarpIntoMap(); } void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) @@ -1648,7 +1648,7 @@ void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) gUnknown_03005DB4 = GetMultiplayerId(); sub_809D2BC(); Overworld_SetWarpDestination(mapGroup, mapNum, -1, x, y); - warp_in(); + WarpIntoMap(); } void sub_8014384(void) diff --git a/src/safari_zone.c b/src/safari_zone.c index 01d72fa13a..427a5ceb8d 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -35,7 +35,7 @@ extern void CB2_ReturnToFieldContinueScriptPlayMapMusic(void); extern void CB2_LoadMap(void); extern void sub_80AF6F0(void); extern void ScriptContext1_Stop(void); -extern void warp_in(void); +extern void WarpIntoMap(void); extern void GetXYCoordsOneStepInFrontOfPlayer(s16* x, s16* y); extern void PlayerGetDestCoords(s16* x, s16* y); @@ -117,7 +117,7 @@ void CB2_EndSafariBattle(void) else if (gBattleOutcome == B_OUTCOME_NO_SAFARI_BALLS) { ScriptContext2_RunNewScript(EventScript_2A4B4C); - warp_in(); + WarpIntoMap(); gFieldCallback = sub_80AF6F0; SetMainCallback2(CB2_LoadMap); } diff --git a/src/scrcmd.c b/src/scrcmd.c index 01d04704aa..31a4ed35a3 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -750,7 +750,7 @@ bool8 ScrCmd_warp(struct ScriptContext *ctx) Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); sub_80AF734(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } @@ -764,7 +764,7 @@ bool8 ScrCmd_warpsilent(struct ScriptContext *ctx) Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); sp13E_warp_to_last_warp(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } @@ -778,7 +778,7 @@ bool8 ScrCmd_warpdoor(struct ScriptContext *ctx) Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); sub_80AF7D0(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } @@ -791,11 +791,11 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx) PlayerGetDestCoords(&x, &y); if (mapGroup == 0xFF && mapNum == 0xFF) - sub_8084EBC(x - 7, y - 7); + SetFixedHoleWarpAsDestination(x - 7, y - 7); else Overworld_SetWarpDestination(mapGroup, mapNum, -1, x - 7, y - 7); sp13F_fall_to_last_warp(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } @@ -809,7 +809,7 @@ bool8 ScrCmd_warpteleport(struct ScriptContext *ctx) Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); sub_80AF848(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } @@ -823,7 +823,7 @@ bool8 ScrCmd_warpD7(struct ScriptContext *ctx) Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); sub_80AF87C(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } @@ -859,7 +859,7 @@ bool8 ScrCmd_setdivewarp(struct ScriptContext *ctx) u16 x = VarGet(ScriptReadHalfword(ctx)); u16 y = VarGet(ScriptReadHalfword(ctx)); - sub_8084E2C(mapGroup, mapNum, warpId, x, y); + SetFixedDiveWarp(mapGroup, mapNum, warpId, x, y); return FALSE; } @@ -871,7 +871,7 @@ bool8 ScrCmd_setholewarp(struct ScriptContext *ctx) u16 x = VarGet(ScriptReadHalfword(ctx)); u16 y = VarGet(ScriptReadHalfword(ctx)); - sub_8084E80(mapGroup, mapNum, warpId, x, y); + SetFixedHoleWarp(mapGroup, mapNum, warpId, x, y); return FALSE; } @@ -2240,7 +2240,7 @@ bool8 ScrCmd_warpD1(struct ScriptContext *ctx) Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); sub_808D074(GetPlayerFacingDirection()); sub_80B0244(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } @@ -2293,6 +2293,6 @@ bool8 ScrCmd_warpE0(struct ScriptContext *ctx) Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); sub_80AF79C(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } diff --git a/src/secret_base.c b/src/secret_base.c index d357261fe5..7fae50a817 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -388,7 +388,7 @@ void sub_80E8FD0(u8 taskId) gSaveBlock1Ptr->secretBases[secretBaseRecordId].sbr_field_10 ++; } sub_80E8F9C(); - warp_in(); + WarpIntoMap(); gFieldCallback = sub_80AF168; SetMainCallback2(CB2_LoadMap); DestroyTask(taskId); @@ -446,7 +446,7 @@ void sub_80E916C(u8 taskId) { idx = sCurSecretBaseId / 10 * 4; Overworld_SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, gUnknown_0858CFE8[idx + 2], gUnknown_0858CFE8[idx + 3]); - warp_in(); + WarpIntoMap(); gFieldCallback = sub_80E9108; SetMainCallback2(CB2_LoadMap); DestroyTask(taskId); @@ -644,7 +644,7 @@ void sub_80E96A4(u8 taskId) break; case 2: copy_saved_warp2_bank_and_enter_x_to_warp1(0x7e); - warp_in(); + WarpIntoMap(); gFieldCallback = mapldr_default; SetMainCallback2(CB2_LoadMap); ScriptContext2_Disable(); From f505ba1bc7b34c67d7b3b7aef01006def5947639 Mon Sep 17 00:00:00 2001 From: ultima-soul <akshayjhanji@hotmail.com> Date: Wed, 5 Sep 2018 01:13:17 +0000 Subject: [PATCH 169/174] Implemented gRegionMapSectionId_To_PopUpThemeIdMapping array to be dependent on Map Section ID enum rather than order dependent. --- include/constants/region_map_sections.h | 2 + src/map_name_popup.c | 130 +++++++++++++++++++----- 2 files changed, 106 insertions(+), 26 deletions(-) diff --git a/include/constants/region_map_sections.h b/include/constants/region_map_sections.h index 8ff75dfa98..35c92d7e4d 100644 --- a/include/constants/region_map_sections.h +++ b/include/constants/region_map_sections.h @@ -220,4 +220,6 @@ #define MAPSEC_IN_GAME_TRADE 0xFE #define MAPSEC_FATEFUL_ENCOUNTER 0xFF +#define MAPSEC_SUBSTRACT_KANTO (MAPSEC_SPECIAL_AREA - MAPSEC_DYNAMIC) + #endif //GUARD_REGIONMAPSEC_H diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 578636d403..7906c74ef1 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -70,32 +70,110 @@ static const u16 gUnknown_0857F444[16] = INCBIN_U16("graphics/interface/map_popu static const u8 gRegionMapSectionId_To_PopUpThemeIdMapping[] = { - MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, - MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_BRICK, - MAPPOPUP_THEME_MARBLE, MAPPOPUP_THEME_MARBLE, MAPPOPUP_THEME_MARBLE, MAPPOPUP_THEME_BRICK, - MAPPOPUP_THEME_MARBLE, MAPPOPUP_THEME_BRICK, MAPPOPUP_THEME_MARBLE, MAPPOPUP_THEME_BRICK, - MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, - MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_UNDERWATER, - MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, - MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, - MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, - MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_UNDERWATER, - MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_UNDERWATER, - MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_UNDERWATER, - MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_UNDERWATER, MAPPOPUP_THEME_STONE2, MAPPOPUP_THEME_STONE2, - MAPPOPUP_THEME_STONE2, MAPPOPUP_THEME_STONE2, MAPPOPUP_THEME_STONE2, MAPPOPUP_THEME_STONE, - MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_MARBLE, MAPPOPUP_THEME_WOOD, - MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_MARBLE, MAPPOPUP_THEME_STONE, - MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, - MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE2, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_WOOD, - MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, - MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE2, - MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, - MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_MARBLE, - MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_WOOD, - MAPPOPUP_THEME_WOOD, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE2, - MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE2, MAPPOPUP_THEME_STONE2, MAPPOPUP_THEME_STONE2, - MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_STONE, MAPPOPUP_THEME_MARBLE + [MAPSEC_LITTLEROOT_TOWN] = MAPPOPUP_THEME_WOOD, + [MAPSEC_OLDALE_TOWN] = MAPPOPUP_THEME_WOOD, + [MAPSEC_DEWFORD_TOWN] = MAPPOPUP_THEME_WOOD, + [MAPSEC_LAVARIDGE_TOWN] = MAPPOPUP_THEME_WOOD, + [MAPSEC_FALLARBOR_TOWN] = MAPPOPUP_THEME_WOOD, + [MAPSEC_VERDANTURF_TOWN] = MAPPOPUP_THEME_WOOD, + [MAPSEC_PACIFIDLOG_TOWN] = MAPPOPUP_THEME_WOOD, + [MAPSEC_PETALBURG_CITY] = MAPPOPUP_THEME_BRICK, + [MAPSEC_SLATEPORT_CITY] = MAPPOPUP_THEME_MARBLE, + [MAPSEC_MAUVILLE_CITY] = MAPPOPUP_THEME_MARBLE, + [MAPSEC_RUSTBORO_CITY] = MAPPOPUP_THEME_MARBLE, + [MAPSEC_FORTREE_CITY] = MAPPOPUP_THEME_BRICK, + [MAPSEC_LILYCOVE_CITY] = MAPPOPUP_THEME_MARBLE, + [MAPSEC_MOSSDEEP_CITY] = MAPPOPUP_THEME_BRICK, + [MAPSEC_SOOTOPOLIS_CITY] = MAPPOPUP_THEME_MARBLE, + [MAPSEC_EVER_GRANDE_CITY] = MAPPOPUP_THEME_BRICK, + [MAPSEC_ROUTE_101] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_102] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_103] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_104] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_105] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_106] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_107] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_108] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_109] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_110] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_111] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_112] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_113] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_114] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_115] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_116] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_117] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_118] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_119] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_120] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_121] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_122] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_123] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ROUTE_124] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_125] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_126] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_127] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_128] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_129] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_130] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_131] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_132] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_133] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_ROUTE_134] = MAPPOPUP_THEME_UNDERWATER, + [MAPSEC_UNDERWATER_124] = MAPPOPUP_THEME_STONE2, + [MAPSEC_UNDERWATER_125] = MAPPOPUP_THEME_STONE2, + [MAPSEC_UNDERWATER_126] = MAPPOPUP_THEME_STONE2, + [MAPSEC_UNDERWATER_127] = MAPPOPUP_THEME_STONE2, + [MAPSEC_UNDERWATER_SOOTOPOLIS] = MAPPOPUP_THEME_STONE2, + [MAPSEC_GRANITE_CAVE] = MAPPOPUP_THEME_STONE, + [MAPSEC_MT_CHIMNEY] = MAPPOPUP_THEME_STONE, + [MAPSEC_SAFARI_ZONE] = MAPPOPUP_THEME_WOOD, + [MAPSEC_BATTLE_FRONTIER] = MAPPOPUP_THEME_MARBLE, + [MAPSEC_PETALBURG_WOODS] = MAPPOPUP_THEME_WOOD, + [MAPSEC_RUSTURF_TUNNEL] = MAPPOPUP_THEME_STONE, + [MAPSEC_ABANDONED_SHIP] = MAPPOPUP_THEME_WOOD, + [MAPSEC_NEW_MAUVILLE] = MAPPOPUP_THEME_MARBLE, + [MAPSEC_METEOR_FALLS] = MAPPOPUP_THEME_STONE, + [MAPSEC_METEOR_FALLS2] = MAPPOPUP_THEME_STONE, + [MAPSEC_MT_PYRE] = MAPPOPUP_THEME_STONE, + [MAPSEC_AQUA_HIDEOUT_OLD] = MAPPOPUP_THEME_STONE, + [MAPSEC_SHOAL_CAVE] = MAPPOPUP_THEME_STONE, + [MAPSEC_SEAFLOOR_CAVERN] = MAPPOPUP_THEME_STONE, + [MAPSEC_UNDERWATER_128] = MAPPOPUP_THEME_STONE2, + [MAPSEC_VICTORY_ROAD] = MAPPOPUP_THEME_STONE, + [MAPSEC_MIRAGE_ISLAND] = MAPPOPUP_THEME_WOOD, + [MAPSEC_CAVE_OF_ORIGIN] = MAPPOPUP_THEME_STONE, + [MAPSEC_SOUTHERN_ISLAND] = MAPPOPUP_THEME_WOOD, + [MAPSEC_FIERY_PATH] = MAPPOPUP_THEME_STONE, + [MAPSEC_FIERY_PATH2] = MAPPOPUP_THEME_STONE, + [MAPSEC_JAGGED_PASS] = MAPPOPUP_THEME_WOOD, + [MAPSEC_JAGGED_PASS2] = MAPPOPUP_THEME_WOOD, + [MAPSEC_SEALED_CHAMBER] = MAPPOPUP_THEME_STONE, + [MAPSEC_UNDERWATER_SEALED_CHAMBER] = MAPPOPUP_THEME_STONE2, + [MAPSEC_SCORCHED_SLAB] = MAPPOPUP_THEME_STONE, + [MAPSEC_ISLAND_CAVE] = MAPPOPUP_THEME_STONE, + [MAPSEC_DESERT_RUINS] = MAPPOPUP_THEME_STONE, + [MAPSEC_ANCIENT_TOMB] = MAPPOPUP_THEME_STONE, + [MAPSEC_INSIDE_OF_TRUCK] = MAPPOPUP_THEME_WOOD, + [MAPSEC_SKY_PILLAR] = MAPPOPUP_THEME_STONE, + [MAPSEC_SECRET_BASE] = MAPPOPUP_THEME_STONE, + [MAPSEC_DYNAMIC] = MAPPOPUP_THEME_MARBLE, + [MAPSEC_AQUA_HIDEOUT - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_MAGMA_HIDEOUT - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_MIRAGE_TOWER - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_BIRTH_ISLAND_2 - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_WOOD, + [MAPSEC_FARAWAY_ISLAND - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ARTISAN_CAVE - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_MARINE_CAVE - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_UNDERWATER_MARINE_CAVE - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE2, + [MAPSEC_TERRA_CAVE - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_UNDERWATER_TERRA_CAVE - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE2, + [MAPSEC_UNDERWATER_UNK1 - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE2, + [MAPSEC_UNDERWATER_129 - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE2, + [MAPSEC_DESERT_UNDERPASS - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_ALTERING_CAVE_2 - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_NAVEL_ROCK2 - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_TRAINER_HILL - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_MARBLE }; static const u8 gText_PyramidFloor1[] = _("PYRAMID FLOOR 1"); From 857ac33adb1ba3c189cf7b006d7da28df2291157 Mon Sep 17 00:00:00 2001 From: ultima-soul <akshayjhanji@hotmail.com> Date: Wed, 5 Sep 2018 17:25:44 +0000 Subject: [PATCH 170/174] Fixed a typo. --- include/constants/region_map_sections.h | 2 +- src/map_name_popup.c | 32 ++++++++++++------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/include/constants/region_map_sections.h b/include/constants/region_map_sections.h index 35c92d7e4d..12c8943679 100644 --- a/include/constants/region_map_sections.h +++ b/include/constants/region_map_sections.h @@ -220,6 +220,6 @@ #define MAPSEC_IN_GAME_TRADE 0xFE #define MAPSEC_FATEFUL_ENCOUNTER 0xFF -#define MAPSEC_SUBSTRACT_KANTO (MAPSEC_SPECIAL_AREA - MAPSEC_DYNAMIC) +#define MAPSEC_SUBTRACT_KANTO (MAPSEC_SPECIAL_AREA - MAPSEC_DYNAMIC) #endif //GUARD_REGIONMAPSEC_H diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 7906c74ef1..0d22bd1263 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -158,22 +158,22 @@ static const u8 gRegionMapSectionId_To_PopUpThemeIdMapping[] = [MAPSEC_SKY_PILLAR] = MAPPOPUP_THEME_STONE, [MAPSEC_SECRET_BASE] = MAPPOPUP_THEME_STONE, [MAPSEC_DYNAMIC] = MAPPOPUP_THEME_MARBLE, - [MAPSEC_AQUA_HIDEOUT - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, - [MAPSEC_MAGMA_HIDEOUT - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, - [MAPSEC_MIRAGE_TOWER - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, - [MAPSEC_BIRTH_ISLAND_2 - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_WOOD, - [MAPSEC_FARAWAY_ISLAND - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_WOOD, - [MAPSEC_ARTISAN_CAVE - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, - [MAPSEC_MARINE_CAVE - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, - [MAPSEC_UNDERWATER_MARINE_CAVE - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE2, - [MAPSEC_TERRA_CAVE - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, - [MAPSEC_UNDERWATER_TERRA_CAVE - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE2, - [MAPSEC_UNDERWATER_UNK1 - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE2, - [MAPSEC_UNDERWATER_129 - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE2, - [MAPSEC_DESERT_UNDERPASS - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, - [MAPSEC_ALTERING_CAVE_2 - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, - [MAPSEC_NAVEL_ROCK2 - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_STONE, - [MAPSEC_TRAINER_HILL - MAPSEC_SUBSTRACT_KANTO] = MAPPOPUP_THEME_MARBLE + [MAPSEC_AQUA_HIDEOUT - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_MAGMA_HIDEOUT - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_MIRAGE_TOWER - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_BIRTH_ISLAND_2 - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_WOOD, + [MAPSEC_FARAWAY_ISLAND - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_WOOD, + [MAPSEC_ARTISAN_CAVE - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_MARINE_CAVE - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_UNDERWATER_MARINE_CAVE - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE2, + [MAPSEC_TERRA_CAVE - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_UNDERWATER_TERRA_CAVE - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE2, + [MAPSEC_UNDERWATER_UNK1 - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE2, + [MAPSEC_UNDERWATER_129 - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE2, + [MAPSEC_DESERT_UNDERPASS - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_ALTERING_CAVE_2 - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_NAVEL_ROCK2 - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_STONE, + [MAPSEC_TRAINER_HILL - MAPSEC_SUBTRACT_KANTO] = MAPPOPUP_THEME_MARBLE }; static const u8 gText_PyramidFloor1[] = _("PYRAMID FLOOR 1"); From 5656ceab6c87a52c5eb397a93242ac6c37650716 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Wed, 5 Sep 2018 23:53:54 +0100 Subject: [PATCH 171/174] Move graphics to src/data/graphics --- data/anim_mon_front_pics.s | 1665 ----------------- data/graphics.s | 11 - ld_script.txt | 3 +- src/anim_mon_front_pics.c | 424 +++++ src/{ => data}/graphics/battle_terrain.h | 0 src/{ => data}/graphics/berries.h | 0 src/{ => data}/graphics/berry_fix.h | 0 src/{ => data}/graphics/decorations.h | 0 src/{ => data}/graphics/interface_pokeballs.h | 0 src/{ => data}/graphics/intro_scene.h | 0 src/{ => data}/graphics/items.h | 0 src/{ => data}/graphics/mail.h | 0 src/{ => data}/graphics/pokemon.h | 0 src/data/graphics/potential incbin arrays | 9 + src/{ => data}/graphics/rayquaza_scene.h | 0 src/{ => data}/graphics/slot_machine.h | 0 src/{ => data}/graphics/trainers.h | 0 src/graphics.c | 39 +- 18 files changed, 453 insertions(+), 1698 deletions(-) delete mode 100644 data/anim_mon_front_pics.s delete mode 100644 data/graphics.s create mode 100644 src/anim_mon_front_pics.c rename src/{ => data}/graphics/battle_terrain.h (100%) rename src/{ => data}/graphics/berries.h (100%) rename src/{ => data}/graphics/berry_fix.h (100%) rename src/{ => data}/graphics/decorations.h (100%) rename src/{ => data}/graphics/interface_pokeballs.h (100%) rename src/{ => data}/graphics/intro_scene.h (100%) rename src/{ => data}/graphics/items.h (100%) rename src/{ => data}/graphics/mail.h (100%) rename src/{ => data}/graphics/pokemon.h (100%) create mode 100644 src/data/graphics/potential incbin arrays rename src/{ => data}/graphics/rayquaza_scene.h (100%) rename src/{ => data}/graphics/slot_machine.h (100%) rename src/{ => data}/graphics/trainers.h (100%) diff --git a/data/anim_mon_front_pics.s b/data/anim_mon_front_pics.s deleted file mode 100644 index 5833c274ab..0000000000 --- a/data/anim_mon_front_pics.s +++ /dev/null @@ -1,1665 +0,0 @@ - .section anim_mon_front_pic_data, "aw", %progbits - - .align 2 -gMonFrontPic_CircledQuestionMark:: @ 8B00000 - .incbin "graphics/pokemon/anim_front_pics/circled_question_mark_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Bulbasaur:: @ 8B00338 - .incbin "graphics/pokemon/anim_front_pics/bulbasaur_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ivysaur:: @ 8B007B0 - .incbin "graphics/pokemon/anim_front_pics/ivysaur_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Venusaur:: @ 8B00E10 - .incbin "graphics/pokemon/anim_front_pics/venusaur_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Charmander:: @ 8B017CC - .incbin "graphics/pokemon/anim_front_pics/charmander_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Charmeleon:: @ 8B01C7C - .incbin "graphics/pokemon/anim_front_pics/charmeleon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Charizard:: @ 8B02368 - .incbin "graphics/pokemon/anim_front_pics/charizard_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Squirtle:: @ 8B02D68 - .incbin "graphics/pokemon/anim_front_pics/squirtle_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Wartortle:: @ 8B03260 - .incbin "graphics/pokemon/anim_front_pics/wartortle_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Blastoise:: @ 8B03944 - .incbin "graphics/pokemon/anim_front_pics/blastoise_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Caterpie:: @ 8B04280 - .incbin "graphics/pokemon/anim_front_pics/caterpie_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Metapod:: @ 8B046FC - .incbin "graphics/pokemon/anim_front_pics/metapod_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Butterfree:: @ 8B04AA8 - .incbin "graphics/pokemon/anim_front_pics/butterfree_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Weedle:: @ 8B05080 - .incbin "graphics/pokemon/anim_front_pics/weedle_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Kakuna:: @ 8B05444 - .incbin "graphics/pokemon/anim_front_pics/kakuna_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Beedrill:: @ 8B05820 - .incbin "graphics/pokemon/anim_front_pics/beedrill_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Pidgey:: @ 8B05F38 - .incbin "graphics/pokemon/anim_front_pics/pidgey_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Pidgeotto:: @ 8B0644C - .incbin "graphics/pokemon/anim_front_pics/pidgeotto_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Pidgeot:: @ 8B06B24 - .incbin "graphics/pokemon/anim_front_pics/pidgeot_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Rattata:: @ 8B073DC - .incbin "graphics/pokemon/anim_front_pics/rattata_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Raticate:: @ 8B07828 - .incbin "graphics/pokemon/anim_front_pics/raticate_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Spearow:: @ 8B07EA4 - .incbin "graphics/pokemon/anim_front_pics/spearow_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Fearow:: @ 8B08388 - .incbin "graphics/pokemon/anim_front_pics/fearow_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ekans:: @ 8B08BC4 - .incbin "graphics/pokemon/anim_front_pics/ekans_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Arbok:: @ 8B0918C - .incbin "graphics/pokemon/anim_front_pics/arbok_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Pikachu:: @ 8B09964 - .incbin "graphics/pokemon/anim_front_pics/pikachu_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Raichu:: @ 8B09E3C - .incbin "graphics/pokemon/anim_front_pics/raichu_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Sandshrew:: @ 8B0A554 - .incbin "graphics/pokemon/anim_front_pics/sandshrew_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Sandslash:: @ 8B0AA6C - .incbin "graphics/pokemon/anim_front_pics/sandslash_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_NidoranF:: @ 8B0B1C4 - .incbin "graphics/pokemon/anim_front_pics/nidoran_f_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Nidorina:: @ 8B0B628 - .incbin "graphics/pokemon/anim_front_pics/nidorina_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Nidoqueen:: @ 8B0BC5C - .incbin "graphics/pokemon/anim_front_pics/nidoqueen_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_NidoranM:: @ 8B0C4E8 - .incbin "graphics/pokemon/anim_front_pics/nidoran_m_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Nidorino:: @ 8B0CA54 - .incbin "graphics/pokemon/anim_front_pics/nidorino_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Nidoking:: @ 8B0D10C - .incbin "graphics/pokemon/anim_front_pics/nidoking_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Clefairy:: @ 8B0D9A8 - .incbin "graphics/pokemon/anim_front_pics/clefairy_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Clefable:: @ 8B0DE24 - .incbin "graphics/pokemon/anim_front_pics/clefable_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Vulpix:: @ 8B0E3A4 - .incbin "graphics/pokemon/anim_front_pics/vulpix_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ninetales:: @ 8B0EA08 - .incbin "graphics/pokemon/anim_front_pics/ninetales_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Jigglypuff:: @ 8B0F1CC - .incbin "graphics/pokemon/anim_front_pics/jigglypuff_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Wigglytuff:: @ 8B0F67C - .incbin "graphics/pokemon/anim_front_pics/wigglytuff_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Zubat:: @ 8B0FCD0 - .incbin "graphics/pokemon/anim_front_pics/zubat_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Golbat:: @ 8B10188 - .incbin "graphics/pokemon/anim_front_pics/golbat_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Oddish:: @ 8B10780 - .incbin "graphics/pokemon/anim_front_pics/oddish_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Gloom:: @ 8B10B78 - .incbin "graphics/pokemon/anim_front_pics/gloom_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Vileplume:: @ 8B111B0 - .incbin "graphics/pokemon/anim_front_pics/vileplume_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Paras:: @ 8B11750 - .incbin "graphics/pokemon/anim_front_pics/paras_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Parasect:: @ 8B11BAC - .incbin "graphics/pokemon/anim_front_pics/parasect_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Venonat:: @ 8B121BC - .incbin "graphics/pokemon/anim_front_pics/venonat_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Venomoth:: @ 8B127A8 - .incbin "graphics/pokemon/anim_front_pics/venomoth_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Diglett:: @ 8B12F74 - .incbin "graphics/pokemon/anim_front_pics/diglett_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Dugtrio:: @ 8B13338 - .incbin "graphics/pokemon/anim_front_pics/dugtrio_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Meowth:: @ 8B137CC - .incbin "graphics/pokemon/anim_front_pics/meowth_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Persian:: @ 8B13CB4 - .incbin "graphics/pokemon/anim_front_pics/persian_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Psyduck:: @ 8B1439C - .incbin "graphics/pokemon/anim_front_pics/psyduck_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Golduck:: @ 8B14904 - .incbin "graphics/pokemon/anim_front_pics/golduck_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Mankey:: @ 8B14F9C - .incbin "graphics/pokemon/anim_front_pics/mankey_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Primeape:: @ 8B15550 - .incbin "graphics/pokemon/anim_front_pics/primeape_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Growlithe:: @ 8B15BFC - .incbin "graphics/pokemon/anim_front_pics/growlithe_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Arcanine:: @ 8B161E8 - .incbin "graphics/pokemon/anim_front_pics/arcanine_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Poliwag:: @ 8B16BF4 - .incbin "graphics/pokemon/anim_front_pics/poliwag_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Poliwhirl:: @ 8B170C8 - .incbin "graphics/pokemon/anim_front_pics/poliwhirl_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Poliwrath:: @ 8B176B4 - .incbin "graphics/pokemon/anim_front_pics/poliwrath_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Abra:: @ 8B17D38 - .incbin "graphics/pokemon/anim_front_pics/abra_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Kadabra:: @ 8B18144 - .incbin "graphics/pokemon/anim_front_pics/kadabra_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Alakazam:: @ 8B18910 - .incbin "graphics/pokemon/anim_front_pics/alakazam_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Machop:: @ 8B190CC - .incbin "graphics/pokemon/anim_front_pics/machop_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Machoke:: @ 8B194FC - .incbin "graphics/pokemon/anim_front_pics/machoke_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Machamp:: @ 8B19BB4 - .incbin "graphics/pokemon/anim_front_pics/machamp_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Bellsprout:: @ 8B1A2C0 - .incbin "graphics/pokemon/anim_front_pics/bellsprout_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Weepinbell:: @ 8B1A798 - .incbin "graphics/pokemon/anim_front_pics/weepinbell_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Victreebel:: @ 8B1AD20 - .incbin "graphics/pokemon/anim_front_pics/victreebel_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Tentacool:: @ 8B1B474 - .incbin "graphics/pokemon/anim_front_pics/tentacool_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Tentacruel:: @ 8B1B8F4 - .incbin "graphics/pokemon/anim_front_pics/tentacruel_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Geodude:: @ 8B1C018 - .incbin "graphics/pokemon/anim_front_pics/geodude_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Graveler:: @ 8B1C4A8 - .incbin "graphics/pokemon/anim_front_pics/graveler_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Golem:: @ 8B1CA7C - .incbin "graphics/pokemon/anim_front_pics/golem_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ponyta:: @ 8B1D160 - .incbin "graphics/pokemon/anim_front_pics/ponyta_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Rapidash:: @ 8B1D820 - .incbin "graphics/pokemon/anim_front_pics/rapidash_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Slowpoke:: @ 8B1E188 - .incbin "graphics/pokemon/anim_front_pics/slowpoke_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Slowbro:: @ 8B1E650 - .incbin "graphics/pokemon/anim_front_pics/slowbro_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Magnemite:: @ 8B1EDC8 - .incbin "graphics/pokemon/anim_front_pics/magnemite_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Magneton:: @ 8B1F160 - .incbin "graphics/pokemon/anim_front_pics/magneton_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Farfetchd:: @ 8B1F814 - .incbin "graphics/pokemon/anim_front_pics/farfetch_d_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Doduo:: @ 8B1FD9C - .incbin "graphics/pokemon/anim_front_pics/doduo_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Dodrio:: @ 8B20398 - .incbin "graphics/pokemon/anim_front_pics/dodrio_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Seel:: @ 8B20CAC - .incbin "graphics/pokemon/anim_front_pics/seel_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Dewgong:: @ 8B211F4 - .incbin "graphics/pokemon/anim_front_pics/dewgong_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Grimer:: @ 8B21894 - .incbin "graphics/pokemon/anim_front_pics/grimer_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Muk:: @ 8B21E1C - .incbin "graphics/pokemon/anim_front_pics/muk_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Shellder:: @ 8B22538 - .incbin "graphics/pokemon/anim_front_pics/shellder_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Cloyster:: @ 8B2298C - .incbin "graphics/pokemon/anim_front_pics/cloyster_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Gastly:: @ 8B23138 - .incbin "graphics/pokemon/anim_front_pics/gastly_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Haunter:: @ 8B237DC - .incbin "graphics/pokemon/anim_front_pics/haunter_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Gengar:: @ 8B23ED0 - .incbin "graphics/pokemon/anim_front_pics/gengar_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Onix:: @ 8B2456C - .incbin "graphics/pokemon/anim_front_pics/onix_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Drowzee:: @ 8B24DEC - .incbin "graphics/pokemon/anim_front_pics/drowzee_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Hypno:: @ 8B253D4 - .incbin "graphics/pokemon/anim_front_pics/hypno_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Krabby:: @ 8B25A20 - .incbin "graphics/pokemon/anim_front_pics/krabby_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Kingler:: @ 8B25EE4 - .incbin "graphics/pokemon/anim_front_pics/kingler_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Voltorb:: @ 8B267F4 - .incbin "graphics/pokemon/anim_front_pics/voltorb_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Electrode:: @ 8B26B68 - .incbin "graphics/pokemon/anim_front_pics/electrode_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Exeggcute:: @ 8B26F7C - .incbin "graphics/pokemon/anim_front_pics/exeggcute_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Exeggutor:: @ 8B27614 - .incbin "graphics/pokemon/anim_front_pics/exeggutor_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Cubone:: @ 8B27E24 - .incbin "graphics/pokemon/anim_front_pics/cubone_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Marowak:: @ 8B282A8 - .incbin "graphics/pokemon/anim_front_pics/marowak_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Hitmonlee:: @ 8B28948 - .incbin "graphics/pokemon/anim_front_pics/hitmonlee_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Hitmonchan:: @ 8B29068 - .incbin "graphics/pokemon/anim_front_pics/hitmonchan_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Lickitung:: @ 8B29678 - .incbin "graphics/pokemon/anim_front_pics/lickitung_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Koffing:: @ 8B29D50 - .incbin "graphics/pokemon/anim_front_pics/koffing_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Weezing:: @ 8B2A368 - .incbin "graphics/pokemon/anim_front_pics/weezing_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Rhyhorn:: @ 8B2ABC8 - .incbin "graphics/pokemon/anim_front_pics/rhyhorn_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Rhydon:: @ 8B2B2A4 - .incbin "graphics/pokemon/anim_front_pics/rhydon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Chansey:: @ 8B2BBA4 - .incbin "graphics/pokemon/anim_front_pics/chansey_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Tangela:: @ 8B2C128 - .incbin "graphics/pokemon/anim_front_pics/tangela_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Kangaskhan:: @ 8B2C800 - .incbin "graphics/pokemon/anim_front_pics/kangaskhan_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Horsea:: @ 8B2D0B4 - .incbin "graphics/pokemon/anim_front_pics/horsea_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Seadra:: @ 8B2D4D0 - .incbin "graphics/pokemon/anim_front_pics/seadra_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Goldeen:: @ 8B2DBB4 - .incbin "graphics/pokemon/anim_front_pics/goldeen_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Seaking:: @ 8B2E18C - .incbin "graphics/pokemon/anim_front_pics/seaking_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Staryu:: @ 8B2E930 - .incbin "graphics/pokemon/anim_front_pics/staryu_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Starmie:: @ 8B2EE64 - .incbin "graphics/pokemon/anim_front_pics/starmie_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Mrmime:: @ 8B2F4D0 - .incbin "graphics/pokemon/anim_front_pics/mr_mime_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Scyther:: @ 8B2FB0C - .incbin "graphics/pokemon/anim_front_pics/scyther_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Jynx:: @ 8B3034C - .incbin "graphics/pokemon/anim_front_pics/jynx_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Electabuzz:: @ 8B30BE0 - .incbin "graphics/pokemon/anim_front_pics/electabuzz_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Magmar:: @ 8B313C8 - .incbin "graphics/pokemon/anim_front_pics/magmar_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Pinsir:: @ 8B31C40 - .incbin "graphics/pokemon/anim_front_pics/pinsir_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Tauros:: @ 8B323D8 - .incbin "graphics/pokemon/anim_front_pics/tauros_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Magikarp:: @ 8B32C7C - .incbin "graphics/pokemon/anim_front_pics/magikarp_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Gyarados:: @ 8B332A4 - .incbin "graphics/pokemon/anim_front_pics/gyarados_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Lapras:: @ 8B33B74 - .incbin "graphics/pokemon/anim_front_pics/lapras_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ditto:: @ 8B341D4 - .incbin "graphics/pokemon/anim_front_pics/ditto_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Eevee:: @ 8B34548 - .incbin "graphics/pokemon/anim_front_pics/eevee_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Vaporeon:: @ 8B34A68 - .incbin "graphics/pokemon/anim_front_pics/vaporeon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Jolteon:: @ 8B35098 - .incbin "graphics/pokemon/anim_front_pics/jolteon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Flareon:: @ 8B35774 - .incbin "graphics/pokemon/anim_front_pics/flareon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Porygon:: @ 8B35DB8 - .incbin "graphics/pokemon/anim_front_pics/porygon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Omanyte:: @ 8B36248 - .incbin "graphics/pokemon/anim_front_pics/omanyte_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Omastar:: @ 8B36670 - .incbin "graphics/pokemon/anim_front_pics/omastar_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Kabuto:: @ 8B36CB4 - .incbin "graphics/pokemon/anim_front_pics/kabuto_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Kabutops:: @ 8B37088 - .incbin "graphics/pokemon/anim_front_pics/kabutops_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Aerodactyl:: @ 8B377DC - .incbin "graphics/pokemon/anim_front_pics/aerodactyl_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Snorlax:: @ 8B37F64 - .incbin "graphics/pokemon/anim_front_pics/snorlax_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Articuno:: @ 8B3868C - .incbin "graphics/pokemon/anim_front_pics/articuno_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Zapdos:: @ 8B39004 - .incbin "graphics/pokemon/anim_front_pics/zapdos_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Moltres:: @ 8B39800 - .incbin "graphics/pokemon/anim_front_pics/moltres_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Dratini:: @ 8B3A0A8 - .incbin "graphics/pokemon/anim_front_pics/dratini_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Dragonair:: @ 8B3A5B4 - .incbin "graphics/pokemon/anim_front_pics/dragonair_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Dragonite:: @ 8B3AC44 - .incbin "graphics/pokemon/anim_front_pics/dragonite_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Mewtwo:: @ 8B3B56C - .incbin "graphics/pokemon/anim_front_pics/mewtwo_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Mew:: @ 8B3BD14 - .incbin "graphics/pokemon/anim_front_pics/mew_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Chikorita:: @ 8B3C1F4 - .incbin "graphics/pokemon/anim_front_pics/chikorita_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Bayleef:: @ 8B3C68C - .incbin "graphics/pokemon/anim_front_pics/bayleef_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Meganium:: @ 8B3CCA0 - .incbin "graphics/pokemon/anim_front_pics/meganium_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Cyndaquil:: @ 8B3D5D4 - .incbin "graphics/pokemon/anim_front_pics/cyndaquil_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Quilava:: @ 8B3DA94 - .incbin "graphics/pokemon/anim_front_pics/quilava_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Typhlosion:: @ 8B3E080 - .incbin "graphics/pokemon/anim_front_pics/typhlosion_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Totodile:: @ 8B3E798 - .incbin "graphics/pokemon/anim_front_pics/totodile_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Croconaw:: @ 8B3EC60 - .incbin "graphics/pokemon/anim_front_pics/croconaw_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Feraligatr:: @ 8B3F2BC - .incbin "graphics/pokemon/anim_front_pics/feraligatr_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Sentret:: @ 8B3FB90 - .incbin "graphics/pokemon/anim_front_pics/sentret_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Furret:: @ 8B4005C - .incbin "graphics/pokemon/anim_front_pics/furret_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Hoothoot:: @ 8B40650 - .incbin "graphics/pokemon/anim_front_pics/hoothoot_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Noctowl:: @ 8B40A4C - .incbin "graphics/pokemon/anim_front_pics/noctowl_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ledyba:: @ 8B41100 - .incbin "graphics/pokemon/anim_front_pics/ledyba_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ledian:: @ 8B4161C - .incbin "graphics/pokemon/anim_front_pics/ledian_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Spinarak:: @ 8B41AEC - .incbin "graphics/pokemon/anim_front_pics/spinarak_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ariados:: @ 8B41F34 - .incbin "graphics/pokemon/anim_front_pics/ariados_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Crobat:: @ 8B42628 - .incbin "graphics/pokemon/anim_front_pics/crobat_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Chinchou:: @ 8B42BFC - .incbin "graphics/pokemon/anim_front_pics/chinchou_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Lanturn:: @ 8B43100 - .incbin "graphics/pokemon/anim_front_pics/lanturn_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Pichu:: @ 8B43748 - .incbin "graphics/pokemon/anim_front_pics/pichu_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Cleffa:: @ 8B43B00 - .incbin "graphics/pokemon/anim_front_pics/cleffa_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Igglybuff:: @ 8B43EBC - .incbin "graphics/pokemon/anim_front_pics/igglybuff_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Togepi:: @ 8B44228 - .incbin "graphics/pokemon/anim_front_pics/togepi_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Togetic:: @ 8B4454C - .incbin "graphics/pokemon/anim_front_pics/togetic_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Natu:: @ 8B449DC - .incbin "graphics/pokemon/anim_front_pics/natu_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Xatu:: @ 8B44D08 - .incbin "graphics/pokemon/anim_front_pics/xatu_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Mareep:: @ 8B4529C - .incbin "graphics/pokemon/anim_front_pics/mareep_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Flaaffy:: @ 8B45744 - .incbin "graphics/pokemon/anim_front_pics/flaaffy_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ampharos:: @ 8B45C34 - .incbin "graphics/pokemon/anim_front_pics/ampharos_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Bellossom:: @ 8B462C0 - .incbin "graphics/pokemon/anim_front_pics/bellossom_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Marill:: @ 8B46758 - .incbin "graphics/pokemon/anim_front_pics/marill_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Azumarill:: @ 8B46C84 - .incbin "graphics/pokemon/anim_front_pics/azumarill_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Sudowoodo:: @ 8B47228 - .incbin "graphics/pokemon/anim_front_pics/sudowoodo_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Politoed:: @ 8B477E4 - .incbin "graphics/pokemon/anim_front_pics/politoed_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Hoppip:: @ 8B47DEC - .incbin "graphics/pokemon/anim_front_pics/hoppip_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Skiploom:: @ 8B482B4 - .incbin "graphics/pokemon/anim_front_pics/skiploom_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Jumpluff:: @ 8B486F8 - .incbin "graphics/pokemon/anim_front_pics/jumpluff_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Aipom:: @ 8B48C78 - .incbin "graphics/pokemon/anim_front_pics/aipom_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Sunkern:: @ 8B49178 - .incbin "graphics/pokemon/anim_front_pics/sunkern_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Sunflora:: @ 8B49518 - .incbin "graphics/pokemon/anim_front_pics/sunflora_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Yanma:: @ 8B49AB0 - .incbin "graphics/pokemon/anim_front_pics/yanma_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Wooper:: @ 8B4A03C - .incbin "graphics/pokemon/anim_front_pics/wooper_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Quagsire:: @ 8B4A3FC - .incbin "graphics/pokemon/anim_front_pics/quagsire_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Espeon:: @ 8B4AA80 - .incbin "graphics/pokemon/anim_front_pics/espeon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Umbreon:: @ 8B4B060 - .incbin "graphics/pokemon/anim_front_pics/umbreon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Murkrow:: @ 8B4B610 - .incbin "graphics/pokemon/anim_front_pics/murkrow_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Slowking:: @ 8B4BB6C - .incbin "graphics/pokemon/anim_front_pics/slowking_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Misdreavus:: @ 8B4C234 - .incbin "graphics/pokemon/anim_front_pics/misdreavus_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownA:: @ 8B4C730 - .incbin "graphics/pokemon/anim_front_pics/unown_a_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Wobbuffet:: @ 8B4C9F4 - .incbin "graphics/pokemon/anim_front_pics/wobbuffet_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Girafarig:: @ 8B4CFC4 - .incbin "graphics/pokemon/anim_front_pics/girafarig_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Pineco:: @ 8B4D75C - .incbin "graphics/pokemon/anim_front_pics/pineco_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Forretress:: @ 8B4DBE4 - .incbin "graphics/pokemon/anim_front_pics/forretress_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Dunsparce:: @ 8B4E1E8 - .incbin "graphics/pokemon/anim_front_pics/dunsparce_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Gligar:: @ 8B4E73C - .incbin "graphics/pokemon/anim_front_pics/gligar_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Steelix:: @ 8B4EE6C - .incbin "graphics/pokemon/anim_front_pics/steelix_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Snubbull:: @ 8B4F73C - .incbin "graphics/pokemon/anim_front_pics/snubbull_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Granbull:: @ 8B4FC2C - .incbin "graphics/pokemon/anim_front_pics/granbull_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Qwilfish:: @ 8B502CC - .incbin "graphics/pokemon/anim_front_pics/qwilfish_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Scizor:: @ 8B50780 - .incbin "graphics/pokemon/anim_front_pics/scizor_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Shuckle:: @ 8B5100C - .incbin "graphics/pokemon/anim_front_pics/shuckle_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Heracross:: @ 8B51470 - .incbin "graphics/pokemon/anim_front_pics/heracross_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Sneasel:: @ 8B51B04 - .incbin "graphics/pokemon/anim_front_pics/sneasel_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Teddiursa:: @ 8B52114 - .incbin "graphics/pokemon/anim_front_pics/teddiursa_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ursaring:: @ 8B524C0 - .incbin "graphics/pokemon/anim_front_pics/ursaring_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Slugma:: @ 8B52C4C - .incbin "graphics/pokemon/anim_front_pics/slugma_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Magcargo:: @ 8B5307C - .incbin "graphics/pokemon/anim_front_pics/magcargo_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Swinub:: @ 8B536DC - .incbin "graphics/pokemon/anim_front_pics/swinub_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Piloswine:: @ 8B53A7C - .incbin "graphics/pokemon/anim_front_pics/piloswine_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Corsola:: @ 8B53FB8 - .incbin "graphics/pokemon/anim_front_pics/corsola_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Remoraid:: @ 8B5450C - .incbin "graphics/pokemon/anim_front_pics/remoraid_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Octillery:: @ 8B54960 - .incbin "graphics/pokemon/anim_front_pics/octillery_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Delibird:: @ 8B54EE4 - .incbin "graphics/pokemon/anim_front_pics/delibird_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Mantine:: @ 8B55514 - .incbin "graphics/pokemon/anim_front_pics/mantine_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Skarmory:: @ 8B55D60 - .incbin "graphics/pokemon/anim_front_pics/skarmory_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Houndour:: @ 8B5656C - .incbin "graphics/pokemon/anim_front_pics/houndour_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Houndoom:: @ 8B56A70 - .incbin "graphics/pokemon/anim_front_pics/houndoom_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Kingdra:: @ 8B57164 - .incbin "graphics/pokemon/anim_front_pics/kingdra_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Phanpy:: @ 8B57900 - .incbin "graphics/pokemon/anim_front_pics/phanpy_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Donphan:: @ 8B57D74 - .incbin "graphics/pokemon/anim_front_pics/donphan_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Porygon2:: @ 8B5846C - .incbin "graphics/pokemon/anim_front_pics/porygon2_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Stantler:: @ 8B588E8 - .incbin "graphics/pokemon/anim_front_pics/stantler_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Smeargle:: @ 8B5905C - .incbin "graphics/pokemon/anim_front_pics/smeargle_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Tyrogue:: @ 8B5970C - .incbin "graphics/pokemon/anim_front_pics/tyrogue_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Hitmontop:: @ 8B59BD4 - .incbin "graphics/pokemon/anim_front_pics/hitmontop_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Smoochum:: @ 8B5A1B4 - .incbin "graphics/pokemon/anim_front_pics/smoochum_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Elekid:: @ 8B5A5A4 - .incbin "graphics/pokemon/anim_front_pics/elekid_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Magby:: @ 8B5AB58 - .incbin "graphics/pokemon/anim_front_pics/magby_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Miltank:: @ 8B5B004 - .incbin "graphics/pokemon/anim_front_pics/miltank_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Blissey:: @ 8B5B6C0 - .incbin "graphics/pokemon/anim_front_pics/blissey_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Raikou:: @ 8B5BD2C - .incbin "graphics/pokemon/anim_front_pics/raikou_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Entei:: @ 8B5C738 - .incbin "graphics/pokemon/anim_front_pics/entei_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Suicune:: @ 8B5CFCC - .incbin "graphics/pokemon/anim_front_pics/suicune_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Larvitar:: @ 8B5DA34 - .incbin "graphics/pokemon/anim_front_pics/larvitar_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Pupitar:: @ 8B5DEC0 - .incbin "graphics/pokemon/anim_front_pics/pupitar_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Tyranitar:: @ 8B5E308 - .incbin "graphics/pokemon/anim_front_pics/tyranitar_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Lugia:: @ 8B5EC68 - .incbin "graphics/pokemon/anim_front_pics/lugia_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_HoOh:: @ 8B5F4FC - .incbin "graphics/pokemon/anim_front_pics/ho_oh_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Celebi:: @ 8B60090 - .incbin "graphics/pokemon/anim_front_pics/celebi_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_DoubleQuestionMark:: @ 8B60544 - .incbin "graphics/pokemon/anim_front_pics/double_question_mark_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Treecko:: @ 8B607B4 - .incbin "graphics/pokemon/anim_front_pics/treecko_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Grovyle:: @ 8B60D28 - .incbin "graphics/pokemon/anim_front_pics/grovyle_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Sceptile:: @ 8B6157C - .incbin "graphics/pokemon/anim_front_pics/sceptile_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Torchic:: @ 8B61C9C - .incbin "graphics/pokemon/anim_front_pics/torchic_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Combusken:: @ 8B6218C - .incbin "graphics/pokemon/anim_front_pics/combusken_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Blaziken:: @ 8B62964 - .incbin "graphics/pokemon/anim_front_pics/blaziken_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Mudkip:: @ 8B630B0 - .incbin "graphics/pokemon/anim_front_pics/mudkip_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Marshtomp:: @ 8B635E4 - .incbin "graphics/pokemon/anim_front_pics/marshtomp_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Swampert:: @ 8B63BF4 - .incbin "graphics/pokemon/anim_front_pics/swampert_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Poochyena:: @ 8B64564 - .incbin "graphics/pokemon/anim_front_pics/poochyena_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Mightyena:: @ 8B64AC0 - .incbin "graphics/pokemon/anim_front_pics/mightyena_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Zigzagoon:: @ 8B65294 - .incbin "graphics/pokemon/anim_front_pics/zigzagoon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Linoone:: @ 8B659B0 - .incbin "graphics/pokemon/anim_front_pics/linoone_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Wurmple:: @ 8B65F9C - .incbin "graphics/pokemon/anim_front_pics/wurmple_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Silcoon:: @ 8B66498 - .incbin "graphics/pokemon/anim_front_pics/silcoon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Beautifly:: @ 8B66830 - .incbin "graphics/pokemon/anim_front_pics/beautifly_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Cascoon:: @ 8B66DBC - .incbin "graphics/pokemon/anim_front_pics/cascoon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Dustox:: @ 8B67130 - .incbin "graphics/pokemon/anim_front_pics/dustox_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Lotad:: @ 8B67734 - .incbin "graphics/pokemon/anim_front_pics/lotad_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Lombre:: @ 8B67B7C - .incbin "graphics/pokemon/anim_front_pics/lombre_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ludicolo:: @ 8B68120 - .incbin "graphics/pokemon/anim_front_pics/ludicolo_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Seedot:: @ 8B688F0 - .incbin "graphics/pokemon/anim_front_pics/seedot_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Nuzleaf:: @ 8B68DB4 - .incbin "graphics/pokemon/anim_front_pics/nuzleaf_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Shiftry:: @ 8B69278 - .incbin "graphics/pokemon/anim_front_pics/shiftry_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Nincada:: @ 8B69878 - .incbin "graphics/pokemon/anim_front_pics/nincada_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ninjask:: @ 8B69D04 - .incbin "graphics/pokemon/anim_front_pics/ninjask_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Shedinja:: @ 8B6A23C - .incbin "graphics/pokemon/anim_front_pics/shedinja_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Taillow:: @ 8B6A81C - .incbin "graphics/pokemon/anim_front_pics/taillow_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Swellow:: @ 8B6AD5C - .incbin "graphics/pokemon/anim_front_pics/swellow_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Shroomish:: @ 8B6B2C8 - .incbin "graphics/pokemon/anim_front_pics/shroomish_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Breloom:: @ 8B6B690 - .incbin "graphics/pokemon/anim_front_pics/breloom_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Spinda:: @ 8B6BD3C - .incbin "graphics/pokemon/anim_front_pics/spinda_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Wingull:: @ 8B6C130 - .incbin "graphics/pokemon/anim_front_pics/wingull_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Pelipper:: @ 8B6C514 - .incbin "graphics/pokemon/anim_front_pics/pelipper_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Surskit:: @ 8B6CB0C - .incbin "graphics/pokemon/anim_front_pics/surskit_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Masquerain:: @ 8B6CEB0 - .incbin "graphics/pokemon/anim_front_pics/masquerain_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Wailmer:: @ 8B6D4F0 - .incbin "graphics/pokemon/anim_front_pics/wailmer_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Wailord:: @ 8B6D9A4 - .incbin "graphics/pokemon/anim_front_pics/wailord_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Skitty:: @ 8B6E01C - .incbin "graphics/pokemon/anim_front_pics/skitty_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Delcatty:: @ 8B6E588 - .incbin "graphics/pokemon/anim_front_pics/delcatty_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Kecleon:: @ 8B6EBE0 - .incbin "graphics/pokemon/anim_front_pics/kecleon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Baltoy:: @ 8B6F274 - .incbin "graphics/pokemon/anim_front_pics/baltoy_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Claydol:: @ 8B6F62C - .incbin "graphics/pokemon/anim_front_pics/claydol_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Nosepass:: @ 8B6FD08 - .incbin "graphics/pokemon/anim_front_pics/nosepass_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Torkoal:: @ 8B70268 - .incbin "graphics/pokemon/anim_front_pics/torkoal_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Sableye:: @ 8B70A58 - .incbin "graphics/pokemon/anim_front_pics/sableye_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Barboach:: @ 8B70EF8 - .incbin "graphics/pokemon/anim_front_pics/barboach_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Whiscash:: @ 8B71400 - .incbin "graphics/pokemon/anim_front_pics/whiscash_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Luvdisc:: @ 8B7197C - .incbin "graphics/pokemon/anim_front_pics/luvdisc_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Corphish:: @ 8B71CB0 - .incbin "graphics/pokemon/anim_front_pics/corphish_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Crawdaunt:: @ 8B721E4 - .incbin "graphics/pokemon/anim_front_pics/crawdaunt_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Feebas:: @ 8B72920 - .incbin "graphics/pokemon/anim_front_pics/feebas_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Milotic:: @ 8B72E30 - .incbin "graphics/pokemon/anim_front_pics/milotic_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Carvanha:: @ 8B736FC - .incbin "graphics/pokemon/anim_front_pics/carvanha_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Sharpedo:: @ 8B73D1C - .incbin "graphics/pokemon/anim_front_pics/sharpedo_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Trapinch:: @ 8B7434C - .incbin "graphics/pokemon/anim_front_pics/trapinch_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Vibrava:: @ 8B74720 - .incbin "graphics/pokemon/anim_front_pics/vibrava_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Flygon:: @ 8B74DB0 - .incbin "graphics/pokemon/anim_front_pics/flygon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Makuhita:: @ 8B75614 - .incbin "graphics/pokemon/anim_front_pics/makuhita_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Hariyama:: @ 8B75AD0 - .incbin "graphics/pokemon/anim_front_pics/hariyama_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Electrike:: @ 8B763D0 - .incbin "graphics/pokemon/anim_front_pics/electrike_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Manectric:: @ 8B768A0 - .incbin "graphics/pokemon/anim_front_pics/manectric_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Numel:: @ 8B76E9C - .incbin "graphics/pokemon/anim_front_pics/numel_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Camerupt:: @ 8B773B8 - .incbin "graphics/pokemon/anim_front_pics/camerupt_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Spheal:: @ 8B779DC - .incbin "graphics/pokemon/anim_front_pics/spheal_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Sealeo:: @ 8B77E0C - .incbin "graphics/pokemon/anim_front_pics/sealeo_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Walrein:: @ 8B78484 - .incbin "graphics/pokemon/anim_front_pics/walrein_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Cacnea:: @ 8B78C54 - .incbin "graphics/pokemon/anim_front_pics/cacnea_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Cacturne:: @ 8B7916C - .incbin "graphics/pokemon/anim_front_pics/cacturne_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Snorunt:: @ 8B79928 - .incbin "graphics/pokemon/anim_front_pics/snorunt_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Glalie:: @ 8B79E44 - .incbin "graphics/pokemon/anim_front_pics/glalie_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Lunatone:: @ 8B7A568 - .incbin "graphics/pokemon/anim_front_pics/lunatone_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Solrock:: @ 8B7AA90 - .incbin "graphics/pokemon/anim_front_pics/solrock_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Azurill:: @ 8B7B264 - .incbin "graphics/pokemon/anim_front_pics/azurill_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Spoink:: @ 8B7B7B4 - .incbin "graphics/pokemon/anim_front_pics/spoink_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Grumpig:: @ 8B7BBA0 - .incbin "graphics/pokemon/anim_front_pics/grumpig_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Plusle:: @ 8B7C258 - .incbin "graphics/pokemon/anim_front_pics/plusle_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Minun:: @ 8B7C6F4 - .incbin "graphics/pokemon/anim_front_pics/minun_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Mawile:: @ 8B7CB14 - .incbin "graphics/pokemon/anim_front_pics/mawile_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Meditite:: @ 8B7D2A4 - .incbin "graphics/pokemon/anim_front_pics/meditite_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Medicham:: @ 8B7D6E4 - .incbin "graphics/pokemon/anim_front_pics/medicham_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Swablu:: @ 8B7DC3C - .incbin "graphics/pokemon/anim_front_pics/swablu_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Altaria:: @ 8B7E128 - .incbin "graphics/pokemon/anim_front_pics/altaria_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Wynaut:: @ 8B7E844 - .incbin "graphics/pokemon/anim_front_pics/wynaut_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Duskull:: @ 8B7ECB8 - .incbin "graphics/pokemon/anim_front_pics/duskull_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Dusclops:: @ 8B7F228 - .incbin "graphics/pokemon/anim_front_pics/dusclops_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Roselia:: @ 8B7F8D8 - .incbin "graphics/pokemon/anim_front_pics/roselia_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Slakoth:: @ 8B7FEE8 - .incbin "graphics/pokemon/anim_front_pics/slakoth_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Vigoroth:: @ 8B802D8 - .incbin "graphics/pokemon/anim_front_pics/vigoroth_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Slaking:: @ 8B80A88 - .incbin "graphics/pokemon/anim_front_pics/slaking_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Gulpin:: @ 8B81134 - .incbin "graphics/pokemon/anim_front_pics/gulpin_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Swalot:: @ 8B814E4 - .incbin "graphics/pokemon/anim_front_pics/swalot_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Tropius:: @ 8B81A78 - .incbin "graphics/pokemon/anim_front_pics/tropius_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Whismur:: @ 8B8239C - .incbin "graphics/pokemon/anim_front_pics/whismur_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Loudred:: @ 8B82808 - .incbin "graphics/pokemon/anim_front_pics/loudred_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Exploud:: @ 8B82F00 - .incbin "graphics/pokemon/anim_front_pics/exploud_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Clamperl:: @ 8B83908 - .incbin "graphics/pokemon/anim_front_pics/clamperl_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Huntail:: @ 8B83DB4 - .incbin "graphics/pokemon/anim_front_pics/huntail_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Gorebyss:: @ 8B844A8 - .incbin "graphics/pokemon/anim_front_pics/gorebyss_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Absol:: @ 8B84A50 - .incbin "graphics/pokemon/anim_front_pics/absol_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Shuppet:: @ 8B851C0 - .incbin "graphics/pokemon/anim_front_pics/shuppet_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Banette:: @ 8B855C0 - .incbin "graphics/pokemon/anim_front_pics/banette_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Seviper:: @ 8B85ACC - .incbin "graphics/pokemon/anim_front_pics/seviper_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Zangoose:: @ 8B8625C - .incbin "graphics/pokemon/anim_front_pics/zangoose_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Relicanth:: @ 8B86978 - .incbin "graphics/pokemon/anim_front_pics/relicanth_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Aron:: @ 8B86EBC - .incbin "graphics/pokemon/anim_front_pics/aron_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Lairon:: @ 8B87260 - .incbin "graphics/pokemon/anim_front_pics/lairon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Aggron:: @ 8B87878 - .incbin "graphics/pokemon/anim_front_pics/aggron_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Castform:: @ 8B8824C - .incbin "graphics/pokemon/anim_front_pics/castform_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Volbeat:: @ 8B88CD4 - .incbin "graphics/pokemon/anim_front_pics/volbeat_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Illumise:: @ 8B892EC - .incbin "graphics/pokemon/anim_front_pics/illumise_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Lileep:: @ 8B8996C - .incbin "graphics/pokemon/anim_front_pics/lileep_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Cradily:: @ 8B89F64 - .incbin "graphics/pokemon/anim_front_pics/cradily_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Anorith:: @ 8B8A6B4 - .incbin "graphics/pokemon/anim_front_pics/anorith_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Armaldo:: @ 8B8ACA0 - .incbin "graphics/pokemon/anim_front_pics/armaldo_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Ralts:: @ 8B8B618 - .incbin "graphics/pokemon/anim_front_pics/ralts_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Kirlia:: @ 8B8BA24 - .incbin "graphics/pokemon/anim_front_pics/kirlia_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Gardevoir:: @ 8B8BF74 - .incbin "graphics/pokemon/anim_front_pics/gardevoir_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Bagon:: @ 8B8C4A8 - .incbin "graphics/pokemon/anim_front_pics/bagon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Shelgon:: @ 8B8C93C - .incbin "graphics/pokemon/anim_front_pics/shelgon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Salamence:: @ 8B8CEA8 - .incbin "graphics/pokemon/anim_front_pics/salamence_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Beldum:: @ 8B8D608 - .incbin "graphics/pokemon/anim_front_pics/beldum_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Metang:: @ 8B8DA6C - .incbin "graphics/pokemon/anim_front_pics/metang_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Metagross:: @ 8B8E23C - .incbin "graphics/pokemon/anim_front_pics/metagross_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Regirock:: @ 8B8E920 - .incbin "graphics/pokemon/anim_front_pics/regirock_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Regice:: @ 8B8F1E8 - .incbin "graphics/pokemon/anim_front_pics/regice_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Registeel:: @ 8B8F994 - .incbin "graphics/pokemon/anim_front_pics/registeel_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Kyogre:: @ 8B90170 - .incbin "graphics/pokemon/anim_front_pics/kyogre_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Groudon:: @ 8B90948 - .incbin "graphics/pokemon/anim_front_pics/groudon_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Rayquaza:: @ 8B9135C - .incbin "graphics/pokemon/anim_front_pics/rayquaza_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Latias:: @ 8B91CF0 - .incbin "graphics/pokemon/anim_front_pics/latias_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Latios:: @ 8B92378 - .incbin "graphics/pokemon/anim_front_pics/latios_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Jirachi:: @ 8B92BA8 - .incbin "graphics/pokemon/anim_front_pics/jirachi_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Deoxys:: @ 8B93154 - .incbin "graphics/pokemon/anim_front_pics/deoxys_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Chimecho:: @ 8B938C0 - .incbin "graphics/pokemon/anim_front_pics/chimecho_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_Egg:: @ 8B93D08 - .incbin "graphics/pokemon/anim_front_pics/egg_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownB:: @ 8B93FC4 - .incbin "graphics/pokemon/anim_front_pics/unown_b_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownC:: @ 8B9428C - .incbin "graphics/pokemon/anim_front_pics/unown_c_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownD:: @ 8B94590 - .incbin "graphics/pokemon/anim_front_pics/unown_d_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownE:: @ 8B94878 - .incbin "graphics/pokemon/anim_front_pics/unown_e_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownF:: @ 8B94B20 - .incbin "graphics/pokemon/anim_front_pics/unown_f_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownG:: @ 8B94E08 - .incbin "graphics/pokemon/anim_front_pics/unown_g_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownH:: @ 8B950D4 - .incbin "graphics/pokemon/anim_front_pics/unown_h_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownI:: @ 8B9540C - .incbin "graphics/pokemon/anim_front_pics/unown_i_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownJ:: @ 8B95698 - .incbin "graphics/pokemon/anim_front_pics/unown_j_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownK:: @ 8B95950 - .incbin "graphics/pokemon/anim_front_pics/unown_k_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownL:: @ 8B95C10 - .incbin "graphics/pokemon/anim_front_pics/unown_l_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownM:: @ 8B95EB4 - .incbin "graphics/pokemon/anim_front_pics/unown_m_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownN:: @ 8B961C8 - .incbin "graphics/pokemon/anim_front_pics/unown_n_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownO:: @ 8B964B0 - .incbin "graphics/pokemon/anim_front_pics/unown_o_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownP:: @ 8B967DC - .incbin "graphics/pokemon/anim_front_pics/unown_p_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownQ:: @ 8B96A6C - .incbin "graphics/pokemon/anim_front_pics/unown_q_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownR:: @ 8B96D14 - .incbin "graphics/pokemon/anim_front_pics/unown_r_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownS:: @ 8B96FA8 - .incbin "graphics/pokemon/anim_front_pics/unown_s_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownT:: @ 8B97284 - .incbin "graphics/pokemon/anim_front_pics/unown_t_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownU:: @ 8B97528 - .incbin "graphics/pokemon/anim_front_pics/unown_u_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownV:: @ 8B97834 - .incbin "graphics/pokemon/anim_front_pics/unown_v_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownW:: @ 8B97B0C - .incbin "graphics/pokemon/anim_front_pics/unown_w_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownX:: @ 8B97DD4 - .incbin "graphics/pokemon/anim_front_pics/unown_x_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownY:: @ 8B98088 - .incbin "graphics/pokemon/anim_front_pics/unown_y_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownZ:: @ 8B98350 - .incbin "graphics/pokemon/anim_front_pics/unown_z_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownExclamationMark:: @ 8B985F4 - .incbin "graphics/pokemon/anim_front_pics/unown_exclamation_mark_front_pic.4bpp.lz" - - .align 2 -gMonFrontPic_UnownQuestionMark:: @ 8B98878 - .incbin "graphics/pokemon/anim_front_pics/unown_question_mark_front_pic.4bpp.lz" diff --git a/data/graphics.s b/data/graphics.s deleted file mode 100644 index 2c1a98924e..0000000000 --- a/data/graphics.s +++ /dev/null @@ -1,11 +0,0 @@ - .section gfx_data, "aw", %progbits - - @ random garbage at the end. why, game freak? - .space 0x54BAC - .byte 0x0D, 0x00, 0x58, 0x02 @ why? - @ E38BC8 - .space 0x1145 - .byte 0x02 @ whyyyyy? - .space 0x3242 - .byte 0x40 @ WHYYYYYYYY - .space 0x13 diff --git a/ld_script.txt b/ld_script.txt index 0a6a222908..161b26e565 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -1128,7 +1128,7 @@ SECTIONS { anim_mon_front_pic_data : ALIGN(4) { - data/anim_mon_front_pics.o(anim_mon_front_pic_data); + src/anim_mon_front_pics.o(.rodata); } =0 gap2 : @@ -1142,7 +1142,6 @@ SECTIONS { ALIGN(4) { src/graphics.o(.rodata); - data/graphics.o(gfx_data); } =0 /* Discard everything not specifically mentioned above. */ diff --git a/src/anim_mon_front_pics.c b/src/anim_mon_front_pics.c new file mode 100644 index 0000000000..b30889a35f --- /dev/null +++ b/src/anim_mon_front_pics.c @@ -0,0 +1,424 @@ +#include "global.h" + +const u8 gMonFrontPic_CircledQuestionMark[] = INCBIN_U8("graphics/pokemon/anim_front_pics/circled_question_mark_front_pic.4bpp.lz"); + +const u8 gMonFrontPic_Bulbasaur[] = INCBIN_U8("graphics/pokemon/anim_front_pics/bulbasaur_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ivysaur[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ivysaur_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Venusaur[] = INCBIN_U8("graphics/pokemon/anim_front_pics/venusaur_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Charmander[] = INCBIN_U8("graphics/pokemon/anim_front_pics/charmander_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Charmeleon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/charmeleon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Charizard[] = INCBIN_U8("graphics/pokemon/anim_front_pics/charizard_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Squirtle[] = INCBIN_U8("graphics/pokemon/anim_front_pics/squirtle_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Wartortle[] = INCBIN_U8("graphics/pokemon/anim_front_pics/wartortle_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Blastoise[] = INCBIN_U8("graphics/pokemon/anim_front_pics/blastoise_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Caterpie[] = INCBIN_U8("graphics/pokemon/anim_front_pics/caterpie_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Metapod[] = INCBIN_U8("graphics/pokemon/anim_front_pics/metapod_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Butterfree[] = INCBIN_U8("graphics/pokemon/anim_front_pics/butterfree_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Weedle[] = INCBIN_U8("graphics/pokemon/anim_front_pics/weedle_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Kakuna[] = INCBIN_U8("graphics/pokemon/anim_front_pics/kakuna_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Beedrill[] = INCBIN_U8("graphics/pokemon/anim_front_pics/beedrill_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Pidgey[] = INCBIN_U8("graphics/pokemon/anim_front_pics/pidgey_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Pidgeotto[] = INCBIN_U8("graphics/pokemon/anim_front_pics/pidgeotto_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Pidgeot[] = INCBIN_U8("graphics/pokemon/anim_front_pics/pidgeot_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Rattata[] = INCBIN_U8("graphics/pokemon/anim_front_pics/rattata_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Raticate[] = INCBIN_U8("graphics/pokemon/anim_front_pics/raticate_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Spearow[] = INCBIN_U8("graphics/pokemon/anim_front_pics/spearow_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Fearow[] = INCBIN_U8("graphics/pokemon/anim_front_pics/fearow_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ekans[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ekans_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Arbok[] = INCBIN_U8("graphics/pokemon/anim_front_pics/arbok_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Pikachu[] = INCBIN_U8("graphics/pokemon/anim_front_pics/pikachu_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Raichu[] = INCBIN_U8("graphics/pokemon/anim_front_pics/raichu_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Sandshrew[] = INCBIN_U8("graphics/pokemon/anim_front_pics/sandshrew_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Sandslash[] = INCBIN_U8("graphics/pokemon/anim_front_pics/sandslash_front_pic.4bpp.lz"); +const u8 gMonFrontPic_NidoranF[] = INCBIN_U8("graphics/pokemon/anim_front_pics/nidoran_f_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Nidorina[] = INCBIN_U8("graphics/pokemon/anim_front_pics/nidorina_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Nidoqueen[] = INCBIN_U8("graphics/pokemon/anim_front_pics/nidoqueen_front_pic.4bpp.lz"); +const u8 gMonFrontPic_NidoranM[] = INCBIN_U8("graphics/pokemon/anim_front_pics/nidoran_m_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Nidorino[] = INCBIN_U8("graphics/pokemon/anim_front_pics/nidorino_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Nidoking[] = INCBIN_U8("graphics/pokemon/anim_front_pics/nidoking_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Clefairy[] = INCBIN_U8("graphics/pokemon/anim_front_pics/clefairy_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Clefable[] = INCBIN_U8("graphics/pokemon/anim_front_pics/clefable_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Vulpix[] = INCBIN_U8("graphics/pokemon/anim_front_pics/vulpix_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ninetales[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ninetales_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Jigglypuff[] = INCBIN_U8("graphics/pokemon/anim_front_pics/jigglypuff_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Wigglytuff[] = INCBIN_U8("graphics/pokemon/anim_front_pics/wigglytuff_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Zubat[] = INCBIN_U8("graphics/pokemon/anim_front_pics/zubat_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Golbat[] = INCBIN_U8("graphics/pokemon/anim_front_pics/golbat_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Oddish[] = INCBIN_U8("graphics/pokemon/anim_front_pics/oddish_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Gloom[] = INCBIN_U8("graphics/pokemon/anim_front_pics/gloom_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Vileplume[] = INCBIN_U8("graphics/pokemon/anim_front_pics/vileplume_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Paras[] = INCBIN_U8("graphics/pokemon/anim_front_pics/paras_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Parasect[] = INCBIN_U8("graphics/pokemon/anim_front_pics/parasect_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Venonat[] = INCBIN_U8("graphics/pokemon/anim_front_pics/venonat_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Venomoth[] = INCBIN_U8("graphics/pokemon/anim_front_pics/venomoth_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Diglett[] = INCBIN_U8("graphics/pokemon/anim_front_pics/diglett_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Dugtrio[] = INCBIN_U8("graphics/pokemon/anim_front_pics/dugtrio_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Meowth[] = INCBIN_U8("graphics/pokemon/anim_front_pics/meowth_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Persian[] = INCBIN_U8("graphics/pokemon/anim_front_pics/persian_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Psyduck[] = INCBIN_U8("graphics/pokemon/anim_front_pics/psyduck_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Golduck[] = INCBIN_U8("graphics/pokemon/anim_front_pics/golduck_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Mankey[] = INCBIN_U8("graphics/pokemon/anim_front_pics/mankey_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Primeape[] = INCBIN_U8("graphics/pokemon/anim_front_pics/primeape_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Growlithe[] = INCBIN_U8("graphics/pokemon/anim_front_pics/growlithe_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Arcanine[] = INCBIN_U8("graphics/pokemon/anim_front_pics/arcanine_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Poliwag[] = INCBIN_U8("graphics/pokemon/anim_front_pics/poliwag_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Poliwhirl[] = INCBIN_U8("graphics/pokemon/anim_front_pics/poliwhirl_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Poliwrath[] = INCBIN_U8("graphics/pokemon/anim_front_pics/poliwrath_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Abra[] = INCBIN_U8("graphics/pokemon/anim_front_pics/abra_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Kadabra[] = INCBIN_U8("graphics/pokemon/anim_front_pics/kadabra_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Alakazam[] = INCBIN_U8("graphics/pokemon/anim_front_pics/alakazam_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Machop[] = INCBIN_U8("graphics/pokemon/anim_front_pics/machop_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Machoke[] = INCBIN_U8("graphics/pokemon/anim_front_pics/machoke_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Machamp[] = INCBIN_U8("graphics/pokemon/anim_front_pics/machamp_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Bellsprout[] = INCBIN_U8("graphics/pokemon/anim_front_pics/bellsprout_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Weepinbell[] = INCBIN_U8("graphics/pokemon/anim_front_pics/weepinbell_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Victreebel[] = INCBIN_U8("graphics/pokemon/anim_front_pics/victreebel_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Tentacool[] = INCBIN_U8("graphics/pokemon/anim_front_pics/tentacool_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Tentacruel[] = INCBIN_U8("graphics/pokemon/anim_front_pics/tentacruel_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Geodude[] = INCBIN_U8("graphics/pokemon/anim_front_pics/geodude_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Graveler[] = INCBIN_U8("graphics/pokemon/anim_front_pics/graveler_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Golem[] = INCBIN_U8("graphics/pokemon/anim_front_pics/golem_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ponyta[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ponyta_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Rapidash[] = INCBIN_U8("graphics/pokemon/anim_front_pics/rapidash_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Slowpoke[] = INCBIN_U8("graphics/pokemon/anim_front_pics/slowpoke_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Slowbro[] = INCBIN_U8("graphics/pokemon/anim_front_pics/slowbro_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Magnemite[] = INCBIN_U8("graphics/pokemon/anim_front_pics/magnemite_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Magneton[] = INCBIN_U8("graphics/pokemon/anim_front_pics/magneton_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Farfetchd[] = INCBIN_U8("graphics/pokemon/anim_front_pics/farfetch_d_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Doduo[] = INCBIN_U8("graphics/pokemon/anim_front_pics/doduo_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Dodrio[] = INCBIN_U8("graphics/pokemon/anim_front_pics/dodrio_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Seel[] = INCBIN_U8("graphics/pokemon/anim_front_pics/seel_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Dewgong[] = INCBIN_U8("graphics/pokemon/anim_front_pics/dewgong_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Grimer[] = INCBIN_U8("graphics/pokemon/anim_front_pics/grimer_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Muk[] = INCBIN_U8("graphics/pokemon/anim_front_pics/muk_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Shellder[] = INCBIN_U8("graphics/pokemon/anim_front_pics/shellder_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Cloyster[] = INCBIN_U8("graphics/pokemon/anim_front_pics/cloyster_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Gastly[] = INCBIN_U8("graphics/pokemon/anim_front_pics/gastly_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Haunter[] = INCBIN_U8("graphics/pokemon/anim_front_pics/haunter_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Gengar[] = INCBIN_U8("graphics/pokemon/anim_front_pics/gengar_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Onix[] = INCBIN_U8("graphics/pokemon/anim_front_pics/onix_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Drowzee[] = INCBIN_U8("graphics/pokemon/anim_front_pics/drowzee_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Hypno[] = INCBIN_U8("graphics/pokemon/anim_front_pics/hypno_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Krabby[] = INCBIN_U8("graphics/pokemon/anim_front_pics/krabby_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Kingler[] = INCBIN_U8("graphics/pokemon/anim_front_pics/kingler_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Voltorb[] = INCBIN_U8("graphics/pokemon/anim_front_pics/voltorb_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Electrode[] = INCBIN_U8("graphics/pokemon/anim_front_pics/electrode_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Exeggcute[] = INCBIN_U8("graphics/pokemon/anim_front_pics/exeggcute_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Exeggutor[] = INCBIN_U8("graphics/pokemon/anim_front_pics/exeggutor_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Cubone[] = INCBIN_U8("graphics/pokemon/anim_front_pics/cubone_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Marowak[] = INCBIN_U8("graphics/pokemon/anim_front_pics/marowak_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Hitmonlee[] = INCBIN_U8("graphics/pokemon/anim_front_pics/hitmonlee_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Hitmonchan[] = INCBIN_U8("graphics/pokemon/anim_front_pics/hitmonchan_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Lickitung[] = INCBIN_U8("graphics/pokemon/anim_front_pics/lickitung_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Koffing[] = INCBIN_U8("graphics/pokemon/anim_front_pics/koffing_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Weezing[] = INCBIN_U8("graphics/pokemon/anim_front_pics/weezing_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Rhyhorn[] = INCBIN_U8("graphics/pokemon/anim_front_pics/rhyhorn_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Rhydon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/rhydon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Chansey[] = INCBIN_U8("graphics/pokemon/anim_front_pics/chansey_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Tangela[] = INCBIN_U8("graphics/pokemon/anim_front_pics/tangela_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Kangaskhan[] = INCBIN_U8("graphics/pokemon/anim_front_pics/kangaskhan_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Horsea[] = INCBIN_U8("graphics/pokemon/anim_front_pics/horsea_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Seadra[] = INCBIN_U8("graphics/pokemon/anim_front_pics/seadra_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Goldeen[] = INCBIN_U8("graphics/pokemon/anim_front_pics/goldeen_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Seaking[] = INCBIN_U8("graphics/pokemon/anim_front_pics/seaking_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Staryu[] = INCBIN_U8("graphics/pokemon/anim_front_pics/staryu_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Starmie[] = INCBIN_U8("graphics/pokemon/anim_front_pics/starmie_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Mrmime[] = INCBIN_U8("graphics/pokemon/anim_front_pics/mr_mime_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Scyther[] = INCBIN_U8("graphics/pokemon/anim_front_pics/scyther_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Jynx[] = INCBIN_U8("graphics/pokemon/anim_front_pics/jynx_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Electabuzz[] = INCBIN_U8("graphics/pokemon/anim_front_pics/electabuzz_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Magmar[] = INCBIN_U8("graphics/pokemon/anim_front_pics/magmar_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Pinsir[] = INCBIN_U8("graphics/pokemon/anim_front_pics/pinsir_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Tauros[] = INCBIN_U8("graphics/pokemon/anim_front_pics/tauros_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Magikarp[] = INCBIN_U8("graphics/pokemon/anim_front_pics/magikarp_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Gyarados[] = INCBIN_U8("graphics/pokemon/anim_front_pics/gyarados_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Lapras[] = INCBIN_U8("graphics/pokemon/anim_front_pics/lapras_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ditto[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ditto_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Eevee[] = INCBIN_U8("graphics/pokemon/anim_front_pics/eevee_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Vaporeon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/vaporeon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Jolteon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/jolteon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Flareon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/flareon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Porygon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/porygon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Omanyte[] = INCBIN_U8("graphics/pokemon/anim_front_pics/omanyte_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Omastar[] = INCBIN_U8("graphics/pokemon/anim_front_pics/omastar_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Kabuto[] = INCBIN_U8("graphics/pokemon/anim_front_pics/kabuto_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Kabutops[] = INCBIN_U8("graphics/pokemon/anim_front_pics/kabutops_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Aerodactyl[] = INCBIN_U8("graphics/pokemon/anim_front_pics/aerodactyl_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Snorlax[] = INCBIN_U8("graphics/pokemon/anim_front_pics/snorlax_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Articuno[] = INCBIN_U8("graphics/pokemon/anim_front_pics/articuno_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Zapdos[] = INCBIN_U8("graphics/pokemon/anim_front_pics/zapdos_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Moltres[] = INCBIN_U8("graphics/pokemon/anim_front_pics/moltres_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Dratini[] = INCBIN_U8("graphics/pokemon/anim_front_pics/dratini_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Dragonair[] = INCBIN_U8("graphics/pokemon/anim_front_pics/dragonair_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Dragonite[] = INCBIN_U8("graphics/pokemon/anim_front_pics/dragonite_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Mewtwo[] = INCBIN_U8("graphics/pokemon/anim_front_pics/mewtwo_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Mew[] = INCBIN_U8("graphics/pokemon/anim_front_pics/mew_front_pic.4bpp.lz"); + +const u8 gMonFrontPic_Chikorita[] = INCBIN_U8("graphics/pokemon/anim_front_pics/chikorita_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Bayleef[] = INCBIN_U8("graphics/pokemon/anim_front_pics/bayleef_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Meganium[] = INCBIN_U8("graphics/pokemon/anim_front_pics/meganium_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Cyndaquil[] = INCBIN_U8("graphics/pokemon/anim_front_pics/cyndaquil_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Quilava[] = INCBIN_U8("graphics/pokemon/anim_front_pics/quilava_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Typhlosion[] = INCBIN_U8("graphics/pokemon/anim_front_pics/typhlosion_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Totodile[] = INCBIN_U8("graphics/pokemon/anim_front_pics/totodile_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Croconaw[] = INCBIN_U8("graphics/pokemon/anim_front_pics/croconaw_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Feraligatr[] = INCBIN_U8("graphics/pokemon/anim_front_pics/feraligatr_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Sentret[] = INCBIN_U8("graphics/pokemon/anim_front_pics/sentret_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Furret[] = INCBIN_U8("graphics/pokemon/anim_front_pics/furret_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Hoothoot[] = INCBIN_U8("graphics/pokemon/anim_front_pics/hoothoot_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Noctowl[] = INCBIN_U8("graphics/pokemon/anim_front_pics/noctowl_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ledyba[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ledyba_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ledian[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ledian_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Spinarak[] = INCBIN_U8("graphics/pokemon/anim_front_pics/spinarak_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ariados[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ariados_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Crobat[] = INCBIN_U8("graphics/pokemon/anim_front_pics/crobat_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Chinchou[] = INCBIN_U8("graphics/pokemon/anim_front_pics/chinchou_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Lanturn[] = INCBIN_U8("graphics/pokemon/anim_front_pics/lanturn_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Pichu[] = INCBIN_U8("graphics/pokemon/anim_front_pics/pichu_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Cleffa[] = INCBIN_U8("graphics/pokemon/anim_front_pics/cleffa_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Igglybuff[] = INCBIN_U8("graphics/pokemon/anim_front_pics/igglybuff_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Togepi[] = INCBIN_U8("graphics/pokemon/anim_front_pics/togepi_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Togetic[] = INCBIN_U8("graphics/pokemon/anim_front_pics/togetic_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Natu[] = INCBIN_U8("graphics/pokemon/anim_front_pics/natu_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Xatu[] = INCBIN_U8("graphics/pokemon/anim_front_pics/xatu_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Mareep[] = INCBIN_U8("graphics/pokemon/anim_front_pics/mareep_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Flaaffy[] = INCBIN_U8("graphics/pokemon/anim_front_pics/flaaffy_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ampharos[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ampharos_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Bellossom[] = INCBIN_U8("graphics/pokemon/anim_front_pics/bellossom_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Marill[] = INCBIN_U8("graphics/pokemon/anim_front_pics/marill_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Azumarill[] = INCBIN_U8("graphics/pokemon/anim_front_pics/azumarill_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Sudowoodo[] = INCBIN_U8("graphics/pokemon/anim_front_pics/sudowoodo_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Politoed[] = INCBIN_U8("graphics/pokemon/anim_front_pics/politoed_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Hoppip[] = INCBIN_U8("graphics/pokemon/anim_front_pics/hoppip_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Skiploom[] = INCBIN_U8("graphics/pokemon/anim_front_pics/skiploom_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Jumpluff[] = INCBIN_U8("graphics/pokemon/anim_front_pics/jumpluff_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Aipom[] = INCBIN_U8("graphics/pokemon/anim_front_pics/aipom_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Sunkern[] = INCBIN_U8("graphics/pokemon/anim_front_pics/sunkern_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Sunflora[] = INCBIN_U8("graphics/pokemon/anim_front_pics/sunflora_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Yanma[] = INCBIN_U8("graphics/pokemon/anim_front_pics/yanma_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Wooper[] = INCBIN_U8("graphics/pokemon/anim_front_pics/wooper_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Quagsire[] = INCBIN_U8("graphics/pokemon/anim_front_pics/quagsire_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Espeon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/espeon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Umbreon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/umbreon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Murkrow[] = INCBIN_U8("graphics/pokemon/anim_front_pics/murkrow_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Slowking[] = INCBIN_U8("graphics/pokemon/anim_front_pics/slowking_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Misdreavus[] = INCBIN_U8("graphics/pokemon/anim_front_pics/misdreavus_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownA[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_a_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Wobbuffet[] = INCBIN_U8("graphics/pokemon/anim_front_pics/wobbuffet_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Girafarig[] = INCBIN_U8("graphics/pokemon/anim_front_pics/girafarig_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Pineco[] = INCBIN_U8("graphics/pokemon/anim_front_pics/pineco_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Forretress[] = INCBIN_U8("graphics/pokemon/anim_front_pics/forretress_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Dunsparce[] = INCBIN_U8("graphics/pokemon/anim_front_pics/dunsparce_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Gligar[] = INCBIN_U8("graphics/pokemon/anim_front_pics/gligar_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Steelix[] = INCBIN_U8("graphics/pokemon/anim_front_pics/steelix_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Snubbull[] = INCBIN_U8("graphics/pokemon/anim_front_pics/snubbull_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Granbull[] = INCBIN_U8("graphics/pokemon/anim_front_pics/granbull_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Qwilfish[] = INCBIN_U8("graphics/pokemon/anim_front_pics/qwilfish_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Scizor[] = INCBIN_U8("graphics/pokemon/anim_front_pics/scizor_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Shuckle[] = INCBIN_U8("graphics/pokemon/anim_front_pics/shuckle_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Heracross[] = INCBIN_U8("graphics/pokemon/anim_front_pics/heracross_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Sneasel[] = INCBIN_U8("graphics/pokemon/anim_front_pics/sneasel_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Teddiursa[] = INCBIN_U8("graphics/pokemon/anim_front_pics/teddiursa_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ursaring[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ursaring_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Slugma[] = INCBIN_U8("graphics/pokemon/anim_front_pics/slugma_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Magcargo[] = INCBIN_U8("graphics/pokemon/anim_front_pics/magcargo_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Swinub[] = INCBIN_U8("graphics/pokemon/anim_front_pics/swinub_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Piloswine[] = INCBIN_U8("graphics/pokemon/anim_front_pics/piloswine_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Corsola[] = INCBIN_U8("graphics/pokemon/anim_front_pics/corsola_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Remoraid[] = INCBIN_U8("graphics/pokemon/anim_front_pics/remoraid_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Octillery[] = INCBIN_U8("graphics/pokemon/anim_front_pics/octillery_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Delibird[] = INCBIN_U8("graphics/pokemon/anim_front_pics/delibird_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Mantine[] = INCBIN_U8("graphics/pokemon/anim_front_pics/mantine_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Skarmory[] = INCBIN_U8("graphics/pokemon/anim_front_pics/skarmory_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Houndour[] = INCBIN_U8("graphics/pokemon/anim_front_pics/houndour_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Houndoom[] = INCBIN_U8("graphics/pokemon/anim_front_pics/houndoom_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Kingdra[] = INCBIN_U8("graphics/pokemon/anim_front_pics/kingdra_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Phanpy[] = INCBIN_U8("graphics/pokemon/anim_front_pics/phanpy_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Donphan[] = INCBIN_U8("graphics/pokemon/anim_front_pics/donphan_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Porygon2[] = INCBIN_U8("graphics/pokemon/anim_front_pics/porygon2_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Stantler[] = INCBIN_U8("graphics/pokemon/anim_front_pics/stantler_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Smeargle[] = INCBIN_U8("graphics/pokemon/anim_front_pics/smeargle_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Tyrogue[] = INCBIN_U8("graphics/pokemon/anim_front_pics/tyrogue_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Hitmontop[] = INCBIN_U8("graphics/pokemon/anim_front_pics/hitmontop_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Smoochum[] = INCBIN_U8("graphics/pokemon/anim_front_pics/smoochum_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Elekid[] = INCBIN_U8("graphics/pokemon/anim_front_pics/elekid_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Magby[] = INCBIN_U8("graphics/pokemon/anim_front_pics/magby_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Miltank[] = INCBIN_U8("graphics/pokemon/anim_front_pics/miltank_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Blissey[] = INCBIN_U8("graphics/pokemon/anim_front_pics/blissey_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Raikou[] = INCBIN_U8("graphics/pokemon/anim_front_pics/raikou_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Entei[] = INCBIN_U8("graphics/pokemon/anim_front_pics/entei_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Suicune[] = INCBIN_U8("graphics/pokemon/anim_front_pics/suicune_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Larvitar[] = INCBIN_U8("graphics/pokemon/anim_front_pics/larvitar_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Pupitar[] = INCBIN_U8("graphics/pokemon/anim_front_pics/pupitar_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Tyranitar[] = INCBIN_U8("graphics/pokemon/anim_front_pics/tyranitar_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Lugia[] = INCBIN_U8("graphics/pokemon/anim_front_pics/lugia_front_pic.4bpp.lz"); +const u8 gMonFrontPic_HoOh[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ho_oh_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Celebi[] = INCBIN_U8("graphics/pokemon/anim_front_pics/celebi_front_pic.4bpp.lz"); + +const u8 gMonFrontPic_DoubleQuestionMark[] = INCBIN_U8("graphics/pokemon/anim_front_pics/double_question_mark_front_pic.4bpp.lz"); + +const u8 gMonFrontPic_Treecko[] = INCBIN_U8("graphics/pokemon/anim_front_pics/treecko_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Grovyle[] = INCBIN_U8("graphics/pokemon/anim_front_pics/grovyle_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Sceptile[] = INCBIN_U8("graphics/pokemon/anim_front_pics/sceptile_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Torchic[] = INCBIN_U8("graphics/pokemon/anim_front_pics/torchic_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Combusken[] = INCBIN_U8("graphics/pokemon/anim_front_pics/combusken_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Blaziken[] = INCBIN_U8("graphics/pokemon/anim_front_pics/blaziken_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Mudkip[] = INCBIN_U8("graphics/pokemon/anim_front_pics/mudkip_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Marshtomp[] = INCBIN_U8("graphics/pokemon/anim_front_pics/marshtomp_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Swampert[] = INCBIN_U8("graphics/pokemon/anim_front_pics/swampert_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Poochyena[] = INCBIN_U8("graphics/pokemon/anim_front_pics/poochyena_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Mightyena[] = INCBIN_U8("graphics/pokemon/anim_front_pics/mightyena_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Zigzagoon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/zigzagoon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Linoone[] = INCBIN_U8("graphics/pokemon/anim_front_pics/linoone_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Wurmple[] = INCBIN_U8("graphics/pokemon/anim_front_pics/wurmple_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Silcoon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/silcoon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Beautifly[] = INCBIN_U8("graphics/pokemon/anim_front_pics/beautifly_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Cascoon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/cascoon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Dustox[] = INCBIN_U8("graphics/pokemon/anim_front_pics/dustox_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Lotad[] = INCBIN_U8("graphics/pokemon/anim_front_pics/lotad_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Lombre[] = INCBIN_U8("graphics/pokemon/anim_front_pics/lombre_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ludicolo[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ludicolo_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Seedot[] = INCBIN_U8("graphics/pokemon/anim_front_pics/seedot_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Nuzleaf[] = INCBIN_U8("graphics/pokemon/anim_front_pics/nuzleaf_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Shiftry[] = INCBIN_U8("graphics/pokemon/anim_front_pics/shiftry_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Nincada[] = INCBIN_U8("graphics/pokemon/anim_front_pics/nincada_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ninjask[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ninjask_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Shedinja[] = INCBIN_U8("graphics/pokemon/anim_front_pics/shedinja_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Taillow[] = INCBIN_U8("graphics/pokemon/anim_front_pics/taillow_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Swellow[] = INCBIN_U8("graphics/pokemon/anim_front_pics/swellow_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Shroomish[] = INCBIN_U8("graphics/pokemon/anim_front_pics/shroomish_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Breloom[] = INCBIN_U8("graphics/pokemon/anim_front_pics/breloom_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Spinda[] = INCBIN_U8("graphics/pokemon/anim_front_pics/spinda_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Wingull[] = INCBIN_U8("graphics/pokemon/anim_front_pics/wingull_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Pelipper[] = INCBIN_U8("graphics/pokemon/anim_front_pics/pelipper_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Surskit[] = INCBIN_U8("graphics/pokemon/anim_front_pics/surskit_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Masquerain[] = INCBIN_U8("graphics/pokemon/anim_front_pics/masquerain_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Wailmer[] = INCBIN_U8("graphics/pokemon/anim_front_pics/wailmer_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Wailord[] = INCBIN_U8("graphics/pokemon/anim_front_pics/wailord_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Skitty[] = INCBIN_U8("graphics/pokemon/anim_front_pics/skitty_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Delcatty[] = INCBIN_U8("graphics/pokemon/anim_front_pics/delcatty_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Kecleon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/kecleon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Baltoy[] = INCBIN_U8("graphics/pokemon/anim_front_pics/baltoy_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Claydol[] = INCBIN_U8("graphics/pokemon/anim_front_pics/claydol_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Nosepass[] = INCBIN_U8("graphics/pokemon/anim_front_pics/nosepass_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Torkoal[] = INCBIN_U8("graphics/pokemon/anim_front_pics/torkoal_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Sableye[] = INCBIN_U8("graphics/pokemon/anim_front_pics/sableye_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Barboach[] = INCBIN_U8("graphics/pokemon/anim_front_pics/barboach_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Whiscash[] = INCBIN_U8("graphics/pokemon/anim_front_pics/whiscash_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Luvdisc[] = INCBIN_U8("graphics/pokemon/anim_front_pics/luvdisc_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Corphish[] = INCBIN_U8("graphics/pokemon/anim_front_pics/corphish_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Crawdaunt[] = INCBIN_U8("graphics/pokemon/anim_front_pics/crawdaunt_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Feebas[] = INCBIN_U8("graphics/pokemon/anim_front_pics/feebas_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Milotic[] = INCBIN_U8("graphics/pokemon/anim_front_pics/milotic_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Carvanha[] = INCBIN_U8("graphics/pokemon/anim_front_pics/carvanha_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Sharpedo[] = INCBIN_U8("graphics/pokemon/anim_front_pics/sharpedo_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Trapinch[] = INCBIN_U8("graphics/pokemon/anim_front_pics/trapinch_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Vibrava[] = INCBIN_U8("graphics/pokemon/anim_front_pics/vibrava_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Flygon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/flygon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Makuhita[] = INCBIN_U8("graphics/pokemon/anim_front_pics/makuhita_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Hariyama[] = INCBIN_U8("graphics/pokemon/anim_front_pics/hariyama_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Electrike[] = INCBIN_U8("graphics/pokemon/anim_front_pics/electrike_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Manectric[] = INCBIN_U8("graphics/pokemon/anim_front_pics/manectric_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Numel[] = INCBIN_U8("graphics/pokemon/anim_front_pics/numel_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Camerupt[] = INCBIN_U8("graphics/pokemon/anim_front_pics/camerupt_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Spheal[] = INCBIN_U8("graphics/pokemon/anim_front_pics/spheal_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Sealeo[] = INCBIN_U8("graphics/pokemon/anim_front_pics/sealeo_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Walrein[] = INCBIN_U8("graphics/pokemon/anim_front_pics/walrein_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Cacnea[] = INCBIN_U8("graphics/pokemon/anim_front_pics/cacnea_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Cacturne[] = INCBIN_U8("graphics/pokemon/anim_front_pics/cacturne_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Snorunt[] = INCBIN_U8("graphics/pokemon/anim_front_pics/snorunt_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Glalie[] = INCBIN_U8("graphics/pokemon/anim_front_pics/glalie_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Lunatone[] = INCBIN_U8("graphics/pokemon/anim_front_pics/lunatone_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Solrock[] = INCBIN_U8("graphics/pokemon/anim_front_pics/solrock_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Azurill[] = INCBIN_U8("graphics/pokemon/anim_front_pics/azurill_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Spoink[] = INCBIN_U8("graphics/pokemon/anim_front_pics/spoink_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Grumpig[] = INCBIN_U8("graphics/pokemon/anim_front_pics/grumpig_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Plusle[] = INCBIN_U8("graphics/pokemon/anim_front_pics/plusle_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Minun[] = INCBIN_U8("graphics/pokemon/anim_front_pics/minun_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Mawile[] = INCBIN_U8("graphics/pokemon/anim_front_pics/mawile_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Meditite[] = INCBIN_U8("graphics/pokemon/anim_front_pics/meditite_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Medicham[] = INCBIN_U8("graphics/pokemon/anim_front_pics/medicham_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Swablu[] = INCBIN_U8("graphics/pokemon/anim_front_pics/swablu_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Altaria[] = INCBIN_U8("graphics/pokemon/anim_front_pics/altaria_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Wynaut[] = INCBIN_U8("graphics/pokemon/anim_front_pics/wynaut_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Duskull[] = INCBIN_U8("graphics/pokemon/anim_front_pics/duskull_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Dusclops[] = INCBIN_U8("graphics/pokemon/anim_front_pics/dusclops_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Roselia[] = INCBIN_U8("graphics/pokemon/anim_front_pics/roselia_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Slakoth[] = INCBIN_U8("graphics/pokemon/anim_front_pics/slakoth_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Vigoroth[] = INCBIN_U8("graphics/pokemon/anim_front_pics/vigoroth_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Slaking[] = INCBIN_U8("graphics/pokemon/anim_front_pics/slaking_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Gulpin[] = INCBIN_U8("graphics/pokemon/anim_front_pics/gulpin_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Swalot[] = INCBIN_U8("graphics/pokemon/anim_front_pics/swalot_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Tropius[] = INCBIN_U8("graphics/pokemon/anim_front_pics/tropius_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Whismur[] = INCBIN_U8("graphics/pokemon/anim_front_pics/whismur_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Loudred[] = INCBIN_U8("graphics/pokemon/anim_front_pics/loudred_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Exploud[] = INCBIN_U8("graphics/pokemon/anim_front_pics/exploud_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Clamperl[] = INCBIN_U8("graphics/pokemon/anim_front_pics/clamperl_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Huntail[] = INCBIN_U8("graphics/pokemon/anim_front_pics/huntail_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Gorebyss[] = INCBIN_U8("graphics/pokemon/anim_front_pics/gorebyss_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Absol[] = INCBIN_U8("graphics/pokemon/anim_front_pics/absol_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Shuppet[] = INCBIN_U8("graphics/pokemon/anim_front_pics/shuppet_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Banette[] = INCBIN_U8("graphics/pokemon/anim_front_pics/banette_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Seviper[] = INCBIN_U8("graphics/pokemon/anim_front_pics/seviper_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Zangoose[] = INCBIN_U8("graphics/pokemon/anim_front_pics/zangoose_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Relicanth[] = INCBIN_U8("graphics/pokemon/anim_front_pics/relicanth_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Aron[] = INCBIN_U8("graphics/pokemon/anim_front_pics/aron_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Lairon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/lairon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Aggron[] = INCBIN_U8("graphics/pokemon/anim_front_pics/aggron_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Castform[] = INCBIN_U8("graphics/pokemon/anim_front_pics/castform_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Volbeat[] = INCBIN_U8("graphics/pokemon/anim_front_pics/volbeat_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Illumise[] = INCBIN_U8("graphics/pokemon/anim_front_pics/illumise_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Lileep[] = INCBIN_U8("graphics/pokemon/anim_front_pics/lileep_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Cradily[] = INCBIN_U8("graphics/pokemon/anim_front_pics/cradily_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Anorith[] = INCBIN_U8("graphics/pokemon/anim_front_pics/anorith_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Armaldo[] = INCBIN_U8("graphics/pokemon/anim_front_pics/armaldo_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Ralts[] = INCBIN_U8("graphics/pokemon/anim_front_pics/ralts_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Kirlia[] = INCBIN_U8("graphics/pokemon/anim_front_pics/kirlia_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Gardevoir[] = INCBIN_U8("graphics/pokemon/anim_front_pics/gardevoir_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Bagon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/bagon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Shelgon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/shelgon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Salamence[] = INCBIN_U8("graphics/pokemon/anim_front_pics/salamence_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Beldum[] = INCBIN_U8("graphics/pokemon/anim_front_pics/beldum_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Metang[] = INCBIN_U8("graphics/pokemon/anim_front_pics/metang_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Metagross[] = INCBIN_U8("graphics/pokemon/anim_front_pics/metagross_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Regirock[] = INCBIN_U8("graphics/pokemon/anim_front_pics/regirock_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Regice[] = INCBIN_U8("graphics/pokemon/anim_front_pics/regice_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Registeel[] = INCBIN_U8("graphics/pokemon/anim_front_pics/registeel_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Kyogre[] = INCBIN_U8("graphics/pokemon/anim_front_pics/kyogre_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Groudon[] = INCBIN_U8("graphics/pokemon/anim_front_pics/groudon_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Rayquaza[] = INCBIN_U8("graphics/pokemon/anim_front_pics/rayquaza_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Latias[] = INCBIN_U8("graphics/pokemon/anim_front_pics/latias_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Latios[] = INCBIN_U8("graphics/pokemon/anim_front_pics/latios_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Jirachi[] = INCBIN_U8("graphics/pokemon/anim_front_pics/jirachi_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Deoxys[] = INCBIN_U8("graphics/pokemon/anim_front_pics/deoxys_front_pic.4bpp.lz"); +const u8 gMonFrontPic_Chimecho[] = INCBIN_U8("graphics/pokemon/anim_front_pics/chimecho_front_pic.4bpp.lz"); + +const u8 gMonFrontPic_Egg[] = INCBIN_U8("graphics/pokemon/anim_front_pics/egg_front_pic.4bpp.lz"); + +const u8 gMonFrontPic_UnownB[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_b_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownC[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_c_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownD[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_d_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownE[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_e_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownF[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_f_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownG[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_g_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownH[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_h_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownI[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_i_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownJ[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_j_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownK[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_k_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownL[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_l_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownM[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_m_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownN[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_n_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownO[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_o_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownP[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_p_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownQ[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_q_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownR[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_r_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownS[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_s_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownT[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_t_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownU[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_u_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownV[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_v_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownW[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_w_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownX[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_x_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownY[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_y_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownZ[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_z_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_exclamation_mark_front_pic.4bpp.lz"); +const u8 gMonFrontPic_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/anim_front_pics/unown_question_mark_front_pic.4bpp.lz"); diff --git a/src/graphics/battle_terrain.h b/src/data/graphics/battle_terrain.h similarity index 100% rename from src/graphics/battle_terrain.h rename to src/data/graphics/battle_terrain.h diff --git a/src/graphics/berries.h b/src/data/graphics/berries.h similarity index 100% rename from src/graphics/berries.h rename to src/data/graphics/berries.h diff --git a/src/graphics/berry_fix.h b/src/data/graphics/berry_fix.h similarity index 100% rename from src/graphics/berry_fix.h rename to src/data/graphics/berry_fix.h diff --git a/src/graphics/decorations.h b/src/data/graphics/decorations.h similarity index 100% rename from src/graphics/decorations.h rename to src/data/graphics/decorations.h diff --git a/src/graphics/interface_pokeballs.h b/src/data/graphics/interface_pokeballs.h similarity index 100% rename from src/graphics/interface_pokeballs.h rename to src/data/graphics/interface_pokeballs.h diff --git a/src/graphics/intro_scene.h b/src/data/graphics/intro_scene.h similarity index 100% rename from src/graphics/intro_scene.h rename to src/data/graphics/intro_scene.h diff --git a/src/graphics/items.h b/src/data/graphics/items.h similarity index 100% rename from src/graphics/items.h rename to src/data/graphics/items.h diff --git a/src/graphics/mail.h b/src/data/graphics/mail.h similarity index 100% rename from src/graphics/mail.h rename to src/data/graphics/mail.h diff --git a/src/graphics/pokemon.h b/src/data/graphics/pokemon.h similarity index 100% rename from src/graphics/pokemon.h rename to src/data/graphics/pokemon.h diff --git a/src/data/graphics/potential incbin arrays b/src/data/graphics/potential incbin arrays new file mode 100644 index 0000000000..f76354fb69 --- /dev/null +++ b/src/data/graphics/potential incbin arrays @@ -0,0 +1,9 @@ +The following contained multiple .incbin's in graphics.s, however I couldn't get them to work as arrays or successive INCBIN's so I've given them seperate labels +const u8 gHealthboxElementsGfxTable[] +const u8 gUnknown_08C1249C[] +const u8 gMonIcon_Deoxys[] +const u16 gTilesetPalettes_General[] +const u16 gWallpaperPalettes_Horizontal[] +const u16 gWallpaperPalettes_Ribbon[] +const u16 gMonIconPalettes[] +const u16 gTitleScreenBgPalettes[] \ No newline at end of file diff --git a/src/graphics/rayquaza_scene.h b/src/data/graphics/rayquaza_scene.h similarity index 100% rename from src/graphics/rayquaza_scene.h rename to src/data/graphics/rayquaza_scene.h diff --git a/src/graphics/slot_machine.h b/src/data/graphics/slot_machine.h similarity index 100% rename from src/graphics/slot_machine.h rename to src/data/graphics/slot_machine.h diff --git a/src/graphics/trainers.h b/src/data/graphics/trainers.h similarity index 100% rename from src/graphics/trainers.h rename to src/data/graphics/trainers.h diff --git a/src/graphics.c b/src/graphics.c index 034b590c5a..38a79ce3c4 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -16,7 +16,7 @@ const u8 gUnusedPal_OldCharmap[] = INCBIN_U8("graphics/unused/old_charmap.gbapal const u8 gSmokescreenImpactTiles[] = INCBIN_U8("graphics/battle_anims/sprites/smokescreen_impact.4bpp.lz"); const u8 gSmokescreenImpactPalette[] = INCBIN_U8("graphics/battle_anims/sprites/smokescreen_impact.gbapal.lz"); -#include "graphics/interface_pokeballs.h" +#include "data/graphics/interface_pokeballs.h" const u8 gBlankGfxCompressed[] = INCBIN_U8("graphics/interface/blank.4bpp.lz"); @@ -950,8 +950,8 @@ const u8 gBattleAnimSpritePalette_257[] = INCBIN_U8("graphics/battle_anims/sprit const u8 gUnknownPal_C2F9E0[] = INCBIN_U8("graphics/unknown/unknown_C2F9E0.gbapal.lz"); -#include "graphics/pokemon.h" -#include "graphics/trainers.h" +#include "data/graphics/pokemon.h" +#include "data/graphics/trainers.h" const u8 gMonIcon_QuestionMark[] = INCBIN_U8("graphics/pokemon/icons/question_mark_icon.4bpp"); const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/footprints/question_mark_footprint.1bpp"); @@ -962,7 +962,7 @@ const u8 gUnknown_08D77AE4[] = INCBIN_U8("graphics/battle_transitions/vs_frame.g const u8 gUnknown_08D77B0C[] = INCBIN_U8("graphics/battle_transitions/vs.4bpp.lz"); -#include "graphics/battle_terrain.h" +#include "data/graphics/battle_terrain.h" const u8 gUnknown_08D82F10[] = INCBIN_U8("graphics/battle_frontier/tourney_bg.4bpp.lz"); const u8 gUnknown_08D834FC[] = INCBIN_U8("graphics/battle_frontier/tourney_line.4bpp.lz"); // the red glow mask for the tourney advancement lines @@ -1003,7 +1003,7 @@ const u16 gUnknown_08D856C8[] = INCBIN_U16("graphics/battle_frontier/pyramid_lig const u16 gUnknown_08D857A8[] = INCBIN_U16("graphics/battle_frontier/battle_tilemap1.bin.lz"); const u16 gUnknown_08D85A1C[] = INCBIN_U16("graphics/battle_frontier/battle_tilemap2.bin.lz"); -#include "graphics/intro_scene.h" +#include "data/graphics/intro_scene.h" const u8 gBattleAnimSpriteSheet_261[] = INCBIN_U8("graphics/battle_anims/sprites/261.4bpp.lz"); @@ -1218,10 +1218,10 @@ const u8 gPokeblockGold_Pal[] = INCBIN_U8("graphics/pokeblock/gold.gbapal.lz"); const u16 gUnknown_08D9BA44[] = INCBIN_U16("graphics/interface/pokeblock_feeding_bg_map.bin.lz"); -#include "graphics/berries.h" -#include "graphics/rayquaza_scene.h" -#include "graphics/items.h" -#include "graphics/decorations.h" +#include "data/graphics/berries.h" +#include "data/graphics/rayquaza_scene.h" +#include "data/graphics/items.h" +#include "data/graphics/decorations.h" const u8 gBattleAnimSpritePalette_282[] = INCBIN_U8("graphics/battle_anims/sprites/282.gbapal.lz"); const u8 gBattleAnimSpriteSheet_282[] = INCBIN_U8("graphics/battle_anims/sprites/282.4bpp.lz"); @@ -1248,7 +1248,7 @@ const u8 gRouletteCreditTiles[] = INCBIN_U8("graphics/roulette/credit.4bpp.lz"); const u8 gRouletteNumbersTiles[] = INCBIN_U8("graphics/roulette/numbers.4bpp.lz"); const u8 gRouletteMultiplierTiles[] = INCBIN_U8("graphics/roulette/multiplier.4bpp.lz"); -#include "graphics/mail.h" +#include "data/graphics/mail.h" const u16 gFrontierFactorySelectMenu_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_menu1.gbapal"); const u16 gFrontierFactorySelectMenu_Pal2[] = INCBIN_U16("graphics/battle_frontier/factory_menu2.gbapal"); @@ -1424,7 +1424,7 @@ const u8 gUsePokeblockGraph_Gfx[] = INCBIN_U8("graphics/pokeblock/use_screen/gra const u16 gUsePokeblockGraph_Tilemap[] = INCBIN_U16("graphics/pokeblock/use_screen/graph.bin.lz"); const u16 gUsePokeblockNatureWin_Pal[] = INCBIN_U16("graphics/pokeblock/use_screen/nature.gbapal"); -#include "graphics/slot_machine.h" +#include "data/graphics/slot_machine.h" const u16 gUnknown_08DD19F8[] = INCBIN_U16("graphics/unknown/unknown_DD19F8.bin"); @@ -1516,7 +1516,7 @@ const u8 gTradeGba_Gfx[] = INCBIN_U8("graphics/link/gba.4bpp"); // 8DD8760 asm(".space 0x20"); //blank palette?? -#include "graphics/berry_fix.h" +#include "data/graphics/berry_fix.h" // more trade stuff? @@ -1603,12 +1603,11 @@ const u16 gUnknown_08DE3398[] = INCBIN_U16("graphics/berry_crusher/tiles.gbapal" const u8 gUnknown_08DE34B8[] = INCBIN_U8("graphics/berry_crusher/tiles.4bpp.lz"); const u16 gUnknown_08DE3FD4[] = INCBIN_U16("graphics/berry_crusher/tiles.bin.lz"); -/* random garbage at the end. -asm(".space 0x54BAC\ - .byte 0x0D, 0x00, 0x58, 0x02\ - .space 0x1145\ - .byte 0x02\ - .space 0x3242\ - .byte 0x40\ +// random garbage at the end. +asm(".space 0x54BAC \n\ + .byte 0x0D, 0x00, 0x58, 0x02 \n\ + .space 0x1145 \n\ + .byte 0x02 \n\ + .space 0x3242 \n\ + .byte 0x40 \n\ .space 0x13"); -*/ \ No newline at end of file From 0cd250a83e2706ec049314203601993919138f56 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Thu, 6 Sep 2018 00:00:29 +0100 Subject: [PATCH 172/174] Deleted accidently uploaded file --- src/data/graphics/potential incbin arrays | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 src/data/graphics/potential incbin arrays diff --git a/src/data/graphics/potential incbin arrays b/src/data/graphics/potential incbin arrays deleted file mode 100644 index f76354fb69..0000000000 --- a/src/data/graphics/potential incbin arrays +++ /dev/null @@ -1,9 +0,0 @@ -The following contained multiple .incbin's in graphics.s, however I couldn't get them to work as arrays or successive INCBIN's so I've given them seperate labels -const u8 gHealthboxElementsGfxTable[] -const u8 gUnknown_08C1249C[] -const u8 gMonIcon_Deoxys[] -const u16 gTilesetPalettes_General[] -const u16 gWallpaperPalettes_Horizontal[] -const u16 gWallpaperPalettes_Ribbon[] -const u16 gMonIconPalettes[] -const u16 gTitleScreenBgPalettes[] \ No newline at end of file From e0a83e3d72bb8157a412318734ac026850ca12d3 Mon Sep 17 00:00:00 2001 From: Diegoisawesome <diego@domoreaweso.me> Date: Thu, 6 Sep 2018 03:45:50 -0500 Subject: [PATCH 173/174] Update scaninc and preproc with multi-file incbins --- tools/preproc/c_file.cpp | 104 +++++++++++++++++++++------------------ tools/scaninc/c_file.cpp | 17 +++++-- 2 files changed, 69 insertions(+), 52 deletions(-) diff --git a/tools/preproc/c_file.cpp b/tools/preproc/c_file.cpp index 2f4bfea7cb..229f568fab 100644 --- a/tools/preproc/c_file.cpp +++ b/tools/preproc/c_file.cpp @@ -325,67 +325,75 @@ void CFile::TryConvertIncbin() m_pos++; - SkipWhitespace(); + std::printf("{"); - if (m_buffer[m_pos] != '"') - RaiseError("expected double quote"); - - m_pos++; - - int startPos = m_pos; - - while (m_buffer[m_pos] != '"') + while (true) { - if (m_buffer[m_pos] == 0) + SkipWhitespace(); + + if (m_buffer[m_pos] != '"') + RaiseError("expected double quote"); + + m_pos++; + + int startPos = m_pos; + + while (m_buffer[m_pos] != '"') { - if (m_pos >= m_size) - RaiseError("unexpected EOF in path string"); - else - RaiseError("unexpected null character in path string"); + if (m_buffer[m_pos] == 0) + { + if (m_pos >= m_size) + RaiseError("unexpected EOF in path string"); + else + RaiseError("unexpected null character in path string"); + } + + if (m_buffer[m_pos] == '\r' || m_buffer[m_pos] == '\n') + RaiseError("unexpected end of line character in path string"); + + if (m_buffer[m_pos] == '\\') + RaiseError("unexpected escape in path string"); + + m_pos++; } - if (m_buffer[m_pos] == '\r' || m_buffer[m_pos] == '\n') - RaiseError("unexpected end of line character in path string"); + std::string path(&m_buffer[startPos], m_pos - startPos); + + m_pos++; + + int fileSize; + std::unique_ptr<unsigned char[]> buffer = ReadWholeFile(path, fileSize); + + if ((fileSize % size) != 0) + RaiseError("Size %d doesn't evenly divide file size %d.\n", size, fileSize); + + int count = fileSize / size; + int offset = 0; + + for (int i = 0; i < count; i++) + { + int data = ExtractData(buffer, offset, size); + offset += size; + + if (isSigned) + std::printf("%d,", data); + else + std::printf("%uu,", data); + } + + SkipWhitespace(); + + if (m_buffer[m_pos] != ',') + break; - if (m_buffer[m_pos] == '\\') - RaiseError("unexpected escape in path string"); - m_pos++; } - - std::string path(&m_buffer[startPos], m_pos - startPos); - - m_pos++; - - SkipWhitespace(); - + if (m_buffer[m_pos] != ')') RaiseError("expected ')'"); m_pos++; - std::printf("{"); - - int fileSize; - std::unique_ptr<unsigned char[]> buffer = ReadWholeFile(path, fileSize); - - if ((fileSize % size) != 0) - RaiseError("Size %d doesn't evenly divide file size %d.\n", size, fileSize); - - int count = fileSize / size; - int offset = 0; - - for (int i = 0; i < count; i++) - { - int data = ExtractData(buffer, offset, size); - offset += size; - - if (isSigned) - std::printf("%d,", data); - else - std::printf("%uu,", data); - } - std::printf("}"); } diff --git a/tools/scaninc/c_file.cpp b/tools/scaninc/c_file.cpp index f7acc833fa..d470f959d4 100644 --- a/tools/scaninc/c_file.cpp +++ b/tools/scaninc/c_file.cpp @@ -244,18 +244,27 @@ void CFile::CheckIncbin() m_pos++; - SkipWhitespace(); + while (true) + { + SkipWhitespace(); - std::string path = ReadPath(); + std::string path = ReadPath(); - SkipWhitespace(); + SkipWhitespace(); + + m_incbins.emplace(path); + + if (m_buffer[m_pos] != ',') + break; + + m_pos++; + } if (m_buffer[m_pos] != ')') FATAL_INPUT_ERROR("expected ')'"); m_pos++; - m_incbins.emplace(path); } std::string CFile::ReadPath() From 78cdd97c8b958fa60ab0d70201360835aac985c6 Mon Sep 17 00:00:00 2001 From: Marcus Huderle <huderlem@gmail.com> Date: Thu, 6 Sep 2018 11:44:50 -0500 Subject: [PATCH 174/174] Add ability to specify metatile dimensions to gbagfx --- tools/gbagfx/Makefile | 7 +- tools/gbagfx/gfx.c | 175 ++++++++++++++++++++++------------------- tools/gbagfx/gfx.h | 4 +- tools/gbagfx/main.c | 105 ++++++++++++++++++++----- tools/gbagfx/options.h | 24 ++++++ 5 files changed, 210 insertions(+), 105 deletions(-) create mode 100755 tools/gbagfx/options.h diff --git a/tools/gbagfx/Makefile b/tools/gbagfx/Makefile index 6f11b1b3f5..c10b258de6 100644 --- a/tools/gbagfx/Makefile +++ b/tools/gbagfx/Makefile @@ -1,12 +1,15 @@ CC = gcc -CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK +CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s -DPNG_SKIP_SETJMP_CHECK LIBS = -lpng -lz SRCS = main.c convert_png.c gfx.c jasc_pal.c lz.c rl.c util.c font.c -.PHONY: clean +.PHONY: all clean + +all: gbagfx + @: gbagfx: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS) diff --git a/tools/gbagfx/gfx.c b/tools/gbagfx/gfx.c index c0f7f492c3..f927deed9b 100644 --- a/tools/gbagfx/gfx.c +++ b/tools/gbagfx/gfx.c @@ -18,16 +18,35 @@ #define DOWNCONVERT_BIT_DEPTH(x) ((x) / 8) -static void ConvertFromTiles1Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors) +static void AdvanceMetatilePosition(int *subTileX, int *subTileY, int *metatileX, int *metatileY, int metatilesWide, int metatileWidth, int metatileHeight) { - int tilesX = 0; - int tilesY = 0; - int pitch = tilesWidth; + (*subTileX)++; + if (*subTileX == metatileWidth) { + *subTileX = 0; + (*subTileY)++; + if (*subTileY == metatileHeight) { + *subTileY = 0; + (*metatileX)++; + if (*metatileX == metatilesWide) { + *metatileX = 0; + (*metatileY)++; + } + } + } +} + +static void ConvertFromTiles1Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = metatilesWide * metatileWidth; for (int i = 0; i < numTiles; i++) { for (int j = 0; j < 8; j++) { - int destY = tilesY * 8 + j; - int destX = tilesX; + int destY = (metatileY * metatileHeight + subTileY) * 8 + j; + int destX = metatileX * metatileWidth + subTileX; unsigned char srcPixelOctet = *src++; unsigned char *destPixelOctet = &dest[destY * pitch + destX]; @@ -38,27 +57,24 @@ static void ConvertFromTiles1Bpp(unsigned char *src, unsigned char *dest, int nu } } - tilesX++; - - if (tilesX == tilesWidth) { - tilesX = 0; - tilesY++; - } + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); } } -static void ConvertFromTiles4Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors) +static void ConvertFromTiles4Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) { - int tilesX = 0; - int tilesY = 0; - int pitch = tilesWidth * 4; + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = (metatilesWide * metatileWidth) * 4; for (int i = 0; i < numTiles; i++) { for (int j = 0; j < 8; j++) { - int destY = tilesY * 8 + j; + int destY = (metatileY * metatileHeight + subTileY) * 8 + j; for (int k = 0; k < 4; k++) { - int destX = tilesX * 4 + k; + int destX = (metatileX * metatileWidth + subTileX) * 4 + k; unsigned char srcPixelPair = *src++; unsigned char leftPixel = srcPixelPair & 0xF; unsigned char rightPixel = srcPixelPair >> 4; @@ -72,27 +88,24 @@ static void ConvertFromTiles4Bpp(unsigned char *src, unsigned char *dest, int nu } } - tilesX++; - - if (tilesX == tilesWidth) { - tilesX = 0; - tilesY++; - } + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); } } -static void ConvertFromTiles8Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors) +static void ConvertFromTiles8Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) { - int tilesX = 0; - int tilesY = 0; - int pitch = tilesWidth * 8; + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = (metatilesWide * metatileWidth) * 8; for (int i = 0; i < numTiles; i++) { for (int j = 0; j < 8; j++) { - int destY = tilesY * 8 + j; + int destY = (metatileY * metatileHeight + subTileY) * 8 + j; for (int k = 0; k < 8; k++) { - int destX = tilesX * 8 + k; + int destX = (metatileX * metatileWidth + subTileX) * 8 + k; unsigned char srcPixel = *src++; if (invertColors) @@ -102,25 +115,22 @@ static void ConvertFromTiles8Bpp(unsigned char *src, unsigned char *dest, int nu } } - tilesX++; - - if (tilesX == tilesWidth) { - tilesX = 0; - tilesY++; - } + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); } } -static void ConvertToTiles1Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors) +static void ConvertToTiles1Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) { - int tilesX = 0; - int tilesY = 0; - int pitch = tilesWidth; + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = metatilesWide * metatileWidth; for (int i = 0; i < numTiles; i++) { for (int j = 0; j < 8; j++) { - int srcY = tilesY * 8 + j; - int srcX = tilesX; + int srcY = (metatileY * metatileHeight + subTileY) * 8 + j; + int srcX = metatileX * metatileWidth + subTileX; unsigned char srcPixelOctet = src[srcY * pitch + srcX]; unsigned char *destPixelOctet = dest++; @@ -131,27 +141,24 @@ static void ConvertToTiles1Bpp(unsigned char *src, unsigned char *dest, int numT } } - tilesX++; - - if (tilesX == tilesWidth) { - tilesX = 0; - tilesY++; - } + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); } } -static void ConvertToTiles4Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors) +static void ConvertToTiles4Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) { - int tilesX = 0; - int tilesY = 0; - int pitch = tilesWidth * 4; + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = (metatilesWide * metatileWidth) * 4; for (int i = 0; i < numTiles; i++) { for (int j = 0; j < 8; j++) { - int srcY = tilesY * 8 + j; + int srcY = (metatileY * metatileHeight + subTileY) * 8 + j; for (int k = 0; k < 4; k++) { - int srcX = tilesX * 4 + k; + int srcX = (metatileX * metatileWidth + subTileX) * 4 + k; unsigned char srcPixelPair = src[srcY * pitch + srcX]; unsigned char leftPixel = srcPixelPair >> 4; unsigned char rightPixel = srcPixelPair & 0xF; @@ -165,27 +172,24 @@ static void ConvertToTiles4Bpp(unsigned char *src, unsigned char *dest, int numT } } - tilesX++; - - if (tilesX == tilesWidth) { - tilesX = 0; - tilesY++; - } + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); } } -static void ConvertToTiles8Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors) +static void ConvertToTiles8Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) { - int tilesX = 0; - int tilesY = 0; - int pitch = tilesWidth * 8; + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = (metatilesWide * metatileWidth) * 8; for (int i = 0; i < numTiles; i++) { for (int j = 0; j < 8; j++) { - int srcY = tilesY * 8 + j; + int srcY = (metatileY * metatileHeight + subTileY) * 8 + j; for (int k = 0; k < 8; k++) { - int srcX = tilesX * 8 + k; + int srcX = (metatileX * metatileWidth + subTileX) * 8 + k; unsigned char srcPixel = src[srcY * pitch + srcX]; if (invertColors) @@ -195,16 +199,11 @@ static void ConvertToTiles8Bpp(unsigned char *src, unsigned char *dest, int numT } } - tilesX++; - - if (tilesX == tilesWidth) { - tilesX = 0; - tilesY++; - } + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); } } -void ReadImage(char *path, int tilesWidth, int bitDepth, struct Image *image, bool invertColors) +void ReadImage(char *path, int tilesWidth, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors) { int tileSize = bitDepth * 8; @@ -215,6 +214,12 @@ void ReadImage(char *path, int tilesWidth, int bitDepth, struct Image *image, bo int tilesHeight = (numTiles + tilesWidth - 1) / tilesWidth; + if (tilesWidth % metatileWidth != 0) + FATAL_ERROR("The width in tiles (%d) isn't a multiple of the specified metatile width (%d)", tilesWidth, metatileWidth); + + if (tilesHeight % metatileHeight != 0) + FATAL_ERROR("The height in tiles (%d) isn't a multiple of the specified metatile height (%d)", tilesHeight, metatileHeight); + image->width = tilesWidth * 8; image->height = tilesHeight * 8; image->bitDepth = bitDepth; @@ -223,22 +228,24 @@ void ReadImage(char *path, int tilesWidth, int bitDepth, struct Image *image, bo if (image->pixels == NULL) FATAL_ERROR("Failed to allocate memory for pixels.\n"); + int metatilesWide = tilesWidth / metatileWidth; + switch (bitDepth) { case 1: - ConvertFromTiles1Bpp(buffer, image->pixels, numTiles, tilesWidth, invertColors); + ConvertFromTiles1Bpp(buffer, image->pixels, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); break; case 4: - ConvertFromTiles4Bpp(buffer, image->pixels, numTiles, tilesWidth, invertColors); + ConvertFromTiles4Bpp(buffer, image->pixels, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); break; case 8: - ConvertFromTiles8Bpp(buffer, image->pixels, numTiles, tilesWidth, invertColors); + ConvertFromTiles8Bpp(buffer, image->pixels, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); break; } free(buffer); } -void WriteImage(char *path, int numTiles, int bitDepth, struct Image *image, bool invertColors) +void WriteImage(char *path, int numTiles, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors) { int tileSize = bitDepth * 8; @@ -251,6 +258,12 @@ void WriteImage(char *path, int numTiles, int bitDepth, struct Image *image, boo int tilesWidth = image->width / 8; int tilesHeight = image->height / 8; + if (tilesWidth % metatileWidth != 0) + FATAL_ERROR("The width in tiles (%d) isn't a multiple of the specified metatile width (%d)", tilesWidth, metatileWidth); + + if (tilesHeight % metatileHeight != 0) + FATAL_ERROR("The height in tiles (%d) isn't a multiple of the specified metatile height (%d)", tilesHeight, metatileHeight); + int maxNumTiles = tilesWidth * tilesHeight; if (numTiles == 0) @@ -264,15 +277,17 @@ void WriteImage(char *path, int numTiles, int bitDepth, struct Image *image, boo if (buffer == NULL) FATAL_ERROR("Failed to allocate memory for pixels.\n"); + int metatilesWide = tilesWidth / metatileWidth; + switch (bitDepth) { case 1: - ConvertToTiles1Bpp(image->pixels, buffer, numTiles, tilesWidth, invertColors); + ConvertToTiles1Bpp(image->pixels, buffer, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); break; case 4: - ConvertToTiles4Bpp(image->pixels, buffer, numTiles, tilesWidth, invertColors); + ConvertToTiles4Bpp(image->pixels, buffer, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); break; case 8: - ConvertToTiles8Bpp(image->pixels, buffer, numTiles, tilesWidth, invertColors); + ConvertToTiles8Bpp(image->pixels, buffer, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); break; } diff --git a/tools/gbagfx/gfx.h b/tools/gbagfx/gfx.h index ecd436652e..5355ced856 100644 --- a/tools/gbagfx/gfx.h +++ b/tools/gbagfx/gfx.h @@ -27,8 +27,8 @@ struct Image { bool hasTransparency; }; -void ReadImage(char *path, int tilesWidth, int bitDepth, struct Image *image, bool invertColors); -void WriteImage(char *path, int numTiles, int bitDepth, struct Image *image, bool invertColors); +void ReadImage(char *path, int tilesWidth, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors); +void WriteImage(char *path, int numTiles, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors); void FreeImage(struct Image *image); void ReadGbaPalette(char *path, struct Palette *palette); void WriteGbaPalette(char *path, struct Palette *palette); diff --git a/tools/gbagfx/main.c b/tools/gbagfx/main.c index 97db60e843..86b0afa538 100644 --- a/tools/gbagfx/main.c +++ b/tools/gbagfx/main.c @@ -5,6 +5,7 @@ #include <stdbool.h> #include "global.h" #include "util.h" +#include "options.h" #include "gfx.h" #include "convert_png.h" #include "jasc_pal.h" @@ -19,13 +20,13 @@ struct CommandHandler void(*function)(char *inputPath, char *outputPath, int argc, char **argv); }; -void ConvertGbaToPng(char *inputPath, char *outputPath, int width, int bitDepth, char *paletteFilePath, bool hasTransparency) +void ConvertGbaToPng(char *inputPath, char *outputPath, struct GbaToPngOptions *options) { struct Image image; - if (paletteFilePath != NULL) + if (options->paletteFilePath != NULL) { - ReadGbaPalette(paletteFilePath, &image.palette); + ReadGbaPalette(options->paletteFilePath, &image.palette); image.hasPalette = true; } else @@ -33,24 +34,24 @@ void ConvertGbaToPng(char *inputPath, char *outputPath, int width, int bitDepth, image.hasPalette = false; } - ReadImage(inputPath, width, bitDepth, &image, !image.hasPalette); + ReadImage(inputPath, options->width, options->bitDepth, options->metatileWidth, options->metatileHeight, &image, !image.hasPalette); - image.hasTransparency = hasTransparency; + image.hasTransparency = options->hasTransparency; WritePng(outputPath, &image); FreeImage(&image); } -void ConvertPngToGba(char *inputPath, char *outputPath, int numTiles, int bitDepth) +void ConvertPngToGba(char *inputPath, char *outputPath, struct PngToGbaOptions *options) { struct Image image; - image.bitDepth = bitDepth; + image.bitDepth = options->bitDepth; ReadPng(inputPath, &image); - WriteImage(outputPath, numTiles, bitDepth, &image, !image.hasPalette); + WriteImage(outputPath, options->numTiles, options->bitDepth, options->metatileWidth, options->metatileHeight, &image, !image.hasPalette); FreeImage(&image); } @@ -58,10 +59,13 @@ void ConvertPngToGba(char *inputPath, char *outputPath, int numTiles, int bitDep void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **argv) { char *inputFileExtension = GetFileExtension(inputPath); - int bitDepth = inputFileExtension[0] - '0'; - char *paletteFilePath = NULL; - bool hasTransparency = false; - int width = 1; + struct GbaToPngOptions options; + options.paletteFilePath = NULL; + options.bitDepth = inputFileExtension[0] - '0'; + options.hasTransparency = false; + options.width = 1; + options.metatileWidth = 1; + options.metatileHeight = 1; for (int i = 3; i < argc; i++) { @@ -74,11 +78,11 @@ void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **a i++; - paletteFilePath = argv[i]; + options.paletteFilePath = argv[i]; } else if (strcmp(option, "-object") == 0) { - hasTransparency = true; + options.hasTransparency = true; } else if (strcmp(option, "-width") == 0) { @@ -87,26 +91,59 @@ void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **a i++; - if (!ParseNumber(argv[i], NULL, 10, &width)) + if (!ParseNumber(argv[i], NULL, 10, &options.width)) FATAL_ERROR("Failed to parse width.\n"); - if (width < 1) + if (options.width < 1) FATAL_ERROR("Width must be positive.\n"); } + else if (strcmp(option, "-mwidth") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No metatile width value following \"-mwidth\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.metatileWidth)) + FATAL_ERROR("Failed to parse metatile width.\n"); + + if (options.metatileWidth < 1) + FATAL_ERROR("metatile width must be positive.\n"); + } + else if (strcmp(option, "-mheight") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No metatile height value following \"-mheight\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.metatileHeight)) + FATAL_ERROR("Failed to parse metatile height.\n"); + + if (options.metatileHeight < 1) + FATAL_ERROR("metatile height must be positive.\n"); + } else { FATAL_ERROR("Unrecognized option \"%s\".\n", option); } } - ConvertGbaToPng(inputPath, outputPath, width, bitDepth, paletteFilePath, hasTransparency); + if (options.metatileWidth > options.width) + options.width = options.metatileWidth; + + ConvertGbaToPng(inputPath, outputPath, &options); } void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **argv) { char *outputFileExtension = GetFileExtension(outputPath); int bitDepth = outputFileExtension[0] - '0'; - int numTiles = 0; + struct PngToGbaOptions options; + options.numTiles = 0; + options.bitDepth = bitDepth; + options.metatileWidth = 1; + options.metatileHeight = 1; for (int i = 3; i < argc; i++) { @@ -119,19 +156,45 @@ void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **a i++; - if (!ParseNumber(argv[i], NULL, 10, &numTiles)) + if (!ParseNumber(argv[i], NULL, 10, &options.numTiles)) FATAL_ERROR("Failed to parse number of tiles.\n"); - if (numTiles < 1) + if (options.numTiles < 1) FATAL_ERROR("Number of tiles must be positive.\n"); } + else if (strcmp(option, "-mwidth") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No metatile width value following \"-mwidth\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.metatileWidth)) + FATAL_ERROR("Failed to parse metatile width.\n"); + + if (options.metatileWidth < 1) + FATAL_ERROR("metatile width must be positive.\n"); + } + else if (strcmp(option, "-mheight") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No metatile height value following \"-mheight\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.metatileHeight)) + FATAL_ERROR("Failed to parse metatile height.\n"); + + if (options.metatileHeight < 1) + FATAL_ERROR("metatile height must be positive.\n"); + } else { FATAL_ERROR("Unrecognized option \"%s\".\n", option); } } - ConvertPngToGba(inputPath, outputPath, numTiles, bitDepth); + ConvertPngToGba(inputPath, outputPath, &options); } void HandlePngToGbaPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) diff --git a/tools/gbagfx/options.h b/tools/gbagfx/options.h new file mode 100755 index 0000000000..2ff3967a4d --- /dev/null +++ b/tools/gbagfx/options.h @@ -0,0 +1,24 @@ +// Copyright (c) 2018 huderlem + +#ifndef OPTIONS_H +#define OPTIONS_H + +#include <stdbool.h> + +struct GbaToPngOptions { + char *paletteFilePath; + int bitDepth; + bool hasTransparency; + int width; + int metatileWidth; + int metatileHeight; +}; + +struct PngToGbaOptions { + int numTiles; + int bitDepth; + int metatileWidth; + int metatileHeight; +}; + +#endif // OPTIONS_H